From 093c7d6c83fee266654de61d9bdfb757f9bed314 Mon Sep 17 00:00:00 2001 From: Aryan Karim <58115075+aryankarim@users.noreply.github.com> Date: Thu, 16 Jan 2025 21:07:41 +0300 Subject: [PATCH 01/19] feat!: React 19 support (#302) --- README.md | 2 +- docs/introduction.mdx | 2 +- package.json | 22 ++-- src/EffectComposer.test.tsx | 2 +- src/EffectComposer.tsx | 21 ++-- src/Selection.tsx | 5 +- src/effects/Autofocus.tsx | 2 +- src/effects/Bloom.tsx | 1 + src/effects/GodRays.tsx | 3 +- src/effects/Noise.tsx | 2 +- src/effects/Outline.tsx | 6 +- src/effects/ScanlineEffect.tsx | 2 +- src/effects/SelectiveBloom.tsx | 4 +- src/effects/Texture.tsx | 7 +- src/effects/TiltShift.tsx | 2 +- src/effects/TiltShift2.tsx | 2 +- src/effects/Water.tsx | 2 +- src/util.tsx | 11 +- yarn.lock | 194 +++++++++++++++++---------------- 19 files changed, 147 insertions(+), 145 deletions(-) diff --git a/README.md b/README.md index c2626ff7..f5d78005 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ From > the screen diagonal. This is especially beneficial for GPGPU passes and > effects that use complex fragment shaders. -Postprocessing also supports srgb-encoding out of the box, as well as WebGL2 +Postprocessing also supports gamma correction out of the box, as well as WebGL2 MSAA (multi sample anti aliasing), which is react-postprocessing's default, you get high performance crisp results w/o jagged edges. diff --git a/docs/introduction.mdx b/docs/introduction.mdx index ebd58508..f19ef334 100644 --- a/docs/introduction.mdx +++ b/docs/introduction.mdx @@ -36,7 +36,7 @@ From > the screen diagonal. This is especially beneficial for GPGPU passes and > effects that use complex fragment shaders. -Postprocessing also supports srgb-encoding out of the box, as well as WebGL2 +Postprocessing also supports gamma correction out of the box, as well as WebGL2 MSAA (multi sample anti aliasing), which is react-postprocessing's default, you get high performance crisp results w/o jagged edges. diff --git a/package.json b/package.json index 40e15d82..1b29c12b 100644 --- a/package.json +++ b/package.json @@ -50,11 +50,11 @@ "maath": "^0.6.0", "n8ao": "^1.6.6", "postprocessing": "^6.32.1", - "three-stdlib": "^2.23.4" + "three-stdlib": "^2.35.7" }, "devDependencies": { "@react-three/drei": "^9.68.2", - "@react-three/fiber": "^8.13.0", + "@react-three/fiber": "9.0.0-rc.4", "@storybook/addon-essentials": "^7.0.10", "@storybook/addon-interactions": "^7.0.10", "@storybook/addon-links": "^7.0.10", @@ -62,9 +62,9 @@ "@storybook/react": "^7.0.10", "@storybook/react-vite": "^7.0.11", "@storybook/testing-library": "^0.0.14-next.2", - "@types/react": "^18.2.0", - "@types/react-dom": "^18.2.1", - "@types/three": "^0.150.2", + "@types/react": "^19.0.2", + "@types/react-dom": "^19.0.2", + "@types/three": "^0.156.0", "@typescript-eslint/eslint-plugin": "^5.59.1", "@typescript-eslint/parser": "^5.59.1", "eslint": "^8.39.0", @@ -78,19 +78,19 @@ "husky": "^8.0.3", "lint-staged": "^13.2.2", "prettier": "^2.8.8", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "react": "^19.0.0", + "react-dom": "^19.0.0", "rimraf": "^5.0.0", "semantic-release": "^21.0.2", "storybook": "^7.0.10", - "three": "^0.151.3", + "three": "^0.156.0", "typescript": "^5.0.4", "vite": "^4.3.5", "vitest": "^2.1.8" }, "peerDependencies": { - "@react-three/fiber": "^8.0", - "react": "^18.0", - "three": ">= 0.138.0" + "@react-three/fiber": "9.0.0-rc.4", + "react": ">=19.0", + "three": ">= 0.156.0" } } diff --git a/src/EffectComposer.test.tsx b/src/EffectComposer.test.tsx index 60539036..8cef8c52 100644 --- a/src/EffectComposer.test.tsx +++ b/src/EffectComposer.test.tsx @@ -15,7 +15,7 @@ global.IS_REACT_ACT_ENVIRONMENT = true vi.mock('scheduler', () => require('scheduler/unstable_mock')) // Create virtual R3F root for testing -extend(THREE) +extend(THREE as any) const root = createRoot({ style: {} as CSSStyleDeclaration, addEventListener: (() => {}) as any, diff --git a/src/EffectComposer.tsx b/src/EffectComposer.tsx index d3011a51..ecebf60b 100644 --- a/src/EffectComposer.tsx +++ b/src/EffectComposer.tsx @@ -1,6 +1,8 @@ -import type { TextureDataType } from 'three' +import type { TextureDataType, Group } from 'three' import { HalfFloatType, NoToneMapping } from 'three' -import React, { +import { + type JSX, + memo, forwardRef, useMemo, useEffect, @@ -9,13 +11,12 @@ import React, { useRef, useImperativeHandle, } from 'react' -import { useThree, useFrame } from '@react-three/fiber' +import { useThree, useFrame, type Instance } from '@react-three/fiber' import { EffectComposer as EffectComposerImpl, RenderPass, EffectPass, NormalPass, - // @ts-ignore DepthDownsamplingPass, Effect, Pass, @@ -51,7 +52,7 @@ export type EffectComposerProps = { const isConvolution = (effect: Effect): boolean => (effect.getAttributes() & EffectAttribute.CONVOLUTION) === EffectAttribute.CONVOLUTION -export const EffectComposer = React.memo( +export const EffectComposer = memo( forwardRef( ( { @@ -128,25 +129,25 @@ export const EffectComposer = React.memo( enabled ? renderPriority : 0 ) - const group = useRef(null) + const group = useRef(null!) useLayoutEffect(() => { const passes: Pass[] = [] // TODO: rewrite all of this with R3F v9 - const groupInstance = (group.current as any)?.__r3f as { objects: unknown[] } + const groupInstance = (group.current as Group & { __r3f: Instance }).__r3f if (groupInstance && composer) { - const children = groupInstance.objects + const children = groupInstance.children for (let i = 0; i < children.length; i++) { - const child = children[i] + const child = children[i].object if (child instanceof Effect) { const effects: Effect[] = [child] if (!isConvolution(child)) { let next: unknown = null - while ((next = children[i + 1]) instanceof Effect) { + while ((next = children[i + 1]?.object) instanceof Effect) { if (isConvolution(next)) break effects.push(next) i++ diff --git a/src/Selection.tsx b/src/Selection.tsx index 54de97ff..f6c57a60 100644 --- a/src/Selection.tsx +++ b/src/Selection.tsx @@ -1,12 +1,13 @@ import * as THREE from 'three' import React, { createContext, useState, useContext, useEffect, useRef, useMemo } from 'react' +import { type ThreeElements } from '@react-three/fiber' export type Api = { selected: THREE.Object3D[] select: React.Dispatch> enabled: boolean } -export type SelectApi = JSX.IntrinsicElements['group'] & { +export type SelectApi = Omit & { enabled?: boolean } @@ -24,7 +25,7 @@ export function Select({ enabled = false, children, ...props }: SelectApi) { useEffect(() => { if (api && enabled) { let changed = false - const current: THREE.Object3D[] = [] + const current: THREE.Object3D[] = [] group.current.traverse((o) => { o.type === 'Mesh' && current.push(o) if (api.selected.indexOf(o) === -1) changed = true diff --git a/src/effects/Autofocus.tsx b/src/effects/Autofocus.tsx index 2dac90fa..dc0334de 100644 --- a/src/effects/Autofocus.tsx +++ b/src/effects/Autofocus.tsx @@ -30,7 +30,7 @@ export type AutofocusProps = React.ComponentProps & { } export type AutofocusApi = { - dofRef: RefObject + dofRef: RefObject hitpoint: THREE.Vector3 update: (delta: number, updateTarget: boolean) => void } diff --git a/src/effects/Bloom.tsx b/src/effects/Bloom.tsx index 5772bae2..fe050aed 100644 --- a/src/effects/Bloom.tsx +++ b/src/effects/Bloom.tsx @@ -3,4 +3,5 @@ import { wrapEffect } from '../util' export const Bloom = wrapEffect(BloomEffect, { blendFunction: BlendFunction.ADD, + args: [], }) diff --git a/src/effects/GodRays.tsx b/src/effects/GodRays.tsx index 3d5ee520..c0cd3b83 100644 --- a/src/effects/GodRays.tsx +++ b/src/effects/GodRays.tsx @@ -5,13 +5,12 @@ import { EffectComposerContext } from '../EffectComposer' import { resolveRef } from '../util' type GodRaysProps = ConstructorParameters[2] & { - sun: Mesh | Points | React.MutableRefObject + sun: Mesh | Points | React.RefObject } export const GodRays = forwardRef(function GodRays(props: GodRaysProps, ref: Ref) { const { camera } = useContext(EffectComposerContext) const effect = useMemo(() => new GodRaysEffect(camera, resolveRef(props.sun), props), [camera, props]) - // @ts-ignore v6.30.2 https://github.com/pmndrs/postprocessing/pull/470/commits/091ef6f9516ca02efa7576305afbecf1ce8323ae useLayoutEffect(() => void (effect.lightSource = resolveRef(props.sun)), [effect, props.sun]) return }) diff --git a/src/effects/Noise.tsx b/src/effects/Noise.tsx index 5b3e2673..82a79875 100644 --- a/src/effects/Noise.tsx +++ b/src/effects/Noise.tsx @@ -1,4 +1,4 @@ import { NoiseEffect, BlendFunction } from 'postprocessing' import { wrapEffect } from '../util' -export const Noise = wrapEffect(NoiseEffect, { blendFunction: BlendFunction.COLOR_DODGE }) +export const Noise = wrapEffect(NoiseEffect, { blendFunction: BlendFunction.COLOR_DODGE, args: [] }) diff --git a/src/effects/Outline.tsx b/src/effects/Outline.tsx index 658c0782..62cd2186 100644 --- a/src/effects/Outline.tsx +++ b/src/effects/Outline.tsx @@ -1,12 +1,12 @@ import { OutlineEffect } from 'postprocessing' -import { Ref, MutableRefObject, forwardRef, useMemo, useEffect, useContext, useRef } from 'react' +import { Ref, RefObject, forwardRef, useMemo, useEffect, useContext, useRef } from 'react' import { Object3D } from 'three' import { useThree } from '@react-three/fiber' import { EffectComposerContext } from '../EffectComposer' import { selectionContext } from '../Selection' import { resolveRef } from '../util' -type ObjectRef = MutableRefObject +type ObjectRef = RefObject export type OutlineProps = ConstructorParameters[2] & Partial<{ @@ -93,7 +93,7 @@ export const Outline = forwardRef(function Outline( invalidate() }, [effect, invalidate, selectionLayer]) - const ref = useRef() + const ref = useRef(undefined) useEffect(() => { if (api && api.enabled) { if (api.selected?.length) { diff --git a/src/effects/ScanlineEffect.tsx b/src/effects/ScanlineEffect.tsx index faaf2edb..b1550195 100644 --- a/src/effects/ScanlineEffect.tsx +++ b/src/effects/ScanlineEffect.tsx @@ -1,4 +1,4 @@ import { ScanlineEffect, BlendFunction } from 'postprocessing' import { wrapEffect } from '../util' -export const Scanline = wrapEffect(ScanlineEffect, { blendFunction: BlendFunction.OVERLAY, density: 1.25 }) +export const Scanline = wrapEffect(ScanlineEffect, { blendFunction: BlendFunction.OVERLAY, density: 1.25, args: [] }) diff --git a/src/effects/SelectiveBloom.tsx b/src/effects/SelectiveBloom.tsx index ee1b1ec0..6efe29ac 100644 --- a/src/effects/SelectiveBloom.tsx +++ b/src/effects/SelectiveBloom.tsx @@ -1,13 +1,13 @@ import { SelectiveBloomEffect, BlendFunction } from 'postprocessing' import type { BloomEffectOptions } from 'postprocessing' -import React, { Ref, MutableRefObject, forwardRef, useMemo, useEffect, useContext, useRef } from 'react' +import React, { Ref, RefObject, forwardRef, useMemo, useEffect, useContext, useRef } from 'react' import { Object3D } from 'three' import { useThree } from '@react-three/fiber' import { EffectComposerContext } from '../EffectComposer' import { selectionContext } from '../Selection' import { resolveRef } from '../util' -type ObjectRef = MutableRefObject +type ObjectRef = RefObject export type SelectiveBloomProps = BloomEffectOptions & Partial<{ diff --git a/src/effects/Texture.tsx b/src/effects/Texture.tsx index e9e06668..a45688a5 100644 --- a/src/effects/Texture.tsx +++ b/src/effects/Texture.tsx @@ -1,7 +1,7 @@ import { TextureEffect } from 'postprocessing' import { Ref, forwardRef, useMemo, useLayoutEffect } from 'react' import { useLoader } from '@react-three/fiber' -import { TextureLoader, RepeatWrapping } from 'three' +import { TextureLoader, SRGBColorSpace, RepeatWrapping } from 'three' type TextureProps = ConstructorParameters[0] & { textureSrc: string @@ -13,10 +13,7 @@ export const Texture = forwardRef(function Texture( ) { const t = useLoader(TextureLoader, textureSrc) useLayoutEffect(() => { - // @ts-ignore - if ('encoding' in t) t.encoding = 3001 // sRGBEncoding - // @ts-ignore - else t.colorSpace = 'srgb' + t.colorSpace = SRGBColorSpace t.wrapS = t.wrapT = RepeatWrapping }, [t]) const effect = useMemo(() => new TextureEffect({ ...props, texture: t || texture }), [props, t, texture]) diff --git a/src/effects/TiltShift.tsx b/src/effects/TiltShift.tsx index 2b0ba58f..8a11abae 100644 --- a/src/effects/TiltShift.tsx +++ b/src/effects/TiltShift.tsx @@ -1,4 +1,4 @@ import { TiltShiftEffect, BlendFunction } from 'postprocessing' import { wrapEffect } from '../util' -export const TiltShift = wrapEffect(TiltShiftEffect, { blendFunction: BlendFunction.ADD }) +export const TiltShift = wrapEffect(TiltShiftEffect, { blendFunction: BlendFunction.ADD, args: [] }) diff --git a/src/effects/TiltShift2.tsx b/src/effects/TiltShift2.tsx index 02a595b8..56406dbc 100644 --- a/src/effects/TiltShift2.tsx +++ b/src/effects/TiltShift2.tsx @@ -87,4 +87,4 @@ export class TiltShiftEffect extends Effect { } } -export const TiltShift2 = wrapEffect(TiltShiftEffect, { blendFunction: BlendFunction.NORMAL }) +export const TiltShift2 = wrapEffect(TiltShiftEffect, { blendFunction: BlendFunction.NORMAL, args: [] }) diff --git a/src/effects/Water.tsx b/src/effects/Water.tsx index 3c61f92a..e400faa4 100644 --- a/src/effects/Water.tsx +++ b/src/effects/Water.tsx @@ -30,4 +30,4 @@ export class WaterEffectImpl extends Effect { } } -export const WaterEffect = wrapEffect(WaterEffectImpl, { blendFunction: BlendFunction.NORMAL }) +export const WaterEffect = wrapEffect(WaterEffectImpl, { blendFunction: BlendFunction.NORMAL, args: [] }) diff --git a/src/util.tsx b/src/util.tsx index 198cd66a..3c5cf2c9 100644 --- a/src/util.tsx +++ b/src/util.tsx @@ -1,17 +1,16 @@ -import React, { MutableRefObject } from 'react' +import React, { RefObject } from 'react' import { Vector2 } from 'three' import * as THREE from 'three' -import { type ReactThreeFiber, extend, useThree } from '@react-three/fiber' +import { type ReactThreeFiber, type ThreeElement, extend, useThree } from '@react-three/fiber' import type { Effect, BlendFunction } from 'postprocessing' -export const resolveRef = (ref: T | React.MutableRefObject) => +export const resolveRef = (ref: T | React.RefObject) => typeof ref === 'object' && ref != null && 'current' in ref ? ref.current : ref export type EffectConstructor = new (...args: any[]) => Effect -export type EffectProps = ReactThreeFiber.Node< - T extends Function ? T['prototype'] : InstanceType, - T +export type EffectProps = ThreeElement< + T extends Function ? T['prototype'] : InstanceType > & ConstructorParameters[0] & { blendFunction?: BlendFunction diff --git a/yarn.lock b/yarn.lock index fdc29b86..22afd371 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1900,19 +1900,23 @@ utility-types "^3.10.0" zustand "^3.5.13" -"@react-three/fiber@^8.13.0": - version "8.13.0" - resolved "https://registry.yarnpkg.com/@react-three/fiber/-/fiber-8.13.0.tgz#c9eabe60f2276a66d7ce9a3b927083894f4202f9" - integrity sha512-hPFzFNgikEMyEbL+NpSA7q+UWZxInrrkJldWaCR2w34Fwf20x9p68bsyN0/yn9oM2VlWoJcJjR8hw1tN9AxHuA== +"@react-three/fiber@9.0.0-rc.4": + version "9.0.0-rc.4" + resolved "https://registry.yarnpkg.com/@react-three/fiber/-/fiber-9.0.0-rc.4.tgz#6abe769b7a4e2baa099381bd5a9494aa66118f24" + integrity sha512-J75gr7ZbBRjS1FaN3e0lLXk2Cw7NV8sURM2kKoJP8ZoO7pzi2hXMj5vrxrrgdKfnsEy8xXHQdbCe3xw7Tckk8A== dependencies: "@babel/runtime" "^7.17.8" - "@types/react-reconciler" "^0.26.7" - its-fine "^1.0.6" - react-reconciler "^0.27.0" - react-use-measure "^2.1.1" - scheduler "^0.21.0" - suspend-react "^0.0.8" - zustand "^3.7.1" + "@types/debounce" "^1.2.1" + "@types/react-reconciler" "^0.28.8" + "@types/webxr" "*" + base64-js "^1.5.1" + buffer "^6.0.3" + debounce "^1.2.1" + its-fine "^1.2.5" + react-reconciler "0.31.0" + scheduler "0.25.0" + suspend-react "^0.1.3" + zustand "^4.1.2" "@rollup/pluginutils@^4.2.0": version "4.2.1" @@ -3081,6 +3085,11 @@ dependencies: "@types/node" "*" +"@types/debounce@^1.2.1": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@types/debounce/-/debounce-1.2.4.tgz#cb7e85d9ad5ababfac2f27183e8ac8b576b2abb3" + integrity sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw== + "@types/detect-port@^1.3.0": version "1.3.2" resolved "https://registry.yarnpkg.com/@types/detect-port/-/detect-port-1.3.2.tgz#8c06a975e472803b931ee73740aeebd0a2eb27ae" @@ -3281,19 +3290,10 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react-dom@^18.2.1": - version "18.2.1" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.1.tgz#663b2612feb5f6431a70207430d7c04881b87f29" - integrity sha512-8QZEV9+Kwy7tXFmjJrp3XUKQSs9LTnE0KnoUb0YCguWBiNW0Yfb2iBMYZ08WPg35IR6P3Z0s00B15SwZnO26+w== - dependencies: - "@types/react" "*" - -"@types/react-reconciler@^0.26.7": - version "0.26.7" - resolved "https://registry.yarnpkg.com/@types/react-reconciler/-/react-reconciler-0.26.7.tgz#0c4643f30821ae057e401b0d9037e03e8e9b2a36" - integrity sha512-mBDYl8x+oyPX/VBb3E638N0B7xG+SPk/EAMcVPeexqus/5aTpTphQi0curhhshOqRrc9t6OPoJfEUkbymse/lQ== - dependencies: - "@types/react" "*" +"@types/react-dom@^19.0.2": + version "19.0.2" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.0.2.tgz#ad21f9a1ee881817995fd3f7fd33659c87e7b1b7" + integrity sha512-c1s+7TKFaDRRxr1TxccIX2u7sfCnc3RxkVyBIUA2lCpyqCF+QoAwQ/CBg7bsMdVwP120HEH143VQezKtef5nCg== "@types/react-reconciler@^0.28.0": version "0.28.2" @@ -3302,7 +3302,12 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.2.0": +"@types/react-reconciler@^0.28.8": + version "0.28.9" + resolved "https://registry.yarnpkg.com/@types/react-reconciler/-/react-reconciler-0.28.9.tgz#d24b4864c384e770c83275b3fe73fba00269c83b" + integrity sha512-HHM3nxyUZ3zAylX8ZEyrDNd2XZOnQ0D5XfunJF5FLQnZbHHYq4UWvW1QfelQNXv1ICNkwYhfxjwfnqivYB6bFg== + +"@types/react@*": version "18.2.0" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.0.tgz#15cda145354accfc09a18d2f2305f9fc099ada21" integrity sha512-0FLj93y5USLHdnhIhABk83rm8XEGA7kH3cr+YUlvxoUGp1xNt/DINUMvqPxLyOQMzLmZe8i4RTHbvb8MC7NmrA== @@ -3320,6 +3325,13 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/react@^19.0.2": + version "19.0.2" + resolved "https://registry.yarnpkg.com/@types/react/-/react-19.0.2.tgz#9363e6b3ef898c471cb182dd269decc4afc1b4f6" + integrity sha512-USU8ZI/xyKJwFTpjSVIrSeHBVAGagkHQKPNbxeWwql/vDmnTIBgx+TJnhFnj1NXgz8XfprU0egV2dROLGpsBEg== + dependencies: + csstype "^3.0.2" + "@types/retry@0.12.0": version "0.12.0" resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" @@ -3361,15 +3373,15 @@ resolved "https://registry.yarnpkg.com/@types/stats.js/-/stats.js-0.17.0.tgz#0ed81d48e03b590c24da85540c1d952077a9fe20" integrity sha512-9w+a7bR8PeB0dCT/HBULU2fMqf6BAzvKbxFboYhmDtDkKPiyXYbjoe2auwsXlEFI7CFNMF1dCv3dFH5Poy9R1w== -"@types/three@^0.150.2": - version "0.150.2" - resolved "https://registry.yarnpkg.com/@types/three/-/three-0.150.2.tgz#6f36b299a3d21416cc07342cc87accffbde32db4" - integrity sha512-cvcz/81Mmj4oiAA+uxzwaRK3t8lYw8WxejXKqIBfu6PqvwSAEEiCi3VfCiVY18UflBqL0LDX/za85+sfqjMoIw== +"@types/three@^0.156.0": + version "0.156.0" + resolved "https://registry.yarnpkg.com/@types/three/-/three-0.156.0.tgz#cd49f2a12e858400962ea818d1e1c45e638141a8" + integrity sha512-733bXDSRdlrxqOmQuOmfC1UBRuJ2pREPk8sWnx9MtIJEVDQMx8U0NQO5MVVaOrjzDPyLI+cFPim2X/ss9v0+LQ== dependencies: "@types/stats.js" "*" "@types/webxr" "*" - fflate "~0.6.9" - lil-gui "~0.17.0" + fflate "~0.6.10" + meshoptimizer "~0.18.1" "@types/unist@^2.0.0": version "2.0.6" @@ -4043,7 +4055,7 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-js@^1.3.1: +base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -5719,7 +5731,7 @@ fetch-retry@^5.0.2: resolved "https://registry.yarnpkg.com/fetch-retry/-/fetch-retry-5.0.5.tgz#61079b816b6651d88a022ebd45d51d83aa72b521" integrity sha512-q9SvpKH5Ka6h7X2C6r1sP31pQoeDb3o6/R9cg21ahfPAqbIOkW9tus1dXfwYb6G6dOI4F7nVS4Q+LSssBGIz0A== -fflate@^0.6.9, fflate@~0.6.9: +fflate@^0.6.9, fflate@~0.6.10: version "0.6.10" resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.6.10.tgz#5f40f9659205936a2d18abf88b2e7781662b6d43" integrity sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg== @@ -6904,10 +6916,10 @@ istanbul-reports@^3.1.4: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -its-fine@^1.0.6: - version "1.1.1" - resolved "https://registry.yarnpkg.com/its-fine/-/its-fine-1.1.1.tgz#e74b93fddd487441f978a50f64f0f5af4d2fc38e" - integrity sha512-v1Ia1xl20KbuSGlwoaGsW0oxsw8Be+TrXweidxD9oT/1lAh6O3K3/GIM95Tt6WCiv6W+h2M7RB1TwdoAjQyyKw== +its-fine@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/its-fine/-/its-fine-1.2.5.tgz#5466c287f86a0a73e772c8d8d515626c97195dc9" + integrity sha512-fXtDA0X0t0eBYAGLVM5YsgJGsJ5jEmqZEPrGbzdf5awjv0xE7nqv3TVnvtUF060Tkes15DbDAKW/I48vsb6SyA== dependencies: "@types/react-reconciler" "^0.28.0" @@ -7287,11 +7299,6 @@ libnpmversion@^4.0.2: proc-log "^3.0.0" semver "^7.3.7" -lil-gui@~0.17.0: - version "0.17.0" - resolved "https://registry.yarnpkg.com/lil-gui/-/lil-gui-0.17.0.tgz#b41ae55d0023fcd9185f7395a218db0f58189663" - integrity sha512-MVBHmgY+uEbmJNApAaPbtvNh1RCAeMnKym82SBjtp5rODTYKWtM+MXHCifLe2H2Ti1HuBGBtK/5SyG4ShQ3pUQ== - lilconfig@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" @@ -7462,7 +7469,7 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" -loose-envify@^1.1.0, loose-envify@^1.4.0: +loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -7690,6 +7697,11 @@ meshline@^3.1.6: resolved "https://registry.yarnpkg.com/meshline/-/meshline-3.1.6.tgz#eee67d9b0fd9841652cc1dc2d3833093ae8e68ca" integrity sha512-8JZJOdaL5oz3PI/upG8JvP/5FfzYUOhrkJ8np/WKvXzl0/PZ2V9pqTvCIjSKv+w9ccg2xb+yyBhXAwt6ier3ug== +meshoptimizer@~0.18.1: + version "0.18.1" + resolved "https://registry.yarnpkg.com/meshoptimizer/-/meshoptimizer-0.18.1.tgz#cdb90907f30a7b5b1190facd3b7ee6b7087797d8" + integrity sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw== + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -9077,13 +9089,12 @@ react-docgen@6.0.0-alpha.3: resolve "^1.17.0" strip-indent "^3.0.0" -react-dom@^18.2.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" - integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== +react-dom@^19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.0.0.tgz#43446f1f01c65a4cd7f7588083e686a6726cfb57" + integrity sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ== dependencies: - loose-envify "^1.1.0" - scheduler "^0.23.0" + scheduler "^0.25.0" react-element-to-jsx-string@^15.0.0: version "15.0.0" @@ -9119,32 +9130,22 @@ react-merge-refs@^1.1.0: resolved "https://registry.yarnpkg.com/react-merge-refs/-/react-merge-refs-1.1.0.tgz#73d88b892c6c68cbb7a66e0800faa374f4c38b06" integrity sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ== -react-reconciler@^0.27.0: - version "0.27.0" - resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.27.0.tgz#360124fdf2d76447c7491ee5f0e04503ed9acf5b" - integrity sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA== +react-reconciler@0.31.0: + version "0.31.0" + resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.31.0.tgz#6b7390fe8fab59210daf523d7400943973de1458" + integrity sha512-7Ob7Z+URmesIsIVRjnLoDGwBEG/tVitidU0nMsqX/eeJaLY89RISO/10ERe0MqmzuKUUB1rmY+h1itMbUHg9BQ== dependencies: - loose-envify "^1.1.0" - scheduler "^0.21.0" + scheduler "^0.25.0" react-refresh@^0.14.0: version "0.14.0" resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== -react-use-measure@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/react-use-measure/-/react-use-measure-2.1.1.tgz#5824537f4ee01c9469c45d5f7a8446177c6cc4ba" - integrity sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig== - dependencies: - debounce "^1.2.1" - -react@^18.2.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" - integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== - dependencies: - loose-envify "^1.1.0" +react@^19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/react/-/react-19.0.0.tgz#6e1969251b9f108870aa4bff37a0ce9ddfaaabdd" + integrity sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ== read-cmd-shim@^4.0.0: version "4.0.0" @@ -9567,19 +9568,10 @@ safe-regex-test@^1.0.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -scheduler@^0.21.0: - version "0.21.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.21.0.tgz#6fd2532ff5a6d877b6edb12f00d8ab7e8f308820" - integrity sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ== - dependencies: - loose-envify "^1.1.0" - -scheduler@^0.23.0: - version "0.23.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" - integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== - dependencies: - loose-envify "^1.1.0" +scheduler@0.25.0, scheduler@^0.25.0: + version "0.25.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.25.0.tgz#336cd9768e8cceebf52d3c80e3dcf5de23e7e015" + integrity sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA== semantic-release@^21.0.2: version "21.0.2" @@ -10160,6 +10152,11 @@ suspend-react@^0.0.8: resolved "https://registry.yarnpkg.com/suspend-react/-/suspend-react-0.0.8.tgz#b0740c1386b4eb652f17affe4339915ee268bd31" integrity sha512-ZC3r8Hu1y0dIThzsGw0RLZplnX9yXwfItcvaIzJc2VQVi8TGyGDlu92syMB5ulybfvGLHAI5Ghzlk23UBPF8xg== +suspend-react@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/suspend-react/-/suspend-react-0.1.3.tgz#a52f49d21cfae9a2fb70bd0c68413d3f9d90768e" + integrity sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ== + synchronous-promise@^2.0.15: version "2.0.17" resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.17.tgz#38901319632f946c982152586f2caf8ddc25c032" @@ -10291,27 +10288,22 @@ three-stdlib@^2.21.8: potpack "^1.0.1" zstddec "^0.0.2" -three-stdlib@^2.23.4: - version "2.23.4" - resolved "https://registry.yarnpkg.com/three-stdlib/-/three-stdlib-2.23.4.tgz#21e415573f9cddb8dbc2dea0495cc35d8d390b8b" - integrity sha512-bNtKL0UsE/TeSQ30tb9qDoGEuO6hqJfLFVqIiWlVpgAs2W/aZcpSISaLP3q+L4E9NSGmpRzI3dGufmDj0AnQ7Q== +three-stdlib@^2.35.7: + version "2.35.7" + resolved "https://registry.yarnpkg.com/three-stdlib/-/three-stdlib-2.35.7.tgz#13d345722d33328e2ffa820afadbf35a7b241c5b" + integrity sha512-k1oDqa1GYT4smhsN204DtmcQLfDuzSD4bbGmErTvUH40dpcwgBUgbwMzYYVWYB5tT7u0KBvAQpwuAPEXuwJVpQ== dependencies: "@types/draco3d" "^1.4.0" "@types/offscreencanvas" "^2019.6.4" "@types/webxr" "^0.5.2" - chevrotain "^10.1.2" draco3d "^1.4.1" fflate "^0.6.9" - ktx-parse "^0.4.5" - mmd-parser "^1.0.4" - opentype.js "^1.3.3" potpack "^1.0.1" - zstddec "^0.0.2" -three@^0.151.3: - version "0.151.3" - resolved "https://registry.yarnpkg.com/three/-/three-0.151.3.tgz#0b3c7de4b070d5b66b15217f42465d67cbfa6004" - integrity sha512-+vbuqxFy8kzLeO5MgpBHUvP/EAiecaDwDuOPPDe6SbrZr96kccF0ktLngXc7xA7bzyd3N0t2f6mw3Z9y6JCojQ== +three@^0.156.0: + version "0.156.1" + resolved "https://registry.yarnpkg.com/three/-/three-0.156.1.tgz#bab4fec121a5b3975eb4f4d227d9c912171eb399" + integrity sha512-kP7H0FK9d/k6t/XvQ9FO6i+QrePoDcNhwl0I02+wmUJRNSLCUIDMcfObnzQvxb37/0Uc9TDT0T1HgsRRrO6SYQ== through2@^2.0.3, through2@~2.0.0: version "2.0.5" @@ -10721,6 +10713,11 @@ use-resize-observer@^9.1.0: dependencies: "@juggle/resize-observer" "^3.3.1" +use-sync-external-store@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz#c3b6390f3a30eba13200d2302dcdf1e7b57b2ef9" + integrity sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw== + util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -11123,7 +11120,14 @@ zstddec@^0.0.2: resolved "https://registry.yarnpkg.com/zstddec/-/zstddec-0.0.2.tgz#57e2f28dd1ff56b750e07d158a43f0611ad9eeb4" integrity sha512-DCo0oxvcvOTGP/f5FA6tz2Z6wF+FIcEApSTu0zV5sQgn9hoT5lZ9YRAKUraxt9oP7l4e8TnNdi8IZTCX6WCkwA== -zustand@^3.5.13, zustand@^3.7.1: +zustand@^3.5.13: version "3.7.2" resolved "https://registry.yarnpkg.com/zustand/-/zustand-3.7.2.tgz#7b44c4f4a5bfd7a8296a3957b13e1c346f42514d" integrity sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA== + +zustand@^4.1.2: + version "4.5.5" + resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.5.5.tgz#f8c713041543715ec81a2adda0610e1dc82d4ad1" + integrity sha512-+0PALYNJNgK6hldkgDq2vLrw5f6g/jCInz52n9RTpropGgeAf/ioFUCdtsjCqu4gNhW9D01rUQBROoRjdzyn2Q== + dependencies: + use-sync-external-store "1.2.2" From 2f828ecde21d209e43897b1df622cc8c59ffddf4 Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Fri, 17 Jan 2025 14:21:44 -0600 Subject: [PATCH 02/19] fix: tree-shaking (#314) --- src/EffectComposer.tsx | 6 +- src/Selection.tsx | 2 +- src/effects/ASCII.tsx | 2 +- src/effects/Autofocus.tsx | 2 +- src/effects/Bloom.tsx | 2 +- src/effects/BrightnessContrast.tsx | 2 +- src/effects/ChromaticAberration.tsx | 2 +- src/effects/ColorAverage.tsx | 2 +- src/effects/ColorDepth.tsx | 2 +- src/effects/Depth.tsx | 2 +- src/effects/DepthOfField.tsx | 2 +- src/effects/DotScreen.tsx | 2 +- src/effects/FXAA.tsx | 2 +- src/effects/Glitch.tsx | 2 +- src/effects/GodRays.tsx | 2 +- src/effects/Grid.tsx | 2 +- src/effects/HueSaturation.tsx | 2 +- src/effects/LUT.tsx | 2 +- src/effects/LensFlare.tsx | 2 +- src/effects/N8AO/DepthDownSample.js | 6 +- src/effects/N8AO/EffectCompositer.js | 16 +- src/effects/N8AO/EffectShader.js | 14 +- src/effects/N8AO/FullScreenTriangle.js | 4 +- src/effects/N8AO/N8AOPostPass.js | 2 +- src/effects/N8AO/PoissionBlur.js | 12 +- src/effects/N8AO/index.tsx | 2 +- src/effects/Noise.tsx | 2 +- src/effects/Outline.tsx | 2 +- src/effects/Pixelation.tsx | 2 +- src/effects/SMAA.tsx | 2 +- src/effects/SSAO.tsx | 5 +- src/effects/SSR/index.tsx | 2 +- src/effects/SSR/screen-space-reflections.js | 1891 ++++++++++--------- src/effects/ScanlineEffect.tsx | 6 +- src/effects/SelectiveBloom.tsx | 2 +- src/effects/Sepia.tsx | 2 +- src/effects/ShockWave.tsx | 2 +- src/effects/Texture.tsx | 2 +- src/effects/TiltShift.tsx | 2 +- src/effects/TiltShift2.tsx | 2 +- src/effects/ToneMapping.tsx | 2 +- src/effects/Vignette.tsx | 2 +- src/effects/Water.tsx | 5 +- 43 files changed, 1027 insertions(+), 1004 deletions(-) diff --git a/src/EffectComposer.tsx b/src/EffectComposer.tsx index ecebf60b..0044fe29 100644 --- a/src/EffectComposer.tsx +++ b/src/EffectComposer.tsx @@ -24,7 +24,7 @@ import { } from 'postprocessing' import { isWebGL2Available } from 'three-stdlib' -export const EffectComposerContext = createContext<{ +export const EffectComposerContext = /* @__PURE__ */ createContext<{ composer: EffectComposerImpl normalPass: NormalPass | null downSamplingPass: DepthDownsamplingPass | null @@ -52,8 +52,8 @@ export type EffectComposerProps = { const isConvolution = (effect: Effect): boolean => (effect.getAttributes() & EffectAttribute.CONVOLUTION) === EffectAttribute.CONVOLUTION -export const EffectComposer = memo( - forwardRef( +export const EffectComposer = /* @__PURE__ */ memo( + /* @__PURE__ */ forwardRef( ( { children, diff --git a/src/Selection.tsx b/src/Selection.tsx index f6c57a60..5e3ae361 100644 --- a/src/Selection.tsx +++ b/src/Selection.tsx @@ -11,7 +11,7 @@ export type SelectApi = Omit & { enabled?: boolean } -export const selectionContext = createContext(null) +export const selectionContext = /* @__PURE__ */ createContext(null) export function Selection({ children, enabled = true }: { enabled?: boolean; children: React.ReactNode }) { const [selected, select] = useState([]) diff --git a/src/effects/ASCII.tsx b/src/effects/ASCII.tsx index 6eec07dc..fcd14d4e 100644 --- a/src/effects/ASCII.tsx +++ b/src/effects/ASCII.tsx @@ -114,7 +114,7 @@ class ASCIIEffect extends Effect { } } -export const ASCII = forwardRef( +export const ASCII = /* @__PURE__ */ forwardRef( ( { font = 'arial', diff --git a/src/effects/Autofocus.tsx b/src/effects/Autofocus.tsx index dc0334de..6cbecef0 100644 --- a/src/effects/Autofocus.tsx +++ b/src/effects/Autofocus.tsx @@ -35,7 +35,7 @@ export type AutofocusApi = { update: (delta: number, updateTarget: boolean) => void } -export const Autofocus = forwardRef( +export const Autofocus = /* @__PURE__ */ forwardRef( ( { target = undefined, mouse: followMouse = false, debug = undefined, manual = false, smoothTime = 0.25, ...props }, fref diff --git a/src/effects/Bloom.tsx b/src/effects/Bloom.tsx index fe050aed..62988784 100644 --- a/src/effects/Bloom.tsx +++ b/src/effects/Bloom.tsx @@ -1,7 +1,7 @@ import { BloomEffect, BlendFunction } from 'postprocessing' import { wrapEffect } from '../util' -export const Bloom = wrapEffect(BloomEffect, { +export const Bloom = /* @__PURE__ */ wrapEffect(BloomEffect, { blendFunction: BlendFunction.ADD, args: [], }) diff --git a/src/effects/BrightnessContrast.tsx b/src/effects/BrightnessContrast.tsx index 48320cf6..d14855c6 100644 --- a/src/effects/BrightnessContrast.tsx +++ b/src/effects/BrightnessContrast.tsx @@ -1,4 +1,4 @@ import { BrightnessContrastEffect } from 'postprocessing' import { wrapEffect } from '../util' -export const BrightnessContrast = wrapEffect(BrightnessContrastEffect) +export const BrightnessContrast = /* @__PURE__ */ wrapEffect(BrightnessContrastEffect) diff --git a/src/effects/ChromaticAberration.tsx b/src/effects/ChromaticAberration.tsx index 0ef95949..5944ffad 100644 --- a/src/effects/ChromaticAberration.tsx +++ b/src/effects/ChromaticAberration.tsx @@ -2,4 +2,4 @@ import { ChromaticAberrationEffect } from 'postprocessing' import { type EffectProps, wrapEffect } from '../util' export type ChromaticAberrationProps = EffectProps -export const ChromaticAberration = wrapEffect(ChromaticAberrationEffect) +export const ChromaticAberration = /* @__PURE__ */ wrapEffect(ChromaticAberrationEffect) diff --git a/src/effects/ColorAverage.tsx b/src/effects/ColorAverage.tsx index f9e44ef6..be603eae 100644 --- a/src/effects/ColorAverage.tsx +++ b/src/effects/ColorAverage.tsx @@ -5,7 +5,7 @@ export type ColorAverageProps = Partial<{ blendFunction: BlendFunction }> -export const ColorAverage = forwardRef(function ColorAverage( +export const ColorAverage = /* @__PURE__ */ forwardRef(function ColorAverage( { blendFunction = BlendFunction.NORMAL }: ColorAverageProps, ref: Ref ) { diff --git a/src/effects/ColorDepth.tsx b/src/effects/ColorDepth.tsx index 4397f031..70a95d2c 100644 --- a/src/effects/ColorDepth.tsx +++ b/src/effects/ColorDepth.tsx @@ -1,4 +1,4 @@ import { ColorDepthEffect } from 'postprocessing' import { wrapEffect } from '../util' -export const ColorDepth = wrapEffect(ColorDepthEffect) +export const ColorDepth = /* @__PURE__ */ wrapEffect(ColorDepthEffect) diff --git a/src/effects/Depth.tsx b/src/effects/Depth.tsx index c46208d5..0d99563f 100644 --- a/src/effects/Depth.tsx +++ b/src/effects/Depth.tsx @@ -1,4 +1,4 @@ import { DepthEffect } from 'postprocessing' import { wrapEffect } from '../util' -export const Depth = wrapEffect(DepthEffect) +export const Depth = /* @__PURE__ */ wrapEffect(DepthEffect) diff --git a/src/effects/DepthOfField.tsx b/src/effects/DepthOfField.tsx index 7b3e0b8d..e4dd8525 100644 --- a/src/effects/DepthOfField.tsx +++ b/src/effects/DepthOfField.tsx @@ -16,7 +16,7 @@ type DOFProps = ConstructorParameters[1] & blur: number }> -export const DepthOfField = forwardRef(function DepthOfField( +export const DepthOfField = /* @__PURE__ */ forwardRef(function DepthOfField( { blendFunction, worldFocusDistance, diff --git a/src/effects/DotScreen.tsx b/src/effects/DotScreen.tsx index 5e734b8f..a7647ab5 100644 --- a/src/effects/DotScreen.tsx +++ b/src/effects/DotScreen.tsx @@ -1,4 +1,4 @@ import { DotScreenEffect } from 'postprocessing' import { wrapEffect } from '../util' -export const DotScreen = wrapEffect(DotScreenEffect) +export const DotScreen = /* @__PURE__ */ wrapEffect(DotScreenEffect) diff --git a/src/effects/FXAA.tsx b/src/effects/FXAA.tsx index 02f8c59b..00659605 100644 --- a/src/effects/FXAA.tsx +++ b/src/effects/FXAA.tsx @@ -1,4 +1,4 @@ import { FXAAEffect } from 'postprocessing' import { wrapEffect } from '../util' -export const FXAA = wrapEffect(FXAAEffect) +export const FXAA = /* @__PURE__ */ wrapEffect(FXAAEffect) diff --git a/src/effects/Glitch.tsx b/src/effects/Glitch.tsx index 45d53c90..2ff7cb20 100644 --- a/src/effects/Glitch.tsx +++ b/src/effects/Glitch.tsx @@ -14,7 +14,7 @@ export type GlitchProps = ConstructorParameters[0] & strength: ReactThreeFiber.Vector2 }> -export const Glitch = forwardRef(function Glitch( +export const Glitch = /* @__PURE__ */ forwardRef(function Glitch( { active = true, ...props }: GlitchProps, ref: Ref ) { diff --git a/src/effects/GodRays.tsx b/src/effects/GodRays.tsx index c0cd3b83..8f1db2ad 100644 --- a/src/effects/GodRays.tsx +++ b/src/effects/GodRays.tsx @@ -8,7 +8,7 @@ type GodRaysProps = ConstructorParameters[2] & { sun: Mesh | Points | React.RefObject } -export const GodRays = forwardRef(function GodRays(props: GodRaysProps, ref: Ref) { +export const GodRays = /* @__PURE__ */ forwardRef(function GodRays(props: GodRaysProps, ref: Ref) { const { camera } = useContext(EffectComposerContext) const effect = useMemo(() => new GodRaysEffect(camera, resolveRef(props.sun), props), [camera, props]) useLayoutEffect(() => void (effect.lightSource = resolveRef(props.sun)), [effect, props.sun]) diff --git a/src/effects/Grid.tsx b/src/effects/Grid.tsx index 6264071d..9fe03793 100644 --- a/src/effects/Grid.tsx +++ b/src/effects/Grid.tsx @@ -10,7 +10,7 @@ type GridProps = ConstructorParameters[0] & } }> -export const Grid = forwardRef(function Grid({ size, ...props }: GridProps, ref: Ref) { +export const Grid = /* @__PURE__ */ forwardRef(function Grid({ size, ...props }: GridProps, ref: Ref) { const invalidate = useThree((state) => state.invalidate) const effect = useMemo(() => new GridEffect(props), [props]) useLayoutEffect(() => { diff --git a/src/effects/HueSaturation.tsx b/src/effects/HueSaturation.tsx index a1598c60..a3a3f61c 100644 --- a/src/effects/HueSaturation.tsx +++ b/src/effects/HueSaturation.tsx @@ -1,4 +1,4 @@ import { HueSaturationEffect } from 'postprocessing' import { wrapEffect } from '../util' -export const HueSaturation = wrapEffect(HueSaturationEffect) +export const HueSaturation = /* @__PURE__ */ wrapEffect(HueSaturationEffect) diff --git a/src/effects/LUT.tsx b/src/effects/LUT.tsx index 7847b8a0..f3d42d29 100644 --- a/src/effects/LUT.tsx +++ b/src/effects/LUT.tsx @@ -9,7 +9,7 @@ export type LUTProps = { tetrahedralInterpolation?: boolean } -export const LUT = forwardRef(function LUT( +export const LUT = /* @__PURE__ */ forwardRef(function LUT( { lut, tetrahedralInterpolation, ...props }: LUTProps, ref: Ref ) { diff --git a/src/effects/LensFlare.tsx b/src/effects/LensFlare.tsx index ee5bac61..63b386fc 100644 --- a/src/effects/LensFlare.tsx +++ b/src/effects/LensFlare.tsx @@ -120,7 +120,7 @@ type LensFlareProps = ConstructorParameters[0] & { smoothTime?: number } -export const LensFlare = forwardRef( +export const LensFlare = /* @__PURE__ */ forwardRef( ({ position = new THREE.Vector3(-25, 6, -60), followMouse = false, smoothTime = 0.07, ...props }, ref) => { const viewport = useThree(({ viewport }) => viewport) const raycaster = useThree(({ raycaster }) => raycaster) diff --git a/src/effects/N8AO/DepthDownSample.js b/src/effects/N8AO/DepthDownSample.js index 6bc600c5..57f2d97a 100644 --- a/src/effects/N8AO/DepthDownSample.js +++ b/src/effects/N8AO/DepthDownSample.js @@ -3,11 +3,11 @@ import * as THREE from 'three' const DepthDownSample = { uniforms: { sceneDepth: { value: null }, - resolution: { value: new THREE.Vector2() }, + resolution: { value: /* @__PURE__ */ new THREE.Vector2() }, near: { value: 0.1 }, far: { value: 1000.0 }, - viewMatrixInv: { value: new THREE.Matrix4() }, - projectionMatrixInv: { value: new THREE.Matrix4() }, + viewMatrixInv: { value: /* @__PURE__ */ new THREE.Matrix4() }, + projectionMatrixInv: { value: /* @__PURE__ */ new THREE.Matrix4() }, logDepth: { value: false }, }, depthWrite: false, diff --git a/src/effects/N8AO/EffectCompositer.js b/src/effects/N8AO/EffectCompositer.js index 09918a81..49050360 100644 --- a/src/effects/N8AO/EffectCompositer.js +++ b/src/effects/N8AO/EffectCompositer.js @@ -1,6 +1,6 @@ import * as THREE from 'three' -const version = parseInt(THREE.REVISION.replace(/\D+/g, '')) +const version = /* @__PURE__ */ (() => parseInt(THREE.REVISION.replace(/\D+/g, '')))() // https://github.com/mrdoob/three.js/pull/26644 // https://github.com/mrdoob/three.js/pull/28901 @@ -11,13 +11,13 @@ const EffectCompositer = { sceneDiffuse: { value: null }, sceneDepth: { value: null }, tDiffuse: { value: null }, - projMat: { value: new THREE.Matrix4() }, - viewMat: { value: new THREE.Matrix4() }, - projectionMatrixInv: { value: new THREE.Matrix4() }, - viewMatrixInv: { value: new THREE.Matrix4() }, - cameraPos: { value: new THREE.Vector3() }, - resolution: { value: new THREE.Vector2() }, - color: { value: new THREE.Vector3(0, 0, 0) }, + projMat: { value: /* @__PURE__ */ new THREE.Matrix4() }, + viewMat: { value: /* @__PURE__ */ new THREE.Matrix4() }, + projectionMatrixInv: { value: /* @__PURE__ */ new THREE.Matrix4() }, + viewMatrixInv: { value: /* @__PURE__ */ new THREE.Matrix4() }, + cameraPos: { value: /* @__PURE__ */ new THREE.Vector3() }, + resolution: { value: /* @__PURE__ */ new THREE.Vector2() }, + color: { value: /* @__PURE__ */ new THREE.Vector3(0, 0, 0) }, blueNoise: { value: null }, downsampledDepth: { value: null }, time: { value: 0.0 }, diff --git a/src/effects/N8AO/EffectShader.js b/src/effects/N8AO/EffectShader.js index c73fa2dd..75557121 100644 --- a/src/effects/N8AO/EffectShader.js +++ b/src/effects/N8AO/EffectShader.js @@ -5,13 +5,13 @@ const EffectShader = { sceneDiffuse: { value: null }, sceneDepth: { value: null }, sceneNormal: { value: null }, - projMat: { value: new THREE.Matrix4() }, - viewMat: { value: new THREE.Matrix4() }, - projViewMat: { value: new THREE.Matrix4() }, - projectionMatrixInv: { value: new THREE.Matrix4() }, - viewMatrixInv: { value: new THREE.Matrix4() }, - cameraPos: { value: new THREE.Vector3() }, - resolution: { value: new THREE.Vector2() }, + projMat: { value: /* @__PURE__ */ new THREE.Matrix4() }, + viewMat: { value: /* @__PURE__ */ new THREE.Matrix4() }, + projViewMat: { value: /* @__PURE__ */ new THREE.Matrix4() }, + projectionMatrixInv: { value: /* @__PURE__ */ new THREE.Matrix4() }, + viewMatrixInv: { value: /* @__PURE__ */ new THREE.Matrix4() }, + cameraPos: { value: /* @__PURE__ */ new THREE.Vector3() }, + resolution: { value: /* @__PURE__ */ new THREE.Vector2() }, time: { value: 0.0 }, samples: { value: [] }, samplesR: { value: [] }, diff --git a/src/effects/N8AO/FullScreenTriangle.js b/src/effects/N8AO/FullScreenTriangle.js index f5648d85..40c24be5 100644 --- a/src/effects/N8AO/FullScreenTriangle.js +++ b/src/effects/N8AO/FullScreenTriangle.js @@ -12,8 +12,8 @@ class FullScreenTriangleGeometry extends THREE.BufferGeometry { computeBoundingSphere() {} } -const _geometry = new FullScreenTriangleGeometry() -const _camera = new THREE.OrthographicCamera() +const _geometry = /* @__PURE__ */ new FullScreenTriangleGeometry() +const _camera = /* @__PURE__ */ new THREE.OrthographicCamera() export class FullScreenTriangle { constructor(material) { diff --git a/src/effects/N8AO/N8AOPostPass.js b/src/effects/N8AO/N8AOPostPass.js index f4479d04..e544d1d2 100644 --- a/src/effects/N8AO/N8AOPostPass.js +++ b/src/effects/N8AO/N8AOPostPass.js @@ -9,7 +9,7 @@ import { DepthDownSample } from './DepthDownSample' import BlueNoise from './BlueNoise' import { WebGLMultipleRenderTargets } from '../../compat' -const bluenoiseBits = Buffer.from(BlueNoise, 'base64') +const bluenoiseBits = /* @__PURE__ */ Buffer.from(BlueNoise, 'base64') /** * diff --git a/src/effects/N8AO/PoissionBlur.js b/src/effects/N8AO/PoissionBlur.js index 3c806ce5..94f0a1db 100644 --- a/src/effects/N8AO/PoissionBlur.js +++ b/src/effects/N8AO/PoissionBlur.js @@ -5,12 +5,12 @@ const PoissionBlur = { sceneDiffuse: { value: null }, sceneDepth: { value: null }, tDiffuse: { value: null }, - projMat: { value: new THREE.Matrix4() }, - viewMat: { value: new THREE.Matrix4() }, - projectionMatrixInv: { value: new THREE.Matrix4() }, - viewMatrixInv: { value: new THREE.Matrix4() }, - cameraPos: { value: new THREE.Vector3() }, - resolution: { value: new THREE.Vector2() }, + projMat: { value: /* @__PURE__ */ new THREE.Matrix4() }, + viewMat: { value: /* @__PURE__ */ new THREE.Matrix4() }, + projectionMatrixInv: { value: /* @__PURE__ */ new THREE.Matrix4() }, + viewMatrixInv: { value: /* @__PURE__ */ new THREE.Matrix4() }, + cameraPos: { value: /* @__PURE__ */ new THREE.Vector3() }, + resolution: { value: /* @__PURE__ */ new THREE.Vector2() }, time: { value: 0.0 }, r: { value: 5.0 }, blueNoise: { value: null }, diff --git a/src/effects/N8AO/index.tsx b/src/effects/N8AO/index.tsx index b3c0dcf3..1ddbf2f7 100644 --- a/src/effects/N8AO/index.tsx +++ b/src/effects/N8AO/index.tsx @@ -21,7 +21,7 @@ type N8AOProps = { renderMode?: 0 | 1 | 2 | 3 | 4 } -export const N8AO = forwardRef( +export const N8AO = /* @__PURE__ */ forwardRef( ( { halfRes, diff --git a/src/effects/Noise.tsx b/src/effects/Noise.tsx index 82a79875..ff838b96 100644 --- a/src/effects/Noise.tsx +++ b/src/effects/Noise.tsx @@ -1,4 +1,4 @@ import { NoiseEffect, BlendFunction } from 'postprocessing' import { wrapEffect } from '../util' -export const Noise = wrapEffect(NoiseEffect, { blendFunction: BlendFunction.COLOR_DODGE, args: [] }) +export const Noise = /* @__PURE__ */ wrapEffect(NoiseEffect, { blendFunction: BlendFunction.COLOR_DODGE, args: [] }) diff --git a/src/effects/Outline.tsx b/src/effects/Outline.tsx index 62cd2186..f78b69d8 100644 --- a/src/effects/Outline.tsx +++ b/src/effects/Outline.tsx @@ -14,7 +14,7 @@ export type OutlineProps = ConstructorParameters[2] & selectionLayer: number }> -export const Outline = forwardRef(function Outline( +export const Outline = /* @__PURE__ */ forwardRef(function Outline( { selection = [], selectionLayer = 10, diff --git a/src/effects/Pixelation.tsx b/src/effects/Pixelation.tsx index 90243147..61a24a3e 100644 --- a/src/effects/Pixelation.tsx +++ b/src/effects/Pixelation.tsx @@ -5,7 +5,7 @@ export type PixelationProps = { granularity?: number } -export const Pixelation = forwardRef(function Pixelation( +export const Pixelation = /* @__PURE__ */ forwardRef(function Pixelation( { granularity = 5 }: PixelationProps, ref: Ref ) { diff --git a/src/effects/SMAA.tsx b/src/effects/SMAA.tsx index 8199ecb3..41a927e0 100644 --- a/src/effects/SMAA.tsx +++ b/src/effects/SMAA.tsx @@ -1,4 +1,4 @@ import { SMAAEffect } from 'postprocessing' import { wrapEffect } from '../util' -export const SMAA = wrapEffect(SMAAEffect) +export const SMAA = /* @__PURE__ */ wrapEffect(SMAAEffect) diff --git a/src/effects/SSAO.tsx b/src/effects/SSAO.tsx index 88c2b347..5bbac10a 100644 --- a/src/effects/SSAO.tsx +++ b/src/effects/SSAO.tsx @@ -5,7 +5,10 @@ import { EffectComposerContext } from '../EffectComposer' // first two args are camera and texture type SSAOProps = ConstructorParameters[2] -export const SSAO = forwardRef(function SSAO(props: SSAOProps, ref: Ref) { +export const SSAO = /* @__PURE__ */ forwardRef(function SSAO( + props: SSAOProps, + ref: Ref +) { const { camera, normalPass, downSamplingPass, resolutionScale } = useContext(EffectComposerContext) const effect = useMemo(() => { if (normalPass === null && downSamplingPass === null) { diff --git a/src/effects/SSR/index.tsx b/src/effects/SSR/index.tsx index db61fc41..7b828a27 100644 --- a/src/effects/SSR/index.tsx +++ b/src/effects/SSR/index.tsx @@ -59,7 +59,7 @@ type SSRProps = { USE_NORMALMAP?: boolean } -export const SSR = forwardRef(function SSR( +export const SSR = /* @__PURE__ */ forwardRef(function SSR( { ENABLE_BLUR = true, USE_MRT = true, ...props }: SSRProps, ref: Ref diff --git a/src/effects/SSR/screen-space-reflections.js b/src/effects/SSR/screen-space-reflections.js index cd8f7209..38487e1b 100644 --- a/src/effects/SSR/screen-space-reflections.js +++ b/src/effects/SSR/screen-space-reflections.js @@ -28,7 +28,8 @@ import { } from 'three' import { WebGLMultipleRenderTargets } from '../../compat' -const boxBlur = /* glsl */ ` +const { SSREffect, defaultSSROptions } = /* @__PURE__ */ (() => { + const boxBlur = /* glsl */ ` uniform float blur; uniform float blurSharpness; uniform int blurKernel; @@ -59,7 +60,7 @@ const boxBlur = /* glsl */ ` } ` -const finalSSRShader = /* glsl */ ` + const finalSSRShader = /* glsl */ ` #define MODE_DEFAULT 0 #define MODE_REFLECTIONS 1 #define MODE_RAW_REFLECTION 2 @@ -112,7 +113,7 @@ const finalSSRShader = /* glsl */ ` } ` -const helperFunctions = /* glsl */ ` + const helperFunctions = /* glsl */ ` vec3 getViewPosition(const float depth) { float clipW= _projectionMatrix[2][3] * depth + _projectionMatrix[3][3]; vec4 clipPosition = vec4((vec3(vUv, depth) - 0.5) * 2.0, 1.0); @@ -167,7 +168,7 @@ const helperFunctions = /* glsl */ ` } ` -const trCompose = /* glsl */ ` + const trCompose = /* glsl */ ` #define INV_EULER 0.36787944117144233 alpha = velocityDisocclusion < FLOAT_EPSILON ? (alpha + 0.0075) : 0.0; @@ -187,26 +188,26 @@ const trCompose = /* glsl */ ` } ` -// WebGL2: will render normals to RGB channel of "gNormal" buffer, roughness to A channel of "gNormal" buffer, depth to RGBA channel of "gDepth" buffer -// and velocity to "gVelocity" buffer - -class MRTMaterial extends ShaderMaterial { - constructor() { - super({ - type: 'MRTMaterial', - defines: { - USE_UV: '', - TEMPORAL_RESOLVE: '', - }, - uniforms: { - opacity: new Uniform(1), - normalMap: new Uniform(null), - normalScale: new Uniform(new Vector2(1, 1)), - uvTransform: new Uniform(new Matrix3()), - roughness: new Uniform(1), - roughnessMap: new Uniform(null), - }, - vertexShader: /* glsl */ ` + // WebGL2: will render normals to RGB channel of "gNormal" buffer, roughness to A channel of "gNormal" buffer, depth to RGBA channel of "gDepth" buffer + // and velocity to "gVelocity" buffer + + class MRTMaterial extends ShaderMaterial { + constructor() { + super({ + type: 'MRTMaterial', + defines: { + USE_UV: '', + TEMPORAL_RESOLVE: '', + }, + uniforms: { + opacity: new Uniform(1), + normalMap: new Uniform(null), + normalScale: new Uniform(new Vector2(1, 1)), + uvTransform: new Uniform(new Matrix3()), + roughness: new Uniform(1), + roughnessMap: new Uniform(null), + }, + vertexShader: /* glsl */ ` #ifdef USE_MRT varying vec2 vHighPrecisionZW; #endif @@ -251,7 +252,7 @@ class MRTMaterial extends ShaderMaterial { #endif } `, - fragmentShader: /* glsl */ ` + fragmentShader: /* glsl */ ` #define NORMAL #if defined(FLAT_SHADED) || defined(USE_BUMPMAP) || defined(TANGENTSPACE_NORMALMAP) varying vec3 vViewPosition; @@ -300,20 +301,20 @@ class MRTMaterial extends ShaderMaterial { #endif } `, - toneMapped: false, - }) - this.normalMapType = TangentSpaceNormalMap - this.normalScale = new Vector2(1, 1) - Object.defineProperty(this, 'glslVersion', { - get() { - return 'USE_MRT' in this.defines ? GLSL3 : null - }, - set(_) {}, - }) + toneMapped: false, + }) + this.normalMapType = TangentSpaceNormalMap + this.normalScale = new Vector2(1, 1) + Object.defineProperty(this, 'glslVersion', { + get() { + return 'USE_MRT' in this.defines ? GLSL3 : null + }, + set(_) {}, + }) + } } -} -const vertexShader = /* glsl */ ` + const vertexShader = /* glsl */ ` varying vec2 vUv; void main() { @@ -322,7 +323,7 @@ const vertexShader = /* glsl */ ` } ` -const fragmentShader = /* glsl */ ` + const fragmentShader = /* glsl */ ` varying vec2 vUv; uniform sampler2D inputTexture; uniform sampler2D accumulatedTexture; @@ -557,326 +558,326 @@ const fragmentShader = /* glsl */ ` } ` -class ReflectionsMaterial extends ShaderMaterial { - constructor() { - super({ - type: 'ReflectionsMaterial', - uniforms: { - inputTexture: new Uniform(null), - accumulatedTexture: new Uniform(null), - normalTexture: new Uniform(null), - depthTexture: new Uniform(null), - _projectionMatrix: new Uniform(new Matrix4()), - _inverseProjectionMatrix: new Uniform(new Matrix4()), - cameraMatrixWorld: new Uniform(new Matrix4()), - cameraNear: new Uniform(0), - cameraFar: new Uniform(0), - rayDistance: new Uniform(0), - intensity: new Uniform(0), - roughnessFade: new Uniform(0), - fade: new Uniform(0), - thickness: new Uniform(0), - ior: new Uniform(0), - maxDepthDifference: new Uniform(0), - jitter: new Uniform(0), - jitterRoughness: new Uniform(0), - maxRoughness: new Uniform(0), - samples: new Uniform(0), - envMap: new Uniform(null), - envMapPosition: new Uniform(new Vector3()), - envMapSize: new Uniform(new Vector3()), - viewMatrix: new Uniform(new Matrix4()), - }, - defines: { - steps: 20, - refineSteps: 5, - CUBEUV_TEXEL_WIDTH: 0, - CUBEUV_TEXEL_HEIGHT: 0, - CUBEUV_MAX_MIP: 0, - vWorldPosition: 'worldPos', - }, - fragmentShader, - vertexShader, - toneMapped: false, - depthWrite: false, - depthTest: false, - }) + class ReflectionsMaterial extends ShaderMaterial { + constructor() { + super({ + type: 'ReflectionsMaterial', + uniforms: { + inputTexture: new Uniform(null), + accumulatedTexture: new Uniform(null), + normalTexture: new Uniform(null), + depthTexture: new Uniform(null), + _projectionMatrix: new Uniform(new Matrix4()), + _inverseProjectionMatrix: new Uniform(new Matrix4()), + cameraMatrixWorld: new Uniform(new Matrix4()), + cameraNear: new Uniform(0), + cameraFar: new Uniform(0), + rayDistance: new Uniform(0), + intensity: new Uniform(0), + roughnessFade: new Uniform(0), + fade: new Uniform(0), + thickness: new Uniform(0), + ior: new Uniform(0), + maxDepthDifference: new Uniform(0), + jitter: new Uniform(0), + jitterRoughness: new Uniform(0), + maxRoughness: new Uniform(0), + samples: new Uniform(0), + envMap: new Uniform(null), + envMapPosition: new Uniform(new Vector3()), + envMapSize: new Uniform(new Vector3()), + viewMatrix: new Uniform(new Matrix4()), + }, + defines: { + steps: 20, + refineSteps: 5, + CUBEUV_TEXEL_WIDTH: 0, + CUBEUV_TEXEL_HEIGHT: 0, + CUBEUV_MAX_MIP: 0, + vWorldPosition: 'worldPos', + }, + fragmentShader, + vertexShader, + toneMapped: false, + depthWrite: false, + depthTest: false, + }) + } } -} -const getVisibleChildren = (object) => { - const queue = [object] - const objects = [] + const getVisibleChildren = (object) => { + const queue = [object] + const objects = [] - while (queue.length !== 0) { - const mesh = queue.shift() - if (mesh.material) objects.push(mesh) + while (queue.length !== 0) { + const mesh = queue.shift() + if (mesh.material) objects.push(mesh) - for (const c of mesh.children) { - if (c.visible) queue.push(c) + for (const c of mesh.children) { + if (c.visible) queue.push(c) + } } - } - return objects -} -const generateCubeUVSize = (parameters) => { - const imageHeight = parameters.envMapCubeUVHeight - if (imageHeight === null) return null - const maxMip = Math.log2(imageHeight) - 2 - const texelHeight = 1.0 / imageHeight - const texelWidth = 1.0 / (3 * Math.max(Math.pow(2, maxMip), 7 * 16)) - return { - texelWidth, - texelHeight, - maxMip, + return objects } -} -const setupEnvMap = (reflectionsMaterial, envMap, envMapCubeUVHeight) => { - reflectionsMaterial.uniforms.envMap.value = envMap - const envMapCubeUVSize = generateCubeUVSize({ - envMapCubeUVHeight, - }) - reflectionsMaterial.defines.ENVMAP_TYPE_CUBE_UV = '' - reflectionsMaterial.defines.CUBEUV_TEXEL_WIDTH = envMapCubeUVSize.texelWidth - reflectionsMaterial.defines.CUBEUV_TEXEL_HEIGHT = envMapCubeUVSize.texelHeight - reflectionsMaterial.defines.CUBEUV_MAX_MIP = envMapCubeUVSize.maxMip + '.0' - reflectionsMaterial.needsUpdate = true -} - -const isWebGL2Available = () => { - try { - const canvas = document.createElement('canvas') - return !!(window.WebGL2RenderingContext && canvas.getContext('webgl2')) - } catch (e) { - return false + const generateCubeUVSize = (parameters) => { + const imageHeight = parameters.envMapCubeUVHeight + if (imageHeight === null) return null + const maxMip = Math.log2(imageHeight) - 2 + const texelHeight = 1.0 / imageHeight + const texelWidth = 1.0 / (3 * Math.max(Math.pow(2, maxMip), 7 * 16)) + return { + texelWidth, + texelHeight, + maxMip, + } } -} - -class ReflectionsPass extends Pass { - constructor(ssrEffect, options = {}) { - super('ReflectionsPass') - this.ssrEffect = void 0 - this.cachedMaterials = new WeakMap() - this.USE_MRT = false - this.webgl1DepthPass = null - this.visibleMeshes = [] - this.ssrEffect = ssrEffect - this._scene = ssrEffect._scene - this._camera = ssrEffect._camera - this.fullscreenMaterial = new ReflectionsMaterial() - if (ssrEffect._camera.isPerspectiveCamera) this.fullscreenMaterial.defines.PERSPECTIVE_CAMERA = '' - const width = options.width || typeof window !== 'undefined' ? window.innerWidth : 2000 - const height = options.height || typeof window !== 'undefined' ? window.innerHeight : 1000 - this.renderTarget = new WebGLRenderTarget(width, height, { - minFilter: LinearFilter, - magFilter: LinearFilter, - type: HalfFloatType, - depthBuffer: false, + const setupEnvMap = (reflectionsMaterial, envMap, envMapCubeUVHeight) => { + reflectionsMaterial.uniforms.envMap.value = envMap + const envMapCubeUVSize = generateCubeUVSize({ + envMapCubeUVHeight, }) - this.renderPass = new RenderPass(this._scene, this._camera) - this.USE_MRT = isWebGL2Available() + reflectionsMaterial.defines.ENVMAP_TYPE_CUBE_UV = '' + reflectionsMaterial.defines.CUBEUV_TEXEL_WIDTH = envMapCubeUVSize.texelWidth + reflectionsMaterial.defines.CUBEUV_TEXEL_HEIGHT = envMapCubeUVSize.texelHeight + reflectionsMaterial.defines.CUBEUV_MAX_MIP = envMapCubeUVSize.maxMip + '.0' + reflectionsMaterial.needsUpdate = true + } - if (this.USE_MRT) { - // buffers: normal, depth (2), roughness will be written to the alpha channel of the normal buffer - this.gBuffersRenderTarget = new WebGLMultipleRenderTargets(width, height, 2, { - minFilter: LinearFilter, - magFilter: LinearFilter, - }) - this.normalTexture = this.gBuffersRenderTarget.texture[0] - this.depthTexture = this.gBuffersRenderTarget.texture[1] - } else { - // depth pass - this.webgl1DepthPass = new DepthPass(this._scene, this._camera) - this.webgl1DepthPass.renderTarget.minFilter = LinearFilter - this.webgl1DepthPass.renderTarget.magFilter = LinearFilter - this.webgl1DepthPass.renderTarget.texture.minFilter = LinearFilter - this.webgl1DepthPass.renderTarget.texture.magFilter = LinearFilter - this.webgl1DepthPass.setSize( - typeof window !== 'undefined' ? window.innerWidth : 2000, - typeof window !== 'undefined' ? window.innerHeight : 1000 - ) // render normals (in the rgb channel) and roughness (in the alpha channel) in gBuffersRenderTarget - - this.gBuffersRenderTarget = new WebGLRenderTarget(width, height, { + const isWebGL2Available = () => { + try { + const canvas = document.createElement('canvas') + return !!(window.WebGL2RenderingContext && canvas.getContext('webgl2')) + } catch (e) { + return false + } + } + + class ReflectionsPass extends Pass { + constructor(ssrEffect, options = {}) { + super('ReflectionsPass') + this.ssrEffect = void 0 + this.cachedMaterials = new WeakMap() + this.USE_MRT = false + this.webgl1DepthPass = null + this.visibleMeshes = [] + this.ssrEffect = ssrEffect + this._scene = ssrEffect._scene + this._camera = ssrEffect._camera + this.fullscreenMaterial = new ReflectionsMaterial() + if (ssrEffect._camera.isPerspectiveCamera) this.fullscreenMaterial.defines.PERSPECTIVE_CAMERA = '' + const width = options.width || typeof window !== 'undefined' ? window.innerWidth : 2000 + const height = options.height || typeof window !== 'undefined' ? window.innerHeight : 1000 + this.renderTarget = new WebGLRenderTarget(width, height, { minFilter: LinearFilter, magFilter: LinearFilter, + type: HalfFloatType, + depthBuffer: false, }) - this.normalTexture = this.gBuffersRenderTarget.texture - this.depthTexture = this.webgl1DepthPass.texture - } // set up uniforms - - this.fullscreenMaterial.uniforms.normalTexture.value = this.normalTexture - this.fullscreenMaterial.uniforms.depthTexture.value = this.depthTexture - this.fullscreenMaterial.uniforms.accumulatedTexture.value = this.ssrEffect.temporalResolvePass.accumulatedTexture - this.fullscreenMaterial.uniforms.cameraMatrixWorld.value = this._camera.matrixWorld - this.fullscreenMaterial.uniforms._projectionMatrix.value = this._camera.projectionMatrix - this.fullscreenMaterial.uniforms._inverseProjectionMatrix.value = this._camera.projectionMatrixInverse - } + this.renderPass = new RenderPass(this._scene, this._camera) + this.USE_MRT = isWebGL2Available() + + if (this.USE_MRT) { + // buffers: normal, depth (2), roughness will be written to the alpha channel of the normal buffer + this.gBuffersRenderTarget = new WebGLMultipleRenderTargets(width, height, 2, { + minFilter: LinearFilter, + magFilter: LinearFilter, + }) + this.normalTexture = this.gBuffersRenderTarget.texture[0] + this.depthTexture = this.gBuffersRenderTarget.texture[1] + } else { + // depth pass + this.webgl1DepthPass = new DepthPass(this._scene, this._camera) + this.webgl1DepthPass.renderTarget.minFilter = LinearFilter + this.webgl1DepthPass.renderTarget.magFilter = LinearFilter + this.webgl1DepthPass.renderTarget.texture.minFilter = LinearFilter + this.webgl1DepthPass.renderTarget.texture.magFilter = LinearFilter + this.webgl1DepthPass.setSize( + typeof window !== 'undefined' ? window.innerWidth : 2000, + typeof window !== 'undefined' ? window.innerHeight : 1000 + ) // render normals (in the rgb channel) and roughness (in the alpha channel) in gBuffersRenderTarget + + this.gBuffersRenderTarget = new WebGLRenderTarget(width, height, { + minFilter: LinearFilter, + magFilter: LinearFilter, + }) + this.normalTexture = this.gBuffersRenderTarget.texture + this.depthTexture = this.webgl1DepthPass.texture + } // set up uniforms + + this.fullscreenMaterial.uniforms.normalTexture.value = this.normalTexture + this.fullscreenMaterial.uniforms.depthTexture.value = this.depthTexture + this.fullscreenMaterial.uniforms.accumulatedTexture.value = this.ssrEffect.temporalResolvePass.accumulatedTexture + this.fullscreenMaterial.uniforms.cameraMatrixWorld.value = this._camera.matrixWorld + this.fullscreenMaterial.uniforms._projectionMatrix.value = this._camera.projectionMatrix + this.fullscreenMaterial.uniforms._inverseProjectionMatrix.value = this._camera.projectionMatrixInverse + } - setSize(width, height) { - this.renderTarget.setSize(width * this.ssrEffect.resolutionScale, height * this.ssrEffect.resolutionScale) - this.gBuffersRenderTarget.setSize(width * this.ssrEffect.resolutionScale, height * this.ssrEffect.resolutionScale) - this.fullscreenMaterial.uniforms.accumulatedTexture.value = this.ssrEffect.temporalResolvePass.accumulatedTexture - this.fullscreenMaterial.needsUpdate = true - } + setSize(width, height) { + this.renderTarget.setSize(width * this.ssrEffect.resolutionScale, height * this.ssrEffect.resolutionScale) + this.gBuffersRenderTarget.setSize(width * this.ssrEffect.resolutionScale, height * this.ssrEffect.resolutionScale) + this.fullscreenMaterial.uniforms.accumulatedTexture.value = this.ssrEffect.temporalResolvePass.accumulatedTexture + this.fullscreenMaterial.needsUpdate = true + } - dispose() { - this.renderTarget.dispose() - this.gBuffersRenderTarget.dispose() - this.renderPass.dispose() - if (!this.USE_MRT) this.webgl1DepthPass.dispose() - this.fullscreenMaterial.dispose() - this.normalTexture = null - this.depthTexture = null - this.velocityTexture = null - } + dispose() { + this.renderTarget.dispose() + this.gBuffersRenderTarget.dispose() + this.renderPass.dispose() + if (!this.USE_MRT) this.webgl1DepthPass.dispose() + this.fullscreenMaterial.dispose() + this.normalTexture = null + this.depthTexture = null + this.velocityTexture = null + } - keepMaterialMapUpdated(mrtMaterial, originalMaterial, prop, define) { - if (this.ssrEffect[define]) { - if (originalMaterial[prop] !== mrtMaterial[prop]) { - mrtMaterial[prop] = originalMaterial[prop] - mrtMaterial.uniforms[prop].value = originalMaterial[prop] + keepMaterialMapUpdated(mrtMaterial, originalMaterial, prop, define) { + if (this.ssrEffect[define]) { + if (originalMaterial[prop] !== mrtMaterial[prop]) { + mrtMaterial[prop] = originalMaterial[prop] + mrtMaterial.uniforms[prop].value = originalMaterial[prop] - if (originalMaterial[prop]) { - mrtMaterial.defines[define] = '' - } else { - delete mrtMaterial.defines[define] - } + if (originalMaterial[prop]) { + mrtMaterial.defines[define] = '' + } else { + delete mrtMaterial.defines[define] + } + mrtMaterial.needsUpdate = true + } + } else if (mrtMaterial[prop] !== undefined) { + mrtMaterial[prop] = undefined + mrtMaterial.uniforms[prop].value = undefined + delete mrtMaterial.defines[define] mrtMaterial.needsUpdate = true } - } else if (mrtMaterial[prop] !== undefined) { - mrtMaterial[prop] = undefined - mrtMaterial.uniforms[prop].value = undefined - delete mrtMaterial.defines[define] - mrtMaterial.needsUpdate = true } - } - setMRTMaterialInScene() { - this.visibleMeshes = getVisibleChildren(this._scene) - - for (const c of this.visibleMeshes) { - if (c.material) { - const originalMaterial = c.material - let [cachedOriginalMaterial, mrtMaterial] = this.cachedMaterials.get(c) || [] - - if (originalMaterial !== cachedOriginalMaterial) { - if (mrtMaterial) mrtMaterial.dispose() - mrtMaterial = new MRTMaterial() - if (this.USE_MRT) mrtMaterial.defines.USE_MRT = '' - mrtMaterial.normalScale = originalMaterial.normalScale - mrtMaterial.uniforms.normalScale.value = originalMaterial.normalScale - const map = - originalMaterial.map || - originalMaterial.normalMap || - originalMaterial.roughnessMap || - originalMaterial.metalnessMap - if (map) mrtMaterial.uniforms.uvTransform.value = map.matrix - this.cachedMaterials.set(c, [originalMaterial, mrtMaterial]) - } // update the child's MRT material - - this.keepMaterialMapUpdated(mrtMaterial, originalMaterial, 'normalMap', 'useNormalMap') - this.keepMaterialMapUpdated(mrtMaterial, originalMaterial, 'roughnessMap', 'useRoughnessMap') - mrtMaterial.uniforms.roughness.value = - this.ssrEffect.selection.size === 0 || this.ssrEffect.selection.has(c) - ? originalMaterial.roughness || 0 - : 10e10 - c.material = mrtMaterial + setMRTMaterialInScene() { + this.visibleMeshes = getVisibleChildren(this._scene) + + for (const c of this.visibleMeshes) { + if (c.material) { + const originalMaterial = c.material + let [cachedOriginalMaterial, mrtMaterial] = this.cachedMaterials.get(c) || [] + + if (originalMaterial !== cachedOriginalMaterial) { + if (mrtMaterial) mrtMaterial.dispose() + mrtMaterial = new MRTMaterial() + if (this.USE_MRT) mrtMaterial.defines.USE_MRT = '' + mrtMaterial.normalScale = originalMaterial.normalScale + mrtMaterial.uniforms.normalScale.value = originalMaterial.normalScale + const map = + originalMaterial.map || + originalMaterial.normalMap || + originalMaterial.roughnessMap || + originalMaterial.metalnessMap + if (map) mrtMaterial.uniforms.uvTransform.value = map.matrix + this.cachedMaterials.set(c, [originalMaterial, mrtMaterial]) + } // update the child's MRT material + + this.keepMaterialMapUpdated(mrtMaterial, originalMaterial, 'normalMap', 'useNormalMap') + this.keepMaterialMapUpdated(mrtMaterial, originalMaterial, 'roughnessMap', 'useRoughnessMap') + mrtMaterial.uniforms.roughness.value = + this.ssrEffect.selection.size === 0 || this.ssrEffect.selection.has(c) + ? originalMaterial.roughness || 0 + : 10e10 + c.material = mrtMaterial + } } } - } - unsetMRTMaterialInScene() { - for (const c of this.visibleMeshes) { - var _c$material + unsetMRTMaterialInScene() { + for (const c of this.visibleMeshes) { + var _c$material - if (((_c$material = c.material) == null ? void 0 : _c$material.type) === 'MRTMaterial') { - c.visible = true // set material back to the original one + if (((_c$material = c.material) == null ? void 0 : _c$material.type) === 'MRTMaterial') { + c.visible = true // set material back to the original one - const [originalMaterial] = this.cachedMaterials.get(c) - c.material = originalMaterial + const [originalMaterial] = this.cachedMaterials.get(c) + c.material = originalMaterial + } } } + + render(renderer, inputBuffer) { + this.setMRTMaterialInScene() + renderer.setRenderTarget(this.gBuffersRenderTarget) + this.renderPass.render(renderer, this.gBuffersRenderTarget) + this.unsetMRTMaterialInScene() // render depth and velocity in seperate passes + + if (!this.USE_MRT) this.webgl1DepthPass.renderPass.render(renderer, this.webgl1DepthPass.renderTarget) + this.fullscreenMaterial.uniforms.inputTexture.value = inputBuffer.texture + this.fullscreenMaterial.uniforms.samples.value = this.ssrEffect.temporalResolvePass.samples + this.fullscreenMaterial.uniforms.cameraNear.value = this._camera.near + this.fullscreenMaterial.uniforms.cameraFar.value = this._camera.far + this.fullscreenMaterial.uniforms.viewMatrix.value.copy(this._camera.matrixWorldInverse) + renderer.setRenderTarget(this.renderTarget) + renderer.render(this.scene, this.camera) + } } - render(renderer, inputBuffer) { - this.setMRTMaterialInScene() - renderer.setRenderTarget(this.gBuffersRenderTarget) - this.renderPass.render(renderer, this.gBuffersRenderTarget) - this.unsetMRTMaterialInScene() // render depth and velocity in seperate passes - - if (!this.USE_MRT) this.webgl1DepthPass.renderPass.render(renderer, this.webgl1DepthPass.renderTarget) - this.fullscreenMaterial.uniforms.inputTexture.value = inputBuffer.texture - this.fullscreenMaterial.uniforms.samples.value = this.ssrEffect.temporalResolvePass.samples - this.fullscreenMaterial.uniforms.cameraNear.value = this._camera.near - this.fullscreenMaterial.uniforms.cameraFar.value = this._camera.far - this.fullscreenMaterial.uniforms.viewMatrix.value.copy(this._camera.matrixWorldInverse) - renderer.setRenderTarget(this.renderTarget) - renderer.render(this.scene, this.camera) + /** + * Options of the SSR effect + * @typedef {Object} SSROptions + * @property {Number} [intensity] intensity of the reflections + * @property {Number} [exponent] exponent by which reflections will be potentiated when composing the current frame's reflections and the accumulated reflections into a final reflection; higher values will make reflections clearer by highlighting darker spots less + * @property {Number} [distance] maximum distance a reflection ray can travel to find what it reflects + * @property {Number} [fade] how much reflections will fade out by distance + * @property {Number} [roughnessFade] how intense reflections should be on rough spots; a higher value will make reflections fade out quicker on rough spots + * @property {Number} [thickness] maximum depth difference between a ray and the particular depth at its screen position before refining with binary search; higher values will result in better performance + * @property {Number} [ior] Index of Refraction, used for calculating fresnel; reflections tend to be more intense the steeper the angle between them and the viewer is, the ior parameter sets how much the intensity varies + * @property {Number} [maxRoughness] maximum roughness a texel can have to have reflections calculated for it + * @property {Number} [maxDepthDifference] maximum depth difference between a ray and the particular depth at its screen position after refining with binary search; higher values will result in better performance + * @property {Number} [blend] a value between 0 and 1 to set how much the last frame's reflections should be blended in; higher values will result in less noisy reflections when moving the camera but a more smeary look + * @property {boolean} [correction] how much pixels should be corrected when doing temporal resolving; higher values will result in less smearing but more noise + * @property {boolean} [correctionRadius] how many surrounding pixels will be used for neighborhood clamping; a higher value can reduce noise when moving the camera but will result in less performance + * @property {Number} [blur] how much the blurred reflections should be mixed with the raw reflections + * @property {Number} [blurKernel] kernel size of the Box Blur Filter; higher kernel sizes will result in blurrier reflections with more artifacts + * @property {Number} [blurSharpness] exponent of the Box Blur filter; higher values will result in more sharpness + * @property {Number} [jitter] how intense jittering should be + * @property {Number} [jitterRoughness] how intense jittering should be in relation to a material's roughness + * @property {Number} [steps] number of steps a reflection ray can maximally do to find an object it intersected (and thus reflects) + * @property {Number} [refineSteps] once we had our ray intersect something, we need to find the exact point in space it intersected and thus it reflects; this can be done through binary search with the given number of maximum steps + * @property {boolean} [missedRays] if there should still be reflections for rays for which a reflecting point couldn't be found; enabling this will result in stretched looking reflections which can look good or bad depending on the angle + * @property {boolean} [useNormalMap] if roughness maps should be taken account of when calculating reflections + * @property {boolean} [useRoughnessMap] if normal maps should be taken account of when calculating reflections + * @property {Number} [resolutionScale] resolution of the SSR effect, a resolution of 0.5 means the effect will be rendered at half resolution + * @property {Number} [velocityResolutionScale] resolution of the velocity buffer, a resolution of 0.5 means velocity will be rendered at half resolution + */ + + /** + * The options of the SSR effect + * @type {SSROptions} + */ + const defaultSSROptions = { + intensity: 1, + exponent: 1, + distance: 10, + fade: 0, + roughnessFade: 1, + thickness: 10, + ior: 1.45, + maxRoughness: 1, + maxDepthDifference: 10, + blend: 0.9, + correction: 1, + correctionRadius: 1, + blur: 0.5, + blurKernel: 1, + blurSharpness: 10, + jitter: 0, + jitterRoughness: 0, + steps: 20, + refineSteps: 5, + missedRays: true, + useNormalMap: true, + useRoughnessMap: true, + resolutionScale: 1, + velocityResolutionScale: 1, } -} - -/** - * Options of the SSR effect - * @typedef {Object} SSROptions - * @property {Number} [intensity] intensity of the reflections - * @property {Number} [exponent] exponent by which reflections will be potentiated when composing the current frame's reflections and the accumulated reflections into a final reflection; higher values will make reflections clearer by highlighting darker spots less - * @property {Number} [distance] maximum distance a reflection ray can travel to find what it reflects - * @property {Number} [fade] how much reflections will fade out by distance - * @property {Number} [roughnessFade] how intense reflections should be on rough spots; a higher value will make reflections fade out quicker on rough spots - * @property {Number} [thickness] maximum depth difference between a ray and the particular depth at its screen position before refining with binary search; higher values will result in better performance - * @property {Number} [ior] Index of Refraction, used for calculating fresnel; reflections tend to be more intense the steeper the angle between them and the viewer is, the ior parameter sets how much the intensity varies - * @property {Number} [maxRoughness] maximum roughness a texel can have to have reflections calculated for it - * @property {Number} [maxDepthDifference] maximum depth difference between a ray and the particular depth at its screen position after refining with binary search; higher values will result in better performance - * @property {Number} [blend] a value between 0 and 1 to set how much the last frame's reflections should be blended in; higher values will result in less noisy reflections when moving the camera but a more smeary look - * @property {boolean} [correction] how much pixels should be corrected when doing temporal resolving; higher values will result in less smearing but more noise - * @property {boolean} [correctionRadius] how many surrounding pixels will be used for neighborhood clamping; a higher value can reduce noise when moving the camera but will result in less performance - * @property {Number} [blur] how much the blurred reflections should be mixed with the raw reflections - * @property {Number} [blurKernel] kernel size of the Box Blur Filter; higher kernel sizes will result in blurrier reflections with more artifacts - * @property {Number} [blurSharpness] exponent of the Box Blur filter; higher values will result in more sharpness - * @property {Number} [jitter] how intense jittering should be - * @property {Number} [jitterRoughness] how intense jittering should be in relation to a material's roughness - * @property {Number} [steps] number of steps a reflection ray can maximally do to find an object it intersected (and thus reflects) - * @property {Number} [refineSteps] once we had our ray intersect something, we need to find the exact point in space it intersected and thus it reflects; this can be done through binary search with the given number of maximum steps - * @property {boolean} [missedRays] if there should still be reflections for rays for which a reflecting point couldn't be found; enabling this will result in stretched looking reflections which can look good or bad depending on the angle - * @property {boolean} [useNormalMap] if roughness maps should be taken account of when calculating reflections - * @property {boolean} [useRoughnessMap] if normal maps should be taken account of when calculating reflections - * @property {Number} [resolutionScale] resolution of the SSR effect, a resolution of 0.5 means the effect will be rendered at half resolution - * @property {Number} [velocityResolutionScale] resolution of the velocity buffer, a resolution of 0.5 means velocity will be rendered at half resolution - */ - -/** - * The options of the SSR effect - * @type {SSROptions} - */ -const defaultSSROptions = { - intensity: 1, - exponent: 1, - distance: 10, - fade: 0, - roughnessFade: 1, - thickness: 10, - ior: 1.45, - maxRoughness: 1, - maxDepthDifference: 10, - blend: 0.9, - correction: 1, - correctionRadius: 1, - blur: 0.5, - blurKernel: 1, - blurSharpness: 10, - jitter: 0, - jitterRoughness: 0, - steps: 20, - refineSteps: 5, - missedRays: true, - useNormalMap: true, - useRoughnessMap: true, - resolutionScale: 1, - velocityResolutionScale: 1, -} - -const temporalResolve = /* glsl */ ` + + const temporalResolve = /* glsl */ ` uniform sampler2D inputTexture; uniform sampler2D accumulatedTexture; uniform sampler2D velocityTexture; @@ -1028,37 +1029,37 @@ const temporalResolve = /* glsl */ ` } ` -class TemporalResolveMaterial extends ShaderMaterial { - constructor(customComposeShader) { - const fragmentShader = temporalResolve.replace('#include ', customComposeShader) - super({ - type: 'TemporalResolveMaterial', - uniforms: { - inputTexture: new Uniform(null), - accumulatedTexture: new Uniform(null), - velocityTexture: new Uniform(null), - lastVelocityTexture: new Uniform(null), - samples: new Uniform(1), - blend: new Uniform(0.5), - correction: new Uniform(1), - exponent: new Uniform(1), - invTexSize: new Uniform(new Vector2()), - }, - defines: { - correctionRadius: 1, - }, - vertexShader, - fragmentShader, - }) + class TemporalResolveMaterial extends ShaderMaterial { + constructor(customComposeShader) { + const fragmentShader = temporalResolve.replace('#include ', customComposeShader) + super({ + type: 'TemporalResolveMaterial', + uniforms: { + inputTexture: new Uniform(null), + accumulatedTexture: new Uniform(null), + velocityTexture: new Uniform(null), + lastVelocityTexture: new Uniform(null), + samples: new Uniform(1), + blend: new Uniform(0.5), + correction: new Uniform(1), + exponent: new Uniform(1), + invTexSize: new Uniform(new Vector2()), + }, + defines: { + correctionRadius: 1, + }, + vertexShader, + fragmentShader, + }) + } } -} -// this shader is from: https://github.com/gkjohnson/threejs-sandbox -// a second set of bone information from the previou frame + // this shader is from: https://github.com/gkjohnson/threejs-sandbox + // a second set of bone information from the previou frame -const prev_skinning_pars_vertex = - /* glsl */ - ` + const prev_skinning_pars_vertex = + /* glsl */ + ` #ifdef USE_SKINNING #ifdef BONE_TEXTURE uniform sampler2D prevBoneTexture; @@ -1085,11 +1086,11 @@ const prev_skinning_pars_vertex = #endif #endif ` // Returns the body of the vertex shader for the velocity buffer and -// outputs the position of the current and last frame positions + // outputs the position of the current and last frame positions -const velocity_vertex = - /* glsl */ - ` + const velocity_vertex = + /* glsl */ + ` vec3 transformed; // Get the normal @@ -1111,44 +1112,44 @@ const velocity_vertex = gl_Position = newPosition; ` -class VelocityMaterial extends ShaderMaterial { - constructor() { - super({ - uniforms: { - prevVelocityMatrix: { - value: new Matrix4(), - }, - velocityMatrix: { - value: new Matrix4(), - }, - prevBoneTexture: { - value: null, - }, - interpolateGeometry: { - value: 0, - }, - intensity: { - value: 1, - }, - boneTexture: { - value: null, - }, - alphaTest: { - value: 0.0, - }, - map: { - value: null, + class VelocityMaterial extends ShaderMaterial { + constructor() { + super({ + uniforms: { + prevVelocityMatrix: { + value: new Matrix4(), + }, + velocityMatrix: { + value: new Matrix4(), + }, + prevBoneTexture: { + value: null, + }, + interpolateGeometry: { + value: 0, + }, + intensity: { + value: 1, + }, + boneTexture: { + value: null, + }, + alphaTest: { + value: 0.0, + }, + map: { + value: null, + }, + alphaMap: { + value: null, + }, + opacity: { + value: 1.0, + }, }, - alphaMap: { - value: null, - }, - opacity: { - value: 1.0, - }, - }, - vertexShader: - /* glsl */ - ` + vertexShader: + /* glsl */ + ` #define MAX_BONES 1024 ${ShaderChunk.skinning_pars_vertex} @@ -1168,9 +1169,9 @@ class VelocityMaterial extends ShaderMaterial { vHighPrecisionZW = gl_Position.zw; }`, - fragmentShader: - /* glsl */ - ` + fragmentShader: + /* glsl */ + ` uniform float intensity; varying vec4 prevPosition; varying vec4 newPosition; @@ -1192,327 +1193,335 @@ class VelocityMaterial extends ShaderMaterial { gl_FragColor = vec4( vel, 1. - fragCoordZ, 0. ); }`, - }) - this.isVelocityMaterial = true - } -} - -const backgroundColor = new Color(0) -const updateProperties = ['visible', 'wireframe', 'side'] -class VelocityPass extends Pass { - constructor(scene, camera) { - var _window, _window2 - - super('VelocityPass') - this.cachedMaterials = new WeakMap() - this.lastCameraTransform = { - position: new Vector3(), - quaternion: new Quaternion(), + }) + this.isVelocityMaterial = true } - this.visibleMeshes = [] - this.renderedMeshesThisFrame = 0 - this.renderedMeshesLastFrame = 0 - this._scene = scene - this._camera = camera - this.renderTarget = new WebGLRenderTarget( - ((_window = window) == null ? void 0 : _window.innerWidth) || 1000, - ((_window2 = window) == null ? void 0 : _window2.innerHeight) || 1000, - { - type: HalfFloatType, - } - ) } - setVelocityMaterialInScene() { - this.renderedMeshesThisFrame = 0 - this.visibleMeshes = getVisibleChildren(this._scene) + const backgroundColor = /* @__PURE__ */ new Color(0) + const updateProperties = ['visible', 'wireframe', 'side'] + class VelocityPass extends Pass { + constructor(scene, camera) { + var _window, _window2 + + super('VelocityPass') + this.cachedMaterials = new WeakMap() + this.lastCameraTransform = { + position: new Vector3(), + quaternion: new Quaternion(), + } + this.visibleMeshes = [] + this.renderedMeshesThisFrame = 0 + this.renderedMeshesLastFrame = 0 + this._scene = scene + this._camera = camera + this.renderTarget = new WebGLRenderTarget( + ((_window = window) == null ? void 0 : _window.innerWidth) || 1000, + ((_window2 = window) == null ? void 0 : _window2.innerHeight) || 1000, + { + type: HalfFloatType, + } + ) + } + + setVelocityMaterialInScene() { + this.renderedMeshesThisFrame = 0 + this.visibleMeshes = getVisibleChildren(this._scene) - for (const c of this.visibleMeshes) { - var _c$skeleton2 + for (const c of this.visibleMeshes) { + var _c$skeleton2 - const originalMaterial = c.material - let [cachedOriginalMaterial, velocityMaterial] = this.cachedMaterials.get(c) || [] + const originalMaterial = c.material + let [cachedOriginalMaterial, velocityMaterial] = this.cachedMaterials.get(c) || [] + + if (originalMaterial !== cachedOriginalMaterial) { + var _c$skeleton - if (originalMaterial !== cachedOriginalMaterial) { - var _c$skeleton + velocityMaterial = new VelocityMaterial() + velocityMaterial.lastMatrixWorld = new Matrix4() + c.material = velocityMaterial + if ((_c$skeleton = c.skeleton) != null && _c$skeleton.boneTexture) this.saveBoneTexture(c) + this.cachedMaterials.set(c, [originalMaterial, velocityMaterial]) + } + + velocityMaterial.uniforms.velocityMatrix.value.multiplyMatrices( + this._camera.projectionMatrix, + c.modelViewMatrix + ) + + if (c.userData.needsUpdatedReflections || originalMaterial.map instanceof VideoTexture) { + if (!('FULL_MOVEMENT' in velocityMaterial.defines)) velocityMaterial.needsUpdate = true + velocityMaterial.defines.FULL_MOVEMENT = '' + } else { + if ('FULL_MOVEMENT' in velocityMaterial.defines) { + delete velocityMaterial.defines.FULL_MOVEMENT + velocityMaterial.needsUpdate = true + } + } - velocityMaterial = new VelocityMaterial() - velocityMaterial.lastMatrixWorld = new Matrix4() + c.visible = + this.cameraMovedThisFrame || + !c.matrixWorld.equals(velocityMaterial.lastMatrixWorld) || + c.skeleton || + 'FULL_MOVEMENT' in velocityMaterial.defines c.material = velocityMaterial - if ((_c$skeleton = c.skeleton) != null && _c$skeleton.boneTexture) this.saveBoneTexture(c) - this.cachedMaterials.set(c, [originalMaterial, velocityMaterial]) - } + if (!c.visible) continue + this.renderedMeshesThisFrame++ - velocityMaterial.uniforms.velocityMatrix.value.multiplyMatrices(this._camera.projectionMatrix, c.modelViewMatrix) + for (const prop of updateProperties) velocityMaterial[prop] = originalMaterial[prop] - if (c.userData.needsUpdatedReflections || originalMaterial.map instanceof VideoTexture) { - if (!('FULL_MOVEMENT' in velocityMaterial.defines)) velocityMaterial.needsUpdate = true - velocityMaterial.defines.FULL_MOVEMENT = '' - } else { - if ('FULL_MOVEMENT' in velocityMaterial.defines) { - delete velocityMaterial.defines.FULL_MOVEMENT - velocityMaterial.needsUpdate = true + if ((_c$skeleton2 = c.skeleton) != null && _c$skeleton2.boneTexture) { + velocityMaterial.defines.USE_SKINNING = '' + velocityMaterial.defines.BONE_TEXTURE = '' + velocityMaterial.uniforms.boneTexture.value = c.skeleton.boneTexture } } + } + + saveBoneTexture(object) { + let boneTexture = object.material.uniforms.prevBoneTexture.value - c.visible = - this.cameraMovedThisFrame || - !c.matrixWorld.equals(velocityMaterial.lastMatrixWorld) || - c.skeleton || - 'FULL_MOVEMENT' in velocityMaterial.defines - c.material = velocityMaterial - if (!c.visible) continue - this.renderedMeshesThisFrame++ - - for (const prop of updateProperties) velocityMaterial[prop] = originalMaterial[prop] - - if ((_c$skeleton2 = c.skeleton) != null && _c$skeleton2.boneTexture) { - velocityMaterial.defines.USE_SKINNING = '' - velocityMaterial.defines.BONE_TEXTURE = '' - velocityMaterial.uniforms.boneTexture.value = c.skeleton.boneTexture + if (boneTexture && boneTexture.image.width === object.skeleton.boneTexture.width) { + boneTexture = object.material.uniforms.prevBoneTexture.value + boneTexture.image.data.set(object.skeleton.boneTexture.image.data) + } else { + var _boneTexture + ;(_boneTexture = boneTexture) == null ? void 0 : _boneTexture.dispose() + const boneMatrices = object.skeleton.boneTexture.image.data.slice() + const size = object.skeleton.boneTexture.image.width + boneTexture = new DataTexture(boneMatrices, size, size, RGBAFormat, FloatType) + object.material.uniforms.prevBoneTexture.value = boneTexture + boneTexture.needsUpdate = true } } - } - saveBoneTexture(object) { - let boneTexture = object.material.uniforms.prevBoneTexture.value + unsetVelocityMaterialInScene() { + for (const c of this.visibleMeshes) { + if (c.material.isVelocityMaterial) { + var _c$skeleton3 + + c.visible = true + c.material.lastMatrixWorld.copy(c.matrixWorld) + c.material.uniforms.prevVelocityMatrix.value.multiplyMatrices( + this._camera.projectionMatrix, + c.modelViewMatrix + ) + if ((_c$skeleton3 = c.skeleton) != null && _c$skeleton3.boneTexture) this.saveBoneTexture(c) + c.material = this.cachedMaterials.get(c)[0] + } + } + } - if (boneTexture && boneTexture.image.width === object.skeleton.boneTexture.width) { - boneTexture = object.material.uniforms.prevBoneTexture.value - boneTexture.image.data.set(object.skeleton.boneTexture.image.data) - } else { - var _boneTexture - ;(_boneTexture = boneTexture) == null ? void 0 : _boneTexture.dispose() - const boneMatrices = object.skeleton.boneTexture.image.data.slice() - const size = object.skeleton.boneTexture.image.width - boneTexture = new DataTexture(boneMatrices, size, size, RGBAFormat, FloatType) - object.material.uniforms.prevBoneTexture.value = boneTexture - boneTexture.needsUpdate = true + setSize(width, height) { + this.renderTarget.setSize(width, height) } - } - unsetVelocityMaterialInScene() { - for (const c of this.visibleMeshes) { - if (c.material.isVelocityMaterial) { - var _c$skeleton3 + renderVelocity(renderer) { + renderer.setRenderTarget(this.renderTarget) - c.visible = true - c.material.lastMatrixWorld.copy(c.matrixWorld) - c.material.uniforms.prevVelocityMatrix.value.multiplyMatrices(this._camera.projectionMatrix, c.modelViewMatrix) - if ((_c$skeleton3 = c.skeleton) != null && _c$skeleton3.boneTexture) this.saveBoneTexture(c) - c.material = this.cachedMaterials.get(c)[0] + if (this.renderedMeshesThisFrame > 0) { + const { background } = this._scene + this._scene.background = backgroundColor + renderer.render(this._scene, this._camera) + this._scene.background = background + } else { + renderer.clearColor() } } - } - setSize(width, height) { - this.renderTarget.setSize(width, height) - } + checkCameraMoved() { + const moveDist = this.lastCameraTransform.position.distanceToSquared(this._camera.position) + const rotateDist = 8 * (1 - this.lastCameraTransform.quaternion.dot(this._camera.quaternion)) + + if (moveDist > 0.000001 || rotateDist > 0.000001) { + this.lastCameraTransform.position.copy(this._camera.position) + this.lastCameraTransform.quaternion.copy(this._camera.quaternion) + return true + } - renderVelocity(renderer) { - renderer.setRenderTarget(this.renderTarget) + return false + } - if (this.renderedMeshesThisFrame > 0) { - const { background } = this._scene - this._scene.background = backgroundColor - renderer.render(this._scene, this._camera) - this._scene.background = background - } else { - renderer.clearColor() + render(renderer) { + this.cameraMovedThisFrame = this.checkCameraMoved() + this.setVelocityMaterialInScene() + if (this.renderedMeshesThisFrame > 0 || this.renderedMeshesLastFrame > 0) this.renderVelocity(renderer) + this.unsetVelocityMaterialInScene() + this.renderedMeshesLastFrame = this.renderedMeshesThisFrame } } - checkCameraMoved() { - const moveDist = this.lastCameraTransform.position.distanceToSquared(this._camera.position) - const rotateDist = 8 * (1 - this.lastCameraTransform.quaternion.dot(this._camera.quaternion)) + const zeroVec2 = /* @__PURE__ */ new Vector2() // the following variables can be accessed by the custom compose shader: + // "inputTexel", "accumulatedTexel", "inputColor", "accumulatedColor", "alpha", "velocityDisocclusion", "didReproject", "boxBlurredColor" (if using box blur) + // the custom compose shader will write the final color to the variable "outputColor" - if (moveDist > 0.000001 || rotateDist > 0.000001) { - this.lastCameraTransform.position.copy(this._camera.position) - this.lastCameraTransform.quaternion.copy(this._camera.quaternion) - return true + class TemporalResolvePass extends Pass { + constructor(scene, camera, customComposeShader, options = {}) { + super('TemporalResolvePass') + this.velocityPass = null + this.velocityResolutionScale = 1 + this.samples = 1 + this.lastCameraTransform = { + position: new Vector3(), + quaternion: new Quaternion(), + } + this._scene = scene + this._camera = camera + this.renderTarget = new WebGLRenderTarget(1, 1, { + minFilter: LinearFilter, + magFilter: LinearFilter, + type: HalfFloatType, + depthBuffer: false, + }) + this.velocityPass = new VelocityPass(scene, camera) + this.fullscreenMaterial = new TemporalResolveMaterial(customComposeShader) + this.fullscreenMaterial.defines.correctionRadius = options.correctionRadius || 1 + if (options.dilation) this.fullscreenMaterial.defines.dilation = '' + if (options.boxBlur) this.fullscreenMaterial.defines.boxBlur = '' + this.setupFramebuffers(1, 1) + this.checkCanUseSharedVelocityTexture() } - return false - } + dispose() { + if (this._scene.userData.velocityTexture === this.velocityPass.renderTarget.texture) { + delete this._scene.userData.velocityTexture + delete this._scene.userData.lastVelocityTexture + } - render(renderer) { - this.cameraMovedThisFrame = this.checkCameraMoved() - this.setVelocityMaterialInScene() - if (this.renderedMeshesThisFrame > 0 || this.renderedMeshesLastFrame > 0) this.renderVelocity(renderer) - this.unsetVelocityMaterialInScene() - this.renderedMeshesLastFrame = this.renderedMeshesThisFrame - } -} - -const zeroVec2 = new Vector2() // the following variables can be accessed by the custom compose shader: -// "inputTexel", "accumulatedTexel", "inputColor", "accumulatedColor", "alpha", "velocityDisocclusion", "didReproject", "boxBlurredColor" (if using box blur) -// the custom compose shader will write the final color to the variable "outputColor" - -class TemporalResolvePass extends Pass { - constructor(scene, camera, customComposeShader, options = {}) { - super('TemporalResolvePass') - this.velocityPass = null - this.velocityResolutionScale = 1 - this.samples = 1 - this.lastCameraTransform = { - position: new Vector3(), - quaternion: new Quaternion(), + this.renderTarget.dispose() + this.accumulatedTexture.dispose() + this.fullscreenMaterial.dispose() + this.velocityPass.dispose() } - this._scene = scene - this._camera = camera - this.renderTarget = new WebGLRenderTarget(1, 1, { - minFilter: LinearFilter, - magFilter: LinearFilter, - type: HalfFloatType, - depthBuffer: false, - }) - this.velocityPass = new VelocityPass(scene, camera) - this.fullscreenMaterial = new TemporalResolveMaterial(customComposeShader) - this.fullscreenMaterial.defines.correctionRadius = options.correctionRadius || 1 - if (options.dilation) this.fullscreenMaterial.defines.dilation = '' - if (options.boxBlur) this.fullscreenMaterial.defines.boxBlur = '' - this.setupFramebuffers(1, 1) - this.checkCanUseSharedVelocityTexture() - } - dispose() { - if (this._scene.userData.velocityTexture === this.velocityPass.renderTarget.texture) { - delete this._scene.userData.velocityTexture - delete this._scene.userData.lastVelocityTexture + setSize(width, height) { + this.renderTarget.setSize(width, height) + this.velocityPass.setSize(width * this.velocityResolutionScale, height * this.velocityResolutionScale) + this.velocityPass.renderTarget.texture.minFilter = + this.velocityResolutionScale === 1 ? NearestFilter : LinearFilter + this.velocityPass.renderTarget.texture.magFilter = + this.velocityResolutionScale === 1 ? NearestFilter : LinearFilter + this.velocityPass.renderTarget.texture.needsUpdate = true + this.fullscreenMaterial.uniforms.invTexSize.value.set(1 / width, 1 / height) + this.setupFramebuffers(width, height) } - this.renderTarget.dispose() - this.accumulatedTexture.dispose() - this.fullscreenMaterial.dispose() - this.velocityPass.dispose() - } - - setSize(width, height) { - this.renderTarget.setSize(width, height) - this.velocityPass.setSize(width * this.velocityResolutionScale, height * this.velocityResolutionScale) - this.velocityPass.renderTarget.texture.minFilter = this.velocityResolutionScale === 1 ? NearestFilter : LinearFilter - this.velocityPass.renderTarget.texture.magFilter = this.velocityResolutionScale === 1 ? NearestFilter : LinearFilter - this.velocityPass.renderTarget.texture.needsUpdate = true - this.fullscreenMaterial.uniforms.invTexSize.value.set(1 / width, 1 / height) - this.setupFramebuffers(width, height) - } - - setupFramebuffers(width, height) { - if (this.accumulatedTexture) this.accumulatedTexture.dispose() - if (this.lastVelocityTexture) this.lastVelocityTexture.dispose() - this.accumulatedTexture = new FramebufferTexture(width, height, RGBAFormat) - this.accumulatedTexture.minFilter = LinearFilter - this.accumulatedTexture.magFilter = LinearFilter - this.accumulatedTexture.type = HalfFloatType - this.lastVelocityTexture = new FramebufferTexture( - width * this.velocityResolutionScale, - height * this.velocityResolutionScale, - RGBAFormat - ) - this.lastVelocityTexture.minFilter = this.velocityResolutionScale === 1 ? NearestFilter : LinearFilter - this.lastVelocityTexture.magFilter = this.velocityResolutionScale === 1 ? NearestFilter : LinearFilter - this.lastVelocityTexture.type = HalfFloatType - this.fullscreenMaterial.uniforms.accumulatedTexture.value = this.accumulatedTexture - this.fullscreenMaterial.uniforms.lastVelocityTexture.value = this.lastVelocityTexture - this.fullscreenMaterial.needsUpdate = true - } + setupFramebuffers(width, height) { + if (this.accumulatedTexture) this.accumulatedTexture.dispose() + if (this.lastVelocityTexture) this.lastVelocityTexture.dispose() + this.accumulatedTexture = new FramebufferTexture(width, height, RGBAFormat) + this.accumulatedTexture.minFilter = LinearFilter + this.accumulatedTexture.magFilter = LinearFilter + this.accumulatedTexture.type = HalfFloatType + this.lastVelocityTexture = new FramebufferTexture( + width * this.velocityResolutionScale, + height * this.velocityResolutionScale, + RGBAFormat + ) + this.lastVelocityTexture.minFilter = this.velocityResolutionScale === 1 ? NearestFilter : LinearFilter + this.lastVelocityTexture.magFilter = this.velocityResolutionScale === 1 ? NearestFilter : LinearFilter + this.lastVelocityTexture.type = HalfFloatType + this.fullscreenMaterial.uniforms.accumulatedTexture.value = this.accumulatedTexture + this.fullscreenMaterial.uniforms.lastVelocityTexture.value = this.lastVelocityTexture + this.fullscreenMaterial.needsUpdate = true + } - checkCanUseSharedVelocityTexture() { - const canUseSharedVelocityTexture = - this._scene.userData.velocityTexture && - this.velocityPass.renderTarget.texture !== this._scene.userData.velocityTexture - - if (canUseSharedVelocityTexture) { - // let's use the shared one instead - if (this.velocityPass.renderTarget.texture === this.fullscreenMaterial.uniforms.velocityTexture.value) { - this.fullscreenMaterial.uniforms.lastVelocityTexture.value = this._scene.userData.lastVelocityTexture - this.fullscreenMaterial.uniforms.velocityTexture.value = this._scene.userData.velocityTexture - this.fullscreenMaterial.needsUpdate = true - } - } else { - // let's stop using the shared one (if used) and mark ours as the shared one instead - if (this.velocityPass.renderTarget.texture !== this.fullscreenMaterial.uniforms.velocityTexture.value) { - this.fullscreenMaterial.uniforms.velocityTexture.value = this.velocityPass.renderTarget.texture - this.fullscreenMaterial.uniforms.lastVelocityTexture.value = this.lastVelocityTexture - this.fullscreenMaterial.needsUpdate = true - - if (!this._scene.userData.velocityTexture) { - this._scene.userData.velocityTexture = this.velocityPass.renderTarget.texture - this._scene.userData.lastVelocityTexture = this.lastVelocityTexture + checkCanUseSharedVelocityTexture() { + const canUseSharedVelocityTexture = + this._scene.userData.velocityTexture && + this.velocityPass.renderTarget.texture !== this._scene.userData.velocityTexture + + if (canUseSharedVelocityTexture) { + // let's use the shared one instead + if (this.velocityPass.renderTarget.texture === this.fullscreenMaterial.uniforms.velocityTexture.value) { + this.fullscreenMaterial.uniforms.lastVelocityTexture.value = this._scene.userData.lastVelocityTexture + this.fullscreenMaterial.uniforms.velocityTexture.value = this._scene.userData.velocityTexture + this.fullscreenMaterial.needsUpdate = true + } + } else { + // let's stop using the shared one (if used) and mark ours as the shared one instead + if (this.velocityPass.renderTarget.texture !== this.fullscreenMaterial.uniforms.velocityTexture.value) { + this.fullscreenMaterial.uniforms.velocityTexture.value = this.velocityPass.renderTarget.texture + this.fullscreenMaterial.uniforms.lastVelocityTexture.value = this.lastVelocityTexture + this.fullscreenMaterial.needsUpdate = true + + if (!this._scene.userData.velocityTexture) { + this._scene.userData.velocityTexture = this.velocityPass.renderTarget.texture + this._scene.userData.lastVelocityTexture = this.lastVelocityTexture + } } } - } - return this.velocityPass.renderTarget.texture !== this.fullscreenMaterial.uniforms.velocityTexture.value - } + return this.velocityPass.renderTarget.texture !== this.fullscreenMaterial.uniforms.velocityTexture.value + } - checkNeedsResample() { - const moveDist = this.lastCameraTransform.position.distanceToSquared(this._camera.position) - const rotateDist = 8 * (1 - this.lastCameraTransform.quaternion.dot(this._camera.quaternion)) + checkNeedsResample() { + const moveDist = this.lastCameraTransform.position.distanceToSquared(this._camera.position) + const rotateDist = 8 * (1 - this.lastCameraTransform.quaternion.dot(this._camera.quaternion)) - if (moveDist > 0.000001 || rotateDist > 0.000001) { - this.samples = 1 - this.lastCameraTransform.position.copy(this._camera.position) - this.lastCameraTransform.quaternion.copy(this._camera.quaternion) + if (moveDist > 0.000001 || rotateDist > 0.000001) { + this.samples = 1 + this.lastCameraTransform.position.copy(this._camera.position) + this.lastCameraTransform.quaternion.copy(this._camera.quaternion) + } } - } - render(renderer) { - this.samples++ - this.checkNeedsResample() - this.fullscreenMaterial.uniforms.samples.value = this.samples // const isUsingSharedVelocityTexture = this.checkCanUseSharedVelocityTexture() - // if (!isUsingSharedVelocityTexture) this.velocityPass.render(renderer) + render(renderer) { + this.samples++ + this.checkNeedsResample() + this.fullscreenMaterial.uniforms.samples.value = this.samples // const isUsingSharedVelocityTexture = this.checkCanUseSharedVelocityTexture() + // if (!isUsingSharedVelocityTexture) this.velocityPass.render(renderer) - renderer.setRenderTarget(this.renderTarget) - renderer.render(this.scene, this.camera) // save the render target's texture for use in next frame + renderer.setRenderTarget(this.renderTarget) + renderer.render(this.scene, this.camera) // save the render target's texture for use in next frame - if (Number(REVISION) >= 165) { - renderer.copyFramebufferToTexture(this.accumulatedTexture, zeroVec2) - renderer.setRenderTarget(this.velocityPass.renderTarget) - renderer.copyFramebufferToTexture(this.lastVelocityTexture, zeroVec2) - } else { - renderer.copyFramebufferToTexture(zeroVec2, this.accumulatedTexture) - renderer.setRenderTarget(this.velocityPass.renderTarget) - renderer.copyFramebufferToTexture(zeroVec2, this.accumulatedTexture) + if (Number(REVISION) >= 165) { + renderer.copyFramebufferToTexture(this.accumulatedTexture, zeroVec2) + renderer.setRenderTarget(this.velocityPass.renderTarget) + renderer.copyFramebufferToTexture(this.lastVelocityTexture, zeroVec2) + } else { + renderer.copyFramebufferToTexture(zeroVec2, this.accumulatedTexture) + renderer.setRenderTarget(this.velocityPass.renderTarget) + renderer.copyFramebufferToTexture(zeroVec2, this.accumulatedTexture) + } } } -} -// source: https://observablehq.com/@jrus/halton -const halton = function halton(index, base) { - let fraction = 1 - let result = 0 + // source: https://observablehq.com/@jrus/halton + const halton = function halton(index, base) { + let fraction = 1 + let result = 0 - while (index > 0) { - fraction /= base - result += fraction * (index % base) - index = ~~(index / base) // floor division - } + while (index > 0) { + fraction /= base + result += fraction * (index % base) + index = ~~(index / base) // floor division + } - return result -} // generates Halton tuples in the range [-0.5:0.5] + return result + } // generates Halton tuples in the range [-0.5:0.5] -const generateHalton23Points = (count) => { - const data = [] - let i = 1 - const end = i + count + const generateHalton23Points = (count) => { + const data = [] + let i = 1 + const end = i + count - for (; i < end; i++) { - data.push([halton(i, 2) - 0.5, halton(i, 3) - 0.5]) - } + for (; i < end; i++) { + data.push([halton(i, 2) - 0.5, halton(i, 3) - 0.5]) + } - return data -} + return data + } -/* eslint-disable camelcase */ + /* eslint-disable camelcase */ -function escapeRegExp(string) { - return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') // $& means the whole matched string -} // credits for the box-projecting shader code go to codercat (https://codercat.tk) + function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') // $& means the whole matched string + } // credits for the box-projecting shader code go to codercat (https://codercat.tk) -const worldposReplace = - /* glsl */ - ` + const worldposReplace = + /* glsl */ + ` #if defined( USE_ENVMAP ) || defined( ) || defined ( USE_SHADOWMAP ) vec4 worldPosition = modelMatrix * vec4( transformed, 1.0 ); @@ -1521,9 +1530,9 @@ const worldposReplace = #endif #endif ` -const boxProjectDefinitions = - /* glsl */ - ` + const boxProjectDefinitions = + /* glsl */ + ` #ifdef BOX_PROJECTED_ENV_MAP uniform vec3 envMapSize; uniform vec3 envMapPosition; @@ -1549,331 +1558,335 @@ const boxProjectDefinitions = #endif ` // will be inserted after "vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );" -const getIBLIrradiance_patch = - /* glsl */ - ` + const getIBLIrradiance_patch = + /* glsl */ + ` #ifdef BOX_PROJECTED_ENV_MAP worldNormal = parallaxCorrectNormal( worldNormal, envMapSize, envMapPosition ); #endif ` // will be inserted after "reflectVec = inverseTransformDirection( reflectVec, viewMatrix );" -const getIBLRadiance_patch = - /* glsl */ - ` + const getIBLRadiance_patch = + /* glsl */ + ` #ifdef BOX_PROJECTED_ENV_MAP reflectVec = parallaxCorrectNormal( reflectVec, envMapSize, envMapPosition ); #endif ` -function useBoxProjectedEnvMap(shader, envMapPosition, envMapSize) { - // defines - shader.defines.BOX_PROJECTED_ENV_MAP = '' // uniforms + function useBoxProjectedEnvMap(shader, envMapPosition, envMapSize) { + // defines + shader.defines.BOX_PROJECTED_ENV_MAP = '' // uniforms - shader.uniforms.envMapPosition = { - value: envMapPosition, - } - shader.uniforms.envMapSize = { - value: envMapSize, - } - const line1 = new RegExp( - escapeRegExp('vec3 worldNormal = inverseTransformDirection ( normal , viewMatrix ) ;').replaceAll(' ', '\\s*'), - 'g' - ) - const line2 = new RegExp( - escapeRegExp('reflectVec = inverseTransformDirection ( reflectVec , viewMatrix ) ;').replaceAll(' ', '\\s*'), - 'g' - ) // vertex shader - - shader.vertexShader = - 'varying vec3 vWorldPosition;\n' + shader.vertexShader.replace('#include ', worldposReplace) // fragment shader - - shader.fragmentShader = - boxProjectDefinitions + - '\n' + - shader.fragmentShader - .replace('#include ', ShaderChunk.envmap_physical_pars_fragment) - .replace( - line1, - `vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + shader.uniforms.envMapPosition = { + value: envMapPosition, + } + shader.uniforms.envMapSize = { + value: envMapSize, + } + const line1 = new RegExp( + escapeRegExp('vec3 worldNormal = inverseTransformDirection ( normal , viewMatrix ) ;').replaceAll(' ', '\\s*'), + 'g' + ) + const line2 = new RegExp( + escapeRegExp('reflectVec = inverseTransformDirection ( reflectVec , viewMatrix ) ;').replaceAll(' ', '\\s*'), + 'g' + ) // vertex shader + + shader.vertexShader = + 'varying vec3 vWorldPosition;\n' + shader.vertexShader.replace('#include ', worldposReplace) // fragment shader + + shader.fragmentShader = + boxProjectDefinitions + + '\n' + + shader.fragmentShader + .replace('#include ', ShaderChunk.envmap_physical_pars_fragment) + .replace( + line1, + `vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); ${getIBLIrradiance_patch}` - ) - .replace( - line2, - `reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); + ) + .replace( + line2, + `reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); ${getIBLRadiance_patch}` - ) -} + ) + } -const noResetSamplesProperties = ['blur', 'blurSharpness', 'blurKernel'] -const defaultCubeRenderTarget = new WebGLCubeRenderTarget(1) -let pmremGenerator -class SSREffect extends Effect { - /** - * @param {THREE.Scene} scene The scene of the SSR effect - * @param {THREE.Camera} camera The camera with which SSR is being rendered - * @param {SSROptions} [options] The optional options for the SSR effect - */ - constructor(scene, camera, options = defaultSSROptions) { - super('SSREffect', finalSSRShader, { - type: 'FinalSSRMaterial', - uniforms: new Map([ - ['reflectionsTexture', new Uniform(null)], - ['blur', new Uniform(0)], - ['blurSharpness', new Uniform(0)], - ['blurKernel', new Uniform(0)], - ]), - defines: new Map([['RENDER_MODE', '0']]), - }) - this.haltonSequence = generateHalton23Points(1024) - this.haltonIndex = 0 - this.selection = new Selection() - this.lastSize = void 0 - this.cubeCamera = new CubeCamera(0.001, 1000, defaultCubeRenderTarget) - this.usingBoxProjectedEnvMap = false - this._scene = scene - this._camera = camera - const trOptions = { - boxBlur: true, - dilation: true, - } - options = { ...defaultSSROptions, ...options, ...trOptions } // set up passes - // temporal resolve pass - - this.temporalResolvePass = new TemporalResolvePass(scene, camera, trCompose, options) - this.uniforms.get('reflectionsTexture').value = this.temporalResolvePass.renderTarget.texture // reflections pass - - this.reflectionsPass = new ReflectionsPass(this, options) - this.temporalResolvePass.fullscreenMaterial.uniforms.inputTexture.value = this.reflectionsPass.renderTarget.texture - this.lastSize = { - width: options.width, - height: options.height, - resolutionScale: options.resolutionScale, - velocityResolutionScale: options.velocityResolutionScale, + const noResetSamplesProperties = ['blur', 'blurSharpness', 'blurKernel'] + const defaultCubeRenderTarget = /* @__PURE__ */ new WebGLCubeRenderTarget(1) + let pmremGenerator + class SSREffect extends Effect { + /** + * @param {THREE.Scene} scene The scene of the SSR effect + * @param {THREE.Camera} camera The camera with which SSR is being rendered + * @param {SSROptions} [options] The optional options for the SSR effect + */ + constructor(scene, camera, options = defaultSSROptions) { + super('SSREffect', finalSSRShader, { + type: 'FinalSSRMaterial', + uniforms: new Map([ + ['reflectionsTexture', new Uniform(null)], + ['blur', new Uniform(0)], + ['blurSharpness', new Uniform(0)], + ['blurKernel', new Uniform(0)], + ]), + defines: new Map([['RENDER_MODE', '0']]), + }) + this.haltonSequence = generateHalton23Points(1024) + this.haltonIndex = 0 + this.selection = new Selection() + this.lastSize = void 0 + this.cubeCamera = new CubeCamera(0.001, 1000, defaultCubeRenderTarget) + this.usingBoxProjectedEnvMap = false + this._scene = scene + this._camera = camera + const trOptions = { + boxBlur: true, + dilation: true, + } + options = { ...defaultSSROptions, ...options, ...trOptions } // set up passes + // temporal resolve pass + + this.temporalResolvePass = new TemporalResolvePass(scene, camera, trCompose, options) + this.uniforms.get('reflectionsTexture').value = this.temporalResolvePass.renderTarget.texture // reflections pass + + this.reflectionsPass = new ReflectionsPass(this, options) + this.temporalResolvePass.fullscreenMaterial.uniforms.inputTexture.value = + this.reflectionsPass.renderTarget.texture + this.lastSize = { + width: options.width, + height: options.height, + resolutionScale: options.resolutionScale, + velocityResolutionScale: options.velocityResolutionScale, + } + this.setSize(options.width, options.height) + this.makeOptionsReactive(options) } - this.setSize(options.width, options.height) - this.makeOptionsReactive(options) - } - makeOptionsReactive(options) { - let needsUpdate = false - const reflectionPassFullscreenMaterialUniforms = this.reflectionsPass.fullscreenMaterial.uniforms - const reflectionPassFullscreenMaterialUniformsKeys = Object.keys(reflectionPassFullscreenMaterialUniforms) + makeOptionsReactive(options) { + let needsUpdate = false + const reflectionPassFullscreenMaterialUniforms = this.reflectionsPass.fullscreenMaterial.uniforms + const reflectionPassFullscreenMaterialUniformsKeys = Object.keys(reflectionPassFullscreenMaterialUniforms) - for (const key of Object.keys(options)) { - Object.defineProperty(this, key, { - get() { - return options[key] - }, + for (const key of Object.keys(options)) { + Object.defineProperty(this, key, { + get() { + return options[key] + }, - set(value) { - if (options[key] === value && needsUpdate) return - options[key] = value + set(value) { + if (options[key] === value && needsUpdate) return + options[key] = value - if (!noResetSamplesProperties.includes(key)) { - this.setSize(this.lastSize.width, this.lastSize.height, true) - } + if (!noResetSamplesProperties.includes(key)) { + this.setSize(this.lastSize.width, this.lastSize.height, true) + } - switch (key) { - case 'resolutionScale': - this.setSize(this.lastSize.width, this.lastSize.height) - break + switch (key) { + case 'resolutionScale': + this.setSize(this.lastSize.width, this.lastSize.height) + break + + case 'velocityResolutionScale': + this.temporalResolvePass.velocityResolutionScale = value + this.setSize(this.lastSize.width, this.lastSize.height, true) + break + + case 'blur': + this.uniforms.get('blur').value = value + break + + case 'blurSharpness': + this.uniforms.get('blurSharpness').value = value + break + + case 'blurKernel': + this.uniforms.get('blurKernel').value = value + break + // defines + + case 'steps': + this.reflectionsPass.fullscreenMaterial.defines.steps = parseInt(value) + this.reflectionsPass.fullscreenMaterial.needsUpdate = needsUpdate + break + + case 'refineSteps': + this.reflectionsPass.fullscreenMaterial.defines.refineSteps = parseInt(value) + this.reflectionsPass.fullscreenMaterial.needsUpdate = needsUpdate + break + + case 'missedRays': + if (value) { + this.reflectionsPass.fullscreenMaterial.defines.missedRays = '' + } else { + delete this.reflectionsPass.fullscreenMaterial.defines.missedRays + } - case 'velocityResolutionScale': - this.temporalResolvePass.velocityResolutionScale = value - this.setSize(this.lastSize.width, this.lastSize.height, true) - break - - case 'blur': - this.uniforms.get('blur').value = value - break - - case 'blurSharpness': - this.uniforms.get('blurSharpness').value = value - break - - case 'blurKernel': - this.uniforms.get('blurKernel').value = value - break - // defines - - case 'steps': - this.reflectionsPass.fullscreenMaterial.defines.steps = parseInt(value) - this.reflectionsPass.fullscreenMaterial.needsUpdate = needsUpdate - break - - case 'refineSteps': - this.reflectionsPass.fullscreenMaterial.defines.refineSteps = parseInt(value) - this.reflectionsPass.fullscreenMaterial.needsUpdate = needsUpdate - break - - case 'missedRays': - if (value) { - this.reflectionsPass.fullscreenMaterial.defines.missedRays = '' - } else { - delete this.reflectionsPass.fullscreenMaterial.defines.missedRays - } + this.reflectionsPass.fullscreenMaterial.needsUpdate = needsUpdate + break - this.reflectionsPass.fullscreenMaterial.needsUpdate = needsUpdate - break + case 'correctionRadius': + this.temporalResolvePass.fullscreenMaterial.defines.correctionRadius = Math.round(value) + this.temporalResolvePass.fullscreenMaterial.needsUpdate = needsUpdate + break - case 'correctionRadius': - this.temporalResolvePass.fullscreenMaterial.defines.correctionRadius = Math.round(value) - this.temporalResolvePass.fullscreenMaterial.needsUpdate = needsUpdate - break + case 'blend': + this.temporalResolvePass.fullscreenMaterial.uniforms.blend.value = value + break - case 'blend': - this.temporalResolvePass.fullscreenMaterial.uniforms.blend.value = value - break + case 'correction': + this.temporalResolvePass.fullscreenMaterial.uniforms.correction.value = value + break - case 'correction': - this.temporalResolvePass.fullscreenMaterial.uniforms.correction.value = value - break + case 'exponent': + this.temporalResolvePass.fullscreenMaterial.uniforms.exponent.value = value + break - case 'exponent': - this.temporalResolvePass.fullscreenMaterial.uniforms.exponent.value = value - break + case 'distance': + reflectionPassFullscreenMaterialUniforms.rayDistance.value = value + // must be a uniform - case 'distance': - reflectionPassFullscreenMaterialUniforms.rayDistance.value = value - // must be a uniform + default: + if (reflectionPassFullscreenMaterialUniformsKeys.includes(key)) { + reflectionPassFullscreenMaterialUniforms[key].value = value + } + } + }, + }) // apply all uniforms and defines - default: - if (reflectionPassFullscreenMaterialUniformsKeys.includes(key)) { - reflectionPassFullscreenMaterialUniforms[key].value = value - } - } - }, - }) // apply all uniforms and defines + this[key] = options[key] + } - this[key] = options[key] + needsUpdate = true } - needsUpdate = true - } - - setSize(width, height, force = false) { - if ( - !force && - width === this.lastSize.width && - height === this.lastSize.height && - this.resolutionScale === this.lastSize.resolutionScale && - this.velocityResolutionScale === this.lastSize.velocityResolutionScale - ) - return - this.temporalResolvePass.setSize(width, height) - this.reflectionsPass.setSize(width, height) - this.lastSize = { - width, - height, - resolutionScale: this.resolutionScale, - velocityResolutionScale: this.velocityResolutionScale, + setSize(width, height, force = false) { + if ( + !force && + width === this.lastSize.width && + height === this.lastSize.height && + this.resolutionScale === this.lastSize.resolutionScale && + this.velocityResolutionScale === this.lastSize.velocityResolutionScale + ) + return + this.temporalResolvePass.setSize(width, height) + this.reflectionsPass.setSize(width, height) + this.lastSize = { + width, + height, + resolutionScale: this.resolutionScale, + velocityResolutionScale: this.velocityResolutionScale, + } } - } - generateBoxProjectedEnvMapFallback(renderer, position = new Vector3(), size = new Vector3(), envMapSize = 512) { - this.cubeCamera.renderTarget.dispose() - this.cubeCamera.renderTarget = new WebGLCubeRenderTarget(envMapSize) - this.cubeCamera.position.copy(position) - this.cubeCamera.updateMatrixWorld() - this.cubeCamera.update(renderer, this._scene) + generateBoxProjectedEnvMapFallback(renderer, position = new Vector3(), size = new Vector3(), envMapSize = 512) { + this.cubeCamera.renderTarget.dispose() + this.cubeCamera.renderTarget = new WebGLCubeRenderTarget(envMapSize) + this.cubeCamera.position.copy(position) + this.cubeCamera.updateMatrixWorld() + this.cubeCamera.update(renderer, this._scene) - if (!pmremGenerator) { - pmremGenerator = new PMREMGenerator(renderer) - pmremGenerator.compileCubemapShader() - } + if (!pmremGenerator) { + pmremGenerator = new PMREMGenerator(renderer) + pmremGenerator.compileCubemapShader() + } - const envMap = pmremGenerator.fromCubemap(this.cubeCamera.renderTarget.texture).texture - envMap.minFilter = LinearFilter - envMap.magFilter = LinearFilter - const reflectionsMaterial = this.reflectionsPass.fullscreenMaterial - // eslint-disable-next-line react-hooks/rules-of-hooks - useBoxProjectedEnvMap(reflectionsMaterial, position, size) - reflectionsMaterial.fragmentShader = reflectionsMaterial.fragmentShader - .replace('vec3 worldPos', 'worldPos') - .replace('varying vec3 vWorldPosition;', 'vec3 worldPos;') - reflectionsMaterial.uniforms.envMapPosition.value.copy(position) - reflectionsMaterial.uniforms.envMapSize.value.copy(size) - setupEnvMap(reflectionsMaterial, envMap, envMapSize) - this.usingBoxProjectedEnvMap = true - return envMap - } + const envMap = pmremGenerator.fromCubemap(this.cubeCamera.renderTarget.texture).texture + envMap.minFilter = LinearFilter + envMap.magFilter = LinearFilter + const reflectionsMaterial = this.reflectionsPass.fullscreenMaterial + // eslint-disable-next-line react-hooks/rules-of-hooks + useBoxProjectedEnvMap(reflectionsMaterial, position, size) + reflectionsMaterial.fragmentShader = reflectionsMaterial.fragmentShader + .replace('vec3 worldPos', 'worldPos') + .replace('varying vec3 vWorldPosition;', 'vec3 worldPos;') + reflectionsMaterial.uniforms.envMapPosition.value.copy(position) + reflectionsMaterial.uniforms.envMapSize.value.copy(size) + setupEnvMap(reflectionsMaterial, envMap, envMapSize) + this.usingBoxProjectedEnvMap = true + return envMap + } - setIBLRadiance(iblRadiance, renderer) { - this._scene.traverse((c) => { - if (c.material) { - var _renderer$properties$ + setIBLRadiance(iblRadiance, renderer) { + this._scene.traverse((c) => { + if (c.material) { + var _renderer$properties$ - const uniforms = - (_renderer$properties$ = renderer.properties.get(c.material)) == null - ? void 0 - : _renderer$properties$.uniforms + const uniforms = + (_renderer$properties$ = renderer.properties.get(c.material)) == null + ? void 0 + : _renderer$properties$.uniforms - if (uniforms && 'disableIBLRadiance' in uniforms) { - uniforms.disableIBLRadiance.value = iblRadiance + if (uniforms && 'disableIBLRadiance' in uniforms) { + uniforms.disableIBLRadiance.value = iblRadiance + } } - } - }) - } + }) + } - deleteBoxProjectedEnvMapFallback() { - const reflectionsMaterial = this.reflectionsPass.fullscreenMaterial - reflectionsMaterial.uniforms.envMap.value = null - reflectionsMaterial.fragmentShader = reflectionsMaterial.fragmentShader.replace('worldPos = ', 'vec3 worldPos = ') - delete reflectionsMaterial.defines.BOX_PROJECTED_ENV_MAP - reflectionsMaterial.needsUpdate = true - this.usingBoxProjectedEnvMap = false - } + deleteBoxProjectedEnvMapFallback() { + const reflectionsMaterial = this.reflectionsPass.fullscreenMaterial + reflectionsMaterial.uniforms.envMap.value = null + reflectionsMaterial.fragmentShader = reflectionsMaterial.fragmentShader.replace('worldPos = ', 'vec3 worldPos = ') + delete reflectionsMaterial.defines.BOX_PROJECTED_ENV_MAP + reflectionsMaterial.needsUpdate = true + this.usingBoxProjectedEnvMap = false + } - dispose() { - super.dispose() - this.reflectionsPass.dispose() - this.temporalResolvePass.dispose() - } + dispose() { + super.dispose() + this.reflectionsPass.dispose() + this.temporalResolvePass.dispose() + } - update(renderer, inputBuffer) { - if (!this.usingBoxProjectedEnvMap && this._scene.environment) { - const reflectionsMaterial = this.reflectionsPass.fullscreenMaterial - let envMap = null // not sure if there is a cleaner way to find the internal texture of a CubeTexture (when used as scene environment) + update(renderer, inputBuffer) { + if (!this.usingBoxProjectedEnvMap && this._scene.environment) { + const reflectionsMaterial = this.reflectionsPass.fullscreenMaterial + let envMap = null // not sure if there is a cleaner way to find the internal texture of a CubeTexture (when used as scene environment) - this._scene.traverse((c) => { - if (!envMap && c.material && !c.material.envMap) { - const properties = renderer.properties.get(c.material) - if ('envMap' in properties && properties.envMap instanceof Texture) envMap = properties.envMap - } - }) + this._scene.traverse((c) => { + if (!envMap && c.material && !c.material.envMap) { + const properties = renderer.properties.get(c.material) + if ('envMap' in properties && properties.envMap instanceof Texture) envMap = properties.envMap + } + }) - if (envMap) { - const envMapCubeUVHeight = this._scene.environment.image.height - setupEnvMap(reflectionsMaterial, envMap, envMapCubeUVHeight) + if (envMap) { + const envMapCubeUVHeight = this._scene.environment.image.height + setupEnvMap(reflectionsMaterial, envMap, envMapCubeUVHeight) + } } - } - this.haltonIndex = (this.haltonIndex + 1) % this.haltonSequence.length - const [x, y] = this.haltonSequence[this.haltonIndex] - const { width, height } = this.lastSize - this.temporalResolvePass.velocityPass.render(renderer) // jittering the view offset each frame reduces aliasing for the reflection + this.haltonIndex = (this.haltonIndex + 1) % this.haltonSequence.length + const [x, y] = this.haltonSequence[this.haltonIndex] + const { width, height } = this.lastSize + this.temporalResolvePass.velocityPass.render(renderer) // jittering the view offset each frame reduces aliasing for the reflection - if (this._camera.setViewOffset) this._camera.setViewOffset(width, height, x, y, width, height) // render reflections of current frame + if (this._camera.setViewOffset) this._camera.setViewOffset(width, height, x, y, width, height) // render reflections of current frame - this.reflectionsPass.render(renderer, inputBuffer) // compose reflection of last and current frame into one reflection + this.reflectionsPass.render(renderer, inputBuffer) // compose reflection of last and current frame into one reflection - this.temporalResolvePass.render(renderer) + this.temporalResolvePass.render(renderer) - this._camera.clearViewOffset() - } + this._camera.clearViewOffset() + } - static patchDirectEnvIntensity(envMapIntensity = 0) { - if (envMapIntensity === 0) { - ShaderChunk.envmap_physical_pars_fragment = ShaderChunk.envmap_physical_pars_fragment.replace( - 'vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {', - 'vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { return vec3(0.0);' - ) - } else { - ShaderChunk.envmap_physical_pars_fragment = ShaderChunk.envmap_physical_pars_fragment.replace( - 'vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );', - 'vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness ) * ' + envMapIntensity.toFixed(5) + ';' - ) + static patchDirectEnvIntensity(envMapIntensity = 0) { + if (envMapIntensity === 0) { + ShaderChunk.envmap_physical_pars_fragment = ShaderChunk.envmap_physical_pars_fragment.replace( + 'vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {', + 'vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { return vec3(0.0);' + ) + } else { + ShaderChunk.envmap_physical_pars_fragment = ShaderChunk.envmap_physical_pars_fragment.replace( + 'vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );', + 'vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness ) * ' + envMapIntensity.toFixed(5) + ';' + ) + } } } -} + + return { SSREffect, defaultSSROptions } +})() export { SSREffect, defaultSSROptions } diff --git a/src/effects/ScanlineEffect.tsx b/src/effects/ScanlineEffect.tsx index b1550195..e9eb93dc 100644 --- a/src/effects/ScanlineEffect.tsx +++ b/src/effects/ScanlineEffect.tsx @@ -1,4 +1,8 @@ import { ScanlineEffect, BlendFunction } from 'postprocessing' import { wrapEffect } from '../util' -export const Scanline = wrapEffect(ScanlineEffect, { blendFunction: BlendFunction.OVERLAY, density: 1.25, args: [] }) +export const Scanline = /* @__PURE__ */ wrapEffect(ScanlineEffect, { + blendFunction: BlendFunction.OVERLAY, + density: 1.25, + args: [], +}) diff --git a/src/effects/SelectiveBloom.tsx b/src/effects/SelectiveBloom.tsx index 6efe29ac..3c346194 100644 --- a/src/effects/SelectiveBloom.tsx +++ b/src/effects/SelectiveBloom.tsx @@ -19,7 +19,7 @@ export type SelectiveBloomProps = BloomEffectOptions & const addLight = (light: Object3D, effect: SelectiveBloomEffect) => light.layers.enable(effect.selection.layer) const removeLight = (light: Object3D, effect: SelectiveBloomEffect) => light.layers.disable(effect.selection.layer) -export const SelectiveBloom = forwardRef(function SelectiveBloom( +export const SelectiveBloom = /* @__PURE__ */ forwardRef(function SelectiveBloom( { selection = [], selectionLayer = 10, diff --git a/src/effects/Sepia.tsx b/src/effects/Sepia.tsx index b8910890..f1e4a67c 100644 --- a/src/effects/Sepia.tsx +++ b/src/effects/Sepia.tsx @@ -1,4 +1,4 @@ import { SepiaEffect } from 'postprocessing' import { wrapEffect } from '../util' -export const Sepia = wrapEffect(SepiaEffect) +export const Sepia = /* @__PURE__ */ wrapEffect(SepiaEffect) diff --git a/src/effects/ShockWave.tsx b/src/effects/ShockWave.tsx index d683f8c2..abb3b55b 100644 --- a/src/effects/ShockWave.tsx +++ b/src/effects/ShockWave.tsx @@ -1,4 +1,4 @@ import { ShockWaveEffect } from 'postprocessing' import { wrapEffect } from '../util' -export const ShockWave = wrapEffect(ShockWaveEffect) +export const ShockWave = /* @__PURE__ */ wrapEffect(ShockWaveEffect) diff --git a/src/effects/Texture.tsx b/src/effects/Texture.tsx index a45688a5..bb8ed519 100644 --- a/src/effects/Texture.tsx +++ b/src/effects/Texture.tsx @@ -7,7 +7,7 @@ type TextureProps = ConstructorParameters[0] & { textureSrc: string } -export const Texture = forwardRef(function Texture( +export const Texture = /* @__PURE__ */ forwardRef(function Texture( { textureSrc, texture, ...props }: TextureProps, ref: Ref ) { diff --git a/src/effects/TiltShift.tsx b/src/effects/TiltShift.tsx index 8a11abae..704f88de 100644 --- a/src/effects/TiltShift.tsx +++ b/src/effects/TiltShift.tsx @@ -1,4 +1,4 @@ import { TiltShiftEffect, BlendFunction } from 'postprocessing' import { wrapEffect } from '../util' -export const TiltShift = wrapEffect(TiltShiftEffect, { blendFunction: BlendFunction.ADD, args: [] }) +export const TiltShift = /* @__PURE__ */ wrapEffect(TiltShiftEffect, { blendFunction: BlendFunction.ADD, args: [] }) diff --git a/src/effects/TiltShift2.tsx b/src/effects/TiltShift2.tsx index 56406dbc..f0dba0bf 100644 --- a/src/effects/TiltShift2.tsx +++ b/src/effects/TiltShift2.tsx @@ -87,4 +87,4 @@ export class TiltShiftEffect extends Effect { } } -export const TiltShift2 = wrapEffect(TiltShiftEffect, { blendFunction: BlendFunction.NORMAL, args: [] }) +export const TiltShift2 = /* @__PURE__ */ wrapEffect(TiltShiftEffect, { blendFunction: BlendFunction.NORMAL, args: [] }) diff --git a/src/effects/ToneMapping.tsx b/src/effects/ToneMapping.tsx index e49fd327..11c9f6a7 100644 --- a/src/effects/ToneMapping.tsx +++ b/src/effects/ToneMapping.tsx @@ -3,4 +3,4 @@ import { type EffectProps, wrapEffect } from '../util' export type ToneMappingProps = EffectProps -export const ToneMapping = wrapEffect(ToneMappingEffect) +export const ToneMapping = /* @__PURE__ */ wrapEffect(ToneMappingEffect) diff --git a/src/effects/Vignette.tsx b/src/effects/Vignette.tsx index 8cf99058..ab4afc3a 100644 --- a/src/effects/Vignette.tsx +++ b/src/effects/Vignette.tsx @@ -1,4 +1,4 @@ import { VignetteEffect } from 'postprocessing' import { wrapEffect } from '../util' -export const Vignette = wrapEffect(VignetteEffect) +export const Vignette = /* @__PURE__ */ wrapEffect(VignetteEffect) diff --git a/src/effects/Water.tsx b/src/effects/Water.tsx index e400faa4..e0a8998c 100644 --- a/src/effects/Water.tsx +++ b/src/effects/Water.tsx @@ -30,4 +30,7 @@ export class WaterEffectImpl extends Effect { } } -export const WaterEffect = wrapEffect(WaterEffectImpl, { blendFunction: BlendFunction.NORMAL, args: [] }) +export const WaterEffect = /* @__PURE__ */ wrapEffect(WaterEffectImpl, { + blendFunction: BlendFunction.NORMAL, + args: [], +}) From 59e49ad01e708045d65bd0671b60c69d9ff6498a Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Fri, 17 Jan 2025 15:06:53 -0600 Subject: [PATCH 03/19] chore: remove storybook (#315) --- .eslintrc.json | 3 +- .github/workflows/release.yml | 19 - CONTRIBUTING.md | 8 - package.json | 14 +- yarn.lock | 5058 +-------------------------------- 5 files changed, 157 insertions(+), 4945 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index feace6c2..29af2deb 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -10,8 +10,7 @@ "plugin:prettier/recommended", "plugin:react-hooks/recommended", "plugin:import/errors", - "plugin:import/warnings", - "plugin:storybook/recommended" + "plugin:import/warnings" ], "plugins": ["@typescript-eslint", "react", "prettier", "react-hooks", "import"], "parser": "@typescript-eslint/parser", diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6266a785..9ad1321b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,25 +20,6 @@ jobs: - run: | yarn install --frozen-lockfile yarn release - yarn build-storybook env: NPM_TOKEN: ${{ secrets.NPM_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # - uses: actions/upload-pages-artifact@v1 - # with: - # path: ./storybook-static - - # See: https://github.com/actions/deploy-pages - # deploy-job: - # needs: release-job - # permissions: - # pages: write - # id-token: write - # environment: - # name: github-pages - # url: ${{ steps.deployment.outputs.page_url }} - # runs-on: ubuntu-latest - # steps: - # - name: Deploy to GitHub Pages - # id: deployment - # uses: actions/deploy-pages@v1 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e3bc0465..43f50b37 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -15,14 +15,6 @@ You can also just [![Open in GitHub Codespaces](https://img.shields.io/static/v1 Be sure your commit messages follow this specification: https://www.conventionalcommits.org/en/v1.0.0-beta.4/ -## Storybook - -If you're adding a brand new feature, you need to make sure you add a storybook entry, here's a few tips: - -- Keep the story simple & show the essence of the component, remember some people may be looking at using drei for the first time & it's important the stories are clear and concise. -- Keep assets minimal (3D Models, textures) to avoid bloating the repository -- If you think a more involved example is necessary, you can always add a codesandbox to the main README while keeping the story minimalistic - ## Publishing We use `semantic-release` to deploy the package. Because of this only certain commits will trigger the action of creating a release: diff --git a/package.json b/package.json index 1b29c12b..79f76afd 100644 --- a/package.json +++ b/package.json @@ -41,9 +41,7 @@ "eslint:ci": "eslint . --ext=js,ts,jsx,tsx", "test": "vitest run", "typecheck": "tsc --noEmit false --strict --jsx react", - "release": "semantic-release", - "storybook": "storybook dev -p 6006", - "build-storybook": "storybook build" + "release": "semantic-release" }, "dependencies": { "buffer": "^6.0.3", @@ -55,13 +53,7 @@ "devDependencies": { "@react-three/drei": "^9.68.2", "@react-three/fiber": "9.0.0-rc.4", - "@storybook/addon-essentials": "^7.0.10", - "@storybook/addon-interactions": "^7.0.10", - "@storybook/addon-links": "^7.0.10", - "@storybook/blocks": "^7.0.10", - "@storybook/react": "^7.0.10", - "@storybook/react-vite": "^7.0.11", - "@storybook/testing-library": "^0.0.14-next.2", + "@types/node": "^22.10.7", "@types/react": "^19.0.2", "@types/react-dom": "^19.0.2", "@types/three": "^0.156.0", @@ -74,7 +66,6 @@ "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-storybook": "^0.6.12", "husky": "^8.0.3", "lint-staged": "^13.2.2", "prettier": "^2.8.8", @@ -82,7 +73,6 @@ "react-dom": "^19.0.0", "rimraf": "^5.0.0", "semantic-release": "^21.0.2", - "storybook": "^7.0.10", "three": "^0.156.0", "typescript": "^5.0.4", "vite": "^4.3.5", diff --git a/yarn.lock b/yarn.lock index 22afd371..805a5fec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,262 +2,18 @@ # yarn lockfile v1 -"@ampproject/remapping@^2.2.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" - integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@aw-web-design/x-default-browser@1.4.88": - version "1.4.88" - resolved "https://registry.yarnpkg.com/@aw-web-design/x-default-browser/-/x-default-browser-1.4.88.tgz#33d869cb2a537cd6d2a8369d4dc8ea4988d4be89" - integrity sha512-AkEmF0wcwYC2QkhK703Y83fxWARttIWXDmQN8+cof8FmFZ5BRhnNXGymeb1S73bOCLfWjYELxtujL56idCN/XA== - dependencies: - default-browser-id "3.0.0" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.21.4": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.21.4": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.5": - version "7.21.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.7.tgz#61caffb60776e49a57ba61a88f02bedd8714f6bc" - integrity sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA== - -"@babel/core@^7.11.6", "@babel/core@^7.12.10", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.20.12", "@babel/core@^7.20.2", "@babel/core@^7.7.5", "@babel/core@~7.21.0": - version "7.21.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.8.tgz#2a8c7f0f53d60100ba4c32470ba0281c92aa9aa4" - integrity sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.5" - "@babel/helper-compilation-targets" "^7.21.5" - "@babel/helper-module-transforms" "^7.21.5" - "@babel/helpers" "^7.21.5" - "@babel/parser" "^7.21.8" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.0" - -"@babel/generator@^7.12.11", "@babel/generator@^7.21.5", "@babel/generator@~7.21.1": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.5.tgz#c0c0e5449504c7b7de8236d99338c3e2a340745f" - integrity sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w== - dependencies: - "@babel/types" "^7.21.5" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/helper-annotate-as-pure@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" - integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.21.5.tgz#817f73b6c59726ab39f6ba18c234268a519e5abb" - integrity sha512-uNrjKztPLkUk7bpCNC0jEKDJzzkvel/W+HguzbN8krA+LPfC1CEobJEvAvGka2A/M+ViOqXdcRL0GqPUJSjx9g== - dependencies: - "@babel/types" "^7.21.5" - -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz#631e6cc784c7b660417421349aac304c94115366" - integrity sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w== - dependencies: - "@babel/compat-data" "^7.21.5" - "@babel/helper-validator-option" "^7.21.0" - browserslist "^4.21.3" - lru-cache "^5.1.1" - semver "^6.3.0" - -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": - version "7.21.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.8.tgz#205b26330258625ef8869672ebca1e0dee5a0f02" - integrity sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.21.5" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-member-expression-to-functions" "^7.21.5" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.21.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/helper-split-export-declaration" "^7.18.6" - semver "^6.3.0" - -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": - version "7.21.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.8.tgz#a7886f61c2e29e21fd4aaeaf1e473deba6b571dc" - integrity sha512-zGuSdedkFtsFHGbexAvNuipg1hbtitDLo2XE8/uf6Y9sOQV1xsYX/2pNbtedp/X0eU1pIt+kGvaqHCowkRbS5g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.3.1" - semver "^6.3.0" - -"@babel/helper-define-polyfill-provider@^0.3.3": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a" - integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== - dependencies: - "@babel/helper-compilation-targets" "^7.17.7" - "@babel/helper-plugin-utils" "^7.16.7" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz#c769afefd41d171836f7cb63e295bedf689d48ba" - integrity sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ== - -"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" - integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== - dependencies: - "@babel/template" "^7.20.7" - "@babel/types" "^7.21.0" - -"@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-member-expression-to-functions@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.5.tgz#3b1a009af932e586af77c1030fba9ee0bde396c0" - integrity sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg== - dependencies: - "@babel/types" "^7.21.5" - -"@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz#ac88b2f76093637489e718a90cec6cf8a9b029af" - integrity sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg== - dependencies: - "@babel/types" "^7.21.4" - -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz#d937c82e9af68d31ab49039136a222b17ac0b420" - integrity sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw== - dependencies: - "@babel/helper-environment-visitor" "^7.21.5" - "@babel/helper-module-imports" "^7.21.4" - "@babel/helper-simple-access" "^7.21.5" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" - -"@babel/helper-optimise-call-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" - integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.21.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz#345f2377d05a720a4e5ecfa39cbf4474a4daed56" - integrity sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg== - -"@babel/helper-remap-async-to-generator@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" - integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-wrap-function" "^7.18.9" - "@babel/types" "^7.18.9" - -"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7", "@babel/helper-replace-supers@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.21.5.tgz#a6ad005ba1c7d9bc2973dfde05a1bba7065dde3c" - integrity sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg== - dependencies: - "@babel/helper-environment-visitor" "^7.21.5" - "@babel/helper-member-expression-to-functions" "^7.21.5" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" - -"@babel/helper-simple-access@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz#d697a7971a5c39eac32c7e63c0921c06c8a249ee" - integrity sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg== - dependencies: - "@babel/types" "^7.21.5" - -"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" - integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg== - dependencies: - "@babel/types" "^7.20.0" - -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-string-parser@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz#2b3eea65443c6bdc31c22d037c65f6d323b6b2bd" - integrity sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w== - -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": +"@babel/helper-validator-identifier@^7.18.6": version "7.19.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== -"@babel/helper-validator-option@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" - integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== - -"@babel/helper-wrap-function@^7.18.9": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" - integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== - dependencies: - "@babel/helper-function-name" "^7.19.0" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.5" - "@babel/types" "^7.20.5" - -"@babel/helpers@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.5.tgz#5bac66e084d7a4d2d9696bdf0175a93f7fb63c08" - integrity sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA== - dependencies: - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" - "@babel/highlight@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" @@ -267,713 +23,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.5", "@babel/parser@^7.21.8", "@babel/parser@~7.21.2": - version "7.21.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.8.tgz#642af7d0333eab9c0ad70b14ac5e76dbde7bfdf8" - integrity sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA== - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" - integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1" - integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-proposal-optional-chaining" "^7.20.7" - -"@babel/plugin-proposal-async-generator-functions@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" - integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" - integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-class-static-block@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d" - integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-proposal-dynamic-import@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" - integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" - integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b" - integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83" - integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" - integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" - integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" - integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.7" - -"@babel/plugin-proposal-optional-catch-binding@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" - integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.20.7", "@babel/plugin-proposal-optional-chaining@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" - integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea" - integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-private-property-in-object@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc" - integrity sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - -"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" - integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-flow@^7.18.6": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.21.4.tgz#3e37fca4f06d93567c1cd9b75156422e90a67107" - integrity sha512-l9xd3N+XG4fZRxEP3vXdK6RW7vN1Uf5dxzRC/09wV86wqZ/YYQooBIGNsiRdfNR3/q2/5pPzV4B54J/9ctX5jw== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-syntax-import-assertions@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" - integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== - dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - -"@babel/plugin-syntax-import-meta@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.21.4": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz#f264ed7bf40ffc9ec239edabc17a50c4f5b6fea2" - integrity sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-top-level-await@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.20.0": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz#2751948e9b7c6d771a8efa59340c15d4a2891ff8" - integrity sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-arrow-functions@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz#9bb42a53de447936a57ba256fbf537fc312b6929" - integrity sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA== - dependencies: - "@babel/helper-plugin-utils" "^7.21.5" - -"@babel/plugin-transform-async-to-generator@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354" - integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q== - dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-remap-async-to-generator" "^7.18.9" - -"@babel/plugin-transform-block-scoped-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8" - integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-block-scoping@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02" - integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-classes@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665" - integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-split-export-declaration" "^7.18.6" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz#3a2d8bb771cd2ef1cd736435f6552fe502e11b44" - integrity sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q== - dependencies: - "@babel/helper-plugin-utils" "^7.21.5" - "@babel/template" "^7.20.7" - -"@babel/plugin-transform-destructuring@^7.21.3": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.21.3.tgz#73b46d0fd11cd6ef57dea8a381b1215f4959d401" - integrity sha512-bp6hwMFzuiE4HqYEyoGJ/V2LeIWn+hLVKc4pnj++E5XQptwhtcGmSayM029d/j2X1bPKGTlsyPwAubuU22KhMA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" - integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-duplicate-keys@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e" - integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-exponentiation-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd" - integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-flow-strip-types@^7.21.0": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.21.0.tgz#6aeca0adcb81dc627c8986e770bfaa4d9812aff5" - integrity sha512-FlFA2Mj87a6sDkW4gfGrQQqwY/dLlBAyJa2dJEZ+FHXUVHBflO2wyKvg+OOEzXfrKYIa4HWl0mgmbCzt0cMb7w== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-flow" "^7.18.6" - -"@babel/plugin-transform-for-of@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz#e890032b535f5a2e237a18535f56a9fdaa7b83fc" - integrity sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ== - dependencies: - "@babel/helper-plugin-utils" "^7.21.5" - -"@babel/plugin-transform-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0" - integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== - dependencies: - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-function-name" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc" - integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-member-expression-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e" - integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-modules-amd@^7.20.11": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a" - integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g== - dependencies: - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz#d69fb947eed51af91de82e4708f676864e5e47bc" - integrity sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ== - dependencies: - "@babel/helper-module-transforms" "^7.21.5" - "@babel/helper-plugin-utils" "^7.21.5" - "@babel/helper-simple-access" "^7.21.5" - -"@babel/plugin-transform-modules-systemjs@^7.20.11": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e" - integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw== - dependencies: - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-identifier" "^7.19.1" - -"@babel/plugin-transform-modules-umd@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9" - integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== - dependencies: - "@babel/helper-module-transforms" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.20.5": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" - integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.20.5" - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-new-target@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8" - integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-object-super@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c" - integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/helper-replace-supers" "^7.18.6" - -"@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.21.3": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz#18fc4e797cf6d6d972cb8c411dbe8a809fa157db" - integrity sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-property-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" - integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-react-jsx-self@^7.18.6": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz#ec98d4a9baafc5a1eb398da4cf94afbb40254a54" - integrity sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-react-jsx-source@^7.19.6": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz#88578ae8331e5887e8ce28e4c9dc83fb29da0b86" - integrity sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ== - dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - -"@babel/plugin-transform-react-jsx@^7.19.0": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.5.tgz#bd98f3b429688243e4fa131fe1cbb2ef31ce6f38" - integrity sha512-ELdlq61FpoEkHO6gFRpfj0kUgSwQTGoaEU8eMRoS8Dv3v6e7BjEAj5WMtIBRdHUeAioMhKP5HyxNzNnP+heKbA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-module-imports" "^7.21.4" - "@babel/helper-plugin-utils" "^7.21.5" - "@babel/plugin-syntax-jsx" "^7.21.4" - "@babel/types" "^7.21.5" - -"@babel/plugin-transform-regenerator@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz#576c62f9923f94bcb1c855adc53561fd7913724e" - integrity sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w== - dependencies: - "@babel/helper-plugin-utils" "^7.21.5" - regenerator-transform "^0.15.1" - -"@babel/plugin-transform-reserved-words@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a" - integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-shorthand-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" - integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-spread@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e" - integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - -"@babel/plugin-transform-sticky-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc" - integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-template-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e" - integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-typeof-symbol@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0" - integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.9" - -"@babel/plugin-transform-typescript@^7.21.3": - version "7.21.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz#316c5be579856ea890a57ebc5116c5d064658f2b" - integrity sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-typescript" "^7.20.0" - -"@babel/plugin-transform-unicode-escapes@^7.21.5": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz#1e55ed6195259b0e9061d81f5ef45a9b009fb7f2" - integrity sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg== - dependencies: - "@babel/helper-plugin-utils" "^7.21.5" - -"@babel/plugin-transform-unicode-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca" - integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/preset-env@^7.20.2", "@babel/preset-env@~7.21.0": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.21.5.tgz#db2089d99efd2297716f018aeead815ac3decffb" - integrity sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg== - dependencies: - "@babel/compat-data" "^7.21.5" - "@babel/helper-compilation-targets" "^7.21.5" - "@babel/helper-plugin-utils" "^7.21.5" - "@babel/helper-validator-option" "^7.21.0" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.20.7" - "@babel/plugin-proposal-async-generator-functions" "^7.20.7" - "@babel/plugin-proposal-class-properties" "^7.18.6" - "@babel/plugin-proposal-class-static-block" "^7.21.0" - "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.9" - "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.20.7" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" - "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.20.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.21.0" - "@babel/plugin-proposal-private-methods" "^7.18.6" - "@babel/plugin-proposal-private-property-in-object" "^7.21.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.20.0" - "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.21.5" - "@babel/plugin-transform-async-to-generator" "^7.20.7" - "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.21.0" - "@babel/plugin-transform-classes" "^7.21.0" - "@babel/plugin-transform-computed-properties" "^7.21.5" - "@babel/plugin-transform-destructuring" "^7.21.3" - "@babel/plugin-transform-dotall-regex" "^7.18.6" - "@babel/plugin-transform-duplicate-keys" "^7.18.9" - "@babel/plugin-transform-exponentiation-operator" "^7.18.6" - "@babel/plugin-transform-for-of" "^7.21.5" - "@babel/plugin-transform-function-name" "^7.18.9" - "@babel/plugin-transform-literals" "^7.18.9" - "@babel/plugin-transform-member-expression-literals" "^7.18.6" - "@babel/plugin-transform-modules-amd" "^7.20.11" - "@babel/plugin-transform-modules-commonjs" "^7.21.5" - "@babel/plugin-transform-modules-systemjs" "^7.20.11" - "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.20.5" - "@babel/plugin-transform-new-target" "^7.18.6" - "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.21.3" - "@babel/plugin-transform-property-literals" "^7.18.6" - "@babel/plugin-transform-regenerator" "^7.21.5" - "@babel/plugin-transform-reserved-words" "^7.18.6" - "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.20.7" - "@babel/plugin-transform-sticky-regex" "^7.18.6" - "@babel/plugin-transform-template-literals" "^7.18.9" - "@babel/plugin-transform-typeof-symbol" "^7.18.9" - "@babel/plugin-transform-unicode-escapes" "^7.21.5" - "@babel/plugin-transform-unicode-regex" "^7.18.6" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.21.5" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - core-js-compat "^3.25.1" - semver "^6.3.0" - -"@babel/preset-flow@^7.13.13": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.21.4.tgz#a5de2a1cafa61f0e0b3af9b30ff0295d38d3608f" - integrity sha512-F24cSq4DIBmhq4OzK3dE63NHagb27OPE3eWR+HLekt4Z3Y5MzIIUGF3LlLgV0gN8vzbDViSY7HnrReNVCJXTeA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-option" "^7.21.0" - "@babel/plugin-transform-flow-strip-types" "^7.21.0" - -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/preset-typescript@^7.13.0": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.21.5.tgz#68292c884b0e26070b4d66b202072d391358395f" - integrity sha512-iqe3sETat5EOrORXiQ6rWfoOg2y68Cs75B9wNxdPW4kixJxh7aXQE1KPdWLDniC24T/6dSnguF33W9j/ZZQcmA== - dependencies: - "@babel/helper-plugin-utils" "^7.21.5" - "@babel/helper-validator-option" "^7.21.0" - "@babel/plugin-syntax-jsx" "^7.21.4" - "@babel/plugin-transform-modules-commonjs" "^7.21.5" - "@babel/plugin-transform-typescript" "^7.21.3" - -"@babel/register@^7.13.16": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.21.0.tgz#c97bf56c2472e063774f31d344c592ebdcefa132" - integrity sha512-9nKsPmYDi5DidAqJaQooxIhsLJiNMkGr8ypQ8Uic7cIox7UCDsM7HuUGxdGT7mSDTYbqzIdsOWzfBton/YJrMw== - dependencies: - clone-deep "^4.0.1" - find-cache-dir "^2.0.0" - make-dir "^2.1.0" - pirates "^4.0.5" - source-map-support "^0.5.16" - -"@babel/regjsgen@^0.8.0": - version "0.8.0" - resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" - integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== - -"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.8.4": +"@babel/runtime@^7.11.2": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200" integrity sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q== @@ -987,50 +37,6 @@ dependencies: regenerator-runtime "^0.13.11" -"@babel/template@^7.18.10", "@babel/template@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" - integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - -"@babel/traverse@^7.1.6", "@babel/traverse@^7.20.5", "@babel/traverse@^7.21.5", "@babel/traverse@~7.21.2": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.5.tgz#ad22361d352a5154b498299d523cf72998a4b133" - integrity sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw== - dependencies: - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.5" - "@babel/helper-environment-visitor" "^7.21.5" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.21.5" - "@babel/types" "^7.21.5" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.2.0", "@babel/types@^7.20.0", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.4", "@babel/types@^7.21.5", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@~7.21.2": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.5.tgz#18dfbd47c39d3904d5db3d3dc2cc80bedb60e5b6" - integrity sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q== - dependencies: - "@babel/helper-string-parser" "^7.21.5" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" - -"@base2/pretty-print-object@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz#371ba8be66d556812dc7fb169ebc3c08378f69d4" - integrity sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA== - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - "@chevrotain/cst-dts-gen@10.5.0": version "10.5.0" resolved "https://registry.yarnpkg.com/@chevrotain/cst-dts-gen/-/cst-dts-gen-10.5.0.tgz#922ebd8cc59d97241bb01b1b17561a5c1ae0124e" @@ -1063,16 +69,6 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@discoveryjs/json-ext@^0.5.3": - version "0.5.7" - resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" - integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== - -"@emotion/use-insertion-effect-with-fallbacks@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz#08de79f54eb3406f9daaf77c76e35313da963963" - integrity sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw== - "@esbuild/aix-ppc64@0.21.5": version "0.21.5" resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" @@ -1330,11 +326,6 @@ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.39.0.tgz#58b536bcc843f4cd1e02a7e6171da5c040f4d44b" integrity sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng== -"@fal-works/esbuild-plugin-global-externals@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz#c05ed35ad82df8e6ac616c68b92c2282bd083ba4" - integrity sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ== - "@gar/promisify@^1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" @@ -1364,147 +355,11 @@ resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/schemas@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" - integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg== - dependencies: - "@sinclair/typebox" "^0.25.16" - -"@jest/transform@^29.3.1": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.5.0.tgz#cf9c872d0965f0cbd32f1458aa44a2b1988b00f9" - integrity sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.5.0" - "@jridgewell/trace-mapping" "^0.3.15" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" - jest-regex-util "^29.4.3" - jest-util "^29.5.0" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.2" - -"@jest/types@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" - integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - -"@jest/types@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" - integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog== - dependencies: - "@jest/schemas" "^29.4.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@joshwooding/vite-plugin-react-docgen-typescript@0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@joshwooding/vite-plugin-react-docgen-typescript/-/vite-plugin-react-docgen-typescript-0.2.1.tgz#930f6f0382520e4ba349eea1b152f9ae49364516" - integrity sha512-ou4ZJSXMMWHqGS4g8uNRbC5TiTWxAgQZiVucoUrOCWuPrTbkpJbmVyIi9jU72SBry7gQtuMEDp4YR8EEXAg7VQ== - dependencies: - glob "^7.2.0" - glob-promise "^4.2.0" - magic-string "^0.27.0" - react-docgen-typescript "^2.2.2" - -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/sourcemap-codec@1.4.14": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== - "@jridgewell/sourcemap-codec@^1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.18" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" - integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - -"@juggle/resize-observer@^3.3.1": - version "3.4.0" - resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz#08d6c5e20cf7e4cc02fd181c4b0c225cd31dbb60" - integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== - -"@mdx-js/react@^2.1.5": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-2.3.0.tgz#4208bd6d70f0d0831def28ef28c26149b03180b3" - integrity sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g== - dependencies: - "@types/mdx" "^2.0.0" - "@types/react" ">=16" - -"@ndelangen/get-tarball@^3.0.7": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@ndelangen/get-tarball/-/get-tarball-3.0.7.tgz#87c7aef2df4ff4fbdbab6ac9ed32cee142c4b1a3" - integrity sha512-NqGfTZIZpRFef1GoVaShSSRwDC3vde3ThtTeqFdcYd6ipKqnfEVhjK2hUeHjCQUcptyZr2TONqcloFXM+5QBrQ== - dependencies: - gunzip-maybe "^1.4.2" - pump "^3.0.0" - tar-fs "^2.1.1" - "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1918,14 +773,6 @@ suspend-react "^0.1.3" zustand "^4.1.2" -"@rollup/pluginutils@^4.2.0": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" - integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== - dependencies: - estree-walker "^2.0.1" - picomatch "^2.2.2" - "@rollup/rollup-android-arm-eabi@4.28.1": version "4.28.1" resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.1.tgz#7f4c4d8cd5ccab6e95d6750dbe00321c1f30791e" @@ -2048,971 +895,58 @@ "@semantic-release/error" "^3.0.0" aggregate-error "^3.0.0" bottleneck "^2.18.1" - debug "^4.0.0" - dir-glob "^3.0.0" - fs-extra "^11.0.0" - globby "^11.0.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.0" - issue-parser "^6.0.0" - lodash "^4.17.4" - mime "^3.0.0" - p-filter "^2.0.0" - p-retry "^4.0.0" - url-join "^4.0.0" - -"@semantic-release/npm@^10.0.2": - version "10.0.3" - resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-10.0.3.tgz#11c5a1927f2e942d4067732d930cb44718b9b7ac" - integrity sha512-Chbv3kX4o+y+r1X6hsqBVB8NFbSVfiNlYOqMG6o9Wc8r5Y4cjxfbaMCuJ++XAtw3YXYX/NVD05cPzBi4Orjusg== - dependencies: - "@semantic-release/error" "^3.0.0" - aggregate-error "^4.0.1" - execa "^7.0.0" - fs-extra "^11.0.0" - lodash-es "^4.17.21" - nerf-dart "^1.0.0" - normalize-url "^8.0.0" - npm "^9.5.0" - rc "^1.2.8" - read-pkg "^8.0.0" - registry-auth-token "^5.0.0" - semver "^7.1.2" - tempy "^3.0.0" - -"@semantic-release/release-notes-generator@^11.0.0": - version "11.0.1" - resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-11.0.1.tgz#38a7d66e9a762915bea36a006dbb2d41fbcb4a66" - integrity sha512-4deWsiY4Rg80oc9Ms11N20BIDgYkPMys4scNYQpi2Njdrtw5Z55nXKNsUN3kn6Sy/nI9dqqbp5L63TL4luI5Bw== - dependencies: - conventional-changelog-angular "^5.0.0" - conventional-changelog-writer "^5.0.0" - conventional-commits-filter "^2.0.0" - conventional-commits-parser "^3.2.3" - debug "^4.0.0" - get-stream "^6.0.0" - import-from "^4.0.0" - into-stream "^7.0.0" - lodash-es "^4.17.21" - read-pkg-up "^9.0.0" - -"@sigstore/protobuf-specs@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.1.0.tgz#957cb64ea2f5ce527cc9cf02a096baeb0d2b99b4" - integrity sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ== - -"@sinclair/typebox@^0.25.16": - version "0.25.24" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" - integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== - -"@storybook/addon-actions@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-7.0.10.tgz#cd5973a4d99d573ef23c70f0a719b4caf0d434b1" - integrity sha512-U8c7n918/mOjXnc1Iu/sglbK+ryC4xoyjWE5SG/68h0+sHb1rioNq7leAi24mCP6jNwNI5Q7TWtuvflOGxQDKQ== - dependencies: - "@storybook/client-logger" "7.0.10" - "@storybook/components" "7.0.10" - "@storybook/core-events" "7.0.10" - "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.0.10" - "@storybook/preview-api" "7.0.10" - "@storybook/theming" "7.0.10" - "@storybook/types" "7.0.10" - dequal "^2.0.2" - lodash "^4.17.21" - polished "^4.2.2" - prop-types "^15.7.2" - react-inspector "^6.0.0" - telejson "^7.0.3" - ts-dedent "^2.0.0" - uuid "^9.0.0" - -"@storybook/addon-backgrounds@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-backgrounds/-/addon-backgrounds-7.0.10.tgz#b4b5e5ff04798ca6e1af2c971597a0aabad85653" - integrity sha512-QtOxXO9hKtwBjjdLXWYKp4HpcpNOrLfc71dn78XbMKyCkQRlYtVe8GNk/++70UQtFfKCEJIB0hTHrPmSjDJE5A== - dependencies: - "@storybook/client-logger" "7.0.10" - "@storybook/components" "7.0.10" - "@storybook/core-events" "7.0.10" - "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.0.10" - "@storybook/preview-api" "7.0.10" - "@storybook/theming" "7.0.10" - "@storybook/types" "7.0.10" - memoizerific "^1.11.3" - ts-dedent "^2.0.0" - -"@storybook/addon-controls@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-controls/-/addon-controls-7.0.10.tgz#979a5be0d75fa451ebe41a968a2d1e107a634ef1" - integrity sha512-j5UiPH8ZJx0ieUoIeV3iENlsIRDuQCeg3gTlLD668sebx8KHOCSJygh0Zvg1sTUUGSIbenhWaPlqfaW6ShKFWQ== - dependencies: - "@storybook/blocks" "7.0.10" - "@storybook/client-logger" "7.0.10" - "@storybook/components" "7.0.10" - "@storybook/core-common" "7.0.10" - "@storybook/manager-api" "7.0.10" - "@storybook/node-logger" "7.0.10" - "@storybook/preview-api" "7.0.10" - "@storybook/theming" "7.0.10" - "@storybook/types" "7.0.10" - lodash "^4.17.21" - ts-dedent "^2.0.0" - -"@storybook/addon-docs@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-7.0.10.tgz#e657b73c43594b1d957f44e328b6e0fe0cf7a266" - integrity sha512-1tUsJ+fuBqk4oTOBLabyPQeQYiRKs9I6+soY7dG8jN15Bxe/Ey2giNpqUkA3xAIuqS75ydRVKmsfQvILu2nLjg== - dependencies: - "@babel/core" "^7.20.2" - "@babel/plugin-transform-react-jsx" "^7.19.0" - "@jest/transform" "^29.3.1" - "@mdx-js/react" "^2.1.5" - "@storybook/blocks" "7.0.10" - "@storybook/client-logger" "7.0.10" - "@storybook/components" "7.0.10" - "@storybook/csf-plugin" "7.0.10" - "@storybook/csf-tools" "7.0.10" - "@storybook/global" "^5.0.0" - "@storybook/mdx2-csf" "^1.0.0" - "@storybook/node-logger" "7.0.10" - "@storybook/postinstall" "7.0.10" - "@storybook/preview-api" "7.0.10" - "@storybook/react-dom-shim" "7.0.10" - "@storybook/theming" "7.0.10" - "@storybook/types" "7.0.10" - fs-extra "^11.1.0" - remark-external-links "^8.0.0" - remark-slug "^6.0.0" - ts-dedent "^2.0.0" - -"@storybook/addon-essentials@^7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-essentials/-/addon-essentials-7.0.10.tgz#f297d15f689c506056ed7a584c361abe007e2c8e" - integrity sha512-nOeUtNbfLXOlgGqqqlsYC9gcYSrAxABBo8jHYiZg3xaEB9+cnKjCKK8VxrqJiR002AG5JZvi+uHeAauM94fkkQ== - dependencies: - "@storybook/addon-actions" "7.0.10" - "@storybook/addon-backgrounds" "7.0.10" - "@storybook/addon-controls" "7.0.10" - "@storybook/addon-docs" "7.0.10" - "@storybook/addon-highlight" "7.0.10" - "@storybook/addon-measure" "7.0.10" - "@storybook/addon-outline" "7.0.10" - "@storybook/addon-toolbars" "7.0.10" - "@storybook/addon-viewport" "7.0.10" - "@storybook/core-common" "7.0.10" - "@storybook/manager-api" "7.0.10" - "@storybook/node-logger" "7.0.10" - "@storybook/preview-api" "7.0.10" - ts-dedent "^2.0.0" - -"@storybook/addon-highlight@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-highlight/-/addon-highlight-7.0.10.tgz#8d8c592c37c2793fe99a4e76709b5dcbafff62d2" - integrity sha512-TohDxElSu7JrSvhLRZAwtNk/7Ot626wvlODwklocE4kbtn1fulFoUlRta7NImBGX554LITDFRy0m4R1rRQ9OfQ== - dependencies: - "@storybook/core-events" "7.0.10" - "@storybook/global" "^5.0.0" - "@storybook/preview-api" "7.0.10" - -"@storybook/addon-interactions@^7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-interactions/-/addon-interactions-7.0.10.tgz#a3d4671ccab376b0c4b7f56d7eaf1316388e107b" - integrity sha512-7hdFgoetQblwysYwRlmC5fbMVDb6lIM6le1pVEmRci6X44Gr2Xe5w2s6h5bTp4tMpNS1CFKjru9kF/TqfK46wA== - dependencies: - "@storybook/client-logger" "7.0.10" - "@storybook/components" "7.0.10" - "@storybook/core-common" "7.0.10" - "@storybook/core-events" "7.0.10" - "@storybook/global" "^5.0.0" - "@storybook/instrumenter" "7.0.10" - "@storybook/manager-api" "7.0.10" - "@storybook/preview-api" "7.0.10" - "@storybook/theming" "7.0.10" - "@storybook/types" "7.0.10" - jest-mock "^27.0.6" - polished "^4.2.2" - ts-dedent "^2.2.0" - -"@storybook/addon-links@^7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-7.0.10.tgz#18035542bfe9d08f300475318ee9a97241dded53" - integrity sha512-Odhe0eICqW9X2yyIjtOVb23cKXJ2WRxPHBm5oYf6hBBoXXK7EJicwyQSJLxJyHK7r1PeAnFxSGlNrO3w7JULjg== - dependencies: - "@storybook/client-logger" "7.0.10" - "@storybook/core-events" "7.0.10" - "@storybook/csf" "^0.1.0" - "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.0.10" - "@storybook/preview-api" "7.0.10" - "@storybook/router" "7.0.10" - "@storybook/types" "7.0.10" - prop-types "^15.7.2" - ts-dedent "^2.0.0" - -"@storybook/addon-measure@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-measure/-/addon-measure-7.0.10.tgz#db53d1a873d5cfb0e208361b7113b6d6a99593e9" - integrity sha512-70BQT8PM6r3qjXDgXuN5mx9CBq9dYTdEgR1tlZ8FbMi8B8tB1oZJD0o6tfGM3r8WjdI0sTwX70ic5pv9Ma/MiA== - dependencies: - "@storybook/client-logger" "7.0.10" - "@storybook/components" "7.0.10" - "@storybook/core-events" "7.0.10" - "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.0.10" - "@storybook/preview-api" "7.0.10" - "@storybook/types" "7.0.10" - -"@storybook/addon-outline@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-outline/-/addon-outline-7.0.10.tgz#5bf15b6d0659c678fd8fb62bde48cb3ce8e886d7" - integrity sha512-Aakoc+II7orfgUDmjgMbnSp5HZS/47z0NeRAfh+FP4fxL0lFd9vmaeIXWYo1DjJqdEFfvlSLd8aS9Ltb+souMw== - dependencies: - "@storybook/client-logger" "7.0.10" - "@storybook/components" "7.0.10" - "@storybook/core-events" "7.0.10" - "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.0.10" - "@storybook/preview-api" "7.0.10" - "@storybook/types" "7.0.10" - ts-dedent "^2.0.0" - -"@storybook/addon-toolbars@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-toolbars/-/addon-toolbars-7.0.10.tgz#3c5ed9da1d4ded2b5c0ecd5343c03b59fd3c464b" - integrity sha512-U4a45CDw4SZzrgboYVMgxyiD7Ejud1kSz2lyS+J3fGTZGXq2+tmJS/2oNrLJlSH7v8629lVUbKnFxsP0HbfShg== - dependencies: - "@storybook/client-logger" "7.0.10" - "@storybook/components" "7.0.10" - "@storybook/manager-api" "7.0.10" - "@storybook/preview-api" "7.0.10" - "@storybook/theming" "7.0.10" - -"@storybook/addon-viewport@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-viewport/-/addon-viewport-7.0.10.tgz#64bd391359f712641ae399698e536350585a9843" - integrity sha512-Ck9sdCg3T8ChXoxYL5IEi+ZUOwdH6Je5XeK4kRVq+Ar+Ytm5CFTGJCCZjI6biroTnuJCUefaV2K5NUZoHkZI+A== - dependencies: - "@storybook/client-logger" "7.0.10" - "@storybook/components" "7.0.10" - "@storybook/core-events" "7.0.10" - "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.0.10" - "@storybook/preview-api" "7.0.10" - "@storybook/theming" "7.0.10" - memoizerific "^1.11.3" - prop-types "^15.7.2" - -"@storybook/blocks@7.0.10", "@storybook/blocks@^7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/blocks/-/blocks-7.0.10.tgz#52134dc5ef8915bf677bc7a859fb7accbe571747" - integrity sha512-OqXuN1x2TjXgrOqGSaD0Vz8iCqmLjiPkrQpWMD7bToFpHH0dpmcrzzRhLhxgJLN2CAzyr98IYIkUgXX9Da1neA== - dependencies: - "@storybook/channels" "7.0.10" - "@storybook/client-logger" "7.0.10" - "@storybook/components" "7.0.10" - "@storybook/core-events" "7.0.10" - "@storybook/csf" "^0.1.0" - "@storybook/docs-tools" "7.0.10" - "@storybook/global" "^5.0.0" - "@storybook/manager-api" "7.0.10" - "@storybook/preview-api" "7.0.10" - "@storybook/theming" "7.0.10" - "@storybook/types" "7.0.10" - "@types/lodash" "^4.14.167" - color-convert "^2.0.1" - dequal "^2.0.2" - lodash "^4.17.21" - markdown-to-jsx "^7.1.8" - memoizerific "^1.11.3" - polished "^4.2.2" - react-colorful "^5.1.2" - telejson "^7.0.3" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/builder-manager@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/builder-manager/-/builder-manager-7.0.10.tgz#dcc644b181a6eaf5c4962262b0d0fe10acc86a85" - integrity sha512-izCVE4JEbDVN5DPkX/Ym1PifAJKlheBvXKmGXGklnJQ2l+TEuvesPbOmVFNuu7ptJAFw4JO5n2KAo9+a5FRwiw== - dependencies: - "@fal-works/esbuild-plugin-global-externals" "^2.1.2" - "@storybook/core-common" "7.0.10" - "@storybook/manager" "7.0.10" - "@storybook/node-logger" "7.0.10" - "@types/ejs" "^3.1.1" - "@types/find-cache-dir" "^3.2.1" - "@yarnpkg/esbuild-plugin-pnp" "^3.0.0-rc.10" - browser-assert "^1.2.1" - ejs "^3.1.8" - esbuild "^0.17.0" - esbuild-plugin-alias "^0.2.1" - express "^4.17.3" - find-cache-dir "^3.0.0" - fs-extra "^11.1.0" - process "^0.11.10" - util "^0.12.4" - -"@storybook/builder-vite@7.0.11": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@storybook/builder-vite/-/builder-vite-7.0.11.tgz#de6f175b6db4a8e79d0fdb14f61ba7c5fdaae6c4" - integrity sha512-qFT2WDJexbcxJjLD7k/whEiHbqIZ0wsHFfiGX5JyTEba4a7UTQ6a6yDCUb1KuLnyUOa056FwEag9ghw3WRowmA== - dependencies: - "@storybook/channel-postmessage" "7.0.11" - "@storybook/channel-websocket" "7.0.11" - "@storybook/client-logger" "7.0.11" - "@storybook/core-common" "7.0.11" - "@storybook/csf-plugin" "7.0.11" - "@storybook/mdx2-csf" "^1.0.0" - "@storybook/node-logger" "7.0.11" - "@storybook/preview" "7.0.11" - "@storybook/preview-api" "7.0.11" - "@storybook/types" "7.0.11" - browser-assert "^1.2.1" - es-module-lexer "^0.9.3" - express "^4.17.3" - fs-extra "^11.1.0" - glob "^8.1.0" - glob-promise "^6.0.2" - magic-string "^0.27.0" - remark-external-links "^8.0.0" - remark-slug "^6.0.0" - rollup "^2.25.0 || ^3.3.0" - -"@storybook/channel-postmessage@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-7.0.10.tgz#4c58dec64710672b9d58e66a1e37fe5eb4e7d612" - integrity sha512-Y5ZSp9WYH3HznQ2rrGN78Y5fYM16Bfvyn3iKy5QD38gsQk1gTrra1osIZ0X+lk3sep14D4oW4QMW3DCSrn0Big== - dependencies: - "@storybook/channels" "7.0.10" - "@storybook/client-logger" "7.0.10" - "@storybook/core-events" "7.0.10" - "@storybook/global" "^5.0.0" - qs "^6.10.0" - telejson "^7.0.3" - -"@storybook/channel-postmessage@7.0.11": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-7.0.11.tgz#f71213dee292a06a6a7f8c0518fd3f52f261792e" - integrity sha512-6ARow3o2thnXLO4i3+tluHAPqqSrB30U/Oxg3JqC5/2FJin3UFBOMCj04V7FPUN8jQfZpERoYgiUYE9JddT39g== - dependencies: - "@storybook/channels" "7.0.11" - "@storybook/client-logger" "7.0.11" - "@storybook/core-events" "7.0.11" - "@storybook/global" "^5.0.0" - qs "^6.10.0" - telejson "^7.0.3" - -"@storybook/channel-websocket@7.0.11": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@storybook/channel-websocket/-/channel-websocket-7.0.11.tgz#c9b5b68e37e3d8d699081805d80ec6580adfb532" - integrity sha512-AeoOFDA0Rkf4Jx5PgX76tlehUYbC0AHDA63ZLVol9O/P4ch2Ju5cxsiFv0brdcnv4t2ibNZkqFdsrut9O/wacg== - dependencies: - "@storybook/channels" "7.0.11" - "@storybook/client-logger" "7.0.11" - "@storybook/global" "^5.0.0" - telejson "^7.0.3" - -"@storybook/channels@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-7.0.10.tgz#e89c651f2a89db961dc047e6e4c72201c41f1b25" - integrity sha512-hdPaGV3W7s6MkVcg33S5hmkVgqXC16AA7H0ID9MROiU1lQzolKhSqCs2iVfGPQfmWzEJeqWQoEXU7dmCclRM0w== - -"@storybook/channels@7.0.11": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-7.0.11.tgz#c753d37ade4b85bf5cb5a8ebaf81d535f21ee547" - integrity sha512-1cVgju7ViN7GDeUNUS5hp3GZLT2EgxgXj7zuGbCZwsF8lFsM0IWeXma8TV0UfcBiyQjP4edYRmUn0vy6CMc/WA== - -"@storybook/cli@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/cli/-/cli-7.0.10.tgz#115754f7910223630cefcef59050f99ad685e702" - integrity sha512-FhtE6Yrk7MMa9AgLb3MTmqiQ3IlWHjjrj7Vcj2QM6BcP342xSe7C1d+V6+tYX/oPOEB3Upz+PKNrju1iHxurQQ== - dependencies: - "@babel/core" "^7.20.2" - "@babel/preset-env" "^7.20.2" - "@ndelangen/get-tarball" "^3.0.7" - "@storybook/codemod" "7.0.10" - "@storybook/core-common" "7.0.10" - "@storybook/core-server" "7.0.10" - "@storybook/csf-tools" "7.0.10" - "@storybook/node-logger" "7.0.10" - "@storybook/telemetry" "7.0.10" - "@storybook/types" "7.0.10" - "@types/semver" "^7.3.4" - boxen "^5.1.2" - chalk "^4.1.0" - commander "^6.2.1" - cross-spawn "^7.0.3" - detect-indent "^6.1.0" - envinfo "^7.7.3" - execa "^5.0.0" - express "^4.17.3" - find-up "^5.0.0" - fs-extra "^11.1.0" - get-npm-tarball-url "^2.0.3" - get-port "^5.1.1" - giget "^1.0.0" - globby "^11.0.2" - jscodeshift "^0.14.0" - leven "^3.1.0" - prettier "^2.8.0" - prompts "^2.4.0" - puppeteer-core "^2.1.1" - read-pkg-up "^7.0.1" - semver "^7.3.7" - shelljs "^0.8.5" - simple-update-notifier "^1.0.0" - strip-json-comments "^3.0.1" - tempy "^1.0.1" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/client-logger@7.0.10", "@storybook/client-logger@^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-7.0.10.tgz#941f6cf54638a422732b40ec31b2414872cdf4a8" - integrity sha512-hb8tO+w28ErzjEw69ERMtZT81Xyg835FQjH6Y42ejoGcBA9Z0W6RZmx4RgkcIUOlYXkU6lSnNVne9gXodV4/Hw== - dependencies: - "@storybook/global" "^5.0.0" - -"@storybook/client-logger@7.0.11": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-7.0.11.tgz#0210ec715be79a930f9d17ebff62b73fb7104337" - integrity sha512-3p+vXogcwPI9/9PgjqhJSzJsbcJUnvVyZ4rM4sQhwbXQkMjwl2j/LjI86zuYbQe9yQpKND1Yc4HPJd24225H/Q== - dependencies: - "@storybook/global" "^5.0.0" - -"@storybook/codemod@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/codemod/-/codemod-7.0.10.tgz#9c4f8951b77162c2ff245e23f46675c2cb94bd07" - integrity sha512-BnPknLV3wnaSk0azjFBAWLVfwgUHtFvVk9I6y1idIaQhc0nnegKoa0jTxWigthftZK/Pv9yG3gxG7o7O4KcChQ== - dependencies: - "@babel/core" "~7.21.0" - "@babel/preset-env" "~7.21.0" - "@babel/types" "~7.21.2" - "@storybook/csf" "^0.1.0" - "@storybook/csf-tools" "7.0.10" - "@storybook/node-logger" "7.0.10" - "@storybook/types" "7.0.10" - cross-spawn "^7.0.3" - globby "^11.0.2" - jscodeshift "^0.14.0" - lodash "^4.17.21" - prettier "^2.8.0" - recast "^0.23.1" - -"@storybook/components@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-7.0.10.tgz#f9416becc5badec06347870c3d29ca3ce53acf3a" - integrity sha512-jdGiVP+a3XqoGpKkDFGt4g2cgb23aLfMS/RhnuhT7FK6hGh7WFfuuqx4QqQHx4VZCdXIWVIzszaCdGCs7AsW2w== - dependencies: - "@storybook/client-logger" "7.0.10" - "@storybook/csf" "^0.1.0" - "@storybook/global" "^5.0.0" - "@storybook/theming" "7.0.10" - "@storybook/types" "7.0.10" - memoizerific "^1.11.3" - use-resize-observer "^9.1.0" - util-deprecate "^1.0.2" - -"@storybook/core-client@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-7.0.10.tgz#dc00959418c52f1a10590f83260f386bff5d6c86" - integrity sha512-sN/TKB7QHWP6josdjyNtoqDXihROPtgvzo5+akfW6+S7hhfsQ4BJd09nkBqEX9E7z81blmFFDUOU3a8bQbPdKQ== - dependencies: - "@storybook/client-logger" "7.0.10" - "@storybook/preview-api" "7.0.10" - -"@storybook/core-client@7.0.11": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@storybook/core-client/-/core-client-7.0.11.tgz#05909f7d6561bd0c3dbdad9d95ce386fff782de5" - integrity sha512-ALm4hpGa9cnhKAc6TbRPRV32cwH0I2F6vUYduVrDd/yq8a/o2rJQwvNOr7dJiakTWI/3IACeSlQMuStYqS8r+w== - dependencies: - "@storybook/client-logger" "7.0.11" - "@storybook/preview-api" "7.0.11" - -"@storybook/core-common@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-7.0.10.tgz#d6f6acc5aef671cd5165767c31635f5745fc45ad" - integrity sha512-AAYXixukGlpMy8XoSM8cTfcyQ6ijBq5q50xNTj/ssTbGnGSk6POgtoJZf6g8XtS0OxsFXBSxuBuMBBBbKtoztw== - dependencies: - "@storybook/node-logger" "7.0.10" - "@storybook/types" "7.0.10" - "@types/node" "^16.0.0" - "@types/pretty-hrtime" "^1.0.0" - chalk "^4.1.0" - esbuild "^0.17.0" - esbuild-register "^3.4.0" - file-system-cache "^2.0.0" - find-up "^5.0.0" - fs-extra "^11.1.0" - glob "^8.1.0" - glob-promise "^6.0.2" - handlebars "^4.7.7" - lazy-universal-dotenv "^4.0.0" - picomatch "^2.3.0" - pkg-dir "^5.0.0" - pretty-hrtime "^1.0.3" - resolve-from "^5.0.0" - ts-dedent "^2.0.0" - -"@storybook/core-common@7.0.11": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@storybook/core-common/-/core-common-7.0.11.tgz#2f6ba1d3ed424de6f4738e0de31119ecae3d7d57" - integrity sha512-orVhH92V9lwtwu3Cv78ys26vrRZXsKYGtTGdWPv/K3G0ihIKY6JgV2wJOGNH+urY2pmno1ALOkv1FvtwkKIxsA== - dependencies: - "@storybook/node-logger" "7.0.11" - "@storybook/types" "7.0.11" - "@types/node" "^16.0.0" - "@types/pretty-hrtime" "^1.0.0" - chalk "^4.1.0" - esbuild "^0.17.0" - esbuild-register "^3.4.0" - file-system-cache "^2.0.0" - find-up "^5.0.0" - fs-extra "^11.1.0" - glob "^8.1.0" - glob-promise "^6.0.2" - handlebars "^4.7.7" - lazy-universal-dotenv "^4.0.0" - picomatch "^2.3.0" - pkg-dir "^5.0.0" - pretty-hrtime "^1.0.3" - resolve-from "^5.0.0" - ts-dedent "^2.0.0" - -"@storybook/core-events@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-7.0.10.tgz#56d0a433cb7044d691a148d2b4c8e6005beb7755" - integrity sha512-OyBqhxVQOdI78Vgv6nKwXOdIVNChyfktpdxQZP1rz9MpO6MrqMaGAUL7k8xQMQAVx0VY+dAMYZB3bnyN2IC8FA== - -"@storybook/core-events@7.0.11": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@storybook/core-events/-/core-events-7.0.11.tgz#9d11fc7c7f60f3450fd379476fd7ef9c7c7d556f" - integrity sha512-azEjQMpMx61h4o11OV8l78ab6Jxiwc5nlbqEUa1FVCupyRKFxrbK7zovmWyVL3cTllCSiJf4v3o/MadtuH4lcw== - -"@storybook/core-server@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/core-server/-/core-server-7.0.10.tgz#b119f65ad1a9e164034f52c9b649d5b8b72cfa65" - integrity sha512-KFCc3turPed8tiC5IUKTV7oObVmFckMP1XqO7zec2g2NlGQsN83DRso+BA1wpV/bb8AD1NJDU6LJnyN3KKdi1Q== - dependencies: - "@aw-web-design/x-default-browser" "1.4.88" - "@discoveryjs/json-ext" "^0.5.3" - "@storybook/builder-manager" "7.0.10" - "@storybook/core-common" "7.0.10" - "@storybook/core-events" "7.0.10" - "@storybook/csf" "^0.1.0" - "@storybook/csf-tools" "7.0.10" - "@storybook/docs-mdx" "^0.1.0" - "@storybook/global" "^5.0.0" - "@storybook/manager" "7.0.10" - "@storybook/node-logger" "7.0.10" - "@storybook/preview-api" "7.0.10" - "@storybook/telemetry" "7.0.10" - "@storybook/types" "7.0.10" - "@types/detect-port" "^1.3.0" - "@types/node" "^16.0.0" - "@types/node-fetch" "^2.5.7" - "@types/pretty-hrtime" "^1.0.0" - "@types/semver" "^7.3.4" - better-opn "^2.1.1" - boxen "^5.1.2" - chalk "^4.1.0" - cli-table3 "^0.6.1" - compression "^1.7.4" - detect-port "^1.3.0" - express "^4.17.3" - fs-extra "^11.1.0" - globby "^11.0.2" - ip "^2.0.0" - lodash "^4.17.21" - node-fetch "^2.6.7" - open "^8.4.0" - pretty-hrtime "^1.0.3" - prompts "^2.4.0" - read-pkg-up "^7.0.1" - semver "^7.3.7" - serve-favicon "^2.5.0" - telejson "^7.0.3" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - watchpack "^2.2.0" - ws "^8.2.3" - -"@storybook/csf-plugin@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/csf-plugin/-/csf-plugin-7.0.10.tgz#a95af00476d06c154edb93a3a94f70086d67935a" - integrity sha512-uUty5rLs6O32tJaXIne2/42UxFL3eaRCDgtAoAkGxbUPa/FLYpO0rYtqF2OG9MagwXU7+As5RlLkDLeYAvUzlQ== - dependencies: - "@storybook/csf-tools" "7.0.10" - unplugin "^0.10.2" - -"@storybook/csf-plugin@7.0.11": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@storybook/csf-plugin/-/csf-plugin-7.0.11.tgz#23c12e11f4f72f2b6be946a604152abaa4d99b7a" - integrity sha512-TL52rXruFf8kuw4y9CFfPUoF5KWYXaoxy3zStTognY+kZpDr424JJO/IHYFNp72YVZ1pygeOdZnGCKCDlw5vUQ== - dependencies: - "@storybook/csf-tools" "7.0.11" - unplugin "^0.10.2" - -"@storybook/csf-tools@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-7.0.10.tgz#d45b12fcbb7f24652eb9d3d08cd7d99f06701da0" - integrity sha512-sl/995jq03HD7/Q9cb54h0glgt7JLGTkfikSlB35NGMEkgEXEswDmpQHA/TbzUYylIxuAwTKghwMqL3IwSSHwA== - dependencies: - "@babel/generator" "~7.21.1" - "@babel/parser" "~7.21.2" - "@babel/traverse" "~7.21.2" - "@babel/types" "~7.21.2" - "@storybook/csf" "^0.1.0" - "@storybook/types" "7.0.10" - fs-extra "^11.1.0" - recast "^0.23.1" - ts-dedent "^2.0.0" - -"@storybook/csf-tools@7.0.11": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@storybook/csf-tools/-/csf-tools-7.0.11.tgz#93bd1cf80e50ff787de3731c9975adb15c58a2f2" - integrity sha512-hW2Mw/EZ+sCwFByR1FCaElw3LqIh2/wRGVg/zJk36L9Y1vPkpneZU+Gdy5rds2hBCCYXYkJpcVKemky15Z1HJg== - dependencies: - "@babel/generator" "~7.21.1" - "@babel/parser" "~7.21.2" - "@babel/traverse" "~7.21.2" - "@babel/types" "~7.21.2" - "@storybook/csf" "^0.1.0" - "@storybook/types" "7.0.11" - fs-extra "^11.1.0" - recast "^0.23.1" - ts-dedent "^2.0.0" - -"@storybook/csf@^0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@storybook/csf/-/csf-0.0.1.tgz#95901507dc02f0bc6f9ac8ee1983e2fc5bb98ce6" - integrity sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw== - dependencies: - lodash "^4.17.15" - -"@storybook/csf@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@storybook/csf/-/csf-0.1.0.tgz#62315bf9704f3aa4e0d4d909b9033833774ddfbe" - integrity sha512-uk+jMXCZ8t38jSTHk2o5btI+aV2Ksbvl6DoOv3r6VaCM1KZqeuMwtwywIQdflkA8/6q/dKT8z8L+g8hC4GC3VQ== - dependencies: - type-fest "^2.19.0" - -"@storybook/docs-mdx@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@storybook/docs-mdx/-/docs-mdx-0.1.0.tgz#33ba0e39d1461caf048b57db354b2cc410705316" - integrity sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg== - -"@storybook/docs-tools@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/docs-tools/-/docs-tools-7.0.10.tgz#b3be393b122fcdbbf256c1487ca0a1bf0a8649e0" - integrity sha512-w3m7+LlQGI50i07XjiOzIfoap8rnmsrs8hXGUTodbs9vvLt8HBdUaapOGnYr/1BzA0YQJ7Nz2z1nTirQEphmsQ== - dependencies: - "@babel/core" "^7.12.10" - "@storybook/core-common" "7.0.10" - "@storybook/preview-api" "7.0.10" - "@storybook/types" "7.0.10" - "@types/doctrine" "^0.0.3" - doctrine "^3.0.0" - lodash "^4.17.21" - -"@storybook/docs-tools@7.0.11": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@storybook/docs-tools/-/docs-tools-7.0.11.tgz#106e0048140f3f9a240788e6dee296be4ae16a38" - integrity sha512-irHZ4hYRA5HGCCtYHoLdb4j5NlfXgn9JWXXnWb4+6LaLanDQSFTGz+H4+qnet6nBEzXuzNWlsY/Wg18AYOZOfg== - dependencies: - "@babel/core" "^7.12.10" - "@storybook/core-common" "7.0.11" - "@storybook/preview-api" "7.0.11" - "@storybook/types" "7.0.11" - "@types/doctrine" "^0.0.3" - doctrine "^3.0.0" - lodash "^4.17.21" - -"@storybook/global@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@storybook/global/-/global-5.0.0.tgz#b793d34b94f572c1d7d9e0f44fac4e0dbc9572ed" - integrity sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ== - -"@storybook/instrumenter@7.0.10", "@storybook/instrumenter@^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/instrumenter/-/instrumenter-7.0.10.tgz#e44903c9ca339f3a1c855a031d9d88524442899d" - integrity sha512-Z+kIidnxaq3tneUnIKB2d0DCqb4lwUdOS/AC43LNvd9C6BWYgj89cIPdLDTNhOWa0ZiEju7wTS+K/3uMvcHZ4w== - dependencies: - "@storybook/channels" "7.0.10" - "@storybook/client-logger" "7.0.10" - "@storybook/core-events" "7.0.10" - "@storybook/global" "^5.0.0" - "@storybook/preview-api" "7.0.10" - -"@storybook/manager-api@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/manager-api/-/manager-api-7.0.10.tgz#b4cdff72e2d5f153b5679531d5f8c60582cce923" - integrity sha512-Dik73GKUX9QCFOvukTXjZoZX0G6n/LrRMkwLggb28E9m8iFt2ivWvF9MVvyRoDffR9VP5t53+nV5fqxqpXWoQw== - dependencies: - "@storybook/channels" "7.0.10" - "@storybook/client-logger" "7.0.10" - "@storybook/core-events" "7.0.10" - "@storybook/csf" "^0.1.0" - "@storybook/global" "^5.0.0" - "@storybook/router" "7.0.10" - "@storybook/theming" "7.0.10" - "@storybook/types" "7.0.10" - dequal "^2.0.2" - lodash "^4.17.21" - memoizerific "^1.11.3" - semver "^7.3.7" - store2 "^2.14.2" - telejson "^7.0.3" - ts-dedent "^2.0.0" - -"@storybook/manager@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/manager/-/manager-7.0.10.tgz#ea40cdd1d13155839d7ad0dc7848d999b44f4957" - integrity sha512-cFMOOXmcRx1tN50TqC2huOsF91fAvNM82wTDnAbT2FtA+ZHFHNyE1PgWgiKDDepzOpKaG+FfT4bJcQAaAfYOBg== - -"@storybook/mdx2-csf@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@storybook/mdx2-csf/-/mdx2-csf-1.1.0.tgz#97f6df04d0bf616991cc1005a073ac004a7281e5" - integrity sha512-TXJJd5RAKakWx4BtpwvSNdgTDkKM6RkXU8GK34S/LhidQ5Pjz3wcnqb0TxEkfhK/ztbP8nKHqXFwLfa2CYkvQw== - -"@storybook/node-logger@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-7.0.10.tgz#d725f1a3a7f28f75eb636b057b2332c93549812d" - integrity sha512-btCCreucTApi7EP84jbfqlFQZDD4Kz9lFLftalZA7nskDZW6i8reNNykTU2Y22TQvlbpqs5kL1N1cEsbG3vepw== - dependencies: - "@types/npmlog" "^4.1.2" - chalk "^4.1.0" - npmlog "^5.0.1" - pretty-hrtime "^1.0.3" - -"@storybook/node-logger@7.0.11": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-7.0.11.tgz#cc0bfddeb52484c6cded5c717d3bd8c6357071b0" - integrity sha512-N28h8aU5QglfaaM/wjpk0e7AAX8f1KBQXKArnRePHeK9M5L6w/BQQ5BcRAhcvQKZ6eOpHyADaRMHqxCxkY8qmw== - dependencies: - "@types/npmlog" "^4.1.2" - chalk "^4.1.0" - npmlog "^5.0.1" - pretty-hrtime "^1.0.3" - -"@storybook/postinstall@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/postinstall/-/postinstall-7.0.10.tgz#231cb902414ddada595af62c900c00a2f23c5468" - integrity sha512-SVPKGuuvfn1MceLWzYHGbpP77+waLKXglAH4Gkdoa2mKdk3XO45Zn8OhwwNzHuP698boMNaGaB/utBLBpkXMMg== - -"@storybook/preview-api@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/preview-api/-/preview-api-7.0.10.tgz#845ab96e775174d41680a7e05d54ef673e85fef1" - integrity sha512-URj2YJKbs8hc6JZQ3aA+MmjB4hTSzGZAVFVs3kLUEuaQPDbU1RT5GKxedwF5zlMnkZQPNoaUtopN3z7aF+SKFQ== - dependencies: - "@storybook/channel-postmessage" "7.0.10" - "@storybook/channels" "7.0.10" - "@storybook/client-logger" "7.0.10" - "@storybook/core-events" "7.0.10" - "@storybook/csf" "^0.1.0" - "@storybook/global" "^5.0.0" - "@storybook/types" "7.0.10" - "@types/qs" "^6.9.5" - dequal "^2.0.2" - lodash "^4.17.21" - memoizerific "^1.11.3" - qs "^6.10.0" - synchronous-promise "^2.0.15" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/preview-api@7.0.11": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@storybook/preview-api/-/preview-api-7.0.11.tgz#a70453374bebb9e828646ecdd5d3ff548a4558c9" - integrity sha512-w86kKnoH46xmhoi+i0V2bPiuoKnjUhEtSHXtIOEM+gJCfrKECWzrlDVCu+fh2xv38uf7zrJcQSJg9Vmpsmiasw== - dependencies: - "@storybook/channel-postmessage" "7.0.11" - "@storybook/channels" "7.0.11" - "@storybook/client-logger" "7.0.11" - "@storybook/core-events" "7.0.11" - "@storybook/csf" "^0.1.0" - "@storybook/global" "^5.0.0" - "@storybook/types" "7.0.11" - "@types/qs" "^6.9.5" - dequal "^2.0.2" - lodash "^4.17.21" - memoizerific "^1.11.3" - qs "^6.10.0" - synchronous-promise "^2.0.15" - ts-dedent "^2.0.0" - util-deprecate "^1.0.2" - -"@storybook/preview@7.0.11": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@storybook/preview/-/preview-7.0.11.tgz#1bd08e91daa16ca92aa3ab0a86b2126e3318d435" - integrity sha512-xsWyTggxCoSDJ+E0yNcVrShL/y8g8Tnx+3niVve9dTypa5QhcNWhJC1kZAi42F+WjQAmolJMWBpk9auCasuY7A== - -"@storybook/react-dom-shim@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-7.0.10.tgz#0409eaa06f23f4bf3c3ca3d0318195a55ad7aef2" - integrity sha512-NLuE2Be/BGmXHufwLp1Gje+IsTb0HWvwzHlci2U430WgwGU8fsTPNgALMrwCpqN9o1KnrRGpysQEoyIYStQBdg== - -"@storybook/react-dom-shim@7.0.11": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@storybook/react-dom-shim/-/react-dom-shim-7.0.11.tgz#2474bc0cbe0e81758ca3909683a277cf98751710" - integrity sha512-G7fdaIdDlED6m7f4c+5adXLb5LCaSv3aWrW1mL+pwaFboFzUMR5VAF4XwVFadYgasLZRxcrPdWRY1AZ+y6/dlw== - -"@storybook/react-vite@^7.0.11": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@storybook/react-vite/-/react-vite-7.0.11.tgz#21ffa39829dcba3dead2c3d1038c036affb7c76c" - integrity sha512-Uv08J0QpF/Rm8OR1GLwHdov1fU5c8DOhWyaKG3cCz5TYWeTsLXEofOOkyRs6wm9UYivAKwJKh+xC6jQDCxJW1g== - dependencies: - "@joshwooding/vite-plugin-react-docgen-typescript" "0.2.1" - "@rollup/pluginutils" "^4.2.0" - "@storybook/builder-vite" "7.0.11" - "@storybook/react" "7.0.11" - "@vitejs/plugin-react" "^3.0.1" - ast-types "^0.14.2" - magic-string "^0.27.0" - react-docgen "6.0.0-alpha.3" - -"@storybook/react@7.0.11": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@storybook/react/-/react-7.0.11.tgz#6d6760150f985a49b86301a5c911118081890bd7" - integrity sha512-BfUcJP1fAuMc8gDc/sCISY2dXIG/1IonPCxXSP6iO8Yzy5sucM+pl0tbsmeZ8ic35cH9j75+BZyT6iBIV9+o3A== - dependencies: - "@storybook/client-logger" "7.0.11" - "@storybook/core-client" "7.0.11" - "@storybook/docs-tools" "7.0.11" - "@storybook/global" "^5.0.0" - "@storybook/preview-api" "7.0.11" - "@storybook/react-dom-shim" "7.0.11" - "@storybook/types" "7.0.11" - "@types/escodegen" "^0.0.6" - "@types/estree" "^0.0.51" - "@types/node" "^16.0.0" - acorn "^7.4.1" - acorn-jsx "^5.3.1" - acorn-walk "^7.2.0" - escodegen "^2.0.0" - html-tags "^3.1.0" - lodash "^4.17.21" - prop-types "^15.7.2" - react-element-to-jsx-string "^15.0.0" - ts-dedent "^2.0.0" - type-fest "^2.19.0" - util-deprecate "^1.0.2" - -"@storybook/react@^7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/react/-/react-7.0.10.tgz#f4aa447c31748c66bae9a0fed303b5f4a78f9d0c" - integrity sha512-/DDUGFz0bk5c/HCfSr7fL74rQc+3s317TDDKY6ZrgUzdIkze4D/TlAbWV78XV/ceeFNi1fLAUzGjFzuDwmVkJw== - dependencies: - "@storybook/client-logger" "7.0.10" - "@storybook/core-client" "7.0.10" - "@storybook/docs-tools" "7.0.10" - "@storybook/global" "^5.0.0" - "@storybook/preview-api" "7.0.10" - "@storybook/react-dom-shim" "7.0.10" - "@storybook/types" "7.0.10" - "@types/escodegen" "^0.0.6" - "@types/estree" "^0.0.51" - "@types/node" "^16.0.0" - acorn "^7.4.1" - acorn-jsx "^5.3.1" - acorn-walk "^7.2.0" - escodegen "^2.0.0" - html-tags "^3.1.0" - lodash "^4.17.21" - prop-types "^15.7.2" - react-element-to-jsx-string "^15.0.0" - ts-dedent "^2.0.0" - type-fest "^2.19.0" - util-deprecate "^1.0.2" + debug "^4.0.0" + dir-glob "^3.0.0" + fs-extra "^11.0.0" + globby "^11.0.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + issue-parser "^6.0.0" + lodash "^4.17.4" + mime "^3.0.0" + p-filter "^2.0.0" + p-retry "^4.0.0" + url-join "^4.0.0" -"@storybook/router@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/router/-/router-7.0.10.tgz#9107e91d035754fb983e19023b720e1287d2fe0f" - integrity sha512-Vq3nuyrGsvbPYhsaVu0TwtzX8Yb5TZYg7v5gY/uk1brSIk7Mvw64E8WF4TKNhPcWnlxNrfP9S96IZgT9iuuCpw== +"@semantic-release/npm@^10.0.2": + version "10.0.3" + resolved "https://registry.yarnpkg.com/@semantic-release/npm/-/npm-10.0.3.tgz#11c5a1927f2e942d4067732d930cb44718b9b7ac" + integrity sha512-Chbv3kX4o+y+r1X6hsqBVB8NFbSVfiNlYOqMG6o9Wc8r5Y4cjxfbaMCuJ++XAtw3YXYX/NVD05cPzBi4Orjusg== dependencies: - "@storybook/client-logger" "7.0.10" - memoizerific "^1.11.3" - qs "^6.10.0" + "@semantic-release/error" "^3.0.0" + aggregate-error "^4.0.1" + execa "^7.0.0" + fs-extra "^11.0.0" + lodash-es "^4.17.21" + nerf-dart "^1.0.0" + normalize-url "^8.0.0" + npm "^9.5.0" + rc "^1.2.8" + read-pkg "^8.0.0" + registry-auth-token "^5.0.0" + semver "^7.1.2" + tempy "^3.0.0" -"@storybook/telemetry@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/telemetry/-/telemetry-7.0.10.tgz#b6ea2f3d3ee3b5ca23ad69a685a1407e8a9d0b3e" - integrity sha512-0xlMECcSU2UnmpDTxKE/+pKpcW88fhxEZxh54yoA6NPpq6SGUN1r5ybUMffJCZ0JgaQ8HOc3Vxd13T3VXAMLXA== +"@semantic-release/release-notes-generator@^11.0.0": + version "11.0.1" + resolved "https://registry.yarnpkg.com/@semantic-release/release-notes-generator/-/release-notes-generator-11.0.1.tgz#38a7d66e9a762915bea36a006dbb2d41fbcb4a66" + integrity sha512-4deWsiY4Rg80oc9Ms11N20BIDgYkPMys4scNYQpi2Njdrtw5Z55nXKNsUN3kn6Sy/nI9dqqbp5L63TL4luI5Bw== dependencies: - "@storybook/client-logger" "7.0.10" - "@storybook/core-common" "7.0.10" - chalk "^4.1.0" - detect-package-manager "^2.0.1" - fetch-retry "^5.0.2" - fs-extra "^11.1.0" - isomorphic-unfetch "^3.1.0" - nanoid "^3.3.1" - read-pkg-up "^7.0.1" - -"@storybook/testing-library@^0.0.14-next.2": - version "0.0.14-next.2" - resolved "https://registry.yarnpkg.com/@storybook/testing-library/-/testing-library-0.0.14-next.2.tgz#458e6c7623118e24826ba73b80db0a887f3f57e8" - integrity sha512-i/SLSGm0o978ELok/SB4Qg1sZ3zr+KuuCkzyFqcCD0r/yf+bG35aQGkFqqxfSAdDxuQom0NO02FE+qys5Eapdg== - dependencies: - "@storybook/client-logger" "^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0" - "@storybook/instrumenter" "^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0" - "@testing-library/dom" "^8.3.0" - "@testing-library/user-event" "^13.2.1" - ts-dedent "^2.2.0" - -"@storybook/theming@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/theming/-/theming-7.0.10.tgz#e69231c61ecf486d73f6a8c61cb1aa09eea18898" - integrity sha512-kKxIMElOUAyIAJOlhU6NS6/F6KpZLWvfGnUYC5V4f5Rsu+lKnbWI/TJ1rCIooz2wZBQ6dv+fjA3sOh5K+LRh2w== - dependencies: - "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" - "@storybook/client-logger" "7.0.10" - "@storybook/global" "^5.0.0" - memoizerific "^1.11.3" - -"@storybook/types@7.0.10": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@storybook/types/-/types-7.0.10.tgz#04bf81374fc6c519693b61546ddd8dd4d47fda97" - integrity sha512-mFktvN8PjjDFJSjck4spikmjtr0AwfOhcEtIf4UCmUD5JHgGppkQmvO6483nGcprSFcWOvD2uYGs8Wp32wG/MQ== - dependencies: - "@storybook/channels" "7.0.10" - "@types/babel__core" "^7.0.0" - "@types/express" "^4.7.0" - file-system-cache "^2.0.0" - -"@storybook/types@7.0.11": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@storybook/types/-/types-7.0.11.tgz#b4b0dfd68cf1558f10b30616997c55f37aff8c41" - integrity sha512-VOnef/u/HvYbk6LxWkwMlu31VD1ly6BTyHDOMUfYas03uNflX1KldGooWphmXVFrkkoLJoF5V4wsTShHSizi2A== - dependencies: - "@storybook/channels" "7.0.11" - "@types/babel__core" "^7.0.0" - "@types/express" "^4.7.0" - file-system-cache "^2.0.0" - -"@testing-library/dom@^8.3.0": - version "8.20.0" - resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.20.0.tgz#914aa862cef0f5e89b98cc48e3445c4c921010f6" - integrity sha512-d9ULIT+a4EXLX3UU8FBjauG9NnsZHkHztXoIcTsOKoOw030fyjheN9svkTULjJxtYag9DZz5Jz5qkWZDPxTFwA== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/runtime" "^7.12.5" - "@types/aria-query" "^5.0.1" - aria-query "^5.0.0" - chalk "^4.1.0" - dom-accessibility-api "^0.5.9" - lz-string "^1.4.4" - pretty-format "^27.0.2" + conventional-changelog-angular "^5.0.0" + conventional-changelog-writer "^5.0.0" + conventional-commits-filter "^2.0.0" + conventional-commits-parser "^3.2.3" + debug "^4.0.0" + get-stream "^6.0.0" + import-from "^4.0.0" + into-stream "^7.0.0" + lodash-es "^4.17.21" + read-pkg-up "^9.0.0" -"@testing-library/user-event@^13.2.1": - version "13.5.0" - resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-13.5.0.tgz#69d77007f1e124d55314a2b73fd204b333b13295" - integrity sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg== - dependencies: - "@babel/runtime" "^7.12.5" +"@sigstore/protobuf-specs@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.1.0.tgz#957cb64ea2f5ce527cc9cf02a096baeb0d2b99b4" + integrity sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ== "@tootallnate/once@2": version "2.0.0" @@ -3032,166 +966,21 @@ "@tufjs/canonical-json" "1.0.0" minimatch "^9.0.0" -"@types/aria-query@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.1.tgz#3286741fb8f1e1580ac28784add4c7a1d49bdfbc" - integrity sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q== - -"@types/babel__core@^7.0.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891" - integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ== - dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*": - version "7.18.5" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.5.tgz#c107216842905afafd3b6e774f6f935da6f5db80" - integrity sha512-enCvTL8m/EHS/zIvJno9nE+ndYPh1/oNFzRYRmtUqJICG2VnCSBzMLW5VN2KCQU91f23tsNKR8v7VJJQMatl7Q== - dependencies: - "@babel/types" "^7.3.0" - -"@types/body-parser@*": - version "1.19.2" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" - integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/connect@*": - version "3.4.35" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== - dependencies: - "@types/node" "*" - "@types/debounce@^1.2.1": version "1.2.4" resolved "https://registry.yarnpkg.com/@types/debounce/-/debounce-1.2.4.tgz#cb7e85d9ad5ababfac2f27183e8ac8b576b2abb3" integrity sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw== -"@types/detect-port@^1.3.0": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/detect-port/-/detect-port-1.3.2.tgz#8c06a975e472803b931ee73740aeebd0a2eb27ae" - integrity sha512-xxgAGA2SAU4111QefXPSp5eGbDm/hW6zhvYl9IeEPZEry9F4d66QAHm5qpUXjb6IsevZV/7emAEx5MhP6O192g== - -"@types/doctrine@^0.0.3": - version "0.0.3" - resolved "https://registry.yarnpkg.com/@types/doctrine/-/doctrine-0.0.3.tgz#e892d293c92c9c1d3f9af72c15a554fbc7e0895a" - integrity sha512-w5jZ0ee+HaPOaX25X2/2oGR/7rgAQSYII7X7pp0m9KgBfMP7uKfMfTvcpl5Dj+eDBbpxKGiqE+flqDr6XTd2RA== - "@types/draco3d@^1.4.0": version "1.4.2" resolved "https://registry.yarnpkg.com/@types/draco3d/-/draco3d-1.4.2.tgz#7faccb809db2a5e19b9efb97c5f2eb9d64d527ea" integrity sha512-goh23EGr6CLV6aKPwN1p8kBD/7tT5V/bLpToSbarKrwVejqNrspVrv8DhliteYkkhZYrlq/fwKZRRUzH4XN88w== -"@types/ejs@^3.1.1": - version "3.1.2" - resolved "https://registry.yarnpkg.com/@types/ejs/-/ejs-3.1.2.tgz#75d277b030bc11b3be38c807e10071f45ebc78d9" - integrity sha512-ZmiaE3wglXVWBM9fyVC17aGPkLo/UgaOjEiI2FXQfyczrCefORPxIe+2dVmnmk3zkVIbizjrlQzmPGhSYGXG5g== - -"@types/escodegen@^0.0.6": - version "0.0.6" - resolved "https://registry.yarnpkg.com/@types/escodegen/-/escodegen-0.0.6.tgz#5230a9ce796e042cda6f086dbf19f22ea330659c" - integrity sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig== - "@types/estree@1.0.6", "@types/estree@^1.0.0": version "1.0.6" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== -"@types/estree@^0.0.51": - version "0.0.51" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" - integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== - -"@types/express-serve-static-core@^4.17.33": - version "4.17.34" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.34.tgz#c119e85b75215178bc127de588e93100698ab4cc" - integrity sha512-fvr49XlCGoUj2Pp730AItckfjat4WNb0lb3kfrLWffd+RLeoGAMsq7UOy04PAPtoL01uKwcp6u8nhzpgpDYr3w== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/send" "*" - -"@types/express@^4.7.0": - version "4.17.17" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" - integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.33" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/find-cache-dir@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@types/find-cache-dir/-/find-cache-dir-3.2.1.tgz#7b959a4b9643a1e6a1a5fe49032693cc36773501" - integrity sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw== - -"@types/glob@^7.1.3": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - -"@types/glob@^8.0.0": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-8.1.0.tgz#b63e70155391b0584dce44e7ea25190bbc38f2fc" - integrity sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w== - dependencies: - "@types/minimatch" "^5.1.2" - "@types/node" "*" - -"@types/graceful-fs@^4.1.3": - version "4.1.6" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.6.tgz#e14b2576a1c25026b7f02ede1de3b84c3a1efeae" - integrity sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw== - dependencies: - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== - dependencies: - "@types/istanbul-lib-report" "*" - "@types/json-schema@^7.0.9": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" @@ -3202,94 +991,33 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/lodash@^4.14.167": - version "4.14.194" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.194.tgz#b71eb6f7a0ff11bff59fc987134a093029258a76" - integrity sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g== - -"@types/mdx@^2.0.0": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@types/mdx/-/mdx-2.0.5.tgz#9a85a8f70c7c4d9e695a21d5ae5c93645eda64b1" - integrity sha512-76CqzuD6Q7LC+AtbPqrvD9AqsN0k8bsYo2bM2J8pmNldP1aIPAbzUQ7QbobyXL4eLr1wK5x8FZFe8eF/ubRuBg== - -"@types/mime-types@^2.1.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@types/mime-types/-/mime-types-2.1.1.tgz#d9ba43490fa3a3df958759adf69396c3532cf2c1" - integrity sha512-vXOTGVSLR2jMw440moWTC7H19iUyLtP3Z1YTj7cSsubOICinjMxFeb/V57v9QdyyPGbbWolUFSSmSiRSn94tFw== - -"@types/mime@*": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" - integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== - -"@types/mime@^1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== - -"@types/minimatch@*", "@types/minimatch@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== - "@types/minimist@^1.2.0": version "1.2.2" resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== -"@types/node-fetch@^2.5.7": - version "2.6.3" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.3.tgz#175d977f5e24d93ad0f57602693c435c57ad7e80" - integrity sha512-ETTL1mOEdq/sxUtgtOhKjyB2Irra4cjxksvcMUR5Zr4n+PxVhsCD9WS46oPbHL3et9Zde7CNRr+WUNlcHvsX+w== +"@types/node@^22.10.7": + version "22.10.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.7.tgz#14a1ca33fd0ebdd9d63593ed8d3fbc882a6d28d7" + integrity sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg== dependencies: - "@types/node" "*" - form-data "^3.0.0" - -"@types/node@*": - version "20.1.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.1.3.tgz#bc8e7cd8065a5fc355a3a191a68db8019c58bc00" - integrity sha512-NP2yfZpgmf2eDRPmgGq+fjGjSwFgYbihA8/gK+ey23qT9RkxsgNTZvGOEpXgzIGqesTYkElELLgtKoMQTys5vA== - -"@types/node@^16.0.0": - version "16.18.29" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.29.tgz#4b5e19b078513fa5e828b98aede649525e5d1750" - integrity sha512-cal+XTYF4JBwG82kw3m9ktTOyUj7GXcO9i2o+t49y/OF+3asYfpHqTROF1UbV91e71g/UB5wNeL5hfqPthzp8Q== + undici-types "~6.20.0" "@types/normalize-package-data@^2.4.0", "@types/normalize-package-data@^2.4.1": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== -"@types/npmlog@^4.1.2": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@types/npmlog/-/npmlog-4.1.4.tgz#30eb872153c7ead3e8688c476054ddca004115f6" - integrity sha512-WKG4gTr8przEZBiJ5r3s8ZIAoMXNbOgQ+j/d5O4X3x6kZJRLNvyUJuUK/KoG3+8BaOHPhp2m7WC6JKKeovDSzQ== - "@types/offscreencanvas@^2019.6.4": version "2019.7.0" resolved "https://registry.yarnpkg.com/@types/offscreencanvas/-/offscreencanvas-2019.7.0.tgz#e4a932069db47bb3eabeb0b305502d01586fa90d" integrity sha512-PGcyveRIpL1XIqK8eBsmRBt76eFgtzuPiSTyKHZxnGemp2yzGzWpjYKAfK3wIMiU7eH+851yEpiuP8JZerTmWg== -"@types/pretty-hrtime@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/pretty-hrtime/-/pretty-hrtime-1.0.1.tgz#72a26101dc567b0d68fd956cf42314556e42d601" - integrity sha512-VjID5MJb1eGKthz2qUerWT8+R4b9N+CHvGCzg9fn4kWZgaF9AhdYikQio3R7wV8YY1NsQKPaCwKz1Yff+aHNUQ== - "@types/prop-types@*": version "15.7.5" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== -"@types/qs@*", "@types/qs@^6.9.5": - version "6.9.7" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== - -"@types/range-parser@*": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== - "@types/react-dom@^19.0.2": version "19.0.2" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.0.2.tgz#ad21f9a1ee881817995fd3f7fd33659c87e7b1b7" @@ -3316,15 +1044,6 @@ "@types/scheduler" "*" csstype "^3.0.2" -"@types/react@>=16": - version "18.2.6" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.6.tgz#5cd53ee0d30ffc193b159d3516c8c8ad2f19d571" - integrity sha512-wRZClXn//zxCFW+ye/D2qY65UsYP1Fpex2YXorHc8awoNamkMZSvBxwxdYVInsHOZZd2Ppq8isnSzJL5Mpf8OA== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - "@types/react@^19.0.2": version "19.0.2" resolved "https://registry.yarnpkg.com/@types/react/-/react-19.0.2.tgz#9363e6b3ef898c471cb182dd269decc4afc1b4f6" @@ -3347,27 +1066,6 @@ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== -"@types/semver@^7.3.4": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" - integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== - -"@types/send@*": - version "0.17.1" - resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.1.tgz#ed4932b8a2a805f1fe362a70f4e62d0ac994e301" - integrity sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q== - dependencies: - "@types/mime" "^1" - "@types/node" "*" - -"@types/serve-static@*": - version "1.15.1" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.1.tgz#86b1753f0be4f9a1bee68d459fcda5be4ea52b5d" - integrity sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ== - dependencies: - "@types/mime" "*" - "@types/node" "*" - "@types/stats.js@*": version "0.17.0" resolved "https://registry.yarnpkg.com/@types/stats.js/-/stats.js-0.17.0.tgz#0ed81d48e03b590c24da85540c1d952077a9fe20" @@ -3383,11 +1081,6 @@ fflate "~0.6.10" meshoptimizer "~0.18.1" -"@types/unist@^2.0.0": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" - integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== - "@types/webxr@*": version "0.5.1" resolved "https://registry.yarnpkg.com/@types/webxr/-/webxr-0.5.1.tgz#4908349419104bd476a4252d04e4c3abb496748d" @@ -3398,25 +1091,6 @@ resolved "https://registry.yarnpkg.com/@types/webxr/-/webxr-0.5.2.tgz#5d9627b0ffe223aa3b166de7112ac8a9460dc54f" integrity sha512-szL74BnIcok9m7QwYtVmQ+EdIKwbjPANudfuvDrAF8Cljg9MKUlIoc1w5tjj9PMpeSH3U1Xnx//czQybJ0EfSw== -"@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== - -"@types/yargs@^16.0.0": - version "16.0.5" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.5.tgz#12cc86393985735a283e387936398c2f9e5f88e3" - integrity sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ== - dependencies: - "@types/yargs-parser" "*" - -"@types/yargs@^17.0.8": - version "17.0.24" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" - integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== - dependencies: - "@types/yargs-parser" "*" - "@typescript-eslint/eslint-plugin@^5.59.1": version "5.59.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.1.tgz#9b09ee1541bff1d2cebdcb87e7ce4a4003acde08" @@ -3451,14 +1125,6 @@ "@typescript-eslint/types" "5.59.1" "@typescript-eslint/visitor-keys" "5.59.1" -"@typescript-eslint/scope-manager@5.59.5": - version "5.59.5" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.59.5.tgz#33ffc7e8663f42cfaac873de65ebf65d2bce674d" - integrity sha512-jVecWwnkX6ZgutF+DovbBJirZcAxgxC0EOHYt/niMROf8p4PwxxG32Qdhj/iIQQIuOflLjNkxoXyArkcIP7C3A== - dependencies: - "@typescript-eslint/types" "5.59.5" - "@typescript-eslint/visitor-keys" "5.59.5" - "@typescript-eslint/type-utils@5.59.1": version "5.59.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.59.1.tgz#63981d61684fd24eda2f9f08c0a47ecb000a2111" @@ -3474,11 +1140,6 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.1.tgz#03f3fedd1c044cb336ebc34cc7855f121991f41d" integrity sha512-dg0ICB+RZwHlysIy/Dh1SP+gnXNzwd/KS0JprD3Lmgmdq+dJAJnUPe1gNG34p0U19HvRlGX733d/KqscrGC1Pg== -"@typescript-eslint/types@5.59.5": - version "5.59.5" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.5.tgz#e63c5952532306d97c6ea432cee0981f6d2258c7" - integrity sha512-xkfRPHbqSH4Ggx4eHRIO/eGL8XL4Ysb4woL8c87YuAo8Md7AUjyWKa9YMwTL519SyDPrfEgKdewjkxNCVeJW7w== - "@typescript-eslint/typescript-estree@5.59.1": version "5.59.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.1.tgz#4aa546d27fd0d477c618f0ca00b483f0ec84c43c" @@ -3492,19 +1153,6 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@5.59.5": - version "5.59.5" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.5.tgz#9b252ce55dd765e972a7a2f99233c439c5101e42" - integrity sha512-+XXdLN2CZLZcD/mO7mQtJMvCkzRfmODbeSKuMY/yXbGkzvA9rJyDY5qDYNoiz2kP/dmyAxXquL2BvLQLJFPQIg== - dependencies: - "@typescript-eslint/types" "5.59.5" - "@typescript-eslint/visitor-keys" "5.59.5" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - "@typescript-eslint/utils@5.59.1": version "5.59.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.59.1.tgz#d89fc758ad23d2157cfae53f0b429bdf15db9473" @@ -3519,20 +1167,6 @@ eslint-scope "^5.1.1" semver "^7.3.7" -"@typescript-eslint/utils@^5.45.0": - version "5.59.5" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.59.5.tgz#15b3eb619bb223302e60413adb0accd29c32bcae" - integrity sha512-sCEHOiw+RbyTii9c3/qN74hYDPNORb8yWCoPLmB7BIflhplJ65u2PBpdRla12e3SSTJ2erRkPjz7ngLHhUegxA== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.59.5" - "@typescript-eslint/types" "5.59.5" - "@typescript-eslint/typescript-estree" "5.59.5" - eslint-scope "^5.1.1" - semver "^7.3.7" - "@typescript-eslint/visitor-keys@5.59.1": version "5.59.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.1.tgz#0d96c36efb6560d7fb8eb85de10442c10d8f6058" @@ -3541,14 +1175,6 @@ "@typescript-eslint/types" "5.59.1" eslint-visitor-keys "^3.3.0" -"@typescript-eslint/visitor-keys@5.59.5": - version "5.59.5" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.5.tgz#ba5b8d6791a13cf9fea6716af1e7626434b29b9b" - integrity sha512-qL+Oz+dbeBRTeyJTIy0eniD3uvqU7x+y1QceBismZ41hd4aBSRh8UAw4pZP0+XzLuPZmx4raNMq/I+59W2lXKA== - dependencies: - "@typescript-eslint/types" "5.59.5" - eslint-visitor-keys "^3.3.0" - "@use-gesture/core@10.2.26": version "10.2.26" resolved "https://registry.yarnpkg.com/@use-gesture/core/-/core-10.2.26.tgz#c2fc4aa7d36cee7319a98a898b0698c66b01663e" @@ -3561,17 +1187,6 @@ dependencies: "@use-gesture/core" "10.2.26" -"@vitejs/plugin-react@^3.0.1": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-3.1.0.tgz#d1091f535eab8b83d6e74034d01e27d73c773240" - integrity sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g== - dependencies: - "@babel/core" "^7.20.12" - "@babel/plugin-transform-react-jsx-self" "^7.18.6" - "@babel/plugin-transform-react-jsx-source" "^7.19.6" - magic-string "^0.27.0" - react-refresh "^0.14.0" - "@vitest/expect@2.1.8": version "2.1.8" resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-2.1.8.tgz#13fad0e8d5a0bf0feb675dcf1d1f1a36a1773bc1" @@ -3636,13 +1251,6 @@ resolved "https://registry.yarnpkg.com/@webgpu/glslang/-/glslang-0.0.15.tgz#f5ccaf6015241e6175f4b90906b053f88483d1f2" integrity sha512-niT+Prh3Aff8Uf1MVBVUsaNjFj9rJAKDXuoHIKiQbB+6IUP/3J3JIhBNyZ7lDhytvXxw6ppgnwKZdDJ08UMj4Q== -"@yarnpkg/esbuild-plugin-pnp@^3.0.0-rc.10": - version "3.0.0-rc.15" - resolved "https://registry.yarnpkg.com/@yarnpkg/esbuild-plugin-pnp/-/esbuild-plugin-pnp-3.0.0-rc.15.tgz#4e40e7d2eb28825c9a35ab9d04c363931d7c0e67" - integrity sha512-kYzDJO5CA9sy+on/s2aIW0411AklfCi8Ck/4QDivOqsMKpStZA2SsR+X27VTggGwpStWaLrjJcDcdDMowtG8MA== - dependencies: - tslib "^2.4.0" - JSONStream@^1.0.4: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" @@ -3668,44 +1276,16 @@ abort-controller@^3.0.0: dependencies: event-target-shim "^5.0.0" -accepts@~1.3.5, accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn-jsx@^5.3.1, acorn-jsx@^5.3.2: +acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn@^7.4.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - acorn@^8.8.0: version "8.8.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== -address@^1.0.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" - integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== - -agent-base@5: - version "5.1.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c" - integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g== - agent-base@6, agent-base@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" @@ -3748,13 +1328,6 @@ ajv@^6.10.0, ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ansi-align@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" - integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== - dependencies: - string-width "^4.1.0" - ansi-escapes@^4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" @@ -3793,11 +1366,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0, ansi-styles@^4.3.0: dependencies: color-convert "^2.0.1" -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - ansi-styles@^6.0.0: version "6.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" @@ -3808,19 +1376,6 @@ ansicolors@~0.3.2: resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== -anymatch@^3.0.3, anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -app-root-dir@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/app-root-dir/-/app-root-dir-1.0.2.tgz#38187ec2dea7577fff033ffcb12172692ff6e118" - integrity sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g== - "aproba@^1.0.3 || ^2.0.0", aproba@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" @@ -3831,14 +1386,6 @@ archy@~1.0.0: resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== -are-we-there-yet@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" - integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== - dependencies: - delegates "^1.0.0" - readable-stream "^3.6.0" - are-we-there-yet@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" @@ -3855,13 +1402,6 @@ are-we-there-yet@^4.0.0: delegates "^1.0.0" readable-stream "^4.1.0" -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - argparse@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" @@ -3872,13 +1412,6 @@ argv-formatter@~1.0.0: resolved "https://registry.yarnpkg.com/argv-formatter/-/argv-formatter-1.0.0.tgz#a0ca0cbc29a5b73e836eebe1cbf6c5e0e4eb82f9" integrity sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw== -aria-query@^5.0.0: - version "5.1.3" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" - integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== - dependencies: - deep-equal "^2.0.5" - array-buffer-byte-length@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" @@ -3887,11 +1420,6 @@ array-buffer-byte-length@^1.0.0: call-bind "^1.0.2" is-array-buffer "^3.0.1" -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - array-ify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" @@ -3949,107 +1477,21 @@ arrify@^1.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== -assert@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" - integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A== - dependencies: - es6-object-assign "^1.1.0" - is-nan "^1.2.1" - object-is "^1.0.1" - util "^0.12.0" - assertion-error@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== -ast-types@0.15.2: - version "0.15.2" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.15.2.tgz#39ae4809393c4b16df751ee563411423e85fb49d" - integrity sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg== - dependencies: - tslib "^2.0.1" - -ast-types@^0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd" - integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA== - dependencies: - tslib "^2.0.1" - -ast-types@^0.16.1: - version "0.16.1" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.16.1.tgz#7a9da1617c9081bc121faafe91711b4c8bb81da2" - integrity sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg== - dependencies: - tslib "^2.0.1" - astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@^3.2.3: - version "3.2.4" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" - integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - available-typed-arrays@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== -babel-core@^7.0.0-bridge.0: - version "7.0.0-bridge.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" - integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== - -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-polyfill-corejs2@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122" - integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== - dependencies: - "@babel/compat-data" "^7.17.7" - "@babel/helper-define-polyfill-provider" "^0.3.3" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" - integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" - core-js-compat "^3.25.1" - -babel-plugin-polyfill-regenerator@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" - integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.3.3" - balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -4065,13 +1507,6 @@ before-after-hook@^2.2.0: resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== -better-opn@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-2.1.1.tgz#94a55b4695dc79288f31d7d0e5f658320759f7c6" - integrity sha512-kIPXZS5qwyKiX/HcRvDYfmBQUa8XP17I0mYZZ0y4UhpYOSvtsLHDYqmomS+Mj20aDvD3knEiQ0ecQy2nhio3yA== - dependencies: - open "^7.0.3" - bidi-js@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/bidi-js/-/bidi-js-1.0.2.tgz#1a497a762c2ddea377429d2649c9ce0f8a91527f" @@ -4079,11 +1514,6 @@ bidi-js@^1.0.2: dependencies: require-from-string "^2.0.2" -big-integer@^1.6.44: - version "1.6.51" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" - integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== - bin-links@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-4.0.1.tgz#afeb0549e642f61ff889b58ea2f8dca78fb9d8d3" @@ -4094,64 +1524,16 @@ bin-links@^4.0.1: read-cmd-shim "^4.0.0" write-file-atomic "^5.0.0" -binary-extensions@^2.0.0, binary-extensions@^2.2.0: +binary-extensions@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bl@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -body-parser@1.20.1: - version "1.20.1" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" - integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - bottleneck@^2.18.1: version "2.19.5" resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91" integrity sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw== -boxen@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" - integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== - dependencies: - ansi-align "^3.0.0" - camelcase "^6.2.0" - chalk "^4.1.0" - cli-boxes "^2.2.1" - string-width "^4.2.2" - type-fest "^0.20.2" - widest-line "^3.1.0" - wrap-ansi "^7.0.0" - -bplist-parser@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" - integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== - dependencies: - big-integer "^1.6.44" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -4160,66 +1542,19 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browser-assert@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/browser-assert/-/browser-assert-1.2.1.tgz#9aaa5a2a8c74685c2ae05bfe46efd606f068c200" - integrity sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ== - -browserify-zlib@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" - integrity sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ== - dependencies: - pako "~0.2.0" - -browserslist@^4.21.3, browserslist@^4.21.5: - version "4.21.5" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" - integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== - dependencies: - caniuse-lite "^1.0.30001449" - electron-to-chromium "^1.4.284" - node-releases "^2.0.8" - update-browserslist-db "^1.0.10" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: - node-int64 "^0.4.0" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + balanced-match "^1.0.0" -buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" + fill-range "^7.0.1" buffer@^6.0.3: version "6.0.3" @@ -4236,34 +1571,6 @@ builtins@^5.0.0: dependencies: semver "^7.0.0" -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -c8@^7.6.0: - version "7.13.0" - resolved "https://registry.yarnpkg.com/c8/-/c8-7.13.0.tgz#a2a70a851278709df5a9247d62d7f3d4bcb5f2e4" - integrity sha512-/NL4hQTv1gBL6J6ei80zu3IiTrmePDKXKXOTLpHvcIWZTVYQlDhVWjjWvkhICylE8EwwnMVzDZugCvdx0/DIIA== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@istanbuljs/schema" "^0.1.3" - find-up "^5.0.0" - foreground-child "^2.0.0" - istanbul-lib-coverage "^3.2.0" - istanbul-lib-report "^3.0.0" - istanbul-reports "^3.1.4" - rimraf "^3.0.2" - test-exclude "^6.0.0" - v8-to-istanbul "^9.0.0" - yargs "^16.2.0" - yargs-parser "^20.2.9" - cac@^6.7.14: version "6.7.14" resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" @@ -4338,21 +1645,11 @@ camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.2.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - camera-controls@^2.3.1: version "2.3.4" resolved "https://registry.yarnpkg.com/camera-controls/-/camera-controls-2.3.4.tgz#f372b5a4012b474df0ed0c67da7a3198d7efee0b" integrity sha512-swhc87YVHf9te0glBI7Oa/QBgsSCL4ZxtoR4V3vE6l7mEebsYRNL8y7Y2m2E6MrT0UTphM1S7mQqs0Sp7QTZ2g== -caniuse-lite@^1.0.30001449: - version "1.0.30001486" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001486.tgz#56a08885228edf62cbe1ac8980f2b5dae159997e" - integrity sha512-uv7/gXuHi10Whlj0pp5q/tsK/32J2QSqVRKQhs2j8VsDCjgyruAh/eEXHF822VqO9yT6iZKw3nRwZRSPBE9OQg== - cardinal@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-2.1.1.tgz#7cc1055d822d212954d07b085dea251cc7bc5505" @@ -4386,7 +1683,7 @@ chalk@^2.0.0, chalk@^2.3.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -4411,32 +1708,12 @@ chevrotain@^10.1.2: lodash "4.17.21" regexp-to-ast "0.5.0" -chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - chownr@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -ci-info@^3.2.0, ci-info@^3.6.1, ci-info@^3.7.1, ci-info@^3.8.0: +ci-info@^3.6.1, ci-info@^3.7.1, ci-info@^3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== @@ -4460,11 +1737,6 @@ clean-stack@^4.0.0: dependencies: escape-string-regexp "5.0.0" -cli-boxes@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" - integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== - cli-columns@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/cli-columns/-/cli-columns-4.0.0.tgz#9fe4d65975238d55218c41bd2ed296a7fa555646" @@ -4480,7 +1752,7 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-table3@^0.6.1, cli-table3@^0.6.3: +cli-table3@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== @@ -4505,7 +1777,7 @@ cli-truncate@^3.1.0: slice-ansi "^5.0.0" string-width "^5.0.0" -cliui@^7.0.2, cliui@^7.0.4: +cliui@^7.0.4: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== @@ -4523,15 +1795,6 @@ cliui@^8.0.1: strip-ansi "^6.0.1" wrap-ansi "^7.0.0" -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" @@ -4566,7 +1829,7 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-support@^1.1.2, color-support@^1.1.3: +color-support@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== @@ -4584,38 +1847,16 @@ columnify@^1.6.0: strip-ansi "^6.0.1" wcwidth "^1.0.0" -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - commander@^10.0.0: version "10.0.1" resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== -commander@^2.19.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" - integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== - common-ancestor-path@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w== -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== - compare-func@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" @@ -4624,41 +1865,11 @@ compare-func@^2.0.0: array-ify "^1.0.0" dot-prop "^5.1.0" -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -concat-stream@^1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - config-chain@^1.1.11: version "1.1.13" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" @@ -4667,23 +1878,11 @@ config-chain@^1.1.11: ini "^1.3.4" proto-list "~1.2.1" -console-control-strings@^1.0.0, console-control-strings@^1.1.0: +console-control-strings@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== - conventional-changelog-angular@^5.0.0: version "5.0.13" resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" @@ -4727,33 +1926,6 @@ conventional-commits-parser@^3.2.3: split2 "^3.0.0" through2 "^4.0.0" -convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - -convert-source-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" - integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -core-js-compat@^3.25.1: - version "3.30.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.30.2.tgz#83f136e375babdb8c80ad3c22d67c69098c1dd8b" - integrity sha512-nriW1nuJjUgvkEjIot1Spwakz52V9YkYHZAQG6A1eCgC8AA1p0zngrQEP9R0+V6hji5XilWKG1Bd0YRppmGimA== - dependencies: - browserslist "^4.21.5" - core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" @@ -4778,11 +1950,6 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== - crypto-random-string@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" @@ -4810,13 +1977,6 @@ debounce@^1.2.1: resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== -debug@2.6.9, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" @@ -4856,48 +2016,16 @@ deep-eql@^5.0.1: resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-5.0.2.tgz#4b756d8d770a9257300825d52a2c2cff99c3a341" integrity sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q== -deep-equal@^2.0.5: - version "2.2.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.1.tgz#c72ab22f3a7d3503a4ca87dde976fe9978816739" - integrity sha512-lKdkdV6EOGoVn65XaOsPdH4rMxTZOnmFyuIkMjM1i5HHCbfjC97dawgTAy0deYNfuqUqW+Q5VrVaQYtUpSd6yQ== - dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - es-get-iterator "^1.1.3" - get-intrinsic "^1.2.0" - is-arguments "^1.1.1" - is-array-buffer "^3.0.2" - is-date-object "^1.0.5" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - isarray "^2.0.5" - object-is "^1.1.5" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.0" - side-channel "^1.0.4" - which-boxed-primitive "^1.0.2" - which-collection "^1.0.1" - which-typed-array "^1.1.9" - deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== -deep-is@^0.1.3, deep-is@~0.1.3: +deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -default-browser-id@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" - integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== - dependencies: - bplist-parser "^0.2.0" - untildify "^4.0.0" - defaults@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" @@ -4905,11 +2033,6 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" -define-lazy-prop@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" - integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== - define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" @@ -4918,36 +2041,12 @@ define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: has-property-descriptors "^1.0.0" object-keys "^1.1.1" -defu@^6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.2.tgz#1217cba167410a1765ba93893c6dbac9ed9d9e5c" - integrity sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ== - -del@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a" - integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg== - dependencies: - globby "^11.0.1" - graceful-fs "^4.2.4" - is-glob "^4.0.1" - is-path-cwd "^2.2.0" - is-path-inside "^3.0.2" - p-map "^4.0.0" - rimraf "^3.0.2" - slash "^3.0.0" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== -depd@2.0.0, depd@^2.0.0: +depd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== @@ -4957,16 +2056,6 @@ deprecation@^2.0.0, deprecation@^2.3.1: resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== -dequal@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" - integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - detect-gpu@^5.0.14: version "5.0.23" resolved "https://registry.yarnpkg.com/detect-gpu/-/detect-gpu-5.0.23.tgz#b1a36f24ce0e15c33bc2dcf08ab21b1a6f4b973b" @@ -4974,26 +2063,6 @@ detect-gpu@^5.0.14: dependencies: webgl-constants "^1.1.1" -detect-indent@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" - integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== - -detect-package-manager@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/detect-package-manager/-/detect-package-manager-2.0.1.tgz#6b182e3ae5e1826752bfef1de9a7b828cffa50d8" - integrity sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A== - dependencies: - execa "^5.1.1" - -detect-port@^1.3.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.5.1.tgz#451ca9b6eaf20451acb0799b8ab40dff7718727b" - integrity sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ== - dependencies: - address "^1.0.1" - debug "4" - diff@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" @@ -5020,11 +2089,6 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dom-accessibility-api@^0.5.9: - version "0.5.16" - resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453" - integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== - dot-prop@^5.1.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" @@ -5032,16 +2096,6 @@ dot-prop@^5.1.0: dependencies: is-obj "^2.0.0" -dotenv-expand@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-10.0.0.tgz#12605d00fb0af6d0a592e6558585784032e4ef37" - integrity sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A== - -dotenv@^16.0.0: - version "16.0.3" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" - integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== - draco3d@^1.4.1: version "1.5.6" resolved "https://registry.yarnpkg.com/draco3d/-/draco3d-1.5.6.tgz#0d570a9792e3a3a9fafbfea065b692940441c626" @@ -5054,38 +2108,11 @@ duplexer2@~0.1.0: dependencies: readable-stream "^2.0.2" -duplexify@^3.5.0, duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - eastasianwidth@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -ejs@^3.1.8: - version "3.1.9" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.9.tgz#03c9e8777fe12686a9effcef22303ca3d8eeb361" - integrity sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ== - dependencies: - jake "^10.8.5" - -electron-to-chromium@^1.4.284: - version "1.4.392" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.392.tgz#57ec91fa02393ab32e46df6925ef309642a44680" - integrity sha512-TXQOMW9tnhIms3jGy/lJctLjICOgyueZFJ1KUtm6DTQ+QpxX3p7ZBwB6syuZ9KBuT5S4XX7bgY1ECPgfxKUdOg== - emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -5096,11 +2123,6 @@ emoji-regex@^9.2.2: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - encoding@^0.1.13: version "0.1.13" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" @@ -5108,13 +2130,6 @@ encoding@^0.1.13: dependencies: iconv-lite "^0.6.2" -end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - env-ci@^9.0.0: version "9.1.0" resolved "https://registry.yarnpkg.com/env-ci/-/env-ci-9.1.0.tgz#ed05a5ce98938efe536e448bb649403fe26ca337" @@ -5128,11 +2143,6 @@ env-paths@^2.2.0: resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== -envinfo@^7.7.3: - version "7.8.1" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" - integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== - err-code@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" @@ -5185,26 +2195,6 @@ es-abstract@^1.19.0, es-abstract@^1.20.4: unbox-primitive "^1.0.2" which-typed-array "^1.1.9" -es-get-iterator@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" - integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - has-symbols "^1.0.3" - is-arguments "^1.1.1" - is-map "^2.0.2" - is-set "^2.0.2" - is-string "^1.0.7" - isarray "^2.0.5" - stop-iteration-iterator "^1.0.0" - -es-module-lexer@^0.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" - integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== - es-module-lexer@^1.5.4: version "1.5.4" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz#a8efec3a3da991e60efa6b633a7cad6ab8d26b78" @@ -5235,24 +2225,7 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es6-object-assign@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" - integrity sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw== - -esbuild-plugin-alias@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/esbuild-plugin-alias/-/esbuild-plugin-alias-0.2.1.tgz#45a86cb941e20e7c2bc68a2bea53562172494fcb" - integrity sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ== - -esbuild-register@^3.4.0: - version "3.4.2" - resolved "https://registry.yarnpkg.com/esbuild-register/-/esbuild-register-3.4.2.tgz#1e39ee0a77e8f320a9790e68c64c3559620b9175" - integrity sha512-kG/XyTDyz6+YDuyfB9ZoSIOOmgyFCH+xPRtsCa8W85HLRV5Csp+o3jWVbOSHgSLfyLc5DmP+KFDNwty4mEjC+Q== - dependencies: - debug "^4.3.4" - -esbuild@^0.17.0, esbuild@^0.17.5: +esbuild@^0.17.5: version "0.17.18" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.18.tgz#f4f8eb6d77384d68cd71c53eb6601c7efe05e746" integrity sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w== @@ -5314,11 +2287,6 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - escape-string-regexp@5.0.0, escape-string-regexp@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" @@ -5334,18 +2302,6 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - eslint-config-prettier@^8.8.0: version "8.8.0" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" @@ -5426,16 +2382,6 @@ eslint-plugin-react@^7.32.2: semver "^6.3.0" string.prototype.matchall "^4.0.8" -eslint-plugin-storybook@^0.6.12: - version "0.6.12" - resolved "https://registry.yarnpkg.com/eslint-plugin-storybook/-/eslint-plugin-storybook-0.6.12.tgz#7bdb3392bb03bebde40ed19accfd61246e9d6301" - integrity sha512-XbIvrq6hNVG6rpdBr+eBw63QhOMLpZneQVSooEDow8aQCWGCk/5vqtap1yxpVydNfSxi3S/3mBBRLQqKUqQRww== - dependencies: - "@storybook/csf" "^0.0.1" - "@typescript-eslint/utils" "^5.45.0" - requireindex "^1.1.0" - ts-dedent "^2.2.0" - eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" @@ -5512,7 +2458,7 @@ espree@^9.5.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.0" -esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: +esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -5541,20 +2487,6 @@ estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== -estree-to-babel@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/estree-to-babel/-/estree-to-babel-3.2.1.tgz#82e78315275c3ca74475fdc8ac1a5103c8a75bf5" - integrity sha512-YNF+mZ/Wu2FU/gvmzuWtYc8rloubL7wfXCTgouFrnjGVXPA/EeYYA7pupXWrb3Iv1cTBeSSxxJIbK23l4MRNqg== - dependencies: - "@babel/traverse" "^7.1.6" - "@babel/types" "^7.2.0" - c8 "^7.6.0" - -estree-walker@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - estree-walker@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" @@ -5567,11 +2499,6 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - event-target-shim@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" @@ -5582,21 +2509,6 @@ events@^3.3.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -execa@^5.0.0, execa@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - execa@^7.0.0: version "7.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" @@ -5617,58 +2529,6 @@ expect-type@^1.1.0: resolved "https://registry.yarnpkg.com/expect-type/-/expect-type-1.1.0.tgz#a146e414250d13dfc49eafcfd1344a4060fa4c75" integrity sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA== -express@^4.17.3: - version "4.18.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" - integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.1" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.11.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extract-zip@^1.6.6: - version "1.7.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" - integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== - dependencies: - concat-stream "^1.6.2" - debug "^2.6.9" - mkdirp "^0.5.4" - yauzl "^2.10.0" - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -5690,12 +2550,12 @@ fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" -fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: +fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== @@ -5712,25 +2572,6 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== - dependencies: - bser "2.1.1" - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== - dependencies: - pend "~1.2.0" - -fetch-retry@^5.0.2: - version "5.0.5" - resolved "https://registry.yarnpkg.com/fetch-retry/-/fetch-retry-5.0.5.tgz#61079b816b6651d88a022ebd45d51d83aa72b521" - integrity sha512-q9SvpKH5Ka6h7X2C6r1sP31pQoeDb3o6/R9cg21ahfPAqbIOkW9tus1dXfwYb6G6dOI4F7nVS4Q+LSssBGIz0A== - fflate@^0.6.9, fflate@~0.6.10: version "0.6.10" resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.6.10.tgz#5f40f9659205936a2d18abf88b2e7781662b6d43" @@ -5758,21 +2599,6 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -file-system-cache@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/file-system-cache/-/file-system-cache-2.1.1.tgz#25bb4019f7d62b458f4bed45452b638e41f6412b" - integrity sha512-vgZ1uDsK29DM4pptUOv47zdJO2tYM5M/ERyAE9Jk0QBN6e64Md+a+xJSOp68dCCDH4niFMVD8nC8n8A5ic0bmg== - dependencies: - fs-extra "^11.1.0" - ramda "^0.28.0" - -filelist@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" - integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== - dependencies: - minimatch "^5.0.1" - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -5780,37 +2606,6 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-cache-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - -find-cache-dir@^3.0.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" - integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - find-up@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" @@ -5818,14 +2613,7 @@ find-up@^2.0.0: dependencies: locate-path "^2.0.0" -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.0.0, find-up@^4.1.0: +find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -5869,11 +2657,6 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== -flow-parser@0.*: - version "0.206.0" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.206.0.tgz#f4f794f8026535278393308e01ea72f31000bfef" - integrity sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w== - for-each@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" @@ -5881,14 +2664,6 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" -foreground-child@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" - integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== - dependencies: - cross-spawn "^7.0.0" - signal-exit "^3.0.2" - foreground-child@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" @@ -5897,25 +2672,6 @@ foreground-child@^3.1.0: cross-spawn "^7.0.0" signal-exit "^4.0.1" -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - from2@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" @@ -5924,12 +2680,7 @@ from2@^2.3.0: inherits "^2.0.1" readable-stream "^2.0.0" -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - -fs-extra@^11.0.0, fs-extra@^11.1.0: +fs-extra@^11.0.0: version "11.1.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== @@ -5957,7 +2708,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^2.3.2, fsevents@~2.3.2: +fsevents@~2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== @@ -5987,21 +2738,6 @@ functions-have-names@^1.2.2, functions-have-names@^1.2.3: resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== -gauge@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" - integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.2" - console-control-strings "^1.0.0" - has-unicode "^2.0.1" - object-assign "^4.1.1" - signal-exit "^3.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.2" - gauge@^4.0.3: version "4.0.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" @@ -6030,11 +2766,6 @@ gauge@^5.0.0: strip-ansi "^6.0.1" wide-align "^1.1.5" -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" @@ -6049,21 +2780,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@ has "^1.0.3" has-symbols "^1.0.3" -get-npm-tarball-url@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/get-npm-tarball-url/-/get-npm-tarball-url-2.0.3.tgz#67dff908d699e9e2182530ae6e939a93e5f8dfdb" - integrity sha512-R/PW6RqyaBQNWYaSyfrh54/qtcnOp22FHCCiRhSSZj0FP3KQWCsxxt0DzIdVTbwTqe9CtQfvl/FPD4UIPt4pqw== - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-port@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" - integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== - get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" @@ -6077,19 +2793,6 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" -giget@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/giget/-/giget-1.1.2.tgz#f99a49cb0ff85479c8c3612cdc7ca27f2066e818" - integrity sha512-HsLoS07HiQ5oqvObOI+Qb2tyZH4Gj5nYGfF9qQcZNrPw+uEFhdXtgJr01aO2pWadGHucajYDLxxbtQkm97ON2A== - dependencies: - colorette "^2.0.19" - defu "^6.1.2" - https-proxy-agent "^5.0.1" - mri "^1.2.0" - node-fetch-native "^1.0.2" - pathe "^1.1.0" - tar "^6.1.13" - git-log-parser@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/git-log-parser/-/git-log-parser-1.2.0.tgz#2e6a4c1b13fc00028207ba795a7ac31667b9fd4a" @@ -6102,12 +2805,7 @@ git-log-parser@^1.2.0: through2 "~2.0.0" traverse "~0.6.6" -github-slugger@^1.0.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.5.0.tgz#17891bbc73232051474d68bd867a34625c955f7d" - integrity sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw== - -glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -6121,25 +2819,6 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob-promise@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/glob-promise/-/glob-promise-4.2.2.tgz#15f44bcba0e14219cd93af36da6bb905ff007877" - integrity sha512-xcUzJ8NWN5bktoTIX7eOclO1Npxd/dyVqUJxlLIDasT4C7KZyqlPIwkdJ0Ypiy3p2ZKahTjK4M9uC3sNSfNMzw== - dependencies: - "@types/glob" "^7.1.3" - -glob-promise@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-promise/-/glob-promise-6.0.2.tgz#7c7f2a223e3aaa8f7bd7ff5f24d0ab2352724b31" - integrity sha512-Ni2aDyD1ekD6x8/+K4hDriRDbzzfuK4yKpqSymJ4P7IxbtARiOOuU+k40kbHM0sLIlbf1Qh0qdMkAHMZYE6XJQ== - dependencies: - "@types/glob" "^8.0.0" - -glob-to-regexp@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" - integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== - glob@^10.0.0: version "10.2.2" resolved "https://registry.yarnpkg.com/glob/-/glob-10.2.2.tgz#ce2468727de7e035e8ecf684669dc74d0526ab75" @@ -6162,7 +2841,7 @@ glob@^10.2.2, glob@^10.2.4: minipass "^5.0.0 || ^6.0.2" path-scurry "^1.7.0" -glob@^7.0.0, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0: +glob@^7.1.3, glob@^7.1.4: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -6174,7 +2853,7 @@ glob@^7.0.0, glob@^7.1.3, glob@^7.1.4, glob@^7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^8.0.1, glob@^8.1.0: +glob@^8.0.1: version "8.1.0" resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== @@ -6185,11 +2864,6 @@ glob@^8.0.1, glob@^8.1.0: minimatch "^5.0.1" once "^1.3.0" -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - globals@^13.19.0: version "13.20.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" @@ -6204,7 +2878,7 @@ globalthis@^1.0.3: dependencies: define-properties "^1.1.3" -globby@^11.0.0, globby@^11.0.1, globby@^11.0.2, globby@^11.1.0: +globby@^11.0.0, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -6233,7 +2907,7 @@ graceful-fs@4.2.10: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.6: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -6243,18 +2917,6 @@ grapheme-splitter@^1.0.4: resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== -gunzip-maybe@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz#b913564ae3be0eda6f3de36464837a9cd94b98ac" - integrity sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw== - dependencies: - browserify-zlib "^0.1.4" - is-deflate "^1.0.0" - is-gzip "^1.0.0" - peek-stream "^1.1.0" - pumpify "^1.3.3" - through2 "^2.0.3" - handlebars@^4.7.7: version "4.7.7" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" @@ -6347,32 +3009,11 @@ hosted-git-info@^6.0.0, hosted-git-info@^6.1.1: dependencies: lru-cache "^7.5.1" -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -html-tags@^3.1.0: - version "3.3.1" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" - integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== - http-cache-semantics@^4.1.0, http-cache-semantics@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - http-proxy-agent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" @@ -6382,15 +3023,7 @@ http-proxy-agent@^5.0.0: agent-base "6" debug "4" -https-proxy-agent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b" - integrity sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg== - dependencies: - agent-base "5" - debug "4" - -https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: +https-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== @@ -6398,11 +3031,6 @@ https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: agent-base "6" debug "4" -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - human-signals@^4.3.0: version "4.3.1" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" @@ -6420,13 +3048,6 @@ husky@^8.0.3: resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - iconv-lite@^0.6.2: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" @@ -6434,7 +3055,7 @@ iconv-lite@^0.6.2: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -ieee754@^1.1.13, ieee754@^1.2.1: +ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -6492,7 +3113,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -6520,7 +3141,7 @@ init-package-json@^5.0.0: validate-npm-package-license "^3.0.4" validate-npm-package-name "^5.0.0" -internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: +internal-slot@^1.0.3, internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== @@ -6529,11 +3150,6 @@ internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: has "^1.0.3" side-channel "^1.0.4" -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - into-stream@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-7.0.0.tgz#d1a211e146be8acfdb84dabcbf00fe8205e72936" @@ -6552,24 +3168,6 @@ ip@^2.0.0: resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-absolute-url@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - -is-arguments@^1.0.4, is-arguments@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" @@ -6591,13 +3189,6 @@ is-bigint@^1.0.1: dependencies: has-bigints "^1.0.1" -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - is-boolean-object@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" @@ -6632,23 +3223,13 @@ is-core-module@^2.5.0, is-core-module@^2.8.1: dependencies: has "^1.0.3" -is-date-object@^1.0.1, is-date-object@^1.0.5: +is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: has-tostringtag "^1.0.0" -is-deflate@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-deflate/-/is-deflate-1.0.0.tgz#c862901c3c161fb09dac7cdc7e784f80e98f2f14" - integrity sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ== - -is-docker@^2.0.0, is-docker@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -6664,43 +3245,18 @@ is-fullwidth-code-point@^4.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== -is-generator-function@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" - integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== - dependencies: - has-tostringtag "^1.0.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" -is-gzip@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-gzip/-/is-gzip-1.0.0.tgz#6ca8b07b99c77998025900e555ced8ed80879a83" - integrity sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ== - is-lambda@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== -is-map@^2.0.1, is-map@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" - integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== - -is-nan@^1.2.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" - integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" @@ -6723,12 +3279,7 @@ is-obj@^2.0.0: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== -is-path-cwd@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== - -is-path-inside@^3.0.2, is-path-inside@^3.0.3: +is-path-inside@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== @@ -6738,18 +3289,11 @@ is-plain-obj@^1.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== -is-plain-object@5.0.0, is-plain-object@^5.0.0: +is-plain-object@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== -is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" @@ -6758,11 +3302,6 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-set@^2.0.1, is-set@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" - integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== - is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" @@ -6770,11 +3309,6 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - is-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" @@ -6801,7 +3335,7 @@ is-text-path@^1.0.1: dependencies: text-extensions "^1.0.0" -is-typed-array@^1.1.10, is-typed-array@^1.1.3, is-typed-array@^1.1.9: +is-typed-array@^1.1.10, is-typed-array@^1.1.9: version "1.1.10" resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== @@ -6817,11 +3351,6 @@ is-unicode-supported@^1.2.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz#d824984b616c292a2e198207d4a609983842f714" integrity sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ== -is-weakmap@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" - integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== - is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -6829,26 +3358,6 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" -is-weakset@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" - integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -is-wsl@^2.1.1, is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -6859,19 +3368,6 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== - -isomorphic-unfetch@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz#87341d5f4f7b63843d468438128cb087b7c3e98f" - integrity sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q== - dependencies: - node-fetch "^2.6.1" - unfetch "^4.2.0" - issue-parser@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/issue-parser/-/issue-parser-6.0.0.tgz#b1edd06315d4f2044a9755daf85fdafde9b4014a" @@ -6883,39 +3379,6 @@ issue-parser@^6.0.0: lodash.isstring "^4.0.1" lodash.uniqby "^4.7.0" -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^5.0.4: - version "5.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-reports@^3.1.4: - version "3.1.5" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" - integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - its-fine@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/its-fine/-/its-fine-1.2.5.tgz#5466c287f86a0a73e772c8d8d515626c97195dc9" @@ -6932,75 +3395,11 @@ jackspeak@^2.0.3: optionalDependencies: "@pkgjs/parseargs" "^0.11.0" -jake@^10.8.5: - version "10.8.5" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" - integrity sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw== - dependencies: - async "^3.2.3" - chalk "^4.0.2" - filelist "^1.0.1" - minimatch "^3.0.4" - java-properties@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-1.0.2.tgz#ccd1fa73907438a5b5c38982269d0e771fe78211" integrity sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ== -jest-haste-map@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.5.0.tgz#69bd67dc9012d6e2723f20a945099e972b2e94de" - integrity sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA== - dependencies: - "@jest/types" "^29.5.0" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.4.3" - jest-util "^29.5.0" - jest-worker "^29.5.0" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - -jest-mock@^27.0.6: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" - integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - -jest-regex-util@^29.4.3: - version "29.4.3" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" - integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== - -jest-util@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" - integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== - dependencies: - "@jest/types" "^29.5.0" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-worker@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" - integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA== - dependencies: - "@types/node" "*" - jest-util "^29.5.0" - merge-stream "^2.0.0" - supports-color "^8.0.0" - js-sdsl@^4.1.4: version "4.4.0" resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.0.tgz#8b437dbe642daa95760400b602378ed8ffea8430" @@ -7011,14 +3410,6 @@ js-sdsl@^4.1.4: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" @@ -7026,41 +3417,6 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -jscodeshift@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.14.0.tgz#7542e6715d6d2e8bde0b4e883f0ccea358b46881" - integrity sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA== - dependencies: - "@babel/core" "^7.13.16" - "@babel/parser" "^7.13.16" - "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" - "@babel/plugin-proposal-optional-chaining" "^7.13.12" - "@babel/plugin-transform-modules-commonjs" "^7.13.8" - "@babel/preset-flow" "^7.13.13" - "@babel/preset-typescript" "^7.13.0" - "@babel/register" "^7.13.16" - babel-core "^7.0.0-bridge.0" - chalk "^4.1.2" - flow-parser "0.*" - graceful-fs "^4.2.4" - micromatch "^4.0.4" - neo-async "^2.5.0" - node-dir "^0.1.17" - recast "^0.21.0" - temp "^0.8.4" - write-file-atomic "^2.3.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== - json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -7103,11 +3459,6 @@ json5@^1.0.2: dependencies: minimist "^1.2.0" -json5@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" @@ -7140,35 +3491,16 @@ just-diff@^6.0.0: resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-6.0.2.tgz#03b65908543ac0521caf6d8eb85035f7d27ea285" integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA== -kind-of@^6.0.2, kind-of@^6.0.3: +kind-of@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - ktx-parse@^0.4.5: version "0.4.5" resolved "https://registry.yarnpkg.com/ktx-parse/-/ktx-parse-0.4.5.tgz#79905e22281a9d3e602b2ff522df1ee7d1813aa6" integrity sha512-MK3FOody4TXbFf8Yqv7EBbySw7aPvEcPX++Ipt6Sox+/YMFvR5xaTyhfNSk1AEmMy+RYIw81ctN4IMxCB8OAlg== -lazy-universal-dotenv@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/lazy-universal-dotenv/-/lazy-universal-dotenv-4.0.0.tgz#0b220c264e89a042a37181a4928cdd298af73422" - integrity sha512-aXpZJRnTkpK6gQ/z4nk+ZBLd/Qdp118cvPruLSIQzQNRhKwEcdXCOzXuF55VDqIiuAaY3UGZ10DJtvZzDcvsxg== - dependencies: - app-root-dir "^1.0.2" - dotenv "^16.0.0" - dotenv-expand "^10.0.0" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -7177,14 +3509,6 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - libnpmaccess@^7.0.2: version "7.0.2" resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-7.0.2.tgz#7f056c8c933dd9c8ba771fa6493556b53c5aac52" @@ -7365,14 +3689,6 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -7409,11 +3725,6 @@ lodash.clamp@^4.0.3: resolved "https://registry.yarnpkg.com/lodash.clamp/-/lodash.clamp-4.0.3.tgz#5c24bedeeeef0753560dc2b4cb4671f90a6ddfaa" integrity sha512-HvzRFWjtcguTW7yd8NJBshuNaCa8aqNFtnswdT7f/cMd/1YKy5Zzoq4W/Oxvnx9l7aeY258uSdDfM793+eLsVg== -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== - lodash.escaperegexp@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" @@ -7481,13 +3792,6 @@ loupe@^3.1.0, loupe@^3.1.2: resolved "https://registry.yarnpkg.com/loupe/-/loupe-3.1.2.tgz#c86e0696804a02218f2206124c45d8b15291a240" integrity sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg== -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -7505,11 +3809,6 @@ lru-cache@^9.0.0: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-9.1.1.tgz#c58a93de58630b688de39ad04ef02ef26f1902f1" integrity sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A== -lz-string@^1.4.4: - version "1.5.0" - resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" - integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== - maath@^0.5.2: version "0.5.3" resolved "https://registry.yarnpkg.com/maath/-/maath-0.5.3.tgz#777a1f9b8463c6ffb199ea43406874a357c0cd58" @@ -7520,13 +3819,6 @@ maath@^0.6.0: resolved "https://registry.yarnpkg.com/maath/-/maath-0.6.0.tgz#7841d0fb95bbb37d19b08b7c5458ef70190950d2" integrity sha512-dSb2xQuP7vDnaYqfoKzlApeRcR2xtN8/f7WV/TMAkBC8552TwTLtOO0JTcSygkYMjNDPoo6V01jTw/aPi4JrMw== -magic-string@^0.27.0: - version "0.27.0" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" - integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== - dependencies: - "@jridgewell/sourcemap-codec" "^1.4.13" - magic-string@^0.30.12: version "0.30.17" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453" @@ -7534,21 +3826,6 @@ magic-string@^0.30.12: dependencies: "@jridgewell/sourcemap-codec" "^1.5.0" -make-dir@^2.0.0, make-dir@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - -make-dir@^3.0.0, make-dir@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - make-fetch-happen@^10.0.3: version "10.2.1" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" @@ -7592,13 +3869,6 @@ make-fetch-happen@^11.0.0, make-fetch-happen@^11.0.1, make-fetch-happen@^11.1.0, socks-proxy-agent "^7.0.0" ssri "^10.0.0" -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - map-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" @@ -7609,16 +3879,6 @@ map-obj@^4.0.0: resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== -map-or-similar@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/map-or-similar/-/map-or-similar-1.5.0.tgz#6de2653174adfb5d9edc33c69d3e92a1b76faf08" - integrity sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg== - -markdown-to-jsx@^7.1.8: - version "7.2.0" - resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.2.0.tgz#e7b46b65955f6a04d48a753acd55874a14bdda4b" - integrity sha512-3l4/Bigjm4bEqjCR6Xr+d4DtM1X6vvtGsMGSjJYyep8RjjIvcWtrXBS8Wbfe1/P+atKNMccpsraESIaWVplzVg== - marked-terminal@^5.1.1: version "5.2.0" resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-5.2.0.tgz#c5370ec2bae24fb2b34e147b731c94fa933559d3" @@ -7636,30 +3896,6 @@ marked@^4.1.0: resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== -mdast-util-definitions@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz#c5c1a84db799173b4dcf7643cda999e440c24db2" - integrity sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ== - dependencies: - unist-util-visit "^2.0.0" - -mdast-util-to-string@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz#27055500103f51637bd07d01da01eb1967a43527" - integrity sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - -memoizerific@^1.11.3: - version "1.11.3" - resolved "https://registry.yarnpkg.com/memoizerific/-/memoizerific-1.11.3.tgz#7c87a4646444c32d75438570905f2dbd1b1a805a" - integrity sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog== - dependencies: - map-or-similar "^1.5.0" - meow@^8.0.0: version "8.1.2" resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" @@ -7677,11 +3913,6 @@ meow@^8.0.0: type-fest "^0.18.0" yargs-parser "^20.2.3" -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -7702,11 +3933,6 @@ meshoptimizer@~0.18.1: resolved "https://registry.yarnpkg.com/meshoptimizer/-/meshoptimizer-0.18.1.tgz#cdb90907f30a7b5b1190facd3b7ee6b7087797d8" integrity sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw== -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" @@ -7715,28 +3941,6 @@ micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: braces "^3.0.2" picomatch "^2.3.1" -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@^2.1.25, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.0.3: - version "2.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== - mime@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" @@ -7757,7 +3961,7 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -7887,18 +4091,6 @@ minizlib@^2.1.1, minizlib@^2.1.2: minipass "^3.0.0" yallist "^4.0.0" -mkdirp-classic@^0.5.2: - version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" - integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== - -mkdirp@^0.5.4: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" @@ -7914,27 +4106,12 @@ modify-values@^1.0.0: resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== -mri@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" - integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.0.0, ms@^2.1.1, ms@^2.1.2, ms@^2.1.3: +ms@^2.0.0, ms@^2.1.1, ms@^2.1.2, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -7949,7 +4126,7 @@ n8ao@^1.6.6: resolved "https://registry.yarnpkg.com/n8ao/-/n8ao-1.6.6.tgz#d444b3778ca05f48a3cc9b1d43d8847d86f98c2b" integrity sha512-sOu+wsJzrxd3ZMDQBVbzTt8Z3d8sQvdkZgt5top9ysVbvs1a0lpFGYxGPCxUW+rJfD9Y/QrTYn9IfW7AOqGqvw== -nanoid@^3.3.1, nanoid@^3.3.6: +nanoid@^3.3.6: version "3.3.6" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== @@ -7969,12 +4146,12 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -negotiator@0.6.3, negotiator@^0.6.3: +negotiator@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: +neo-async@^2.6.0: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -7984,13 +4161,6 @@ nerf-dart@^1.0.0: resolved "https://registry.yarnpkg.com/nerf-dart/-/nerf-dart-1.0.0.tgz#e6dab7febf5ad816ea81cf5c629c5a0ebde72c1a" integrity sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g== -node-dir@^0.1.10, node-dir@^0.1.17: - version "0.1.17" - resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" - integrity sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg== - dependencies: - minimatch "^3.0.2" - node-emoji@^1.11.0: version "1.11.0" resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" @@ -7998,18 +4168,6 @@ node-emoji@^1.11.0: dependencies: lodash "^4.17.21" -node-fetch-native@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.1.1.tgz#b8977dd7fe6c5599e417301ed3987bca787d3d6f" - integrity sha512-9VvspTSUp2Sxbl+9vbZTlFGq9lHwE8GDVVekxx6YsNd1YH59sb3Ba8v3Y3cD8PkLNcileGGcA21PFjVl0jzDaw== - -node-fetch@^2.6.1: - version "2.6.11" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" - integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w== - dependencies: - whatwg-url "^5.0.0" - node-fetch@^2.6.7: version "2.6.9" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" @@ -8033,16 +4191,6 @@ node-gyp@^9.0.0, node-gyp@^9.3.1: tar "^6.1.2" which "^2.0.2" -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== - -node-releases@^2.0.8: - version "2.0.10" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" - integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== - nopt@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" @@ -8087,7 +4235,7 @@ normalize-package-data@^5.0.0: semver "^7.3.5" validate-npm-package-license "^3.0.4" -normalize-path@^3.0.0, normalize-path@~3.0.0: +normalize-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== @@ -8171,13 +4319,6 @@ npm-registry-fetch@^14.0.0, npm-registry-fetch@^14.0.3, npm-registry-fetch@^14.0 npm-package-arg "^10.0.0" proc-log "^3.0.0" -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - npm-run-path@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" @@ -8262,16 +4403,6 @@ npm@^9.5.0: which "^3.0.1" write-file-atomic "^5.0.1" -npmlog@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" - integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== - dependencies: - are-we-there-yet "^2.0.0" - console-control-strings "^1.1.0" - gauge "^3.0.0" - set-blocking "^2.0.0" - npmlog@^6.0.0: version "6.0.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" @@ -8302,14 +4433,6 @@ object-inspect@^1.12.3, object-inspect@^1.9.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== -object-is@^1.0.1, object-is@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" - integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -8360,26 +4483,14 @@ object.values@^1.1.6: define-properties "^1.1.4" es-abstract "^1.20.4" -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" -onetime@^5.1.0, onetime@^5.1.2: +onetime@^5.1.0: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== @@ -8393,23 +4504,6 @@ onetime@^6.0.0: dependencies: mimic-fn "^4.0.0" -open@^7.0.3: - version "7.4.2" - resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" - integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== - dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" - -open@^8.4.0: - version "8.4.2" - resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" - integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== - dependencies: - define-lazy-prop "^2.0.0" - is-docker "^2.1.1" - is-wsl "^2.2.0" - opentype.js@^1.3.3: version "1.3.4" resolved "https://registry.yarnpkg.com/opentype.js/-/opentype.js-1.3.4.tgz#1c0e72e46288473cc4a4c6a2dc60fd7fe6020d77" @@ -8418,18 +4512,6 @@ opentype.js@^1.3.3: string.prototype.codepointat "^0.2.1" tiny-inflate "^1.0.3" -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - optionator@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" @@ -8466,7 +4548,7 @@ p-limit@^1.1.0: dependencies: p-try "^1.0.0" -p-limit@^2.0.0, p-limit@^2.2.0: +p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== @@ -8494,13 +4576,6 @@ p-locate@^2.0.0: dependencies: p-limit "^1.1.0" -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -8581,11 +4656,6 @@ pacote@^15.0.0, pacote@^15.0.8, pacote@^15.1.3: ssri "^10.0.0" tar "^6.1.11" -pako@~0.2.0: - version "0.2.9" - resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" - integrity sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA== - parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -8631,11 +4701,6 @@ parse-json@^7.0.0: lines-and-columns "^2.0.3" type-fest "^3.8.0" -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -8656,7 +4721,7 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -path-key@^3.0.0, path-key@^3.1.0: +path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== @@ -8679,21 +4744,11 @@ path-scurry@^1.7.0: lru-cache "^9.0.0" minipass "^5.0.0" -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== - path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pathe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.0.tgz#e2e13f6c62b31a3289af4ba19886c230f295ec03" - integrity sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w== - pathe@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec" @@ -8704,20 +4759,6 @@ pathval@^2.0.0: resolved "https://registry.yarnpkg.com/pathval/-/pathval-2.0.0.tgz#7e2550b422601d4f6b8e26f1301bc8f15a741a25" integrity sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA== -peek-stream@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/peek-stream/-/peek-stream-1.1.3.tgz#3b35d84b7ccbbd262fff31dc10da56856ead6d67" - integrity sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA== - dependencies: - buffer-from "^1.0.0" - duplexify "^3.5.0" - through2 "^2.0.3" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== - picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -8728,7 +4769,7 @@ picocolors@^1.1.1: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.0, picomatch@^2.3.1: +picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -8743,16 +4784,6 @@ pify@^3.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== - -pirates@^4.0.4, pirates@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== - pkg-conf@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" @@ -8761,34 +4792,6 @@ pkg-conf@^2.1.0: find-up "^2.0.0" load-json-file "^4.0.0" -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - -pkg-dir@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -pkg-dir@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" - integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== - dependencies: - find-up "^5.0.0" - -polished@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/polished/-/polished-4.2.2.tgz#2529bb7c3198945373c52e34618c8fe7b1aa84d1" - integrity sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ== - dependencies: - "@babel/runtime" "^7.17.8" - postcss-selector-parser@^6.0.10: version "6.0.13" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" @@ -8830,11 +4833,6 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== - prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" @@ -8842,25 +4840,11 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.8.0, prettier@^2.8.8: +prettier@^2.8.8: version "2.8.8" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== -pretty-format@^27.0.2: - version "27.5.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" - integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== - dependencies: - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - -pretty-hrtime@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" - integrity sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A== - proc-log@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8" @@ -8876,11 +4860,6 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== -progress@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - promise-all-reject-late@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2" @@ -8904,94 +4883,32 @@ promise-retry@^2.0.1: err-code "^2.0.2" retry "^0.12.0" -prompts@^2.4.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - promzard@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/promzard/-/promzard-1.0.0.tgz#3246f8e6c9895a77c0549cefb65828ac0f6c006b" integrity sha512-KQVDEubSUHGSt5xLakaToDFrSoZhStB8dXLzk2xvwR67gJktrHFvpR63oZgHyK19WKbHFLXJqCPXdVR3aBP8Ig== dependencies: - read "^2.0.0" - -prop-types@^15.6.0, prop-types@^15.7.2, prop-types@^15.8.1: - version "15.8.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" - integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== - dependencies: - loose-envify "^1.4.0" - object-assign "^4.1.1" - react-is "^16.13.1" - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -proxy-from-env@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" + read "^2.0.0" -pumpify@^1.3.3: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== +prop-types@^15.6.0, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +proto-list@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== punycode@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== -puppeteer-core@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-2.1.1.tgz#e9b3fbc1237b4f66e25999832229e9db3e0b90ed" - integrity sha512-n13AWriBMPYxnpbb6bnaY5YoY6rGj8vPLrz6CZF3o0qJNEwlcfJVxBzYZ0NJsQ21UbdJoijPCDrM++SUVEz7+w== - dependencies: - "@types/mime-types" "^2.1.0" - debug "^4.1.0" - extract-zip "^1.6.6" - https-proxy-agent "^4.0.0" - mime "^2.0.3" - mime-types "^2.1.25" - progress "^2.0.1" - proxy-from-env "^1.0.0" - rimraf "^2.6.1" - ws "^6.1.0" - q@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" @@ -9002,20 +4919,6 @@ qrcode-terminal@^0.12.0: resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== -qs@6.11.0: - version "6.11.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - -qs@^6.10.0: - version "6.11.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.1.tgz#6c29dff97f0c0060765911ba65cbc9764186109f" - integrity sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ== - dependencies: - side-channel "^1.0.4" - queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -9026,26 +4929,6 @@ quick-lru@^4.0.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== -ramda@^0.28.0: - version "0.28.0" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.28.0.tgz#acd785690100337e8b063cab3470019be427cc97" - integrity sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA== - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -9056,11 +4939,6 @@ rc@^1.2.8: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-colorful@^5.1.2: - version "5.6.1" - resolved "https://registry.yarnpkg.com/react-colorful/-/react-colorful-5.6.1.tgz#7dc2aed2d7c72fac89694e834d179e32f3da563b" - integrity sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw== - react-composer@^5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/react-composer/-/react-composer-5.0.3.tgz#7beb9513da5e8687f4f434ea1333ef36a4f3091b" @@ -9068,27 +4946,6 @@ react-composer@^5.0.3: dependencies: prop-types "^15.6.0" -react-docgen-typescript@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/react-docgen-typescript/-/react-docgen-typescript-2.2.2.tgz#4611055e569edc071204aadb20e1c93e1ab1659c" - integrity sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg== - -react-docgen@6.0.0-alpha.3: - version "6.0.0-alpha.3" - resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-6.0.0-alpha.3.tgz#4d8a4916b45de4aadb90eb5f3a6f923edf447928" - integrity sha512-DDLvB5EV9As1/zoUsct6Iz2Cupw9FObEGD3DMcIs3EDFIoSKyz8FZtoWj3Wj+oodrU4/NfidN0BL5yrapIcTSA== - dependencies: - "@babel/core" "^7.7.5" - "@babel/generator" "^7.12.11" - ast-types "^0.14.2" - commander "^2.19.0" - doctrine "^3.0.0" - estree-to-babel "^3.1.0" - neo-async "^2.6.1" - node-dir "^0.1.10" - resolve "^1.17.0" - strip-indent "^3.0.0" - react-dom@^19.0.0: version "19.0.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.0.0.tgz#43446f1f01c65a4cd7f7588083e686a6726cfb57" @@ -9096,35 +4953,11 @@ react-dom@^19.0.0: dependencies: scheduler "^0.25.0" -react-element-to-jsx-string@^15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/react-element-to-jsx-string/-/react-element-to-jsx-string-15.0.0.tgz#1cafd5b6ad41946ffc8755e254da3fc752a01ac6" - integrity sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ== - dependencies: - "@base2/pretty-print-object" "1.0.1" - is-plain-object "5.0.0" - react-is "18.1.0" - -react-inspector@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/react-inspector/-/react-inspector-6.0.1.tgz#1a37f0165d9df81ee804d63259eaaeabe841287d" - integrity sha512-cxKSeFTf7jpSSVddm66sKdolG90qURAX3g1roTeaN6x0YEbtWc8JpmFN9+yIqLNH2uEkYerWLtJZIXRIFuBKrg== - -react-is@18.1.0: - version "18.1.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.1.0.tgz#61aaed3096d30eacf2a2127118b5b41387d32a67" - integrity sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg== - react-is@^16.13.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - react-merge-refs@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/react-merge-refs/-/react-merge-refs-1.1.0.tgz#73d88b892c6c68cbb7a66e0800faa374f4c38b06" @@ -9137,11 +4970,6 @@ react-reconciler@0.31.0: dependencies: scheduler "^0.25.0" -react-refresh@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" - integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== - react@^19.0.0: version "19.0.0" resolved "https://registry.yarnpkg.com/react/-/react-19.0.0.tgz#6e1969251b9f108870aa4bff37a0ce9ddfaaabdd" @@ -9225,7 +5053,7 @@ read@^2.0.0, read@^2.1.0: dependencies: mute-stream "~1.0.0" -readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: +readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -9234,7 +5062,7 @@ readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.1.1, readable-stre string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@~2.3.6: +readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@~2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== @@ -9257,41 +5085,6 @@ readable-stream@^4.1.0: events "^3.3.0" process "^0.11.10" -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -recast@^0.21.0: - version "0.21.5" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.21.5.tgz#e8cd22bb51bcd6130e54f87955d33a2b2e57b495" - integrity sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg== - dependencies: - ast-types "0.15.2" - esprima "~4.0.0" - source-map "~0.6.1" - tslib "^2.0.1" - -recast@^0.23.1: - version "0.23.1" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.23.1.tgz#ee415a5561d2f99f02318ea8db81ad3a2267a6ff" - integrity sha512-RokaBcoxSjXUDzz1TXSZmZsSW6ZpLmlA3GGqJ8uuTrQ9hZhEz+4Tpsc+gRvYRJ2BU4H+ZyUlg91eSGDw7bwy7g== - dependencies: - assert "^2.0.0" - ast-types "^0.16.1" - esprima "~4.0.0" - source-map "~0.6.1" - tslib "^2.0.1" - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== - dependencies: - resolve "^1.1.6" - redent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" @@ -9307,36 +5100,17 @@ redeyed@~2.1.0: dependencies: esprima "~4.0.0" -regenerate-unicode-properties@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c" - integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ== - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - regenerator-runtime@^0.13.11: version "0.13.11" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -regenerator-transform@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" - integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== - dependencies: - "@babel/runtime" "^7.8.4" - regexp-to-ast@0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz#56c73856bee5e1fef7f73a00f1473452ab712a24" integrity sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw== -regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: +regexp.prototype.flags@^1.4.3: version "1.5.0" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== @@ -9345,18 +5119,6 @@ regexp.prototype.flags@^1.4.3, regexp.prototype.flags@^1.5.0: define-properties "^1.2.0" functions-have-names "^1.2.3" -regexpu-core@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" - integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== - dependencies: - "@babel/regjsgen" "^0.8.0" - regenerate "^1.4.2" - regenerate-unicode-properties "^10.1.0" - regjsparser "^0.9.1" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.1.0" - registry-auth-token@^5.0.0: version "5.0.2" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.0.2.tgz#8b026cc507c8552ebbe06724136267e63302f756" @@ -9364,33 +5126,6 @@ registry-auth-token@^5.0.0: dependencies: "@pnpm/npm-conf" "^2.1.0" -regjsparser@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" - integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== - dependencies: - jsesc "~0.5.0" - -remark-external-links@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/remark-external-links/-/remark-external-links-8.0.0.tgz#308de69482958b5d1cd3692bc9b725ce0240f345" - integrity sha512-5vPSX0kHoSsqtdftSHhIYofVINC8qmp0nctkeU9YoJwV3YfiBRiI6cbFRJ0oI/1F9xS+bopXG0m2KS8VFscuKA== - dependencies: - extend "^3.0.0" - is-absolute-url "^3.0.0" - mdast-util-definitions "^4.0.0" - space-separated-tokens "^1.0.0" - unist-util-visit "^2.0.0" - -remark-slug@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/remark-slug/-/remark-slug-6.1.0.tgz#0503268d5f0c4ecb1f33315c00465ccdd97923ce" - integrity sha512-oGCxDF9deA8phWvxFuyr3oSJsdyUAxMFbA0mZ7Y1Sas+emILtO+e5WutF9564gDsEN4IXaQXm5pFo6MLH+YmwQ== - dependencies: - github-slugger "^1.0.0" - mdast-util-to-string "^1.0.0" - unist-util-visit "^2.0.0" - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -9401,11 +5136,6 @@ require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== -requireindex@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" - integrity sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww== - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -9416,7 +5146,7 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.22.1: +resolve@^1.10.0, resolve@^1.22.1: version "1.22.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== @@ -9462,13 +5192,6 @@ rfdc@^1.3.0: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@^2.6.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -9483,14 +5206,7 @@ rimraf@^5.0.0: dependencies: glob "^10.0.0" -rimraf@~2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - -"rollup@^2.25.0 || ^3.3.0", rollup@^3.21.0: +rollup@^3.21.0: version "3.21.6" resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.21.6.tgz#f5649ccdf8fcc7729254faa457cbea9547eb86db" integrity sha512-SXIICxvxQxR3D4dp/3LDHZIJPC8a4anKMHd4E3Jiz2/JnY+2bEjqrOokAauc5ShGVNFHlEFjBXAXlaxkJqIqSg== @@ -9539,17 +5255,12 @@ rxjs@^7.8.0: dependencies: tslib "^2.1.0" -safe-buffer@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" - integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg== - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.2.1, safe-buffer@~5.2.0: +safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -9563,7 +5274,7 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": +"safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -9619,12 +5330,12 @@ semver-regex@^4.0.5: resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-4.0.5.tgz#fbfa36c7ba70461311f5debcb3928821eb4f9180" integrity sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw== -"semver@2 || 3 || 4 || 5", semver@^5.6.0: +"semver@2 || 3 || 4 || 5": version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: +semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -9643,68 +5354,11 @@ semver@^7.3.7: dependencies: lru-cache "^6.0.0" -semver@~7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -send@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serve-favicon@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/serve-favicon/-/serve-favicon-2.5.0.tgz#935d240cdfe0f5805307fdfe967d88942a2cbcf0" - integrity sha512-FMW2RvqNr03x+C0WxTyu6sOv21oOjkq5j8tjquWccwa6ScNyGFOGJVpuS1NmTVGBAHS07xnSKotgf2ehQmf9iA== - dependencies: - etag "~1.8.1" - fresh "0.5.2" - ms "2.1.1" - parseurl "~1.3.2" - safe-buffer "5.1.1" - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== - dependencies: - kind-of "^6.0.2" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -9717,15 +5371,6 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shelljs@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" - integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -9740,7 +5385,7 @@ siginfo@^2.0.0: resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== -signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.2, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -9768,18 +5413,6 @@ sigstore@^1.3.0, sigstore@^1.4.0: make-fetch-happen "^11.0.1" tuf-js "^1.1.3" -simple-update-notifier@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz#67694c121de354af592b347cdba798463ed49c82" - integrity sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg== - dependencies: - semver "~7.0.0" - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -9843,24 +5476,11 @@ source-map-js@^1.2.1: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== -source-map-support@^0.5.16: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -space-separated-tokens@^1.0.0: - version "1.1.5" - resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" - integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== - spawn-error-forwarder@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz#1afd94738e999b0346d7b9fc373be55e07577029" @@ -9913,11 +5533,6 @@ split@^1.0.0: dependencies: through "2" -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - ssri@^10.0.0, ssri@^10.0.1, ssri@^10.0.4: version "10.0.4" resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.4.tgz#5a20af378be586df139ddb2dfb3bf992cf0daba6" @@ -9942,35 +5557,11 @@ stats.js@^0.17.0: resolved "https://registry.yarnpkg.com/stats.js/-/stats.js-0.17.0.tgz#b1c3dc46d94498b578b7fd3985b81ace7131cc7d" integrity sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw== -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - std-env@^3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.8.0.tgz#b56ffc1baf1a29dcc80a3bdf11d7fca7c315e7d5" integrity sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w== -stop-iteration-iterator@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" - integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== - dependencies: - internal-slot "^1.0.4" - -store2@^2.14.2: - version "2.14.2" - resolved "https://registry.yarnpkg.com/store2/-/store2-2.14.2.tgz#56138d200f9fe5f582ad63bc2704dbc0e4a45068" - integrity sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w== - -storybook@^7.0.10: - version "7.0.10" - resolved "https://registry.yarnpkg.com/storybook/-/storybook-7.0.10.tgz#17145499d09452102f5484fa9e05c9b299346e22" - integrity sha512-L36+Um+Ra8AKTvv84ODFJfuthmWnR1Lc6pjslcb8LYO+PVlqEOeqSknmTcKntDYwgvKx5lg62urtJxzGdwO0yw== - dependencies: - "@storybook/cli" "7.0.10" - stream-combiner2@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/stream-combiner2/-/stream-combiner2-1.1.1.tgz#fb4d8a1420ea362764e21ad4780397bebcb41cbe" @@ -9979,17 +5570,12 @@ stream-combiner2@~1.1.1: duplexer2 "~0.1.0" readable-stream "^2.0.2" -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== - string-argv@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -10086,11 +5672,6 @@ strip-bom@^3.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - strip-final-newline@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" @@ -10103,7 +5684,7 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" -strip-json-comments@^3.0.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -10127,13 +5708,6 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-hyperlinks@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" @@ -10157,32 +5731,6 @@ suspend-react@^0.1.3: resolved "https://registry.yarnpkg.com/suspend-react/-/suspend-react-0.1.3.tgz#a52f49d21cfae9a2fb70bd0c68413d3f9d90768e" integrity sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ== -synchronous-promise@^2.0.15: - version "2.0.17" - resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.17.tgz#38901319632f946c982152586f2caf8ddc25c032" - integrity sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g== - -tar-fs@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" - integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== - dependencies: - chownr "^1.1.1" - mkdirp-classic "^0.5.2" - pump "^3.0.0" - tar-stream "^2.1.4" - -tar-stream@^2.1.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - tar@^6.1.11, tar@^6.1.14, tar@^6.1.2: version "6.1.15" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69" @@ -10207,36 +5755,11 @@ tar@^6.1.13: mkdirp "^1.0.3" yallist "^4.0.0" -telejson@^7.0.3: - version "7.1.0" - resolved "https://registry.yarnpkg.com/telejson/-/telejson-7.1.0.tgz#1ef7a0dd57eeb52cde933126f61bcc296c170f52" - integrity sha512-jFJO4P5gPebZAERPkJsqMAQ0IMA1Hi0AoSfxpnUaV6j6R2SZqlpkbS20U6dEUtA3RUYt2Ak/mTlkQzHH9Rv/hA== - dependencies: - memoizerific "^1.11.3" - temp-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== -temp@^0.8.4: - version "0.8.4" - resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.4.tgz#8c97a33a4770072e0a05f919396c7665a7dd59f2" - integrity sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg== - dependencies: - rimraf "~2.6.2" - -tempy@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tempy/-/tempy-1.0.1.tgz#30fe901fd869cfb36ee2bd999805aa72fbb035de" - integrity sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w== - dependencies: - del "^6.0.0" - is-stream "^2.0.0" - temp-dir "^2.0.0" - type-fest "^0.16.0" - unique-string "^2.0.0" - tempy@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/tempy/-/tempy-3.0.0.tgz#a6c0a15f5534a820e92c3e1369f1c1e87ebd6b68" @@ -10247,15 +5770,6 @@ tempy@^3.0.0: type-fest "^2.12.2" unique-string "^3.0.0" -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - text-extensions@^1.0.0: version "1.9.0" resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" @@ -10305,14 +5819,6 @@ three@^0.156.0: resolved "https://registry.yarnpkg.com/three/-/three-0.156.1.tgz#bab4fec121a5b3975eb4f4d227d9c912171eb399" integrity sha512-kP7H0FK9d/k6t/XvQ9FO6i+QrePoDcNhwl0I02+wmUJRNSLCUIDMcfObnzQvxb37/0Uc9TDT0T1HgsRRrO6SYQ== -through2@^2.0.3, through2@~2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - through2@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" @@ -10320,6 +5826,14 @@ through2@^4.0.0: dependencies: readable-stream "3" +through2@~2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + through@2, "through@>=2.2.7 <3", through@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -10360,16 +5874,6 @@ tinyspy@^3.0.2: resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-3.0.2.tgz#86dd3cf3d737b15adcf17d7887c84a75201df20a" integrity sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q== -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -10377,11 +5881,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -10422,11 +5921,6 @@ troika-worker-utils@^0.47.0: resolved "https://registry.yarnpkg.com/troika-worker-utils/-/troika-worker-utils-0.47.0.tgz#bea382fee55333e177955e7ba6497d64b9d9388d" integrity sha512-PSUc9vunDEkbE23jpgXD3PcF96jQHKjgMjS+4o5g6DEK/ZAPTnldb+FNddhppawfUcuraMFrslo0GmIC8UpEmA== -ts-dedent@^2.0.0, ts-dedent@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" - integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== - tsconfig-paths@^3.14.1: version "3.14.2" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" @@ -10442,7 +5936,7 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.1, tslib@^2.1.0, tslib@^2.4.0: +tslib@^2.1.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== @@ -10470,18 +5964,6 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== - dependencies: - prelude-ls "~1.1.2" - -type-fest@^0.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" - integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== - type-fest@^0.18.0: version "0.18.1" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" @@ -10512,7 +5994,7 @@ type-fest@^1.0.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== -type-fest@^2.0.0, type-fest@^2.12.2, type-fest@^2.19.0, type-fest@^2.5.0: +type-fest@^2.0.0, type-fest@^2.12.2, type-fest@^2.5.0: version "2.19.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== @@ -10522,14 +6004,6 @@ type-fest@^3.0.0, type-fest@^3.8.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.11.0.tgz#e78ea6b50d6a6b1e4609035fb9ea8f1e3c328194" integrity sha512-JaPw5U9ixP0XcpUbQoVSbxSDcK/K4nww20C3kjm9yE6cDRRhptU28AH60VWf9ltXmCrIfIbtt9J+2OUk2Uqiaw== -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - typed-array-length@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" @@ -10539,11 +6013,6 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== - typescript@^5.0.4: version "5.0.4" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b" @@ -10564,33 +6033,10 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -unfetch@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.2.0.tgz#7e21b0ef7d363d8d9af0fb929a5555f6ef97a3be" - integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA== - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" - integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" - integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== +undici-types@~6.20.0: + version "6.20.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.20.0.tgz#8171bf22c1f588d1554d55bf204bc624af388433" + integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg== unique-filename@^2.0.0: version "2.0.1" @@ -10620,13 +6066,6 @@ unique-slug@^4.0.0: dependencies: imurmurhash "^0.1.4" -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== - dependencies: - crypto-random-string "^2.0.0" - unique-string@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" @@ -10634,28 +6073,6 @@ unique-string@^3.0.0: dependencies: crypto-random-string "^4.0.0" -unist-util-is@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" - integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== - -unist-util-visit-parents@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" - integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" - -unist-util-visit@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" - integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== - dependencies: - "@types/unist" "^2.0.0" - unist-util-is "^4.0.0" - unist-util-visit-parents "^3.0.0" - universal-user-agent@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" @@ -10666,34 +6083,6 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -unplugin@^0.10.2: - version "0.10.2" - resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-0.10.2.tgz#0f7089c3666f592cc448d746e39e7f41e9afb01a" - integrity sha512-6rk7GUa4ICYjae5PrAllvcDeuT8pA9+j5J5EkxbMFaV+SalHhxZ7X2dohMzu6C3XzsMT+6jwR/+pwPNR3uK9MA== - dependencies: - acorn "^8.8.0" - chokidar "^3.5.3" - webpack-sources "^3.2.3" - webpack-virtual-modules "^0.4.5" - -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - -update-browserslist-db@^1.0.10: - version "1.0.11" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -10706,13 +6095,6 @@ url-join@^4.0.0: resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== -use-resize-observer@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/use-resize-observer/-/use-resize-observer-9.1.0.tgz#14735235cf3268569c1ea468f8a90c5789fc5c6c" - integrity sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow== - dependencies: - "@juggle/resize-observer" "^3.3.1" - use-sync-external-store@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz#c3b6390f3a30eba13200d2302dcdf1e7b57b2ef9" @@ -10723,41 +6105,11 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util@^0.12.0, util@^0.12.4: - version "0.12.5" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" - integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - which-typed-array "^1.1.2" - utility-types@^3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b" integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" - integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== - -v8-to-istanbul@^9.0.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz#1b83ed4e397f58c85c266a570fc2558b5feb9265" - integrity sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA== - dependencies: - "@jridgewell/trace-mapping" "^0.3.12" - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -10773,11 +6125,6 @@ validate-npm-package-name@^5.0.0: dependencies: builtins "^5.0.0" -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - vite-node@2.1.8: version "2.1.8" resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-2.1.8.tgz#9495ca17652f6f7f95ca7c4b568a235e0c8dbac5" @@ -10842,21 +6189,6 @@ walk-up-path@^3.0.1: resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-3.0.1.tgz#c8d78d5375b4966c717eb17ada73dbd41490e886" integrity sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA== -walker@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -watchpack@^2.2.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" - integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== - dependencies: - glob-to-regexp "^0.4.1" - graceful-fs "^4.1.2" - wcwidth@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" @@ -10879,16 +6211,6 @@ webidl-conversions@^3.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== -webpack-sources@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" - integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== - -webpack-virtual-modules@^0.4.5: - version "0.4.6" - resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.4.6.tgz#3e4008230731f1db078d9cb6f68baf8571182b45" - integrity sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA== - whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" @@ -10908,17 +6230,7 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-collection@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" - integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== - dependencies: - is-map "^2.0.1" - is-set "^2.0.1" - is-weakmap "^2.0.1" - is-weakset "^2.0.1" - -which-typed-array@^1.1.2, which-typed-array@^1.1.9: +which-typed-array@^1.1.9: version "1.1.9" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== @@ -10952,21 +6264,14 @@ why-is-node-running@^2.3.0: siginfo "^2.0.0" stackback "0.0.2" -wide-align@^1.1.2, wide-align@^1.1.5: +wide-align@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== dependencies: string-width "^1.0.2 || 2 || 3 || 4" -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - -word-wrap@^1.2.3, word-wrap@~1.2.3: +word-wrap@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -10999,23 +6304,6 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^2.3.0: - version "2.4.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" - integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -write-file-atomic@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - write-file-atomic@^5.0.0, write-file-atomic@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" @@ -11024,18 +6312,6 @@ write-file-atomic@^5.0.0, write-file-atomic@^5.0.1: imurmurhash "^0.1.4" signal-exit "^4.0.1" -ws@^6.1.0: - version "6.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" - integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== - dependencies: - async-limiter "~1.0.0" - -ws@^8.2.3: - version "8.13.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" - integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== - xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -11046,11 +6322,6 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" @@ -11061,7 +6332,7 @@ yaml@^2.2.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.2.tgz#ec551ef37326e6d42872dad1970300f8eb83a073" integrity sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA== -yargs-parser@^20.2.2, yargs-parser@^20.2.3, yargs-parser@^20.2.9: +yargs-parser@^20.2.3: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== @@ -11071,19 +6342,6 @@ yargs-parser@^21.1.1: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - yargs@^17.5.1: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" @@ -11097,14 +6355,6 @@ yargs@^17.5.1: y18n "^5.0.5" yargs-parser "^21.1.1" -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" From 3c92c4a6734d284d683b25fd9aab5c126992b885 Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Fri, 17 Jan 2025 15:10:13 -0600 Subject: [PATCH 04/19] chore: remove Storybook config --- .devcontainer/devcontainer.json | 28 ----- .storybook/Setup.tsx | 36 ------ .storybook/index.css | 9 -- .storybook/main.ts | 19 --- .storybook/preview.tsx | 26 ---- .../digital_painting_golden_hour_sunset.jpg | Bin 764952 -> 0 bytes .storybook/public/lensDirtTexture.png | Bin 69590 -> 0 bytes .storybook/public/suzi.gltf | 112 ------------------ .storybook/stories/Autofocus.stories.tsx | 91 -------------- .storybook/stories/LensFlare.stories.tsx | 86 -------------- .storybook/stories/assets/repo.svg | 1 - 11 files changed, 408 deletions(-) delete mode 100644 .devcontainer/devcontainer.json delete mode 100644 .storybook/Setup.tsx delete mode 100644 .storybook/index.css delete mode 100644 .storybook/main.ts delete mode 100644 .storybook/preview.tsx delete mode 100644 .storybook/public/digital_painting_golden_hour_sunset.jpg delete mode 100644 .storybook/public/lensDirtTexture.png delete mode 100644 .storybook/public/suzi.gltf delete mode 100644 .storybook/stories/Autofocus.stories.tsx delete mode 100644 .storybook/stories/LensFlare.stories.tsx delete mode 100644 .storybook/stories/assets/repo.svg diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json deleted file mode 100644 index c0089956..00000000 --- a/.devcontainer/devcontainer.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "image": "mcr.microsoft.com/vscode/devcontainers/javascript-node:18", - "hostRequirements": { - "memory": "8gb" - }, - "waitFor": "onCreateCommand", - "updateContentCommand": "yarn install", - "postCreateCommand": "", - "postAttachCommand": "yarn storybook", - "customizations": { - "codespaces": { - "openFiles": ["CONTRIBUTING.md"] - }, - "vscode": { - "settings": { - "editor.formatOnSave": true - }, - "extensions": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"] - } - }, - "portsAttributes": { - "6006": { - "label": "Storybook server", - "onAutoForward": "openPreview" - } - }, - "forwardPorts": [6006] -} diff --git a/.storybook/Setup.tsx b/.storybook/Setup.tsx deleted file mode 100644 index ad63d56a..00000000 --- a/.storybook/Setup.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import * as React from 'react' -import { Vector3 } from 'three' -import { Canvas, Props as CanvasProps } from '@react-three/fiber' - -import { CameraControls } from '@react-three/drei' - -type Props = React.PropsWithChildren< - CanvasProps & { - cameraFov?: number - cameraPosition?: Vector3 - controls?: boolean - lights?: boolean - } -> - -export const Setup = ({ - children, - cameraFov = 75, - cameraPosition = new Vector3(-5, 5, 5), - controls = true, - lights = true, - ...restProps -}: Props) => ( -
- - {children} - {lights && ( - <> - - - - )} - {controls && } - -
-) diff --git a/.storybook/index.css b/.storybook/index.css deleted file mode 100644 index 5c596af4..00000000 --- a/.storybook/index.css +++ /dev/null @@ -1,9 +0,0 @@ -html, -body, -#storybook-root { - height: 100%; -} - -.sbdocs canvas { - min-height: 20rem; -} diff --git a/.storybook/main.ts b/.storybook/main.ts deleted file mode 100644 index b8a062d7..00000000 --- a/.storybook/main.ts +++ /dev/null @@ -1,19 +0,0 @@ -import type { StorybookConfig } from '@storybook/react-vite' - -const config: StorybookConfig = { - stories: ['./stories/**/*.mdx', './stories/**/*.stories.@(js|jsx|ts|tsx)'], - addons: ['@storybook/addon-links', '@storybook/addon-essentials', '@storybook/addon-interactions'], - framework: { - name: '@storybook/react-vite', - options: {}, - }, - async viteFinal(config, options) { - // Add your configuration here - return config - }, - staticDirs: ['./public'], - docs: { - autodocs: 'tag', - }, -} -export default config diff --git a/.storybook/preview.tsx b/.storybook/preview.tsx deleted file mode 100644 index 9604122b..00000000 --- a/.storybook/preview.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import React from 'react' -import type { Preview } from '@storybook/react' - -import './index.css' - -const preview: Preview = { - parameters: { - // actions: { argTypesRegex: '^on[A-Z].*' }, - // controls: { - // matchers: { - // color: /(background|color)$/i, - // date: /Date$/, - // }, - // }, - layout: 'fullscreen', - }, - decorators: [ - (Story) => ( - - - - ), - ], -} - -export default preview diff --git a/.storybook/public/digital_painting_golden_hour_sunset.jpg b/.storybook/public/digital_painting_golden_hour_sunset.jpg deleted file mode 100644 index 673b67cfa6717c7a0cf50abcde47e16c47308a77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 764952 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

a{*roAlEci#bJKnpJP4LCjSPf>WcRan}_ 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

UbBkh@&br7;XRLgZ4?loV!t!!s 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 z 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 diff --git a/.storybook/public/lensDirtTexture.png b/.storybook/public/lensDirtTexture.png deleted file mode 100644 index b8776dc86a24d5c1c64d649801997e54dae2cf7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69590 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

%nZ>zt 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 PL7paz#PLT4h_C ( - - {Story()} - - ), - ], - tags: ['autodocs'], - // argTypes: { - // debug: { - // control: { type: 'range', min: 0, max: 1, step: 0.01 }, - // }, - // }, -} satisfies Meta - -export default meta -type Story = StoryObj - -// More on writing stories with args: https://storybook.js.org/docs/react/writing-stories/args -export const Primary: Story = { - render: (args) => ( - <> - - - -

- - - - - -
-
- - - - -
-
- - - - -
- - - - -

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 z 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

- - - - - - ), - args: { - mouse: true, - debug: 0.04, - bokehScale: 8, - focusRange: 0.001, - }, -} - -const Suzi = ({ children, ...props }) => { - const { nodes } = useGLTF('suzi.gltf') as any - return ( - <> - - {children} - - - ) -} - -const Shadows = memo(() => ( - - - -)) diff --git a/.storybook/stories/LensFlare.stories.tsx b/.storybook/stories/LensFlare.stories.tsx deleted file mode 100644 index f0ea6cea..00000000 --- a/.storybook/stories/LensFlare.stories.tsx +++ /dev/null @@ -1,86 +0,0 @@ -import React, { memo } from 'react' -import * as THREE from 'three' -import type { Meta, StoryObj } from '@storybook/react' -import { BackSide } from 'three' -import { Box, useTexture } from '@react-three/drei' - -import { Setup } from '../Setup' -import { EffectComposer, LensFlare, Vignette, Bloom } from '../../src' - -function SkyBox() { - const texture = useTexture('digital_painting_golden_hour_sunset.jpg') - - return ( - - - - - ) -} - -// More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction -const meta = { - title: 'Effect/LensFlare', - component: LensFlare, - decorators: [ - (Story) => ( - - {Story()} - - ), - ], - tags: ['autodocs'], - // argTypes: { - // debug: { - // control: { type: 'range', min: 0, max: 1, step: 0.01 }, - // }, - // }, -} satisfies Meta - -export default meta -type Story = StoryObj - -// More on writing stories with args: https://storybook.js.org/docs/react/writing-stories/args -export const Primary: Story = { - render: (args) => ( - <> - - - - - - - - - - - - - ), - args: {}, -} - -function DirtLensFlare(props) { - const texture = useTexture('lensDirtTexture.png') - - return -} - -export const Secondary: Story = { - render: (args) => ( - <> - - - - - - - - - - - - - ), - args: { starBurst: true }, -} diff --git a/.storybook/stories/assets/repo.svg b/.storybook/stories/assets/repo.svg deleted file mode 100644 index f386ee90..00000000 --- a/.storybook/stories/assets/repo.svg +++ /dev/null @@ -1 +0,0 @@ -illustration/repo \ No newline at end of file From 11e20ac0e43e2f2c6329355a5c324c82a0ce8b3f Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Fri, 17 Jan 2025 15:59:08 -0600 Subject: [PATCH 05/19] fix!: remove SSR (#316) --- src/effects/SSR/index.tsx | 89 - src/effects/SSR/screen-space-reflections.js | 1892 ------------------- src/index.tsx | 1 - 3 files changed, 1982 deletions(-) delete mode 100644 src/effects/SSR/index.tsx delete mode 100644 src/effects/SSR/screen-space-reflections.js diff --git a/src/effects/SSR/index.tsx b/src/effects/SSR/index.tsx deleted file mode 100644 index 7b828a27..00000000 --- a/src/effects/SSR/index.tsx +++ /dev/null @@ -1,89 +0,0 @@ -import React, { Ref, forwardRef, useLayoutEffect, useEffect, useContext, useMemo } from 'react' -/* @ts-ignore */ -import { SSREffect } from './screen-space-reflections' -import { EffectComposerContext } from '../../EffectComposer' -import { selectionContext } from '../../Selection' -import { useThree } from '@react-three/fiber' - -// first two args are camera and texture -type SSRProps = { - /** whether you want to use Temporal Resolving to re-use reflections from the last frames; this will reduce noise tremendously but may result in "smearing" */ - temporalResolve?: boolean - /** a value between 0 and 1 to set how much the last frame's reflections should be blended in; higher values will result in less noisy reflections when moving the camera but a more smeary look */ - temporalResolveMix?: number - /** a value between 0 and 1 to set how much the reprojected reflection should be corrected; higher values will reduce smearing but will result in less flickering at reflection edges */ - temporalResolveCorrectionMix?: number - /** the maximum number of samples for reflections; settings it to 0 means unlimited samples; setting it to a value like 6 can help make camera movements less disruptive when calculating reflections */ - maxSamples?: number - /** whether to blur the reflections and blend these blurred reflections with the raw ones depending on the blurMix value */ - ENABLE_BLUR?: boolean - /** how much the blurred reflections should be mixed with the raw reflections */ - blurMix?: number - /** the sharpness of the Bilateral Filter used to blur reflections */ - blurSharpness?: number - /** the kernel size of the Bilateral Blur Filter; higher kernel sizes will result in blurrier reflections with more artifacts */ - blurKernelSize?: number - /** how much the reflection ray should travel in each of its iteration; higher values will give deeper reflections but with more artifacts */ - rayStep?: number - /** the intensity of the reflections */ - intensity?: number - /** the maximum roughness a texel can have to have reflections calculated for it */ - maxRoughness?: number - /** whether jittering is enabled; jittering will randomly jitter the reflections resulting in a more noisy but overall more realistic look, enabling jittering can be expensive depending on the view angle */ - ENABLE_JITTERING?: boolean - /** how intense jittering should be */ - jitter?: number - /** how much the jittered rays should be spread; higher values will give a rougher look regarding the reflections but are more expensive to compute with */ - jitterSpread?: number - /** how intense jittering should be in relation to a material's roughness */ - jitterRough?: number - /** the number of steps a reflection ray can maximally do to find an object it intersected (and thus reflects) */ - MAX_STEPS?: number - /** once we had our ray intersect something, we need to find the exact point in space it intersected and thus it reflects; this can be done through binary search with the given number of maximum steps */ - NUM_BINARY_SEARCH_STEPS?: number - /** the maximum depth difference between a ray and the particular depth at its screen position after refining with binary search; lower values will result in better performance */ - maxDepthDifference?: number - /** the maximum depth for which reflections will be calculated */ - maxDepth?: number - /** the maximum depth difference between a ray and the particular depth at its screen position before refining with binary search; lower values will result in better performance */ - thickness?: number - /** Index of Refraction, used for calculating fresnel; reflections tend to be more intense the steeper the angle between them and the viewer is, the ior parameter set how much the intensity varies */ - ior?: number - /** if there should still be reflections for rays for which a reflecting point couldn't be found; enabling this will result in stretched looking reflections which can look good or bad depending on the angle */ - STRETCH_MISSED_RAYS?: boolean - /** WebGL2 only - whether to use multiple render targets when rendering the G-buffers (normals, depth and roughness); using them can improve performance as they will render all information to multiple buffers for each fragment in one run; this setting can't be changed during run-time */ - USE_MRT?: boolean - /** if roughness maps should be taken account of when calculating reflections */ - USE_ROUGHNESSMAP?: boolean - /** if normal maps should be taken account of when calculating reflections */ - USE_NORMALMAP?: boolean -} - -export const SSR = /* @__PURE__ */ forwardRef(function SSR( - { ENABLE_BLUR = true, USE_MRT = true, ...props }: SSRProps, - - ref: Ref -) { - const invalidate = useThree((s) => s.invalidate) - const { scene, camera } = useContext(EffectComposerContext) - const effect = useMemo( - () => new SSREffect(scene, camera, { ENABLE_BLUR, USE_MRT, ...props }), - [scene, camera, ENABLE_BLUR, USE_MRT, props] - ) - - const api = useContext(selectionContext) - useEffect(() => { - if (api && api.enabled) { - if (api.selected?.length) { - effect.selection.set(api.selected) - invalidate() - return () => { - effect.selection.clear() - invalidate() - } - } - } - }, [api, effect, invalidate]) - - return -}) diff --git a/src/effects/SSR/screen-space-reflections.js b/src/effects/SSR/screen-space-reflections.js deleted file mode 100644 index 38487e1b..00000000 --- a/src/effects/SSR/screen-space-reflections.js +++ /dev/null @@ -1,1892 +0,0 @@ -import { Pass, RenderPass, DepthPass, Effect, Selection } from 'postprocessing' -import { - REVISION, - ShaderMaterial, - Uniform, - Vector2, - Matrix3, - TangentSpaceNormalMap, - GLSL3, - Matrix4, - Vector3, - WebGLRenderTarget, - LinearFilter, - HalfFloatType, - ShaderChunk, - Color, - Quaternion, - VideoTexture, - DataTexture, - RGBAFormat, - FloatType, - NearestFilter, - FramebufferTexture, - WebGLCubeRenderTarget, - CubeCamera, - PMREMGenerator, - Texture, -} from 'three' -import { WebGLMultipleRenderTargets } from '../../compat' - -const { SSREffect, defaultSSROptions } = /* @__PURE__ */ (() => { - const boxBlur = /* glsl */ ` - uniform float blur; - uniform float blurSharpness; - uniform int blurKernel; - - vec3 denoise( - vec3 center, - sampler2D tex, - vec2 uv, - vec2 invTexSize, - float blur, - float blurSharpness, - int blurKernel - ) { - vec3 color, col; - float total, weight; - - for (int x = -blurKernel; x <= blurKernel; x++) { - for (int y=-blurKernel; y<=blurKernel; y++) { - col = textureLod(tex, uv + vec2(x,y) * invTexSize, 0.0).rgb; - weight = 1.0-abs(dot(col - center, vec3(0.25))); - weight = pow(weight, blurSharpness); - color += col * weight; - total += weight; - } - } - - return color / total; - } -` - - const finalSSRShader = /* glsl */ ` - #define MODE_DEFAULT 0 - #define MODE_REFLECTIONS 1 - #define MODE_RAW_REFLECTION 2 - #define MODE_BLURRED_REFLECTIONS 3 - #define MODE_INPUT 4 - #define MODE_BLUR_MIX 5 - #define FLOAT_EPSILON 0.00001 - // uniform sampler2D inputTexture; - uniform sampler2D reflectionsTexture; - // uniform float samples; - - ${boxBlur} - - void mainImage(const in vec4 inputColor, const in vec2 uv, out vec4 outputColor) { - vec4 reflectionsTexel=texture2D(reflectionsTexture, vUv); - ivec2 size = textureSize(reflectionsTexture, 0); - vec2 invTexSize= 1.0 / vec2(size.x, size.y); - vec3 reflectionClr = reflectionsTexel.xyz; - if (blur > FLOAT_EPSILON) { - vec3 blurredReflectionsColor = denoise( - reflectionsTexel.rgb, - reflectionsTexture, - vUv, - invTexSize, - blur, - blurSharpness, - blurKernel - ); - reflectionClr = mix(reflectionClr, blurredReflectionsColor.rgb, blur); - } - - #if RENDER_MODE == MODE_DEFAULT - outputColor = vec4(inputColor.rgb+reflectionClr, 1.0); - #endif - #if RENDER_MODE == MODE_REFLECTIONS - outputColor = vec4(reflectionClr, 1.0); - #endif - #if RENDER_MODE == MODE_RAW_REFLECTION - outputColor = vec4(reflectionsTexel.xyz, 1.0); - #endif - #if RENDER_MODE == MODE_BLURRED_REFLECTIONS - outputColor = vec4(blurredReflectionsTexel.xyz, 1.0); - #endif - #if RENDER_MODE == MODE_INPUT - outputColor = vec4(inputColor.xyz, 1.0); - #endif - #if RENDER_MODE == MODE_BLUR_MIX - outputColor = vec4(vec3(blur), 1.0); - #endif - } -` - - const helperFunctions = /* glsl */ ` - vec3 getViewPosition(const float depth) { - float clipW= _projectionMatrix[2][3] * depth + _projectionMatrix[3][3]; - vec4 clipPosition = vec4((vec3(vUv, depth) - 0.5) * 2.0, 1.0); - clipPosition *= clipW; - return(_inverseProjectionMatrix * clipPosition).xyz; - } - - float getViewZ(const in float depth) { - #ifdef PERSPECTIVE_CAMERA - return perspectiveDepthToViewZ(depth, cameraNear, cameraFar); - #else - return orthographicDepthToViewZ(depth, cameraNear, cameraFar); - #endif - } - - vec3 screenSpaceToWorldSpace(const vec2 uv,const float depth){ - vec4 ndc = vec4((uv.x - 0.5) * 2.0,(uv.y - 0.5)* 2.0, (depth - 0.5) * 2.0, 1.0); - vec4 clip= _inverseProjectionMatrix*ndc; - vec4 view = cameraMatrixWorld * (clip / clip.w); - return view.xyz; - } - - #define Scale (vec3(0.8, 0.8, 0.8)) - #define K (19.19) - - vec3 hash(vec3 a) { - a = fract(a * Scale); - a += dot(a, a.yxz + K); - return fract((a.xxy + a.yxx) * a.zyx); - } - - float fresnel_dielectric_cos(float cosi, float eta){ - float c = abs(cosi); - float g = eta * eta - 1.0 + c* c; - float result; - - if (g > 0.0){ - g = sqrt(g); - float A = (g - c) / (g + c); - float B = (c* (g + c) - 1.0) / (c * (g - c) + 1.0); - result = 0.5 * A * A * (1.0 + B * B); - } else { - result = 1.0; - } - - return result; - } - - float fresnel_dielectric(vec3 Incoming, vec3 Normal, float eta){ - float cosine = dot(Incoming, Normal); - return min(1.0, 5.0 * fresnel_dielectric_cos(cosine, eta)); - } -` - - const trCompose = /* glsl */ ` - #define INV_EULER 0.36787944117144233 - - alpha = velocityDisocclusion < FLOAT_EPSILON ? (alpha + 0.0075) : 0.0; - alpha = clamp(alpha, 0.0, 1.0); - bool needsBlur = !didReproject || velocityDisocclusion > 0.5; - - #ifdef boxBlur - if (needsBlur) inputColor = boxBlurredColor; - #endif - - if (alpha == 1.0) { - outputColor = accumulatedColor; - } else { - float m = mix(alpha, 1.0, blend); - if (needsBlur) m = 0.0; - outputColor = accumulatedColor * m + inputColor * (1.0 - m); - } -` - - // WebGL2: will render normals to RGB channel of "gNormal" buffer, roughness to A channel of "gNormal" buffer, depth to RGBA channel of "gDepth" buffer - // and velocity to "gVelocity" buffer - - class MRTMaterial extends ShaderMaterial { - constructor() { - super({ - type: 'MRTMaterial', - defines: { - USE_UV: '', - TEMPORAL_RESOLVE: '', - }, - uniforms: { - opacity: new Uniform(1), - normalMap: new Uniform(null), - normalScale: new Uniform(new Vector2(1, 1)), - uvTransform: new Uniform(new Matrix3()), - roughness: new Uniform(1), - roughnessMap: new Uniform(null), - }, - vertexShader: /* glsl */ ` - #ifdef USE_MRT - varying vec2 vHighPrecisionZW; - #endif - #define NORMAL - #if defined(FLAT_SHADED) || defined(USE_BUMPMAP) || defined(TANGENTSPACE_NORMALMAP) - varying vec3 vViewPosition; - #endif - #include - #include - #include - #include - #include - #include - #include - #include - #ifdef USE_UV - ${REVISION.replace(/\D+/g, '') >= 151 ? 'uniform mat3 uvTransform;' : ''} - #endif - void main() { - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #include - #if defined(FLAT_SHADED) || defined(USE_BUMPMAP) || defined(TANGENTSPACE_NORMALMAP) - vViewPosition = -mvPosition.xyz; - #endif - #ifdef USE_MRT - vHighPrecisionZW = gl_Position.zw; - #endif - #ifdef USE_UV - vUv = (uvTransform * vec3(uv, 1)).xy; - #endif - } - `, - fragmentShader: /* glsl */ ` - #define NORMAL - #if defined(FLAT_SHADED) || defined(USE_BUMPMAP) || defined(TANGENTSPACE_NORMALMAP) - varying vec3 vViewPosition; - #endif - #include - #include - #include - #include - #include - #include - #include - #include - - #ifdef USE_MRT - layout(location = 0) out vec4 gNormal; - layout(location = 1) out vec4 gDepth; - varying vec2 vHighPrecisionZW; - #endif - uniform float roughness; - void main() { - #include - #include - #include - #include - - float roughnessFactor = roughness; - - if (roughness > 10.0e9){ - roughnessFactor = 1.; - } else { - #ifdef useRoughnessMap - vec4 texelRoughness = texture2D(roughnessMap, vUv); - // reads channel G, compatible with a combined OcclusionRoughnessMetallic (RGB) texture - roughnessFactor *= texelRoughness.g; - #endif - } - - vec3 normalColor = packNormalToRGB(normal); - #ifdef USE_MRT - float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; - vec4 depthColor = packDepthToRGBA(fragCoordZ); - gNormal = vec4(normalColor, roughnessFactor); - gDepth = depthColor; - #else - gl_FragColor = vec4(normalColor, roughnessFactor); - #endif - } - `, - toneMapped: false, - }) - this.normalMapType = TangentSpaceNormalMap - this.normalScale = new Vector2(1, 1) - Object.defineProperty(this, 'glslVersion', { - get() { - return 'USE_MRT' in this.defines ? GLSL3 : null - }, - set(_) {}, - }) - } - } - - const vertexShader = /* glsl */ ` - varying vec2 vUv; - - void main() { - vUv = position.xy * 0.5 + 0.5; - gl_Position = vec4(position.xy, 1.0, 1.0); - } -` - - const fragmentShader = /* glsl */ ` - varying vec2 vUv; - uniform sampler2D inputTexture; - uniform sampler2D accumulatedTexture; - uniform sampler2D normalTexture; - uniform sampler2D depthTexture; - uniform sampler2D envMap; - uniform mat4 _projectionMatrix; - uniform mat4 _inverseProjectionMatrix; - uniform mat4 cameraMatrixWorld; - uniform float cameraNear; - uniform float cameraFar; - uniform float rayDistance; - uniform float intensity; - uniform float maxDepthDifference; - uniform float roughnessFade; - uniform float maxRoughness; - uniform float fade; - uniform float thickness; - uniform float ior; - uniform float samples; - uniform float jitter; - uniform float jitterRoughness; - - #define INVALID_RAY_COORDS vec2(-1.0); - - #define EARLY_OUT_COLOR vec4(0.0, 0.0, 0.0, 1.0) - #define FLOAT_EPSILON 0.00001 - float nearMinusFar; - float nearMulFar; - float farMinusNear; - - #include - - ${helperFunctions} - - vec2 RayMarch(vec3 dir, inout vec3 hitPos, inout float rayHitDepthDifference); - vec2 BinarySearch(in vec3 dir, inout vec3 hitPos, inout float rayHitDepthDifference); - float fastGetViewZ(const in float depth); - vec3 getIBLRadiance(const in vec3 viewDir, const in vec3 normal, const in float roughness); - - void main() { - vec4 depthTexel = textureLod(depthTexture, vUv, 0.0); - - if (dot(depthTexel.rgb, depthTexel.rgb) < FLOAT_EPSILON) { - gl_FragColor = EARLY_OUT_COLOR; - return; - } - - float unpackedDepth = unpackRGBAToDepth(depthTexel); - vec4 normalTexel = textureLod(normalTexture, vUv, 0.0); - float roughness = normalTexel.a; - float specular = 1.0 - roughness; - - nearMinusFar = cameraNear - cameraFar; - nearMulFar = cameraNear * cameraFar; - farMinusNear = cameraFar - cameraNear; - - normalTexel.rgb = unpackRGBToNormal(normalTexel.rgb); - - float depth = fastGetViewZ(unpackedDepth); - vec3 viewPos = getViewPosition(depth); - vec3 viewDir = normalize(viewPos); - vec3 viewNormal = normalTexel.xyz; - vec3 worldPos = screenSpaceToWorldSpace(vUv, unpackedDepth); - - vec3 jitt=vec3(0.0); - if (jitterRoughness != 0.0 || jitter!=0.0){ - vec3 randomJitter = hash(50.0 * samples * worldPos) - 0.5; - float spread= ((2.0 - specular) + roughness * jitterRoughness); - float jitterMix = jitter * 0.25 + jitterRoughness * roughness; - if (jitterMix > 1.0) jitterMix = 1.0; - jitt = mix(vec3(0.0), randomJitter * spread, jitterMix); - } - - viewNormal += jitt; - float fresnelFactor = fresnel_dielectric(viewDir, viewNormal, ior); - vec3 iblRadiance = getIBLRadiance(-viewDir, viewNormal, 0.0) * fresnelFactor; - float lastFrameAlpha = textureLod(accumulatedTexture, vUv, 0.0).a; - if (roughness > maxRoughness || (roughness > 1.0 - FLOAT_EPSILON && roughnessFade > 1.0 - FLOAT_EPSILON)) { - gl_FragColor=vec4(iblRadiance,lastFrameAlpha); - return; - } - - vec3 reflected = reflect(viewDir, viewNormal); - vec3 rayDir = reflected *- viewPos.z; - vec3 hitPos = viewPos; - float rayHitDepthDifference; - vec2 coords = RayMarch(rayDir, hitPos, rayHitDepthDifference); - if (coords.x == -1.0){ - gl_FragColor=vec4(iblRadiance, lastFrameAlpha); - return; - } - - vec4 SSRTexel = textureLod(inputTexture, coords.xy, 0.0); - vec4 SSRTexelReflected = textureLod(accumulatedTexture, coords.xy, 0.0); - vec3 SSR = SSRTexel.rgb + SSRTexelReflected.rgb; - float roughnessFactor = mix(specular, 1.0, max(0.0, 1.0 - roughnessFade)); - vec2 coordsNDC = (coords.xy * 2.0 - 1.0); - float screenFade = 0.1; - float maxDimension = min(1.0, max(abs(coordsNDC.x), abs(coordsNDC.y))); - float reflectionIntensity = 1.0 - (max(0.0, maxDimension - screenFade) / (1.0 - screenFade)); - reflectionIntensity = max(0.0, reflectionIntensity); - vec3 finalSSR = mix(iblRadiance, SSR, reflectionIntensity) * roughnessFactor; - - if (fade != 0.0) { - vec3 hitWorldPos = screenSpaceToWorldSpace(coords, rayHitDepthDifference); - float reflectionDistance = distance(hitWorldPos, worldPos) + 1.0; - float opacity = 1.0 / (reflectionDistance * fade * 0.1); - if(opacity > 1.0) opacity=1.0; - finalSSR *= opacity; - } - - finalSSR *= fresnelFactor * intensity; - finalSSR = min(vec3(1.0), finalSSR); - float alpha = hitPos.z == 1.0 ? 1.0 : SSRTexelReflected.a; - alpha = min(lastFrameAlpha, alpha); - gl_FragColor = vec4(finalSSR, alpha); - } - - vec2 RayMarch(vec3 dir, inout vec3 hitPos, inout float rayHitDepthDifference) { - dir=normalize(dir); - dir *= rayDistance / float(steps); - float depth; - vec4 projectedCoord; - vec4 lastProjectedCoord; - float unpackedDepth; - vec4 depthTexel; - - for (int i = 0; i < steps; i++) { - hitPos += dir; - projectedCoord = _projectionMatrix * vec4(hitPos, 1.0); - projectedCoord.xy /= projectedCoord.w; - projectedCoord.xy = projectedCoord.xy * 0.5 + 0.5; - - #ifndef missedRays - if ( - projectedCoord.x < 0.0 || - projectedCoord.x > 1.0 || - projectedCoord.y < 0.0 || - projectedCoord.y > 1.0 - ) { - return INVALID_RAY_COORDS; - } - #endif - - depthTexel = textureLod(depthTexture, projectedCoord.xy, 0.0); - unpackedDepth = unpackRGBAToDepth(depthTexel); - depth = fastGetViewZ(unpackedDepth); - rayHitDepthDifference = depth - hitPos.z; - - if (rayHitDepthDifference >= 0.0 && rayHitDepthDifference < thickness){ - #if refineSteps == 0 - if (dot(depthTexel.rgb, depthTexel.rgb) < FLOAT_EPSILON) return INVALID_RAY_COORDS; - #else - return BinarySearch(dir, hitPos, rayHitDepthDifference); - #endif - } - - #ifndef missedRays - if (hitPos.z > 0.0) return INVALID_RAY_COORDS; - #endif - - lastProjectedCoord = projectedCoord; - } - - hitPos.z = 1.0; - - #ifndef missedRays - return INVALID_RAY_COORDS; - #endif - - rayHitDepthDifference = unpackedDepth; - - return projectedCoord.xy; - } - - vec2 BinarySearch(in vec3 dir, inout vec3 hitPos, inout float rayHitDepthDifference) { - float depth; - vec4 projectedCoord; - vec2 lastMinProjectedCoordXY; - float unpackedDepth; - vec4 depthTexel; - - for (int i = 0; i < refineSteps; i++){ - projectedCoord = _projectionMatrix * vec4(hitPos, 1.0); - projectedCoord.xy /= projectedCoord.w; - projectedCoord.xy = projectedCoord.xy * 0.5 + 0.5; - depthTexel = textureLod(depthTexture, projectedCoord.xy, 0.0); - unpackedDepth = unpackRGBAToDepth(depthTexel); - depth = fastGetViewZ(unpackedDepth); - rayHitDepthDifference = depth - hitPos.z; - dir *= 0.5; - - if (rayHitDepthDifference > 0.0) { - hitPos -= dir; - } else { - hitPos += dir; - } - } - - if (dot(depthTexel.rgb, depthTexel.rgb) < FLOAT_EPSILON) return INVALID_RAY_COORDS; - if (abs(rayHitDepthDifference) > maxDepthDifference) return INVALID_RAY_COORDS; - - projectedCoord = _projectionMatrix*vec4(hitPos, 1.0); - projectedCoord.xy /= projectedCoord.w; - projectedCoord.xy = projectedCoord.xy * 0.5 + 0.5; - rayHitDepthDifference = unpackedDepth; - return projectedCoord.xy; - } - - float fastGetViewZ(const in float depth){ - #ifdef PERSPECTIVE_CAMERA - return nearMulFar / (farMinusNear * depth - cameraFar); - #else - return depth * nearMinusFar - cameraNear; - #endif - } - - #include - #include - - vec3 getIBLRadiance(const in vec3 viewDir, const in vec3 normal, const in float roughness){ - #if defined(ENVMAP_TYPE_CUBE_UV) - vec3 reflectVec = reflect(-viewDir, normal); - reflectVec = normalize(mix(reflectVec, normal,roughness * roughness)); - reflectVec = inverseTransformDirection(reflectVec, viewMatrix); - vec4 envMapColor = textureCubeUV(envMap, reflectVec, roughness); - return envMapColor.rgb * intensity; - #else - return vec3(0.0); - #endif - } -` - - class ReflectionsMaterial extends ShaderMaterial { - constructor() { - super({ - type: 'ReflectionsMaterial', - uniforms: { - inputTexture: new Uniform(null), - accumulatedTexture: new Uniform(null), - normalTexture: new Uniform(null), - depthTexture: new Uniform(null), - _projectionMatrix: new Uniform(new Matrix4()), - _inverseProjectionMatrix: new Uniform(new Matrix4()), - cameraMatrixWorld: new Uniform(new Matrix4()), - cameraNear: new Uniform(0), - cameraFar: new Uniform(0), - rayDistance: new Uniform(0), - intensity: new Uniform(0), - roughnessFade: new Uniform(0), - fade: new Uniform(0), - thickness: new Uniform(0), - ior: new Uniform(0), - maxDepthDifference: new Uniform(0), - jitter: new Uniform(0), - jitterRoughness: new Uniform(0), - maxRoughness: new Uniform(0), - samples: new Uniform(0), - envMap: new Uniform(null), - envMapPosition: new Uniform(new Vector3()), - envMapSize: new Uniform(new Vector3()), - viewMatrix: new Uniform(new Matrix4()), - }, - defines: { - steps: 20, - refineSteps: 5, - CUBEUV_TEXEL_WIDTH: 0, - CUBEUV_TEXEL_HEIGHT: 0, - CUBEUV_MAX_MIP: 0, - vWorldPosition: 'worldPos', - }, - fragmentShader, - vertexShader, - toneMapped: false, - depthWrite: false, - depthTest: false, - }) - } - } - - const getVisibleChildren = (object) => { - const queue = [object] - const objects = [] - - while (queue.length !== 0) { - const mesh = queue.shift() - if (mesh.material) objects.push(mesh) - - for (const c of mesh.children) { - if (c.visible) queue.push(c) - } - } - - return objects - } - const generateCubeUVSize = (parameters) => { - const imageHeight = parameters.envMapCubeUVHeight - if (imageHeight === null) return null - const maxMip = Math.log2(imageHeight) - 2 - const texelHeight = 1.0 / imageHeight - const texelWidth = 1.0 / (3 * Math.max(Math.pow(2, maxMip), 7 * 16)) - return { - texelWidth, - texelHeight, - maxMip, - } - } - const setupEnvMap = (reflectionsMaterial, envMap, envMapCubeUVHeight) => { - reflectionsMaterial.uniforms.envMap.value = envMap - const envMapCubeUVSize = generateCubeUVSize({ - envMapCubeUVHeight, - }) - reflectionsMaterial.defines.ENVMAP_TYPE_CUBE_UV = '' - reflectionsMaterial.defines.CUBEUV_TEXEL_WIDTH = envMapCubeUVSize.texelWidth - reflectionsMaterial.defines.CUBEUV_TEXEL_HEIGHT = envMapCubeUVSize.texelHeight - reflectionsMaterial.defines.CUBEUV_MAX_MIP = envMapCubeUVSize.maxMip + '.0' - reflectionsMaterial.needsUpdate = true - } - - const isWebGL2Available = () => { - try { - const canvas = document.createElement('canvas') - return !!(window.WebGL2RenderingContext && canvas.getContext('webgl2')) - } catch (e) { - return false - } - } - - class ReflectionsPass extends Pass { - constructor(ssrEffect, options = {}) { - super('ReflectionsPass') - this.ssrEffect = void 0 - this.cachedMaterials = new WeakMap() - this.USE_MRT = false - this.webgl1DepthPass = null - this.visibleMeshes = [] - this.ssrEffect = ssrEffect - this._scene = ssrEffect._scene - this._camera = ssrEffect._camera - this.fullscreenMaterial = new ReflectionsMaterial() - if (ssrEffect._camera.isPerspectiveCamera) this.fullscreenMaterial.defines.PERSPECTIVE_CAMERA = '' - const width = options.width || typeof window !== 'undefined' ? window.innerWidth : 2000 - const height = options.height || typeof window !== 'undefined' ? window.innerHeight : 1000 - this.renderTarget = new WebGLRenderTarget(width, height, { - minFilter: LinearFilter, - magFilter: LinearFilter, - type: HalfFloatType, - depthBuffer: false, - }) - this.renderPass = new RenderPass(this._scene, this._camera) - this.USE_MRT = isWebGL2Available() - - if (this.USE_MRT) { - // buffers: normal, depth (2), roughness will be written to the alpha channel of the normal buffer - this.gBuffersRenderTarget = new WebGLMultipleRenderTargets(width, height, 2, { - minFilter: LinearFilter, - magFilter: LinearFilter, - }) - this.normalTexture = this.gBuffersRenderTarget.texture[0] - this.depthTexture = this.gBuffersRenderTarget.texture[1] - } else { - // depth pass - this.webgl1DepthPass = new DepthPass(this._scene, this._camera) - this.webgl1DepthPass.renderTarget.minFilter = LinearFilter - this.webgl1DepthPass.renderTarget.magFilter = LinearFilter - this.webgl1DepthPass.renderTarget.texture.minFilter = LinearFilter - this.webgl1DepthPass.renderTarget.texture.magFilter = LinearFilter - this.webgl1DepthPass.setSize( - typeof window !== 'undefined' ? window.innerWidth : 2000, - typeof window !== 'undefined' ? window.innerHeight : 1000 - ) // render normals (in the rgb channel) and roughness (in the alpha channel) in gBuffersRenderTarget - - this.gBuffersRenderTarget = new WebGLRenderTarget(width, height, { - minFilter: LinearFilter, - magFilter: LinearFilter, - }) - this.normalTexture = this.gBuffersRenderTarget.texture - this.depthTexture = this.webgl1DepthPass.texture - } // set up uniforms - - this.fullscreenMaterial.uniforms.normalTexture.value = this.normalTexture - this.fullscreenMaterial.uniforms.depthTexture.value = this.depthTexture - this.fullscreenMaterial.uniforms.accumulatedTexture.value = this.ssrEffect.temporalResolvePass.accumulatedTexture - this.fullscreenMaterial.uniforms.cameraMatrixWorld.value = this._camera.matrixWorld - this.fullscreenMaterial.uniforms._projectionMatrix.value = this._camera.projectionMatrix - this.fullscreenMaterial.uniforms._inverseProjectionMatrix.value = this._camera.projectionMatrixInverse - } - - setSize(width, height) { - this.renderTarget.setSize(width * this.ssrEffect.resolutionScale, height * this.ssrEffect.resolutionScale) - this.gBuffersRenderTarget.setSize(width * this.ssrEffect.resolutionScale, height * this.ssrEffect.resolutionScale) - this.fullscreenMaterial.uniforms.accumulatedTexture.value = this.ssrEffect.temporalResolvePass.accumulatedTexture - this.fullscreenMaterial.needsUpdate = true - } - - dispose() { - this.renderTarget.dispose() - this.gBuffersRenderTarget.dispose() - this.renderPass.dispose() - if (!this.USE_MRT) this.webgl1DepthPass.dispose() - this.fullscreenMaterial.dispose() - this.normalTexture = null - this.depthTexture = null - this.velocityTexture = null - } - - keepMaterialMapUpdated(mrtMaterial, originalMaterial, prop, define) { - if (this.ssrEffect[define]) { - if (originalMaterial[prop] !== mrtMaterial[prop]) { - mrtMaterial[prop] = originalMaterial[prop] - mrtMaterial.uniforms[prop].value = originalMaterial[prop] - - if (originalMaterial[prop]) { - mrtMaterial.defines[define] = '' - } else { - delete mrtMaterial.defines[define] - } - - mrtMaterial.needsUpdate = true - } - } else if (mrtMaterial[prop] !== undefined) { - mrtMaterial[prop] = undefined - mrtMaterial.uniforms[prop].value = undefined - delete mrtMaterial.defines[define] - mrtMaterial.needsUpdate = true - } - } - - setMRTMaterialInScene() { - this.visibleMeshes = getVisibleChildren(this._scene) - - for (const c of this.visibleMeshes) { - if (c.material) { - const originalMaterial = c.material - let [cachedOriginalMaterial, mrtMaterial] = this.cachedMaterials.get(c) || [] - - if (originalMaterial !== cachedOriginalMaterial) { - if (mrtMaterial) mrtMaterial.dispose() - mrtMaterial = new MRTMaterial() - if (this.USE_MRT) mrtMaterial.defines.USE_MRT = '' - mrtMaterial.normalScale = originalMaterial.normalScale - mrtMaterial.uniforms.normalScale.value = originalMaterial.normalScale - const map = - originalMaterial.map || - originalMaterial.normalMap || - originalMaterial.roughnessMap || - originalMaterial.metalnessMap - if (map) mrtMaterial.uniforms.uvTransform.value = map.matrix - this.cachedMaterials.set(c, [originalMaterial, mrtMaterial]) - } // update the child's MRT material - - this.keepMaterialMapUpdated(mrtMaterial, originalMaterial, 'normalMap', 'useNormalMap') - this.keepMaterialMapUpdated(mrtMaterial, originalMaterial, 'roughnessMap', 'useRoughnessMap') - mrtMaterial.uniforms.roughness.value = - this.ssrEffect.selection.size === 0 || this.ssrEffect.selection.has(c) - ? originalMaterial.roughness || 0 - : 10e10 - c.material = mrtMaterial - } - } - } - - unsetMRTMaterialInScene() { - for (const c of this.visibleMeshes) { - var _c$material - - if (((_c$material = c.material) == null ? void 0 : _c$material.type) === 'MRTMaterial') { - c.visible = true // set material back to the original one - - const [originalMaterial] = this.cachedMaterials.get(c) - c.material = originalMaterial - } - } - } - - render(renderer, inputBuffer) { - this.setMRTMaterialInScene() - renderer.setRenderTarget(this.gBuffersRenderTarget) - this.renderPass.render(renderer, this.gBuffersRenderTarget) - this.unsetMRTMaterialInScene() // render depth and velocity in seperate passes - - if (!this.USE_MRT) this.webgl1DepthPass.renderPass.render(renderer, this.webgl1DepthPass.renderTarget) - this.fullscreenMaterial.uniforms.inputTexture.value = inputBuffer.texture - this.fullscreenMaterial.uniforms.samples.value = this.ssrEffect.temporalResolvePass.samples - this.fullscreenMaterial.uniforms.cameraNear.value = this._camera.near - this.fullscreenMaterial.uniforms.cameraFar.value = this._camera.far - this.fullscreenMaterial.uniforms.viewMatrix.value.copy(this._camera.matrixWorldInverse) - renderer.setRenderTarget(this.renderTarget) - renderer.render(this.scene, this.camera) - } - } - - /** - * Options of the SSR effect - * @typedef {Object} SSROptions - * @property {Number} [intensity] intensity of the reflections - * @property {Number} [exponent] exponent by which reflections will be potentiated when composing the current frame's reflections and the accumulated reflections into a final reflection; higher values will make reflections clearer by highlighting darker spots less - * @property {Number} [distance] maximum distance a reflection ray can travel to find what it reflects - * @property {Number} [fade] how much reflections will fade out by distance - * @property {Number} [roughnessFade] how intense reflections should be on rough spots; a higher value will make reflections fade out quicker on rough spots - * @property {Number} [thickness] maximum depth difference between a ray and the particular depth at its screen position before refining with binary search; higher values will result in better performance - * @property {Number} [ior] Index of Refraction, used for calculating fresnel; reflections tend to be more intense the steeper the angle between them and the viewer is, the ior parameter sets how much the intensity varies - * @property {Number} [maxRoughness] maximum roughness a texel can have to have reflections calculated for it - * @property {Number} [maxDepthDifference] maximum depth difference between a ray and the particular depth at its screen position after refining with binary search; higher values will result in better performance - * @property {Number} [blend] a value between 0 and 1 to set how much the last frame's reflections should be blended in; higher values will result in less noisy reflections when moving the camera but a more smeary look - * @property {boolean} [correction] how much pixels should be corrected when doing temporal resolving; higher values will result in less smearing but more noise - * @property {boolean} [correctionRadius] how many surrounding pixels will be used for neighborhood clamping; a higher value can reduce noise when moving the camera but will result in less performance - * @property {Number} [blur] how much the blurred reflections should be mixed with the raw reflections - * @property {Number} [blurKernel] kernel size of the Box Blur Filter; higher kernel sizes will result in blurrier reflections with more artifacts - * @property {Number} [blurSharpness] exponent of the Box Blur filter; higher values will result in more sharpness - * @property {Number} [jitter] how intense jittering should be - * @property {Number} [jitterRoughness] how intense jittering should be in relation to a material's roughness - * @property {Number} [steps] number of steps a reflection ray can maximally do to find an object it intersected (and thus reflects) - * @property {Number} [refineSteps] once we had our ray intersect something, we need to find the exact point in space it intersected and thus it reflects; this can be done through binary search with the given number of maximum steps - * @property {boolean} [missedRays] if there should still be reflections for rays for which a reflecting point couldn't be found; enabling this will result in stretched looking reflections which can look good or bad depending on the angle - * @property {boolean} [useNormalMap] if roughness maps should be taken account of when calculating reflections - * @property {boolean} [useRoughnessMap] if normal maps should be taken account of when calculating reflections - * @property {Number} [resolutionScale] resolution of the SSR effect, a resolution of 0.5 means the effect will be rendered at half resolution - * @property {Number} [velocityResolutionScale] resolution of the velocity buffer, a resolution of 0.5 means velocity will be rendered at half resolution - */ - - /** - * The options of the SSR effect - * @type {SSROptions} - */ - const defaultSSROptions = { - intensity: 1, - exponent: 1, - distance: 10, - fade: 0, - roughnessFade: 1, - thickness: 10, - ior: 1.45, - maxRoughness: 1, - maxDepthDifference: 10, - blend: 0.9, - correction: 1, - correctionRadius: 1, - blur: 0.5, - blurKernel: 1, - blurSharpness: 10, - jitter: 0, - jitterRoughness: 0, - steps: 20, - refineSteps: 5, - missedRays: true, - useNormalMap: true, - useRoughnessMap: true, - resolutionScale: 1, - velocityResolutionScale: 1, - } - - const temporalResolve = /* glsl */ ` - uniform sampler2D inputTexture; - uniform sampler2D accumulatedTexture; - uniform sampler2D velocityTexture; - uniform sampler2D lastVelocityTexture; - uniform float blend; - uniform float correction; - uniform float exponent; - uniform float samples; - uniform vec2 invTexSize; - uniform mat4 curInverseProjectionMatrix; - uniform mat4 curCameraMatrixWorld; - uniform mat4 prevInverseProjectionMatrix; - uniform mat4 prevCameraMatrixWorld; - varying vec2 vUv; - - #define MAX_NEIGHBOR_DEPTH_DIFFERENCE 0.001 - #define FLOAT_EPSILON 0.00001 - #define FLOAT_ONE_MINUS_EPSILON 0.99999 - - vec3 transformexponent; - vec3 undoColorTransformExponent; - - vec3 transformColor(vec3 color) { - if (exponent == 1.0) return color; - return pow(abs(color), transformexponent); - } - - vec3 undoColorTransform(vec3 color) { - if (exponent == 1.0) return color; - return max(pow(abs(color), undoColorTransformExponent), vec3(0.0)); - } - - void main() { - if (exponent != 1.0){ - transformexponent = vec3(1.0 / exponent); - undoColorTransformExponent = vec3(exponent); - } - - vec4 inputTexel = textureLod(inputTexture, vUv, 0.0); - vec4 accumulatedTexel; - vec3 inputColor = transformColor(inputTexel.rgb); - vec3 accumulatedColor; - float alpha = inputTexel.a; - float velocityDisocclusion; - bool didReproject = false; - - #ifdef boxBlur - vec3 boxBlurredColor = inputTexel.rgb; - #endif - - vec4 velocity = textureLod(velocityTexture, vUv, 0.0); - bool isMoving = alpha < 1.0 || dot(velocity.xy, velocity.xy) > 0.0; - if (isMoving) { - vec3 minNeighborColor = inputColor; - vec3 maxNeighborColor = inputColor; - vec3 col; - vec2 neighborUv; - vec2 reprojectedUv = vUv-velocity.xy; - vec4 lastVelocity = textureLod(lastVelocityTexture, reprojectedUv, 0.0); - float depth = velocity.b; - float closestDepth = depth; - float lastClosestDepth = lastVelocity.b; - float neighborDepth; - float lastNeighborDepth; - - for (int x = -correctionRadius; x <= correctionRadius; x++) { - for (int y = -correctionRadius; y <= correctionRadius; y++) { - if (x != 0 || y != 0) { - neighborUv = vUv + vec2(x,y) * invTexSize; - vec4 neigborVelocity = textureLod(velocityTexture, neighborUv, 0.0); - neighborDepth = neigborVelocity.b; - col = textureLod(inputTexture, neighborUv, 0.0).xyz; - int absX = abs(x); - int absY = abs(y); - - #ifdef dilation - if (absX == 1 && absY == 1) { - if (neighborDepth > closestDepth) { - velocity=neigborVelocity; - closestDepth=neighborDepth; - } - - vec4 lastNeighborVelocity = textureLod(velocityTexture, vUv + vec2(x, y) * invTexSize, 0.0); - lastNeighborDepth = lastNeighborVelocity.b; - - if (neighborDepth > closestDepth) { - lastVelocity = lastNeighborVelocity; - lastClosestDepth = lastNeighborDepth; - } - } - #endif - - if (abs(depth-neighborDepth) < MAX_NEIGHBOR_DEPTH_DIFFERENCE) { - #ifdef boxBlur - if (absX <= 2 && absY <= 2) boxBlurredColor += col; - #endif - - col = transformColor(col); - minNeighborColor = min(col, minNeighborColor); - maxNeighborColor = max(col, maxNeighborColor); - } - } - } - } - - float velocityLength = length(lastVelocity.xy - velocity.xy); - velocityDisocclusion = (velocityLength - 0.000005) * 10.0; - velocityDisocclusion *= velocityDisocclusion; - reprojectedUv = vUv - velocity.xy; - - #ifdef boxBlur - float pxRadius = correctionRadius > 5 ? 121.0 : pow(float(correctionRadius * 2 + 1), 2.0); - boxBlurredColor /= pxRadius; - boxBlurredColor = transformColor(boxBlurredColor); - #endif - - if ( - reprojectedUv.x >=0.0 && - reprojectedUv.x <= 1.0 && - reprojectedUv.y >= 0.0 && - reprojectedUv.y <= 1.0 - ) { - accumulatedTexel = textureLod(accumulatedTexture, reprojectedUv, 0.0); - accumulatedColor = transformColor(accumulatedTexel.rgb); - vec3 clampedColor = clamp(accumulatedColor, minNeighborColor, maxNeighborColor); - accumulatedColor = mix(accumulatedColor, clampedColor, correction); - didReproject = true; - } else { - #ifdef boxBlur - accumulatedColor=boxBlurredColor; - #else - accumulatedColor=inputColor; - #endif - } - - if (velocity.r > FLOAT_ONE_MINUS_EPSILON && velocity.g > FLOAT_ONE_MINUS_EPSILON) { - alpha = 0.0; - velocityDisocclusion = 1.0; - } - } else { - accumulatedColor = transformColor(textureLod(accumulatedTexture, vUv, 0.0).rgb); - } - - vec3 outputColor = inputColor; - - #include - - gl_FragColor = vec4(undoColorTransform(outputColor), alpha); - } -` - - class TemporalResolveMaterial extends ShaderMaterial { - constructor(customComposeShader) { - const fragmentShader = temporalResolve.replace('#include ', customComposeShader) - super({ - type: 'TemporalResolveMaterial', - uniforms: { - inputTexture: new Uniform(null), - accumulatedTexture: new Uniform(null), - velocityTexture: new Uniform(null), - lastVelocityTexture: new Uniform(null), - samples: new Uniform(1), - blend: new Uniform(0.5), - correction: new Uniform(1), - exponent: new Uniform(1), - invTexSize: new Uniform(new Vector2()), - }, - defines: { - correctionRadius: 1, - }, - vertexShader, - fragmentShader, - }) - } - } - - // this shader is from: https://github.com/gkjohnson/threejs-sandbox - // a second set of bone information from the previou frame - - const prev_skinning_pars_vertex = - /* glsl */ - ` - #ifdef USE_SKINNING - #ifdef BONE_TEXTURE - uniform sampler2D prevBoneTexture; - mat4 getPrevBoneMatrix( const in float i ) { - float j = i * 4.0; - float x = mod( j, float( boneTextureSize ) ); - float y = floor( j / float( boneTextureSize ) ); - float dx = 1.0 / float( boneTextureSize ); - float dy = 1.0 / float( boneTextureSize ); - y = dy * ( y + 0.5 ); - vec4 v1 = texture2D( prevBoneTexture, vec2( dx * ( x + 0.5 ), y ) ); - vec4 v2 = texture2D( prevBoneTexture, vec2( dx * ( x + 1.5 ), y ) ); - vec4 v3 = texture2D( prevBoneTexture, vec2( dx * ( x + 2.5 ), y ) ); - vec4 v4 = texture2D( prevBoneTexture, vec2( dx * ( x + 3.5 ), y ) ); - mat4 bone = mat4( v1, v2, v3, v4 ); - return bone; - } - #else - uniform mat4 prevBoneMatrices[ MAX_BONES ]; - mat4 getPrevBoneMatrix( const in float i ) { - mat4 bone = prevBoneMatrices[ int(i) ]; - return bone; - } - #endif - #endif -` // Returns the body of the vertex shader for the velocity buffer and - // outputs the position of the current and last frame positions - - const velocity_vertex = - /* glsl */ - ` - vec3 transformed; - - // Get the normal - ${ShaderChunk.skinbase_vertex} - ${ShaderChunk.beginnormal_vertex} - ${ShaderChunk.skinnormal_vertex} - ${ShaderChunk.defaultnormal_vertex} - - // Get the current vertex position - transformed = vec3( position ); - ${ShaderChunk.skinning_vertex} - newPosition = velocityMatrix * vec4( transformed, 1.0 ); - - // Get the previous vertex position - transformed = vec3( position ); - ${ShaderChunk.skinbase_vertex.replace(/mat4 /g, '').replace(/getBoneMatrix/g, 'getPrevBoneMatrix')} - ${ShaderChunk.skinning_vertex.replace(/vec4 /g, '')} - prevPosition = prevVelocityMatrix * vec4( transformed, 1.0 ); - - gl_Position = newPosition; -` - class VelocityMaterial extends ShaderMaterial { - constructor() { - super({ - uniforms: { - prevVelocityMatrix: { - value: new Matrix4(), - }, - velocityMatrix: { - value: new Matrix4(), - }, - prevBoneTexture: { - value: null, - }, - interpolateGeometry: { - value: 0, - }, - intensity: { - value: 1, - }, - boneTexture: { - value: null, - }, - alphaTest: { - value: 0.0, - }, - map: { - value: null, - }, - alphaMap: { - value: null, - }, - opacity: { - value: 1.0, - }, - }, - vertexShader: - /* glsl */ - ` - #define MAX_BONES 1024 - - ${ShaderChunk.skinning_pars_vertex} - ${prev_skinning_pars_vertex} - - uniform mat4 velocityMatrix; - uniform mat4 prevVelocityMatrix; - uniform float interpolateGeometry; - varying vec4 prevPosition; - varying vec4 newPosition; - varying vec2 vHighPrecisionZW; - - void main() { - - ${velocity_vertex} - - vHighPrecisionZW = gl_Position.zw; - - }`, - fragmentShader: - /* glsl */ - ` - uniform float intensity; - varying vec4 prevPosition; - varying vec4 newPosition; - varying vec2 vHighPrecisionZW; - - void main() { - #ifdef FULL_MOVEMENT - gl_FragColor = vec4( 1., 1., 1. - gl_FragCoord.z, 0. ); - return; - #endif - - vec2 pos0 = (prevPosition.xy / prevPosition.w) * 0.5 + 0.5; - vec2 pos1 = (newPosition.xy / newPosition.w) * 0.5 + 0.5; - - vec2 vel = pos1 - pos0; - - float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; - - gl_FragColor = vec4( vel, 1. - fragCoordZ, 0. ); - - }`, - }) - this.isVelocityMaterial = true - } - } - - const backgroundColor = /* @__PURE__ */ new Color(0) - const updateProperties = ['visible', 'wireframe', 'side'] - class VelocityPass extends Pass { - constructor(scene, camera) { - var _window, _window2 - - super('VelocityPass') - this.cachedMaterials = new WeakMap() - this.lastCameraTransform = { - position: new Vector3(), - quaternion: new Quaternion(), - } - this.visibleMeshes = [] - this.renderedMeshesThisFrame = 0 - this.renderedMeshesLastFrame = 0 - this._scene = scene - this._camera = camera - this.renderTarget = new WebGLRenderTarget( - ((_window = window) == null ? void 0 : _window.innerWidth) || 1000, - ((_window2 = window) == null ? void 0 : _window2.innerHeight) || 1000, - { - type: HalfFloatType, - } - ) - } - - setVelocityMaterialInScene() { - this.renderedMeshesThisFrame = 0 - this.visibleMeshes = getVisibleChildren(this._scene) - - for (const c of this.visibleMeshes) { - var _c$skeleton2 - - const originalMaterial = c.material - let [cachedOriginalMaterial, velocityMaterial] = this.cachedMaterials.get(c) || [] - - if (originalMaterial !== cachedOriginalMaterial) { - var _c$skeleton - - velocityMaterial = new VelocityMaterial() - velocityMaterial.lastMatrixWorld = new Matrix4() - c.material = velocityMaterial - if ((_c$skeleton = c.skeleton) != null && _c$skeleton.boneTexture) this.saveBoneTexture(c) - this.cachedMaterials.set(c, [originalMaterial, velocityMaterial]) - } - - velocityMaterial.uniforms.velocityMatrix.value.multiplyMatrices( - this._camera.projectionMatrix, - c.modelViewMatrix - ) - - if (c.userData.needsUpdatedReflections || originalMaterial.map instanceof VideoTexture) { - if (!('FULL_MOVEMENT' in velocityMaterial.defines)) velocityMaterial.needsUpdate = true - velocityMaterial.defines.FULL_MOVEMENT = '' - } else { - if ('FULL_MOVEMENT' in velocityMaterial.defines) { - delete velocityMaterial.defines.FULL_MOVEMENT - velocityMaterial.needsUpdate = true - } - } - - c.visible = - this.cameraMovedThisFrame || - !c.matrixWorld.equals(velocityMaterial.lastMatrixWorld) || - c.skeleton || - 'FULL_MOVEMENT' in velocityMaterial.defines - c.material = velocityMaterial - if (!c.visible) continue - this.renderedMeshesThisFrame++ - - for (const prop of updateProperties) velocityMaterial[prop] = originalMaterial[prop] - - if ((_c$skeleton2 = c.skeleton) != null && _c$skeleton2.boneTexture) { - velocityMaterial.defines.USE_SKINNING = '' - velocityMaterial.defines.BONE_TEXTURE = '' - velocityMaterial.uniforms.boneTexture.value = c.skeleton.boneTexture - } - } - } - - saveBoneTexture(object) { - let boneTexture = object.material.uniforms.prevBoneTexture.value - - if (boneTexture && boneTexture.image.width === object.skeleton.boneTexture.width) { - boneTexture = object.material.uniforms.prevBoneTexture.value - boneTexture.image.data.set(object.skeleton.boneTexture.image.data) - } else { - var _boneTexture - ;(_boneTexture = boneTexture) == null ? void 0 : _boneTexture.dispose() - const boneMatrices = object.skeleton.boneTexture.image.data.slice() - const size = object.skeleton.boneTexture.image.width - boneTexture = new DataTexture(boneMatrices, size, size, RGBAFormat, FloatType) - object.material.uniforms.prevBoneTexture.value = boneTexture - boneTexture.needsUpdate = true - } - } - - unsetVelocityMaterialInScene() { - for (const c of this.visibleMeshes) { - if (c.material.isVelocityMaterial) { - var _c$skeleton3 - - c.visible = true - c.material.lastMatrixWorld.copy(c.matrixWorld) - c.material.uniforms.prevVelocityMatrix.value.multiplyMatrices( - this._camera.projectionMatrix, - c.modelViewMatrix - ) - if ((_c$skeleton3 = c.skeleton) != null && _c$skeleton3.boneTexture) this.saveBoneTexture(c) - c.material = this.cachedMaterials.get(c)[0] - } - } - } - - setSize(width, height) { - this.renderTarget.setSize(width, height) - } - - renderVelocity(renderer) { - renderer.setRenderTarget(this.renderTarget) - - if (this.renderedMeshesThisFrame > 0) { - const { background } = this._scene - this._scene.background = backgroundColor - renderer.render(this._scene, this._camera) - this._scene.background = background - } else { - renderer.clearColor() - } - } - - checkCameraMoved() { - const moveDist = this.lastCameraTransform.position.distanceToSquared(this._camera.position) - const rotateDist = 8 * (1 - this.lastCameraTransform.quaternion.dot(this._camera.quaternion)) - - if (moveDist > 0.000001 || rotateDist > 0.000001) { - this.lastCameraTransform.position.copy(this._camera.position) - this.lastCameraTransform.quaternion.copy(this._camera.quaternion) - return true - } - - return false - } - - render(renderer) { - this.cameraMovedThisFrame = this.checkCameraMoved() - this.setVelocityMaterialInScene() - if (this.renderedMeshesThisFrame > 0 || this.renderedMeshesLastFrame > 0) this.renderVelocity(renderer) - this.unsetVelocityMaterialInScene() - this.renderedMeshesLastFrame = this.renderedMeshesThisFrame - } - } - - const zeroVec2 = /* @__PURE__ */ new Vector2() // the following variables can be accessed by the custom compose shader: - // "inputTexel", "accumulatedTexel", "inputColor", "accumulatedColor", "alpha", "velocityDisocclusion", "didReproject", "boxBlurredColor" (if using box blur) - // the custom compose shader will write the final color to the variable "outputColor" - - class TemporalResolvePass extends Pass { - constructor(scene, camera, customComposeShader, options = {}) { - super('TemporalResolvePass') - this.velocityPass = null - this.velocityResolutionScale = 1 - this.samples = 1 - this.lastCameraTransform = { - position: new Vector3(), - quaternion: new Quaternion(), - } - this._scene = scene - this._camera = camera - this.renderTarget = new WebGLRenderTarget(1, 1, { - minFilter: LinearFilter, - magFilter: LinearFilter, - type: HalfFloatType, - depthBuffer: false, - }) - this.velocityPass = new VelocityPass(scene, camera) - this.fullscreenMaterial = new TemporalResolveMaterial(customComposeShader) - this.fullscreenMaterial.defines.correctionRadius = options.correctionRadius || 1 - if (options.dilation) this.fullscreenMaterial.defines.dilation = '' - if (options.boxBlur) this.fullscreenMaterial.defines.boxBlur = '' - this.setupFramebuffers(1, 1) - this.checkCanUseSharedVelocityTexture() - } - - dispose() { - if (this._scene.userData.velocityTexture === this.velocityPass.renderTarget.texture) { - delete this._scene.userData.velocityTexture - delete this._scene.userData.lastVelocityTexture - } - - this.renderTarget.dispose() - this.accumulatedTexture.dispose() - this.fullscreenMaterial.dispose() - this.velocityPass.dispose() - } - - setSize(width, height) { - this.renderTarget.setSize(width, height) - this.velocityPass.setSize(width * this.velocityResolutionScale, height * this.velocityResolutionScale) - this.velocityPass.renderTarget.texture.minFilter = - this.velocityResolutionScale === 1 ? NearestFilter : LinearFilter - this.velocityPass.renderTarget.texture.magFilter = - this.velocityResolutionScale === 1 ? NearestFilter : LinearFilter - this.velocityPass.renderTarget.texture.needsUpdate = true - this.fullscreenMaterial.uniforms.invTexSize.value.set(1 / width, 1 / height) - this.setupFramebuffers(width, height) - } - - setupFramebuffers(width, height) { - if (this.accumulatedTexture) this.accumulatedTexture.dispose() - if (this.lastVelocityTexture) this.lastVelocityTexture.dispose() - this.accumulatedTexture = new FramebufferTexture(width, height, RGBAFormat) - this.accumulatedTexture.minFilter = LinearFilter - this.accumulatedTexture.magFilter = LinearFilter - this.accumulatedTexture.type = HalfFloatType - this.lastVelocityTexture = new FramebufferTexture( - width * this.velocityResolutionScale, - height * this.velocityResolutionScale, - RGBAFormat - ) - this.lastVelocityTexture.minFilter = this.velocityResolutionScale === 1 ? NearestFilter : LinearFilter - this.lastVelocityTexture.magFilter = this.velocityResolutionScale === 1 ? NearestFilter : LinearFilter - this.lastVelocityTexture.type = HalfFloatType - this.fullscreenMaterial.uniforms.accumulatedTexture.value = this.accumulatedTexture - this.fullscreenMaterial.uniforms.lastVelocityTexture.value = this.lastVelocityTexture - this.fullscreenMaterial.needsUpdate = true - } - - checkCanUseSharedVelocityTexture() { - const canUseSharedVelocityTexture = - this._scene.userData.velocityTexture && - this.velocityPass.renderTarget.texture !== this._scene.userData.velocityTexture - - if (canUseSharedVelocityTexture) { - // let's use the shared one instead - if (this.velocityPass.renderTarget.texture === this.fullscreenMaterial.uniforms.velocityTexture.value) { - this.fullscreenMaterial.uniforms.lastVelocityTexture.value = this._scene.userData.lastVelocityTexture - this.fullscreenMaterial.uniforms.velocityTexture.value = this._scene.userData.velocityTexture - this.fullscreenMaterial.needsUpdate = true - } - } else { - // let's stop using the shared one (if used) and mark ours as the shared one instead - if (this.velocityPass.renderTarget.texture !== this.fullscreenMaterial.uniforms.velocityTexture.value) { - this.fullscreenMaterial.uniforms.velocityTexture.value = this.velocityPass.renderTarget.texture - this.fullscreenMaterial.uniforms.lastVelocityTexture.value = this.lastVelocityTexture - this.fullscreenMaterial.needsUpdate = true - - if (!this._scene.userData.velocityTexture) { - this._scene.userData.velocityTexture = this.velocityPass.renderTarget.texture - this._scene.userData.lastVelocityTexture = this.lastVelocityTexture - } - } - } - - return this.velocityPass.renderTarget.texture !== this.fullscreenMaterial.uniforms.velocityTexture.value - } - - checkNeedsResample() { - const moveDist = this.lastCameraTransform.position.distanceToSquared(this._camera.position) - const rotateDist = 8 * (1 - this.lastCameraTransform.quaternion.dot(this._camera.quaternion)) - - if (moveDist > 0.000001 || rotateDist > 0.000001) { - this.samples = 1 - this.lastCameraTransform.position.copy(this._camera.position) - this.lastCameraTransform.quaternion.copy(this._camera.quaternion) - } - } - - render(renderer) { - this.samples++ - this.checkNeedsResample() - this.fullscreenMaterial.uniforms.samples.value = this.samples // const isUsingSharedVelocityTexture = this.checkCanUseSharedVelocityTexture() - // if (!isUsingSharedVelocityTexture) this.velocityPass.render(renderer) - - renderer.setRenderTarget(this.renderTarget) - renderer.render(this.scene, this.camera) // save the render target's texture for use in next frame - - if (Number(REVISION) >= 165) { - renderer.copyFramebufferToTexture(this.accumulatedTexture, zeroVec2) - renderer.setRenderTarget(this.velocityPass.renderTarget) - renderer.copyFramebufferToTexture(this.lastVelocityTexture, zeroVec2) - } else { - renderer.copyFramebufferToTexture(zeroVec2, this.accumulatedTexture) - renderer.setRenderTarget(this.velocityPass.renderTarget) - renderer.copyFramebufferToTexture(zeroVec2, this.accumulatedTexture) - } - } - } - - // source: https://observablehq.com/@jrus/halton - const halton = function halton(index, base) { - let fraction = 1 - let result = 0 - - while (index > 0) { - fraction /= base - result += fraction * (index % base) - index = ~~(index / base) // floor division - } - - return result - } // generates Halton tuples in the range [-0.5:0.5] - - const generateHalton23Points = (count) => { - const data = [] - let i = 1 - const end = i + count - - for (; i < end; i++) { - data.push([halton(i, 2) - 0.5, halton(i, 3) - 0.5]) - } - - return data - } - - /* eslint-disable camelcase */ - - function escapeRegExp(string) { - return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') // $& means the whole matched string - } // credits for the box-projecting shader code go to codercat (https://codercat.tk) - - const worldposReplace = - /* glsl */ - ` -#if defined( USE_ENVMAP ) || defined( ) || defined ( USE_SHADOWMAP ) - vec4 worldPosition = modelMatrix * vec4( transformed, 1.0 ); - - #ifdef BOX_PROJECTED_ENV_MAP - vWorldPosition = worldPosition.xyz; - #endif -#endif -` - const boxProjectDefinitions = - /* glsl */ - ` -#ifdef BOX_PROJECTED_ENV_MAP - uniform vec3 envMapSize; - uniform vec3 envMapPosition; - varying vec3 vWorldPosition; - - vec3 parallaxCorrectNormal( vec3 v, vec3 cubeSize, vec3 cubePos ) { - vec3 nDir = normalize( v ); - - vec3 rbmax = ( .5 * cubeSize + cubePos - vWorldPosition ) / nDir; - vec3 rbmin = ( -.5 * cubeSize + cubePos - vWorldPosition ) / nDir; - - vec3 rbminmax; - - rbminmax.x = ( nDir.x > 0. ) ? rbmax.x : rbmin.x; - rbminmax.y = ( nDir.y > 0. ) ? rbmax.y : rbmin.y; - rbminmax.z = ( nDir.z > 0. ) ? rbmax.z : rbmin.z; - - float correction = min( min( rbminmax.x, rbminmax.y ), rbminmax.z ); - vec3 boxIntersection = vWorldPosition + nDir * correction; - - return boxIntersection - cubePos; - } -#endif -` // will be inserted after "vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );" - - const getIBLIrradiance_patch = - /* glsl */ - ` -#ifdef BOX_PROJECTED_ENV_MAP - worldNormal = parallaxCorrectNormal( worldNormal, envMapSize, envMapPosition ); -#endif -` // will be inserted after "reflectVec = inverseTransformDirection( reflectVec, viewMatrix );" - - const getIBLRadiance_patch = - /* glsl */ - ` -#ifdef BOX_PROJECTED_ENV_MAP - reflectVec = parallaxCorrectNormal( reflectVec, envMapSize, envMapPosition ); -#endif -` - function useBoxProjectedEnvMap(shader, envMapPosition, envMapSize) { - // defines - shader.defines.BOX_PROJECTED_ENV_MAP = '' // uniforms - - shader.uniforms.envMapPosition = { - value: envMapPosition, - } - shader.uniforms.envMapSize = { - value: envMapSize, - } - const line1 = new RegExp( - escapeRegExp('vec3 worldNormal = inverseTransformDirection ( normal , viewMatrix ) ;').replaceAll(' ', '\\s*'), - 'g' - ) - const line2 = new RegExp( - escapeRegExp('reflectVec = inverseTransformDirection ( reflectVec , viewMatrix ) ;').replaceAll(' ', '\\s*'), - 'g' - ) // vertex shader - - shader.vertexShader = - 'varying vec3 vWorldPosition;\n' + shader.vertexShader.replace('#include ', worldposReplace) // fragment shader - - shader.fragmentShader = - boxProjectDefinitions + - '\n' + - shader.fragmentShader - .replace('#include ', ShaderChunk.envmap_physical_pars_fragment) - .replace( - line1, - `vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); - ${getIBLIrradiance_patch}` - ) - .replace( - line2, - `reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); - ${getIBLRadiance_patch}` - ) - } - - const noResetSamplesProperties = ['blur', 'blurSharpness', 'blurKernel'] - const defaultCubeRenderTarget = /* @__PURE__ */ new WebGLCubeRenderTarget(1) - let pmremGenerator - class SSREffect extends Effect { - /** - * @param {THREE.Scene} scene The scene of the SSR effect - * @param {THREE.Camera} camera The camera with which SSR is being rendered - * @param {SSROptions} [options] The optional options for the SSR effect - */ - constructor(scene, camera, options = defaultSSROptions) { - super('SSREffect', finalSSRShader, { - type: 'FinalSSRMaterial', - uniforms: new Map([ - ['reflectionsTexture', new Uniform(null)], - ['blur', new Uniform(0)], - ['blurSharpness', new Uniform(0)], - ['blurKernel', new Uniform(0)], - ]), - defines: new Map([['RENDER_MODE', '0']]), - }) - this.haltonSequence = generateHalton23Points(1024) - this.haltonIndex = 0 - this.selection = new Selection() - this.lastSize = void 0 - this.cubeCamera = new CubeCamera(0.001, 1000, defaultCubeRenderTarget) - this.usingBoxProjectedEnvMap = false - this._scene = scene - this._camera = camera - const trOptions = { - boxBlur: true, - dilation: true, - } - options = { ...defaultSSROptions, ...options, ...trOptions } // set up passes - // temporal resolve pass - - this.temporalResolvePass = new TemporalResolvePass(scene, camera, trCompose, options) - this.uniforms.get('reflectionsTexture').value = this.temporalResolvePass.renderTarget.texture // reflections pass - - this.reflectionsPass = new ReflectionsPass(this, options) - this.temporalResolvePass.fullscreenMaterial.uniforms.inputTexture.value = - this.reflectionsPass.renderTarget.texture - this.lastSize = { - width: options.width, - height: options.height, - resolutionScale: options.resolutionScale, - velocityResolutionScale: options.velocityResolutionScale, - } - this.setSize(options.width, options.height) - this.makeOptionsReactive(options) - } - - makeOptionsReactive(options) { - let needsUpdate = false - const reflectionPassFullscreenMaterialUniforms = this.reflectionsPass.fullscreenMaterial.uniforms - const reflectionPassFullscreenMaterialUniformsKeys = Object.keys(reflectionPassFullscreenMaterialUniforms) - - for (const key of Object.keys(options)) { - Object.defineProperty(this, key, { - get() { - return options[key] - }, - - set(value) { - if (options[key] === value && needsUpdate) return - options[key] = value - - if (!noResetSamplesProperties.includes(key)) { - this.setSize(this.lastSize.width, this.lastSize.height, true) - } - - switch (key) { - case 'resolutionScale': - this.setSize(this.lastSize.width, this.lastSize.height) - break - - case 'velocityResolutionScale': - this.temporalResolvePass.velocityResolutionScale = value - this.setSize(this.lastSize.width, this.lastSize.height, true) - break - - case 'blur': - this.uniforms.get('blur').value = value - break - - case 'blurSharpness': - this.uniforms.get('blurSharpness').value = value - break - - case 'blurKernel': - this.uniforms.get('blurKernel').value = value - break - // defines - - case 'steps': - this.reflectionsPass.fullscreenMaterial.defines.steps = parseInt(value) - this.reflectionsPass.fullscreenMaterial.needsUpdate = needsUpdate - break - - case 'refineSteps': - this.reflectionsPass.fullscreenMaterial.defines.refineSteps = parseInt(value) - this.reflectionsPass.fullscreenMaterial.needsUpdate = needsUpdate - break - - case 'missedRays': - if (value) { - this.reflectionsPass.fullscreenMaterial.defines.missedRays = '' - } else { - delete this.reflectionsPass.fullscreenMaterial.defines.missedRays - } - - this.reflectionsPass.fullscreenMaterial.needsUpdate = needsUpdate - break - - case 'correctionRadius': - this.temporalResolvePass.fullscreenMaterial.defines.correctionRadius = Math.round(value) - this.temporalResolvePass.fullscreenMaterial.needsUpdate = needsUpdate - break - - case 'blend': - this.temporalResolvePass.fullscreenMaterial.uniforms.blend.value = value - break - - case 'correction': - this.temporalResolvePass.fullscreenMaterial.uniforms.correction.value = value - break - - case 'exponent': - this.temporalResolvePass.fullscreenMaterial.uniforms.exponent.value = value - break - - case 'distance': - reflectionPassFullscreenMaterialUniforms.rayDistance.value = value - // must be a uniform - - default: - if (reflectionPassFullscreenMaterialUniformsKeys.includes(key)) { - reflectionPassFullscreenMaterialUniforms[key].value = value - } - } - }, - }) // apply all uniforms and defines - - this[key] = options[key] - } - - needsUpdate = true - } - - setSize(width, height, force = false) { - if ( - !force && - width === this.lastSize.width && - height === this.lastSize.height && - this.resolutionScale === this.lastSize.resolutionScale && - this.velocityResolutionScale === this.lastSize.velocityResolutionScale - ) - return - this.temporalResolvePass.setSize(width, height) - this.reflectionsPass.setSize(width, height) - this.lastSize = { - width, - height, - resolutionScale: this.resolutionScale, - velocityResolutionScale: this.velocityResolutionScale, - } - } - - generateBoxProjectedEnvMapFallback(renderer, position = new Vector3(), size = new Vector3(), envMapSize = 512) { - this.cubeCamera.renderTarget.dispose() - this.cubeCamera.renderTarget = new WebGLCubeRenderTarget(envMapSize) - this.cubeCamera.position.copy(position) - this.cubeCamera.updateMatrixWorld() - this.cubeCamera.update(renderer, this._scene) - - if (!pmremGenerator) { - pmremGenerator = new PMREMGenerator(renderer) - pmremGenerator.compileCubemapShader() - } - - const envMap = pmremGenerator.fromCubemap(this.cubeCamera.renderTarget.texture).texture - envMap.minFilter = LinearFilter - envMap.magFilter = LinearFilter - const reflectionsMaterial = this.reflectionsPass.fullscreenMaterial - // eslint-disable-next-line react-hooks/rules-of-hooks - useBoxProjectedEnvMap(reflectionsMaterial, position, size) - reflectionsMaterial.fragmentShader = reflectionsMaterial.fragmentShader - .replace('vec3 worldPos', 'worldPos') - .replace('varying vec3 vWorldPosition;', 'vec3 worldPos;') - reflectionsMaterial.uniforms.envMapPosition.value.copy(position) - reflectionsMaterial.uniforms.envMapSize.value.copy(size) - setupEnvMap(reflectionsMaterial, envMap, envMapSize) - this.usingBoxProjectedEnvMap = true - return envMap - } - - setIBLRadiance(iblRadiance, renderer) { - this._scene.traverse((c) => { - if (c.material) { - var _renderer$properties$ - - const uniforms = - (_renderer$properties$ = renderer.properties.get(c.material)) == null - ? void 0 - : _renderer$properties$.uniforms - - if (uniforms && 'disableIBLRadiance' in uniforms) { - uniforms.disableIBLRadiance.value = iblRadiance - } - } - }) - } - - deleteBoxProjectedEnvMapFallback() { - const reflectionsMaterial = this.reflectionsPass.fullscreenMaterial - reflectionsMaterial.uniforms.envMap.value = null - reflectionsMaterial.fragmentShader = reflectionsMaterial.fragmentShader.replace('worldPos = ', 'vec3 worldPos = ') - delete reflectionsMaterial.defines.BOX_PROJECTED_ENV_MAP - reflectionsMaterial.needsUpdate = true - this.usingBoxProjectedEnvMap = false - } - - dispose() { - super.dispose() - this.reflectionsPass.dispose() - this.temporalResolvePass.dispose() - } - - update(renderer, inputBuffer) { - if (!this.usingBoxProjectedEnvMap && this._scene.environment) { - const reflectionsMaterial = this.reflectionsPass.fullscreenMaterial - let envMap = null // not sure if there is a cleaner way to find the internal texture of a CubeTexture (when used as scene environment) - - this._scene.traverse((c) => { - if (!envMap && c.material && !c.material.envMap) { - const properties = renderer.properties.get(c.material) - if ('envMap' in properties && properties.envMap instanceof Texture) envMap = properties.envMap - } - }) - - if (envMap) { - const envMapCubeUVHeight = this._scene.environment.image.height - setupEnvMap(reflectionsMaterial, envMap, envMapCubeUVHeight) - } - } - - this.haltonIndex = (this.haltonIndex + 1) % this.haltonSequence.length - const [x, y] = this.haltonSequence[this.haltonIndex] - const { width, height } = this.lastSize - this.temporalResolvePass.velocityPass.render(renderer) // jittering the view offset each frame reduces aliasing for the reflection - - if (this._camera.setViewOffset) this._camera.setViewOffset(width, height, x, y, width, height) // render reflections of current frame - - this.reflectionsPass.render(renderer, inputBuffer) // compose reflection of last and current frame into one reflection - - this.temporalResolvePass.render(renderer) - - this._camera.clearViewOffset() - } - - static patchDirectEnvIntensity(envMapIntensity = 0) { - if (envMapIntensity === 0) { - ShaderChunk.envmap_physical_pars_fragment = ShaderChunk.envmap_physical_pars_fragment.replace( - 'vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {', - 'vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { return vec3(0.0);' - ) - } else { - ShaderChunk.envmap_physical_pars_fragment = ShaderChunk.envmap_physical_pars_fragment.replace( - 'vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );', - 'vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness ) * ' + envMapIntensity.toFixed(5) + ';' - ) - } - } - } - - return { SSREffect, defaultSSROptions } -})() - -export { SSREffect, defaultSSROptions } diff --git a/src/index.tsx b/src/index.tsx index d671590f..233fe4d6 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -36,5 +36,4 @@ export * from './effects/ASCII' export * from './effects/Water' // These are not effect passes -export * from './effects/SSR' export * from './effects/N8AO' From d422ccc042a8f570cdacaf4203c647b4fe4b9630 Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Fri, 17 Jan 2025 17:48:42 -0600 Subject: [PATCH 06/19] fix: drop forwardRef in wrapEffect (#317) --- src/util.tsx | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/util.tsx b/src/util.tsx index 3c5cf2c9..a19bd0f3 100644 --- a/src/util.tsx +++ b/src/util.tsx @@ -21,10 +21,7 @@ let i = 0 const components = new WeakMap | string>() export const wrapEffect = (effect: T, defaults?: EffectProps) => - /* @__PURE__ */ React.forwardRef>(function Effect( - { blendFunction = defaults?.blendFunction, opacity = defaults?.opacity, ...props }, - ref - ) { + /* @__PURE__ */ function Effect({ blendFunction = defaults?.blendFunction, opacity = defaults?.opacity, ...props }) { let Component = components.get(effect) if (!Component) { const key = `@react-three/postprocessing/${effect.name}-${i++}` @@ -45,11 +42,10 @@ export const wrapEffect = (effect: T, defaults?: Ef blendMode-blendFunction={blendFunction} blendMode-opacity-value={opacity} {...props} - ref={ref} args={args} /> ) - }) + } export const useVector2 = (props: Record, key: string): THREE.Vector2 => { const value = props[key] as ReactThreeFiber.Vector2 | undefined From 723cc023dc101e270dbce630af14e4c3eed1ce0c Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Sat, 18 Jan 2025 14:57:56 -0600 Subject: [PATCH 07/19] fix(types): make args optional in EffectProps --- src/effects/Bloom.tsx | 1 - src/effects/Noise.tsx | 2 +- src/effects/ScanlineEffect.tsx | 1 - src/effects/TiltShift.tsx | 2 +- src/effects/TiltShift2.tsx | 2 +- src/effects/Water.tsx | 1 - src/util.tsx | 10 ++++------ 7 files changed, 7 insertions(+), 12 deletions(-) diff --git a/src/effects/Bloom.tsx b/src/effects/Bloom.tsx index 62988784..56f5a217 100644 --- a/src/effects/Bloom.tsx +++ b/src/effects/Bloom.tsx @@ -3,5 +3,4 @@ import { wrapEffect } from '../util' export const Bloom = /* @__PURE__ */ wrapEffect(BloomEffect, { blendFunction: BlendFunction.ADD, - args: [], }) diff --git a/src/effects/Noise.tsx b/src/effects/Noise.tsx index ff838b96..aa23c3d2 100644 --- a/src/effects/Noise.tsx +++ b/src/effects/Noise.tsx @@ -1,4 +1,4 @@ import { NoiseEffect, BlendFunction } from 'postprocessing' import { wrapEffect } from '../util' -export const Noise = /* @__PURE__ */ wrapEffect(NoiseEffect, { blendFunction: BlendFunction.COLOR_DODGE, args: [] }) +export const Noise = /* @__PURE__ */ wrapEffect(NoiseEffect, { blendFunction: BlendFunction.COLOR_DODGE }) diff --git a/src/effects/ScanlineEffect.tsx b/src/effects/ScanlineEffect.tsx index e9eb93dc..e533b39d 100644 --- a/src/effects/ScanlineEffect.tsx +++ b/src/effects/ScanlineEffect.tsx @@ -4,5 +4,4 @@ import { wrapEffect } from '../util' export const Scanline = /* @__PURE__ */ wrapEffect(ScanlineEffect, { blendFunction: BlendFunction.OVERLAY, density: 1.25, - args: [], }) diff --git a/src/effects/TiltShift.tsx b/src/effects/TiltShift.tsx index 704f88de..5190c59f 100644 --- a/src/effects/TiltShift.tsx +++ b/src/effects/TiltShift.tsx @@ -1,4 +1,4 @@ import { TiltShiftEffect, BlendFunction } from 'postprocessing' import { wrapEffect } from '../util' -export const TiltShift = /* @__PURE__ */ wrapEffect(TiltShiftEffect, { blendFunction: BlendFunction.ADD, args: [] }) +export const TiltShift = /* @__PURE__ */ wrapEffect(TiltShiftEffect, { blendFunction: BlendFunction.ADD }) diff --git a/src/effects/TiltShift2.tsx b/src/effects/TiltShift2.tsx index f0dba0bf..b1cd9425 100644 --- a/src/effects/TiltShift2.tsx +++ b/src/effects/TiltShift2.tsx @@ -87,4 +87,4 @@ export class TiltShiftEffect extends Effect { } } -export const TiltShift2 = /* @__PURE__ */ wrapEffect(TiltShiftEffect, { blendFunction: BlendFunction.NORMAL, args: [] }) +export const TiltShift2 = /* @__PURE__ */ wrapEffect(TiltShiftEffect, { blendFunction: BlendFunction.NORMAL }) diff --git a/src/effects/Water.tsx b/src/effects/Water.tsx index e0a8998c..837312ad 100644 --- a/src/effects/Water.tsx +++ b/src/effects/Water.tsx @@ -32,5 +32,4 @@ export class WaterEffectImpl extends Effect { export const WaterEffect = /* @__PURE__ */ wrapEffect(WaterEffectImpl, { blendFunction: BlendFunction.NORMAL, - args: [], }) diff --git a/src/util.tsx b/src/util.tsx index a19bd0f3..accf7d17 100644 --- a/src/util.tsx +++ b/src/util.tsx @@ -2,16 +2,14 @@ import React, { RefObject } from 'react' import { Vector2 } from 'three' import * as THREE from 'three' import { type ReactThreeFiber, type ThreeElement, extend, useThree } from '@react-three/fiber' -import type { Effect, BlendFunction } from 'postprocessing' +import type { Effect, Pass, BlendFunction } from 'postprocessing' export const resolveRef = (ref: T | React.RefObject) => typeof ref === 'object' && ref != null && 'current' in ref ? ref.current : ref -export type EffectConstructor = new (...args: any[]) => Effect +export type EffectConstructor = new (...args: any[]) => Effect | Pass -export type EffectProps = ThreeElement< - T extends Function ? T['prototype'] : InstanceType -> & +export type EffectProps = ThreeElement & ConstructorParameters[0] & { blendFunction?: BlendFunction opacity?: number @@ -31,7 +29,7 @@ export const wrapEffect = (effect: T, defaults?: Ef const camera = useThree((state) => state.camera) const args = React.useMemo( - () => [...((defaults?.args ?? []) as any[]), ...((props.args ?? [{ ...defaults, ...props }]) as any[])], + () => [...(defaults?.args ?? []), ...(props.args ?? [{ ...defaults, ...props }])], // eslint-disable-next-line react-hooks/exhaustive-deps [JSON.stringify(props)] ) From 732bd89a1e94ce18b73031e72dc151276198f42d Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Sat, 18 Jan 2025 15:01:24 -0600 Subject: [PATCH 08/19] fix!: publish as ESM-only, upstream N8AO (#313) --- package.json | 39 +- src/EffectComposer.test.tsx | 3 - src/compat.js | 81 --- src/effects/Autofocus.tsx | 4 +- src/effects/Bloom.tsx | 2 +- src/effects/BrightnessContrast.tsx | 2 +- src/effects/ChromaticAberration.tsx | 2 +- src/effects/ColorDepth.tsx | 2 +- src/effects/Depth.tsx | 2 +- src/effects/DepthOfField.tsx | 2 +- src/effects/DotScreen.tsx | 2 +- src/effects/FXAA.tsx | 2 +- src/effects/Glitch.tsx | 2 +- src/effects/GodRays.tsx | 2 +- src/effects/HueSaturation.tsx | 2 +- src/effects/LensFlare.tsx | 2 +- src/effects/{N8AO/index.tsx => N8AO.tsx} | 4 +- src/effects/N8AO/BlueNoise.js | 1 - src/effects/N8AO/DepthDownSample.js | 160 ------ src/effects/N8AO/EffectCompositer.js | 259 ---------- src/effects/N8AO/EffectShader.js | 213 -------- src/effects/N8AO/FullScreenTriangle.js | 40 -- src/effects/N8AO/N8AOPostPass.js | 561 --------------------- src/effects/N8AO/PoissionBlur.js | 163 ------ src/effects/Noise.tsx | 2 +- src/effects/Outline.tsx | 6 +- src/effects/SMAA.tsx | 2 +- src/effects/SSAO.tsx | 2 +- src/effects/ScanlineEffect.tsx | 2 +- src/effects/SelectiveBloom.tsx | 6 +- src/effects/Sepia.tsx | 2 +- src/effects/ShockWave.tsx | 2 +- src/effects/TiltShift.tsx | 2 +- src/effects/TiltShift2.tsx | 2 +- src/effects/ToneMapping.tsx | 2 +- src/effects/Vignette.tsx | 2 +- src/effects/Water.tsx | 2 +- src/index.ts | 39 ++ src/index.tsx | 39 -- tsconfig.json | 35 +- vite.config.ts | 52 +- yarn.lock | 603 +---------------------- 42 files changed, 156 insertions(+), 2198 deletions(-) delete mode 100644 src/compat.js rename src/effects/{N8AO/index.tsx => N8AO.tsx} (96%) delete mode 100644 src/effects/N8AO/BlueNoise.js delete mode 100644 src/effects/N8AO/DepthDownSample.js delete mode 100644 src/effects/N8AO/EffectCompositer.js delete mode 100644 src/effects/N8AO/EffectShader.js delete mode 100644 src/effects/N8AO/FullScreenTriangle.js delete mode 100644 src/effects/N8AO/N8AOPostPass.js delete mode 100644 src/effects/N8AO/PoissionBlur.js create mode 100644 src/index.ts delete mode 100644 src/index.tsx diff --git a/package.json b/package.json index 79f76afd..87c75cb9 100644 --- a/package.json +++ b/package.json @@ -11,47 +11,33 @@ "3d" ], "license": "MIT", - "type": "module", - "main": "./dist/index.cjs", - "module": "./dist/index.js", - "exports": { - "types": "./dist/index.d.ts", - "require": "./dist/index.cjs", - "import": "./dist/index.js" - }, - "types": "./dist/index.d.ts", - "sideEffects": false, "files": [ - "dist" + "dist/*", + "src/*" ], + "type": "module", + "main": "./dist/index.js", + "exports": "./dist/index.js", + "sideEffects": false, "repository": { "type": "git", "url": "git+https://github.com/pmndrs/react-postprocessing.git" }, - "lint-staged": { - "*.{js,jsx,ts,tsx}": [ - "eslint --fix" - ] - }, "scripts": { - "prebuild": "rimraf dist", - "build": "vite build && tsc --emitDeclarationOnly", - "prepare": "yarn build", + "build": "vite build", "eslint": "eslint . --fix --ext=js,ts,jsx,tsx", "eslint:ci": "eslint . --ext=js,ts,jsx,tsx", "test": "vitest run", - "typecheck": "tsc --noEmit false --strict --jsx react", + "typecheck": "tsc", "release": "semantic-release" }, "dependencies": { - "buffer": "^6.0.3", "maath": "^0.6.0", - "n8ao": "^1.6.6", - "postprocessing": "^6.32.1", + "n8ao": "^1.9.4", + "postprocessing": "^6.36.6", "three-stdlib": "^2.35.7" }, "devDependencies": { - "@react-three/drei": "^9.68.2", "@react-three/fiber": "9.0.0-rc.4", "@types/node": "^22.10.7", "@types/react": "^19.0.2", @@ -66,12 +52,9 @@ "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0", - "husky": "^8.0.3", - "lint-staged": "^13.2.2", "prettier": "^2.8.8", "react": "^19.0.0", "react-dom": "^19.0.0", - "rimraf": "^5.0.0", "semantic-release": "^21.0.2", "three": "^0.156.0", "typescript": "^5.0.4", @@ -80,7 +63,7 @@ }, "peerDependencies": { "@react-three/fiber": "9.0.0-rc.4", - "react": ">=19.0", + "react": "^19.0", "three": ">= 0.156.0" } } diff --git a/src/EffectComposer.test.tsx b/src/EffectComposer.test.tsx index 8cef8c52..2256a844 100644 --- a/src/EffectComposer.test.tsx +++ b/src/EffectComposer.test.tsx @@ -11,9 +11,6 @@ declare global { } global.IS_REACT_ACT_ENVIRONMENT = true -// Mock scheduler to test React features -vi.mock('scheduler', () => require('scheduler/unstable_mock')) - // Create virtual R3F root for testing extend(THREE as any) const root = createRoot({ diff --git a/src/compat.js b/src/compat.js deleted file mode 100644 index 2307f368..00000000 --- a/src/compat.js +++ /dev/null @@ -1,81 +0,0 @@ -import * as THREE from 'three' - -const version = /* @__PURE__ */ (() => parseInt(THREE.REVISION.replace(/\D+/g, '')))() - -// NOTE: WebGLMultipleRenderTargets is removed since r172, so we implement it ourselves. -// https://github.com/mrdoob/three.js/pull/26427 -export const WebGLMultipleRenderTargets = - version >= 162 - ? class extends THREE.WebGLRenderTarget { - constructor(width = 1, height = 1, count = 1, options = {}) { - super(width, height, { ...options, count }) - - this.isWebGLMultipleRenderTargets = true - } - - get texture() { - return this.textures - } - } - : class extends THREE.WebGLRenderTarget { - constructor(width = 1, height = 1, count = 1, options = {}) { - super(width, height, options) - - this.isWebGLMultipleRenderTargets = true - - const texture = this.texture - - this.texture = [] - - for (let i = 0; i < count; i++) { - this.texture[i] = texture.clone() - this.texture[i].isRenderTargetTexture = true - } - } - - setSize(width, height, depth = 1) { - if (this.width !== width || this.height !== height || this.depth !== depth) { - this.width = width - this.height = height - this.depth = depth - - for (let i = 0, il = this.texture.length; i < il; i++) { - this.texture[i].image.width = width - this.texture[i].image.height = height - this.texture[i].image.depth = depth - } - - this.dispose() - } - - this.viewport.set(0, 0, width, height) - this.scissor.set(0, 0, width, height) - } - - copy(source) { - this.dispose() - - this.width = source.width - this.height = source.height - this.depth = source.depth - - this.scissor.copy(source.scissor) - this.scissorTest = source.scissorTest - - this.viewport.copy(source.viewport) - - this.depthBuffer = source.depthBuffer - this.stencilBuffer = source.stencilBuffer - - if (source.depthTexture !== null) this.depthTexture = source.depthTexture.clone() - - this.texture.length = 0 - - for (let i = 0, il = source.texture.length; i < il; i++) { - this.texture[i] = source.texture[i].clone() - this.texture[i].isRenderTargetTexture = true - } - - return this - } - } diff --git a/src/effects/Autofocus.tsx b/src/effects/Autofocus.tsx index 6cbecef0..271ae7f3 100644 --- a/src/effects/Autofocus.tsx +++ b/src/effects/Autofocus.tsx @@ -14,8 +14,8 @@ import { useThree, useFrame, createPortal, type Vector3 } from '@react-three/fib import { CopyPass, DepthPickingPass, DepthOfFieldEffect } from 'postprocessing' import { easing } from 'maath' -import { DepthOfField } from './DepthOfField' -import { EffectComposerContext } from '../EffectComposer' +import { DepthOfField } from './DepthOfField.tsx' +import { EffectComposerContext } from '../EffectComposer.tsx' export type AutofocusProps = React.ComponentProps & { target?: Vector3 diff --git a/src/effects/Bloom.tsx b/src/effects/Bloom.tsx index 56f5a217..161b0e5c 100644 --- a/src/effects/Bloom.tsx +++ b/src/effects/Bloom.tsx @@ -1,5 +1,5 @@ import { BloomEffect, BlendFunction } from 'postprocessing' -import { wrapEffect } from '../util' +import { wrapEffect } from '../util.tsx' export const Bloom = /* @__PURE__ */ wrapEffect(BloomEffect, { blendFunction: BlendFunction.ADD, diff --git a/src/effects/BrightnessContrast.tsx b/src/effects/BrightnessContrast.tsx index d14855c6..6825607e 100644 --- a/src/effects/BrightnessContrast.tsx +++ b/src/effects/BrightnessContrast.tsx @@ -1,4 +1,4 @@ import { BrightnessContrastEffect } from 'postprocessing' -import { wrapEffect } from '../util' +import { wrapEffect } from '../util.tsx' export const BrightnessContrast = /* @__PURE__ */ wrapEffect(BrightnessContrastEffect) diff --git a/src/effects/ChromaticAberration.tsx b/src/effects/ChromaticAberration.tsx index 5944ffad..1f9b6ac2 100644 --- a/src/effects/ChromaticAberration.tsx +++ b/src/effects/ChromaticAberration.tsx @@ -1,5 +1,5 @@ import { ChromaticAberrationEffect } from 'postprocessing' -import { type EffectProps, wrapEffect } from '../util' +import { type EffectProps, wrapEffect } from '../util.tsx' export type ChromaticAberrationProps = EffectProps export const ChromaticAberration = /* @__PURE__ */ wrapEffect(ChromaticAberrationEffect) diff --git a/src/effects/ColorDepth.tsx b/src/effects/ColorDepth.tsx index 70a95d2c..a810898f 100644 --- a/src/effects/ColorDepth.tsx +++ b/src/effects/ColorDepth.tsx @@ -1,4 +1,4 @@ import { ColorDepthEffect } from 'postprocessing' -import { wrapEffect } from '../util' +import { wrapEffect } from '../util.tsx' export const ColorDepth = /* @__PURE__ */ wrapEffect(ColorDepthEffect) diff --git a/src/effects/Depth.tsx b/src/effects/Depth.tsx index 0d99563f..68f9f110 100644 --- a/src/effects/Depth.tsx +++ b/src/effects/Depth.tsx @@ -1,4 +1,4 @@ import { DepthEffect } from 'postprocessing' -import { wrapEffect } from '../util' +import { wrapEffect } from '../util.tsx' export const Depth = /* @__PURE__ */ wrapEffect(DepthEffect) diff --git a/src/effects/DepthOfField.tsx b/src/effects/DepthOfField.tsx index e4dd8525..74ad4339 100644 --- a/src/effects/DepthOfField.tsx +++ b/src/effects/DepthOfField.tsx @@ -2,7 +2,7 @@ import { DepthOfFieldEffect, MaskFunction } from 'postprocessing' import { Ref, forwardRef, useMemo, useEffect, useContext } from 'react' import { ReactThreeFiber } from '@react-three/fiber' import { type DepthPackingStrategies, type Texture, Vector3 } from 'three' -import { EffectComposerContext } from '../EffectComposer' +import { EffectComposerContext } from '../EffectComposer.tsx' type DOFProps = ConstructorParameters[1] & Partial<{ diff --git a/src/effects/DotScreen.tsx b/src/effects/DotScreen.tsx index a7647ab5..2c60bf19 100644 --- a/src/effects/DotScreen.tsx +++ b/src/effects/DotScreen.tsx @@ -1,4 +1,4 @@ import { DotScreenEffect } from 'postprocessing' -import { wrapEffect } from '../util' +import { wrapEffect } from '../util.tsx' export const DotScreen = /* @__PURE__ */ wrapEffect(DotScreenEffect) diff --git a/src/effects/FXAA.tsx b/src/effects/FXAA.tsx index 00659605..9e82310e 100644 --- a/src/effects/FXAA.tsx +++ b/src/effects/FXAA.tsx @@ -1,4 +1,4 @@ import { FXAAEffect } from 'postprocessing' -import { wrapEffect } from '../util' +import { wrapEffect } from '../util.tsx' export const FXAA = /* @__PURE__ */ wrapEffect(FXAAEffect) diff --git a/src/effects/Glitch.tsx b/src/effects/Glitch.tsx index 2ff7cb20..dfc79237 100644 --- a/src/effects/Glitch.tsx +++ b/src/effects/Glitch.tsx @@ -2,7 +2,7 @@ import { Vector2 } from 'three' import { GlitchEffect, GlitchMode } from 'postprocessing' import { Ref, forwardRef, useMemo, useLayoutEffect, useEffect } from 'react' import { ReactThreeFiber, useThree } from '@react-three/fiber' -import { useVector2 } from '../util' +import { useVector2 } from '../util.tsx' export type GlitchProps = ConstructorParameters[0] & Partial<{ diff --git a/src/effects/GodRays.tsx b/src/effects/GodRays.tsx index 8f1db2ad..8a4a8942 100644 --- a/src/effects/GodRays.tsx +++ b/src/effects/GodRays.tsx @@ -2,7 +2,7 @@ import { GodRaysEffect } from 'postprocessing' import React, { Ref, forwardRef, useMemo, useContext, useLayoutEffect } from 'react' import { Mesh, Points } from 'three' import { EffectComposerContext } from '../EffectComposer' -import { resolveRef } from '../util' +import { resolveRef } from '../util.tsx' type GodRaysProps = ConstructorParameters[2] & { sun: Mesh | Points | React.RefObject diff --git a/src/effects/HueSaturation.tsx b/src/effects/HueSaturation.tsx index a3a3f61c..4691fe6f 100644 --- a/src/effects/HueSaturation.tsx +++ b/src/effects/HueSaturation.tsx @@ -1,4 +1,4 @@ import { HueSaturationEffect } from 'postprocessing' -import { wrapEffect } from '../util' +import { wrapEffect } from '../util.tsx' export const HueSaturation = /* @__PURE__ */ wrapEffect(HueSaturationEffect) diff --git a/src/effects/LensFlare.tsx b/src/effects/LensFlare.tsx index 63b386fc..4e627205 100644 --- a/src/effects/LensFlare.tsx +++ b/src/effects/LensFlare.tsx @@ -8,7 +8,7 @@ import { useFrame, useThree } from '@react-three/fiber' import { BlendFunction, Effect } from 'postprocessing' import { easing } from 'maath' -import { EffectComposerContext } from '../EffectComposer' +import { EffectComposerContext } from '../EffectComposer.tsx' const LensFlareShader = { fragmentShader: /* glsl */ ` diff --git a/src/effects/N8AO/index.tsx b/src/effects/N8AO.tsx similarity index 96% rename from src/effects/N8AO/index.tsx rename to src/effects/N8AO.tsx index 1ddbf2f7..1d861289 100644 --- a/src/effects/N8AO/index.tsx +++ b/src/effects/N8AO.tsx @@ -3,10 +3,10 @@ import { Ref, forwardRef, useLayoutEffect, useMemo } from 'react' /* @ts-ignore */ -import { N8AOPostPass } from './N8AOPostPass' +import { N8AOPostPass } from 'n8ao' import { useThree, ReactThreeFiber, applyProps } from '@react-three/fiber' -type N8AOProps = { +export type N8AOProps = { aoRadius?: number distanceFalloff?: number intensity?: number diff --git a/src/effects/N8AO/BlueNoise.js b/src/effects/N8AO/BlueNoise.js deleted file mode 100644 index 3ea2a34b..00000000 --- a/src/effects/N8AO/BlueNoise.js +++ /dev/null @@ -1 +0,0 @@ -export default `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` diff --git a/src/effects/N8AO/DepthDownSample.js b/src/effects/N8AO/DepthDownSample.js deleted file mode 100644 index 57f2d97a..00000000 --- a/src/effects/N8AO/DepthDownSample.js +++ /dev/null @@ -1,160 +0,0 @@ -import * as THREE from 'three' - -const DepthDownSample = { - uniforms: { - sceneDepth: { value: null }, - resolution: { value: /* @__PURE__ */ new THREE.Vector2() }, - near: { value: 0.1 }, - far: { value: 1000.0 }, - viewMatrixInv: { value: /* @__PURE__ */ new THREE.Matrix4() }, - projectionMatrixInv: { value: /* @__PURE__ */ new THREE.Matrix4() }, - logDepth: { value: false }, - }, - depthWrite: false, - depthTest: false, - - vertexShader: /* glsl */ ` - varying vec2 vUv; - void main() { - vUv = uv; - gl_Position = vec4(position, 1); - }`, - fragmentShader: /* glsl */ ` - uniform highp sampler2D sceneDepth; - uniform vec2 resolution; - uniform float near; - uniform float far; - uniform bool logDepth; - uniform mat4 viewMatrixInv; - uniform mat4 projectionMatrixInv; - varying vec2 vUv; - layout(location = 1) out vec4 gNormal; - vec3 getWorldPosLog(vec3 posS) { - vec2 uv = posS.xy; - float z = posS.z; - float nearZ =near; - float farZ = far; - float depth = pow(2.0, z * log2(farZ + 1.0)) - 1.0; - float a = farZ / (farZ - nearZ); - float b = farZ * nearZ / (nearZ - farZ); - float linDepth = a + b / depth; - vec4 clipVec = vec4(uv, linDepth, 1.0) * 2.0 - 1.0; - vec4 wpos = projectionMatrixInv * clipVec; - return wpos.xyz / wpos.w; - } - vec3 getWorldPos(float depth, vec2 coord) { - if (logDepth) { - return getWorldPosLog(vec3(coord, depth)); - } - float z = depth * 2.0 - 1.0; - vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0); - vec4 viewSpacePosition = projectionMatrixInv * clipSpacePosition; - // Perspective division - vec4 worldSpacePosition = viewSpacePosition; - worldSpacePosition.xyz /= worldSpacePosition.w; - return worldSpacePosition.xyz; - } - - vec3 computeNormal(vec3 worldPos, vec2 vUv) { - ivec2 p = ivec2(vUv * resolution); - float c0 = texelFetch(sceneDepth, p, 0).x; - float l2 = texelFetch(sceneDepth, p - ivec2(2, 0), 0).x; - float l1 = texelFetch(sceneDepth, p - ivec2(1, 0), 0).x; - float r1 = texelFetch(sceneDepth, p + ivec2(1, 0), 0).x; - float r2 = texelFetch(sceneDepth, p + ivec2(2, 0), 0).x; - float b2 = texelFetch(sceneDepth, p - ivec2(0, 2), 0).x; - float b1 = texelFetch(sceneDepth, p - ivec2(0, 1), 0).x; - float t1 = texelFetch(sceneDepth, p + ivec2(0, 1), 0).x; - float t2 = texelFetch(sceneDepth, p + ivec2(0, 2), 0).x; - - float dl = abs((2.0 * l1 - l2) - c0); - float dr = abs((2.0 * r1 - r2) - c0); - float db = abs((2.0 * b1 - b2) - c0); - float dt = abs((2.0 * t1 - t2) - c0); - - vec3 ce = getWorldPos(c0, vUv).xyz; - - vec3 dpdx = (dl < dr) ? ce - getWorldPos(l1, (vUv - vec2(1.0 / resolution.x, 0.0))).xyz - : -ce + getWorldPos(r1, (vUv + vec2(1.0 / resolution.x, 0.0))).xyz; - vec3 dpdy = (db < dt) ? ce - getWorldPos(b1, (vUv - vec2(0.0, 1.0 / resolution.y))).xyz - : -ce + getWorldPos(t1, (vUv + vec2(0.0, 1.0 / resolution.y))).xyz; - - return normalize(cross(dpdx, dpdy)); - } - void main() { - vec2 uv = vUv - vec2(0.5) / resolution; - vec2 pixelSize = vec2(1.0) / resolution; - vec2[] uvSamples = vec2[4]( - uv, - uv + vec2(pixelSize.x, 0.0), - uv + vec2(0.0, pixelSize.y), - uv + pixelSize - ); - float depth00 = texture2D(sceneDepth, uvSamples[0]).r; - float depth10 = texture2D(sceneDepth, uvSamples[1]).r; - float depth01 = texture2D(sceneDepth, uvSamples[2]).r; - float depth11 = texture2D(sceneDepth, uvSamples[3]).r; - float minDepth = min(min(depth00, depth10), min(depth01, depth11)); - float maxDepth = max(max(depth00, depth10), max(depth01, depth11)); - float targetDepth = minDepth; - // Checkerboard pattern to avoid artifacts - if (mod(gl_FragCoord.x + gl_FragCoord.y, 2.0) > 0.5) { - targetDepth = maxDepth; - } - int chosenIndex = 0; - float[] samples = float[4](depth00, depth10, depth01, depth11); - for(int i = 0; i < 4; ++i) { - if (samples[i] == targetDepth) { - chosenIndex = i; - break; - } - } - gl_FragColor = vec4(samples[chosenIndex], 0.0, 0.0, 1.0); - gNormal = vec4(computeNormal( - getWorldPos(samples[chosenIndex], uvSamples[chosenIndex]), uvSamples[chosenIndex] - ), 0.0); - /* float[] samples = float[4](depth00, depth10, depth01, depth11); - float c = 0.25 * (depth00 + depth10 + depth01 + depth11); - float[] distances = float[4](depth00, depth10, depth01, depth11); - float maxDistance = max(max(distances[0], distances[1]), max(distances[2], distances[3])); - - int remaining[3]; - int rejected[3]; - int i, j, k; - - for(i = 0, j = 0, k = 0; i < 4; ++i) { - if (distances[i] < maxDistance) { - remaining[j++] = i; - } else { - rejected[k++] = i; - } - } - for(;j < 3;++j) { - remaining[j] = rejected[--k]; - } - vec3 s = vec3( - samples[remaining[0]], - samples[remaining[1]], - samples[remaining[2]] - ); - c = (s.x + s.y + s.z) / 3.0; - - distances[0] = abs(c - s.x); - distances[1] = abs(c - s.y); - distances[2] = abs(c - s.z); - - float minDistance = min(min(distances[0], distances[1]), distances[2]); - - for(i = 0; i < 3; ++i) { - if (distances[i] == minDistance) { - break; - } - }*/ - /* gl_FragColor = vec4(samples[remaining[i]], 0.0, 0.0, 0.0); - gNormal = vec4(computeNormal( - getWorldPos(samples[remaining[i]], uvSamples[remaining[i]]), uvSamples[remaining[i]] - ), 0.0);*/ - }`, -} - -export { DepthDownSample } diff --git a/src/effects/N8AO/EffectCompositer.js b/src/effects/N8AO/EffectCompositer.js deleted file mode 100644 index 49050360..00000000 --- a/src/effects/N8AO/EffectCompositer.js +++ /dev/null @@ -1,259 +0,0 @@ -import * as THREE from 'three' - -const version = /* @__PURE__ */ (() => parseInt(THREE.REVISION.replace(/\D+/g, '')))() - -// https://github.com/mrdoob/three.js/pull/26644 -// https://github.com/mrdoob/three.js/pull/28901 -const sRGBTransferOETF = version >= 167 ? 'sRGBTransferOETF' : 'LinearTosRGB' - -const EffectCompositer = { - uniforms: { - sceneDiffuse: { value: null }, - sceneDepth: { value: null }, - tDiffuse: { value: null }, - projMat: { value: /* @__PURE__ */ new THREE.Matrix4() }, - viewMat: { value: /* @__PURE__ */ new THREE.Matrix4() }, - projectionMatrixInv: { value: /* @__PURE__ */ new THREE.Matrix4() }, - viewMatrixInv: { value: /* @__PURE__ */ new THREE.Matrix4() }, - cameraPos: { value: /* @__PURE__ */ new THREE.Vector3() }, - resolution: { value: /* @__PURE__ */ new THREE.Vector2() }, - color: { value: /* @__PURE__ */ new THREE.Vector3(0, 0, 0) }, - blueNoise: { value: null }, - downsampledDepth: { value: null }, - time: { value: 0.0 }, - intensity: { value: 10.0 }, - renderMode: { value: 0.0 }, - gammaCorrection: { value: false }, - logDepth: { value: false }, - ortho: { value: false }, - near: { value: 0.1 }, - far: { value: 1000.0 }, - screenSpaceRadius: { value: false }, - radius: { value: 0.0 }, - distanceFalloff: { value: 1.0 }, - fog: { value: false }, - fogExp: { value: false }, - fogDensity: { value: 0.0 }, - fogNear: { value: Infinity }, - fogFar: { value: Infinity }, - colorMultiply: { value: true }, - }, - depthWrite: false, - depthTest: false, - - vertexShader: /* glsl */ ` - varying vec2 vUv; - void main() { - vUv = uv; - gl_Position = vec4(position, 1); - }`, - fragmentShader: /* glsl */ ` - uniform sampler2D sceneDiffuse; - uniform highp sampler2D sceneDepth; - uniform highp sampler2D downsampledDepth; - uniform sampler2D tDiffuse; - uniform sampler2D blueNoise; - uniform vec2 resolution; - uniform vec3 color; - uniform mat4 projectionMatrixInv; - uniform mat4 viewMatrixInv; - uniform float intensity; - uniform float renderMode; - uniform float near; - uniform float far; - uniform bool gammaCorrection; - uniform bool logDepth; - uniform bool ortho; - uniform bool screenSpaceRadius; - uniform bool fog; - uniform bool fogExp; - uniform bool colorMultiply; - uniform float fogDensity; - uniform float fogNear; - uniform float fogFar; - uniform float radius; - uniform float distanceFalloff; - uniform vec3 cameraPos; - varying vec2 vUv; - highp float linearize_depth(highp float d, highp float zNear,highp float zFar) - { - return (zFar * zNear) / (zFar - d * (zFar - zNear)); - } - highp float linearize_depth_ortho(highp float d, highp float nearZ, highp float farZ) { - return nearZ + (farZ - nearZ) * d; - } - highp float linearize_depth_log(highp float d, highp float nearZ,highp float farZ) { - float depth = pow(2.0, d * log2(farZ + 1.0)) - 1.0; - float a = farZ / (farZ - nearZ); - float b = farZ * nearZ / (nearZ - farZ); - float linDepth = a + b / depth; - return ortho ? linearize_depth_ortho( - linDepth, - nearZ, - farZ - ) :linearize_depth(linDepth, nearZ, farZ); - } - vec3 getWorldPosLog(vec3 posS) { - vec2 uv = posS.xy; - float z = posS.z; - float nearZ =near; - float farZ = far; - float depth = pow(2.0, z * log2(farZ + 1.0)) - 1.0; - float a = farZ / (farZ - nearZ); - float b = farZ * nearZ / (nearZ - farZ); - float linDepth = a + b / depth; - vec4 clipVec = vec4(uv, linDepth, 1.0) * 2.0 - 1.0; - vec4 wpos = projectionMatrixInv * clipVec; - return wpos.xyz / wpos.w; - } - vec3 getWorldPos(float depth, vec2 coord) { - // if (logDepth) { - #ifdef LOGDEPTH - return getWorldPosLog(vec3(coord, depth)); - #endif - // } - float z = depth * 2.0 - 1.0; - vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0); - vec4 viewSpacePosition = projectionMatrixInv * clipSpacePosition; - // Perspective division - vec4 worldSpacePosition = viewSpacePosition; - worldSpacePosition.xyz /= worldSpacePosition.w; - return worldSpacePosition.xyz; - } - - vec3 computeNormal(vec3 worldPos, vec2 vUv) { - ivec2 p = ivec2(vUv * resolution); - float c0 = texelFetch(sceneDepth, p, 0).x; - float l2 = texelFetch(sceneDepth, p - ivec2(2, 0), 0).x; - float l1 = texelFetch(sceneDepth, p - ivec2(1, 0), 0).x; - float r1 = texelFetch(sceneDepth, p + ivec2(1, 0), 0).x; - float r2 = texelFetch(sceneDepth, p + ivec2(2, 0), 0).x; - float b2 = texelFetch(sceneDepth, p - ivec2(0, 2), 0).x; - float b1 = texelFetch(sceneDepth, p - ivec2(0, 1), 0).x; - float t1 = texelFetch(sceneDepth, p + ivec2(0, 1), 0).x; - float t2 = texelFetch(sceneDepth, p + ivec2(0, 2), 0).x; - - float dl = abs((2.0 * l1 - l2) - c0); - float dr = abs((2.0 * r1 - r2) - c0); - float db = abs((2.0 * b1 - b2) - c0); - float dt = abs((2.0 * t1 - t2) - c0); - - vec3 ce = getWorldPos(c0, vUv).xyz; - - vec3 dpdx = (dl < dr) ? ce - getWorldPos(l1, (vUv - vec2(1.0 / resolution.x, 0.0))).xyz - : -ce + getWorldPos(r1, (vUv + vec2(1.0 / resolution.x, 0.0))).xyz; - vec3 dpdy = (db < dt) ? ce - getWorldPos(b1, (vUv - vec2(0.0, 1.0 / resolution.y))).xyz - : -ce + getWorldPos(t1, (vUv + vec2(0.0, 1.0 / resolution.y))).xyz; - - return normalize(cross(dpdx, dpdy)); - } - - #include - #include - void main() { - //vec4 texel = texture2D(tDiffuse, vUv);//vec3(0.0); - vec4 sceneTexel = texture2D(sceneDiffuse, vUv); - float depth = texture2D( - sceneDepth, - vUv - ).x; - #ifdef HALFRES - vec4 texel; - if (depth == 1.0) { - texel = vec4(0.0, 0.0, 0.0, 1.0); - } else { - vec3 worldPos = getWorldPos(depth, vUv); - vec3 normal = computeNormal(getWorldPos(depth, vUv), vUv); - // vec4 texel = texture2D(tDiffuse, vUv); - // Find closest depth; - float totalWeight = 0.0; - float radiusToUse = screenSpaceRadius ? distance( - worldPos, - getWorldPos(depth, vUv + - vec2(radius, 0.0) / resolution) - ) : radius; - float distanceFalloffToUse =screenSpaceRadius ? - radiusToUse * distanceFalloff - : distanceFalloff; - for(float x = -1.0; x <= 1.0; x++) { - for(float y = -1.0; y <= 1.0; y++) { - vec2 offset = vec2(x, y); - ivec2 p = ivec2( - (vUv * resolution * 0.5) + offset - ); - vec2 pUv = vec2(p) / (resolution * 0.5); - float sampleDepth = texelFetch(downsampledDepth,p, 0).x; - vec4 sampleInfo = texelFetch(tDiffuse, p, 0); - vec3 normalSample = sampleInfo.xyz * 2.0 - 1.0; - vec3 worldPosSample = getWorldPos(sampleDepth, pUv); - float tangentPlaneDist = abs(dot(worldPos - worldPosSample, normal)); - float rangeCheck = exp(-1.0 * tangentPlaneDist * (1.0 / distanceFalloffToUse)) * max(dot(normal, normalSample), 0.0); - float weight = rangeCheck; - totalWeight += weight; - texel += sampleInfo * weight; - } - } - if (totalWeight == 0.0) { - texel = texture2D(tDiffuse, vUv); - } else { - texel /= totalWeight; - } - } - #else - vec4 texel = texture2D(tDiffuse, vUv); - #endif - - #ifdef LOGDEPTH - texel.a = clamp(texel.a, 0.0, 1.0); - if (texel.a == 0.0) { - texel.a = 1.0; - } - #endif - - float finalAo = pow(texel.a, intensity); - float fogFactor; - float fogDepth = distance( - cameraPos, - getWorldPos(depth, vUv) - ); - if (fog) { - if (fogExp) { - fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth ); - } else { - fogFactor = smoothstep( fogNear, fogFar, fogDepth ); - } - } - finalAo = mix(finalAo, 1.0, fogFactor); - vec3 aoApplied = color * mix(vec3(1.0), sceneTexel.rgb, float(colorMultiply)); - if (renderMode == 0.0) { - gl_FragColor = vec4( mix(sceneTexel.rgb, aoApplied, 1.0 - finalAo), sceneTexel.a); - } else if (renderMode == 1.0) { - gl_FragColor = vec4( mix(vec3(1.0), aoApplied, 1.0 - finalAo), sceneTexel.a); - } else if (renderMode == 2.0) { - gl_FragColor = vec4( sceneTexel.rgb, sceneTexel.a); - } else if (renderMode == 3.0) { - if (vUv.x < 0.5) { - gl_FragColor = vec4( sceneTexel.rgb, sceneTexel.a); - } else if (abs(vUv.x - 0.5) < 1.0 / resolution.x) { - gl_FragColor = vec4(1.0); - } else { - gl_FragColor = vec4( mix(sceneTexel.rgb, aoApplied, 1.0 - finalAo), sceneTexel.a); - } - } else if (renderMode == 4.0) { - if (vUv.x < 0.5) { - gl_FragColor = vec4( sceneTexel.rgb, sceneTexel.a); - } else if (abs(vUv.x - 0.5) < 1.0 / resolution.x) { - gl_FragColor = vec4(1.0); - } else { - gl_FragColor = vec4( mix(vec3(1.0), aoApplied, 1.0 - finalAo), sceneTexel.a); - } - } - #include - if (gammaCorrection) { - gl_FragColor = ${sRGBTransferOETF}(gl_FragColor); - } - } - `, -} - -export { EffectCompositer } diff --git a/src/effects/N8AO/EffectShader.js b/src/effects/N8AO/EffectShader.js deleted file mode 100644 index 75557121..00000000 --- a/src/effects/N8AO/EffectShader.js +++ /dev/null @@ -1,213 +0,0 @@ -import * as THREE from 'three' - -const EffectShader = { - uniforms: { - sceneDiffuse: { value: null }, - sceneDepth: { value: null }, - sceneNormal: { value: null }, - projMat: { value: /* @__PURE__ */ new THREE.Matrix4() }, - viewMat: { value: /* @__PURE__ */ new THREE.Matrix4() }, - projViewMat: { value: /* @__PURE__ */ new THREE.Matrix4() }, - projectionMatrixInv: { value: /* @__PURE__ */ new THREE.Matrix4() }, - viewMatrixInv: { value: /* @__PURE__ */ new THREE.Matrix4() }, - cameraPos: { value: /* @__PURE__ */ new THREE.Vector3() }, - resolution: { value: /* @__PURE__ */ new THREE.Vector2() }, - time: { value: 0.0 }, - samples: { value: [] }, - samplesR: { value: [] }, - bluenoise: { value: null }, - distanceFalloff: { value: 1.0 }, - radius: { value: 5.0 }, - near: { value: 0.1 }, - far: { value: 1000.0 }, - logDepth: { value: false }, - ortho: { value: false }, - screenSpaceRadius: { value: false }, - }, - depthWrite: false, - depthTest: false, - vertexShader: /* glsl */ ` -varying vec2 vUv; -void main() { - vUv = uv; - gl_Position = vec4(position, 1); -}`, - - fragmentShader: /* glsl */ ` - #define SAMPLES 16 - #define FSAMPLES 16.0 -uniform sampler2D sceneDiffuse; -uniform highp sampler2D sceneNormal; -uniform highp sampler2D sceneDepth; -uniform mat4 projectionMatrixInv; -uniform mat4 viewMatrixInv; -uniform mat4 projMat; -uniform mat4 viewMat; -uniform mat4 projViewMat; -uniform vec3 cameraPos; -uniform vec2 resolution; -uniform float time; -uniform vec3[SAMPLES] samples; -uniform float[SAMPLES] samplesR; -uniform float radius; -uniform float distanceFalloff; -uniform float near; -uniform float far; -uniform bool logDepth; -uniform bool ortho; -uniform bool screenSpaceRadius; -uniform sampler2D bluenoise; - varying vec2 vUv; - highp float linearize_depth(highp float d, highp float zNear,highp float zFar) - { - return (zFar * zNear) / (zFar - d * (zFar - zNear)); - } - highp float linearize_depth_ortho(highp float d, highp float nearZ, highp float farZ) { - return nearZ + (farZ - nearZ) * d; - } - highp float linearize_depth_log(highp float d, highp float nearZ,highp float farZ) { - float depth = pow(2.0, d * log2(farZ + 1.0)) - 1.0; - float a = farZ / (farZ - nearZ); - float b = farZ * nearZ / (nearZ - farZ); - float linDepth = a + b / depth; - return ortho ? linearize_depth_ortho( - linDepth, - nearZ, - farZ - ) :linearize_depth(linDepth, nearZ, farZ); - } - - vec3 getWorldPosLog(vec3 posS) { - vec2 uv = posS.xy; - float z = posS.z; - float nearZ =near; - float farZ = far; - float depth = pow(2.0, z * log2(farZ + 1.0)) - 1.0; - float a = farZ / (farZ - nearZ); - float b = farZ * nearZ / (nearZ - farZ); - float linDepth = a + b / depth; - vec4 clipVec = vec4(uv, linDepth, 1.0) * 2.0 - 1.0; - vec4 wpos = projectionMatrixInv * clipVec; - return wpos.xyz / wpos.w; - } - vec3 getWorldPos(float depth, vec2 coord) { - #ifdef LOGDEPTH - return getWorldPosLog(vec3(coord, depth)); - #endif - float z = depth * 2.0 - 1.0; - vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0); - vec4 viewSpacePosition = projectionMatrixInv * clipSpacePosition; - // Perspective division - vec4 worldSpacePosition = viewSpacePosition; - worldSpacePosition.xyz /= worldSpacePosition.w; - return worldSpacePosition.xyz; - } - - vec3 computeNormal(vec3 worldPos, vec2 vUv) { - ivec2 p = ivec2(vUv * resolution); - float c0 = texelFetch(sceneDepth, p, 0).x; - float l2 = texelFetch(sceneDepth, p - ivec2(2, 0), 0).x; - float l1 = texelFetch(sceneDepth, p - ivec2(1, 0), 0).x; - float r1 = texelFetch(sceneDepth, p + ivec2(1, 0), 0).x; - float r2 = texelFetch(sceneDepth, p + ivec2(2, 0), 0).x; - float b2 = texelFetch(sceneDepth, p - ivec2(0, 2), 0).x; - float b1 = texelFetch(sceneDepth, p - ivec2(0, 1), 0).x; - float t1 = texelFetch(sceneDepth, p + ivec2(0, 1), 0).x; - float t2 = texelFetch(sceneDepth, p + ivec2(0, 2), 0).x; - - float dl = abs((2.0 * l1 - l2) - c0); - float dr = abs((2.0 * r1 - r2) - c0); - float db = abs((2.0 * b1 - b2) - c0); - float dt = abs((2.0 * t1 - t2) - c0); - - vec3 ce = getWorldPos(c0, vUv).xyz; - - vec3 dpdx = (dl < dr) ? ce - getWorldPos(l1, (vUv - vec2(1.0 / resolution.x, 0.0))).xyz - : -ce + getWorldPos(r1, (vUv + vec2(1.0 / resolution.x, 0.0))).xyz; - vec3 dpdy = (db < dt) ? ce - getWorldPos(b1, (vUv - vec2(0.0, 1.0 / resolution.y))).xyz - : -ce + getWorldPos(t1, (vUv + vec2(0.0, 1.0 / resolution.y))).xyz; - - return normalize(cross(dpdx, dpdy)); -} - -void main() { - vec4 diffuse = texture2D(sceneDiffuse, vUv); - float depth = texture2D(sceneDepth, vUv).x; - if (depth == 1.0) { - gl_FragColor = vec4(vec3(1.0), 1.0); - return; - } - vec3 worldPos = getWorldPos(depth, vUv); - // vec3 normal = texture2D(sceneNormal, vUv).rgb;//computeNormal(worldPos, vUv); - #ifdef HALFRES - vec3 normal = texture2D(sceneNormal, vUv).rgb; - #else - vec3 normal = computeNormal(worldPos, vUv); - #endif - vec4 noise = texture2D(bluenoise, gl_FragCoord.xy / 128.0); - vec3 randomVec = normalize(noise.rgb * 2.0 - 1.0); - vec3 tangent = normalize(randomVec - normal * dot(randomVec, normal)); - vec3 bitangent = cross(normal, tangent); - mat3 tbn = mat3(tangent, bitangent, normal); - float occluded = 0.0; - float totalWeight = 0.0; - /* float radiusScreen = distance( - worldPos, - getWorldPos(depth, vUv + - vec2(48.0, 0.0) / resolution) - );/*vUv.x < 0.5 ? radius : min(distance( - worldPos, - getWorldPos(depth, vUv + - vec2(100.0, 0.0) / resolution) - ), radius); - float distanceFalloffScreen = radiusScreen * 0.2;*/ - float radiusToUse = screenSpaceRadius ? distance( - worldPos, - getWorldPos(depth, vUv + - vec2(radius, 0.0) / resolution) - ) : radius; - float distanceFalloffToUse =screenSpaceRadius ? - radiusToUse * distanceFalloff - : distanceFalloff; - float bias = (0.1 / near) * fwidth(distance(worldPos, cameraPos)) / radiusToUse; - for(float i = 0.0; i < FSAMPLES; i++) { - vec3 sampleDirection = - tbn * - samples[int(i)]; - ; - float moveAmt = samplesR[int(mod(i + noise.a * FSAMPLES, FSAMPLES))]; - vec3 samplePos = worldPos + radiusToUse * moveAmt * sampleDirection; - vec4 offset = projMat * vec4(samplePos, 1.0); - offset.xyz /= offset.w; - offset.xyz = offset.xyz * 0.5 + 0.5; - float sampleDepth = textureLod(sceneDepth, offset.xy, 0.0).x; - /*float distSample = logDepth ? linearize_depth_log(sampleDepth, near, far) - (ortho ? linearize_depth_ortho(sampleDepth, near, far) : linearize_depth(sampleDepth, near, far));*/ - #ifdef LOGDEPTH - float distSample = linearize_depth_log(sampleDepth, near, far); - #else - float distSample = ortho ? linearize_depth_ortho(sampleDepth, near, far) : linearize_depth(sampleDepth, near, far); - #endif - float distWorld = ortho ? linearize_depth_ortho(offset.z, near, far) : linearize_depth(offset.z, near, far); - float rangeCheck = smoothstep(0.0, 1.0, distanceFalloffToUse / (abs(distSample - distWorld))); - vec2 diff = gl_FragCoord.xy - ( offset.xy * resolution); - float weight = dot(sampleDirection, normal); - occluded += rangeCheck * weight * - (distSample + bias - < distWorld ? 1.0 : 0.0) * ( - (dot( - diff, - diff - - ) < 1.0 || (sampleDepth == depth) || ( - offset.x < 0.0 || offset.x > 1.0 || offset.y < 0.0 || offset.y > 1.0 - ) ? 0.0 : 1.0) - ); - totalWeight += weight; - } - float occ = clamp(1.0 - occluded / totalWeight, 0.0, 1.0); - gl_FragColor = vec4(0.5 + 0.5 * normal, occ); -}`, -} - -export { EffectShader } diff --git a/src/effects/N8AO/FullScreenTriangle.js b/src/effects/N8AO/FullScreenTriangle.js deleted file mode 100644 index 40c24be5..00000000 --- a/src/effects/N8AO/FullScreenTriangle.js +++ /dev/null @@ -1,40 +0,0 @@ -import * as THREE from 'three' - -class FullScreenTriangleGeometry extends THREE.BufferGeometry { - boundingSphere = new THREE.Sphere() - - constructor() { - super() - this.setAttribute('position', new THREE.BufferAttribute(new Float32Array([-1, -1, 3, -1, -1, 3]), 2)) - this.setAttribute('uv', new THREE.BufferAttribute(new Float32Array([0, 0, 2, 0, 0, 2]), 2)) - } - - computeBoundingSphere() {} -} - -const _geometry = /* @__PURE__ */ new FullScreenTriangleGeometry() -const _camera = /* @__PURE__ */ new THREE.OrthographicCamera() - -export class FullScreenTriangle { - constructor(material) { - this._mesh = new THREE.Mesh(_geometry, material) - this._mesh.frustumCulled = false - } - - render(renderer) { - renderer.render(this._mesh, _camera) - } - - get material() { - return this._mesh.material - } - - set material(value) { - this._mesh.material = value - } - - dispose() { - this._mesh.material.dispose() - this._mesh.geometry.dispose() - } -} diff --git a/src/effects/N8AO/N8AOPostPass.js b/src/effects/N8AO/N8AOPostPass.js deleted file mode 100644 index e544d1d2..00000000 --- a/src/effects/N8AO/N8AOPostPass.js +++ /dev/null @@ -1,561 +0,0 @@ -import * as THREE from 'three' -import { Pass } from 'postprocessing' -import { Buffer } from 'buffer' -import { FullScreenTriangle } from './FullScreenTriangle' -import { EffectShader } from './EffectShader' -import { EffectCompositer } from './EffectCompositer' -import { PoissionBlur } from './PoissionBlur' -import { DepthDownSample } from './DepthDownSample' -import BlueNoise from './BlueNoise' -import { WebGLMultipleRenderTargets } from '../../compat' - -const bluenoiseBits = /* @__PURE__ */ Buffer.from(BlueNoise, 'base64') - -/** - * - * @param {*} timerQuery - * @param {THREE.WebGLRenderer} gl - * @param {N8AOPass} pass - */ -function checkTimerQuery(timerQuery, gl, pass) { - const available = gl.getQueryParameter(timerQuery, gl.QUERY_RESULT_AVAILABLE) - if (available) { - const elapsedTimeInNs = gl.getQueryParameter(timerQuery, gl.QUERY_RESULT) - const elapsedTimeInMs = elapsedTimeInNs / 1000000 - pass.lastTime = elapsedTimeInMs - } else { - // If the result is not available yet, check again after a delay - setTimeout(() => { - checkTimerQuery(timerQuery, gl, pass) - }, 1) - } -} -class N8AOPostPass extends Pass { - /** - * - * @param {THREE.Scene} scene - * @param {THREE.Camera} camera - * @param {number} width - * @param {number} height - * - * @property {THREE.Scene} scene - * @property {THREE.Camera} camera - * @property {number} width - * @property {number} height - */ - constructor(scene, camera, width = 512, height = 512) { - super() - this.width = width - this.height = height - - this.clear = true - - this.camera = camera - this.scene = scene - /** - * @type {Proxy & { - * aoSamples: number, - * aoRadius: number, - * denoiseSamples: number, - * denoiseRadius: number, - * distanceFalloff: number, - * intensity: number, - * denoiseIterations: number, - * renderMode: 0 | 1 | 2 | 3 | 4, - * color: THREE.Color, - * gammaCorrection: boolean, - * logarithmicDepthBuffer: boolean - * screenSpaceRadius: boolean, - * halfRes: boolean, - * depthAwareUpsampling: boolean - * colorMultiply: boolean - * } - */ - this.autosetGamma = true - this.configuration = new Proxy( - { - aoSamples: 16, - aoRadius: 5.0, - denoiseSamples: 8, - denoiseRadius: 12, - distanceFalloff: 1.0, - intensity: 5, - denoiseIterations: 2.0, - renderMode: 0, - color: new THREE.Color(0, 0, 0), - gammaCorrection: true, - logarithmicDepthBuffer: false, - screenSpaceRadius: false, - halfRes: false, - depthAwareUpsampling: true, - colorMultiply: true, - }, - { - set: (target, propName, value) => { - const oldProp = target[propName] - target[propName] = value - if (propName === 'aoSamples' && oldProp !== value) { - this.configureAOPass(this.configuration.logarithmicDepthBuffer) - } - if (propName === 'denoiseSamples' && oldProp !== value) { - this.configureDenoisePass(this.configuration.logarithmicDepthBuffer) - } - if (propName === 'halfRes' && oldProp !== value) { - this.configureAOPass(this.configuration.logarithmicDepthBuffer) - this.configureHalfResTargets() - this.configureEffectCompositer(this.configuration.logarithmicDepthBuffer) - this.setSize(this.width, this.height) - } - if (propName === 'depthAwareUpsampling' && oldProp !== value) { - this.configureEffectCompositer(this.configuration.logarithmicDepthBuffer) - } - if (propName === 'gammaCorrection') { - this.autosetGamma = false - } - return true - }, - } - ) - /** @type {THREE.Vector3[]} */ - this.samples = [] - /** @type {number[]} */ - this.samplesR = [] - /** @type {THREE.Vector2[]} */ - this.samplesDenoise = [] - this.configureEffectCompositer(this.configuration.logarithmicDepthBuffer) - this.configureSampleDependentPasses() - this.configureHalfResTargets() - // this.effectCompisterQuad = new FullScreenTriangle(new THREE.ShaderMaterial(EffectCompositer)); - this.copyQuad = new FullScreenTriangle( - new THREE.ShaderMaterial({ - uniforms: { - tDiffuse: { - value: null, - }, - }, - depthWrite: false, - vertexShader: ` - varying vec2 vUv; - void main() { - vUv = uv; - gl_Position = vec4(position, 1); - } - `, - fragmentShader: ` - uniform sampler2D tDiffuse; - varying vec2 vUv; - void main() { - gl_FragColor = texture2D(tDiffuse, vUv); - } - `, - }) - ) - this.writeTargetInternal = new THREE.WebGLRenderTarget(this.width, this.height, { - minFilter: THREE.LinearFilter, - magFilter: THREE.LinearFilter, - depthBuffer: false, - }) - this.readTargetInternal = new THREE.WebGLRenderTarget(this.width, this.height, { - minFilter: THREE.LinearFilter, - magFilter: THREE.LinearFilter, - depthBuffer: false, - }) - this.outputTargetInternal = new THREE.WebGLRenderTarget(this.width, this.height, { - minFilter: THREE.LinearFilter, - magFilter: THREE.LinearFilter, - depthBuffer: false, - }) - - /** @type {THREE.DataTexture} */ - this.bluenoise = //bluenoise; - new THREE.DataTexture(bluenoiseBits, 128, 128) - this.bluenoise.colorSpace = THREE.NoColorSpace - this.bluenoise.wrapS = THREE.RepeatWrapping - this.bluenoise.wrapT = THREE.RepeatWrapping - this.bluenoise.minFilter = THREE.NearestFilter - this.bluenoise.magFilter = THREE.NearestFilter - this.bluenoise.needsUpdate = true - this.lastTime = 0 - this.needsDepthTexture = true - this.needsSwap = true - this._r = new THREE.Vector2() - this._c = new THREE.Color() - } - configureHalfResTargets() { - if (this.configuration.halfRes) { - this.depthDownsampleTarget = - /*new THREE.WebGLRenderTarget(this.width / 2, this.height / 2, { - minFilter: THREE.NearestFilter, - magFilter: THREE.NearestFilter, - depthBuffer: false, - format: THREE.RedFormat, - type: THREE.FloatType - });*/ - new WebGLMultipleRenderTargets(this.width / 2, this.height / 2, 2) - this.depthDownsampleTarget.texture[0].format = THREE.RedFormat - this.depthDownsampleTarget.texture[0].type = THREE.FloatType - this.depthDownsampleTarget.texture[0].minFilter = THREE.NearestFilter - this.depthDownsampleTarget.texture[0].magFilter = THREE.NearestFilter - this.depthDownsampleTarget.texture[0].depthBuffer = false - this.depthDownsampleTarget.texture[1].format = THREE.RGBAFormat - this.depthDownsampleTarget.texture[1].type = THREE.HalfFloatType - this.depthDownsampleTarget.texture[1].minFilter = THREE.NearestFilter - this.depthDownsampleTarget.texture[1].magFilter = THREE.NearestFilter - this.depthDownsampleTarget.texture[1].depthBuffer = false - - this.depthDownsampleQuad = new FullScreenTriangle(new THREE.ShaderMaterial(DepthDownSample)) - } else { - if (this.depthDownsampleTarget) { - this.depthDownsampleTarget.dispose() - this.depthDownsampleTarget = null - } - if (this.depthDownsampleQuad) { - this.depthDownsampleQuad.dispose() - this.depthDownsampleQuad = null - } - } - } - configureSampleDependentPasses() { - this.configureAOPass(this.configuration.logarithmicDepthBuffer) - this.configureDenoisePass(this.configuration.logarithmicDepthBuffer) - } - configureAOPass(logarithmicDepthBuffer = false) { - this.samples = this.generateHemisphereSamples(this.configuration.aoSamples) - this.samplesR = this.generateHemisphereSamplesR(this.configuration.aoSamples) - const e = { ...EffectShader } - e.fragmentShader = e.fragmentShader - .replace('16', this.configuration.aoSamples) - .replace('16.0', this.configuration.aoSamples + '.0') - if (logarithmicDepthBuffer) { - e.fragmentShader = '#define LOGDEPTH\n' + e.fragmentShader - } - if (this.configuration.halfRes) { - e.fragmentShader = '#define HALFRES\n' + e.fragmentShader - } - if (this.effectShaderQuad) { - this.effectShaderQuad.material.dispose() - this.effectShaderQuad.material = new THREE.ShaderMaterial(e) - } else { - this.effectShaderQuad = new FullScreenTriangle(new THREE.ShaderMaterial(e)) - } - } - configureDenoisePass(logarithmicDepthBuffer = false) { - this.samplesDenoise = this.generateDenoiseSamples(this.configuration.denoiseSamples, 11) - const p = { ...PoissionBlur } - p.fragmentShader = p.fragmentShader.replace('16', this.configuration.denoiseSamples) - if (logarithmicDepthBuffer) { - p.fragmentShader = '#define LOGDEPTH\n' + p.fragmentShader - } - if (this.poissonBlurQuad) { - this.poissonBlurQuad.material.dispose() - this.poissonBlurQuad.material = new THREE.ShaderMaterial(p) - } else { - this.poissonBlurQuad = new FullScreenTriangle(new THREE.ShaderMaterial(p)) - } - } - configureEffectCompositer(logarithmicDepthBuffer = false) { - const e = { ...EffectCompositer } - if (logarithmicDepthBuffer) { - e.fragmentShader = '#define LOGDEPTH\n' + e.fragmentShader - } - if (this.configuration.halfRes && this.configuration.depthAwareUpsampling) { - e.fragmentShader = '#define HALFRES\n' + e.fragmentShader - } - if (this.effectCompositerQuad) { - this.effectCompositerQuad.material.dispose() - this.effectCompositerQuad.material = new THREE.ShaderMaterial(e) - } else { - this.effectCompositerQuad = new FullScreenTriangle(new THREE.ShaderMaterial(e)) - } - } - /** - * - * @param {Number} n - * @returns {THREE.Vector3[]} - */ - generateHemisphereSamples(n) { - const points = [] - for (let k = 0; k < n; k++) { - const theta = 2.399963 * k - const r = Math.sqrt(k + 0.5) / Math.sqrt(n) - const x = r * Math.cos(theta) - const y = r * Math.sin(theta) - // Project to hemisphere - const z = Math.sqrt(1 - (x * x + y * y)) - points.push(new THREE.Vector3(x, y, z)) - } - return points - } - /** - * - * @param {number} n - * @returns {number[]} - */ - generateHemisphereSamplesR(n) { - let samplesR = [] - for (let i = 0; i < n; i++) { - samplesR.push((i + 1) / n) - } - return samplesR - } - /** - * - * @param {number} numSamples - * @param {number} numRings - * @returns {THREE.Vector2[]} - */ - generateDenoiseSamples(numSamples, numRings) { - const angleStep = (2 * Math.PI * numRings) / numSamples - const invNumSamples = 1.0 / numSamples - const radiusStep = invNumSamples - const samples = [] - let radius = invNumSamples - let angle = 0 - for (let i = 0; i < numSamples; i++) { - samples.push(new THREE.Vector2(Math.cos(angle), Math.sin(angle)).multiplyScalar(Math.pow(radius, 0.75))) - radius += radiusStep - angle += angleStep - } - return samples - } - setSize(width, height) { - this.width = width - this.height = height - const c = this.configuration.halfRes ? 0.5 : 1 - this.writeTargetInternal.setSize(width * c, height * c) - this.readTargetInternal.setSize(width * c, height * c) - if (this.configuration.halfRes) { - this.depthDownsampleTarget.setSize(width * c, height * c) - } - this.outputTargetInternal.setSize(width, height) - } - setDepthTexture(depthTexture) { - this.depthTexture = depthTexture - } - render(renderer, inputBuffer, outputBuffer) { - const xrEnabled = renderer.xr.enabled - renderer.xr.enabled = false - - // Copy inputBuffer to outputBuffer - //renderer.setRenderTarget(outputBuffer); - // this.copyQuad.material.uniforms.tDiffuse.value = inputBuffer.texture; - // this.copyQuad.render(renderer); - - if (renderer.capabilities.logarithmicDepthBuffer !== this.configuration.logarithmicDepthBuffer) { - this.configuration.logarithmicDepthBuffer = renderer.capabilities.logarithmicDepthBuffer - this.configureAOPass(this.configuration.logarithmicDepthBuffer) - this.configureDenoisePass(this.configuration.logarithmicDepthBuffer) - this.configureEffectCompositer(this.configuration.logarithmicDepthBuffer) - } - if (inputBuffer.texture.type !== this.outputTargetInternal.texture.type) { - this.outputTargetInternal.texture.type = inputBuffer.texture.type - this.outputTargetInternal.texture.needsUpdate = true - } - let gl - let ext - let timerQuery - if (this.debugMode) { - gl = renderer.getContext() - ext = gl.getExtension('EXT_disjoint_timer_query_webgl2') - if (ext === null) { - console.error('EXT_disjoint_timer_query_webgl2 not available, disabling debug mode.') - this.debugMode = false - } - } - if (this.debugMode) { - timerQuery = gl.createQuery() - gl.beginQuery(ext.TIME_ELAPSED_EXT, timerQuery) - } - this.camera.updateMatrixWorld() - this._r.set(this.width, this.height) - let trueRadius = this.configuration.aoRadius - if (this.configuration.halfRes && this.configuration.screenSpaceRadius) { - trueRadius *= 0.5 - } - if (this.configuration.halfRes) { - renderer.setRenderTarget(this.depthDownsampleTarget) - this.depthDownsampleQuad.material.uniforms.sceneDepth.value = this.depthTexture - this.depthDownsampleQuad.material.uniforms.resolution.value = this._r - this.depthDownsampleQuad.material.uniforms['near'].value = this.camera.near - this.depthDownsampleQuad.material.uniforms['far'].value = this.camera.far - this.depthDownsampleQuad.material.uniforms['projectionMatrixInv'].value = this.camera.projectionMatrixInverse - this.depthDownsampleQuad.material.uniforms['viewMatrixInv'].value = this.camera.matrixWorld - this.depthDownsampleQuad.material.uniforms['logDepth'].value = this.configuration.logarithmicDepthBuffer - this.depthDownsampleQuad.render(renderer) - } - this.effectShaderQuad.material.uniforms['sceneDiffuse'].value = inputBuffer.texture - this.effectShaderQuad.material.uniforms['sceneDepth'].value = this.configuration.halfRes - ? this.depthDownsampleTarget.texture[0] - : this.depthTexture - this.effectShaderQuad.material.uniforms['sceneNormal'].value = this.configuration.halfRes - ? this.depthDownsampleTarget.texture[1] - : null - this.effectShaderQuad.material.uniforms['projMat'].value = this.camera.projectionMatrix - this.effectShaderQuad.material.uniforms['viewMat'].value = this.camera.matrixWorldInverse - this.effectShaderQuad.material.uniforms['projViewMat'].value = this.camera.projectionMatrix - .clone() - .multiply(this.camera.matrixWorldInverse.clone()) - this.effectShaderQuad.material.uniforms['projectionMatrixInv'].value = this.camera.projectionMatrixInverse - this.effectShaderQuad.material.uniforms['viewMatrixInv'].value = this.camera.matrixWorld - this.effectShaderQuad.material.uniforms['cameraPos'].value = this.camera.getWorldPosition(new THREE.Vector3()) - this.effectShaderQuad.material.uniforms['resolution'].value = this.configuration.halfRes - ? this._r - .clone() - .multiplyScalar(1 / 2) - .floor() - : this._r - this.effectShaderQuad.material.uniforms['time'].value = performance.now() / 1000 - this.effectShaderQuad.material.uniforms['samples'].value = this.samples - this.effectShaderQuad.material.uniforms['samplesR'].value = this.samplesR - this.effectShaderQuad.material.uniforms['bluenoise'].value = this.bluenoise - this.effectShaderQuad.material.uniforms['radius'].value = trueRadius - this.effectShaderQuad.material.uniforms['distanceFalloff'].value = this.configuration.distanceFalloff - this.effectShaderQuad.material.uniforms['near'].value = this.camera.near - this.effectShaderQuad.material.uniforms['far'].value = this.camera.far - this.effectShaderQuad.material.uniforms['logDepth'].value = renderer.capabilities.logarithmicDepthBuffer - this.effectShaderQuad.material.uniforms['ortho'].value = this.camera.isOrthographicCamera - this.effectShaderQuad.material.uniforms['screenSpaceRadius'].value = this.configuration.screenSpaceRadius - // Start the AO - renderer.setRenderTarget(this.writeTargetInternal) - this.effectShaderQuad.render(renderer) - // End the AO - // Start the blur - for (let i = 0; i < this.configuration.denoiseIterations; i++) { - ;[this.writeTargetInternal, this.readTargetInternal] = [this.readTargetInternal, this.writeTargetInternal] - this.poissonBlurQuad.material.uniforms['tDiffuse'].value = this.readTargetInternal.texture - this.poissonBlurQuad.material.uniforms['sceneDepth'].value = this.configuration.halfRes - ? this.depthDownsampleTarget.texture[0] - : this.depthTexture - this.poissonBlurQuad.material.uniforms['projMat'].value = this.camera.projectionMatrix - this.poissonBlurQuad.material.uniforms['viewMat'].value = this.camera.matrixWorldInverse - this.poissonBlurQuad.material.uniforms['projectionMatrixInv'].value = this.camera.projectionMatrixInverse - this.poissonBlurQuad.material.uniforms['viewMatrixInv'].value = this.camera.matrixWorld - this.poissonBlurQuad.material.uniforms['cameraPos'].value = this.camera.getWorldPosition(new THREE.Vector3()) - this.poissonBlurQuad.material.uniforms['resolution'].value = this.configuration.halfRes - ? this._r - .clone() - .multiplyScalar(1 / 2) - .floor() - : this._r - this.poissonBlurQuad.material.uniforms['time'].value = performance.now() / 1000 - this.poissonBlurQuad.material.uniforms['blueNoise'].value = this.bluenoise - this.poissonBlurQuad.material.uniforms['radius'].value = - this.configuration.denoiseRadius * (this.configuration.halfRes ? 1 / 2 : 1) - this.poissonBlurQuad.material.uniforms['worldRadius'].value = trueRadius - this.poissonBlurQuad.material.uniforms['distanceFalloff'].value = this.configuration.distanceFalloff - this.poissonBlurQuad.material.uniforms['index'].value = i - this.poissonBlurQuad.material.uniforms['poissonDisk'].value = this.samplesDenoise - this.poissonBlurQuad.material.uniforms['near'].value = this.camera.near - this.poissonBlurQuad.material.uniforms['far'].value = this.camera.far - this.poissonBlurQuad.material.uniforms['logDepth'].value = renderer.capabilities.logarithmicDepthBuffer - this.poissonBlurQuad.material.uniforms['screenSpaceRadius'].value = this.configuration.screenSpaceRadius - renderer.setRenderTarget(this.writeTargetInternal) - this.poissonBlurQuad.render(renderer) - } - // Now, we have the blurred AO in writeTargetInternal - // End the blur - // Start the composition - this.effectCompositerQuad.material.uniforms['sceneDiffuse'].value = inputBuffer.texture - this.effectCompositerQuad.material.uniforms['sceneDepth'].value = this.depthTexture - this.effectCompositerQuad.material.uniforms['near'].value = this.camera.near - this.effectCompositerQuad.material.uniforms['far'].value = this.camera.far - this.effectCompositerQuad.material.uniforms['projectionMatrixInv'].value = this.camera.projectionMatrixInverse - this.effectCompositerQuad.material.uniforms['viewMatrixInv'].value = this.camera.matrixWorld - this.effectCompositerQuad.material.uniforms['logDepth'].value = renderer.capabilities.logarithmicDepthBuffer - this.effectCompositerQuad.material.uniforms['ortho'].value = this.camera.isOrthographicCamera - this.effectCompositerQuad.material.uniforms['downsampledDepth'].value = this.configuration.halfRes - ? this.depthDownsampleTarget.texture[0] - : this.depthTexture - this.effectCompositerQuad.material.uniforms['resolution'].value = this._r - this.effectCompositerQuad.material.uniforms['blueNoise'].value = this.bluenoise - this.effectCompositerQuad.material.uniforms['intensity'].value = this.configuration.intensity - this.effectCompositerQuad.material.uniforms['renderMode'].value = this.configuration.renderMode - this.effectCompositerQuad.material.uniforms['screenSpaceRadius'].value = this.configuration.screenSpaceRadius - this.effectCompositerQuad.material.uniforms['radius'].value = trueRadius - this.effectCompositerQuad.material.uniforms['distanceFalloff'].value = this.configuration.distanceFalloff - this.effectCompositerQuad.material.uniforms['gammaCorrection'].value = this.autosetGamma - ? this.renderToScreen - : this.configuration.gammaCorrection - this.effectCompositerQuad.material.uniforms['tDiffuse'].value = this.writeTargetInternal.texture - this.effectCompositerQuad.material.uniforms['color'].value = this._c - .copy(this.configuration.color) - .convertSRGBToLinear() - this.effectCompositerQuad.material.uniforms['colorMultiply'].value = this.configuration.colorMultiply - this.effectCompositerQuad.material.uniforms['cameraPos'].value = this.camera.getWorldPosition(new THREE.Vector3()) - this.effectCompositerQuad.material.uniforms['fog'].value = !!this.scene.fog - if (this.scene.fog) { - if (this.scene.fog.isFog) { - this.effectCompositerQuad.material.uniforms['fogExp'].value = false - this.effectCompositerQuad.material.uniforms['fogNear'].value = this.scene.fog.near - this.effectCompositerQuad.material.uniforms['fogFar'].value = this.scene.fog.far - } else if (this.scene.fog.isFogExp2) { - this.effectCompositerQuad.material.uniforms['fogExp'].value = true - this.effectCompositerQuad.material.uniforms['fogDensity'].value = this.scene.fog.density - } else { - console.error(`Unsupported fog type ${this.scene.fog.constructor.name} in SSAOPass.`) - } - } - renderer.setRenderTarget( - /* this.renderToScreen ? null : - outputBuffer*/ - this.outputTargetInternal - ) - this.effectCompositerQuad.render(renderer) - renderer.setRenderTarget(this.renderToScreen ? null : outputBuffer) - this.copyQuad.material.uniforms['tDiffuse'].value = this.outputTargetInternal.texture - this.copyQuad.render(renderer) - if (this.debugMode) { - gl.endQuery(ext.TIME_ELAPSED_EXT) - checkTimerQuery(timerQuery, gl, this) - } - - renderer.xr.enabled = xrEnabled - } - /** - * Enables the debug mode of the AO, meaning the lastTime value will be updated. - */ - enableDebugMode() { - this.debugMode = true - } - /** - * Disables the debug mode of the AO, meaning the lastTime value will not be updated. - */ - disableDebugMode() { - this.debugMode = false - } - /** - * Sets the display mode of the AO - * @param {"Combined" | "AO" | "No AO" | "Split" | "Split AO"} mode - The display mode. - */ - setDisplayMode(mode) { - this.configuration.renderMode = ['Combined', 'AO', 'No AO', 'Split', 'Split AO'].indexOf(mode) - } - /** - * - * @param {"Performance" | "Low" | "Medium" | "High" | "Ultra"} mode - */ - setQualityMode(mode) { - if (mode === 'Performance') { - this.configuration.aoSamples = 8 - this.configuration.denoiseSamples = 4 - this.configuration.denoiseRadius = 12 - } else if (mode === 'Low') { - this.configuration.aoSamples = 16 - this.configuration.denoiseSamples = 4 - this.configuration.denoiseRadius = 12 - } else if (mode === 'Medium') { - this.configuration.aoSamples = 16 - this.configuration.denoiseSamples = 8 - this.configuration.denoiseRadius = 12 - } else if (mode === 'High') { - this.configuration.aoSamples = 64 - this.configuration.denoiseSamples = 8 - this.configuration.denoiseRadius = 6 - } else if (mode === 'Ultra') { - this.configuration.aoSamples = 64 - this.configuration.denoiseSamples = 16 - this.configuration.denoiseRadius = 6 - } - } -} -export { N8AOPostPass } diff --git a/src/effects/N8AO/PoissionBlur.js b/src/effects/N8AO/PoissionBlur.js deleted file mode 100644 index 94f0a1db..00000000 --- a/src/effects/N8AO/PoissionBlur.js +++ /dev/null @@ -1,163 +0,0 @@ -import * as THREE from 'three' - -const PoissionBlur = { - uniforms: { - sceneDiffuse: { value: null }, - sceneDepth: { value: null }, - tDiffuse: { value: null }, - projMat: { value: /* @__PURE__ */ new THREE.Matrix4() }, - viewMat: { value: /* @__PURE__ */ new THREE.Matrix4() }, - projectionMatrixInv: { value: /* @__PURE__ */ new THREE.Matrix4() }, - viewMatrixInv: { value: /* @__PURE__ */ new THREE.Matrix4() }, - cameraPos: { value: /* @__PURE__ */ new THREE.Vector3() }, - resolution: { value: /* @__PURE__ */ new THREE.Vector2() }, - time: { value: 0.0 }, - r: { value: 5.0 }, - blueNoise: { value: null }, - radius: { value: 12.0 }, - worldRadius: { value: 5.0 }, - index: { value: 0.0 }, - poissonDisk: { value: [] }, - distanceFalloff: { value: 1.0 }, - near: { value: 0.1 }, - far: { value: 1000.0 }, - logDepth: { value: false }, - screenSpaceRadius: { value: false }, - }, - depthWrite: false, - depthTest: false, - - vertexShader: /* glsl */ ` - varying vec2 vUv; - void main() { - vUv = uv; - gl_Position = vec4(position, 1.0); - }`, - fragmentShader: /* glsl */ ` - uniform sampler2D sceneDiffuse; - uniform highp sampler2D sceneDepth; - uniform sampler2D tDiffuse; - uniform sampler2D blueNoise; - uniform mat4 projectionMatrixInv; - uniform mat4 viewMatrixInv; - uniform vec2 resolution; - uniform float r; - uniform float radius; - uniform float worldRadius; - uniform float index; - uniform float near; - uniform float far; - uniform float distanceFalloff; - uniform bool logDepth; - uniform bool screenSpaceRadius; - varying vec2 vUv; - - highp float linearize_depth(highp float d, highp float zNear,highp float zFar) - { - highp float z_n = 2.0 * d - 1.0; - return 2.0 * zNear * zFar / (zFar + zNear - z_n * (zFar - zNear)); - } - highp float linearize_depth_log(highp float d, highp float nearZ,highp float farZ) { - float depth = pow(2.0, d * log2(farZ + 1.0)) - 1.0; - float a = farZ / (farZ - nearZ); - float b = farZ * nearZ / (nearZ - farZ); - float linDepth = a + b / depth; - return linearize_depth(linDepth, nearZ, farZ); - } - highp float linearize_depth_ortho(highp float d, highp float nearZ, highp float farZ) { - return nearZ + (farZ - nearZ) * d; - } - vec3 getWorldPosLog(vec3 posS) { - vec2 uv = posS.xy; - float z = posS.z; - float nearZ =near; - float farZ = far; - float depth = pow(2.0, z * log2(farZ + 1.0)) - 1.0; - float a = farZ / (farZ - nearZ); - float b = farZ * nearZ / (nearZ - farZ); - float linDepth = a + b / depth; - vec4 clipVec = vec4(uv, linDepth, 1.0) * 2.0 - 1.0; - vec4 wpos = projectionMatrixInv * clipVec; - return wpos.xyz / wpos.w; - } - vec3 getWorldPos(float depth, vec2 coord) { - #ifdef LOGDEPTH - return getWorldPosLog(vec3(coord, depth)); - #endif - - float z = depth * 2.0 - 1.0; - vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0); - vec4 viewSpacePosition = projectionMatrixInv * clipSpacePosition; - // Perspective division - vec4 worldSpacePosition = viewSpacePosition; - worldSpacePosition.xyz /= worldSpacePosition.w; - return worldSpacePosition.xyz; - } - #include - #define NUM_SAMPLES 16 - uniform vec2 poissonDisk[NUM_SAMPLES]; - void main() { - const float pi = 3.14159; - vec2 texelSize = vec2(1.0 / resolution.x, 1.0 / resolution.y); - vec2 uv = vUv; - vec4 data = texture2D(tDiffuse, vUv); - float occlusion = data.a; - float baseOcc = data.a; - vec3 normal = data.rgb * 2.0 - 1.0; - float count = 1.0; - float d = texture2D(sceneDepth, vUv).x; - if (d == 1.0) { - gl_FragColor = data; - return; - } - vec3 worldPos = getWorldPos(d, vUv); - float size = radius; - float angle; - if (index == 0.0) { - angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).x * PI2; - } else if (index == 1.0) { - angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).y * PI2; - } else if (index == 2.0) { - angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).z * PI2; - } else { - angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).w * PI2; - } - - mat2 rotationMatrix = mat2(cos(angle), -sin(angle), sin(angle), cos(angle)); - float radiusToUse = screenSpaceRadius ? distance( - worldPos, - getWorldPos(d, vUv + - vec2(worldRadius, 0.0) / resolution) - ) : worldRadius; - float distanceFalloffToUse =screenSpaceRadius ? - radiusToUse * distanceFalloff - : distanceFalloff; - - - for(int i = 0; i < NUM_SAMPLES; i++) { - vec2 offset = (rotationMatrix * poissonDisk[i]) * texelSize * size; - vec4 dataSample = texture2D(tDiffuse, uv + offset); - float occSample = dataSample.a; - vec3 normalSample = dataSample.rgb * 2.0 - 1.0; - float dSample = texture2D(sceneDepth, uv + offset).x; - vec3 worldPosSample = getWorldPos(dSample, uv + offset); - float tangentPlaneDist = abs(dot(worldPos - worldPosSample, normal)); - float rangeCheck = dSample == 1.0 ? 0.0 :exp(-1.0 * tangentPlaneDist * (1.0 / distanceFalloffToUse)) * max(dot(normal, normalSample), 0.0) * (1.0 - abs(occSample - baseOcc)); - occlusion += occSample * rangeCheck; - count += rangeCheck; - } - if (count > 0.0) { - occlusion /= count; - } - #ifdef LOGDEPTH - occlusion = clamp(occlusion, 0.0, 1.0); - if (occlusion == 0.0) { - occlusion = 1.0; - } - #endif - gl_FragColor = vec4(0.5 + 0.5 * normal, occlusion); - } - `, -} - -export { PoissionBlur } diff --git a/src/effects/Noise.tsx b/src/effects/Noise.tsx index aa23c3d2..9c2daf7f 100644 --- a/src/effects/Noise.tsx +++ b/src/effects/Noise.tsx @@ -1,4 +1,4 @@ import { NoiseEffect, BlendFunction } from 'postprocessing' -import { wrapEffect } from '../util' +import { wrapEffect } from '../util.tsx' export const Noise = /* @__PURE__ */ wrapEffect(NoiseEffect, { blendFunction: BlendFunction.COLOR_DODGE }) diff --git a/src/effects/Outline.tsx b/src/effects/Outline.tsx index f78b69d8..963fe3f2 100644 --- a/src/effects/Outline.tsx +++ b/src/effects/Outline.tsx @@ -2,9 +2,9 @@ import { OutlineEffect } from 'postprocessing' import { Ref, RefObject, forwardRef, useMemo, useEffect, useContext, useRef } from 'react' import { Object3D } from 'three' import { useThree } from '@react-three/fiber' -import { EffectComposerContext } from '../EffectComposer' -import { selectionContext } from '../Selection' -import { resolveRef } from '../util' +import { EffectComposerContext } from '../EffectComposer.tsx' +import { selectionContext } from '../Selection.tsx' +import { resolveRef } from '../util.tsx' type ObjectRef = RefObject diff --git a/src/effects/SMAA.tsx b/src/effects/SMAA.tsx index 41a927e0..8b747209 100644 --- a/src/effects/SMAA.tsx +++ b/src/effects/SMAA.tsx @@ -1,4 +1,4 @@ import { SMAAEffect } from 'postprocessing' -import { wrapEffect } from '../util' +import { wrapEffect } from '../util.tsx' export const SMAA = /* @__PURE__ */ wrapEffect(SMAAEffect) diff --git a/src/effects/SSAO.tsx b/src/effects/SSAO.tsx index 5bbac10a..44b04e25 100644 --- a/src/effects/SSAO.tsx +++ b/src/effects/SSAO.tsx @@ -1,6 +1,6 @@ import { Ref, forwardRef, useContext, useMemo } from 'react' import { SSAOEffect, BlendFunction } from 'postprocessing' -import { EffectComposerContext } from '../EffectComposer' +import { EffectComposerContext } from '../EffectComposer.tsx' // first two args are camera and texture type SSAOProps = ConstructorParameters[2] diff --git a/src/effects/ScanlineEffect.tsx b/src/effects/ScanlineEffect.tsx index e533b39d..1bbf715f 100644 --- a/src/effects/ScanlineEffect.tsx +++ b/src/effects/ScanlineEffect.tsx @@ -1,5 +1,5 @@ import { ScanlineEffect, BlendFunction } from 'postprocessing' -import { wrapEffect } from '../util' +import { wrapEffect } from '../util.tsx' export const Scanline = /* @__PURE__ */ wrapEffect(ScanlineEffect, { blendFunction: BlendFunction.OVERLAY, diff --git a/src/effects/SelectiveBloom.tsx b/src/effects/SelectiveBloom.tsx index 3c346194..e757603f 100644 --- a/src/effects/SelectiveBloom.tsx +++ b/src/effects/SelectiveBloom.tsx @@ -3,9 +3,9 @@ import type { BloomEffectOptions } from 'postprocessing' import React, { Ref, RefObject, forwardRef, useMemo, useEffect, useContext, useRef } from 'react' import { Object3D } from 'three' import { useThree } from '@react-three/fiber' -import { EffectComposerContext } from '../EffectComposer' -import { selectionContext } from '../Selection' -import { resolveRef } from '../util' +import { EffectComposerContext } from '../EffectComposer.tsx' +import { selectionContext } from '../Selection.tsx' +import { resolveRef } from '../util.tsx' type ObjectRef = RefObject diff --git a/src/effects/Sepia.tsx b/src/effects/Sepia.tsx index f1e4a67c..0e4f8a09 100644 --- a/src/effects/Sepia.tsx +++ b/src/effects/Sepia.tsx @@ -1,4 +1,4 @@ import { SepiaEffect } from 'postprocessing' -import { wrapEffect } from '../util' +import { wrapEffect } from '../util.tsx' export const Sepia = /* @__PURE__ */ wrapEffect(SepiaEffect) diff --git a/src/effects/ShockWave.tsx b/src/effects/ShockWave.tsx index abb3b55b..dc05a3ea 100644 --- a/src/effects/ShockWave.tsx +++ b/src/effects/ShockWave.tsx @@ -1,4 +1,4 @@ import { ShockWaveEffect } from 'postprocessing' -import { wrapEffect } from '../util' +import { wrapEffect } from '../util.tsx' export const ShockWave = /* @__PURE__ */ wrapEffect(ShockWaveEffect) diff --git a/src/effects/TiltShift.tsx b/src/effects/TiltShift.tsx index 5190c59f..20dc8652 100644 --- a/src/effects/TiltShift.tsx +++ b/src/effects/TiltShift.tsx @@ -1,4 +1,4 @@ import { TiltShiftEffect, BlendFunction } from 'postprocessing' -import { wrapEffect } from '../util' +import { wrapEffect } from '../util.tsx' export const TiltShift = /* @__PURE__ */ wrapEffect(TiltShiftEffect, { blendFunction: BlendFunction.ADD }) diff --git a/src/effects/TiltShift2.tsx b/src/effects/TiltShift2.tsx index b1cd9425..93b7b91d 100644 --- a/src/effects/TiltShift2.tsx +++ b/src/effects/TiltShift2.tsx @@ -1,6 +1,6 @@ import { Uniform } from 'three' import { BlendFunction, Effect, EffectAttribute } from 'postprocessing' -import { wrapEffect } from '../util' +import { wrapEffect } from '../util.tsx' const TiltShiftShader = { fragmentShader: ` diff --git a/src/effects/ToneMapping.tsx b/src/effects/ToneMapping.tsx index 11c9f6a7..04fdf654 100644 --- a/src/effects/ToneMapping.tsx +++ b/src/effects/ToneMapping.tsx @@ -1,5 +1,5 @@ import { ToneMappingEffect } from 'postprocessing' -import { type EffectProps, wrapEffect } from '../util' +import { type EffectProps, wrapEffect } from '../util.tsx' export type ToneMappingProps = EffectProps diff --git a/src/effects/Vignette.tsx b/src/effects/Vignette.tsx index ab4afc3a..d25cf952 100644 --- a/src/effects/Vignette.tsx +++ b/src/effects/Vignette.tsx @@ -1,4 +1,4 @@ import { VignetteEffect } from 'postprocessing' -import { wrapEffect } from '../util' +import { wrapEffect } from '../util.tsx' export const Vignette = /* @__PURE__ */ wrapEffect(VignetteEffect) diff --git a/src/effects/Water.tsx b/src/effects/Water.tsx index 837312ad..d9db596c 100644 --- a/src/effects/Water.tsx +++ b/src/effects/Water.tsx @@ -1,6 +1,6 @@ import { Uniform } from 'three' import { BlendFunction, Effect, EffectAttribute } from 'postprocessing' -import { wrapEffect } from '../util' +import { wrapEffect } from '../util.tsx' const WaterShader = { fragmentShader: /* glsl */ ` diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 00000000..187993eb --- /dev/null +++ b/src/index.ts @@ -0,0 +1,39 @@ +export * from './Selection.tsx' +export * from './EffectComposer.tsx' +export * from './util.tsx' + +export * from './effects/Autofocus.tsx' +export * from './effects/LensFlare.tsx' +export * from './effects/Bloom.tsx' +export * from './effects/BrightnessContrast.tsx' +export * from './effects/ChromaticAberration.tsx' +export * from './effects/ColorAverage.tsx' +export * from './effects/ColorDepth.tsx' +export * from './effects/Depth.tsx' +export * from './effects/DepthOfField.tsx' +export * from './effects/DotScreen.tsx' +export * from './effects/Glitch.tsx' +export * from './effects/GodRays.tsx' +export * from './effects/Grid.tsx' +export * from './effects/HueSaturation.tsx' +export * from './effects/Noise.tsx' +export * from './effects/Outline.tsx' +export * from './effects/Pixelation.tsx' +export * from './effects/ScanlineEffect.tsx' +export * from './effects/SelectiveBloom.tsx' +export * from './effects/Sepia.tsx' +export * from './effects/SSAO.tsx' +export * from './effects/SMAA.tsx' +export * from './effects/FXAA.tsx' +export * from './effects/Texture.tsx' +export * from './effects/ToneMapping.tsx' +export * from './effects/Vignette.tsx' +export * from './effects/ShockWave.tsx' +export * from './effects/LUT.tsx' +export * from './effects/TiltShift.tsx' +export * from './effects/TiltShift2.tsx' +export * from './effects/ASCII.tsx' +export * from './effects/Water.tsx' + +// These are not effect passes +export * from './effects/N8AO.tsx' diff --git a/src/index.tsx b/src/index.tsx deleted file mode 100644 index 233fe4d6..00000000 --- a/src/index.tsx +++ /dev/null @@ -1,39 +0,0 @@ -export * from './Selection' -export * from './EffectComposer' -export * from './util' - -export * from './effects/Autofocus' -export * from './effects/LensFlare' -export * from './effects/Bloom' -export * from './effects/BrightnessContrast' -export * from './effects/ChromaticAberration' -export * from './effects/ColorAverage' -export * from './effects/ColorDepth' -export * from './effects/Depth' -export * from './effects/DepthOfField' -export * from './effects/DotScreen' -export * from './effects/Glitch' -export * from './effects/GodRays' -export * from './effects/Grid' -export * from './effects/HueSaturation' -export * from './effects/Noise' -export * from './effects/Outline' -export * from './effects/Pixelation' -export * from './effects/ScanlineEffect' -export * from './effects/SelectiveBloom' -export * from './effects/Sepia' -export * from './effects/SSAO' -export * from './effects/SMAA' -export * from './effects/FXAA' -export * from './effects/Texture' -export * from './effects/ToneMapping' -export * from './effects/Vignette' -export * from './effects/ShockWave' -export * from './effects/LUT' -export * from './effects/TiltShift' -export * from './effects/TiltShift2' -export * from './effects/ASCII' -export * from './effects/Water' - -// These are not effect passes -export * from './effects/N8AO' diff --git a/tsconfig.json b/tsconfig.json index 3ff0a6db..2bd5de3d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,28 +1,19 @@ { "compilerOptions": { - "target": "ES2018", "outDir": "dist", - "declaration": true, - "declarationDir": "dist", - "esModuleInterop": true, - "module": "ESNext", - "moduleResolution": "node", - "jsx": "react-jsx", - "forceConsistentCasingInFileNames": true, - "resolveJsonModule": true, - "isolatedModules": true, - "skipLibCheck": true, + "target": "esnext", + "module": "esnext", + "lib": ["esnext", "dom"], + "moduleResolution": "bundler", "strict": true, + "jsx": "react", + "pretty": true, + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "allowSyntheticDefaultImports": true, + "allowImportingTsExtensions": true, "paths": { - "@react-three/postprocessing": [ - "./" - ] + "@react-three/postprocessing": ["./src"] } - }, - "include": [ - "./src/**/*" - ], - "exclude": [ - "./node_modules/**/*" - ] -} \ No newline at end of file + } +} diff --git a/vite.config.ts b/vite.config.ts index ed9705ee..37862bc8 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,24 +1,54 @@ +import * as vite from 'vite' import * as path from 'node:path' -import { defineConfig } from 'vite' +import { BlendFunction, EffectAttribute } from 'postprocessing' -const inline: string[] = ['n8ao'] - -export default defineConfig({ +export default vite.defineConfig({ + resolve: { + alias: { + '@react-three/postprocessing': path.resolve(__dirname, 'src/index.ts'), + }, + }, build: { - minify: false, - target: 'es2018', sourcemap: true, + target: 'es2020', lib: { - formats: ['es', 'cjs'], - entry: 'src/index.tsx', + formats: ['es'], + entry: 'src/index.ts', fileName: '[name]', }, rollupOptions: { - external: (id: string) => !id.startsWith('.') && !path.isAbsolute(id) && !inline.includes(id), + external: (id: string) => !id.startsWith('.') && !path.isAbsolute(id), output: { - preserveModules: true, - preserveModulesRoot: 'src', + sourcemapExcludeSources: true, }, }, }, + plugins: [ + { + name: 'vite-tsc', + generateBundle() { + this.emitFile({ type: 'asset', fileName: 'index.d.ts', source: `export * from '../src/index.ts'` }) + }, + }, + { + name: 'vite-minify', + transform(code, url) { + if (!url.includes('node_modules')) { + code = code.replaceAll(/EffectAttribute\.(\w+)/g, (_, key) => EffectAttribute[key]) + code = code.replaceAll(/BlendFunction\.(\w+)/g, (_, key) => BlendFunction[key]) + return vite.transformWithEsbuild(code, url) + } + }, + renderChunk: { + order: 'post', + async handler(code, { fileName }) { + // Preserve pure annotations, but remove all other comments and whitespace + code = code.replaceAll('/* @__PURE__ */', '__PURE__ || ') + const result = await vite.transformWithEsbuild(code, fileName, { minify: true, target: 'es2020' }) + result.code = result.code.replaceAll('__PURE__||', '/*@__PURE__*/') + return result + }, + }, + }, + ], }) diff --git a/yarn.lock b/yarn.lock index 805a5fec..4449d5bc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23,47 +23,13 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/runtime@^7.11.2": - version "7.21.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200" - integrity sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q== - dependencies: - regenerator-runtime "^0.13.11" - -"@babel/runtime@^7.16.7", "@babel/runtime@^7.17.8": +"@babel/runtime@^7.17.8": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== dependencies: regenerator-runtime "^0.13.11" -"@chevrotain/cst-dts-gen@10.5.0": - version "10.5.0" - resolved "https://registry.yarnpkg.com/@chevrotain/cst-dts-gen/-/cst-dts-gen-10.5.0.tgz#922ebd8cc59d97241bb01b1b17561a5c1ae0124e" - integrity sha512-lhmC/FyqQ2o7pGK4Om+hzuDrm9rhFYIJ/AXoQBeongmn870Xeb0L6oGEiuR8nohFNL5sMaQEJWCxr1oIVIVXrw== - dependencies: - "@chevrotain/gast" "10.5.0" - "@chevrotain/types" "10.5.0" - lodash "4.17.21" - -"@chevrotain/gast@10.5.0": - version "10.5.0" - resolved "https://registry.yarnpkg.com/@chevrotain/gast/-/gast-10.5.0.tgz#e4e614bc46d17a8892742f38e56cd33f1f3ad162" - integrity sha512-pXdMJ9XeDAbgOWKuD1Fldz4ieCs6+nLNmyVhe2gZVqoO7v8HXuHYs5OV2EzUtbuai37TlOAQHrTDvxMnvMJz3A== - dependencies: - "@chevrotain/types" "10.5.0" - lodash "4.17.21" - -"@chevrotain/types@10.5.0": - version "10.5.0" - resolved "https://registry.yarnpkg.com/@chevrotain/types/-/types-10.5.0.tgz#52a97d74a8cfbc197f054636d93ecd8912d33d21" - integrity sha512-f1MAia0x/pAVPWH/T73BJVyO2XU5tI4/iE7cnxb7tqdNTNhQI3Uq3XkqcoteTmD4t1aM0LbHCJOhgIDn07kl2A== - -"@chevrotain/utils@10.5.0": - version "10.5.0" - resolved "https://registry.yarnpkg.com/@chevrotain/utils/-/utils-10.5.0.tgz#0ee36f65b49b447fbac71b9e5af5c5c6c98ac057" - integrity sha512-hBzuU5+JjB2cqNZyszkDHZgOSrUUT8V3dhgRl8Q9Gp6dAj/H5+KILGjbhDpc3Iy9qmqlm/akuOI2ut9VUtzJxQ== - "@colors/colors@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" @@ -683,78 +649,6 @@ "@pnpm/network.ca-file" "^1.0.1" config-chain "^1.1.11" -"@react-spring/animated@~9.6.1": - version "9.6.1" - resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.6.1.tgz#ccc626d847cbe346f5f8815d0928183c647eb425" - integrity sha512-ls/rJBrAqiAYozjLo5EPPLLOb1LM0lNVQcXODTC1SMtS6DbuBCPaKco5svFUQFMP2dso3O+qcC4k9FsKc0KxMQ== - dependencies: - "@react-spring/shared" "~9.6.1" - "@react-spring/types" "~9.6.1" - -"@react-spring/core@~9.6.1": - version "9.6.1" - resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.6.1.tgz#ebe07c20682b360b06af116ea24e2b609e778c10" - integrity sha512-3HAAinAyCPessyQNNXe5W0OHzRfa8Yo5P748paPcmMowZ/4sMfaZ2ZB6e5x5khQI8NusOHj8nquoutd6FRY5WQ== - dependencies: - "@react-spring/animated" "~9.6.1" - "@react-spring/rafz" "~9.6.1" - "@react-spring/shared" "~9.6.1" - "@react-spring/types" "~9.6.1" - -"@react-spring/rafz@~9.6.1": - version "9.6.1" - resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.6.1.tgz#d71aafb92b78b24e4ff84639f52745afc285c38d" - integrity sha512-v6qbgNRpztJFFfSE3e2W1Uz+g8KnIBs6SmzCzcVVF61GdGfGOuBrbjIcp+nUz301awVmREKi4eMQb2Ab2gGgyQ== - -"@react-spring/shared@~9.6.1": - version "9.6.1" - resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.6.1.tgz#4e2e4296910656c02bd9fd54c559702bc836ac4e" - integrity sha512-PBFBXabxFEuF8enNLkVqMC9h5uLRBo6GQhRMQT/nRTnemVENimgRd+0ZT4yFnAQ0AxWNiJfX3qux+bW2LbG6Bw== - dependencies: - "@react-spring/rafz" "~9.6.1" - "@react-spring/types" "~9.6.1" - -"@react-spring/three@~9.6.1": - version "9.6.1" - resolved "https://registry.yarnpkg.com/@react-spring/three/-/three-9.6.1.tgz#095fcd1dc6509127c33c14486d88289b89baeb9d" - integrity sha512-Tyw2YhZPKJAX3t2FcqvpLRb71CyTe1GvT3V+i+xJzfALgpk10uPGdGaQQ5Xrzmok1340DAeg2pR/MCfaW7b8AA== - dependencies: - "@react-spring/animated" "~9.6.1" - "@react-spring/core" "~9.6.1" - "@react-spring/shared" "~9.6.1" - "@react-spring/types" "~9.6.1" - -"@react-spring/types@~9.6.1": - version "9.6.1" - resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.6.1.tgz#913d3a68c5cbc1124fdb18eff919432f7b6abdde" - integrity sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q== - -"@react-three/drei@^9.68.2": - version "9.68.2" - resolved "https://registry.yarnpkg.com/@react-three/drei/-/drei-9.68.2.tgz#90f80fbae777cd3a2c2505cd7abbd1740b37b53b" - integrity sha512-By462DHLWE2P6yW0jsg5XveV3ZLJRGPYMJHJRZyg1nDiLxAw66R4sVXkO0ClwFOe5bwGhLHgEsqx07sfwBjQqw== - dependencies: - "@babel/runtime" "^7.11.2" - "@react-spring/three" "~9.6.1" - "@use-gesture/react" "^10.2.24" - camera-controls "^2.3.1" - detect-gpu "^5.0.14" - glsl-noise "^0.0.0" - lodash.clamp "^4.0.3" - lodash.omit "^4.5.0" - lodash.pick "^4.4.0" - maath "^0.5.2" - meshline "^3.1.6" - react-composer "^5.0.3" - react-merge-refs "^1.1.0" - stats.js "^0.17.0" - suspend-react "^0.0.8" - three-mesh-bvh "^0.5.23" - three-stdlib "^2.21.8" - troika-three-text "^0.47.1" - utility-types "^3.10.0" - zustand "^3.5.13" - "@react-three/fiber@9.0.0-rc.4": version "9.0.0-rc.4" resolved "https://registry.yarnpkg.com/@react-three/fiber/-/fiber-9.0.0-rc.4.tgz#6abe769b7a4e2baa099381bd5a9494aa66118f24" @@ -1175,18 +1069,6 @@ "@typescript-eslint/types" "5.59.1" eslint-visitor-keys "^3.3.0" -"@use-gesture/core@10.2.26": - version "10.2.26" - resolved "https://registry.yarnpkg.com/@use-gesture/core/-/core-10.2.26.tgz#c2fc4aa7d36cee7319a98a898b0698c66b01663e" - integrity sha512-NyFpQ3iID9iFBROXyyvU1D0NK+t+dP+WAVByhCvqHUenpxLD2NlRLVRpoK3XGGwksr6mU3PvZ2Nm4q0q+gLJPA== - -"@use-gesture/react@^10.2.24": - version "10.2.26" - resolved "https://registry.yarnpkg.com/@use-gesture/react/-/react-10.2.26.tgz#593549fed30ebcac71cfd197993eaede0795c098" - integrity sha512-0QhaE5mhaQbFlip4MX7n1nwCX8gax6Da1LsP2fZ/BU6xW9zyEmV6NX7DPelDxq1rr2NiBJh30vx9RIp80YeA/A== - dependencies: - "@use-gesture/core" "10.2.26" - "@vitest/expect@2.1.8": version "2.1.8" resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-2.1.8.tgz#13fad0e8d5a0bf0feb675dcf1d1f1a36a1773bc1" @@ -1246,11 +1128,6 @@ loupe "^3.1.2" tinyrainbow "^1.2.0" -"@webgpu/glslang@^0.0.15": - version "0.0.15" - resolved "https://registry.yarnpkg.com/@webgpu/glslang/-/glslang-0.0.15.tgz#f5ccaf6015241e6175f4b90906b053f88483d1f2" - integrity sha512-niT+Prh3Aff8Uf1MVBVUsaNjFj9rJAKDXuoHIKiQbB+6IUP/3J3JIhBNyZ7lDhytvXxw6ppgnwKZdDJ08UMj4Q== - JSONStream@^1.0.4: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" @@ -1328,13 +1205,6 @@ ajv@^6.10.0, ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ansi-escapes@^4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - ansi-escapes@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.0.tgz#8a13ce75286f417f1963487d86ba9f90dccf9947" @@ -1347,11 +1217,6 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -1366,11 +1231,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0, ansi-styles@^4.3.0: dependencies: color-convert "^2.0.1" -ansi-styles@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - ansicolors@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" @@ -1482,11 +1342,6 @@ assertion-error@^2.0.1: resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-2.0.1.tgz#f641a196b335690b1070bf00b6e7593fec190bf7" integrity sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA== -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - available-typed-arrays@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" @@ -1507,13 +1362,6 @@ before-after-hook@^2.2.0: resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== -bidi-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bidi-js/-/bidi-js-1.0.2.tgz#1a497a762c2ddea377429d2649c9ce0f8a91527f" - integrity sha512-rzSy/k7WdX5zOyeHHCOixGXbCHkyogkxPKL2r8QtzHmVQDiWCXUWa18bLdMWT9CYMLOYTjWpTHawuev2ouYJVw== - dependencies: - require-from-string "^2.0.2" - bin-links@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-4.0.1.tgz#afeb0549e642f61ff889b58ea2f8dca78fb9d8d3" @@ -1645,11 +1493,6 @@ camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camera-controls@^2.3.1: - version "2.3.4" - resolved "https://registry.yarnpkg.com/camera-controls/-/camera-controls-2.3.4.tgz#f372b5a4012b474df0ed0c67da7a3198d7efee0b" - integrity sha512-swhc87YVHf9te0glBI7Oa/QBgsSCL4ZxtoR4V3vE6l7mEebsYRNL8y7Y2m2E6MrT0UTphM1S7mQqs0Sp7QTZ2g== - cardinal@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-2.1.1.tgz#7cc1055d822d212954d07b085dea251cc7bc5505" @@ -1669,11 +1512,6 @@ chai@^5.1.2: loupe "^3.1.0" pathval "^2.0.0" -chalk@5.2.0, chalk@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" - integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== - chalk@^2.0.0, chalk@^2.3.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -1691,23 +1529,16 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" + integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== + check-error@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/check-error/-/check-error-2.1.1.tgz#87eb876ae71ee388fa0471fe423f494be1d96ccc" integrity sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw== -chevrotain@^10.1.2: - version "10.5.0" - resolved "https://registry.yarnpkg.com/chevrotain/-/chevrotain-10.5.0.tgz#9c1dc62ef0753bb562dbe521b5f72d041bad624e" - integrity sha512-Pkv5rBY3+CsHOYfV5g/Vs5JY9WTHHDEKOlohI2XeygaZhUeqhAlldZ8Hz9cRmxu709bvS08YzxHdTPHhffc13A== - dependencies: - "@chevrotain/cst-dts-gen" "10.5.0" - "@chevrotain/gast" "10.5.0" - "@chevrotain/types" "10.5.0" - "@chevrotain/utils" "10.5.0" - lodash "4.17.21" - regexp-to-ast "0.5.0" - chownr@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" @@ -1745,13 +1576,6 @@ cli-columns@^4.0.0: string-width "^4.2.3" strip-ansi "^6.0.1" -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - dependencies: - restore-cursor "^3.1.0" - cli-table3@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" @@ -1761,22 +1585,6 @@ cli-table3@^0.6.3: optionalDependencies: "@colors/colors" "1.5.0" -cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== - dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" - -cli-truncate@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" - integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== - dependencies: - slice-ansi "^5.0.0" - string-width "^5.0.0" - cliui@^7.0.4: version "7.0.4" resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" @@ -1834,11 +1642,6 @@ color-support@^1.1.3: resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== -colorette@^2.0.19: - version "2.0.20" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" - integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== - columnify@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" @@ -1847,11 +1650,6 @@ columnify@^1.6.0: strip-ansi "^6.0.1" wcwidth "^1.0.0" -commander@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" - integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== - common-ancestor-path@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" @@ -2056,13 +1854,6 @@ deprecation@^2.0.0, deprecation@^2.3.1: resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== -detect-gpu@^5.0.14: - version "5.0.23" - resolved "https://registry.yarnpkg.com/detect-gpu/-/detect-gpu-5.0.23.tgz#b1a36f24ce0e15c33bc2dcf08ab21b1a6f4b973b" - integrity sha512-16bbvNSuGxlznAj7XNW8/7M/EtPuWoSGk1X1EJCipQ/F5JQK6tWMdU2xVInXGTRUMKmsDtZg+trnZ/bj0Vt/EA== - dependencies: - webgl-constants "^1.1.1" - diff@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" @@ -2108,21 +1899,11 @@ duplexer2@~0.1.0: dependencies: readable-stream "^2.0.2" -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== - emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== - encoding@^0.1.13: version "0.1.13" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" @@ -2819,17 +2600,6 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob@^10.0.0: - version "10.2.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.2.2.tgz#ce2468727de7e035e8ecf684669dc74d0526ab75" - integrity sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ== - dependencies: - foreground-child "^3.1.0" - jackspeak "^2.0.3" - minimatch "^9.0.0" - minipass "^5.0.0" - path-scurry "^1.7.0" - glob@^10.2.2, glob@^10.2.4: version "10.2.6" resolved "https://registry.yarnpkg.com/glob/-/glob-10.2.6.tgz#1e27edbb3bbac055cb97113e27a066c100a4e5e1" @@ -2890,11 +2660,6 @@ globby@^11.0.0, globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -glsl-noise@^0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/glsl-noise/-/glsl-noise-0.0.0.tgz#367745f3a33382c0eeec4cb54b7e99cfc1d7670b" - integrity sha512-b/ZCF6amfAUb7dJM/MxRs7AetQEahYzJ8PtgfrmEdtw6uyGOr+ZSGtgjFm6mfsBkxJ4d2W7kg+Nlqzqvn3Bc0w== - gopd@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" @@ -3043,11 +2808,6 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -husky@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" - integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== - iconv-lite@^0.6.2: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" @@ -3240,11 +3000,6 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-fullwidth-code-point@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" - integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== - is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" @@ -3496,11 +3251,6 @@ kind-of@^6.0.3: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -ktx-parse@^0.4.5: - version "0.4.5" - resolved "https://registry.yarnpkg.com/ktx-parse/-/ktx-parse-0.4.5.tgz#79905e22281a9d3e602b2ff522df1ee7d1813aa6" - integrity sha512-MK3FOody4TXbFf8Yqv7EBbySw7aPvEcPX++Ipt6Sox+/YMFvR5xaTyhfNSk1AEmMy+RYIw81ctN4IMxCB8OAlg== - levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -3623,11 +3373,6 @@ libnpmversion@^4.0.2: proc-log "^3.0.0" semver "^7.3.7" -lilconfig@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" - integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== - lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" @@ -3638,39 +3383,6 @@ lines-and-columns@^2.0.3: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.3.tgz#b2f0badedb556b747020ab8ea7f0373e22efac1b" integrity sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w== -lint-staged@^13.2.2: - version "13.2.2" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.2.2.tgz#5e711d3139c234f73402177be2f8dd312e6508ca" - integrity sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA== - dependencies: - chalk "5.2.0" - cli-truncate "^3.1.0" - commander "^10.0.0" - debug "^4.3.4" - execa "^7.0.0" - lilconfig "2.1.0" - listr2 "^5.0.7" - micromatch "^4.0.5" - normalize-path "^3.0.0" - object-inspect "^1.12.3" - pidtree "^0.6.0" - string-argv "^0.3.1" - yaml "^2.2.2" - -listr2@^5.0.7: - version "5.0.8" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.8.tgz#a9379ffeb4bd83a68931a65fb223a11510d6ba23" - integrity sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA== - dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.19" - log-update "^4.0.0" - p-map "^4.0.0" - rfdc "^1.3.0" - rxjs "^7.8.0" - through "^2.3.8" - wrap-ansi "^7.0.0" - load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" @@ -3720,11 +3432,6 @@ lodash.capitalize@^4.2.1: resolved "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz#f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9" integrity sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw== -lodash.clamp@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/lodash.clamp/-/lodash.clamp-4.0.3.tgz#5c24bedeeeef0753560dc2b4cb4671f90a6ddfaa" - integrity sha512-HvzRFWjtcguTW7yd8NJBshuNaCa8aqNFtnswdT7f/cMd/1YKy5Zzoq4W/Oxvnx9l7aeY258uSdDfM793+eLsVg== - lodash.escaperegexp@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" @@ -3750,36 +3457,16 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.omit@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" - integrity sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg== - -lodash.pick@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" - integrity sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q== - lodash.uniqby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" integrity sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww== -lodash@4.17.21, lodash@^4.17.15, lodash@^4.17.21, lodash@^4.17.4: +lodash@^4.17.15, lodash@^4.17.21, lodash@^4.17.4: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== - dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" - loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -3809,11 +3496,6 @@ lru-cache@^9.0.0: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-9.1.1.tgz#c58a93de58630b688de39ad04ef02ef26f1902f1" integrity sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A== -maath@^0.5.2: - version "0.5.3" - resolved "https://registry.yarnpkg.com/maath/-/maath-0.5.3.tgz#777a1f9b8463c6ffb199ea43406874a357c0cd58" - integrity sha512-ut63A4zTd9abtpi+sOHW1fPWPtAFrjK0E17eAthx1k93W/T2cWLKV5oaswyotJVDvvW1EXSdokAqhK5KOu0Qdw== - maath@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/maath/-/maath-0.6.0.tgz#7841d0fb95bbb37d19b08b7c5458ef70190950d2" @@ -3923,17 +3605,12 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -meshline@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/meshline/-/meshline-3.1.6.tgz#eee67d9b0fd9841652cc1dc2d3833093ae8e68ca" - integrity sha512-8JZJOdaL5oz3PI/upG8JvP/5FfzYUOhrkJ8np/WKvXzl0/PZ2V9pqTvCIjSKv+w9ccg2xb+yyBhXAwt6ier3ug== - meshoptimizer@~0.18.1: version "0.18.1" resolved "https://registry.yarnpkg.com/meshoptimizer/-/meshoptimizer-0.18.1.tgz#cdb90907f30a7b5b1190facd3b7ee6b7087797d8" integrity sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw== -micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: +micromatch@^4.0.2, micromatch@^4.0.4: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== @@ -3946,11 +3623,6 @@ mime@^3.0.0: resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - mimic-fn@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" @@ -4096,11 +3768,6 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mmd-parser@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mmd-parser/-/mmd-parser-1.0.4.tgz#87cc05782cb5974ca854f0303fc5147bc9d690e7" - integrity sha512-Qi0VCU46t2IwfGv5KF0+D/t9cizcDug7qnNoy9Ggk7aucp0tssV8IwTMkBlDbm+VqAf3cdQHTCARKSsuS2MYFg== - modify-values@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" @@ -4121,10 +3788,10 @@ mute-stream@~1.0.0: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== -n8ao@^1.6.6: - version "1.6.6" - resolved "https://registry.yarnpkg.com/n8ao/-/n8ao-1.6.6.tgz#d444b3778ca05f48a3cc9b1d43d8847d86f98c2b" - integrity sha512-sOu+wsJzrxd3ZMDQBVbzTt8Z3d8sQvdkZgt5top9ysVbvs1a0lpFGYxGPCxUW+rJfD9Y/QrTYn9IfW7AOqGqvw== +n8ao@^1.9.4: + version "1.9.4" + resolved "https://registry.yarnpkg.com/n8ao/-/n8ao-1.9.4.tgz#be222531fddcb5099614be452fc492db98a2947d" + integrity sha512-gbpAorQecZn2oGK/rheHxPTNwOxVsEC6216+Jr9tXHUk9L5VCE2q/uxsSrQpfNkZDoCmQHf7oSg3SYFWCAt0wg== nanoid@^3.3.6: version "3.3.6" @@ -4235,11 +3902,6 @@ normalize-package-data@^5.0.0: semver "^7.3.5" validate-npm-package-license "^3.0.4" -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - normalize-url@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.0.tgz#593dbd284f743e8dcf6a5ddf8fadff149c82701a" @@ -4490,13 +4152,6 @@ once@^1.3.0, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - onetime@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" @@ -4504,14 +4159,6 @@ onetime@^6.0.0: dependencies: mimic-fn "^4.0.0" -opentype.js@^1.3.3: - version "1.3.4" - resolved "https://registry.yarnpkg.com/opentype.js/-/opentype.js-1.3.4.tgz#1c0e72e46288473cc4a4c6a2dc60fd7fe6020d77" - integrity sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw== - dependencies: - string.prototype.codepointat "^0.2.1" - tiny-inflate "^1.0.3" - optionator@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" @@ -4774,11 +4421,6 @@ picomatch@^2.3.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pidtree@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" - integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== - pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" @@ -4818,10 +4460,10 @@ postcss@^8.4.43: picocolors "^1.1.1" source-map-js "^1.2.1" -postprocessing@^6.32.1: - version "6.32.1" - resolved "https://registry.yarnpkg.com/postprocessing/-/postprocessing-6.32.1.tgz#a91fa4101246620e12113cded7028d9e4b504845" - integrity sha512-GiUv5vN/QCWnPJ3DdYPYn/4V1amps94T/0jFPSUL40KfaLCkfE9yPudzTtJJQjs168QNpwkmnvYF9RcP3HiAWA== +postprocessing@^6.36.6: + version "6.36.6" + resolved "https://registry.yarnpkg.com/postprocessing/-/postprocessing-6.36.6.tgz#5717ee9f0af43c872e620366a181efc4b6950edd" + integrity sha512-mjJjoXbC97XMV6iQVhOZYNjD5X93o3+/zpYm9oRmsyjP3LjfwedT8PgusECTk+s5DZeZoJ8vA9htdWuH8JH+mQ== potpack@^1.0.1: version "1.0.2" @@ -4890,7 +4532,7 @@ promzard@^1.0.0: dependencies: read "^2.0.0" -prop-types@^15.6.0, prop-types@^15.8.1: +prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -4939,13 +4581,6 @@ rc@^1.2.8: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-composer@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/react-composer/-/react-composer-5.0.3.tgz#7beb9513da5e8687f4f434ea1333ef36a4f3091b" - integrity sha512-1uWd07EME6XZvMfapwZmc7NgCZqDemcvicRi3wMJzXsQLvZ3L7fTHVyPy1bZdnWXM4iPjYuNE+uJ41MLKeTtnA== - dependencies: - prop-types "^15.6.0" - react-dom@^19.0.0: version "19.0.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.0.0.tgz#43446f1f01c65a4cd7f7588083e686a6726cfb57" @@ -4958,11 +4593,6 @@ react-is@^16.13.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-merge-refs@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/react-merge-refs/-/react-merge-refs-1.1.0.tgz#73d88b892c6c68cbb7a66e0800faa374f4c38b06" - integrity sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ== - react-reconciler@0.31.0: version "0.31.0" resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.31.0.tgz#6b7390fe8fab59210daf523d7400943973de1458" @@ -5105,11 +4735,6 @@ regenerator-runtime@^0.13.11: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -regexp-to-ast@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz#56c73856bee5e1fef7f73a00f1473452ab712a24" - integrity sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw== - regexp.prototype.flags@^1.4.3: version "1.5.0" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" @@ -5131,11 +4756,6 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -5164,14 +4784,6 @@ resolve@^2.0.0-next.4: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" @@ -5187,11 +4799,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== - rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -5199,13 +4806,6 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rimraf@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.0.tgz#5bda14e410d7e4dd522154891395802ce032c2cb" - integrity sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g== - dependencies: - glob "^10.0.0" - rollup@^3.21.0: version "3.21.6" resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.21.6.tgz#f5649ccdf8fcc7729254faa457cbea9547eb86db" @@ -5248,13 +4848,6 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^7.8.0: - version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== - dependencies: - tslib "^2.1.0" - safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -5385,7 +4978,7 @@ siginfo@^2.0.0: resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== -signal-exit@^3.0.2, signal-exit@^3.0.7: +signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -5418,32 +5011,6 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" - integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== - dependencies: - ansi-styles "^6.0.0" - is-fullwidth-code-point "^4.0.0" - smart-buffer@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" @@ -5552,11 +5119,6 @@ stackback@0.0.2: resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== -stats.js@^0.17.0: - version "0.17.0" - resolved "https://registry.yarnpkg.com/stats.js/-/stats.js-0.17.0.tgz#b1c3dc46d94498b578b7fd3985b81ace7131cc7d" - integrity sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw== - std-env@^3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.8.0.tgz#b56ffc1baf1a29dcc80a3bdf11d7fca7c315e7d5" @@ -5570,11 +5132,6 @@ stream-combiner2@~1.1.1: duplexer2 "~0.1.0" readable-stream "^2.0.2" -string-argv@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" - integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== - "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -5584,20 +5141,6 @@ string-argv@^0.3.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^5.0.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -string.prototype.codepointat@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz#004ad44c8afc727527b108cd462b4d971cd469bc" - integrity sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg== - string.prototype.matchall@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" @@ -5660,13 +5203,6 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-ansi@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" - integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== - dependencies: - ansi-regex "^6.0.1" - strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -5721,11 +5257,6 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -suspend-react@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/suspend-react/-/suspend-react-0.0.8.tgz#b0740c1386b4eb652f17affe4339915ee268bd31" - integrity sha512-ZC3r8Hu1y0dIThzsGw0RLZplnX9yXwfItcvaIzJc2VQVi8TGyGDlu92syMB5ulybfvGLHAI5Ghzlk23UBPF8xg== - suspend-react@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/suspend-react/-/suspend-react-0.1.3.tgz#a52f49d21cfae9a2fb70bd0c68413d3f9d90768e" @@ -5780,28 +5311,6 @@ text-table@^0.2.0, text-table@~0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== -three-mesh-bvh@^0.5.23: - version "0.5.23" - resolved "https://registry.yarnpkg.com/three-mesh-bvh/-/three-mesh-bvh-0.5.23.tgz#08e5b629144b48b11acbd433519680e457d398ed" - integrity sha512-nyk+MskdyDgECqkxdv57UjazqqhrMi+Al9PxJN6yFtx1CTW4r0eCQ27FtyYKY5gCIWhxjtNfWYDPVy8lzx6LkA== - -three-stdlib@^2.21.8: - version "2.21.11" - resolved "https://registry.yarnpkg.com/three-stdlib/-/three-stdlib-2.21.11.tgz#ee058f1522edf17f994b4a80307568dd553bd52e" - integrity sha512-fFeaMOc3lpup4A/FrSKHmp/PNYmyxyV8dzMorJpYyZBdIGAn5BmokGSN9ei8t7Wv9thxCW+VLaxA6csxTl5MYg== - dependencies: - "@babel/runtime" "^7.16.7" - "@types/offscreencanvas" "^2019.6.4" - "@webgpu/glslang" "^0.0.15" - chevrotain "^10.1.2" - draco3d "^1.4.1" - fflate "^0.6.9" - ktx-parse "^0.4.5" - mmd-parser "^1.0.4" - opentype.js "^1.3.3" - potpack "^1.0.1" - zstddec "^0.0.2" - three-stdlib@^2.35.7: version "2.35.7" resolved "https://registry.yarnpkg.com/three-stdlib/-/three-stdlib-2.35.7.tgz#13d345722d33328e2ffa820afadbf35a7b241c5b" @@ -5834,16 +5343,11 @@ through2@~2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" -through@2, "through@>=2.2.7 <3", through@^2.3.8: +through@2, "through@>=2.2.7 <3": version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== -tiny-inflate@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4" - integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw== - tiny-relative-date@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07" @@ -5901,26 +5405,6 @@ trim-newlines@^3.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== -troika-three-text@^0.47.1: - version "0.47.1" - resolved "https://registry.yarnpkg.com/troika-three-text/-/troika-three-text-0.47.1.tgz#4a239b122242d7ea93dbbf66a9f1863eca83d979" - integrity sha512-/fPRUmxCkXxyUT8k6REC/aWeFzKbNr37ivrkrplSJNb3JcBUXvVt8MT0Ac5wTUvFsYTviYWprYS4/8Laen08WA== - dependencies: - bidi-js "^1.0.2" - troika-three-utils "^0.47.0" - troika-worker-utils "^0.47.0" - webgl-sdf-generator "1.1.1" - -troika-three-utils@^0.47.0: - version "0.47.0" - resolved "https://registry.yarnpkg.com/troika-three-utils/-/troika-three-utils-0.47.0.tgz#4749334ad2ae043767916f79bcc365cbb5ea64b5" - integrity sha512-yoVTQxVbpQX3a55giIwqwq6hyJA6oYvq7kaNGwFTeicoWmTZCqqTbytafx1gcuL5umrtw5MYgsxYUSOha+xp5w== - -troika-worker-utils@^0.47.0: - version "0.47.0" - resolved "https://registry.yarnpkg.com/troika-worker-utils/-/troika-worker-utils-0.47.0.tgz#bea382fee55333e177955e7ba6497d64b9d9388d" - integrity sha512-PSUc9vunDEkbE23jpgXD3PcF96jQHKjgMjS+4o5g6DEK/ZAPTnldb+FNddhppawfUcuraMFrslo0GmIC8UpEmA== - tsconfig-paths@^3.14.1: version "3.14.2" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" @@ -5936,11 +5420,6 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.1.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" - integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== - tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -5974,11 +5453,6 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - type-fest@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" @@ -6105,11 +5579,6 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -utility-types@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.10.0.tgz#ea4148f9a741015f05ed74fd615e1d20e6bed82b" - integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== - validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -6196,16 +5665,6 @@ wcwidth@^1.0.0: dependencies: defaults "^1.0.3" -webgl-constants@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/webgl-constants/-/webgl-constants-1.1.1.tgz#f9633ee87fea56647a60b9ce735cbdfb891c6855" - integrity sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg== - -webgl-sdf-generator@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/webgl-sdf-generator/-/webgl-sdf-generator-1.1.1.tgz#3e1b422b3d87cd3cc77f2602c9db63bc0f6accbd" - integrity sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA== - webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -6281,15 +5740,6 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -6327,11 +5777,6 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.2.tgz#ec551ef37326e6d42872dad1970300f8eb83a073" - integrity sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA== - yargs-parser@^20.2.3: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" @@ -6365,16 +5810,6 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== -zstddec@^0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/zstddec/-/zstddec-0.0.2.tgz#57e2f28dd1ff56b750e07d158a43f0611ad9eeb4" - integrity sha512-DCo0oxvcvOTGP/f5FA6tz2Z6wF+FIcEApSTu0zV5sQgn9hoT5lZ9YRAKUraxt9oP7l4e8TnNdi8IZTCX6WCkwA== - -zustand@^3.5.13: - version "3.7.2" - resolved "https://registry.yarnpkg.com/zustand/-/zustand-3.7.2.tgz#7b44c4f4a5bfd7a8296a3957b13e1c346f42514d" - integrity sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA== - zustand@^4.1.2: version "4.5.5" resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.5.5.tgz#f8c713041543715ec81a2adda0610e1dc82d4ad1" From f050f11bdbae807bb8d499a71a70aa6733b447f9 Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Sat, 18 Jan 2025 15:59:15 -0600 Subject: [PATCH 09/19] chore: resolve conflicts --- src/effects/LensFlare.tsx | 7 +++---- src/effects/Ramp.tsx | 2 +- src/index.ts | 1 + 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/effects/LensFlare.tsx b/src/effects/LensFlare.tsx index d41ca39f..5568b2d2 100644 --- a/src/effects/LensFlare.tsx +++ b/src/effects/LensFlare.tsx @@ -2,13 +2,13 @@ // From https://github.com/ektogamat/R3F-Ultimate-Lens-Flare import * as THREE from 'three' -import { useEffect, useState, useContext, useRef } from 'react' +import React, { useEffect, useState, useContext, useRef } from 'react' import { useFrame, useThree } from '@react-three/fiber' import { BlendFunction, Effect } from 'postprocessing' import { easing } from 'maath' -import { EffectComposerContext } from '../EffectComposer' -import { wrapEffect } from '../util' +import { EffectComposerContext } from '../EffectComposer.tsx' +import { wrapEffect } from '../util.tsx' const LensFlareShader = { fragmentShader: /* glsl */ ` @@ -586,7 +586,6 @@ export const LensFlare = ({ return ( Date: Sat, 18 Jan 2025 16:21:49 -0600 Subject: [PATCH 10/19] chore: lint --- src/effects/SelectiveBloom.tsx | 48 ++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/src/effects/SelectiveBloom.tsx b/src/effects/SelectiveBloom.tsx index 75dafb35..31a0fd4e 100644 --- a/src/effects/SelectiveBloom.tsx +++ b/src/effects/SelectiveBloom.tsx @@ -46,25 +46,35 @@ export const SelectiveBloom = /* @__PURE__ */ forwardRef(function SelectiveBloom const invalidate = useThree((state) => state.invalidate) const { scene, camera } = useContext(EffectComposerContext) - const effect = useMemo( - () => { - const effect = new SelectiveBloomEffect(scene, camera, { - blendFunction: BlendFunction.ADD, - luminanceThreshold, - luminanceSmoothing, - intensity, - width, - height, - kernelSize, - mipmapBlur, - ...props, - }); - effect.inverted = inverted; - effect.ignoreBackground = ignoreBackground; - return effect; - }, - [scene, camera, luminanceThreshold, luminanceSmoothing, intensity, width, height, kernelSize, mipmapBlur, inverted, ignoreBackground, props] - ) + const effect = useMemo(() => { + const effect = new SelectiveBloomEffect(scene, camera, { + blendFunction: BlendFunction.ADD, + luminanceThreshold, + luminanceSmoothing, + intensity, + width, + height, + kernelSize, + mipmapBlur, + ...props, + }) + effect.inverted = inverted + effect.ignoreBackground = ignoreBackground + return effect + }, [ + scene, + camera, + luminanceThreshold, + luminanceSmoothing, + intensity, + width, + height, + kernelSize, + mipmapBlur, + inverted, + ignoreBackground, + props, + ]) const api = useContext(selectionContext) From afad0efe7ddd267c483e0013bd538ec2bd01366e Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Sat, 18 Jan 2025 16:25:51 -0600 Subject: [PATCH 11/19] fix: use react-jsx --- tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tsconfig.json b/tsconfig.json index 2bd5de3d..84352d08 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,7 +6,7 @@ "lib": ["esnext", "dom"], "moduleResolution": "bundler", "strict": true, - "jsx": "react", + "jsx": "react-jsx", "pretty": true, "noEmit": true, "forceConsistentCasingInFileNames": true, From dd0f276258df4b9c4f3e70a92a09c520ccbef546 Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Mon, 20 Jan 2025 17:14:19 -0600 Subject: [PATCH 12/19] 3.0.0-rc.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 87c75cb9..a227a62a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@react-three/postprocessing", - "version": "0.0.0-semantic-release", + "version": "3.0.0-rc.0", "description": "postprocessing wrapper for React and @react-three/fiber", "keywords": [ "postprocessing", From afe0515c6307ea13aed2f676e05dd65be00a2d8c Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Wed, 22 Jan 2025 23:30:15 -0600 Subject: [PATCH 13/19] fix(types): remove use of ambient three (#320) --- package.json | 3 +-- src/EffectComposer.tsx | 16 +++++++--------- src/effects/ASCII.tsx | 2 +- yarn.lock | 39 +-------------------------------------- 4 files changed, 10 insertions(+), 50 deletions(-) diff --git a/package.json b/package.json index a227a62a..71fdd7a0 100644 --- a/package.json +++ b/package.json @@ -34,8 +34,7 @@ "dependencies": { "maath": "^0.6.0", "n8ao": "^1.9.4", - "postprocessing": "^6.36.6", - "three-stdlib": "^2.35.7" + "postprocessing": "^6.36.6" }, "devDependencies": { "@react-three/fiber": "9.0.0-rc.4", diff --git a/src/EffectComposer.tsx b/src/EffectComposer.tsx index 0044fe29..098253b1 100644 --- a/src/EffectComposer.tsx +++ b/src/EffectComposer.tsx @@ -1,4 +1,4 @@ -import type { TextureDataType, Group } from 'three' +import type { TextureDataType, Group, Camera, Scene } from 'three' import { HalfFloatType, NoToneMapping } from 'three' import { type JSX, @@ -22,14 +22,13 @@ import { Pass, EffectAttribute, } from 'postprocessing' -import { isWebGL2Available } from 'three-stdlib' export const EffectComposerContext = /* @__PURE__ */ createContext<{ composer: EffectComposerImpl normalPass: NormalPass | null downSamplingPass: DepthDownsamplingPass | null - camera: THREE.Camera - scene: THREE.Scene + camera: Camera + scene: Scene resolutionScale?: number }>(null!) @@ -45,8 +44,8 @@ export type EffectComposerProps = { multisampling?: number frameBufferType?: TextureDataType renderPriority?: number - camera?: THREE.Camera - scene?: THREE.Scene + camera?: Camera + scene?: Scene } const isConvolution = (effect: Effect): boolean => @@ -76,12 +75,11 @@ export const EffectComposer = /* @__PURE__ */ memo( const camera = _camera || defaultCamera const [composer, normalPass, downSamplingPass] = useMemo(() => { - const webGL2Available = isWebGL2Available() // Initialize composer const effectComposer = new EffectComposerImpl(gl, { depthBuffer, stencilBuffer, - multisampling: multisampling > 0 && webGL2Available ? multisampling : 0, + multisampling, frameBufferType, }) @@ -95,7 +93,7 @@ export const EffectComposer = /* @__PURE__ */ memo( normalPass = new NormalPass(scene, camera) normalPass.enabled = false effectComposer.addPass(normalPass) - if (resolutionScale !== undefined && webGL2Available) { + if (resolutionScale !== undefined) { downSamplingPass = new DepthDownsamplingPass({ normalBuffer: normalPass.texture, resolutionScale }) downSamplingPass.enabled = false effectComposer.addPass(downSamplingPass) diff --git a/src/effects/ASCII.tsx b/src/effects/ASCII.tsx index fcd14d4e..f25cb45f 100644 --- a/src/effects/ASCII.tsx +++ b/src/effects/ASCII.tsx @@ -82,7 +82,7 @@ class ASCIIEffect extends Effect { } /** Draws the characters on a Canvas and returns a texture */ - public createCharactersTexture(characters: string, font: string, fontSize: number): THREE.Texture { + public createCharactersTexture(characters: string, font: string, fontSize: number): Texture { const canvas = document.createElement('canvas') const SIZE = 1024 const MAX_PER_ROW = 16 diff --git a/yarn.lock b/yarn.lock index 4449d5bc..b75fa512 100644 --- a/yarn.lock +++ b/yarn.lock @@ -865,11 +865,6 @@ resolved "https://registry.yarnpkg.com/@types/debounce/-/debounce-1.2.4.tgz#cb7e85d9ad5ababfac2f27183e8ac8b576b2abb3" integrity sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw== -"@types/draco3d@^1.4.0": - version "1.4.2" - resolved "https://registry.yarnpkg.com/@types/draco3d/-/draco3d-1.4.2.tgz#7faccb809db2a5e19b9efb97c5f2eb9d64d527ea" - integrity sha512-goh23EGr6CLV6aKPwN1p8kBD/7tT5V/bLpToSbarKrwVejqNrspVrv8DhliteYkkhZYrlq/fwKZRRUzH4XN88w== - "@types/estree@1.0.6", "@types/estree@^1.0.0": version "1.0.6" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" @@ -902,11 +897,6 @@ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== -"@types/offscreencanvas@^2019.6.4": - version "2019.7.0" - resolved "https://registry.yarnpkg.com/@types/offscreencanvas/-/offscreencanvas-2019.7.0.tgz#e4a932069db47bb3eabeb0b305502d01586fa90d" - integrity sha512-PGcyveRIpL1XIqK8eBsmRBt76eFgtzuPiSTyKHZxnGemp2yzGzWpjYKAfK3wIMiU7eH+851yEpiuP8JZerTmWg== - "@types/prop-types@*": version "15.7.5" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" @@ -980,11 +970,6 @@ resolved "https://registry.yarnpkg.com/@types/webxr/-/webxr-0.5.1.tgz#4908349419104bd476a4252d04e4c3abb496748d" integrity sha512-xlFXPfgJR5vIuDefhaHuUM9uUgvPaXB6GKdXy2gdEh8gBWQZ2ul24AJz3foUd8NNKlSTQuWYJpCb1/pL81m1KQ== -"@types/webxr@^0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@types/webxr/-/webxr-0.5.2.tgz#5d9627b0ffe223aa3b166de7112ac8a9460dc54f" - integrity sha512-szL74BnIcok9m7QwYtVmQ+EdIKwbjPANudfuvDrAF8Cljg9MKUlIoc1w5tjj9PMpeSH3U1Xnx//czQybJ0EfSw== - "@typescript-eslint/eslint-plugin@^5.59.1": version "5.59.1" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.1.tgz#9b09ee1541bff1d2cebdcb87e7ce4a4003acde08" @@ -1887,11 +1872,6 @@ dot-prop@^5.1.0: dependencies: is-obj "^2.0.0" -draco3d@^1.4.1: - version "1.5.6" - resolved "https://registry.yarnpkg.com/draco3d/-/draco3d-1.5.6.tgz#0d570a9792e3a3a9fafbfea065b692940441c626" - integrity sha512-+3NaRjWktb5r61ZFoDejlykPEFKT5N/LkbXsaddlw6xNSXBanUYpFc2AXXpbJDilPHazcSreU/DpQIaxfX0NfQ== - duplexer2@~0.1.0: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" @@ -2353,7 +2333,7 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -fflate@^0.6.9, fflate@~0.6.10: +fflate@~0.6.10: version "0.6.10" resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.6.10.tgz#5f40f9659205936a2d18abf88b2e7781662b6d43" integrity sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg== @@ -4465,11 +4445,6 @@ postprocessing@^6.36.6: resolved "https://registry.yarnpkg.com/postprocessing/-/postprocessing-6.36.6.tgz#5717ee9f0af43c872e620366a181efc4b6950edd" integrity sha512-mjJjoXbC97XMV6iQVhOZYNjD5X93o3+/zpYm9oRmsyjP3LjfwedT8PgusECTk+s5DZeZoJ8vA9htdWuH8JH+mQ== -potpack@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/potpack/-/potpack-1.0.2.tgz#23b99e64eb74f5741ffe7656b5b5c4ddce8dfc14" - integrity sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ== - prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -5311,18 +5286,6 @@ text-table@^0.2.0, text-table@~0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== -three-stdlib@^2.35.7: - version "2.35.7" - resolved "https://registry.yarnpkg.com/three-stdlib/-/three-stdlib-2.35.7.tgz#13d345722d33328e2ffa820afadbf35a7b241c5b" - integrity sha512-k1oDqa1GYT4smhsN204DtmcQLfDuzSD4bbGmErTvUH40dpcwgBUgbwMzYYVWYB5tT7u0KBvAQpwuAPEXuwJVpQ== - dependencies: - "@types/draco3d" "^1.4.0" - "@types/offscreencanvas" "^2019.6.4" - "@types/webxr" "^0.5.2" - draco3d "^1.4.1" - fflate "^0.6.9" - potpack "^1.0.1" - three@^0.156.0: version "0.156.1" resolved "https://registry.yarnpkg.com/three/-/three-0.156.1.tgz#bab4fec121a5b3975eb4f4d227d9c912171eb399" From a874b35122cd6797d9b371fb75424da081884f70 Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Wed, 22 Jan 2025 23:37:48 -0600 Subject: [PATCH 14/19] chore: update R3F to rc.5 --- package.json | 4 ++-- yarn.lock | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 71fdd7a0..8a010c8a 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "postprocessing": "^6.36.6" }, "devDependencies": { - "@react-three/fiber": "9.0.0-rc.4", + "@react-three/fiber": "9.0.0-rc.5", "@types/node": "^22.10.7", "@types/react": "^19.0.2", "@types/react-dom": "^19.0.2", @@ -61,7 +61,7 @@ "vitest": "^2.1.8" }, "peerDependencies": { - "@react-three/fiber": "9.0.0-rc.4", + "@react-three/fiber": "9.0.0-rc.5", "react": "^19.0", "three": ">= 0.156.0" } diff --git a/yarn.lock b/yarn.lock index b75fa512..7f34111c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -649,10 +649,10 @@ "@pnpm/network.ca-file" "^1.0.1" config-chain "^1.1.11" -"@react-three/fiber@9.0.0-rc.4": - version "9.0.0-rc.4" - resolved "https://registry.yarnpkg.com/@react-three/fiber/-/fiber-9.0.0-rc.4.tgz#6abe769b7a4e2baa099381bd5a9494aa66118f24" - integrity sha512-J75gr7ZbBRjS1FaN3e0lLXk2Cw7NV8sURM2kKoJP8ZoO7pzi2hXMj5vrxrrgdKfnsEy8xXHQdbCe3xw7Tckk8A== +"@react-three/fiber@9.0.0-rc.5": + version "9.0.0-rc.5" + resolved "https://registry.yarnpkg.com/@react-three/fiber/-/fiber-9.0.0-rc.5.tgz#76402a0b3fd9924fa010d32b035972a36e9a3bd5" + integrity sha512-xXsiaeTC8VWDTNOX93dOmVriIiPS0DW0z/QcpHU8tKwnslD/vNhF+t7qBHDF6iq2OMp5hkSlcg/Of692SQIC7Q== dependencies: "@babel/runtime" "^7.17.8" "@types/debounce" "^1.2.1" From f68eef5c7ff4b102c48d5877ba4079db880baa4b Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Wed, 22 Jan 2025 23:37:58 -0600 Subject: [PATCH 15/19] 3.0.0-rc.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8a010c8a..724c9e1b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@react-three/postprocessing", - "version": "3.0.0-rc.0", + "version": "3.0.0-rc.1", "description": "postprocessing wrapper for React and @react-three/fiber", "keywords": [ "postprocessing", From a17cf7186c42e6af61a83c3e68113f1496392e16 Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Thu, 23 Jan 2025 06:34:45 -0600 Subject: [PATCH 16/19] fix: remove use of TS extensions (#322) --- src/effects/Autofocus.tsx | 4 +- src/effects/Bloom.tsx | 2 +- src/effects/BrightnessContrast.tsx | 2 +- src/effects/ChromaticAberration.tsx | 2 +- src/effects/ColorDepth.tsx | 2 +- src/effects/Depth.tsx | 2 +- src/effects/DepthOfField.tsx | 2 +- src/effects/DotScreen.tsx | 2 +- src/effects/FXAA.tsx | 2 +- src/effects/Glitch.tsx | 2 +- src/effects/GodRays.tsx | 2 +- src/effects/HueSaturation.tsx | 2 +- src/effects/LensFlare.tsx | 4 +- src/effects/Noise.tsx | 2 +- src/effects/Outline.tsx | 6 +-- src/effects/Ramp.tsx | 2 +- src/effects/SMAA.tsx | 2 +- src/effects/SSAO.tsx | 2 +- src/effects/ScanlineEffect.tsx | 2 +- src/effects/SelectiveBloom.tsx | 6 +-- src/effects/Sepia.tsx | 2 +- src/effects/ShockWave.tsx | 2 +- src/effects/TiltShift.tsx | 2 +- src/effects/TiltShift2.tsx | 2 +- src/effects/ToneMapping.tsx | 2 +- src/effects/Vignette.tsx | 2 +- src/effects/Water.tsx | 2 +- src/index.ts | 74 ++++++++++++++--------------- tsconfig.json | 1 - 29 files changed, 70 insertions(+), 71 deletions(-) diff --git a/src/effects/Autofocus.tsx b/src/effects/Autofocus.tsx index 271ae7f3..6cbecef0 100644 --- a/src/effects/Autofocus.tsx +++ b/src/effects/Autofocus.tsx @@ -14,8 +14,8 @@ import { useThree, useFrame, createPortal, type Vector3 } from '@react-three/fib import { CopyPass, DepthPickingPass, DepthOfFieldEffect } from 'postprocessing' import { easing } from 'maath' -import { DepthOfField } from './DepthOfField.tsx' -import { EffectComposerContext } from '../EffectComposer.tsx' +import { DepthOfField } from './DepthOfField' +import { EffectComposerContext } from '../EffectComposer' export type AutofocusProps = React.ComponentProps & { target?: Vector3 diff --git a/src/effects/Bloom.tsx b/src/effects/Bloom.tsx index 161b0e5c..56f5a217 100644 --- a/src/effects/Bloom.tsx +++ b/src/effects/Bloom.tsx @@ -1,5 +1,5 @@ import { BloomEffect, BlendFunction } from 'postprocessing' -import { wrapEffect } from '../util.tsx' +import { wrapEffect } from '../util' export const Bloom = /* @__PURE__ */ wrapEffect(BloomEffect, { blendFunction: BlendFunction.ADD, diff --git a/src/effects/BrightnessContrast.tsx b/src/effects/BrightnessContrast.tsx index 6825607e..d14855c6 100644 --- a/src/effects/BrightnessContrast.tsx +++ b/src/effects/BrightnessContrast.tsx @@ -1,4 +1,4 @@ import { BrightnessContrastEffect } from 'postprocessing' -import { wrapEffect } from '../util.tsx' +import { wrapEffect } from '../util' export const BrightnessContrast = /* @__PURE__ */ wrapEffect(BrightnessContrastEffect) diff --git a/src/effects/ChromaticAberration.tsx b/src/effects/ChromaticAberration.tsx index 1f9b6ac2..5944ffad 100644 --- a/src/effects/ChromaticAberration.tsx +++ b/src/effects/ChromaticAberration.tsx @@ -1,5 +1,5 @@ import { ChromaticAberrationEffect } from 'postprocessing' -import { type EffectProps, wrapEffect } from '../util.tsx' +import { type EffectProps, wrapEffect } from '../util' export type ChromaticAberrationProps = EffectProps export const ChromaticAberration = /* @__PURE__ */ wrapEffect(ChromaticAberrationEffect) diff --git a/src/effects/ColorDepth.tsx b/src/effects/ColorDepth.tsx index a810898f..70a95d2c 100644 --- a/src/effects/ColorDepth.tsx +++ b/src/effects/ColorDepth.tsx @@ -1,4 +1,4 @@ import { ColorDepthEffect } from 'postprocessing' -import { wrapEffect } from '../util.tsx' +import { wrapEffect } from '../util' export const ColorDepth = /* @__PURE__ */ wrapEffect(ColorDepthEffect) diff --git a/src/effects/Depth.tsx b/src/effects/Depth.tsx index 68f9f110..0d99563f 100644 --- a/src/effects/Depth.tsx +++ b/src/effects/Depth.tsx @@ -1,4 +1,4 @@ import { DepthEffect } from 'postprocessing' -import { wrapEffect } from '../util.tsx' +import { wrapEffect } from '../util' export const Depth = /* @__PURE__ */ wrapEffect(DepthEffect) diff --git a/src/effects/DepthOfField.tsx b/src/effects/DepthOfField.tsx index 74ad4339..e4dd8525 100644 --- a/src/effects/DepthOfField.tsx +++ b/src/effects/DepthOfField.tsx @@ -2,7 +2,7 @@ import { DepthOfFieldEffect, MaskFunction } from 'postprocessing' import { Ref, forwardRef, useMemo, useEffect, useContext } from 'react' import { ReactThreeFiber } from '@react-three/fiber' import { type DepthPackingStrategies, type Texture, Vector3 } from 'three' -import { EffectComposerContext } from '../EffectComposer.tsx' +import { EffectComposerContext } from '../EffectComposer' type DOFProps = ConstructorParameters[1] & Partial<{ diff --git a/src/effects/DotScreen.tsx b/src/effects/DotScreen.tsx index 2c60bf19..a7647ab5 100644 --- a/src/effects/DotScreen.tsx +++ b/src/effects/DotScreen.tsx @@ -1,4 +1,4 @@ import { DotScreenEffect } from 'postprocessing' -import { wrapEffect } from '../util.tsx' +import { wrapEffect } from '../util' export const DotScreen = /* @__PURE__ */ wrapEffect(DotScreenEffect) diff --git a/src/effects/FXAA.tsx b/src/effects/FXAA.tsx index 9e82310e..00659605 100644 --- a/src/effects/FXAA.tsx +++ b/src/effects/FXAA.tsx @@ -1,4 +1,4 @@ import { FXAAEffect } from 'postprocessing' -import { wrapEffect } from '../util.tsx' +import { wrapEffect } from '../util' export const FXAA = /* @__PURE__ */ wrapEffect(FXAAEffect) diff --git a/src/effects/Glitch.tsx b/src/effects/Glitch.tsx index dfc79237..2ff7cb20 100644 --- a/src/effects/Glitch.tsx +++ b/src/effects/Glitch.tsx @@ -2,7 +2,7 @@ import { Vector2 } from 'three' import { GlitchEffect, GlitchMode } from 'postprocessing' import { Ref, forwardRef, useMemo, useLayoutEffect, useEffect } from 'react' import { ReactThreeFiber, useThree } from '@react-three/fiber' -import { useVector2 } from '../util.tsx' +import { useVector2 } from '../util' export type GlitchProps = ConstructorParameters[0] & Partial<{ diff --git a/src/effects/GodRays.tsx b/src/effects/GodRays.tsx index 8a4a8942..8f1db2ad 100644 --- a/src/effects/GodRays.tsx +++ b/src/effects/GodRays.tsx @@ -2,7 +2,7 @@ import { GodRaysEffect } from 'postprocessing' import React, { Ref, forwardRef, useMemo, useContext, useLayoutEffect } from 'react' import { Mesh, Points } from 'three' import { EffectComposerContext } from '../EffectComposer' -import { resolveRef } from '../util.tsx' +import { resolveRef } from '../util' type GodRaysProps = ConstructorParameters[2] & { sun: Mesh | Points | React.RefObject diff --git a/src/effects/HueSaturation.tsx b/src/effects/HueSaturation.tsx index 4691fe6f..a3a3f61c 100644 --- a/src/effects/HueSaturation.tsx +++ b/src/effects/HueSaturation.tsx @@ -1,4 +1,4 @@ import { HueSaturationEffect } from 'postprocessing' -import { wrapEffect } from '../util.tsx' +import { wrapEffect } from '../util' export const HueSaturation = /* @__PURE__ */ wrapEffect(HueSaturationEffect) diff --git a/src/effects/LensFlare.tsx b/src/effects/LensFlare.tsx index 5568b2d2..7f7587c9 100644 --- a/src/effects/LensFlare.tsx +++ b/src/effects/LensFlare.tsx @@ -7,8 +7,8 @@ import { useFrame, useThree } from '@react-three/fiber' import { BlendFunction, Effect } from 'postprocessing' import { easing } from 'maath' -import { EffectComposerContext } from '../EffectComposer.tsx' -import { wrapEffect } from '../util.tsx' +import { EffectComposerContext } from '../EffectComposer' +import { wrapEffect } from '../util' const LensFlareShader = { fragmentShader: /* glsl */ ` diff --git a/src/effects/Noise.tsx b/src/effects/Noise.tsx index 9c2daf7f..aa23c3d2 100644 --- a/src/effects/Noise.tsx +++ b/src/effects/Noise.tsx @@ -1,4 +1,4 @@ import { NoiseEffect, BlendFunction } from 'postprocessing' -import { wrapEffect } from '../util.tsx' +import { wrapEffect } from '../util' export const Noise = /* @__PURE__ */ wrapEffect(NoiseEffect, { blendFunction: BlendFunction.COLOR_DODGE }) diff --git a/src/effects/Outline.tsx b/src/effects/Outline.tsx index 963fe3f2..f78b69d8 100644 --- a/src/effects/Outline.tsx +++ b/src/effects/Outline.tsx @@ -2,9 +2,9 @@ import { OutlineEffect } from 'postprocessing' import { Ref, RefObject, forwardRef, useMemo, useEffect, useContext, useRef } from 'react' import { Object3D } from 'three' import { useThree } from '@react-three/fiber' -import { EffectComposerContext } from '../EffectComposer.tsx' -import { selectionContext } from '../Selection.tsx' -import { resolveRef } from '../util.tsx' +import { EffectComposerContext } from '../EffectComposer' +import { selectionContext } from '../Selection' +import { resolveRef } from '../util' type ObjectRef = RefObject diff --git a/src/effects/Ramp.tsx b/src/effects/Ramp.tsx index a69aefcb..502ce830 100644 --- a/src/effects/Ramp.tsx +++ b/src/effects/Ramp.tsx @@ -1,6 +1,6 @@ import { Uniform } from 'three' import { Effect } from 'postprocessing' -import { wrapEffect } from '../util.tsx' +import { wrapEffect } from '../util' const RampShader = { fragmentShader: /* glsl */ ` diff --git a/src/effects/SMAA.tsx b/src/effects/SMAA.tsx index 8b747209..41a927e0 100644 --- a/src/effects/SMAA.tsx +++ b/src/effects/SMAA.tsx @@ -1,4 +1,4 @@ import { SMAAEffect } from 'postprocessing' -import { wrapEffect } from '../util.tsx' +import { wrapEffect } from '../util' export const SMAA = /* @__PURE__ */ wrapEffect(SMAAEffect) diff --git a/src/effects/SSAO.tsx b/src/effects/SSAO.tsx index 44b04e25..5bbac10a 100644 --- a/src/effects/SSAO.tsx +++ b/src/effects/SSAO.tsx @@ -1,6 +1,6 @@ import { Ref, forwardRef, useContext, useMemo } from 'react' import { SSAOEffect, BlendFunction } from 'postprocessing' -import { EffectComposerContext } from '../EffectComposer.tsx' +import { EffectComposerContext } from '../EffectComposer' // first two args are camera and texture type SSAOProps = ConstructorParameters[2] diff --git a/src/effects/ScanlineEffect.tsx b/src/effects/ScanlineEffect.tsx index 1bbf715f..e533b39d 100644 --- a/src/effects/ScanlineEffect.tsx +++ b/src/effects/ScanlineEffect.tsx @@ -1,5 +1,5 @@ import { ScanlineEffect, BlendFunction } from 'postprocessing' -import { wrapEffect } from '../util.tsx' +import { wrapEffect } from '../util' export const Scanline = /* @__PURE__ */ wrapEffect(ScanlineEffect, { blendFunction: BlendFunction.OVERLAY, diff --git a/src/effects/SelectiveBloom.tsx b/src/effects/SelectiveBloom.tsx index 31a0fd4e..ff8bab1d 100644 --- a/src/effects/SelectiveBloom.tsx +++ b/src/effects/SelectiveBloom.tsx @@ -3,9 +3,9 @@ import type { BloomEffectOptions } from 'postprocessing' import React, { Ref, RefObject, forwardRef, useMemo, useEffect, useContext, useRef } from 'react' import { Object3D } from 'three' import { useThree } from '@react-three/fiber' -import { EffectComposerContext } from '../EffectComposer.tsx' -import { selectionContext } from '../Selection.tsx' -import { resolveRef } from '../util.tsx' +import { EffectComposerContext } from '../EffectComposer' +import { selectionContext } from '../Selection' +import { resolveRef } from '../util' type ObjectRef = RefObject diff --git a/src/effects/Sepia.tsx b/src/effects/Sepia.tsx index 0e4f8a09..f1e4a67c 100644 --- a/src/effects/Sepia.tsx +++ b/src/effects/Sepia.tsx @@ -1,4 +1,4 @@ import { SepiaEffect } from 'postprocessing' -import { wrapEffect } from '../util.tsx' +import { wrapEffect } from '../util' export const Sepia = /* @__PURE__ */ wrapEffect(SepiaEffect) diff --git a/src/effects/ShockWave.tsx b/src/effects/ShockWave.tsx index dc05a3ea..abb3b55b 100644 --- a/src/effects/ShockWave.tsx +++ b/src/effects/ShockWave.tsx @@ -1,4 +1,4 @@ import { ShockWaveEffect } from 'postprocessing' -import { wrapEffect } from '../util.tsx' +import { wrapEffect } from '../util' export const ShockWave = /* @__PURE__ */ wrapEffect(ShockWaveEffect) diff --git a/src/effects/TiltShift.tsx b/src/effects/TiltShift.tsx index 20dc8652..5190c59f 100644 --- a/src/effects/TiltShift.tsx +++ b/src/effects/TiltShift.tsx @@ -1,4 +1,4 @@ import { TiltShiftEffect, BlendFunction } from 'postprocessing' -import { wrapEffect } from '../util.tsx' +import { wrapEffect } from '../util' export const TiltShift = /* @__PURE__ */ wrapEffect(TiltShiftEffect, { blendFunction: BlendFunction.ADD }) diff --git a/src/effects/TiltShift2.tsx b/src/effects/TiltShift2.tsx index 93b7b91d..b1cd9425 100644 --- a/src/effects/TiltShift2.tsx +++ b/src/effects/TiltShift2.tsx @@ -1,6 +1,6 @@ import { Uniform } from 'three' import { BlendFunction, Effect, EffectAttribute } from 'postprocessing' -import { wrapEffect } from '../util.tsx' +import { wrapEffect } from '../util' const TiltShiftShader = { fragmentShader: ` diff --git a/src/effects/ToneMapping.tsx b/src/effects/ToneMapping.tsx index 04fdf654..11c9f6a7 100644 --- a/src/effects/ToneMapping.tsx +++ b/src/effects/ToneMapping.tsx @@ -1,5 +1,5 @@ import { ToneMappingEffect } from 'postprocessing' -import { type EffectProps, wrapEffect } from '../util.tsx' +import { type EffectProps, wrapEffect } from '../util' export type ToneMappingProps = EffectProps diff --git a/src/effects/Vignette.tsx b/src/effects/Vignette.tsx index d25cf952..ab4afc3a 100644 --- a/src/effects/Vignette.tsx +++ b/src/effects/Vignette.tsx @@ -1,4 +1,4 @@ import { VignetteEffect } from 'postprocessing' -import { wrapEffect } from '../util.tsx' +import { wrapEffect } from '../util' export const Vignette = /* @__PURE__ */ wrapEffect(VignetteEffect) diff --git a/src/effects/Water.tsx b/src/effects/Water.tsx index d9db596c..837312ad 100644 --- a/src/effects/Water.tsx +++ b/src/effects/Water.tsx @@ -1,6 +1,6 @@ import { Uniform } from 'three' import { BlendFunction, Effect, EffectAttribute } from 'postprocessing' -import { wrapEffect } from '../util.tsx' +import { wrapEffect } from '../util' const WaterShader = { fragmentShader: /* glsl */ ` diff --git a/src/index.ts b/src/index.ts index e22e81a9..56dd4fcd 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,40 +1,40 @@ -export * from './Selection.tsx' -export * from './EffectComposer.tsx' -export * from './util.tsx' +export * from './Selection' +export * from './EffectComposer' +export * from './util' -export * from './effects/Autofocus.tsx' -export * from './effects/LensFlare.tsx' -export * from './effects/Bloom.tsx' -export * from './effects/BrightnessContrast.tsx' -export * from './effects/ChromaticAberration.tsx' -export * from './effects/ColorAverage.tsx' -export * from './effects/ColorDepth.tsx' -export * from './effects/Depth.tsx' -export * from './effects/DepthOfField.tsx' -export * from './effects/DotScreen.tsx' -export * from './effects/Glitch.tsx' -export * from './effects/GodRays.tsx' -export * from './effects/Grid.tsx' -export * from './effects/HueSaturation.tsx' -export * from './effects/Noise.tsx' -export * from './effects/Outline.tsx' -export * from './effects/Pixelation.tsx' -export * from './effects/ScanlineEffect.tsx' -export * from './effects/SelectiveBloom.tsx' -export * from './effects/Sepia.tsx' -export * from './effects/SSAO.tsx' -export * from './effects/SMAA.tsx' -export * from './effects/FXAA.tsx' -export * from './effects/Ramp.tsx' -export * from './effects/Texture.tsx' -export * from './effects/ToneMapping.tsx' -export * from './effects/Vignette.tsx' -export * from './effects/ShockWave.tsx' -export * from './effects/LUT.tsx' -export * from './effects/TiltShift.tsx' -export * from './effects/TiltShift2.tsx' -export * from './effects/ASCII.tsx' -export * from './effects/Water.tsx' +export * from './effects/Autofocus' +export * from './effects/LensFlare' +export * from './effects/Bloom' +export * from './effects/BrightnessContrast' +export * from './effects/ChromaticAberration' +export * from './effects/ColorAverage' +export * from './effects/ColorDepth' +export * from './effects/Depth' +export * from './effects/DepthOfField' +export * from './effects/DotScreen' +export * from './effects/Glitch' +export * from './effects/GodRays' +export * from './effects/Grid' +export * from './effects/HueSaturation' +export * from './effects/Noise' +export * from './effects/Outline' +export * from './effects/Pixelation' +export * from './effects/ScanlineEffect' +export * from './effects/SelectiveBloom' +export * from './effects/Sepia' +export * from './effects/SSAO' +export * from './effects/SMAA' +export * from './effects/FXAA' +export * from './effects/Ramp' +export * from './effects/Texture' +export * from './effects/ToneMapping' +export * from './effects/Vignette' +export * from './effects/ShockWave' +export * from './effects/LUT' +export * from './effects/TiltShift' +export * from './effects/TiltShift2' +export * from './effects/ASCII' +export * from './effects/Water' // These are not effect passes -export * from './effects/N8AO.tsx' +export * from './effects/N8AO' diff --git a/tsconfig.json b/tsconfig.json index 84352d08..9fc7364c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,7 +11,6 @@ "noEmit": true, "forceConsistentCasingInFileNames": true, "allowSyntheticDefaultImports": true, - "allowImportingTsExtensions": true, "paths": { "@react-three/postprocessing": ["./src"] } From a2d7f4a7feecdc3a85e536755a19aab375e3f1c6 Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Thu, 23 Jan 2025 06:35:26 -0600 Subject: [PATCH 17/19] v3.0.0-rc.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 724c9e1b..e9ce266e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@react-three/postprocessing", - "version": "3.0.0-rc.1", + "version": "3.0.0-rc.2", "description": "postprocessing wrapper for React and @react-three/fiber", "keywords": [ "postprocessing", From c0a3f71100cbead6610e21f5b2de7a14fb763422 Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Wed, 19 Feb 2025 07:46:07 -0600 Subject: [PATCH 18/19] chore: use R3F v9 stable --- package.json | 6 ++-- yarn.lock | 93 +++++++++++++++------------------------------------- 2 files changed, 30 insertions(+), 69 deletions(-) diff --git a/package.json b/package.json index e9ce266e..71e4e49c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@react-three/postprocessing", - "version": "3.0.0-rc.2", + "version": "0.0.0-semantic-release", "description": "postprocessing wrapper for React and @react-three/fiber", "keywords": [ "postprocessing", @@ -37,7 +37,7 @@ "postprocessing": "^6.36.6" }, "devDependencies": { - "@react-three/fiber": "9.0.0-rc.5", + "@react-three/fiber": "^9.0.0", "@types/node": "^22.10.7", "@types/react": "^19.0.2", "@types/react-dom": "^19.0.2", @@ -61,7 +61,7 @@ "vitest": "^2.1.8" }, "peerDependencies": { - "@react-three/fiber": "9.0.0-rc.5", + "@react-three/fiber": "^9.0.0", "react": "^19.0", "three": ">= 0.156.0" } diff --git a/yarn.lock b/yarn.lock index 7f34111c..de891a39 100644 --- a/yarn.lock +++ b/yarn.lock @@ -649,23 +649,22 @@ "@pnpm/network.ca-file" "^1.0.1" config-chain "^1.1.11" -"@react-three/fiber@9.0.0-rc.5": - version "9.0.0-rc.5" - resolved "https://registry.yarnpkg.com/@react-three/fiber/-/fiber-9.0.0-rc.5.tgz#76402a0b3fd9924fa010d32b035972a36e9a3bd5" - integrity sha512-xXsiaeTC8VWDTNOX93dOmVriIiPS0DW0z/QcpHU8tKwnslD/vNhF+t7qBHDF6iq2OMp5hkSlcg/Of692SQIC7Q== +"@react-three/fiber@^9.0.0": + version "9.0.0" + resolved "https://registry.yarnpkg.com/@react-three/fiber/-/fiber-9.0.0.tgz#34a9a578845cae4dc6f0d2dbe4cdee90a148de2c" + integrity sha512-yfX7PzGFVMAvLbOf3ONw3WrVENasCZ2Vw/CxQ/6iSG/sgOwxPB7+gOTu1au5o7/TlXLm2dJo6H62k2CgMdPgOA== dependencies: "@babel/runtime" "^7.17.8" - "@types/debounce" "^1.2.1" - "@types/react-reconciler" "^0.28.8" + "@types/react-reconciler" "^0.28.9" "@types/webxr" "*" base64-js "^1.5.1" buffer "^6.0.3" - debounce "^1.2.1" - its-fine "^1.2.5" - react-reconciler "0.31.0" - scheduler "0.25.0" + its-fine "^2.0.0" + react-reconciler "^0.31.0" + react-use-measure "^2.1.7" + scheduler "^0.25.0" suspend-react "^0.1.3" - zustand "^4.1.2" + zustand "^5.0.3" "@rollup/rollup-android-arm-eabi@4.28.1": version "4.28.1" @@ -860,11 +859,6 @@ "@tufjs/canonical-json" "1.0.0" minimatch "^9.0.0" -"@types/debounce@^1.2.1": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@types/debounce/-/debounce-1.2.4.tgz#cb7e85d9ad5ababfac2f27183e8ac8b576b2abb3" - integrity sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw== - "@types/estree@1.0.6", "@types/estree@^1.0.0": version "1.0.6" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" @@ -897,37 +891,16 @@ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== -"@types/prop-types@*": - version "15.7.5" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" - integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== - "@types/react-dom@^19.0.2": version "19.0.2" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.0.2.tgz#ad21f9a1ee881817995fd3f7fd33659c87e7b1b7" integrity sha512-c1s+7TKFaDRRxr1TxccIX2u7sfCnc3RxkVyBIUA2lCpyqCF+QoAwQ/CBg7bsMdVwP120HEH143VQezKtef5nCg== -"@types/react-reconciler@^0.28.0": - version "0.28.2" - resolved "https://registry.yarnpkg.com/@types/react-reconciler/-/react-reconciler-0.28.2.tgz#f16b0e8cc4748af70ca975eaaace0d79582c71fa" - integrity sha512-8tu6lHzEgYPlfDf/J6GOQdIc+gs+S2yAqlby3zTsB3SP2svlqTYe5fwZNtZyfactP74ShooP2vvi1BOp9ZemWw== - dependencies: - "@types/react" "*" - -"@types/react-reconciler@^0.28.8": +"@types/react-reconciler@^0.28.9": version "0.28.9" resolved "https://registry.yarnpkg.com/@types/react-reconciler/-/react-reconciler-0.28.9.tgz#d24b4864c384e770c83275b3fe73fba00269c83b" integrity sha512-HHM3nxyUZ3zAylX8ZEyrDNd2XZOnQ0D5XfunJF5FLQnZbHHYq4UWvW1QfelQNXv1ICNkwYhfxjwfnqivYB6bFg== -"@types/react@*": - version "18.2.0" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.0.tgz#15cda145354accfc09a18d2f2305f9fc099ada21" - integrity sha512-0FLj93y5USLHdnhIhABk83rm8XEGA7kH3cr+YUlvxoUGp1xNt/DINUMvqPxLyOQMzLmZe8i4RTHbvb8MC7NmrA== - dependencies: - "@types/prop-types" "*" - "@types/scheduler" "*" - csstype "^3.0.2" - "@types/react@^19.0.2": version "19.0.2" resolved "https://registry.yarnpkg.com/@types/react/-/react-19.0.2.tgz#9363e6b3ef898c471cb182dd269decc4afc1b4f6" @@ -940,11 +913,6 @@ resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== -"@types/scheduler@*": - version "0.16.3" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" - integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== - "@types/semver@^7.3.12": version "7.3.13" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" @@ -1755,11 +1723,6 @@ dateformat@^3.0.0: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -debounce@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" - integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== - debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" @@ -3114,12 +3077,12 @@ issue-parser@^6.0.0: lodash.isstring "^4.0.1" lodash.uniqby "^4.7.0" -its-fine@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/its-fine/-/its-fine-1.2.5.tgz#5466c287f86a0a73e772c8d8d515626c97195dc9" - integrity sha512-fXtDA0X0t0eBYAGLVM5YsgJGsJ5jEmqZEPrGbzdf5awjv0xE7nqv3TVnvtUF060Tkes15DbDAKW/I48vsb6SyA== +its-fine@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/its-fine/-/its-fine-2.0.0.tgz#a90b18a3ee4c211a1fb6faac2abcc2b682ce1f21" + integrity sha512-KLViCmWx94zOvpLwSlsx6yOCeMhZYaxrJV87Po5k/FoZzcPSahvK5qJ7fYhS61sZi5ikmh2S3Hz55A2l3U69ng== dependencies: - "@types/react-reconciler" "^0.28.0" + "@types/react-reconciler" "^0.28.9" jackspeak@^2.0.3: version "2.1.0" @@ -4568,13 +4531,18 @@ react-is@^16.13.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-reconciler@0.31.0: +react-reconciler@^0.31.0: version "0.31.0" resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.31.0.tgz#6b7390fe8fab59210daf523d7400943973de1458" integrity sha512-7Ob7Z+URmesIsIVRjnLoDGwBEG/tVitidU0nMsqX/eeJaLY89RISO/10ERe0MqmzuKUUB1rmY+h1itMbUHg9BQ== dependencies: scheduler "^0.25.0" +react-use-measure@^2.1.7: + version "2.1.7" + resolved "https://registry.yarnpkg.com/react-use-measure/-/react-use-measure-2.1.7.tgz#36b8a2e7fd2fa58109ab851b3addcb0aad66ad1d" + integrity sha512-KrvcAo13I/60HpwGO5jpW7E9DfusKyLPLvuHlUyP5zqnmAPhNc6qTRjUQrdTADl0lpPpDVU2/Gg51UlOGHXbdg== + react@^19.0.0: version "19.0.0" resolved "https://registry.yarnpkg.com/react/-/react-19.0.0.tgz#6e1969251b9f108870aa4bff37a0ce9ddfaaabdd" @@ -4847,7 +4815,7 @@ safe-regex-test@^1.0.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -scheduler@0.25.0, scheduler@^0.25.0: +scheduler@^0.25.0: version "0.25.0" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.25.0.tgz#336cd9768e8cceebf52d3c80e3dcf5de23e7e015" integrity sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA== @@ -5532,11 +5500,6 @@ url-join@^4.0.0: resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== -use-sync-external-store@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz#c3b6390f3a30eba13200d2302dcdf1e7b57b2ef9" - integrity sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw== - util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -5773,9 +5736,7 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== -zustand@^4.1.2: - version "4.5.5" - resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.5.5.tgz#f8c713041543715ec81a2adda0610e1dc82d4ad1" - integrity sha512-+0PALYNJNgK6hldkgDq2vLrw5f6g/jCInz52n9RTpropGgeAf/ioFUCdtsjCqu4gNhW9D01rUQBROoRjdzyn2Q== - dependencies: - use-sync-external-store "1.2.2" +zustand@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/zustand/-/zustand-5.0.3.tgz#b323435b73d06b2512e93c77239634374b0e407f" + integrity sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg== From d1d78cad93007b50902b718a226527ff679c5e3d Mon Sep 17 00:00:00 2001 From: Cody Bennett Date: Wed, 19 Feb 2025 07:58:41 -0600 Subject: [PATCH 19/19] chore: update deps --- package.json | 2 +- yarn.lock | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 71e4e49c..77de64dc 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "postprocessing": "^6.36.6" }, "devDependencies": { - "@react-three/fiber": "^9.0.0", + "@react-three/fiber": "^9.0.1", "@types/node": "^22.10.7", "@types/react": "^19.0.2", "@types/react-dom": "^19.0.2", diff --git a/yarn.lock b/yarn.lock index de891a39..a7794407 100644 --- a/yarn.lock +++ b/yarn.lock @@ -649,10 +649,10 @@ "@pnpm/network.ca-file" "^1.0.1" config-chain "^1.1.11" -"@react-three/fiber@^9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@react-three/fiber/-/fiber-9.0.0.tgz#34a9a578845cae4dc6f0d2dbe4cdee90a148de2c" - integrity sha512-yfX7PzGFVMAvLbOf3ONw3WrVENasCZ2Vw/CxQ/6iSG/sgOwxPB7+gOTu1au5o7/TlXLm2dJo6H62k2CgMdPgOA== +"@react-three/fiber@^9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@react-three/fiber/-/fiber-9.0.1.tgz#4a506f05036f413205213663911c20e563617179" + integrity sha512-X21kQBQ+czPNt9ue3x7BO/TUM8C71VckEX6Y7ndaXSH892T1XGQYiOtN4Av8NkP2aaQZnASsA/Kip0sykeR/tw== dependencies: "@babel/runtime" "^7.17.8" "@types/react-reconciler" "^0.28.9" @@ -664,6 +664,7 @@ react-use-measure "^2.1.7" scheduler "^0.25.0" suspend-react "^0.1.3" + use-sync-external-store "^1.4.0" zustand "^5.0.3" "@rollup/rollup-android-arm-eabi@4.28.1": @@ -5500,6 +5501,11 @@ url-join@^4.0.0: resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" integrity sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA== +use-sync-external-store@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz#adbc795d8eeb47029963016cefdf89dc799fcebc" + integrity sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw== + util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"