diff --git a/.gitignore b/.gitignore
index a5e26829..4d8fb2a8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -41,4 +41,5 @@ storybook-static/
CreateShaderFx/
# exclude private demo
-app/private/
\ No newline at end of file
+app/private/
+public/private/
diff --git a/.storybook/index.css b/.storybook/index.css
deleted file mode 100644
index daa21042..00000000
--- a/.storybook/index.css
+++ /dev/null
@@ -1,9 +0,0 @@
-html,
-body,
-#storybook-root {
- height: 100%;
-}
-
-.sbdocs canvas {
- height: 40rem;
-}
diff --git a/.storybook/main.ts b/.storybook/main.ts
deleted file mode 100644
index c3232570..00000000
--- a/.storybook/main.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import type { StorybookConfig } from "@storybook/nextjs";
-
-const config: StorybookConfig = {
- staticDirs: ["./public"],
- stories: [
- "./stories/**/*.mdx",
- "./stories/**/*.stories.@(js|jsx|mjs|ts|tsx)",
- ],
- webpackFinal: async (config) => {
- config.module?.rules?.push({
- test: /\.(glsl|vs|fs|vert|frag)$/,
- exclude: /node_modules/,
- use: ["raw-loader", "glslify-loader"],
- });
- return config;
- },
- addons: ["@storybook/addon-essentials", "@storybook/addon-docs"],
- framework: {
- name: "@storybook/nextjs",
- options: {
- nextConfigPath: "../next.config.js",
- },
- },
- docs: {
- autodocs: "tag",
- },
-};
-export default config;
diff --git a/.storybook/manager.ts b/.storybook/manager.ts
deleted file mode 100644
index 18e76869..00000000
--- a/.storybook/manager.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { addons } from "@storybook/manager-api";
-import { create } from "@storybook/theming/create";
-
-addons.setConfig({
- theme: create({
- base: "dark",
- brandImage: "/logo.svg",
- brandUrl: "https://github.com/takuma-hmng8/use-shader-fx",
- brandTitle: "use-shader-fx",
- brandTarget: "_blank",
- }),
- panelPosition: "right",
- showPanel: true,
-});
diff --git a/.storybook/preview.tsx b/.storybook/preview.tsx
deleted file mode 100644
index 4c8c7e3e..00000000
--- a/.storybook/preview.tsx
+++ /dev/null
@@ -1,36 +0,0 @@
-import React from "react";
-import type { Preview } from "@storybook/react";
-import {
- Title,
- Subtitle,
- Description,
- Primary,
- Controls,
-} from "@storybook/blocks";
-
-import "./index.css";
-
-const preview: Preview = {
- parameters: {
- layout: "fullscreen",
- docs: {
- page: () => (
- <>
-
-
-
-
-
- >
- ),
- },
- },
- decorators: [
- (Story) => (
-
-
-
- ),
- ],
-};
-export default preview;
diff --git a/.storybook/public/app-head.jpg b/.storybook/public/app-head.jpg
deleted file mode 100644
index 286c1a00..00000000
Binary files a/.storybook/public/app-head.jpg and /dev/null differ
diff --git a/.storybook/public/favicon.ico b/.storybook/public/favicon.ico
deleted file mode 100644
index 4a8c59a9..00000000
Binary files a/.storybook/public/favicon.ico and /dev/null differ
diff --git a/.storybook/public/logo.svg b/.storybook/public/logo.svg
deleted file mode 100644
index 6186100f..00000000
--- a/.storybook/public/logo.svg
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/.storybook/public/momo.jpg b/.storybook/public/momo.jpg
deleted file mode 100644
index 6c00ae9c..00000000
Binary files a/.storybook/public/momo.jpg and /dev/null differ
diff --git a/.storybook/public/smoke.png b/.storybook/public/smoke.png
deleted file mode 100644
index 06a600f7..00000000
Binary files a/.storybook/public/smoke.png and /dev/null differ
diff --git a/.storybook/public/thumbnail.jpg b/.storybook/public/thumbnail.jpg
deleted file mode 100644
index cc3791a6..00000000
Binary files a/.storybook/public/thumbnail.jpg and /dev/null differ
diff --git a/.storybook/stories/UseAlphaBlending.stories.tsx b/.storybook/stories/UseAlphaBlending.stories.tsx
deleted file mode 100644
index 6cab6e58..00000000
--- a/.storybook/stories/UseAlphaBlending.stories.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import { UseAlphaBlending } from "./UseAlphaBlending";
-import {
- ALPHABLENDING_PARAMS,
- AlphaBlendingParams,
-} from "../../packages/use-shader-fx/src/fxs/utils/useAlphaBlending";
-
-const meta = {
- title: "utils/useAlphaBlending",
- component: UseAlphaBlending,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-export default meta;
-type Story = StoryObj;
-
-export const Default: Story = {
- args: ALPHABLENDING_PARAMS,
- argTypes: setArgTypes(ALPHABLENDING_PARAMS),
-};
diff --git a/.storybook/stories/UseAlphaBlending.tsx b/.storybook/stories/UseAlphaBlending.tsx
deleted file mode 100644
index df530850..00000000
--- a/.storybook/stories/UseAlphaBlending.tsx
+++ /dev/null
@@ -1,70 +0,0 @@
-import * as React from "react";
-import * as THREE from "three";
-import { useFrame, useLoader, extend, useThree } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "../../utils/fxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "../../utils/useGUI";
-import {
- useAlphaBlending,
- useMarble,
- useBrush,
-} from "../../packages/use-shader-fx/src";
-import {
- ALPHABLENDING_PARAMS,
- AlphaBlendingParams,
-} from "../../packages/use-shader-fx/src/fxs/utils/useAlphaBlending";
-
-extend({ FxMaterial });
-
-const CONFIG: AlphaBlendingParams = structuredClone(ALPHABLENDING_PARAMS);
-const setGUI = (gui: GUI) => {};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as AlphaBlendingParams;
-};
-
-export const UseAlphaBlending = (args: AlphaBlendingParams) => {
- const updateGUI = useGUI(setGUI);
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
-
- const [updateBrush, setBrush, { output: brush }] = useBrush({
- size,
- dpr,
- });
- const [update, set, { output }] = useAlphaBlending({
- size,
- dpr,
- });
- const [updateMarble, setMarble, { output: marble }] = useMarble({
- size,
- dpr,
- });
-
- set({
- texture: marble,
- map: brush,
- });
-
- useFrame((props) => {
- updateBrush(props);
- updateMarble(props);
- update(props);
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
diff --git a/.storybook/stories/UseBlank.stories.tsx b/.storybook/stories/UseBlank.stories.tsx
deleted file mode 100644
index 1c398605..00000000
--- a/.storybook/stories/UseBlank.stories.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import { UseBlank } from "./UseBlank";
-import {
- BLANK_PARAMS,
- BlankParams,
-} from "../../packages/use-shader-fx/src/fxs/misc/useBlank";
-
-const meta = {
- title: "misc/useBlank",
- component: UseBlank,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-export default meta;
-type Story = StoryObj;
-
-export const Default: Story = {
- args: BLANK_PARAMS,
- argTypes: setArgTypes(BLANK_PARAMS),
-};
diff --git a/.storybook/stories/UseBlank.tsx b/.storybook/stories/UseBlank.tsx
deleted file mode 100644
index b0471c0c..00000000
--- a/.storybook/stories/UseBlank.tsx
+++ /dev/null
@@ -1,45 +0,0 @@
-import * as React from "react";
-import { useFrame, extend, useThree } from "@react-three/fiber";
-import { FxMaterial } from "../../utils/fxMaterial";
-import { useBlank } from "../../packages/use-shader-fx/src";
-import { BlankParams } from "../../packages/use-shader-fx/src/fxs/misc/useBlank";
-import { OnBeforeInitParameters } from "../../packages/use-shader-fx/src/fxs/types";
-
-extend({ FxMaterial });
-
-/**
- * By default, it is a blank canvas with nothing drawn on it. You can customise the shaders using `onBeforeCompile`.
- * Fragment shaders have `uTexture`,`uBackbuffer`,`uTime`,`uPointer` and `uResolution` as default uniforms.
- *
- * ※ `usf_FragColor` overrides `gl_FragColor`
- *
- * ※ `usf_Position` overrides `gl_Position`
- * @link https://github.com/FunTechInc/use-shader-fx?tab=readme-ov-file#usage
- */
-export const UseBlank = (args: BlankParams) => {
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
-
- const [updateBlank, _, { output: blank }] = useBlank({
- size,
- dpr: dpr,
- onBeforeInit: React.useCallback((shader: OnBeforeInitParameters) => {
- shader.fragmentShader = shader.fragmentShader.replace(
- "#usf ",
- `float t=uTime,c;vec2 z,n=vec2(cos(t),sin(t));z=vUv*2.-1.;for(int i=0;i<12;i++){if(dot(z,z)>8.)discard;z=vec2(z.x*z.x-z.y*z.y,z.x*z.y)+n;}c=cos(length(z)+log(length(z)));usf_FragColor=vec4(vec3(c),1.);`
- );
- }, []),
- });
-
- useFrame((props) => {
- updateBlank(props);
- });
-
- return (
-
-
-
-
- );
-};
diff --git a/.storybook/stories/UseBlending.tsx b/.storybook/stories/UseBlending.tsx
deleted file mode 100644
index dc9ebc48..00000000
--- a/.storybook/stories/UseBlending.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-import * as React from "react";
-import * as THREE from "three";
-import { useFrame, useLoader, extend, useThree } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "../../utils/fxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "../../utils/useGUI";
-import {
- useBlending,
- useNoise,
- useBrightnessPicker,
- useFluid,
- useCoverTexture,
-} from "../../packages/use-shader-fx/src";
-import {
- BlendingParams,
- BLENDING_PARAMS,
-} from "../../packages/use-shader-fx/src/fxs/utils/useBlending";
-
-extend({ FxMaterial });
-
-const CONFIG: BlendingParams = structuredClone(BLENDING_PARAMS);
-const setGUI = (gui: GUI) => {
- gui.add(CONFIG, "mapIntensity", 0, 1, 0.01);
- gui.add(CONFIG, "min", 0, 1, 0.01);
- gui.add(CONFIG, "max", 0, 1, 0.01);
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as BlendingParams;
-};
-
-/**
- * Blend map to texture. You can set the threshold for blending with brightness. You can set the dodge color by setting color. If you don't want to reflect the map's color, you can use useFxBlending instead.
- */
-export const UseBlending = (args: BlendingParams) => {
- const updateGUI = useGUI(setGUI);
- const [bg] = useLoader(THREE.TextureLoader, ["momo.jpg"]);
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
- const [updateCover] = useCoverTexture({ size, dpr });
- const [updateFluid, setFluid, { output: fluid }] = useFluid({
- size,
- dpr,
- });
- const [updateBlending] = useBlending({ size, dpr });
-
- const colorVec = React.useMemo(() => new THREE.Vector3(), []);
-
- setFluid({
- densityDissipation: 0.92,
- velocityDissipation: 0.99,
- velocityAcceleration: 12.0,
- splatRadius: 0.015,
- curlStrength: 5.0,
- pressureIterations: 4,
- fluidColor: (velocity: THREE.Vector2) => {
- const rCol = Math.max(0.0, Math.abs(velocity.x) * 150);
- const gCol = Math.max(0.0, Math.abs(velocity.y) * 150);
- const bCol = Math.max(0.1, (rCol + gCol) / 2);
- return colorVec.set(rCol, gCol, bCol);
- },
- });
-
- useFrame((props) => {
- const bgTexture = updateCover(props, {
- texture: bg,
- });
- updateFluid(props);
- const fx = updateBlending(props, {
- ...setConfig(),
- texture: bgTexture,
- map: fluid,
- });
- fxRef.current!.u_fx = fx;
- fxRef.current!.u_alpha = 0.0;
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
diff --git a/.storybook/stories/UseBrightnessPicker.tsx b/.storybook/stories/UseBrightnessPicker.tsx
deleted file mode 100644
index cf788883..00000000
--- a/.storybook/stories/UseBrightnessPicker.tsx
+++ /dev/null
@@ -1,61 +0,0 @@
-import * as React from "react";
-import { useFrame, extend, useThree } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "../../utils/fxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "../../utils/useGUI";
-import {
- useNoise,
- useBrightnessPicker,
-} from "../../packages/use-shader-fx/src";
-import {
- BrightnessPickerParams,
- BRIGHTNESSPICKER_PARAMS,
-} from "../../packages/use-shader-fx/src/fxs/utils/useBrightnessPicker";
-
-extend({ FxMaterial });
-
-const CONFIG: BrightnessPickerParams = structuredClone(BRIGHTNESSPICKER_PARAMS);
-const setGUI = (gui: GUI) => {
- gui.add(CONFIG.brightness!, "x", 0, 1, 0.01);
- gui.add(CONFIG.brightness!, "y", 0, 1, 0.01);
- gui.add(CONFIG.brightness!, "z", 0, 1, 0.01);
- gui.add(CONFIG, "min", 0, 1, 0.01);
- gui.add(CONFIG, "max", 0, 1, 0.01);
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as BrightnessPickerParams;
-};
-
-/**
- * Blending the texture passed as map
- */
-export const UseBrightnessPicker = (args: BrightnessPickerParams) => {
- const updateGUI = useGUI(setGUI);
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
-
- const [updateNoise] = useNoise({ size, dpr });
- const [updateBrightnessPicker] = useBrightnessPicker({ size, dpr });
-
- useFrame((props) => {
- const noise = updateNoise(props);
- const fx = updateBrightnessPicker(props, {
- ...setConfig(),
- texture: noise,
- });
- fxRef.current!.u_fx = fx;
- fxRef.current!.u_alpha = 0.0;
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
diff --git a/.storybook/stories/UseBrush.tsx b/.storybook/stories/UseBrush.tsx
deleted file mode 100644
index 056f6a7d..00000000
--- a/.storybook/stories/UseBrush.tsx
+++ /dev/null
@@ -1,82 +0,0 @@
-import * as React from "react";
-import * as THREE from "three";
-import { useFrame, extend, useThree, useLoader } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "../../utils/fxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "../../utils/useGUI";
-import { useBrush, useFxTexture } from "../../packages/use-shader-fx/src";
-import {
- BrushParams,
- BRUSH_PARAMS,
-} from "../../packages/use-shader-fx/src/fxs/interactions/useBrush";
-
-extend({ FxMaterial });
-
-const CONFIG: BrushParams = structuredClone(BRUSH_PARAMS);
-const setGUI = (gui: GUI) => {
- gui.add(CONFIG, "radius", 0, 0.1, 0.01);
- gui.add(CONFIG, "smudge", 0, 10, 0.01);
- gui.add(CONFIG, "dissipation", 0, 1, 0.01);
- gui.add(CONFIG, "motionBlur", 0, 10, 0.01);
- gui.add(CONFIG, "motionSample", 0, 20, 1);
- gui.addColor(CONFIG, "color");
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as BrushParams;
-};
-
-export const UseBrush = (args: BrushParams) => {
- const updateGUI = useGUI(setGUI);
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
- const [updateBrush] = useBrush({
- size,
- dpr,
- });
- useFrame((props) => {
- const fx = updateBrush(props, setConfig());
- fxRef.current!.u_fx = fx;
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
-
-export const UseBrushWithTexture = (args: BrushParams) => {
- const [bg] = useLoader(THREE.TextureLoader, ["thumbnail.jpg"]);
- const updateGUI = useGUI(setGUI);
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
- const [updateFxTexture] = useFxTexture({ size, dpr });
- const [updateBrush, setBrush] = useBrush({ size, dpr });
-
- useFrame((props) => {
- const bgTexture = updateFxTexture(props, {
- texture0: bg,
- });
- const fx = updateBrush(props, {
- ...setConfig(),
- texture: bgTexture,
- });
- fxRef.current!.u_fx = fx;
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
diff --git a/.storybook/stories/UseChromaKey.stories.tsx b/.storybook/stories/UseChromaKey.stories.tsx
deleted file mode 100644
index 5d2c8eb1..00000000
--- a/.storybook/stories/UseChromaKey.stories.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import { UseChromaKey } from "./UseChromaKey";
-import {
- CHROMAKEY_PARAMS,
- ChromaKeyParams,
-} from "../../packages/use-shader-fx/src/fxs/misc/useChromaKey";
-
-const meta = {
- title: "misc/useChromaKey",
- component: UseChromaKey,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-export default meta;
-type Story = StoryObj;
-
-export const Default: Story = {
- args: CHROMAKEY_PARAMS,
- argTypes: setArgTypes(CHROMAKEY_PARAMS),
-};
diff --git a/.storybook/stories/UseChromaKey.tsx b/.storybook/stories/UseChromaKey.tsx
deleted file mode 100644
index 0e98164c..00000000
--- a/.storybook/stories/UseChromaKey.tsx
+++ /dev/null
@@ -1,74 +0,0 @@
-import * as React from "react";
-import * as THREE from "three";
-import { useFrame, useLoader, extend, useThree } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "../../utils/fxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "../../utils/useGUI";
-import {
- useChromaKey,
- useCoverTexture,
-} from "../../packages/use-shader-fx/src";
-import {
- CHROMAKEY_PARAMS,
- ChromaKeyParams,
-} from "../../packages/use-shader-fx/src/fxs/misc/useChromaKey";
-
-extend({ FxMaterial });
-
-const CONFIG: ChromaKeyParams = structuredClone(CHROMAKEY_PARAMS);
-const setGUI = (gui: GUI) => {
- gui.addColor(CONFIG, "keyColor");
- gui.add(CONFIG, "similarity", 0, 1, 0.01);
- gui.add(CONFIG, "smoothness", 0, 1, 0.01);
- gui.add(CONFIG, "spill", 0, 1, 0.01);
- gui.addColor(CONFIG, "color");
- gui.add(CONFIG, "contrast", 0, 2, 0.01);
- gui.add(CONFIG, "brightness", 0, 2, 0.01);
- gui.add(CONFIG, "gamma", 0, 2, 0.01);
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as ChromaKeyParams;
-};
-
-export const UseChromaKey = (args: ChromaKeyParams) => {
- const updateGUI = useGUI(setGUI);
- const [bg] = useLoader(THREE.TextureLoader, ["thumbnail.jpg"]);
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
-
- const [update, set, { output }] = useChromaKey({ size, dpr });
-
- const [updateCover, setCover, { output: cover }] = useCoverTexture({
- size,
- dpr,
- });
-
- setCover({
- texture: bg,
- });
-
- useFrame((props) => {
- updateCover(props);
- update(props, {
- ...setConfig(),
- texture: cover,
- });
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
diff --git a/.storybook/stories/UseColorStrata.tsx b/.storybook/stories/UseColorStrata.tsx
deleted file mode 100644
index 2b6f8fce..00000000
--- a/.storybook/stories/UseColorStrata.tsx
+++ /dev/null
@@ -1,93 +0,0 @@
-import * as React from "react";
-import { useFrame, extend, useThree } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "../../utils/fxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "../../utils/useGUI";
-import { useColorStrata, useNoise } from "../../packages/use-shader-fx/src";
-import {
- COLORSTRATA_PARAMS,
- ColorStrataParams,
-} from "../../packages/use-shader-fx/src/fxs/noises/useColorStrata";
-
-extend({ FxMaterial });
-
-const CONFIG: ColorStrataParams = structuredClone(COLORSTRATA_PARAMS);
-
-const setGUI = (gui: GUI) => {
- gui.add(CONFIG, "laminateLayer", 0, 20, 1);
- gui.add(CONFIG, "scale", 0, 1, 0.01);
- const laminateInterval = gui.addFolder("laminateInterval");
- laminateInterval.add(CONFIG.laminateInterval!, "x", 0, 2, 0.01);
- laminateInterval.add(CONFIG.laminateInterval!, "y", 0, 2, 0.01);
- const laminateDetail = gui.addFolder("laminateDetail");
- laminateDetail.add(CONFIG.laminateDetail!, "x", 0, 10, 0.1);
- laminateDetail.add(CONFIG.laminateDetail!, "y", 0, 10, 0.1);
- const distortion = gui.addFolder("distortion");
- distortion.add(CONFIG.distortion!, "x", 0, 10, 0.01);
- distortion.add(CONFIG.distortion!, "y", 0, 10, 0.01);
- const colorFactor = gui.addFolder("colorFactor");
- colorFactor.add(CONFIG.colorFactor!, "x", 0, 10, 0.01);
- colorFactor.add(CONFIG.colorFactor!, "y", 0, 10, 0.01);
- colorFactor.add(CONFIG.colorFactor!, "z", 0, 10, 0.01);
- const timeStrength = gui.addFolder("timeStrength");
- timeStrength.add(CONFIG.timeStrength!, "x", 0, 2, 0.01);
- timeStrength.add(CONFIG.timeStrength!, "y", 0, 2, 0.01);
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as ColorStrataParams;
-};
-
-export const UseColorStrata = (args: ColorStrataParams) => {
- const updateGUI = useGUI(setGUI);
-
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
- const [updateColorStrata] = useColorStrata({ size, dpr });
-
- useFrame((props) => {
- const fx = updateColorStrata(props, {
- ...setConfig(),
- });
- fxRef.current!.u_fx = fx;
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
-
-export const UseColorStrataWithNoise = (args: ColorStrataParams) => {
- const updateGUI = useGUI(setGUI);
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
- const [updateColorStrata] = useColorStrata({ size, dpr });
- const [updateNoise] = useNoise({ size, dpr });
-
- useFrame((props) => {
- const noise = updateNoise(props);
- const fx = updateColorStrata(props, {
- ...setConfig(),
- texture: noise,
- });
-
- fxRef.current!.u_fx = fx;
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
diff --git a/.storybook/stories/UseCosPalette.tsx b/.storybook/stories/UseCosPalette.tsx
deleted file mode 100644
index 7283030b..00000000
--- a/.storybook/stories/UseCosPalette.tsx
+++ /dev/null
@@ -1,65 +0,0 @@
-import * as React from "react";
-import * as THREE from "three";
-import { useFrame, extend, useThree, useLoader } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "../../utils/fxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "../../utils/useGUI";
-import {
- useCosPalette,
- useCoverTexture,
-} from "../../packages/use-shader-fx/src";
-import {
- CosPaletteParams,
- COSPALETTE_PARAMS,
-} from "../../packages/use-shader-fx/src/fxs/noises/useCosPalette";
-
-extend({ FxMaterial });
-
-const CONFIG: CosPaletteParams = structuredClone(COSPALETTE_PARAMS);
-const setGUI = (gui: GUI) => {
- gui.addColor(CONFIG, "color1");
- gui.addColor(CONFIG, "color2");
- gui.addColor(CONFIG, "color3");
- gui.addColor(CONFIG, "color4");
- gui.add(CONFIG.rgbWeight!, "x", 0, 1, 0.299);
- gui.add(CONFIG.rgbWeight!, "y", 0, 1, 0.587);
- gui.add(CONFIG.rgbWeight!, "z", 0, 1, 0.114);
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as CosPaletteParams;
-};
-
-export const UseCosPalette = (args: CosPaletteParams) => {
- const updateGUI = useGUI(setGUI);
- const [bg] = useLoader(THREE.TextureLoader, ["momo.jpg"]);
-
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
- const [updateCosPalette] = useCosPalette({ size, dpr });
- const [updateCover, setCover] = useCoverTexture({ size, dpr });
-
- setCover({
- texture: bg,
- });
-
- useFrame((props) => {
- const tex = updateCover(props);
- const fx = updateCosPalette(props, {
- ...setConfig(),
- texture: tex,
- });
- fxRef.current!.u_fx = fx;
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
diff --git a/.storybook/stories/UseCoverTexture.stories.tsx b/.storybook/stories/UseCoverTexture.stories.tsx
deleted file mode 100644
index b1a7507a..00000000
--- a/.storybook/stories/UseCoverTexture.stories.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import { UseCoverTexture } from "./UseCoverTexture";
-import {
- COVERTEXTURE_PARAMS,
- CoverTextureParams,
-} from "../../packages/use-shader-fx/src/fxs/utils/useCoverTexture";
-
-const meta = {
- title: "utils/useCoverTexture",
- component: UseCoverTexture,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-export default meta;
-type Story = StoryObj;
-
-export const Default: Story = {
- args: COVERTEXTURE_PARAMS,
- argTypes: setArgTypes(COVERTEXTURE_PARAMS),
-};
diff --git a/.storybook/stories/UseCoverTexture.tsx b/.storybook/stories/UseCoverTexture.tsx
deleted file mode 100644
index 1173f50b..00000000
--- a/.storybook/stories/UseCoverTexture.tsx
+++ /dev/null
@@ -1,54 +0,0 @@
-import * as React from "react";
-import * as THREE from "three";
-import { useFrame, useLoader, extend, useThree } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "../../utils/fxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "../../utils/useGUI";
-import { useCoverTexture } from "../../packages/use-shader-fx/src";
-import {
- COVERTEXTURE_PARAMS,
- CoverTextureParams,
-} from "../../packages/use-shader-fx/src/fxs/utils/useCoverTexture";
-
-extend({ FxMaterial });
-
-const CONFIG: CoverTextureParams = structuredClone(COVERTEXTURE_PARAMS);
-const setGUI = (gui: GUI) => {};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as CoverTextureParams;
-};
-
-/** The hook with `~~Texutre` calculates the texture resolution and canvas resolution and covers the texture. */
-export const UseCoverTexture = (args: CoverTextureParams) => {
- const [bg] = useLoader(THREE.TextureLoader, ["/momo.jpg"]);
- const updateGUI = useGUI(setGUI);
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
-
- const [update, set, { output }] = useCoverTexture({ size, dpr });
-
- set({
- texture: bg,
- });
-
- useFrame((props) => {
- update(props);
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
diff --git a/.storybook/stories/UseDuoTone.tsx b/.storybook/stories/UseDuoTone.tsx
deleted file mode 100644
index 2725fdd1..00000000
--- a/.storybook/stories/UseDuoTone.tsx
+++ /dev/null
@@ -1,54 +0,0 @@
-import * as React from "react";
-import * as THREE from "three";
-import { useFrame, useLoader, extend, useThree } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "../../utils/fxMaterial";
-import { useDuoTone, useFxTexture } from "../../packages/use-shader-fx/src";
-import {
- DuoToneParams,
- DUOTONE_PARAMS,
-} from "../../packages/use-shader-fx/src/fxs/utils/useDuoTone";
-import GUI from "lil-gui";
-import { useGUI } from "../../utils/useGUI";
-
-extend({ FxMaterial });
-
-const CONFIG: DuoToneParams = structuredClone(DUOTONE_PARAMS);
-const setGUI = (gui: GUI) => {
- gui.addColor(CONFIG, "color0");
- gui.addColor(CONFIG, "color1");
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as DuoToneParams;
-};
-
-export const UseDuoTone = (args: DuoToneParams) => {
- const updateGUI = useGUI(setGUI);
- const [bg] = useLoader(THREE.TextureLoader, ["thumbnail.jpg"]);
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
- const [updateFxTexture] = useFxTexture({ size, dpr });
- const [updateDuoTone] = useDuoTone({ size, dpr });
-
- useFrame((props) => {
- const bgTexture = updateFxTexture(props, {
- texture0: bg,
- });
- const fx = updateDuoTone(props, {
- ...setConfig(),
- texture: bgTexture,
- });
- fxRef.current!.u_fx = fx;
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
diff --git a/.storybook/stories/UseFluid.tsx b/.storybook/stories/UseFluid.tsx
deleted file mode 100644
index 25fc74bb..00000000
--- a/.storybook/stories/UseFluid.tsx
+++ /dev/null
@@ -1,101 +0,0 @@
-import * as React from "react";
-import * as THREE from "three";
-import { useFrame, extend, useThree, useLoader } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "../../utils/fxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "../../utils/useGUI";
-import {
- useFPSLimiter,
- useFluid,
- useFxTexture,
-} from "../../packages/use-shader-fx/src";
-import {
- FLUID_PARAMS,
- FluidParams,
-} from "../../packages/use-shader-fx/src/fxs/simulations/useFluid";
-
-extend({ FxMaterial });
-
-const CONFIG: FluidParams = structuredClone(FLUID_PARAMS);
-const setGUI = (gui: GUI) => {
- gui.add(CONFIG, "densityDissipation", 0, 1, 0.01);
- gui.add(CONFIG, "velocityDissipation", 0, 1, 0.01);
- gui.add(CONFIG, "velocityAcceleration", 0, 100, 1);
- gui.add(CONFIG, "pressureDissipation", 0, 1, 0.01);
- gui.add(CONFIG, "pressureIterations", 0, 30, 1);
- gui.add(CONFIG, "curlStrength", 0, 100, 1);
- gui.add(CONFIG, "splatRadius", 0, 0.2, 0.001);
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as FluidParams;
-};
-
-export const UseFluid = (args: FluidParams) => {
- const updateGUI = useGUI(setGUI);
-
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
- const [updateFluid] = useFluid({
- size,
- dpr,
- customFluidProps: {
- curl: {
- onBeforeInit: React.useCallback((shader: any) => {
- console.log(shader.fragmentShader);
- }, []),
- },
- },
- });
-
- useFrame((state) => {
- const fx = updateFluid(state, setConfig());
- fxRef.current!.u_fx = fx;
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
-
-export const UseFluidWithTexture = (args: FluidParams) => {
- const updateGUI = useGUI(setGUI);
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
- const [updateFluid] = useFluid({ size, dpr });
-
- const [bg] = useLoader(THREE.TextureLoader, ["thumbnail.jpg"]);
- const [updateFxTexture] = useFxTexture({ size, dpr });
-
- useFrame((props) => {
- const fx = updateFluid(props, setConfig());
-
- const bgTexture = updateFxTexture(props, {
- map: fx,
- padding: 0.1,
- mapIntensity: 0.3,
- edgeIntensity: 0.3,
- texture0: bg,
- });
-
- fxRef.current!.u_fx = bgTexture;
- fxRef.current!.u_alpha = 0.0;
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
diff --git a/.storybook/stories/UseFxBlending.tsx b/.storybook/stories/UseFxBlending.tsx
deleted file mode 100644
index 1357c6b8..00000000
--- a/.storybook/stories/UseFxBlending.tsx
+++ /dev/null
@@ -1,60 +0,0 @@
-import * as React from "react";
-import * as THREE from "three";
-import { useFrame, useLoader, extend, useThree } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "../../utils/fxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "../../utils/useGUI";
-import {
- useFxBlending,
- useFluid,
- useNoise,
-} from "../../packages/use-shader-fx/src";
-import {
- FxBlendingParams,
- FXBLENDING_PARAMS,
-} from "../../packages/use-shader-fx/src/fxs/utils/useFxBlending";
-
-extend({ FxMaterial });
-
-const CONFIG: FxBlendingParams = structuredClone(FXBLENDING_PARAMS);
-const setGUI = (gui: GUI) => {
- gui.add(CONFIG, "mapIntensity", 0, 1, 0.01);
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as FxBlendingParams;
-};
-
-/**
- * Blend map to texture. You can change the intensity of fx applied by the rg value of map. Unlike "useBlending", the map color is not reflected.
- */
-export const UseFxBlending = (args: FxBlendingParams) => {
- const updateGUI = useGUI(setGUI);
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
- const [updateFluid] = useFluid({ size, dpr });
- const [updateNoise] = useNoise({ size, dpr });
- const [updateFxBlending] = useFxBlending({ size, dpr });
-
- useFrame((props) => {
- const noise = updateNoise(props);
- const fluid = updateFluid(props);
- const blending = updateFxBlending(props, {
- ...setConfig(),
- texture: fluid,
- map: noise,
- });
- fxRef.current!.u_fx = blending;
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
diff --git a/.storybook/stories/UseFxTexture.tsx b/.storybook/stories/UseFxTexture.tsx
deleted file mode 100644
index 6ee369fe..00000000
--- a/.storybook/stories/UseFxTexture.tsx
+++ /dev/null
@@ -1,71 +0,0 @@
-import * as React from "react";
-import * as THREE from "three";
-import { useFrame, useLoader, extend, useThree } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "../../utils/fxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "../../utils/useGUI";
-import { useFxTexture, useNoise } from "../../packages/use-shader-fx/src";
-import {
- FxTextureParams,
- FXTEXTURE_PARAMS,
-} from "../../packages/use-shader-fx/src/fxs/utils/useFxTexture";
-
-extend({ FxMaterial });
-
-const CONFIG: FxTextureParams = structuredClone(FXTEXTURE_PARAMS);
-
-const setGUI = (gui: GUI) => {
- gui.add(CONFIG, "mapIntensity", 0, 10, 0.1);
- gui.add(CONFIG, "edgeIntensity", 0, 10, 0.1);
- const epicenter = gui.addFolder("epicenter");
- epicenter.add(CONFIG.epicenter!, "x", -1, 1, 0.1);
- epicenter.add(CONFIG.epicenter!, "y", -1, 1, 0.1);
- gui.add(CONFIG, "progress", 0, 1, 0.01);
- const dir = gui.addFolder("dir");
- dir.add(CONFIG.dir!, "x", -1, 1, 0.01);
- dir.add(CONFIG.dir!, "y", -1, 1, 0.01);
- gui.add(CONFIG, "padding", 0, 0.3, 0.01);
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as FxTextureParams;
-};
-
-/**
- * Textures can be affected by a map; it is also possible to transition between two textures. If the resolution of texture0 and texture1 is different, it is linearly interpolated according to the value of progress
- *
- * ※ The hook with `~~Texutre` calculates the texture resolution and canvas resolution and covers the texture.
- */
-export const UseFxTexture = (args: FxTextureParams) => {
- const updateGUI = useGUI(setGUI);
- const [bg, momo] = useLoader(THREE.TextureLoader, [
- "app-head.jpg",
- "momo.jpg",
- ]);
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
- const [updateFxTexture] = useFxTexture({ size, dpr });
- const [updateNoise] = useNoise({ size, dpr });
-
- useFrame((props) => {
- const noise = updateNoise(props);
- const fx = updateFxTexture(props, {
- ...setConfig(),
- map: noise,
- texture0: bg,
- texture1: momo,
- });
- fxRef.current!.u_fx = fx;
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
diff --git a/.storybook/stories/UseHSV.stories.tsx b/.storybook/stories/UseHSV.stories.tsx
deleted file mode 100644
index c5c3f2cc..00000000
--- a/.storybook/stories/UseHSV.stories.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import { UseHSV } from "./UseHSV";
-import {
- HSV_PARAMS,
- HSVParams,
-} from "../../packages/use-shader-fx/src/fxs/utils/useHSV";
-
-const meta = {
- title: "utils/useHSV",
- component: UseHSV,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-export default meta;
-type Story = StoryObj;
-
-export const Default: Story = {
- args: HSV_PARAMS,
- argTypes: setArgTypes(HSV_PARAMS),
-};
diff --git a/.storybook/stories/UseHSV.tsx b/.storybook/stories/UseHSV.tsx
deleted file mode 100644
index 1613c735..00000000
--- a/.storybook/stories/UseHSV.tsx
+++ /dev/null
@@ -1,64 +0,0 @@
-import * as React from "react";
-import * as THREE from "three";
-import { useFrame, useLoader, extend, useThree } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "../../utils/fxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "../../utils/useGUI";
-import { useHSV, useCoverTexture } from "../../packages/use-shader-fx/src";
-import {
- HSV_PARAMS,
- HSVParams,
-} from "../../packages/use-shader-fx/src/fxs/utils/useHSV";
-
-extend({ FxMaterial });
-
-const CONFIG: HSVParams = structuredClone(HSV_PARAMS);
-const setGUI = (gui: GUI) => {
- gui.add(CONFIG, "brightness", 0, 10, 0.01);
- gui.add(CONFIG, "saturation", 0, 10, 0.01);
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as HSVParams;
-};
-
-export const UseHSV = (args: HSVParams) => {
- const [bg] = useLoader(THREE.TextureLoader, ["/momo.jpg"]);
- const updateGUI = useGUI(setGUI);
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
-
- const [updateCover, setCover, { output: cover }] = useCoverTexture({
- size,
- dpr,
- });
- const [update, set, { output }] = useHSV({ size, dpr });
-
- setCover({
- texture: bg,
- });
-
- useFrame((props) => {
- updateCover(props);
- update(props, {
- ...setConfig(),
- texture: cover,
- });
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
diff --git a/.storybook/stories/UseMarble.stories.tsx b/.storybook/stories/UseMarble.stories.tsx
deleted file mode 100644
index be39ed4f..00000000
--- a/.storybook/stories/UseMarble.stories.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import { UseMarble } from "./UseMarble";
-import {
- MARBLE_PARAMS,
- MarbleParams,
-} from "../../packages/use-shader-fx/src/fxs/noises/useMarble";
-
-const meta = {
- title: "noises/useMarble",
- component: UseMarble,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-export default meta;
-type Story = StoryObj;
-
-export const Default: Story = {
- args: MARBLE_PARAMS,
- argTypes: setArgTypes(MARBLE_PARAMS),
-};
diff --git a/.storybook/stories/UseMarble.tsx b/.storybook/stories/UseMarble.tsx
deleted file mode 100644
index 067c3777..00000000
--- a/.storybook/stories/UseMarble.tsx
+++ /dev/null
@@ -1,57 +0,0 @@
-import * as React from "react";
-import * as THREE from "three";
-import { useFrame, useLoader, extend, useThree } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "../../utils/fxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "../../utils/useGUI";
-import { useMarble } from "../../packages/use-shader-fx/src";
-import {
- MARBLE_PARAMS,
- MarbleParams,
-} from "../../packages/use-shader-fx/src/fxs/noises/useMarble";
-
-extend({ FxMaterial });
-
-const CONFIG: MarbleParams = structuredClone(MARBLE_PARAMS);
-const setGUI = (gui: GUI) => {
- gui.add(CONFIG, "pattern", 0, 1000, 1);
- gui.add(CONFIG, "complexity", 0, 10, 0.01);
- gui.add(CONFIG, "complexityAttenuation", 0, 2, 0.01);
- gui.add(CONFIG, "iterations", 0, 10, 1);
- gui.add(CONFIG, "timeStrength", 0, 2, 0.01);
- gui.add(CONFIG, "scale", 0, 1, 0.001);
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as MarbleParams;
-};
-
-export const UseMarble = (args: MarbleParams) => {
- const updateGUI = useGUI(setGUI);
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
-
- const [update, set, { output }] = useMarble({ size, dpr });
-
- useFrame((props) => {
- update(props, {
- ...setConfig(),
- });
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
diff --git a/.storybook/stories/UseMorphParticles.tsx b/.storybook/stories/UseMorphParticles.tsx
deleted file mode 100644
index 546da4de..00000000
--- a/.storybook/stories/UseMorphParticles.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-import * as React from "react";
-import * as THREE from "three";
-import { useFrame, extend, useThree, useLoader } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "../../utils/fxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "../../utils/useGUI";
-import { useCreateMorphParticles } from "../../packages/use-shader-fx/src";
-import {
- MORPHPARTICLES_PARAMS,
- MorphParticlesParams,
-} from "../../packages/use-shader-fx/src/fxs/3D/useMorphParticles";
-import { Environment, OrbitControls } from "@react-three/drei";
-
-extend({ FxMaterial });
-
-const CONFIG: MorphParticlesParams = structuredClone(MORPHPARTICLES_PARAMS);
-const setGUI = (gui: GUI) => {
- gui.add(CONFIG, "blurAlpha", 0, 1, 0.01);
- gui.add(CONFIG, "blurRadius", 0, 2, 0.01);
- gui.add(CONFIG, "pointSize", 0.01, 2, 0.01);
- gui.addColor(CONFIG, "color0");
- gui.addColor(CONFIG, "color1");
- gui.addColor(CONFIG, "color2");
- gui.addColor(CONFIG, "color3");
- gui.add(CONFIG, "wobbleStrength", 0, 10, 0.01);
- gui.add(CONFIG, "wobblePositionFrequency", 0, 10, 0.01);
- gui.add(CONFIG, "wobbleTimeFrequency", 0, 10, 0.01);
- gui.add(CONFIG, "warpStrength", 0, 10, 0.01);
- gui.add(CONFIG, "warpPositionFrequency", 0, 10, 0.01);
- gui.add(CONFIG, "warpTimeFrequency", 0, 10, 0.01);
- gui.add(CONFIG, "displacementIntensity", 0, 10, 0.01);
- gui.add(CONFIG, "displacementColorIntensity", 0, 40, 0.01);
- gui.add(CONFIG, "morphProgress", 0, 1, 0.01);
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as MorphParticlesParams;
-};
-
-const morphList = [
- new THREE.PlaneGeometry(5, 5, 100, 100).attributes.position
- .array as Float32Array,
- new THREE.TorusGeometry(2.5, 1, 50, 30).attributes.position
- .array as Float32Array,
-];
-const uvList = [
- new THREE.PlaneGeometry(5, 5, 100, 100).attributes.uv.array as Float32Array,
- new THREE.TorusGeometry(2.5, 1, 50, 30).attributes.uv.array as Float32Array,
-];
-
-export const UseMorphParticles = (args: MorphParticlesParams) => {
- const updateGUI = useGUI(setGUI);
-
- const { viewport, size } = useThree();
-
- const [updateMorph, morph] = useCreateMorphParticles({
- scene: false,
- size,
- dpr: viewport.dpr,
- geometry: React.useMemo(() => new THREE.IcosahedronGeometry(2.5, 50), []),
- positions: morphList,
- uvs: uvList,
- });
-
- useFrame((props) => {
- updateMorph(props, {
- ...setConfig(),
- });
- updateGUI();
- });
- return (
-
-
-
-
- );
-};
diff --git a/.storybook/stories/UseMotionBlur.tsx b/.storybook/stories/UseMotionBlur.tsx
deleted file mode 100644
index 5f62bd68..00000000
--- a/.storybook/stories/UseMotionBlur.tsx
+++ /dev/null
@@ -1,116 +0,0 @@
-import * as THREE from "three";
-import * as React from "react";
-import { useFrame, extend, useThree, createPortal } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "../../utils/fxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "../../utils/useGUI";
-import { useMotionBlur, useSingleFBO } from "../../packages/use-shader-fx/src";
-import {
- MotionBlurParams,
- MOTIONBLUR_PARAMS,
-} from "../../packages/use-shader-fx/src/fxs/effects/useMotionBlur";
-import { OrbitControls } from "@react-three/drei";
-
-extend({ FxMaterial });
-
-const CONFIG: MotionBlurParams = structuredClone(MOTIONBLUR_PARAMS);
-const setGUI = (gui: GUI) => {
- gui.add(CONFIG, "strength", 0, 0.99, 0.01);
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as MotionBlurParams;
-};
-
-export const UseMotionBlur = (args: MotionBlurParams) => {
- const updateGUI = useGUI(setGUI);
-
- const fxRef = React.useRef();
- const { size, viewport, camera } = useThree();
- const [updateMotionBlur, setMotionBlur] = useMotionBlur({
- size,
- dpr: viewport.dpr,
- });
-
- // This scene is rendered offscreen
- const offscreenScene = React.useMemo(() => new THREE.Scene(), []);
-
- // create FBO for offscreen rendering
- const [boxView, updateRenderTarget] = useSingleFBO({
- scene: offscreenScene,
- camera,
- size,
- dpr: viewport.dpr,
- samples: 4,
- });
-
- setMotionBlur({
- texture: boxView.texture,
- });
-
- useFrame((props) => {
- updateRenderTarget(props.gl);
- const fx = updateMotionBlur(props, {
- strength: setConfig().strength,
- });
- fxRef.current!.u_fx = fx;
- updateGUI();
- });
-
- return (
- <>
- {createPortal(
-
-
-
-
-
-
- ,
- offscreenScene
- )}
-
-
-
-
-
- >
- );
-};
-
-function Box(props: any) {
- // This reference will give us direct access to the mesh
- const meshRef = React.useRef();
- // Set up state for the hovered and active state
- const [hovered, setHover] = React.useState(false);
- const [active, setActive] = React.useState(false);
- // Subscribe this component to the render-loop, rotate the mesh every frame
- useFrame((state, delta) => {
- meshRef.current!.rotation.x += delta;
- meshRef.current!.rotation.y -= delta;
- });
- // Return view, these are regular three.js elements expressed in JSX
- return (
- setActive(!active)}
- onPointerOver={(event) => setHover(true)}
- onPointerOut={(event) => setHover(false)}>
-
-
-
- );
-}
diff --git a/.storybook/stories/UseNoise.tsx b/.storybook/stories/UseNoise.tsx
deleted file mode 100644
index 268f06a4..00000000
--- a/.storybook/stories/UseNoise.tsx
+++ /dev/null
@@ -1,55 +0,0 @@
-import * as React from "react";
-import { useFrame, extend, useThree } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "../../utils/fxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "../../utils/useGUI";
-import { useNoise } from "../../packages/use-shader-fx/src";
-import {
- NoiseParams,
- NOISE_PARAMS,
-} from "../../packages/use-shader-fx/src/fxs/noises/useNoise";
-
-extend({ FxMaterial });
-
-const CONFIG: NoiseParams = structuredClone(NOISE_PARAMS);
-const setGUI = (gui: GUI) => {
- gui.add(CONFIG, "scale", 0, 10, 0.001);
- gui.add(CONFIG, "timeStrength", 0, 10, 0.01);
- gui.add(CONFIG, "noiseOctaves", 1, 10, 1);
- gui.add(CONFIG, "fbmOctaves", 1, 10, 1);
- gui.add(CONFIG, "warpOctaves", 1, 10, 1);
- gui.add(CONFIG.warpDirection!, "x", 1, 10, 0.1);
- gui.add(CONFIG.warpDirection!, "y", 1, 10, 0.1);
- gui.add(CONFIG, "warpStrength", 1, 50, 0.1);
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as NoiseParams;
-};
-
-/**
- * Rather than using noise alone, use it by passing it to noise of another hook! This is to calculate noise at once when overlapping fx.
- */
-export const UseNoise = (args: NoiseParams) => {
- const updateGUI = useGUI(setGUI);
-
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
- const [updateNoise] = useNoise({ size, dpr });
-
- useFrame((props) => {
- const fx = updateNoise(props, setConfig());
- fxRef.current!.u_fx = fx;
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
diff --git a/.storybook/stories/UseRipple.tsx b/.storybook/stories/UseRipple.tsx
deleted file mode 100644
index 78fefd44..00000000
--- a/.storybook/stories/UseRipple.tsx
+++ /dev/null
@@ -1,114 +0,0 @@
-import * as React from "react";
-import * as THREE from "three";
-import { useFrame, extend, useThree, useLoader } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "../../utils/fxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "../../utils/useGUI";
-import { useRipple, useFxTexture } from "../../packages/use-shader-fx/src";
-import {
- RippleParams,
- RIPPLE_PARAMS,
-} from "../../packages/use-shader-fx/src/fxs/simulations/useRipple";
-import { OnBeforeInitParameters } from "../../packages/use-shader-fx/src/fxs/types";
-
-extend({ FxMaterial });
-
-const CONFIG: RippleParams = structuredClone(RIPPLE_PARAMS);
-const setGUI = (gui: GUI) => {
- gui.add(CONFIG, "frequency", 0, 0.1, 0.01);
- gui.add(CONFIG, "rotation", 0, 1, 0.01);
- gui.add(CONFIG, "fadeoutSpeed", 0, 0.99, 0.01);
- gui.add(CONFIG, "scale", 0, 1, 0.01);
- gui.add(CONFIG, "alpha", 0, 1, 0.01);
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as RippleParams;
-};
-
-export const UseRipple = (args: RippleParams) => {
- const [ripple] = useLoader(THREE.TextureLoader, ["smoke.png"]);
- const updateGUI = useGUI(setGUI);
- const fxRef = React.useRef();
- const { size, viewport } = useThree();
- const [updateRipple, setRipple] = useRipple({
- size,
- texture: ripple,
- dpr: viewport.dpr,
- max: 80,
- onBeforeInit: React.useCallback((shader: OnBeforeInitParameters) => {
- Object.assign(shader.uniforms, {
- testtest: { value: 0 },
- });
- shader.fragmentShader = shader.fragmentShader.replace(
- "void main() {",
- `
- uniform float testtest;
- void main() {
- `
- );
- shader.fragmentShader = shader.fragmentShader.replace(
- "vec3 color = texture2D(uMap, uv).rgb",
- `
- vec3 color = texture2D(uMap, uv).rgb;
- color.r *= sin(testtest)*.5+.5;
- color.g *= cos(testtest)*.5+.5;
- `
- );
- }, []),
- });
-
- useFrame((props) => {
- const fx = updateRipple(props, setConfig(), {
- testtest: props.clock.getElapsedTime(),
- });
- fxRef.current!.u_fx = fx;
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
-
-export const UseRippleWithTexture = (args: RippleParams) => {
- const [bg, ripple] = useLoader(THREE.TextureLoader, [
- "thumbnail.jpg",
- "smoke.png",
- ]);
- const updateGUI = useGUI(setGUI);
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
- const [updateFxTexture] = useFxTexture({ size, dpr });
- const [updateRipple] = useRipple({
- size,
- dpr,
- texture: ripple,
- });
-
- useFrame((props) => {
- const fx = updateRipple(props, setConfig());
-
- const bgTexture = updateFxTexture(props, {
- texture0: bg,
- map: fx,
- mapIntensity: 1.3,
- });
-
- fxRef.current!.u_fx = bgTexture;
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
diff --git a/.storybook/stories/UseSimpleBlur.tsx b/.storybook/stories/UseSimpleBlur.tsx
deleted file mode 100644
index 261b434b..00000000
--- a/.storybook/stories/UseSimpleBlur.tsx
+++ /dev/null
@@ -1,66 +0,0 @@
-import * as React from "react";
-import * as THREE from "three";
-import { useFrame, extend, useThree, useLoader } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "../../utils/fxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "../../utils/useGUI";
-import {
- useSimpleBlur,
- useFxTexture,
- useCoverTexture,
-} from "../../packages/use-shader-fx/src";
-import {
- SimpleBlurParams,
- SIMPLEBLUR_PARAMS,
-} from "../../packages/use-shader-fx/src/fxs/effects/useSimpleBlur";
-
-extend({ FxMaterial });
-
-const CONFIG: SimpleBlurParams = structuredClone(SIMPLEBLUR_PARAMS);
-const setGUI = (gui: GUI) => {
- gui.add(CONFIG, "blurSize", 0, 10, 0.01);
- gui.add(CONFIG, "blurPower", 0, 10, 1);
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as SimpleBlurParams;
-};
-
-export const UseSimpleBlur = (args: SimpleBlurParams) => {
- const updateGUI = useGUI(setGUI);
- const [bg] = useLoader(THREE.TextureLoader, ["thumbnail.jpg"]);
-
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
-
- const [updateSimpleBlur] = useSimpleBlur({ size, dpr });
-
- const [updateCover, setCover, { output: cover }] = useCoverTexture({
- size,
- dpr,
- });
-
- setCover({
- texture: bg,
- });
-
- useFrame((props) => {
- updateCover(props);
- const fx = updateSimpleBlur(props, {
- ...setConfig(),
- texture: cover,
- });
- fxRef.current!.u_fx = fx;
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
diff --git a/.storybook/stories/UseWave.tsx b/.storybook/stories/UseWave.tsx
deleted file mode 100644
index a03d72fd..00000000
--- a/.storybook/stories/UseWave.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-import * as React from "react";
-import * as THREE from "three";
-import { useFrame, extend, useThree, useLoader } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "../../utils/fxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "../../utils/useGUI";
-import { useWave, useFxTexture } from "../../packages/use-shader-fx/src";
-import {
- WAVE_PARAMS,
- WaveParams,
-} from "../../packages/use-shader-fx/src/fxs/effects/useWave";
-
-extend({ FxMaterial });
-
-const CONFIG: WaveParams = structuredClone(WAVE_PARAMS);
-const setGUI = (gui: GUI) => {
- const epicenter = gui.addFolder("epicenter");
- epicenter.add(CONFIG.epicenter!, "x", -1, 1, 0.1);
- epicenter.add(CONFIG.epicenter!, "y", -1, 1, 0.1);
- gui.add(CONFIG, "progress", 0, 1, 0.1);
- gui.add(CONFIG, "width", 0, 1, 0.1);
- gui.add(CONFIG, "strength", 0, 1, 0.1);
- gui.add(CONFIG, "mode", ["center", "horizontal", "vertical"]);
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as WaveParams;
-};
-
-export const UseWave = (args: WaveParams) => {
- const updateGUI = useGUI(setGUI);
-
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
- const [updateWave] = useWave({ size, dpr });
-
- useFrame((props) => {
- const fx = updateWave(props, setConfig());
- fxRef.current!.u_fx = fx;
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
-
-export const UseWaveWithTexture = (args: WaveParams) => {
- const updateGUI = useGUI(setGUI);
- const fxRef = React.useRef();
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
-
- const [updateWave] = useWave({ size, dpr });
- const [updateFxTexture] = useFxTexture({ size, dpr });
-
- const [bg] = useLoader(THREE.TextureLoader, ["thumbnail.jpg"]);
-
- useFrame((props) => {
- const fx = updateWave(props, setConfig());
-
- const bgTexture = updateFxTexture(props, {
- map: fx,
- padding: 0.2,
- mapIntensity: 0.5,
- edgeIntensity: 0.5,
- texture0: bg,
- });
-
- fxRef.current!.u_fx = bgTexture;
- fxRef.current!.u_alpha = 0.0;
- updateGUI();
- });
-
- return (
-
-
-
-
- );
-};
diff --git a/.storybook/stories/UseWobble3D.tsx b/.storybook/stories/UseWobble3D.tsx
deleted file mode 100644
index deac12da..00000000
--- a/.storybook/stories/UseWobble3D.tsx
+++ /dev/null
@@ -1,71 +0,0 @@
-import * as React from "react";
-import * as THREE from "three";
-import { useFrame, extend, useThree, useLoader } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "../../utils/fxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "../../utils/useGUI";
-import {
- useWobble3D,
- useCreateWobble3D,
-} from "../../packages/use-shader-fx/src";
-import {
- WOBBLE3D_PARAMS,
- Wobble3DParams,
-} from "../../packages/use-shader-fx/src/fxs/3D/useWobble3D";
-import { Environment, OrbitControls } from "@react-three/drei";
-
-extend({ FxMaterial });
-
-const CONFIG: Wobble3DParams = structuredClone(WOBBLE3D_PARAMS);
-const setGUI = (gui: GUI) => {
- gui.addColor(CONFIG, "color0");
- gui.addColor(CONFIG, "color1");
- gui.addColor(CONFIG, "color2");
- gui.addColor(CONFIG, "color3");
- gui.add(CONFIG, "wobbleStrength", 0, 10, 0.01);
- gui.add(CONFIG, "wobblePositionFrequency", 0, 10, 0.01);
- gui.add(CONFIG, "wobbleTimeFrequency", 0, 10, 0.01);
- gui.add(CONFIG, "warpStrength", 0, 10, 0.01);
- gui.add(CONFIG, "warpPositionFrequency", 0, 10, 0.01);
- gui.add(CONFIG, "warpTimeFrequency", 0, 10, 0.01);
- gui.add(CONFIG, "colorMix", 0, 1, 0.01);
- gui.add(CONFIG, "chromaticAberration", 0, 10, 0.01);
- gui.add(CONFIG, "anisotropicBlur", 0, 10, 0.01);
- gui.add(CONFIG, "distortion", 0, 10, 0.01);
- gui.add(CONFIG, "distortionScale", 0, 10, 0.01);
- gui.add(CONFIG, "temporalDistortion", 0, 10, 0.01);
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as Wobble3DParams;
-};
-
-export const UseWobble3D = (args: Wobble3DParams) => {
- const updateGUI = useGUI(setGUI);
-
- const [updateWobble, wobble] = useCreateWobble3D({
- baseMaterial: THREE.MeshPhysicalMaterial,
- materialParameters: {
- iridescence: 0.1,
- metalness: 0.0,
- roughness: 0.0,
- transmission: 0.8,
- thickness: 0.8,
- },
- });
-
- useFrame((props) => {
- updateWobble(props, {
- ...setConfig(),
- });
- updateGUI();
- });
- return (
-
-
-
-
-
- );
-};
diff --git a/.storybook/stories/useBlending.stories.tsx b/.storybook/stories/useBlending.stories.tsx
deleted file mode 100644
index aed666a8..00000000
--- a/.storybook/stories/useBlending.stories.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import { UseBlending } from "./UseBlending";
-import {
- BlendingParams,
- BLENDING_PARAMS,
-} from "../../packages/use-shader-fx/src/fxs/utils/useBlending";
-
-const meta = {
- title: "utils/useBlending",
- component: UseBlending,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-export default meta;
-type Story = StoryObj;
-
-export const Default: Story = {
- args: BLENDING_PARAMS,
- argTypes: setArgTypes(BLENDING_PARAMS),
-};
diff --git a/.storybook/stories/useBrightnessPicker.stories.tsx b/.storybook/stories/useBrightnessPicker.stories.tsx
deleted file mode 100644
index 1ae16824..00000000
--- a/.storybook/stories/useBrightnessPicker.stories.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import { UseBrightnessPicker } from "./UseBrightnessPicker";
-import {
- BrightnessPickerParams,
- BRIGHTNESSPICKER_PARAMS,
-} from "../../packages/use-shader-fx/src/fxs/utils/useBrightnessPicker";
-
-const meta = {
- title: "utils/useBrightnessPicker",
- component: UseBrightnessPicker,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-export default meta;
-type Story = StoryObj;
-
-export const Default: Story = {
- args: BRIGHTNESSPICKER_PARAMS,
- argTypes: setArgTypes(BRIGHTNESSPICKER_PARAMS),
-};
diff --git a/.storybook/stories/useBrush.stories.tsx b/.storybook/stories/useBrush.stories.tsx
deleted file mode 100644
index 98a6c13e..00000000
--- a/.storybook/stories/useBrush.stories.tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import { UseBrush, UseBrushWithTexture } from "./UseBrush";
-import {
- BRUSH_PARAMS,
- BrushParams,
-} from "../../packages/use-shader-fx/src/fxs/interactions/useBrush";
-
-const meta = {
- title: "interactions/useBrush",
- component: UseBrush,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-export default meta;
-type Story = StoryObj;
-
-const storySetting = {
- args: BRUSH_PARAMS,
- argTypes: setArgTypes(BRUSH_PARAMS),
-};
-
-export const Default: Story = {
- render: (args) => ,
- ...storySetting,
-};
-
-export const WithTexture: Story = {
- render: (args) => ,
- ...storySetting,
-};
diff --git a/.storybook/stories/useColorStrata.stories.tsx b/.storybook/stories/useColorStrata.stories.tsx
deleted file mode 100644
index e66115e4..00000000
--- a/.storybook/stories/useColorStrata.stories.tsx
+++ /dev/null
@@ -1,33 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import {
- COLORSTRATA_PARAMS,
- ColorStrataParams,
-} from "../../packages/use-shader-fx/src/fxs/noises/useColorStrata";
-import { UseColorStrata, UseColorStrataWithNoise } from "./UseColorStrata";
-
-const meta = {
- title: "noises/useColorStrata",
- component: UseColorStrata,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-
-export default meta;
-type Story = StoryObj;
-
-const storySetting = {
- args: COLORSTRATA_PARAMS,
- argTypes: setArgTypes(COLORSTRATA_PARAMS),
-};
-export const ColorStrata: Story = {
- render: (args) => ,
- ...storySetting,
-};
-export const WithNoise: Story = {
- render: (args) => ,
- ...storySetting,
-};
diff --git a/.storybook/stories/useCosPalette.stories.tsx b/.storybook/stories/useCosPalette.stories.tsx
deleted file mode 100644
index 9437f60a..00000000
--- a/.storybook/stories/useCosPalette.stories.tsx
+++ /dev/null
@@ -1,30 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import { UseCosPalette } from "./UseCosPalette";
-import {
- CosPaletteParams,
- COSPALETTE_PARAMS,
-} from "../../packages/use-shader-fx/src/fxs/noises/useCosPalette";
-
-const meta = {
- title: "noises/useCosPalette",
- component: UseCosPalette,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-
-export default meta;
-type Story = StoryObj;
-
-const storySetting = {
- args: COSPALETTE_PARAMS,
- argTypes: setArgTypes(COSPALETTE_PARAMS),
-};
-
-export const Default: Story = {
- render: (args) => ,
- ...storySetting,
-};
diff --git a/.storybook/stories/useDuoTone.stories.tsx b/.storybook/stories/useDuoTone.stories.tsx
deleted file mode 100644
index f613eba3..00000000
--- a/.storybook/stories/useDuoTone.stories.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import { UseDuoTone } from "./UseDuoTone";
-import {
- DUOTONE_PARAMS,
- DuoToneParams,
-} from "../../packages/use-shader-fx/src/fxs/utils/useDuoTone";
-
-const meta = {
- title: "utils/useDuoTone",
- component: UseDuoTone,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-export default meta;
-type Story = StoryObj;
-
-export const Default: Story = {
- args: DUOTONE_PARAMS,
- argTypes: setArgTypes(DUOTONE_PARAMS),
-};
diff --git a/.storybook/stories/useFluid.stories.tsx b/.storybook/stories/useFluid.stories.tsx
deleted file mode 100644
index a5527e19..00000000
--- a/.storybook/stories/useFluid.stories.tsx
+++ /dev/null
@@ -1,33 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import {
- FLUID_PARAMS,
- FluidParams,
-} from "../../packages/use-shader-fx/src/fxs/simulations/useFluid";
-import { UseFluid, UseFluidWithTexture } from "./UseFluid";
-
-const meta = {
- title: "simulations/useFluid",
- component: UseFluid,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-
-export default meta;
-type Story = StoryObj;
-
-const storySetting = {
- args: FLUID_PARAMS,
- argTypes: setArgTypes(FLUID_PARAMS),
-};
-export const Fluid: Story = {
- render: (args) => ,
- ...storySetting,
-};
-export const WithTexture: Story = {
- render: (args) => ,
- ...storySetting,
-};
diff --git a/.storybook/stories/useFxBlending.stories.tsx b/.storybook/stories/useFxBlending.stories.tsx
deleted file mode 100644
index cac088c9..00000000
--- a/.storybook/stories/useFxBlending.stories.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import { UseFxBlending } from "./UseFxBlending";
-import {
- FxBlendingParams,
- FXBLENDING_PARAMS,
-} from "../../packages/use-shader-fx/src/fxs/utils/useFxBlending";
-
-const meta = {
- title: "utils/useFxBlending",
- component: UseFxBlending,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-export default meta;
-type Story = StoryObj;
-
-export const Default: Story = {
- args: FXBLENDING_PARAMS,
- argTypes: setArgTypes(FXBLENDING_PARAMS),
-};
diff --git a/.storybook/stories/useFxTexture.stories.tsx b/.storybook/stories/useFxTexture.stories.tsx
deleted file mode 100644
index ba62910f..00000000
--- a/.storybook/stories/useFxTexture.stories.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import { UseFxTexture } from "./UseFxTexture";
-import {
- FxTextureParams,
- FXTEXTURE_PARAMS,
-} from "../../packages/use-shader-fx/src/fxs/utils/useFxTexture";
-
-const meta = {
- title: "utils/useFxTexture",
- component: UseFxTexture,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-export default meta;
-type Story = StoryObj;
-
-export const Default: Story = {
- args: FXTEXTURE_PARAMS,
- argTypes: setArgTypes(FXTEXTURE_PARAMS),
-};
diff --git a/.storybook/stories/useMorphParticles.stories.tsx b/.storybook/stories/useMorphParticles.stories.tsx
deleted file mode 100644
index 3c36df5f..00000000
--- a/.storybook/stories/useMorphParticles.stories.tsx
+++ /dev/null
@@ -1,29 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import {
- MORPHPARTICLES_PARAMS,
- MorphParticlesParams,
-} from "../../packages/use-shader-fx/src/fxs/3D/useMorphParticles";
-import { UseMorphParticles } from "./UseMorphParticles";
-
-const meta = {
- title: "3D/useMorphParticles",
- component: UseMorphParticles,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-
-export default meta;
-type Story = StoryObj;
-
-const storySetting = {
- args: MORPHPARTICLES_PARAMS,
- argTypes: setArgTypes(MORPHPARTICLES_PARAMS),
-};
-export const MorphParticles: Story = {
- render: (args) => ,
- ...storySetting,
-};
diff --git a/.storybook/stories/useMotionBlur.stories.tsx b/.storybook/stories/useMotionBlur.stories.tsx
deleted file mode 100644
index 07acc866..00000000
--- a/.storybook/stories/useMotionBlur.stories.tsx
+++ /dev/null
@@ -1,30 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import {
- MotionBlurParams,
- MOTIONBLUR_PARAMS,
-} from "../../packages/use-shader-fx/src/fxs/effects/useMotionBlur";
-import { UseMotionBlur } from "./UseMotionBlur";
-
-const meta = {
- title: "effects/useMotionBlur",
- component: UseMotionBlur,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-
-export default meta;
-type Story = StoryObj;
-
-const storySetting = {
- args: MOTIONBLUR_PARAMS,
- argTypes: setArgTypes(MOTIONBLUR_PARAMS),
-};
-
-export const Default: Story = {
- render: (args) => ,
- ...storySetting,
-};
diff --git a/.storybook/stories/useNoise.stories.tsx b/.storybook/stories/useNoise.stories.tsx
deleted file mode 100644
index ccd01c2d..00000000
--- a/.storybook/stories/useNoise.stories.tsx
+++ /dev/null
@@ -1,30 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import {
- NOISE_PARAMS,
- NoiseParams,
-} from "../../packages/use-shader-fx/src/fxs/noises/useNoise";
-import { UseNoise } from "./UseNoise";
-
-const meta = {
- title: "noises/useNoise",
- component: UseNoise,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-
-export default meta;
-type Story = StoryObj;
-
-const storySetting = {
- args: NOISE_PARAMS,
- argTypes: setArgTypes(NOISE_PARAMS),
-};
-
-export const Default: Story = {
- render: (args) => ,
- ...storySetting,
-};
diff --git a/.storybook/stories/useRipple.stories.tsx b/.storybook/stories/useRipple.stories.tsx
deleted file mode 100644
index 41b83887..00000000
--- a/.storybook/stories/useRipple.stories.tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import { UseRipple, UseRippleWithTexture } from "./UseRipple";
-import {
- RIPPLE_PARAMS,
- RippleParams,
-} from "../../packages/use-shader-fx/src/fxs/simulations/useRipple";
-
-const meta = {
- title: "simulations/useRipple",
- component: UseRipple,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-export default meta;
-type Story = StoryObj;
-
-const storySetting = {
- args: RIPPLE_PARAMS,
- argTypes: setArgTypes(RIPPLE_PARAMS),
-};
-
-export const Default: Story = {
- render: (args) => ,
- ...storySetting,
-};
-
-export const WithTexture: Story = {
- render: (args) => ,
- ...storySetting,
-};
diff --git a/.storybook/stories/useSimpleBlur.stories.tsx b/.storybook/stories/useSimpleBlur.stories.tsx
deleted file mode 100644
index e4cfdc1e..00000000
--- a/.storybook/stories/useSimpleBlur.stories.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import { UseSimpleBlur } from "./UseSimpleBlur";
-import {
- SIMPLEBLUR_PARAMS,
- SimpleBlurParams,
-} from "../../packages/use-shader-fx/src/fxs/effects/useSimpleBlur";
-
-const meta = {
- title: "effects/useSimpleBlur",
- component: UseSimpleBlur,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-export default meta;
-type Story = StoryObj;
-
-export const Default: Story = {
- args: SIMPLEBLUR_PARAMS,
- argTypes: setArgTypes(SIMPLEBLUR_PARAMS),
-};
diff --git a/.storybook/stories/useWave.stories.tsx b/.storybook/stories/useWave.stories.tsx
deleted file mode 100644
index 70444001..00000000
--- a/.storybook/stories/useWave.stories.tsx
+++ /dev/null
@@ -1,33 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import {
- WAVE_PARAMS,
- WaveParams,
-} from "../../packages/use-shader-fx/src/fxs/effects/useWave";
-import { UseWave, UseWaveWithTexture } from "./UseWave";
-
-const meta = {
- title: "effects/useWave",
- component: UseWave,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-
-export default meta;
-type Story = StoryObj;
-
-const storySetting = {
- args: WAVE_PARAMS,
- argTypes: setArgTypes(WAVE_PARAMS),
-};
-export const Fluid: Story = {
- render: (args) => ,
- ...storySetting,
-};
-export const WithTexture: Story = {
- render: (args) => ,
- ...storySetting,
-};
diff --git a/.storybook/stories/useWobble3D.stories.tsx b/.storybook/stories/useWobble3D.stories.tsx
deleted file mode 100644
index 01c619fe..00000000
--- a/.storybook/stories/useWobble3D.stories.tsx
+++ /dev/null
@@ -1,29 +0,0 @@
-import * as React from "react";
-import type { StoryObj } from "@storybook/react";
-import { setArgTypes } from "../utils/setArgTypes";
-import { Setup } from "../utils/Setup";
-import type { Meta } from "@storybook/react";
-import {
- WOBBLE3D_PARAMS,
- Wobble3DParams,
-} from "../../packages/use-shader-fx/src/fxs/3D/useWobble3D";
-import { UseWobble3D } from "./UseWobble3D";
-
-const meta = {
- title: "3D/useWobble3D",
- component: UseWobble3D,
- tags: ["autodocs"],
- decorators: [(storyFn: any) => {storyFn()} ],
-} satisfies Meta;
-
-export default meta;
-type Story = StoryObj;
-
-const storySetting = {
- args: WOBBLE3D_PARAMS,
- argTypes: setArgTypes(WOBBLE3D_PARAMS),
-};
-export const Wobble3D: Story = {
- render: (args) => ,
- ...storySetting,
-};
diff --git a/.storybook/utils/Setup.tsx b/.storybook/utils/Setup.tsx
deleted file mode 100644
index 5fa185f0..00000000
--- a/.storybook/utils/Setup.tsx
+++ /dev/null
@@ -1,16 +0,0 @@
-"use client";
-import * as React from "react";
-import { useState } from "react";
-import { Canvas } from "@react-three/fiber";
-import { Perf } from "r3f-perf";
-import { PerformanceMonitor } from "@react-three/drei";
-
-export const Setup = ({ children }: { children: React.ReactNode }) => {
- // const [dpr, setDpr] = useState(1.5);s
- return (
-
- {children}
-
-
- );
-};
diff --git a/.storybook/utils/setArgTypes.ts b/.storybook/utils/setArgTypes.ts
deleted file mode 100644
index fd2601a4..00000000
--- a/.storybook/utils/setArgTypes.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * Disables the argType control and sets the Default value. The Default value is set by converting the InitialParams value to a string. For objects, it is a JSON string.
- */
-export const setArgTypes = >(args: T) => {
- return Object.keys(args).reduce<
- Record<
- keyof T,
- {
- control: { type: null };
- table: { defaultValue: { summary: string } };
- }
- >
- >(
- (acc, key) => {
- const value = args[key];
- const summaryValue =
- typeof value === "object" && value !== null
- ? JSON.stringify(value)
- : String(value);
-
- acc[key as keyof T] = {
- control: { type: null },
- table: { defaultValue: { summary: summaryValue } },
- };
- return acc;
- },
- {} as Record<
- keyof T,
- {
- control: { type: null };
- table: { defaultValue: { summary: string } };
- }
- >
- );
-};
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index e02701b7..854139a3 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,22 +1 @@
# Contributing
-
-Thank you for considering contributing even a little to this maniacal and self-satisfied library!😊
-This repository uses Typescript so please continue to do so.
-
-## How to Contribute
-
-1. Fork and clone the repo
-2. Run `yarn install` to install dependencies
-3. Create a branch for your PR with `git switch -c /issue-number-your-branch-name`
-
-Please refer to the `README` for instructions on how to create a custom hook!
-👉 [README](README.md)! 👈
-
-## Storybook
-
-When creating a new FX, you need to add a Storybook Story.
-I am creating a component to make the custom hook's args explicit to storybook.
-(This is not the original usage, so the structure is a bit complicated...😭)
-
-- Each story is stored in .storybook/stories
-- utils contains functions useful for creating stories
diff --git a/README.md b/README.md
index 2ca77a06..8dd24020 100644
--- a/README.md
+++ b/README.md
@@ -1,546 +1,3 @@

-`use-shader-fx` is a library designed to easily implement shader effects such as fluid simulations and noise. It relies on [react-three-fiber](https://github.com/pmndrs/react-three-fiber) and has been designed with performance control in mind, especially when combined with [drei](https://github.com/pmndrs/drei).
-
-For details on each FX, please refer to Storybook
-👉 [Storybook](https://use-shader-fx-stories.vercel.app/) 👈
-
-```bash
-npm install @funtech-inc/use-shader-fx
-```
-
-### Click for the demo! 🤩
-
-
-
-# Hooks Index
-
-### FXs
-
-
-
-effects
-useMotionBlur , useSimpleBlur , useWave
-
-
-
-interactions
-useBrush , useFluid , useRipple
-
-
-
-misc
-useChromaKey , useBlank
-
-
-
-noises
-useColorStrata , useMarble , useNoise
-
-
-
-utils
-useAlphaBlending , useBlending , useBrightnessPicker , useCoverTexture , useDuoTone , useFxBlending , useFxTexture , useHSV
-
-
-
-3D
-useMorphParticles , useWobble3D
-
-
-
-※ The hook with `~~Texutre` calculates the texture resolution and canvas resolution and covers the texture.
-
-### Misc
-
-
-
-# Usage
-
-From each `fxHooks`, you can receive [`updateFx`, `setParams`, `fxObject`] in array format. `HooksProps` are objects that are different for each hook and contain values such as `size`, `dpr` ... etc.
-
-1. `updateFx` - Functions to update parameters and render.
-2. `updateParams` - Function to update parameters only.
-3. `fxObject` - An object that holds various FX components, such as scene, camera, mesh, renderTarget, and `output`(final rendered texture).
-4. `HooksProps` - `size`,`dpr`,`isSizeUpdate`,`onBeforeInit` and `renderTargetOptions` ※ `isSizeUpdate` : Whether to `setSize` the FBO when updating size or dpr(default : `false`).
-
-```js
-const [updateFx, updateParams, fxObject] = useSomeFx(HooksProps);
-```
-
-Call `updateFx` on `useFrame`. The first argument is the RootState of `useFrame` and the second argument is `HookParams`. The third argument can be `CustomParams` customised by the user. Each FX has `HookParams` and each type is exported.
-
-```js
-useFrame((rootState) => {
- const texture = updateFx(rootState, HookParams, CustomParams);
-});
-```
-
-### Starter template with Next.js + TypeScript 🎨
-
-
-
-[blankcanvas](https://github.com/FunTechInc/blankcanvas)
-
-## The simplest example
-
-This is the simplest example!
-
-```tsx
-import * as THREE from "three";
-import { useRef } from "react";
-import { useFrame, useThree } from "@react-three/fiber";
-import { useFluid } from "@funtech-inc/use-shader-fx";
-
-export const Home = () => {
- const { size } = useThree();
- const [updateFluid, , { output }] = useFluid({
- size: {
- width: size.width,
- height: size.height,
- },
- dpr: 1,
- });
- useFrame((rootState) => updateFluid(rootState));
- return (
-
-
-
-
- );
-};
-```
-
-## Integrate with r3f scenes.
-
-You can use `r3f/createPortal` to make some mesh render off-screen. All that remains is to combine the generated textures with FX!
-
-```tsx
-import * as THREE from "three";
-import { useMemo, useRef, useState } from "react";
-import { useFrame, useThree, createPortal } from "@react-three/fiber";
-import { useNoise, useSingleFBO } from "@hmng8/use-shader-fx";
-
-function Box(props: any) {
- // This reference will give us direct access to the mesh
- const meshRef = useRef();
- // Set up state for the hovered and active state
- const [hovered, setHover] = useState(false);
- const [active, setActive] = useState(false);
- // Subscribe this component to the render-loop, rotate the mesh every frame
- useFrame((state, delta) => {
- meshRef.current!.rotation.x += delta;
- meshRef.current!.rotation.y -= delta;
- });
- // Return view, these are regular three.js elements expressed in JSX
- return (
- setActive(!active)}
- onPointerOver={(event) => setHover(true)}
- onPointerOut={(event) => setHover(false)}>
-
-
-
- );
-}
-
-export const Home = () => {
- const ref = useRef(null);
- const { size, viewport, camera } = useThree();
- const [updateNoise, , { output }] = useNoise({
- size,
- dpr: viewport.dpr,
- });
-
- // This scene is rendered offscreen
- const offscreenScene = useMemo(() => new THREE.Scene(), []);
-
- // create FBO for offscreen rendering
- const [boxView, updateRenderTarget] = useSingleFBO({
- scene: offscreenScene,
- camera,
- size,
- dpr: viewport.dpr,
- });
-
- useFrame((rootState) => {
- updateNoise(rootState);
- updateRenderTarget(rootState.gl);
- });
-
- return (
- <>
- {createPortal(
-
-
-
-
-
-
- ,
- offscreenScene
- )}
-
-
-
-
- >
- );
-};
-```
-
-# Performance
-
-You can control the `dpr` using the `PerformanceMonitor` from [drei](https://github.com/pmndrs/drei). For more details, please refer to the [scaling-performance](https://docs.pmnd.rs/react-three-fiber/advanced/scaling-performance) of r3f.
-
-```js
-export const Fx = () => {
- const [dpr, setDpr] = useState(1.5);
- return (
-
- {
- console.log(`dpr:${dpr}`);
- setDpr(Math.round((0.5 + 1.5 * factor) * 10) / 10);
- }}>
-
-
-
-
-
-
- );
-};
-```
-
-By using the `PerformanceMonitor`, you can subscribe to performance changes with `usePerformanceMonitor`. For more details, refer to [drei](https://github.com/pmndrs/drei#performancemonitor).
-
-With `setParams` received from `fxHooks`, it's possible to independently control high-load items such as iteration counts.
-
-```js
-usePerformanceMonitor({
- onChange({ factor }) {
- setParams({
- pressure_iterations: Math.round(20 * factor),
- });
- },
-});
-```
-
-When using some expensive FX (such as `useFluid`), lowering the `dpr` of the FBO of that FX can improve performance.
-
-```js
-const [updateFx, setParams, fxObject] = useSomeFx({ size, dpr: 0.01 });
-```
-
-Also, you can make more detailed adjustments by passing an object to `dpr` instead of `number`.
-
-```ts
-type Dpr =
- | number
- | {
- /** you can set whether `dpr` affects `shader`. default : `false` */
- shader?: false | number;
- /** you can set whether `dpr` affects `fbo`. default : `false` */
- fbo?: false | number;
- };
-```
-
-# Misc
-
-## useDomSyncer
-
-The second argument contains the dependency array that updates the DOM. For example, you can pass a `pathname` when navigating pages.
-
-```tsx
-const [updateDomSyncer, setDomSyncer, domSyncerObj] = useDomSyncer(
- { size, dpr },
- [state]
-);
-
-useLayoutEffect(() => {
- if (state === 0) {
- domArr.current = [...document.querySelectorAll(".item")!];
- } else {
- domArr.current = [...document.querySelectorAll(".item2")!];
- }
- setDomSyncer({
- // Because DOM rendering and React updates occur asynchronously, there may be a lag between updating dependent arrays and setting DOM arrays. That's what the Key is for. If the dependent array is updated but the Key is not, the loop will skip and return an empty texture. By updating the timing key when DOM acquisition is complete, you can perfectly synchronize DOM and Mesh updates.updateKey must be a unique value for each update, for example `performance.now()
- updateKey: performance.now(),
- dom: domArr.current,
- boderRadius: [...Array(domArr.current.length)].map((_, i) => i * 50.0),
- onIntersect: [...Array(domArr.current.length)].map((_, i) => (entry) => {
- if (entry.isIntersecting && !domSyncerObj.isIntersecting(i, true)) {
- // some callback
- }
- }),
- });
-}, [state]);
-
-const [, copyTexture] = useCopyTexture(
- { scene: fxTextureObj.scene, camera: fxTextureObj.camera, size, dpr },
- domArr.current.length
-);
-
-useFrame((rootState) => {
- const syncedTexture = updateDomSyncer(rootState, {
- texture: [...Array(domArr.current.length)].map((_, i) => {
- if (domSyncerObj.isIntersecting(i, false)) {
- textureRef.current = updateFxTexture(rootState, {
- map: someFx,
- texture0: someTexture,
- });
- return copyTexture(rootState.gl, i);
- }
- }),
- });
-});
-```
-
-`domSyncerObj` contains an isIntersecting function that returns the DOM intersection test
-The boolean will be updated after executing the `onIntersect` function.
-
-```tsx
-type DomSyncerObject = {
- scene: THREE.Scene;
- camera: THREE.Camera;
- renderTarget: THREE.WebGLRenderTarget;
- output: THREE.Texture;
- /**
- * A function that returns a determination whether the DOM intersects or not.
- * The boolean will be updated after executing the onIntersect function.
- * @param index - Index of the dom for which you want to return an intersection decision. -1 will return the entire array.
- * @param once - If set to true, it will continue to return true once crossed.
- */
- isIntersecting: IsIntersecting;
- /** target's DOMRect[] */
- DOMRects: DOMRect[];
- /** target's intersetions boolean[] */
- intersections: boolean[];
- /** You can set callbacks for when at least one DOM is visible and when it is completely hidden. */
- useDomView: UseDomView;
-};
-```
-
-`DomSyncerParams` can be passed the `onIntersect` function.
-
-```tsx
-type DomSyncerParams = {
- /** DOM array you want to synchronize */
- dom?: (HTMLElement | Element | null)[];
- /** Texture array that you want to synchronize with the DOM rectangle */
- texture?: THREE.Texture[];
- /** default:0.0[] */
- boderRadius?: number[];
- /** the angle you want to rotate */
- rotation?: THREE.Euler[];
- /** Array of callback functions when crossed */
- onIntersect?: ((entry: IntersectionObserverEntry) => void)[];
- /** Because DOM rendering and React updates occur asynchronously, there may be a lag between updating dependent arrays and setting DOM arrays. That's what the Key is for. If the dependent array is updated but the Key is not, the loop will skip and return an empty texture. By updating the timing key when DOM acquisition is complete, you can perfectly synchronize DOM and Mesh updates. */
- updateKey?: Key;
-};
-```
-
-`updateKey` : Because DOM rendering and React updates occur asynchronously, there may be a lag between updating dependent arrays and setting DOM arrays. That's what the Key is for. If the dependent array is updated but the Key is not, the loop will skip and return an empty texture. By updating the timing key when DOM acquisition is complete, you can perfectly synchronize DOM and Mesh updates.
-
-## usePointer
-
-When given the `pointer` vector2 from r3f's `RootState`, it generates an update function that returns {currentPointer, prevPointer, diffPointer, isVelocityUpdate, velocity}.
-You can also add `lerp` (0~1, lerp intensity (0 to less than 1) , default: 0)
-
-```js
-const updatePointer = usePointer(lerp);
-
-const { currentPointer, prevPointer, diffPointer, isVelocityUpdate, velocity } =
- updatePointer(pointer);
-```
-
-You can override the pointer process by passing `pointerValues` to `updateFx` in the `useFrame`.
-
-```ts
-useFrame((rootState) => {
- const pointerValues = updatePointer(rootState.pointer);
- updateBrush(rootState, {
- pointerValues: pointerValues,
- });
-});
-```
-
-## useBeat
-
-Time-sensitive hooks such as `useNoise` and `useMarble` accept `beat`.
-The second argument can be `easing`.
-easing functions are referenced from https://github.com/ai/easings.net , default : "easeOutQuart"
-
-```ts
-const beting = useBeat(bpm, "easeOutQuad");
-useFrame((rootState) => {
- const { beat, hash } = beting(rootState.clock);
- updateMarble(rootState, {
- beat: beat,
- });
-});
-```
-
-```ts
-type BeatValues = {
- beat: number;
- floor: number;
- fract: number;
- /** unique hash specific to the beat */
- hash: number;
-};
-```
-
-## useFPSLimiter
-
-Allows you to skip FX that do not need to be processed at 60 FPS.
-
-```ts
-const limiter = useFPSLimiter(30);
-useFrame((rootState) => {
- if (!limiter(rootState.clock)) {
- return;
- }
-});
-```
-
-## useCopyTexture
-
-Generate an FBO array to copy the texture.
-
-```tsx
-const [renderTargets, copyTexture] = useCopyTexture(UseFboProps, length);
-copyTexture(gl, index); // return texture
-```
-
-# 3D
-
-The `3D` series has a set of exported hooks, each with `Create`, like `useCreateWobble3D`, which can be used as a texture, but also to add `object3D` as a `primitive` to an r3f scene. It is also possible to add `object3D` as a `primitive` to an r3f scene.
-
-```tsx
-const [updateWobble, wobble] = useCreateWobble3D({
- baseMaterial: THREE.MeshPhysicalMaterial,
- materialParameters: {
- roughness: 0.0,
- transmission: 1,
- thickness: 1,
- },
-});
-useFrame((rootState) => updateWobble(rootState));
-return (
-
-
-
-
-);
-```
-
-👉 [wobble3D demo](https://use-shader-fx.vercel.app/useWobble3D) 👈
-
-👉 [morphParticles demo](https://use-shader-fx.vercel.app/useMorphParticles) 👈
-
-# useBlank / useRawBlank
-
-By default, it is a blank canvas with nothing drawn on it. You can customise the shaders using `onBeforeInit`.
-
-Fragment shaders have `uTexture`,`uBackbuffer`,`uTime`,`uPointer` and `uResolution` as default uniforms.
-`useRawBlank` is more raw, default uniforms is only `uResolution`.
-
-```tsx
-const [updateBlank, _, { output: blank, material }] = useBlank({
- size,
- dpr: viewport.dpr,
- onBeforeInit: useCallback((shader: OnBeforeInitParameters) => {
- Object.assign(shader.uniforms, {
- hoge: { value: 0 },
- });
- shader.fragmentShader = shader.fragmentShader.replace(
- "#usf ",
- "uniform float hoge;"
- );
- shader.fragmentShader = shader.fragmentShader.replace(
- "#usf ",
- `usf_FragColor=vec4(vec3(1.,hoge,1.),1.);`
- );
- }, []),
-});
-useFrame((rootState) => {
- updateBlank(
- rootState,
- {},
- {
- hoge: Math.sin(rootState.clock.getElapsedTime()),
- }
- );
-});
-```
-
-※ `usf_FragColor` overrides `gl_FragColor`
-※ `usf_Position` overrides `gl_Position`
+TODO \* write docs
diff --git a/app/_ui/index.module.scss b/app/_components/UI/index.module.scss
similarity index 100%
rename from app/_ui/index.module.scss
rename to app/_components/UI/index.module.scss
diff --git a/app/_ui/index.tsx b/app/_components/UI/index.tsx
similarity index 84%
rename from app/_ui/index.tsx
rename to app/_components/UI/index.tsx
index 551f42c7..cd8a8e05 100644
--- a/app/_ui/index.tsx
+++ b/app/_components/UI/index.tsx
@@ -44,7 +44,7 @@ export const UI = () => {
href="/FunTechInc/use-shader-fx"
target={"_blank"}>
{
-
+
diff --git a/app/_components/WebGL/TextureRenderer.tsx b/app/_components/WebGL/TextureRenderer.tsx
new file mode 100644
index 00000000..147bf114
--- /dev/null
+++ b/app/_components/WebGL/TextureRenderer.tsx
@@ -0,0 +1,28 @@
+import * as THREE from "three";
+
+export const TextureRenderer = ({ src }: { src: THREE.Texture }) => {
+ return (
+
+
+
+
+ );
+};
diff --git a/app/ShaderFx.tsx b/app/_components/WebGL/WebGLCanvas.tsx
similarity index 89%
rename from app/ShaderFx.tsx
rename to app/_components/WebGL/WebGLCanvas.tsx
index 5b8fe13a..0a25f66a 100644
--- a/app/ShaderFx.tsx
+++ b/app/_components/WebGL/WebGLCanvas.tsx
@@ -20,28 +20,31 @@ const Loading = () => {
);
};
-export const ShaderFx = ({
+export const WebGLCanvas = ({
children,
preserveDrawingBuffer = false,
shadows = false,
isDprUpdate = true,
eventSource,
+ dpr,
}: {
children: React.ReactNode;
preserveDrawingBuffer?: boolean;
shadows?: boolean;
isDprUpdate?: boolean;
eventSource?: HTMLElement | React.MutableRefObject | undefined;
+ dpr?: number;
}) => {
- const [dpr, setDpr] = useState(1.5);
+ const [_dpr, setDpr] = useState(dpr || 1.5);
return (
}>
+ shadows={shadows}
+ linear>
{
if (preserveDrawingBuffer) {
diff --git a/app/_components/WebGL/WebGLContainer.tsx b/app/_components/WebGL/WebGLContainer.tsx
new file mode 100644
index 00000000..c5207931
--- /dev/null
+++ b/app/_components/WebGL/WebGLContainer.tsx
@@ -0,0 +1,19 @@
+export const WebGLContainer = ({
+ style,
+ ...props
+}: React.HTMLAttributes) => {
+ return (
+
+ );
+};
diff --git a/app/_components/WebGL/WebGLTestingContainer.tsx b/app/_components/WebGL/WebGLTestingContainer.tsx
new file mode 100644
index 00000000..dc446385
--- /dev/null
+++ b/app/_components/WebGL/WebGLTestingContainer.tsx
@@ -0,0 +1,23 @@
+import { WebGLContainer } from "./WebGLContainer";
+
+export const WebGLTestingContainer = ({
+ style,
+ children,
+ ...props
+}: React.HTMLAttributes) => {
+ return (
+
+ {children}
+
+ );
+};
diff --git a/app/_home/Playground.tsx b/app/_home/Playground.tsx
index b9e883fd..befee727 100644
--- a/app/_home/Playground.tsx
+++ b/app/_home/Playground.tsx
@@ -12,10 +12,10 @@ import {
HSVParams,
MarbleParams,
useBlank,
-} from "@/packages/use-shader-fx/src";
+} from "@/packages/use-shader-fx/legacy";
import { Environment, OrbitControls } from "@react-three/drei";
-import { OnBeforeInitParameters } from "@/packages/use-shader-fx/src/fxs/types";
+// import { OnBeforeInitParameters } from "@/packages/use-shader-fx/src/fxs/types";
export const CONFIG = {
marble: {
@@ -102,7 +102,7 @@ export const Playground = ({
height: size.height,
},
dpr: viewport.dpr,
- onBeforeInit: useCallback((params: OnBeforeInitParameters) => {
+ onBeforeInit: useCallback((params: any) => {
Object.assign(params.uniforms, {
u_noise: {
value: marble,
diff --git a/app/_home/index.tsx b/app/_home/index.tsx
index 6d992328..29b9e07f 100644
--- a/app/_home/index.tsx
+++ b/app/_home/index.tsx
@@ -1,109 +1,113 @@
-"use client";
+// "use client";
-import { ShaderFx } from "../ShaderFx";
-import { Playground } from "./Playground";
-import { useRef, useState } from "react";
-import { EasingTypes } from "@/packages/use-shader-fx/src";
-import Image from "next/image";
-import s from "./index.module.scss";
+// import { ShaderFx } from "../ShaderFx";
+// import { Playground } from "./Playground";
+// import { useRef, useState } from "react";
+// import { EasingTypes } from "@/packages/use-shader-fx/src";
+// import Image from "next/image";
+// import s from "./index.module.scss";
-const Install = () => {
- const [copied, setIsCopied] = useState(false);
- return (
- {
- const target = e.target as HTMLButtonElement;
- navigator?.clipboard?.writeText(target.innerText).then(() => {
- setIsCopied(true);
- });
- }}
- className={`${s.install} ${copied ? s.copied : ""}`}>
- npm install @funtech-inc/use-shader-fx
-
-
- );
-};
+// const Install = () => {
+// const [copied, setIsCopied] = useState(false);
+// return (
+// {
+// const target = e.target as HTMLButtonElement;
+// navigator?.clipboard?.writeText(target.innerText).then(() => {
+// setIsCopied(true);
+// });
+// }}
+// className={`${s.install} ${copied ? s.copied : ""}`}>
+// npm install @funtech-inc/use-shader-fx
+//
+//
+// );
+// };
-export default function Page() {
- const wrapper = useRef(
- null
- ) as React.MutableRefObject;
- const [bpm, setBpm] = useState(120);
- const [easing, setEasing] = useState("easeInOutBack");
+// export default function Page() {
+// const wrapper = useRef(
+// null
+// ) as React.MutableRefObject;
+// const [bpm, setBpm] = useState(120);
+// const [easing, setEasing] = useState("easeInOutBack");
+
+// const easingTypes: EasingTypes[] = [
+// "easeInSine",
+// "easeOutSine",
+// "easeInOutSine",
+// "easeInQuad",
+// "easeOutQuad",
+// "easeInOutQuad",
+// "easeInCubic",
+// "easeOutCubic",
+// "easeInOutCubic",
+// "easeInQuart",
+// "easeOutQuart",
+// "easeInOutQuart",
+// "easeInQuint",
+// "easeOutQuint",
+// "easeInOutQuint",
+// "easeInExpo",
+// "easeOutExpo",
+// "easeInOutExpo",
+// "easeInCirc",
+// "easeOutCirc",
+// "easeInOutCirc",
+// "easeInBack",
+// "easeOutBack",
+// "easeInOutBack",
+// "easeInElastic",
+// "easeOutElastic",
+// "easeInOutElastic",
+// "easeInBounce",
+// "easeOutBounce",
+// "easeInOutBounce",
+// ];
- const easingTypes: EasingTypes[] = [
- "easeInSine",
- "easeOutSine",
- "easeInOutSine",
- "easeInQuad",
- "easeOutQuad",
- "easeInOutQuad",
- "easeInCubic",
- "easeOutCubic",
- "easeInOutCubic",
- "easeInQuart",
- "easeOutQuart",
- "easeInOutQuart",
- "easeInQuint",
- "easeOutQuint",
- "easeInOutQuint",
- "easeInExpo",
- "easeOutExpo",
- "easeInOutExpo",
- "easeInCirc",
- "easeOutCirc",
- "easeInOutCirc",
- "easeInBack",
- "easeOutBack",
- "easeInOutBack",
- "easeInElastic",
- "easeOutElastic",
- "easeInOutElastic",
- "easeInBounce",
- "easeOutBounce",
- "easeInOutBounce",
- ];
+// return (
+// <>
+//
+//
+//
+//
⚡️ More FXs, Less GLSL
+//
+//
+//
BPM:
+//
{
+// setBpm(+e.target.value);
+// }}
+// />
+//
+//
+//
Easing:
+//
{
+// setEasing(e.target.value as EasingTypes);
+// }}>
+// {easingTypes.map((type) => (
+//
+// {type}
+//
+// ))}
+//
+//
+//
+//
+// >
+// );
+// }
- return (
- <>
-
-
-
-
⚡️ More FXs, Less GLSL
-
-
-
BPM:
-
{
- setBpm(+e.target.value);
- }}
- />
-
-
-
Easing:
-
{
- setEasing(e.target.value as EasingTypes);
- }}>
- {easingTypes.map((type) => (
-
- {type}
-
- ))}
-
-
-
-
- >
- );
+export default function Page() {
+ return null;
}
diff --git a/app/cream/FxMaterial.tsx b/app/cream/FxMaterial.tsx
deleted file mode 100644
index 8f28d08b..00000000
--- a/app/cream/FxMaterial.tsx
+++ /dev/null
@@ -1,41 +0,0 @@
-import * as THREE from "three";
-import { shaderMaterial } from "@react-three/drei";
-
-declare global {
- namespace JSX {
- interface IntrinsicElements {
- fxMaterial: any;
- }
- }
-}
-
-export type FxMaterialProps = {
- u_fx: THREE.Texture;
-};
-
-export const FxMaterial = shaderMaterial(
- {
- u_fx: new THREE.Texture(),
- },
-
- `
- varying vec2 vUv;
- void main() {
- vUv = uv;
- gl_Position = vec4(position, 1.0);
- }
- `,
- `
- precision highp float;
- varying vec2 vUv;
- uniform sampler2D u_fx;
-
- void main() {
- vec2 uv = vUv;
- vec4 color = texture2D(u_fx, uv);
- gl_FragColor = color;
- // gl_FragColor.rgb = color.rgb;
- // gl_FragColor.a = color.r + color.g + color.b;
- }
- `
-);
diff --git a/app/cream/Playground.tsx b/app/cream/Playground.tsx
deleted file mode 100644
index cc5c4aab..00000000
--- a/app/cream/Playground.tsx
+++ /dev/null
@@ -1,40 +0,0 @@
-"use client";
-
-import * as THREE from "three";
-import { useEffect, useMemo, useRef, useState } from "react";
-import { useFrame, useThree, extend, useLoader } from "@react-three/fiber";
-import { useFluid } from "@/packages/use-shader-fx/src";
-import { FxMaterial } from "./FxMaterial";
-
-extend({ FxMaterial });
-
-export const Playground = () => {
- const { size } = useThree();
- const [updateFluid, setFluid, { output: fluid }] = useFluid({
- size,
- dpr: {
- shader: 0.2,
- fbo: 0.8,
- },
- });
-
- setFluid({
- densityDissipation: 0.99,
- velocityDissipation: 0.99,
- splatRadius: 0.001,
- pressureIterations: 1,
- });
-
- useFrame((state) => {
- updateFluid(state);
- });
-
- return (
- <>
-
-
-
-
- >
- );
-};
diff --git a/app/cream/page.tsx b/app/cream/page.tsx
deleted file mode 100644
index 4afc0060..00000000
--- a/app/cream/page.tsx
+++ /dev/null
@@ -1,18 +0,0 @@
-import { ShaderFx } from "../ShaderFx";
-import { Playground } from "./Playground";
-
-export default function Page() {
- return (
-
- );
-}
diff --git a/app/domSyncer/DomSyncer.tsx b/app/domSyncer/DomSyncer.tsx
deleted file mode 100644
index 23516103..00000000
--- a/app/domSyncer/DomSyncer.tsx
+++ /dev/null
@@ -1,166 +0,0 @@
-import * as THREE from "three";
-import { useEffect, useLayoutEffect, useRef } from "react";
-import { useFrame, extend, useThree, useLoader } from "@react-three/fiber";
-import { FxMaterial, FxMaterialProps } from "@/utils/fxMaterial";
-import {
- useDomSyncer,
- useWave,
- useFxTexture,
- useCopyTexture,
-} from "@/packages/use-shader-fx/src";
-import { WaveParams } from "@/packages/use-shader-fx/src/fxs/effects/useWave";
-import gsap from "gsap";
-
-extend({ FxMaterial });
-
-const CONFIG: {
- textureResolution: THREE.Vector2;
- waveArr: WaveParams[];
- waveConfig: WaveParams;
-} = {
- textureResolution: new THREE.Vector2(1440, 1029),
- waveArr: [],
- waveConfig: {
- epicenter: new THREE.Vector2(0.0, 0.0),
- progress: 0.0,
- strength: 0.2,
- },
-};
-
-export const DomSyncer = ({ state }: { state: number }) => {
- useEffect(() => {
- document.documentElement.style.overflow = "auto";
- });
-
- const mainShaderRef = useRef();
- const textureRef = useRef(new THREE.Texture());
-
- const [momo] = useLoader(THREE.TextureLoader, ["momo.jpg"]);
-
- const { size, dpr } = useThree((state) => {
- return { size: state.size, dpr: state.viewport.dpr };
- });
-
- const [updateFxTexture, , fxTextureObj] = useFxTexture({ size, dpr });
- const [updateWave] = useWave({ size, dpr });
-
- const [updateDomSyncer, setDomSyncer, domSyncerObj] = useDomSyncer(
- { size, dpr },
- [state]
- );
-
- const { setFrameloop } = useThree();
- domSyncerObj.useDomView({
- onView: () => {
- console.log("play");
- setFrameloop("always");
- },
- onHidden: () => {
- console.log("stop");
- setFrameloop("never");
- },
- });
-
- const domArr = useRef<(HTMLElement | Element)[]>([]);
- const contentArr = useRef([]);
-
- useLayoutEffect(() => {
- CONFIG.waveArr = [];
-
- if (state === 0) {
- domArr.current = [...document.querySelectorAll(".item")!];
- contentArr.current = Array.from(
- document.querySelectorAll(".content")
- );
- } else {
- domArr.current = [...document.querySelectorAll(".item2")!];
- contentArr.current = Array.from(
- document.querySelectorAll(".content2")
- );
- }
- CONFIG.waveArr = [...Array(domArr.current.length)].map(() => ({
- ...CONFIG.waveConfig,
- }));
-
- setDomSyncer({
- dom: domArr.current,
- updateKey: performance.now(),
- boderRadius: [...Array(domArr.current.length)].map((_, i) => i * 50.0),
- rotation: [...Array(domArr.current.length)].map(
- (_, i) => new THREE.Euler(0.0, 0.0, i * 0.1)
- ),
- onIntersect: [...Array(domArr.current.length)].map(
- (_, i) => (entry) => {
- if (
- entry.isIntersecting &&
- !domSyncerObj.isIntersecting(i, false)
- ) {
- gsap.fromTo(
- CONFIG.waveArr[i],
- {
- progress: 0.0,
- },
- {
- progress: 1.0,
- duration: 10.0,
- }
- );
- }
- }
- ),
- });
- // eslint-disable-next-line react-hooks/exhaustive-deps
- }, [state]);
-
- const [, copyTexture] = useCopyTexture(
- { scene: fxTextureObj.scene, camera: fxTextureObj.camera, size, dpr },
- domArr.current.length
- );
-
- useFrame((state) => {
- const syncedTexture = updateDomSyncer(state, {
- texture: [...Array(domArr.current.length)].map((_, i) => {
- if (domSyncerObj.isIntersecting(i, false)) {
- updateFxTexture(state, {
- padding: 0.0,
- map: updateWave(state, {
- epicenter: CONFIG.waveArr[i].epicenter,
- progress: CONFIG.waveArr[i].progress,
- strength: CONFIG.waveArr[i].strength,
- }),
- mapIntensity: 0.4,
- edgeIntensity: 0.0,
- texture0: momo,
- });
-
- return copyTexture(state.gl, i);
- }
- return textureRef.current;
- }),
- });
-
- contentArr.current.forEach((content, i) => {
- if (
- domSyncerObj.DOMRects[i] &&
- domSyncerObj.isIntersecting(i, false)
- ) {
- content.style.opacity = "1.0";
- content.style.top = `${domSyncerObj.DOMRects[i].top}px`;
- content.style.left = `${domSyncerObj.DOMRects[i].left}px`;
- }
- });
-
- const main = mainShaderRef.current;
- if (main) {
- main.u_fx = syncedTexture;
- main.u_alpha = 0.0;
- }
- });
-
- return (
-
-
-
-
- );
-};
diff --git a/app/domSyncer/page.tsx b/app/domSyncer/page.tsx
deleted file mode 100644
index 53e48e79..00000000
--- a/app/domSyncer/page.tsx
+++ /dev/null
@@ -1,103 +0,0 @@
-"use client";
-
-import { useState } from "react";
-import { ShaderFx } from "../ShaderFx";
-import { DomSyncer } from "./DomSyncer";
-
-export default function Page() {
- const [domSwitch, setDomSwitch] = useState(0);
- return (
- <>
-
-
-
-
-
- {
- setDomSwitch((prev) => (prev === 0 ? 1 : 0));
- }}
- style={{
- width: "200px",
- height: "200px",
- backgroundColor: "red",
- position: "fixed",
- bottom: 0,
- right: 0,
- zIndex: 1000,
- cursor: "pointer",
- }}>
- stateの切り替え
-
-
- {domSwitch === 0 ? (
- <>
- {[...Array(4)].map((_, i) => (
-
- ))}
- >
- ) : (
- <>
- {[...Array(2)].map((_, i) => (
-
- ))}
- >
- )}
-
-
- >
- );
-}
diff --git a/app/examples/useFluid/Playground.tsx b/app/examples/useFluid/Playground.tsx
new file mode 100644
index 00000000..a229d5b0
--- /dev/null
+++ b/app/examples/useFluid/Playground.tsx
@@ -0,0 +1,84 @@
+"use client";
+
+import * as THREE from "three";
+import { useFrame, useThree } from "@react-three/fiber";
+import {
+ useBuffer,
+ useFluid,
+ useGrid,
+ useWindowPointer,
+} from "@/packages/use-shader-fx/src";
+import { TextureRenderer } from "../../_components/WebGL/TextureRenderer";
+import { useTexture } from "@react-three/drei";
+
+export const Playground = () => {
+ const { size } = useThree();
+
+ const [sprite] = useTexture(["/sprite.png"]);
+
+ const fluid = useFluid({
+ size,
+ dpr: 0.2,
+ radius: new THREE.Vector2(50, 50),
+ });
+
+ const grid = useGrid({
+ size,
+ dpr: 1.5,
+ count: new THREE.Vector2(70, 70),
+ texture: {
+ src: fluid.texture,
+ },
+ sprite: {
+ src: sprite,
+ length: 10,
+ shuffleSpeed: 0.2,
+ },
+ });
+
+ const buffer = useBuffer({
+ size,
+ dpr: 1.5,
+ texture: {
+ src: grid.texture,
+ },
+ mixSrc: {
+ src: fluid.texture,
+ uv: {
+ factor: 0.01,
+ mixMap: {
+ src: fluid.texture,
+ },
+ },
+ },
+ colorBalance: true,
+ hsv: true,
+ posterize: false,
+ });
+
+ const windowPointer = useWindowPointer(size);
+
+ useFrame((state) => {
+ const loop = Math.sin(state.clock.getElapsedTime()) * 0.5 + 0.5;
+ grid.render(state);
+ fluid.render({
+ ...state,
+ pointer: windowPointer,
+ });
+ buffer.render(state, {
+ hsv: {
+ hueShift: loop,
+ saturation: 1 + loop * 4,
+ brightness: 1 + loop,
+ },
+ colorBalance: {
+ factor: (val) => val.set(1 + loop, loop, 1 - loop),
+ },
+ posterize: {
+ levels: (val) => val.set(3 + loop, 2 + loop, 1 + loop, 10 * loop),
+ },
+ });
+ });
+
+ return ;
+};
diff --git a/app/examples/useFluid/page.tsx b/app/examples/useFluid/page.tsx
new file mode 100644
index 00000000..5ba79e95
--- /dev/null
+++ b/app/examples/useFluid/page.tsx
@@ -0,0 +1,22 @@
+import { WebGLCanvas } from "../../_components/WebGL/WebGLCanvas";
+import { Playground } from "./Playground";
+import { WebGLContainer } from "@/app/_components/WebGL/WebGLContainer";
+
+export default function Page() {
+ return (
+
+
+ smooth touch interaction on mobile
+
+
+
+
+
+
+
+ );
+}
diff --git a/app/expo2025/FxMaterial.tsx b/app/expo2025/FxMaterial.tsx
deleted file mode 100644
index d1a9c743..00000000
--- a/app/expo2025/FxMaterial.tsx
+++ /dev/null
@@ -1,38 +0,0 @@
-import * as THREE from "three";
-import { shaderMaterial } from "@react-three/drei";
-
-declare global {
- namespace JSX {
- interface IntrinsicElements {
- fxMaterial: any;
- }
- }
-}
-
-export type FxMaterialProps = {
- u_fx: THREE.Texture;
-};
-
-export const FxMaterial = shaderMaterial(
- {
- u_fx: new THREE.Texture(),
- },
-
- `
- varying vec2 vUv;
- void main() {
- vUv = uv;
- gl_Position = vec4(position, 1.0);
- }
- `,
- `
- precision highp float;
- varying vec2 vUv;
- uniform sampler2D u_fx;
-
- void main() {
- gl_FragColor = texture2D(u_fx,vUv);
- // gl_FragColor = vec4(1.,1.,0.,1.);
- }
- `
-);
diff --git a/app/expo2025/Playground.tsx b/app/expo2025/Playground.tsx
deleted file mode 100644
index b035a57b..00000000
--- a/app/expo2025/Playground.tsx
+++ /dev/null
@@ -1,179 +0,0 @@
-"use client";
-
-import * as THREE from "three";
-import { useMemo, useRef } from "react";
-import { useFrame, useThree, extend, MeshProps } from "@react-three/fiber";
-import {
- useCreateWobble3D,
- Wobble3DParams,
- WOBBLE3D_PARAMS,
-} from "@/packages/use-shader-fx/src";
-import { FxMaterial } from "./FxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "@/utils/useGUI";
-import { Environment, Lightformer } from "@react-three/drei";
-
-extend({ FxMaterial });
-
-const CONFIG: Wobble3DParams = {
- ...structuredClone(WOBBLE3D_PARAMS),
- wobbleStrength: 0.16,
- wobbleTimeFrequency: 0.2,
- warpStrength: 0.0,
- colorMix: 0,
-};
-
-const setGUI = (gui: GUI) => {
- gui.addColor(CONFIG, "color0");
- gui.addColor(CONFIG, "color1");
- gui.addColor(CONFIG, "color2");
- gui.addColor(CONFIG, "color3");
- gui.add(CONFIG, "wobbleStrength", 0, 2, 0.01);
- gui.add(CONFIG, "colorMix", 0, 1, 0.01);
- return gui;
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as Wobble3DParams;
-};
-
-const MyakuMyaku = (props: MeshProps) => {
- const [updateWobble, wobble] = useCreateWobble3D({
- baseMaterial: THREE.MeshStandardMaterial,
- materialParameters: useMemo(
- () => ({
- color: new THREE.Color(0xd53220),
- metalness: 0.16,
- roughness: 0.16,
- }),
- []
- ),
- onBeforeInit: (params) => {
- Object.assign(params.uniforms, {
- uEyeColor: { value: new THREE.Color(0x2469b3) },
- uEyeMoving: { value: new THREE.Vector2(0, 0) },
- });
- params.fragmentShader = params.fragmentShader.replace(
- "uniform float uRefractionSamples;",
- `
- uniform float uRefractionSamples;
- uniform vec2 uEyeMoving;
- uniform vec3 uEyeColor;
- `
- );
- params.fragmentShader = params.fragmentShader.replace(
- "#include ",
- `
- float whiteDist = distance(uEyeMoving * 0.4,vPosition);
- float blackDist = distance(uEyeMoving * 0.8,vPosition);
- if (whiteDist < .8) {
- diffuseColor = vec4(vec3(1.), 1.0);
- }
- if (blackDist < .34) {
- diffuseColor = vec4(uEyeColor, 1.0);
- }
- #include
- `
- );
- },
- });
- const pointerVector = useRef(new THREE.Vector2(0, 0));
- const randomness = useMemo(() => Math.random() + 1, []);
- useFrame((rootState) => {
- updateWobble(
- rootState,
- {
- ...setConfig(),
- wobbleStrength: CONFIG.wobbleStrength! * randomness,
- wobbleTimeFrequency: CONFIG.wobbleTimeFrequency! * randomness,
- },
- {
- uEyeMoving: pointerVector.current.lerp(rootState.pointer, 0.24),
- }
- );
- });
- return (
-
-
-
- );
-};
-
-export const Playground = () => {
- const updateGUI = useGUI(setGUI);
-
- const { camera } = useThree();
-
- const cameraVec = useRef(new THREE.Vector3(0, 0, 0));
- useFrame((props) => {
- camera.position.lerp(
- cameraVec.current.set(props.pointer.y * 3, props.pointer.x * 3, 12),
- 0.1
- );
- camera.lookAt(0, 0, 0);
-
- updateGUI();
- });
-
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- );
-};
diff --git a/app/expo2025/page.tsx b/app/expo2025/page.tsx
deleted file mode 100644
index a84dd222..00000000
--- a/app/expo2025/page.tsx
+++ /dev/null
@@ -1,18 +0,0 @@
-import { ShaderFx } from "../ShaderFx";
-import { Playground } from "./Playground";
-
-export default function Page() {
- return (
-
- );
-}
diff --git a/app/gradation/FxMaterial.tsx b/app/gradation/FxMaterial.tsx
deleted file mode 100644
index 98a03717..00000000
--- a/app/gradation/FxMaterial.tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-import * as THREE from "three";
-import { shaderMaterial } from "@react-three/drei";
-import fragment from "./main.frag";
-
-declare global {
- namespace JSX {
- interface IntrinsicElements {
- fxMaterial: any;
- }
- }
-}
-
-export type FxMaterialProps = {
- u_noise: THREE.Texture;
- u_colorStrata: THREE.Texture;
- u_noiseIntensity: number;
-};
-
-export const FxMaterial = shaderMaterial(
- {
- u_noise: new THREE.Texture(),
- u_colorStrata: new THREE.Texture(),
- u_noiseIntensity: 1,
- },
-
- `
- varying vec2 vUv;
- void main() {
- vUv = uv;
- gl_Position = vec4(position, 1.0);
- }
- `,
- fragment
-);
diff --git a/app/gradation/Playground.tsx b/app/gradation/Playground.tsx
deleted file mode 100644
index 35fa8afe..00000000
--- a/app/gradation/Playground.tsx
+++ /dev/null
@@ -1,100 +0,0 @@
-"use client";
-
-import * as THREE from "three";
-import { useMemo, useRef } from "react";
-import { useFrame, useThree, extend } from "@react-three/fiber";
-import {
- useColorStrata,
- useMarble,
- useHSV,
- ColorStrataParams,
- HSVParams,
- MarbleParams,
-} from "@/packages/use-shader-fx/src";
-import { FxMaterial, FxMaterialProps } from "./FxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "@/utils/useGUI";
-import { CONFIG as HomeConfig } from "../_home/Playground";
-import { useDownloadCanvas } from "@/utils/useDownloadCanvas";
-
-extend({ FxMaterial });
-
-const CONFIG = {
- ...HomeConfig,
- save: () => {},
-};
-const setGUI = (gui: GUI) => {
- gui.add(CONFIG, "random").name("Randomize");
- gui.add(CONFIG, "save").name("Save");
-};
-
-const setConfig = (key: "marble" | "colorStrata" | "hsv") => {
- return {
- ...CONFIG[key],
- };
-};
-
-export const Playground = () => {
- const ref = useRef();
-
- const saveImage = useDownloadCanvas();
-
- useMemo(() => {
- CONFIG.save = saveImage;
- CONFIG.random();
- }, [saveImage]);
- useGUI(setGUI);
-
- const { size, viewport } = useThree();
-
- const [updateColorStrata, setColorStrata, { output: colorStrata }] =
- useColorStrata({ size, dpr: viewport.dpr });
- const [updateMarble, setMarble, { output: marble }] = useMarble({
- size,
- dpr: viewport.dpr,
- });
- const [updateHSV, setHSV, { output: hsv }] = useHSV({
- size,
- dpr: viewport.dpr,
- });
-
- setMarble({
- ...setConfig("marble"),
- timeStrength: 0,
- });
-
- setColorStrata({
- ...setConfig("colorStrata"),
- timeStrength: new THREE.Vector2(0, 0),
- });
-
- setHSV({
- ...setConfig("hsv"),
- texture: colorStrata,
- });
-
- useFrame((state) => {
- updateColorStrata(state, {
- ...(setConfig("colorStrata") as ColorStrataParams),
- });
- updateHSV(state, {
- ...(setConfig("hsv") as HSVParams),
- });
- updateMarble(state, {
- ...(setConfig("marble") as MarbleParams),
- });
- ref.current!.u_noiseIntensity = CONFIG.noiseIntensity;
- });
-
- return (
-
-
-
-
- );
-};
diff --git a/app/gradation/main.frag b/app/gradation/main.frag
deleted file mode 100644
index c696b891..00000000
--- a/app/gradation/main.frag
+++ /dev/null
@@ -1,23 +0,0 @@
-precision highp float;
-varying vec2 vUv;
-uniform sampler2D u_noise;
-uniform float u_noiseIntensity;
-uniform sampler2D u_colorStrata;
-
-float rand(vec2 n) {
- return fract(sin(dot(n ,vec2(12.9898,78.233))) * 43758.5453);
-}
-
-void main() {
-
- vec2 uv = vUv;
- float grain = rand(uv) * 0.1;
- vec4 noise = texture2D(u_noise, uv);
-
- uv += grain;
- uv += noise.rg * u_noiseIntensity;
- vec4 colorStrata = texture2D(u_colorStrata,uv);
-
- gl_FragColor = colorStrata;
- gl_FragColor.a = 1.0;
-}
\ No newline at end of file
diff --git a/app/gradation/page.tsx b/app/gradation/page.tsx
deleted file mode 100644
index 0d7658ef..00000000
--- a/app/gradation/page.tsx
+++ /dev/null
@@ -1,18 +0,0 @@
-import { ShaderFx } from "../ShaderFx";
-import { Playground } from "./Playground";
-
-export default function Page() {
- return (
-
- );
-}
diff --git a/app/layout.tsx b/app/layout.tsx
index bbdb96e1..d72de0e0 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -1,8 +1,12 @@
import "the-new-css-reset/css/reset.css";
-import "./main.css";
+import "@/css/reset.css";
+import "@/css/global.scss";
import type { Metadata } from "next";
import { Oswald } from "next/font/google";
-import { UI } from "./_ui";
+import { UI } from "./_components/UI";
+import { userAgent } from "next/server";
+import { headers } from "next/headers";
+import { StableScroller } from "@funtech-inc/spice";
const oswald = Oswald({
subsets: ["latin"],
@@ -14,22 +18,19 @@ const metadata: Metadata = {
description: "⚡️ More FXs, Less GLSL",
};
-export default function RootLayout({
+export default async function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
+ const headersList = await headers();
+ const { device } = userAgent({ headers: headersList });
return (
-
+
- {children}
+
+ {children}
+
diff --git a/app/main.css b/app/main.css
deleted file mode 100644
index 601fcbc7..00000000
--- a/app/main.css
+++ /dev/null
@@ -1,3 +0,0 @@
-.lil-gui {
- right: 0 !important;
-}
diff --git a/app/obscurus/FxMaterial.tsx b/app/obscurus/FxMaterial.tsx
deleted file mode 100644
index d1a9c743..00000000
--- a/app/obscurus/FxMaterial.tsx
+++ /dev/null
@@ -1,38 +0,0 @@
-import * as THREE from "three";
-import { shaderMaterial } from "@react-three/drei";
-
-declare global {
- namespace JSX {
- interface IntrinsicElements {
- fxMaterial: any;
- }
- }
-}
-
-export type FxMaterialProps = {
- u_fx: THREE.Texture;
-};
-
-export const FxMaterial = shaderMaterial(
- {
- u_fx: new THREE.Texture(),
- },
-
- `
- varying vec2 vUv;
- void main() {
- vUv = uv;
- gl_Position = vec4(position, 1.0);
- }
- `,
- `
- precision highp float;
- varying vec2 vUv;
- uniform sampler2D u_fx;
-
- void main() {
- gl_FragColor = texture2D(u_fx,vUv);
- // gl_FragColor = vec4(1.,1.,0.,1.);
- }
- `
-);
diff --git a/app/obscurus/Playground.tsx b/app/obscurus/Playground.tsx
deleted file mode 100644
index ed47aed6..00000000
--- a/app/obscurus/Playground.tsx
+++ /dev/null
@@ -1,210 +0,0 @@
-"use client";
-
-import * as THREE from "three";
-import { useMemo } from "react";
-import { useFrame, useThree, extend, useLoader } from "@react-three/fiber";
-import {
- useCreateWobble3D,
- Wobble3DParams,
- WOBBLE3D_PARAMS,
- useCreateMorphParticles,
- MorphParticlesParams,
- MORPHPARTICLES_PARAMS,
-} from "@/packages/use-shader-fx/src";
-import { FxMaterial } from "./FxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "@/utils/useGUI";
-import { OrbitControls, Environment } from "@react-three/drei";
-
-extend({ FxMaterial });
-
-const WOBBLE_CONFIG: Wobble3DParams = {
- ...structuredClone(WOBBLE3D_PARAMS),
- color0: new THREE.Color(0x000000),
- color1: new THREE.Color(0x000000),
- color2: new THREE.Color(0x000000),
- color3: new THREE.Color(0x000000),
- wobbleStrength: 0.35,
- wobbleTimeFrequency: 0.2,
- warpStrength: 0.2,
- colorMix: 0.3,
- chromaticAberration: 0.05,
- anisotropicBlur: 0.2,
- distortion: 0.3,
- distortionScale: 0.5,
- temporalDistortion: 0.3,
-};
-
-const MATERIAL_CONFIG: THREE.MeshPhysicalMaterialParameters = {
- iridescence: 0.1,
- metalness: 0.0,
- roughness: 0.0,
- transmission: 2,
- thickness: 1.2,
- transparent: true,
-};
-
-const PARTICLE_CONFIG: MorphParticlesParams = {
- ...structuredClone(MORPHPARTICLES_PARAMS),
- blurAlpha: 0.01,
- blurRadius: 0.6,
- pointSize: 0.4,
- sizeRandomIntensity: 1,
- sizeRandomMax: 2.5,
- sizeRandomMin: 0.8,
- sizeRandomTimeFrequency: 1,
- color0: new THREE.Color(0x000000),
- color1: new THREE.Color(0x000000),
- color2: new THREE.Color(0x000000),
- color3: new THREE.Color(0x000000),
- wobbleStrength: 0.6,
- warpStrength: 3,
- wobblePositionFrequency: 0.4,
- wobbleTimeFrequency: 0.4,
- warpTimeFrequency: 0.2,
-};
-
-const setGUI = (gui: GUI) => {
- const wobble = gui.addFolder("Wobble3D");
- wobble.addColor(WOBBLE_CONFIG, "color0");
- wobble.addColor(WOBBLE_CONFIG, "color1");
- wobble.addColor(WOBBLE_CONFIG, "color2");
- wobble.addColor(WOBBLE_CONFIG, "color3");
- wobble.add(WOBBLE_CONFIG, "wobbleStrength", 0, 10, 0.01);
- wobble.add(WOBBLE_CONFIG, "wobblePositionFrequency", 0, 10, 0.01);
- wobble.add(WOBBLE_CONFIG, "wobbleTimeFrequency", 0, 10, 0.01);
- wobble.add(WOBBLE_CONFIG, "warpStrength", 0, 10, 0.01);
- wobble.add(WOBBLE_CONFIG, "warpPositionFrequency", 0, 10, 0.01);
- wobble.add(WOBBLE_CONFIG, "warpTimeFrequency", 0, 10, 0.01);
- // wobble.add(WOBBLE_CONFIG, "wobbleShine", 0, 5, 0.01);
- // wobble.add(WOBBLE_CONFIG, "samples", 0, 10, 1);
- wobble.add(WOBBLE_CONFIG, "colorMix", 0, 1, 0.01);
- wobble.add(WOBBLE_CONFIG, "chromaticAberration", 0, 10, 0.01);
- wobble.add(WOBBLE_CONFIG, "anisotropicBlur", 0, 10, 0.01);
- wobble.add(WOBBLE_CONFIG, "distortion", 0, 10, 0.01);
- wobble.add(WOBBLE_CONFIG, "distortionScale", 0, 10, 0.01);
- wobble.add(WOBBLE_CONFIG, "temporalDistortion", 0, 10, 0.01);
-
- const mpm = gui.addFolder("MeshPhysicalMaterial");
- mpm.add(MATERIAL_CONFIG, "iridescence", 0, 1, 0.01);
- mpm.add(MATERIAL_CONFIG, "metalness", 0, 1, 0.01);
- mpm.add(MATERIAL_CONFIG, "roughness", 0, 1, 0.01);
- mpm.add(MATERIAL_CONFIG, "transmission", 0, 10, 0.01);
- mpm.add(MATERIAL_CONFIG, "thickness", 0, 10, 0.01);
-
- const particle = gui.addFolder("MorphParticles");
- particle.add(PARTICLE_CONFIG, "blurAlpha", 0, 1, 0.01);
- particle.add(PARTICLE_CONFIG, "blurRadius", 0, 2, 0.01);
- particle.add(PARTICLE_CONFIG, "pointSize", 0.01, 2, 0.01);
- particle.addColor(PARTICLE_CONFIG, "color0");
- particle.addColor(PARTICLE_CONFIG, "color1");
- particle.addColor(PARTICLE_CONFIG, "color2");
- particle.addColor(PARTICLE_CONFIG, "color3");
- particle.add(PARTICLE_CONFIG, "wobbleStrength", 0, 10, 0.01);
- particle.add(PARTICLE_CONFIG, "wobblePositionFrequency", 0, 10, 0.01);
- particle.add(PARTICLE_CONFIG, "wobbleTimeFrequency", 0, 10, 0.01);
- particle.add(PARTICLE_CONFIG, "warpStrength", 0, 10, 0.01);
- particle.add(PARTICLE_CONFIG, "warpPositionFrequency", 0, 10, 0.01);
- particle.add(PARTICLE_CONFIG, "warpTimeFrequency", 0, 10, 0.01);
- particle.add(PARTICLE_CONFIG, "displacementIntensity", 0, 10, 0.01);
- particle.add(PARTICLE_CONFIG, "displacementColorIntensity", 0, 40, 0.01);
- particle.add(PARTICLE_CONFIG, "sizeRandomIntensity", 0, 10, 0.01);
- particle.add(PARTICLE_CONFIG, "sizeRandomTimeFrequency", 0, 3, 0.01);
- particle.add(PARTICLE_CONFIG, "sizeRandomMin", 0, 1, 0.01);
- particle.add(PARTICLE_CONFIG, "sizeRandomMax", 1, 2, 0.01);
- particle.add(PARTICLE_CONFIG, "divergence", -2, 2, 0.1);
- return gui;
-};
-const setParticleConfig = () => {
- return {
- ...PARTICLE_CONFIG,
- } as MorphParticlesParams;
-};
-const setWobbleConfig = () => {
- return {
- ...WOBBLE_CONFIG,
- } as Wobble3DParams;
-};
-
-export const Playground = () => {
- useGUI(setGUI);
- const { size, viewport, camera } = useThree();
- const [noise] = useLoader(THREE.TextureLoader, ["/noise.jpg"]);
- const [updateWobble, wobble] = useCreateWobble3D({
- geometry: useMemo(() => new THREE.IcosahedronGeometry(2.4, 10), []),
- materialParameters: MATERIAL_CONFIG,
- isCustomTransmission: true,
- });
- const [updateParticle, particles] = useCreateMorphParticles({
- size,
- dpr: viewport.dpr,
- geometry: useMemo(() => new THREE.IcosahedronGeometry(0.8, 10), []),
- });
- useMemo(() => {
- particles.points.material.blending = THREE.NormalBlending;
- camera.position.z = 8;
- }, [particles.points.material, camera]);
- useFrame((state) => {
- updateWobble(state, {
- ...setWobbleConfig(),
- });
- const mat = wobble.mesh.material as THREE.MeshPhysicalMaterial;
- mat.iridescence = MATERIAL_CONFIG.iridescence!;
- mat.metalness = MATERIAL_CONFIG.metalness!;
- mat.roughness = MATERIAL_CONFIG.roughness!;
- mat.transmission = MATERIAL_CONFIG.transmission!;
- mat.thickness = MATERIAL_CONFIG.thickness!;
- updateParticle(state, {
- ...setParticleConfig(),
- alphaMap: noise,
- });
- });
-
- return (
-
-
-
-
-
-
- );
-};
-
-/*===============================================
-simple version
-===============================================*/
-// export const Playground = () => {
-// const { size, viewport, camera } = useThree();
-// const [noise] = useLoader(THREE.TextureLoader, ["/noise.jpg"]);
-
-// const [updateWobble, wobble] = useCreateWobble3D({
-// baseMaterial: THREE.MeshPhysicalMaterial,
-// geometry: useMemo(() => new THREE.IcosahedronGeometry(2.4, 10), []),
-// materialParameters: MATERIAL_CONFIG,
-// });
-// const [updateParticle, particles] = useCreateMorphParticles({
-// size,
-// dpr: viewport.dpr,
-// geometry: useMemo(() => new THREE.IcosahedronGeometry(0.8, 10), []),
-// });
-
-// useEffect(() => {
-// particles.points.material.blending = THREE.NormalBlending;
-// camera.position.z = 8;
-// updateWobble(null, WOBBLE_CONFIG);
-// updateParticle(null, { ...PARTICLE_CONFIG, alphaMap: noise });
-// }, [particles.points.material, camera, updateWobble, updateParticle, noise]);
-// useFrame((props) => {
-// updateWobble(props);
-// updateParticle(props);
-// });
-
-// return (
-//
-//
-//
-//
-//
-//
-// );
-// };
diff --git a/app/obscurus/page.tsx b/app/obscurus/page.tsx
deleted file mode 100644
index 4afc0060..00000000
--- a/app/obscurus/page.tsx
+++ /dev/null
@@ -1,18 +0,0 @@
-import { ShaderFx } from "../ShaderFx";
-import { Playground } from "./Playground";
-
-export default function Page() {
- return (
-
- );
-}
diff --git a/app/playground/FxMaterial.tsx b/app/playground/FxMaterial.tsx
deleted file mode 100644
index b87eac16..00000000
--- a/app/playground/FxMaterial.tsx
+++ /dev/null
@@ -1,38 +0,0 @@
-import * as THREE from "three";
-import { shaderMaterial } from "@react-three/drei";
-
-declare global {
- namespace JSX {
- interface IntrinsicElements {
- fxMaterial: any;
- }
- }
-}
-
-export type FxMaterialProps = {
- u_fx: THREE.Texture;
-};
-
-export const FxMaterial = shaderMaterial(
- {
- u_fx: new THREE.Texture(),
- },
-
- `
- varying vec2 vUv;
- void main() {
- vUv = uv;
- gl_Position = vec4(position, 1.0);
- }
- `,
- `
- precision highp float;
- varying vec2 vUv;
- uniform sampler2D u_fx;
- void main() {
- vec2 uv = vUv;
- vec4 color = texture2D(u_fx, uv);
- gl_FragColor = color;
- }
- `
-);
diff --git a/app/playground/Playground.tsx b/app/playground/Playground.tsx
deleted file mode 100644
index 99a4c5b6..00000000
--- a/app/playground/Playground.tsx
+++ /dev/null
@@ -1,80 +0,0 @@
-"use client";
-
-import * as THREE from "three";
-import { useCallback, useEffect, useMemo, useRef, useState } from "react";
-import {
- useFrame,
- useThree,
- extend,
- useLoader,
- createPortal,
-} from "@react-three/fiber";
-import { useRawBlank } from "@/packages/use-shader-fx/src";
-import { FxMaterial } from "./FxMaterial";
-import { OrbitControls, useVideoTexture } from "@react-three/drei";
-
-extend({ FxMaterial });
-
-export const Playground = () => {
- const { size, viewport, camera } = useThree();
-
- const [funkun] = useLoader(THREE.TextureLoader, ["/funkun.jpg"]);
-
- const [update, set, { output }] = useRawBlank({
- size,
- dpr: 2,
- onBeforeInit: (param) => {
- Object.assign(param.uniforms, {
- uTexture: { value: funkun },
- uTime: { value: 0 },
- });
- param.fragmentShader = param.fragmentShader.replace(
- "#usf ",
- `
- uniform sampler2D uTexture;
- uniform float uTime;
- `
- );
- param.fragmentShader = param.fragmentShader.replace(
- "#usf ",
- `
- vec2 uv = vUv;
- vec2 perDivSize = vec2(20.) / uResolution;
- vec4 outColor = vec4(
- texture2D(uTexture, uv + perDivSize * vec2(-1.0, -1.0)) +
- texture2D(uTexture, uv + perDivSize * vec2(0.0, -1.0)) +
- texture2D(uTexture, uv + perDivSize * vec2(1.0, -1.0)) +
- texture2D(uTexture, uv + perDivSize * vec2(-1.0, 0.0)) +
- texture2D(uTexture, uv + perDivSize * vec2(0.0, 0.0)) +
- texture2D(uTexture, uv + perDivSize * vec2(1.0, 0.0)) +
- texture2D(uTexture, uv + perDivSize * vec2(-1.0, 1.0)) +
- texture2D(uTexture, uv + perDivSize * vec2(0.0, 1.0)) +
- texture2D(uTexture, uv + perDivSize * vec2(1.0, 1.0))
- ) / 9.0;
- usf_FragColor = outColor;
- usf_FragColor.r += sin(uTime);
- `
- );
- },
- });
-
- useFrame((state) => {
- update(
- state,
- { hofsehfgose: 2 },
- {
- uTime: state.clock.getElapsedTime(),
- }
- );
- });
-
- return (
- <>
-
-
-
-
- >
- );
-};
-//
diff --git a/app/playground/page.tsx b/app/playground/page.tsx
deleted file mode 100644
index a84dd222..00000000
--- a/app/playground/page.tsx
+++ /dev/null
@@ -1,18 +0,0 @@
-import { ShaderFx } from "../ShaderFx";
-import { Playground } from "./Playground";
-
-export default function Page() {
- return (
-
- );
-}
diff --git a/app/shoasakawa-0/FxMaterial.tsx b/app/shoasakawa-0/FxMaterial.tsx
deleted file mode 100644
index b87eac16..00000000
--- a/app/shoasakawa-0/FxMaterial.tsx
+++ /dev/null
@@ -1,38 +0,0 @@
-import * as THREE from "three";
-import { shaderMaterial } from "@react-three/drei";
-
-declare global {
- namespace JSX {
- interface IntrinsicElements {
- fxMaterial: any;
- }
- }
-}
-
-export type FxMaterialProps = {
- u_fx: THREE.Texture;
-};
-
-export const FxMaterial = shaderMaterial(
- {
- u_fx: new THREE.Texture(),
- },
-
- `
- varying vec2 vUv;
- void main() {
- vUv = uv;
- gl_Position = vec4(position, 1.0);
- }
- `,
- `
- precision highp float;
- varying vec2 vUv;
- uniform sampler2D u_fx;
- void main() {
- vec2 uv = vUv;
- vec4 color = texture2D(u_fx, uv);
- gl_FragColor = color;
- }
- `
-);
diff --git a/app/shoasakawa-0/Playground.tsx b/app/shoasakawa-0/Playground.tsx
deleted file mode 100644
index 88565d6d..00000000
--- a/app/shoasakawa-0/Playground.tsx
+++ /dev/null
@@ -1,182 +0,0 @@
-"use client";
-
-import * as THREE from "three";
-import { useCallback, useRef, useState } from "react";
-import { useFrame, useThree, extend, useLoader } from "@react-three/fiber";
-import { useBeat, useBlank } from "@/packages/use-shader-fx/src";
-import { FxMaterial } from "./FxMaterial";
-import { Environment, OrbitControls } from "@react-three/drei";
-import GUI from "lil-gui";
-import { useGUI } from "@/utils/useGUI";
-import { OnBeforeInitParameters } from "@/packages/use-shader-fx/src/fxs/types";
-
-extend({ FxMaterial });
-
-const CONFIG = {
- scale: 0.1,
- box: () => {},
-};
-
-const setGUI = (gui: GUI) => {
- gui.add(CONFIG, "scale", 0.0001, 0.2, 0.0001);
- gui.add(CONFIG, "box").name("3D⚡️");
- return gui;
-};
-
-export const Playground = () => {
- const updateGUI = useGUI(setGUI);
- const { size, viewport } = useThree();
- const [gear] = useLoader(THREE.TextureLoader, [
- "/shoasakawa/gear/gear.webp",
- ]);
- const [updateBlank, setBlank, { output: blank }] = useBlank({
- size,
- dpr: viewport.dpr,
- onBeforeInit: useCallback((params: OnBeforeInitParameters) => {
- Object.assign(params.uniforms, {
- lerpPointer: { value: new THREE.Vector2(0) },
- tileSize: { value: CONFIG.scale },
- bigRadius: { value: 0.34 },
- smallRadius: { value: 0.12 },
- outerColor0: { value: new THREE.Color("#FF0038") },
- outerColor1: { value: new THREE.Color("#AD00FF") },
- outerColor2: { value: new THREE.Color(0, 0, 0) },
- innerColor0: { value: new THREE.Color("#FFD500") },
- innerColor1: { value: new THREE.Color("#FF0038") },
- innerColor2: { value: new THREE.Color("#008CFF") },
- isBox: { value: false },
- });
- params.fragmentShader = params.fragmentShader.replace(
- "#usf ",
- `
- uniform float tileSize;
- uniform float bigRadius;
- uniform float smallRadius;
- uniform vec3 outerColor0;
- uniform vec3 outerColor1;
- uniform vec3 outerColor2;
- uniform vec3 innerColor0;
- uniform vec3 innerColor1;
- uniform vec3 innerColor2;
- uniform vec2 lerpPointer;
- uniform bool isBox;
-
- float hash(vec2 p) { return fract(1e4 * sin(17.0 * p.x + p.y * 0.1) * (0.1 + abs(sin(p.y * 13.0 + p.x)))); }
-
- vec4 getCircleColor (float d , float r, vec3 c0,vec3 c1, vec3 c2){
- float dist = d / r;
- float nDist = dist*2.-1.;
- return vec4(mix(mix(c0, c1, nDist),mix(c1, c2, nDist), dist),1.);
- }
- `
- );
- params.fragmentShader = params.fragmentShader.replace(
- "#usf ",
- `
- vec2 uv = vUv;
- float aspect = uResolution.x / uResolution.y;
- uv.x *= isBox ? 1. : aspect;
-
- float tile = tileSize;
- vec2 gridUV = fract(uv / tile);
- vec2 gridIndex = floor(uv / tile);
- float gridHash = hash(gridIndex);
-
- float bigDist = distance(gridUV, vec2(.5));
-
- if(bigDist>.49){
- discard;
- }
-
- if(bigDist < bigRadius){
- usf_FragColor = getCircleColor(bigDist, bigRadius, outerColor0, outerColor1, outerColor2);
- vec2 pointer = lerpPointer*(gridHash+.1);
- vec2 offsets[4] = vec2[4](
- vec2(0., -smallRadius*2.2)+pointer*0.2,
- vec2(smallRadius*1.6, 0.)+pointer*0.15,
- vec2(0., smallRadius*2.2)+pointer*0.1,
- vec2(smallRadius*-1.6, 0.)+pointer*0.05
- );
- for (int i = 0; i < 4; i++) {
- vec2 smallCenter = vec2(.5)+offsets[i]*.4;
- float smallDist = distance(gridUV, smallCenter);
- if (smallDist < smallRadius + sin(uTime*(gridHash+.5)+float(i))*.05) {
- usf_FragColor = getCircleColor(smallDist, smallRadius, innerColor0, innerColor1, innerColor2);
- break;
- }
- }
- }else{
- float angle = uTime*(gridHash+.1)*.2;
- float cosAngle = cos(angle);
- float sinAngle = sin(angle);
- mat2 rotationMatrix = mat2(
- cosAngle, -sinAngle,
- sinAngle, cosAngle
- );
- vec2 texCoord = gridUV-vec2(.5);
- texCoord = rotationMatrix * texCoord;
- texCoord += vec2(.5);
- usf_FragColor = texture2D(uTexture,texCoord);
- }
- `
- );
- }, []),
- });
-
- setBlank({
- texture: gear,
- });
-
- const beater = useBeat(120, "easeInOutQuad");
- const pointerVec = new THREE.Vector2();
-
- const [isBox, setIsBox] = useState(false);
-
- CONFIG.box = () => setIsBox((prev) => !prev);
-
- const meshRef = useRef(null);
- useFrame((state) => {
- const { beat } = beater(state.clock);
- updateBlank(
- state,
- {
- beat: beat,
- },
- {
- tileSize: CONFIG.scale,
- lerpPointer: pointerVec.lerp(state.pointer, 0.1),
- isBox,
- }
- );
- if (meshRef.current!) {
- meshRef.current!.rotation.x += 0.01;
- meshRef.current!.rotation.y += 0.01;
- meshRef.current!.rotation.z += 0.01;
- }
- updateGUI();
- });
-
- return (
- <>
- {isBox ? (
-
-
-
-
-
-
-
-
- ) : (
-
-
-
-
- )}
- >
- );
-};
diff --git a/app/shoasakawa-0/page.tsx b/app/shoasakawa-0/page.tsx
deleted file mode 100644
index 25a23700..00000000
--- a/app/shoasakawa-0/page.tsx
+++ /dev/null
@@ -1,33 +0,0 @@
-import { ShaderFx } from "../ShaderFx";
-import { Playground } from "./Playground";
-
-export default function Page() {
- return (
-
- );
-}
diff --git a/app/tests/_utils/useBasicFxGUI.ts b/app/tests/_utils/useBasicFxGUI.ts
new file mode 100644
index 00000000..83f12830
--- /dev/null
+++ b/app/tests/_utils/useBasicFxGUI.ts
@@ -0,0 +1,610 @@
+import * as THREE from "three";
+import GUI from "lil-gui";
+import { useGUI } from "@/utils/useGUI";
+import {
+ BASICFX_VALUES,
+ BasicFxUniformsUnique,
+ BasicFxValues,
+ FitType,
+} from "@/packages/use-shader-fx/src";
+import { useCallback } from "react";
+
+const BASICFX_CONFIG: BasicFxUniformsUnique =
+ THREE.UniformsUtils.clone(BASICFX_VALUES);
+const FIT_TYPE = ["fill", "cover", "contain"];
+
+export const useBasicFxGUI = (
+ setValues: (v: BasicFxValues) => void,
+ textures: {
+ mixSrc: THREE.Texture;
+ mixDst: THREE.Texture;
+ mixMap: THREE.Texture;
+ }
+) => {
+ const setupGUI = useCallback(
+ (gui: GUI) => {
+ /*===============================================
+ mixSrc
+ ===============================================*/
+ const mixSrc = gui.addFolder("mixSrc");
+ mixSrc
+ .add(BASICFX_CONFIG.mixSrc, "value")
+ .name("enabled")
+ .onChange((v: boolean) =>
+ setValues({ mixSrc: v ? { src: textures.mixSrc } : v })
+ );
+ mixSrc
+ .add(BASICFX_CONFIG.mixSrc_fit, "value", FIT_TYPE)
+ .name("fit")
+ .onChange((v: string) =>
+ setValues({ mixSrc: { fit: FIT_TYPE.indexOf(v) as FitType } })
+ );
+ // uv
+ const mixSrcUV = mixSrc.addFolder("uv");
+ mixSrcUV.add(BASICFX_CONFIG.mixSrc_uv, "value").name("enabled");
+ mixSrcUV.add(BASICFX_CONFIG.mixSrc_uv_ch, "value", 0, 3, 1).name("ch");
+ mixSrcUV
+ .add(BASICFX_CONFIG.mixSrc_uv_factor, "value", 0, 1, 0.01)
+ .name("factor");
+ const mixSrcUVOffset = mixSrcUV.addFolder("offset");
+ mixSrcUVOffset
+ .add(BASICFX_CONFIG.mixSrc_uv_offset.value, "x", -1, 1, 0.01)
+ .name("x");
+ mixSrcUVOffset
+ .add(BASICFX_CONFIG.mixSrc_uv_offset.value, "y", -1, 1, 0.01)
+ .name("y");
+ mixSrcUV
+ .add(BASICFX_CONFIG.mixSrc_uv_radius, "value", 0, 1, 0.01)
+ .name("radius");
+ const mixSrcUVPosition = mixSrcUV.addFolder("position");
+ mixSrcUVPosition
+ .add(BASICFX_CONFIG.mixSrc_uv_position.value, "x", -1, 1, 0.01)
+ .name("x");
+ mixSrcUVPosition
+ .add(BASICFX_CONFIG.mixSrc_uv_position.value, "y", -1, 1, 0.01)
+ .name("y");
+ const mixSrcUVRange = mixSrcUV.addFolder("range");
+ mixSrcUVRange
+ .add(BASICFX_CONFIG.mixSrc_uv_range.value, "x", 0, 1, 0.01)
+ .name("x");
+ mixSrcUVRange
+ .add(BASICFX_CONFIG.mixSrc_uv_range.value, "y", 0, 1, 0.01)
+ .name("y");
+ const mixSrcUvMixMap = mixSrcUV.addFolder("mixMap");
+ mixSrcUvMixMap
+ .add(BASICFX_CONFIG.mixSrc_uv_mixMap, "value")
+ .name("enabled")
+ .onChange((v: boolean) =>
+ setValues({
+ mixSrc: { uv: { mixMap: v ? { src: textures.mixMap } : v } },
+ })
+ );
+ mixSrcUvMixMap
+ .add(BASICFX_CONFIG.mixSrc_uv_mixMap_ch, "value", 0, 3, 1)
+ .name("ch");
+
+ // color
+ const mixSrcColor = mixSrc.addFolder("color");
+ mixSrcColor.add(BASICFX_CONFIG.mixSrc_color, "value").name("enabled");
+ mixSrcColor
+ .add(BASICFX_CONFIG.mixSrc_color_factor, "value", 0, 1, 0.01)
+ .name("factor");
+ mixSrcColor
+ .add(BASICFX_CONFIG.mixSrc_color_radius, "value", 0, 1, 0.01)
+ .name("radius");
+ const mixSrcColorPosition = mixSrcColor.addFolder("position");
+ mixSrcColorPosition
+ .add(BASICFX_CONFIG.mixSrc_color_position.value, "x", -1, 1, 0.01)
+ .name("x");
+ mixSrcColorPosition
+ .add(BASICFX_CONFIG.mixSrc_color_position.value, "y", -1, 1, 0.01)
+ .name("y");
+ const mixSrcColorRange = mixSrcColor.addFolder("range");
+ mixSrcColorRange
+ .add(BASICFX_CONFIG.mixSrc_color_range.value, "x", 0, 1, 0.01)
+ .name("x");
+ mixSrcColorRange
+ .add(BASICFX_CONFIG.mixSrc_color_range.value, "y", 0, 1, 0.01)
+ .name("y");
+ const mixSrcColorMixMap = mixSrcColor.addFolder("mixMap");
+ mixSrcColorMixMap
+ .add(BASICFX_CONFIG.mixSrc_color_mixMap, "value")
+ .name("enabled")
+ .onChange((v: boolean) =>
+ setValues({
+ mixSrc: {
+ color: { mixMap: v ? { src: textures.mixMap } : v },
+ },
+ })
+ );
+ mixSrcColorMixMap
+ .add(BASICFX_CONFIG.mixSrc_color_mixMap_ch, "value", 0, 3, 1)
+ .name("ch");
+
+ // alpha
+ const mixSrcAlpha = mixSrc.addFolder("alpha");
+ mixSrcAlpha.add(BASICFX_CONFIG.mixSrc_alpha, "value").name("enabled");
+ mixSrcAlpha
+ .add(BASICFX_CONFIG.mixSrc_alpha_factor, "value", 0, 1, 0.01)
+ .name("factor");
+ mixSrcAlpha
+ .add(BASICFX_CONFIG.mixSrc_alpha_radius, "value", 0, 1, 0.01)
+ .name("radius");
+ const mixSrcAlphaPosition = mixSrcAlpha.addFolder("position");
+ mixSrcAlphaPosition
+ .add(BASICFX_CONFIG.mixSrc_alpha_position.value, "x", -1, 1, 0.01)
+ .name("x");
+ mixSrcAlphaPosition
+ .add(BASICFX_CONFIG.mixSrc_alpha_position.value, "y", -1, 1, 0.01)
+ .name("y");
+ const mixSrcAlphaRange = mixSrcAlpha.addFolder("range");
+ mixSrcAlphaRange
+ .add(BASICFX_CONFIG.mixSrc_alpha_range.value, "x", 0, 1, 0.01)
+ .name("x");
+ mixSrcAlphaRange
+ .add(BASICFX_CONFIG.mixSrc_alpha_range.value, "y", 0, 1, 0.01)
+ .name("y");
+ const mixSrcAlphaMixMap = mixSrcAlpha.addFolder("mixMap");
+ mixSrcAlphaMixMap
+ .add(BASICFX_CONFIG.mixSrc_alpha_mixMap, "value")
+ .name("enabled")
+ .onChange((v: boolean) =>
+ setValues({
+ mixSrc: {
+ alpha: { mixMap: v ? { src: textures.mixMap } : v },
+ },
+ })
+ );
+ mixSrcAlphaMixMap
+ .add(BASICFX_CONFIG.mixSrc_alpha_mixMap_ch, "value", 0, 3, 1)
+ .name("ch");
+
+ /*===============================================
+ mixDst
+ ===============================================*/
+ const mixDst = gui.addFolder("mixDst");
+ mixDst
+ .add(BASICFX_CONFIG.mixDst, "value")
+ .name("enabled")
+ .onChange((v: boolean) =>
+ setValues({ mixDst: v ? { src: textures.mixDst } : v })
+ );
+ mixDst
+ .add(BASICFX_CONFIG.mixDst_fit, "value", FIT_TYPE)
+ .name("fit")
+ .onChange((v: string) =>
+ setValues({ mixDst: { fit: FIT_TYPE.indexOf(v) as FitType } })
+ );
+
+ // uv
+ const mixDstUV = mixDst.addFolder("uv");
+ mixDstUV.add(BASICFX_CONFIG.mixDst_uv, "value").name("enabled");
+ mixDstUV.add(BASICFX_CONFIG.mixDst_uv_ch, "value", 0, 3, 1).name("ch");
+ mixDstUV
+ .add(BASICFX_CONFIG.mixDst_uv_factor, "value", 0, 1, 0.01)
+ .name("factor");
+ const mixDstUVOffset = mixDstUV.addFolder("offset");
+ mixDstUVOffset
+ .add(BASICFX_CONFIG.mixDst_uv_offset.value, "x", -1, 1, 0.01)
+ .name("x");
+ mixDstUVOffset
+ .add(BASICFX_CONFIG.mixDst_uv_offset.value, "y", -1, 1, 0.01)
+ .name("y");
+ mixDstUV
+ .add(BASICFX_CONFIG.mixDst_uv_radius, "value", 0, 1, 0.01)
+ .name("radius");
+ const mixDstUVPosition = mixDstUV.addFolder("position");
+ mixDstUVPosition
+ .add(BASICFX_CONFIG.mixDst_uv_position.value, "x", -1, 1, 0.01)
+ .name("x");
+ mixDstUVPosition
+ .add(BASICFX_CONFIG.mixDst_uv_position.value, "y", -1, 1, 0.01)
+ .name("y");
+ const mixDstUVRange = mixDstUV.addFolder("range");
+ mixDstUVRange
+ .add(BASICFX_CONFIG.mixDst_uv_range.value, "x", 0, 1, 0.01)
+ .name("x");
+ mixDstUVRange
+ .add(BASICFX_CONFIG.mixDst_uv_range.value, "y", 0, 1, 0.01)
+ .name("y");
+ const mixDstUvMixMap = mixDstUV.addFolder("mixMap");
+ mixDstUvMixMap
+ .add(BASICFX_CONFIG.mixDst_uv_mixMap, "value")
+ .name("enabled")
+ .onChange((v: boolean) =>
+ setValues({
+ mixDst: { uv: { mixMap: v ? { src: textures.mixMap } : v } },
+ })
+ );
+ mixDstUvMixMap
+ .add(BASICFX_CONFIG.mixDst_uv_mixMap_ch, "value", 0, 3, 1)
+ .name("ch");
+
+ // color
+ const mixDstColor = mixDst.addFolder("color");
+ mixDstColor.add(BASICFX_CONFIG.mixDst_color, "value").name("enabled");
+ mixDstColor
+ .add(BASICFX_CONFIG.mixDst_color_factor, "value", 0, 1, 0.01)
+ .name("factor");
+ mixDstColor
+ .add(BASICFX_CONFIG.mixDst_color_radius, "value", 0, 1, 0.01)
+ .name("radius");
+ const mixDstColorPosition = mixDstColor.addFolder("position");
+ mixDstColorPosition
+ .add(BASICFX_CONFIG.mixDst_color_position.value, "x", -1, 1, 0.01)
+ .name("x");
+ mixDstColorPosition
+ .add(BASICFX_CONFIG.mixDst_color_position.value, "y", -1, 1, 0.01)
+ .name("y");
+ const mixDstColorRange = mixDstColor.addFolder("range");
+ mixDstColorRange
+ .add(BASICFX_CONFIG.mixDst_color_range.value, "x", 0, 1, 0.01)
+ .name("x");
+ mixDstColorRange
+ .add(BASICFX_CONFIG.mixDst_color_range.value, "y", 0, 1, 0.01)
+ .name("y");
+ const mixDstColorMixMap = mixDstColor.addFolder("mixMap");
+ mixDstColorMixMap
+ .add(BASICFX_CONFIG.mixDst_color_mixMap, "value")
+ .name("enabled")
+ .onChange((v: boolean) =>
+ setValues({
+ mixDst: {
+ color: { mixMap: v ? { src: textures.mixMap } : v },
+ },
+ })
+ );
+ mixDstColorMixMap
+ .add(BASICFX_CONFIG.mixDst_color_mixMap_ch, "value", 0, 3, 1)
+ .name("ch");
+
+ // alpha
+ const mixDstAlpha = mixDst.addFolder("alpha");
+ mixDstAlpha.add(BASICFX_CONFIG.mixDst_alpha, "value").name("enabled");
+ mixDstAlpha
+ .add(BASICFX_CONFIG.mixDst_alpha_factor, "value", 0, 1, 0.01)
+ .name("factor");
+ mixDstAlpha
+ .add(BASICFX_CONFIG.mixDst_alpha_radius, "value", 0, 1, 0.01)
+ .name("radius");
+ const mixDstAlphaPosition = mixDstAlpha.addFolder("position");
+ mixDstAlphaPosition
+ .add(BASICFX_CONFIG.mixDst_alpha_position.value, "x", -1, 1, 0.01)
+ .name("x");
+ mixDstAlphaPosition
+ .add(BASICFX_CONFIG.mixDst_alpha_position.value, "y", -1, 1, 0.01)
+ .name("y");
+ const mixDstAlphaRange = mixDstAlpha.addFolder("range");
+ mixDstAlphaRange
+ .add(BASICFX_CONFIG.mixDst_alpha_range.value, "x", 0, 1, 0.01)
+ .name("x");
+ mixDstAlphaRange
+ .add(BASICFX_CONFIG.mixDst_alpha_range.value, "y", 0, 1, 0.01)
+ .name("y");
+ const mixDstAlphaMixMap = mixDstAlpha.addFolder("mixMap");
+ mixDstAlphaMixMap
+ .add(BASICFX_CONFIG.mixDst_alpha_mixMap, "value")
+ .name("enabled")
+ .onChange((v: boolean) =>
+ setValues({
+ mixDst: {
+ alpha: { mixMap: v ? { src: textures.mixMap } : v },
+ },
+ })
+ );
+ mixDstAlphaMixMap
+ .add(BASICFX_CONFIG.mixDst_alpha_mixMap_ch, "value", 0, 3, 1)
+ .name("ch");
+
+ /*===============================================
+ levels
+ ===============================================*/
+ const levels = gui.addFolder("levels");
+ levels
+ .add(BASICFX_CONFIG.levels, "value")
+ .name("enabled")
+ .onChange((v: boolean) => setValues({ levels: v }));
+ const shadows = levels.addFolder("shadows");
+ shadows
+ .add(BASICFX_CONFIG.levels_shadows.value, "x", -1, 1, 0.01)
+ .name("shadows r");
+ shadows
+ .add(BASICFX_CONFIG.levels_shadows.value, "y", -1, 1, 0.01)
+ .name("shadows g");
+ shadows
+ .add(BASICFX_CONFIG.levels_shadows.value, "z", -1, 1, 0.01)
+ .name("shadows b");
+ shadows
+ .add(BASICFX_CONFIG.levels_shadows.value, "w", -1, 1, 0.01)
+ .name("shadows a");
+ const midtones = levels.addFolder("midtones");
+ midtones
+ .add(BASICFX_CONFIG.levels_midtones.value, "x", -2, 2, 0.01)
+ .name("midtones r");
+ midtones
+ .add(BASICFX_CONFIG.levels_midtones.value, "y", -2, 2, 0.01)
+ .name("midtones g");
+ midtones
+ .add(BASICFX_CONFIG.levels_midtones.value, "z", -2, 2, 0.01)
+ .name("midtones b");
+ midtones
+ .add(BASICFX_CONFIG.levels_midtones.value, "w", -2, 2, 0.01)
+ .name("midtones a");
+ const highlights = levels.addFolder("highlights");
+ highlights
+ .add(BASICFX_CONFIG.levels_highlights.value, "x", -2, 2, 0.01)
+ .name("highlights r");
+ highlights
+ .add(BASICFX_CONFIG.levels_highlights.value, "y", -2, 2, 0.01)
+ .name("highlights g");
+ highlights
+ .add(BASICFX_CONFIG.levels_highlights.value, "z", -2, 2, 0.01)
+ .name("highlights b");
+ highlights
+ .add(BASICFX_CONFIG.levels_highlights.value, "w", -2, 2, 0.01)
+ .name("highlights a");
+ const outputMin = levels.addFolder("outputMin");
+ outputMin
+ .add(BASICFX_CONFIG.levels_outputMin.value, "x", 0, 1, 0.01)
+ .name("outputMin r");
+ outputMin
+ .add(BASICFX_CONFIG.levels_outputMin.value, "y", 0, 1, 0.01)
+ .name("outputMin g");
+ outputMin
+ .add(BASICFX_CONFIG.levels_outputMin.value, "z", 0, 1, 0.01)
+ .name("outputMin b");
+ outputMin
+ .add(BASICFX_CONFIG.levels_outputMin.value, "w", 0, 1, 0.01)
+ .name("outputMin a");
+ const outputMax = levels.addFolder("outputMax");
+ outputMax
+ .add(BASICFX_CONFIG.levels_outputMax.value, "x", 0, 1, 0.01)
+ .name("outputMax r");
+ outputMax
+ .add(BASICFX_CONFIG.levels_outputMax.value, "y", 0, 1, 0.01)
+ .name("outputMax g");
+ outputMax
+ .add(BASICFX_CONFIG.levels_outputMax.value, "z", 0, 1, 0.01)
+ .name("outputMax b");
+ outputMax
+ .add(BASICFX_CONFIG.levels_outputMax.value, "w", 0, 1, 0.01)
+ .name("outputMax a");
+
+ /*===============================================
+ contrast
+ ===============================================*/
+ const contrast = gui.addFolder("contrast");
+ contrast
+ .add(BASICFX_CONFIG.contrast, "value")
+ .name("enabled")
+ .onChange((v: boolean) => setValues({ contrast: v }));
+ contrast
+ .add(BASICFX_CONFIG.contrast_factor.value, "x", 0, 2, 0.01)
+ .name("r");
+ contrast
+ .add(BASICFX_CONFIG.contrast_factor.value, "y", 0, 2, 0.01)
+ .name("g");
+ contrast
+ .add(BASICFX_CONFIG.contrast_factor.value, "z", 0, 2, 0.01)
+ .name("b");
+ contrast
+ .add(BASICFX_CONFIG.contrast_factor.value, "w", 0, 20, 0.01)
+ .name("a");
+
+ /*===============================================
+ color balance
+ ===============================================*/
+ const colorBalance = gui.addFolder("colorBalance");
+ colorBalance
+ .add(BASICFX_CONFIG.colorBalance, "value")
+ .name("enabled")
+ .onChange((v: boolean) => setValues({ colorBalance: v }));
+ colorBalance
+ .add(BASICFX_CONFIG.colorBalance_factor.value, "x", 0, 2, 0.01)
+ .name("r");
+ colorBalance
+ .add(BASICFX_CONFIG.colorBalance_factor.value, "y", 0, 2, 0.01)
+ .name("g");
+ colorBalance
+ .add(BASICFX_CONFIG.colorBalance_factor.value, "z", 0, 2, 0.01)
+ .name("b");
+
+ /*===============================================
+ hsv
+ ===============================================*/
+ const hsv = gui.addFolder("hsv");
+ hsv.add(BASICFX_CONFIG.hsv, "value")
+ .name("enabled")
+ .onChange((v: boolean) => setValues({ hsv: v }));
+ hsv.add(BASICFX_CONFIG.hsv_hueShift, "value", 0, 1, 0.01).name("hue");
+ hsv.add(BASICFX_CONFIG.hsv_saturation, "value", 0, 5, 0.01).name(
+ "saturation"
+ );
+ hsv.add(BASICFX_CONFIG.hsv_brightness, "value", 0, 5, 0.01).name(
+ "brightness"
+ );
+
+ /*===============================================
+ posterize
+ ===============================================*/
+ const posterize = gui.addFolder("posterize");
+ posterize
+ .add(BASICFX_CONFIG.posterize, "value")
+ .name("enabled")
+ .onChange((v: boolean) => setValues({ posterize: v }));
+ posterize
+ .add(BASICFX_CONFIG.posterize_levels.value, "x", 0, 10, 1)
+ .name("r");
+ posterize
+ .add(BASICFX_CONFIG.posterize_levels.value, "y", 0, 10, 1)
+ .name("g");
+ posterize
+ .add(BASICFX_CONFIG.posterize_levels.value, "z", 0, 10, 1)
+ .name("b");
+
+ /*===============================================
+ grayscale
+ ===============================================*/
+ const grayscale = gui.addFolder("grayscale");
+ grayscale
+ .add(BASICFX_CONFIG.grayscale, "value")
+ .name("enabled")
+ .onChange((v: boolean) => setValues({ grayscale: v }));
+ const weight = grayscale.addFolder("weight");
+ weight
+ .add(BASICFX_CONFIG.grayscale_weight.value, "x", 0, 5, 0.01)
+ .name("r");
+ weight
+ .add(BASICFX_CONFIG.grayscale_weight.value, "y", 0, 5, 0.01)
+ .name("g");
+ weight
+ .add(BASICFX_CONFIG.grayscale_weight.value, "z", 0, 5, 0.01)
+ .name("b");
+ const duotone = grayscale.addFolder("duotone");
+ duotone.add(BASICFX_CONFIG.grayscale_duotone, "value").name("enabled");
+ duotone
+ .addColor(BASICFX_CONFIG.grayscale_duotone_color0, "value")
+ .name("color0");
+ duotone
+ .addColor(BASICFX_CONFIG.grayscale_duotone_color1, "value")
+ .name("color1");
+ grayscale
+ .add(BASICFX_CONFIG.grayscale_threshold, "value", -0.01, 1, 0.01)
+ .name("threshold");
+ },
+ [setValues, textures]
+ );
+
+ const updateBasicFxGUI = useGUI(setupGUI, "BasicFx");
+
+ return {
+ updateBasicFxGUI,
+ setBasicFxGUIValues: (): BasicFxValues => {
+ return {
+ ...{
+ ...(BASICFX_CONFIG.mixSrc.value && {
+ mixSrc: {
+ uv: BASICFX_CONFIG.mixSrc_uv.value && {
+ ch: BASICFX_CONFIG.mixSrc_uv_ch.value,
+ factor: BASICFX_CONFIG.mixSrc_uv_factor.value,
+ offset: BASICFX_CONFIG.mixSrc_uv_offset.value,
+ radius: BASICFX_CONFIG.mixSrc_uv_radius.value,
+ position: BASICFX_CONFIG.mixSrc_uv_position.value,
+ range: BASICFX_CONFIG.mixSrc_uv_range.value,
+ mixMap: BASICFX_CONFIG.mixSrc_uv_mixMap.value && {
+ ch: BASICFX_CONFIG.mixSrc_uv_mixMap_ch.value,
+ },
+ },
+ color: BASICFX_CONFIG.mixSrc_color.value && {
+ factor: BASICFX_CONFIG.mixSrc_color_factor.value,
+ radius: BASICFX_CONFIG.mixSrc_color_radius.value,
+ position: BASICFX_CONFIG.mixSrc_color_position.value,
+ range: BASICFX_CONFIG.mixSrc_color_range.value,
+ mixMap: BASICFX_CONFIG.mixSrc_color_mixMap.value && {
+ ch: BASICFX_CONFIG.mixSrc_color_mixMap_ch.value,
+ },
+ },
+ alpha: BASICFX_CONFIG.mixSrc_alpha.value && {
+ factor: BASICFX_CONFIG.mixSrc_alpha_factor.value,
+ radius: BASICFX_CONFIG.mixSrc_alpha_radius.value,
+ position: BASICFX_CONFIG.mixSrc_alpha_position.value,
+ range: BASICFX_CONFIG.mixSrc_alpha_range.value,
+ mixMap: BASICFX_CONFIG.mixSrc_alpha_mixMap.value && {
+ ch: BASICFX_CONFIG.mixSrc_alpha_mixMap_ch.value,
+ },
+ },
+ },
+ }),
+ },
+ ...{
+ ...(BASICFX_CONFIG.mixDst.value && {
+ mixDst: {
+ uv: BASICFX_CONFIG.mixDst_uv.value && {
+ ch: BASICFX_CONFIG.mixDst_uv_ch.value,
+ factor: BASICFX_CONFIG.mixDst_uv_factor.value,
+ offset: BASICFX_CONFIG.mixDst_uv_offset.value,
+ radius: BASICFX_CONFIG.mixDst_uv_radius.value,
+ position: BASICFX_CONFIG.mixDst_uv_position.value,
+ range: BASICFX_CONFIG.mixDst_uv_range.value,
+ mixMap: BASICFX_CONFIG.mixDst_uv_mixMap.value && {
+ ch: BASICFX_CONFIG.mixDst_uv_mixMap_ch.value,
+ },
+ },
+ color: BASICFX_CONFIG.mixDst_color.value && {
+ factor: BASICFX_CONFIG.mixDst_color_factor.value,
+ radius: BASICFX_CONFIG.mixDst_color_radius.value,
+ position: BASICFX_CONFIG.mixDst_color_position.value,
+ range: BASICFX_CONFIG.mixDst_color_range.value,
+ mixMap: BASICFX_CONFIG.mixDst_color_mixMap.value && {
+ ch: BASICFX_CONFIG.mixDst_color_mixMap_ch.value,
+ },
+ },
+ alpha: BASICFX_CONFIG.mixDst_alpha.value && {
+ factor: BASICFX_CONFIG.mixDst_alpha_factor.value,
+ radius: BASICFX_CONFIG.mixDst_alpha_radius.value,
+ position: BASICFX_CONFIG.mixDst_alpha_position.value,
+ range: BASICFX_CONFIG.mixDst_alpha_range.value,
+ mixMap: BASICFX_CONFIG.mixDst_alpha_mixMap.value && {
+ ch: BASICFX_CONFIG.mixDst_alpha_mixMap_ch.value,
+ },
+ },
+ },
+ }),
+ },
+ ...{
+ ...(BASICFX_CONFIG.levels.value && {
+ levels: {
+ shadows: BASICFX_CONFIG.levels_shadows.value,
+ midtones: BASICFX_CONFIG.levels_midtones.value,
+ highlights: BASICFX_CONFIG.levels_highlights.value,
+ outputMin: BASICFX_CONFIG.levels_outputMin.value,
+ outputMax: BASICFX_CONFIG.levels_outputMax.value,
+ },
+ }),
+ },
+ ...{
+ ...(BASICFX_CONFIG.contrast.value && {
+ contrast: {
+ factor: BASICFX_CONFIG.contrast_factor.value,
+ },
+ }),
+ },
+ ...{
+ ...(BASICFX_CONFIG.colorBalance.value && {
+ colorBalance: {
+ factor: BASICFX_CONFIG.colorBalance_factor.value,
+ },
+ }),
+ },
+ ...{
+ ...(BASICFX_CONFIG.hsv.value && {
+ hsv: {
+ hueShift: BASICFX_CONFIG.hsv_hueShift.value,
+ saturation: BASICFX_CONFIG.hsv_saturation.value,
+ brightness: BASICFX_CONFIG.hsv_brightness.value,
+ },
+ }),
+ },
+ ...{
+ ...(BASICFX_CONFIG.posterize.value && {
+ posterize: {
+ levels: BASICFX_CONFIG.posterize_levels.value,
+ },
+ }),
+ },
+ ...{
+ ...(BASICFX_CONFIG.grayscale.value && {
+ grayscale: {
+ weight: BASICFX_CONFIG.grayscale_weight.value,
+ duotone: BASICFX_CONFIG.grayscale_duotone.value && {
+ color0: BASICFX_CONFIG.grayscale_duotone_color0.value,
+ color1: BASICFX_CONFIG.grayscale_duotone_color1.value,
+ },
+ threshold: BASICFX_CONFIG.grayscale_threshold.value,
+ },
+ }),
+ },
+ };
+ },
+ };
+};
diff --git a/app/tests/bufferMaterial/Playground.tsx b/app/tests/bufferMaterial/Playground.tsx
new file mode 100644
index 00000000..584ad32d
--- /dev/null
+++ b/app/tests/bufferMaterial/Playground.tsx
@@ -0,0 +1,56 @@
+"use client";
+
+import * as THREE from "three";
+import { extend, useFrame, useThree } from "@react-three/fiber";
+import { BufferMaterial } from "@/packages/use-shader-fx/src";
+import { useTexture } from "@react-three/drei";
+import { useEffect, useRef } from "react";
+import { useFluid } from "@/packages/use-shader-fx/src";
+
+extend({ BufferMaterial });
+
+export const Playground = () => {
+ const { size } = useThree();
+ const [momo] = useTexture(["/momo.jpg"]);
+ const material = useRef(null);
+ useEffect(() => {
+ if (material.current)
+ material.current.updateResolution(size.width, size.height);
+ }, [size]);
+ const fluid = useFluid({
+ size,
+ dpr: 0.25,
+ });
+ fluid.setValues({
+ // colorBalance: {
+ // factor: new THREE.Vector3(0.5, 0, 0),
+ // },
+ // posterize: {
+ // levels: new THREE.Vector4(8, 8, 8, 8),
+ // },
+ colorBalance: false,
+ posterize: false,
+ });
+ useFrame((state) => {
+ fluid.render(state);
+ });
+ return (
+
+
+
+
+ );
+};
diff --git a/app/tests/bufferMaterial/page.tsx b/app/tests/bufferMaterial/page.tsx
new file mode 100644
index 00000000..e968de8f
--- /dev/null
+++ b/app/tests/bufferMaterial/page.tsx
@@ -0,0 +1,13 @@
+import { WebGLCanvas } from "../../_components/WebGL/WebGLCanvas";
+import { Playground } from "./Playground";
+import { WebGLTestingContainer } from "@/app/_components/WebGL/WebGLTestingContainer";
+
+export default function Page() {
+ return (
+
+
+
+
+
+ );
+}
diff --git a/app/tests/useBlank-useBuffer/Playground.tsx b/app/tests/useBlank-useBuffer/Playground.tsx
new file mode 100644
index 00000000..09d02e01
--- /dev/null
+++ b/app/tests/useBlank-useBuffer/Playground.tsx
@@ -0,0 +1,107 @@
+"use client";
+
+import { useFrame, useThree } from "@react-three/fiber";
+import { useFluid, useBuffer, useBlank } from "@/packages/use-shader-fx/src";
+import { useBasicFxGUI } from "../_utils/useBasicFxGUI";
+import { useTexture } from "@react-three/drei";
+import { TextureRenderer } from "../../_components/WebGL/TextureRenderer";
+
+export const Playground = () => {
+ const { size } = useThree();
+
+ const [mask] = useTexture(["/momo.jpg"]);
+
+ const fluid = useFluid({
+ size,
+ dpr: 0.25,
+ });
+
+ const blank = useBlank({
+ size,
+ dpr: 1.5,
+ pointerLerp: 0.1,
+ vertexShader: `
+ void main() {
+ gl_Position = vec4(position, 1.0);
+ }
+ `,
+ fragmentShader: `
+ precision mediump float;
+ #define GLSLIFY 1
+
+ vec2 rotate2D(vec2 p, float angle) {
+ float s = sin(angle), c = cos(angle);
+ return mat2(c, -s, s, c) * p;
+ }
+
+ float gridPattern(vec2 p) {
+ vec2 grid = abs(fract(p - 0.5) - 0.5) / fwidth(p);
+ return min(grid.x, grid.y);
+ }
+
+ float isoGrid(vec2 p) {
+ p = rotate2D(p, 3.14159 / 4.0);
+ vec2 grid1 = p;
+ vec2 grid2 = rotate2D(p, 3.14159 / 3.0);
+ return min(gridPattern(grid1 * 8.0), gridPattern(grid2 * 8.0));
+ }
+
+ void main() {
+ vec2 uv = vUv;
+
+ vec2 nPointer = pointer * .5 + .5;
+
+ uv.x *= aspectRatio;
+ nPointer.x *= aspectRatio;
+
+ vec2 mouseInfluence = nPointer - uv;
+ float mouseDist = length(mouseInfluence);
+ float distortionAmount = smoothstep(0.3, 0.0, mouseDist) * 0.2;
+
+ vec2 distortedUV = uv + normalize(mouseInfluence) * distortionAmount;
+
+ float grid = isoGrid(distortedUV + time * 0.1);
+
+ vec3 color1 = vec3(0.2, 0.4, 0.8);
+ vec3 color2 = vec3(0.9, 0.3, 0.5);
+ vec3 bgColor = vec3(0., 0., 0.);
+
+ float gridLines = smoothstep(0.8, 0.2, grid);
+ vec3 finalColor = mix(bgColor, mix(color1, color2, sin(time) * 0.5 + 0.5), gridLines);
+ float alpha = mix(0., 1., gridLines);
+ gl_FragColor = vec4(finalColor, alpha);
+
+ #include
+ }
+ `,
+ });
+
+ const basic = useBuffer({
+ size,
+ dpr: 1.5,
+ texture: {
+ src: mask,
+ fit: 1,
+ },
+ });
+
+ const { updateBasicFxGUI, setBasicFxGUIValues } = useBasicFxGUI(
+ basic.setValues,
+ {
+ mixSrc: blank.texture,
+ mixDst: fluid.texture,
+ mixMap: fluid.texture,
+ }
+ );
+
+ useFrame((state) => {
+ basic.render(state, {
+ ...setBasicFxGUIValues(),
+ });
+ blank.render(state);
+ fluid.render(state);
+ updateBasicFxGUI();
+ });
+
+ return ;
+};
diff --git a/app/tests/useBlank-useBuffer/page.tsx b/app/tests/useBlank-useBuffer/page.tsx
new file mode 100644
index 00000000..e968de8f
--- /dev/null
+++ b/app/tests/useBlank-useBuffer/page.tsx
@@ -0,0 +1,13 @@
+import { WebGLCanvas } from "../../_components/WebGL/WebGLCanvas";
+import { Playground } from "./Playground";
+import { WebGLTestingContainer } from "@/app/_components/WebGL/WebGLTestingContainer";
+
+export default function Page() {
+ return (
+
+
+
+
+
+ );
+}
diff --git a/app/tests/useBlank/Playground.tsx b/app/tests/useBlank/Playground.tsx
new file mode 100644
index 00000000..351e0d2e
--- /dev/null
+++ b/app/tests/useBlank/Playground.tsx
@@ -0,0 +1,84 @@
+"use client";
+
+import { useFrame, useThree } from "@react-three/fiber";
+import { useBlank } from "@/packages/use-shader-fx/src";
+import { useTexture } from "@react-three/drei";
+import { TextureRenderer } from "../../_components/WebGL/TextureRenderer";
+
+/*===============================================
+vibe coded by ShaderGPT
+===============================================*/
+export const Playground = () => {
+ const { size } = useThree();
+
+ const [mask] = useTexture(["/momo.jpg"]);
+
+ const blank = useBlank({
+ size,
+ dpr: 1.5,
+ pointerLerp: 0.2,
+ uniforms: {
+ src: { value: mask },
+ },
+ vertexShader: `
+ void main() {
+ gl_Position = vec4(position, 1.0);
+ }
+ `,
+ fragmentShader: `
+ precision mediump float;
+ #define GLSLIFY 1
+
+ vec2 rotate2D(vec2 p, float angle) {
+ float s = sin(angle), c = cos(angle);
+ return mat2(c, -s, s, c) * p;
+ }
+
+ float gridPattern(vec2 p) {
+ vec2 grid = abs(fract(p - 0.5) - 0.5) / fwidth(p);
+ return min(grid.x, grid.y);
+ }
+
+ float isoGrid(vec2 p) {
+ p = rotate2D(p, 3.14159 / 4.0);
+ vec2 grid1 = p;
+ vec2 grid2 = rotate2D(p, 3.14159 / 3.0);
+ return min(gridPattern(grid1 * 8.0), gridPattern(grid2 * 8.0));
+ }
+
+ void main() {
+ vec2 uv = vUv;
+
+ vec2 nPointer = pointer * .5 + .5;
+
+ uv.x *= aspectRatio;
+ nPointer.x *= aspectRatio;
+
+ vec2 mouseInfluence = nPointer - uv;
+ float mouseDist = length(mouseInfluence);
+ float distortionAmount = smoothstep(0.3, 0.0, mouseDist) * 0.2;
+
+ vec2 distortedUV = uv + normalize(mouseInfluence) * distortionAmount;
+
+ float grid = isoGrid(distortedUV + time * 0.1);
+
+ vec3 color1 = vec3(0.2, 0.4, 0.8);
+ vec3 color2 = vec3(0.9, 0.3, 0.5);
+ vec3 bgColor = vec3(0.1, 0.1, 0.2);
+
+ float gridLines = smoothstep(0.8, 0.2, grid);
+ vec3 finalColor = mix(bgColor, mix(color1, color2, sin(time) * 0.5 + 0.5), gridLines);
+
+ gl_FragColor = vec4(finalColor, 1.0);
+
+ #include
+ }
+ `,
+ });
+
+ useFrame((state) => {
+ blank.render(state);
+ });
+
+ return ;
+};
diff --git a/app/tests/useBlank/page.tsx b/app/tests/useBlank/page.tsx
new file mode 100644
index 00000000..e968de8f
--- /dev/null
+++ b/app/tests/useBlank/page.tsx
@@ -0,0 +1,13 @@
+import { WebGLCanvas } from "../../_components/WebGL/WebGLCanvas";
+import { Playground } from "./Playground";
+import { WebGLTestingContainer } from "@/app/_components/WebGL/WebGLTestingContainer";
+
+export default function Page() {
+ return (
+
+
+
+
+
+ );
+}
diff --git a/app/tests/useBuffer/Playground.tsx b/app/tests/useBuffer/Playground.tsx
new file mode 100644
index 00000000..fac46312
--- /dev/null
+++ b/app/tests/useBuffer/Playground.tsx
@@ -0,0 +1,53 @@
+"use client";
+
+import { useFrame, useThree } from "@react-three/fiber";
+import { useBuffer, useFluid, useNoise } from "@/packages/use-shader-fx/src";
+import { useBasicFxGUI } from "../_utils/useBasicFxGUI";
+import { useTexture } from "@react-three/drei";
+import { TextureRenderer } from "../../_components/WebGL/TextureRenderer";
+
+export const Playground = () => {
+ const { size } = useThree();
+
+ const [mask] = useTexture(["/momo.jpg"]);
+ const noise = useNoise({
+ size,
+ dpr: 1,
+ scale: 0.01,
+ timeStrength: 0.4,
+ });
+
+ const buffer = useBuffer({
+ size,
+ dpr: 1,
+ texture: {
+ src: mask,
+ fit: 2,
+ },
+ });
+
+ const fluid = useFluid({
+ size,
+ dpr: 0.25,
+ });
+
+ const { updateBasicFxGUI, setBasicFxGUIValues } = useBasicFxGUI(
+ buffer.setValues,
+ {
+ mixSrc: noise.texture,
+ mixDst: noise.texture,
+ mixMap: fluid.texture,
+ }
+ );
+
+ useFrame((state) => {
+ buffer.render(state, {
+ ...setBasicFxGUIValues(),
+ });
+ fluid.render(state);
+ noise.render(state);
+ updateBasicFxGUI();
+ });
+
+ return ;
+};
diff --git a/app/tests/useBuffer/page.tsx b/app/tests/useBuffer/page.tsx
new file mode 100644
index 00000000..e968de8f
--- /dev/null
+++ b/app/tests/useBuffer/page.tsx
@@ -0,0 +1,13 @@
+import { WebGLCanvas } from "../../_components/WebGL/WebGLCanvas";
+import { Playground } from "./Playground";
+import { WebGLTestingContainer } from "@/app/_components/WebGL/WebGLTestingContainer";
+
+export default function Page() {
+ return (
+
+
+
+
+
+ );
+}
diff --git a/app/tests/useFluid/Playground.tsx b/app/tests/useFluid/Playground.tsx
new file mode 100644
index 00000000..b7356a14
--- /dev/null
+++ b/app/tests/useFluid/Playground.tsx
@@ -0,0 +1,37 @@
+"use client";
+
+import * as THREE from "three";
+import { useFrame, useThree } from "@react-three/fiber";
+import { useFluid, useNoise } from "@/packages/use-shader-fx/src";
+import { useBasicFxGUI } from "../_utils/useBasicFxGUI";
+import { useTexture } from "@react-three/drei";
+import { TextureRenderer } from "../../_components/WebGL/TextureRenderer";
+
+export const Playground = () => {
+ const { size } = useThree();
+
+ const [mask] = useTexture(["/mask.png"]);
+
+ const fluid = useFluid({
+ size,
+ dpr: 0.25,
+ });
+
+ const { updateBasicFxGUI, setBasicFxGUIValues } = useBasicFxGUI(
+ fluid.setValues,
+ {
+ mixSrc: mask,
+ mixDst: mask,
+ mixMap: mask,
+ }
+ );
+
+ useFrame((state) => {
+ fluid.render(state, {
+ ...setBasicFxGUIValues(),
+ });
+ updateBasicFxGUI();
+ });
+
+ return ;
+};
diff --git a/app/tests/useFluid/page.tsx b/app/tests/useFluid/page.tsx
new file mode 100644
index 00000000..e968de8f
--- /dev/null
+++ b/app/tests/useFluid/page.tsx
@@ -0,0 +1,13 @@
+import { WebGLCanvas } from "../../_components/WebGL/WebGLCanvas";
+import { Playground } from "./Playground";
+import { WebGLTestingContainer } from "@/app/_components/WebGL/WebGLTestingContainer";
+
+export default function Page() {
+ return (
+
+
+
+
+
+ );
+}
diff --git a/app/tests/useGrid/Playground.tsx b/app/tests/useGrid/Playground.tsx
new file mode 100644
index 00000000..20474dd7
--- /dev/null
+++ b/app/tests/useGrid/Playground.tsx
@@ -0,0 +1,87 @@
+"use client";
+import * as THREE from "three";
+import { useFrame, useThree } from "@react-three/fiber";
+import {
+ useBuffer,
+ useFluid,
+ useGrid,
+ useNoise,
+} from "@/packages/use-shader-fx/src";
+import { useBasicFxGUI } from "../_utils/useBasicFxGUI";
+import { useTexture } from "@react-three/drei";
+import { TextureRenderer } from "../../_components/WebGL/TextureRenderer";
+
+export const Playground = () => {
+ const { size } = useThree();
+
+ const [momo] = useTexture(["/momo.jpg"]);
+ const [sprite] = useTexture(["/sprite.png"]);
+
+ const buffer = useBuffer({
+ size,
+ dpr: 1.5,
+ texture: {
+ src: momo,
+ fit: 1,
+ },
+ });
+
+ const fluid = useFluid({
+ size,
+ dpr: 0.3,
+ scale: new THREE.Vector2(70, 70),
+ colorBalance: {
+ factor: new THREE.Vector3(0, 10, 0),
+ },
+ contrast: {
+ factor: new THREE.Vector4(1, 3, 1, 1),
+ },
+ bounce: false,
+ });
+
+ const grid = useGrid({
+ size,
+ dpr: 1.5,
+ texture: {
+ src: momo,
+ // src: fluid.texture,
+ fit: 0,
+ },
+ });
+
+ grid.setValues({
+ count: new THREE.Vector2(100, 100),
+ shuffle: {
+ frequency: 10,
+ },
+ sprite: {
+ src: sprite,
+ shuffleSpeed: 0.4,
+ },
+ });
+
+ const { updateBasicFxGUI, setBasicFxGUIValues } = useBasicFxGUI(
+ grid.setValues,
+ {
+ mixSrc: momo,
+ mixDst: momo,
+ mixMap: fluid.texture,
+ }
+ );
+
+ useFrame((state) => {
+ grid.render(state, {
+ ...setBasicFxGUIValues(),
+ });
+ const nTime = Math.sin(state.clock.getElapsedTime()) * 0.5 + 0.5;
+ grid.setValues({
+ shuffle: {
+ range: nTime * 100,
+ },
+ });
+ fluid.render(state);
+ updateBasicFxGUI();
+ });
+
+ return ;
+};
diff --git a/app/tests/useGrid/page.tsx b/app/tests/useGrid/page.tsx
new file mode 100644
index 00000000..e968de8f
--- /dev/null
+++ b/app/tests/useGrid/page.tsx
@@ -0,0 +1,13 @@
+import { WebGLCanvas } from "../../_components/WebGL/WebGLCanvas";
+import { Playground } from "./Playground";
+import { WebGLTestingContainer } from "@/app/_components/WebGL/WebGLTestingContainer";
+
+export default function Page() {
+ return (
+
+
+
+
+
+ );
+}
diff --git a/app/tests/useNoise/Playground.tsx b/app/tests/useNoise/Playground.tsx
new file mode 100644
index 00000000..d4de33bb
--- /dev/null
+++ b/app/tests/useNoise/Playground.tsx
@@ -0,0 +1,45 @@
+"use client";
+
+import * as THREE from "three";
+import { useFrame, useThree } from "@react-three/fiber";
+import { useFluid, useNoise } from "@/packages/use-shader-fx/src";
+import { useBasicFxGUI } from "../_utils/useBasicFxGUI";
+import { useTexture } from "@react-three/drei";
+import { TextureRenderer } from "../../_components/WebGL/TextureRenderer";
+
+export const Playground = () => {
+ const { size } = useThree();
+
+ const [mask] = useTexture(["/mask.png"]);
+
+ const noise = useNoise({
+ size,
+ dpr: 0.5,
+ scale: 0.01,
+ timeStrength: 0.4,
+ });
+
+ // const fluid = useFluid({
+ // size,
+ // dpr: 0.24,
+ // });
+
+ const { updateBasicFxGUI, setBasicFxGUIValues } = useBasicFxGUI(
+ noise.setValues,
+ {
+ mixSrc: mask,
+ mixDst: mask,
+ mixMap: mask,
+ }
+ );
+
+ useFrame((state) => {
+ noise.render(state, {
+ ...setBasicFxGUIValues(),
+ });
+ // fluid.render(state);
+ updateBasicFxGUI();
+ });
+
+ return ;
+};
diff --git a/app/tests/useNoise/page.tsx b/app/tests/useNoise/page.tsx
new file mode 100644
index 00000000..e968de8f
--- /dev/null
+++ b/app/tests/useNoise/page.tsx
@@ -0,0 +1,13 @@
+import { WebGLCanvas } from "../../_components/WebGL/WebGLCanvas";
+import { Playground } from "./Playground";
+import { WebGLTestingContainer } from "@/app/_components/WebGL/WebGLTestingContainer";
+
+export default function Page() {
+ return (
+
+
+
+
+
+ );
+}
diff --git a/app/tests/useRawBlank-useBuffer/Playground.tsx b/app/tests/useRawBlank-useBuffer/Playground.tsx
new file mode 100644
index 00000000..48c98eed
--- /dev/null
+++ b/app/tests/useRawBlank-useBuffer/Playground.tsx
@@ -0,0 +1,204 @@
+"use client";
+
+import * as THREE from "three";
+import { useFrame, useThree } from "@react-three/fiber";
+import { useFluid, useRawBlank, useBuffer } from "@/packages/use-shader-fx/src";
+import { useBasicFxGUI } from "../_utils/useBasicFxGUI";
+import { TextureRenderer } from "../../_components/WebGL/TextureRenderer";
+
+export const Playground = () => {
+ const { size } = useThree();
+
+ const fluid = useFluid({
+ size,
+ dpr: 0.25,
+ });
+
+ const rawShader = useRawBlank({
+ size,
+ dpr: 1,
+ uniforms: {
+ src: { value: fluid.velocity },
+ time: { value: 0 },
+ pointer: { value: new THREE.Vector2() },
+ },
+ vertexShader: `
+ void main() {
+ gl_Position = vec4(position, 1.0);
+ }
+ `,
+ fragmentShader: `
+ precision mediump float;
+
+ uniform float time;
+ uniform vec2 pointer;
+
+ #define PI 3.14159265359
+ #define MAX_STEPS 100
+ #define MAX_DIST 100.0
+ #define SURF_DIST 0.001
+
+ // SDF for a sphere
+ float sdSphere(vec3 p, float r) {
+ return length(p) - r;
+ }
+
+ // Smooth minimum function for gooey effect
+ float smin(float a, float b, float k) {
+ float h = clamp(0.5 + 0.5 * (b - a) / k, 0.0, 1.0);
+ return mix(b, a, h) - k * h * (1.0 - h);
+ }
+
+ // Noise function for added texture
+ float hash21(vec2 p) {
+ p = fract(p * vec2(123.34, 456.21));
+ p += dot(p, p + 45.32);
+ return fract(p.x * p.y);
+ }
+
+ // Scene SDF
+ float map(vec3 p) {
+ // Mouse influence on movement
+ vec2 m = pointer * 2.0 - 1.0;
+
+ // First sphere position with time-based animation
+ vec3 p1 = p - vec3(sin(time * 0.5) * 1.5 + m.x, cos(time * 0.7) * 0.5 + m.y, 0.0);
+ float sphere1 = sdSphere(p1, 1.0 + 0.2 * sin(time));
+
+ // Second sphere position with different animation pattern
+ vec3 p2 = p - vec3(cos(time * 0.6) * 1.5 - m.x, sin(time * 0.4) * 0.5 - m.y, 0.0);
+ float sphere2 = sdSphere(p2, 0.8 + 0.3 * cos(time * 0.8));
+
+ // Gooey blend between the two spheres
+ float mouseInfluence = length(m) * 2.0; // Stronger influence when mouse is further from center
+ float blendFactor = 0.8 + 0.5 * mouseInfluence;
+ return smin(sphere1, sphere2, blendFactor);
+ }
+
+ // Calculate normal
+ vec3 getNormal(vec3 p) {
+ float d = map(p);
+ vec2 e = vec2(0.001, 0.0);
+
+ vec3 n = d - vec3(
+ map(p - e.xyy),
+ map(p - e.yxy),
+ map(p - e.yyx)
+ );
+
+ return normalize(n);
+ }
+
+ // Raymarching
+ float rayMarch(vec3 ro, vec3 rd) {
+ float dO = 0.0;
+
+ for(int i = 0; i < MAX_STEPS; i++) {
+ vec3 p = ro + rd * dO;
+ float dS = map(p);
+ dO += dS;
+ if(dO > MAX_DIST || abs(dS) < SURF_DIST) break;
+ }
+
+ return dO;
+ }
+
+ // Color palette function
+ vec3 palette(float t) {
+ vec3 a = vec3(0.5, 0.5, 0.5);
+ vec3 b = vec3(0.5, 0.5, 0.5);
+ vec3 c = vec3(1.0, 1.0, 1.0);
+ vec3 d = vec3(0.3, 0.2, 0.2);
+ return a + b * cos(6.28318 * (c * t + d));
+ }
+
+ void main() {
+ // Adjust for aspect ratio
+ vec2 uv = vUv - 0.5;
+ uv.x *= resolution.x / resolution.y;
+
+ // Setup camera
+ vec3 ro = vec3(0.0, 0.0, -4.0);
+ vec3 rd = normalize(vec3(uv, 1.0));
+
+ // Raymarch
+ float d = rayMarch(ro, rd);
+
+ // Background color - deep purple
+ vec3 col = vec3(0.1, 0.05, 0.2);
+
+ // If we hit something
+ if(d < MAX_DIST) {
+ vec3 p = ro + rd * d;
+ vec3 n = getNormal(p);
+
+ // Basic lighting
+ vec3 lightPos = vec3(2.0, 4.0, -3.0);
+ vec3 lightDir = normalize(lightPos - p);
+ float diff = max(dot(n, lightDir), 0.0);
+
+ // Add specular highlight
+ vec3 viewDir = normalize(ro - p);
+ vec3 reflectDir = reflect(-lightDir, n);
+ float spec = pow(max(dot(viewDir, reflectDir), 0.0), 32.0);
+
+ // Gooey color based on position and time
+ float t = length(p) * 0.2 + time * 0.1;
+ vec3 baseColor = palette(t);
+
+ // Add some noise texture
+ float noise = hash21(p.xy * 10.0 + time);
+ baseColor += noise * 0.05;
+
+ // Final color with lighting
+ col = baseColor * (diff * 0.8 + 0.2) + vec3(1.0) * spec * 0.5;
+
+ // Add rim lighting for gooey effect
+ float rim = 1.0 - max(dot(viewDir, n), 0.0);
+ rim = pow(rim, 4.0);
+ col += rim * vec3(0.3, 0.5, 0.7) * 0.5;
+ }
+
+ // Apply subtle vignette
+ float vignette = 1.0 - length(vUv - 0.5) * 0.8;
+ col *= vignette;
+
+ // Output final color
+ gl_FragColor = vec4(col, 1.0);
+
+ #include
+ }
+ `,
+ });
+
+ const basic = useBuffer({
+ size,
+ dpr: 1,
+ texture: {
+ src: rawShader.texture,
+ fit: 0,
+ },
+ });
+
+ const { updateBasicFxGUI, setBasicFxGUIValues } = useBasicFxGUI(
+ basic.setValues,
+ {
+ mixSrc: fluid.texture,
+ mixDst: fluid.texture,
+ mixMap: fluid.texture,
+ }
+ );
+
+ useFrame((state) => {
+ basic.render(state, {
+ ...setBasicFxGUIValues(),
+ });
+ rawShader.render(state);
+ rawShader.material!.uniforms.time.value = state.clock.getElapsedTime();
+ rawShader.material!.uniforms.pointer.value.lerp(state.pointer, 0.1);
+ fluid.render(state);
+ updateBasicFxGUI();
+ });
+
+ return ;
+};
diff --git a/app/tests/useRawBlank-useBuffer/page.tsx b/app/tests/useRawBlank-useBuffer/page.tsx
new file mode 100644
index 00000000..e968de8f
--- /dev/null
+++ b/app/tests/useRawBlank-useBuffer/page.tsx
@@ -0,0 +1,13 @@
+import { WebGLCanvas } from "../../_components/WebGL/WebGLCanvas";
+import { Playground } from "./Playground";
+import { WebGLTestingContainer } from "@/app/_components/WebGL/WebGLTestingContainer";
+
+export default function Page() {
+ return (
+
+
+
+
+
+ );
+}
diff --git a/app/tests/useRawBlank/Playground.tsx b/app/tests/useRawBlank/Playground.tsx
new file mode 100644
index 00000000..9a23110a
--- /dev/null
+++ b/app/tests/useRawBlank/Playground.tsx
@@ -0,0 +1,48 @@
+"use client";
+
+import { useFrame, useThree } from "@react-three/fiber";
+import { useFluid, useRawBlank } from "@/packages/use-shader-fx/src";
+import { TextureRenderer } from "../../_components/WebGL/TextureRenderer";
+
+export const Playground = () => {
+ const { size } = useThree();
+
+ const fluid = useFluid({
+ size,
+ dpr: 0.25,
+ });
+
+ const rawShader = useRawBlank({
+ size,
+ dpr: 1,
+ uniforms: {
+ src: { value: fluid.velocity },
+ },
+ vertexShader: `
+ void main() {
+ gl_Position = vec4(position, 1.0);
+ }
+ `,
+ fragmentShader: `
+ uniform sampler2D src;
+ void main() {
+ vec2 uv = vUv;
+ vec2 vel = texture2D(src, uv).rg;
+ float len = length(vel);
+ vel = vel * 0.5 + 0.5;
+
+ vec3 color = vec3(vel.x, vel.y, 1.0);
+ color = mix(vec3(1.0), color, len);
+
+ gl_FragColor = vec4(color, 1.);
+ }
+ `,
+ });
+
+ useFrame((state) => {
+ rawShader.render(state);
+ fluid.render(state);
+ });
+
+ return ;
+};
diff --git a/app/tests/useRawBlank/page.tsx b/app/tests/useRawBlank/page.tsx
new file mode 100644
index 00000000..e968de8f
--- /dev/null
+++ b/app/tests/useRawBlank/page.tsx
@@ -0,0 +1,13 @@
+import { WebGLCanvas } from "../../_components/WebGL/WebGLCanvas";
+import { Playground } from "./Playground";
+import { WebGLTestingContainer } from "@/app/_components/WebGL/WebGLTestingContainer";
+
+export default function Page() {
+ return (
+
+
+
+
+
+ );
+}
diff --git a/app/useBlank/FxMaterial.tsx b/app/useBlank/FxMaterial.tsx
deleted file mode 100644
index b87eac16..00000000
--- a/app/useBlank/FxMaterial.tsx
+++ /dev/null
@@ -1,38 +0,0 @@
-import * as THREE from "three";
-import { shaderMaterial } from "@react-three/drei";
-
-declare global {
- namespace JSX {
- interface IntrinsicElements {
- fxMaterial: any;
- }
- }
-}
-
-export type FxMaterialProps = {
- u_fx: THREE.Texture;
-};
-
-export const FxMaterial = shaderMaterial(
- {
- u_fx: new THREE.Texture(),
- },
-
- `
- varying vec2 vUv;
- void main() {
- vUv = uv;
- gl_Position = vec4(position, 1.0);
- }
- `,
- `
- precision highp float;
- varying vec2 vUv;
- uniform sampler2D u_fx;
- void main() {
- vec2 uv = vUv;
- vec4 color = texture2D(u_fx, uv);
- gl_FragColor = color;
- }
- `
-);
diff --git a/app/useBlank/Playground.tsx b/app/useBlank/Playground.tsx
deleted file mode 100644
index 9a19c213..00000000
--- a/app/useBlank/Playground.tsx
+++ /dev/null
@@ -1,67 +0,0 @@
-"use client";
-
-import * as THREE from "three";
-import { useCallback, useMemo } from "react";
-import { useFrame, useThree, extend } from "@react-three/fiber";
-import { useBlank, useCoverTexture } from "@/packages/use-shader-fx/src";
-import { FxMaterial } from "./FxMaterial";
-import { useVideoTexture } from "@react-three/drei";
-import { OnBeforeInitParameters } from "@/packages/use-shader-fx/src/fxs/types";
-
-extend({ FxMaterial });
-
-export const Playground = () => {
- const { size, viewport, gl } = useThree();
- const funkun_mov = useVideoTexture("/FT_Ch02-comp.mp4", {
- width: 1280,
- height: 720,
- });
- const [updateCover, setCover, { output: cover }] = useCoverTexture({
- size,
- dpr: 1,
- });
- setCover({
- texture: funkun_mov,
- });
- const [updateBlank, setBlank, { output: blank }] = useBlank({
- size,
- dpr: viewport.dpr,
- onBeforeInit: useCallback((params: OnBeforeInitParameters) => {
- Object.assign(params.uniforms, {
- hoge: { value: 0 },
- });
- params.fragmentShader = params.fragmentShader.replace(
- "#usf ",
- "uniform float hoge;"
- );
- params.fragmentShader = params.fragmentShader.replace(
- "#usf ",
- `float t=uTime,c;vec2 z,u,n=vec2(cos(t),sin(t));z=vUv*2.-1.;for(int i=0;i<12;i++){if(dot(z,z)>8.)discard;z=vec2(z.x*z.x-z.y*z.y,z.x*z.y)+n;}c=cos(length(z)+log(length(z)));u=vUv;u+=z*hoge;usf_FragColor=vec4(mix(vec3(c),texture2D(uTexture,u).rgb,1.-hoge),1.);`
- );
- console.log(params);
- }, []),
- });
- setBlank({
- texture: cover,
- });
-
- useFrame((state) => {
- updateBlank(
- state,
- {},
- {
- hoge: Math.sin(state.clock.getElapsedTime()),
- }
- );
- updateCover(state);
- });
-
- return (
- <>
-
-
-
-
- >
- );
-};
diff --git a/app/useBlank/page.tsx b/app/useBlank/page.tsx
deleted file mode 100644
index a84dd222..00000000
--- a/app/useBlank/page.tsx
+++ /dev/null
@@ -1,18 +0,0 @@
-import { ShaderFx } from "../ShaderFx";
-import { Playground } from "./Playground";
-
-export default function Page() {
- return (
-
- );
-}
diff --git a/app/useMorphParticles/FxMaterial.tsx b/app/useMorphParticles/FxMaterial.tsx
deleted file mode 100644
index 2f49a508..00000000
--- a/app/useMorphParticles/FxMaterial.tsx
+++ /dev/null
@@ -1,30 +0,0 @@
-import * as THREE from "three";
-import { shaderMaterial } from "@react-three/drei";
-import fragment from "./main.frag";
-
-declare global {
- namespace JSX {
- interface IntrinsicElements {
- fxMaterial: any;
- }
- }
-}
-
-export type FxMaterialProps = {
- u_fx: THREE.Texture;
-};
-
-export const FxMaterial = shaderMaterial(
- {
- u_fx: new THREE.Texture(),
- },
-
- `
- varying vec2 vUv;
- void main() {
- vUv = uv;
- gl_Position = vec4(position, 1.0);
- }
- `,
- fragment
-);
diff --git a/app/useMorphParticles/Playground.tsx b/app/useMorphParticles/Playground.tsx
deleted file mode 100644
index bbff09ef..00000000
--- a/app/useMorphParticles/Playground.tsx
+++ /dev/null
@@ -1,192 +0,0 @@
-"use client";
-
-import * as THREE from "three";
-import { use, useCallback, useEffect, useMemo, useRef } from "react";
-import {
- useFrame,
- useThree,
- extend,
- useLoader,
- Size,
-} from "@react-three/fiber";
-import {
- useMorphParticles,
- useCreateMorphParticles,
- MORPHPARTICLES_PARAMS,
- MorphParticlesParams,
- useBeat,
- useFluid,
- usePointer,
-} from "@/packages/use-shader-fx/src";
-import { FxMaterial, FxMaterialProps } from "./FxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "@/utils/useGUI";
-import { OrbitControls } from "@react-three/drei";
-
-extend({ FxMaterial });
-
-const CONFIG: MorphParticlesParams = structuredClone(MORPHPARTICLES_PARAMS);
-const setGUI = (gui: GUI) => {
- gui.add(CONFIG, "blurAlpha", 0, 1, 0.01);
- gui.add(CONFIG, "blurRadius", 0, 2, 0.01);
- gui.add(CONFIG, "pointSize", 0.01, 2, 0.01);
- // gui.addColor(CONFIG, "color0");
- // gui.addColor(CONFIG, "color1");
- // gui.addColor(CONFIG, "color2");
- // gui.addColor(CONFIG, "color3");
- gui.add(CONFIG, "wobbleStrength", 0, 10, 0.01);
- gui.add(CONFIG, "wobblePositionFrequency", 0, 10, 0.01);
- gui.add(CONFIG, "wobbleTimeFrequency", 0, 10, 0.01);
- gui.add(CONFIG, "warpStrength", 0, 10, 0.01);
- gui.add(CONFIG, "warpPositionFrequency", 0, 10, 0.01);
- gui.add(CONFIG, "warpTimeFrequency", 0, 10, 0.01);
- gui.add(CONFIG, "displacementIntensity", 0, 10, 0.01);
- gui.add(CONFIG, "displacementColorIntensity", 0, 40, 0.01);
- gui.add(CONFIG, "sizeRandomIntensity", 0, 10, 0.01);
- gui.add(CONFIG, "sizeRandomTimeFrequency", 0, 3, 0.01);
- gui.add(CONFIG, "sizeRandomMin", 0, 1, 0.01);
- gui.add(CONFIG, "sizeRandomMax", 1, 2, 0.01);
- gui.add(CONFIG, "divergence", -2, 2, 0.1);
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as MorphParticlesParams;
-};
-const morphList = [
- new THREE.PlaneGeometry(5, 5, 100, 100).attributes.position
- .array as Float32Array,
- new THREE.TorusGeometry(2.5, 1, 50, 30).attributes.position
- .array as Float32Array,
-];
-const uvList = [
- new THREE.PlaneGeometry(5, 5, 100, 100).attributes.uv.array as Float32Array,
- new THREE.TorusGeometry(2.5, 1, 50, 30).attributes.uv.array as Float32Array,
-];
-
-export const Playground = () => {
- const updateGUI = useGUI(setGUI);
- const [funkun, funkunAlpha] = useLoader(THREE.TextureLoader, [
- "/funkun.jpg",
- "/funkun-alpha.jpg",
- ]);
- const { size, viewport, scene } = useThree();
-
- const [updateFluid, setFluid, { output: fluid }] = useFluid({
- size,
- dpr: 0.1,
- });
-
- const colorVec = new THREE.Vector3(0, 0, 0);
- setFluid({
- fluidColor: (velocity: THREE.Vector2) => {
- const rCol = Math.max(0.0, Math.abs(velocity.x) * 200);
- const gCol = Math.max(0.0, Math.abs(velocity.y) * 100);
- const bCol = Math.max(0.0, (rCol + gCol) / 2);
- return colorVec.set(rCol, gCol, bCol);
- },
- });
-
- const [updatePoints, points] = useCreateMorphParticles({
- scene: false,
- size,
- dpr: viewport.dpr,
- geometry: useMemo(() => new THREE.IcosahedronGeometry(2.5, 50), []),
- positions: morphList,
- uvs: uvList,
- // geometry: new THREE.PlaneGeometry(5, 5, 100, 100),
- // onBeforeCompile: useCallback((shader: THREE.Shader) => {
- // // shader.vertexShader = shader.vertexShader.replace(
- // // "gl_Position = projectedPosition += wobble;",
- // // "gl_Position = projectedPosition += wobble + 2.;"
- // // );
- // console.log(shader);
- // }, []),
- });
-
- const beat = useBeat(140, "easeOutCubic");
- const updatePointer = usePointer();
- const refPointer = useRef(new THREE.Vector2(0, 0));
- const handlePointerMove = (e: any) => {
- if (!e?.pointer) {
- return;
- }
- refPointer.current = e.pointer;
- };
-
- useFrame((state) => {
- const b = beat(state.clock);
- updateFluid(state, {
- pointerValues: updatePointer(refPointer.current),
- });
- updatePoints(state, {
- ...setConfig(),
- displacement: fluid,
- picture: funkun,
- alphaPicture: funkunAlpha,
- // map: funkun,
- // alphaMap: funkunAlpha,
- beat: b.beat,
- morphProgress: Math.max(Math.sin(state.clock.getElapsedTime() / 2), 0),
- // morphProgress: 0.5,
- });
- updateGUI();
- });
-
- return (
-
-
-
-
-
- );
-};
-
-/*===============================================
-you can also use useMorphParticles (FBO)
-===============================================*/
-// export const Playground = () => {
-// const { size, viewport, scene, camera } = useThree();
-
-// const [updatePoints, setPoints, { output }] = useMorphParticles({
-// camera,
-// size,
-// dpr: viewport.dpr,
-// geometry: new THREE.IcosahedronGeometry(2.5, 50),
-// positions: morphList,
-// uvs: uvList,
-// // geometry: new THREE.PlaneGeometry(5, 5, 100, 100),
-// });
-
-// const beat = useBeat(140, "easeOutCubic");
-// const updatePointer = usePointer();
-// const refPointer = useRef(new THREE.Vector2(0, 0));
-// const handlePointerMove = (e: any) => {
-// if (!e?.pointer) {
-// return;
-// }
-// refPointer.current = e.pointer;
-// };
-
-// useFrame((state) => {
-// const b = beat(state.clock);
-// updatePoints(state, {
-// ...setConfig(),
-// // map: funkun,
-// // alphaMap: funkunAlpha,
-// beat: b.beat,
-// morphProgress: Math.max(Math.sin(state.clock.getElapsedTime() / 2), 0),
-// // morphProgress: 0.5,
-// });
-// });
-
-// return (
-//
-//
-//
-//
-// );
-// };
diff --git a/app/useMorphParticles/main.frag b/app/useMorphParticles/main.frag
deleted file mode 100644
index bdaf5c1b..00000000
--- a/app/useMorphParticles/main.frag
+++ /dev/null
@@ -1,7 +0,0 @@
-precision highp float;
-varying vec2 vUv;
-uniform sampler2D u_fx;
-
-void main() {
- gl_FragColor = texture2D(u_fx,vUv);
-}
\ No newline at end of file
diff --git a/app/useMorphParticles/page.tsx b/app/useMorphParticles/page.tsx
deleted file mode 100644
index 4afc0060..00000000
--- a/app/useMorphParticles/page.tsx
+++ /dev/null
@@ -1,18 +0,0 @@
-import { ShaderFx } from "../ShaderFx";
-import { Playground } from "./Playground";
-
-export default function Page() {
- return (
-
- );
-}
diff --git a/app/useWobble3D/FxMaterial.tsx b/app/useWobble3D/FxMaterial.tsx
deleted file mode 100644
index d1a9c743..00000000
--- a/app/useWobble3D/FxMaterial.tsx
+++ /dev/null
@@ -1,38 +0,0 @@
-import * as THREE from "three";
-import { shaderMaterial } from "@react-three/drei";
-
-declare global {
- namespace JSX {
- interface IntrinsicElements {
- fxMaterial: any;
- }
- }
-}
-
-export type FxMaterialProps = {
- u_fx: THREE.Texture;
-};
-
-export const FxMaterial = shaderMaterial(
- {
- u_fx: new THREE.Texture(),
- },
-
- `
- varying vec2 vUv;
- void main() {
- vUv = uv;
- gl_Position = vec4(position, 1.0);
- }
- `,
- `
- precision highp float;
- varying vec2 vUv;
- uniform sampler2D u_fx;
-
- void main() {
- gl_FragColor = texture2D(u_fx,vUv);
- // gl_FragColor = vec4(1.,1.,0.,1.);
- }
- `
-);
diff --git a/app/useWobble3D/Playground.tsx b/app/useWobble3D/Playground.tsx
deleted file mode 100644
index 1a1a63a8..00000000
--- a/app/useWobble3D/Playground.tsx
+++ /dev/null
@@ -1,173 +0,0 @@
-"use client";
-
-import * as THREE from "three";
-import { useEffect } from "react";
-import { useFrame, useThree, extend, useLoader } from "@react-three/fiber";
-import {
- useBeat,
- useCreateWobble3D,
- Wobble3DParams,
- WOBBLE3D_PARAMS,
- useWobble3D,
-} from "@/packages/use-shader-fx/src";
-import { FxMaterial } from "./FxMaterial";
-import GUI from "lil-gui";
-import { useGUI } from "@/utils/useGUI";
-import { OrbitControls, Environment } from "@react-three/drei";
-
-extend({ FxMaterial });
-
-const CONFIG: Wobble3DParams = {
- ...structuredClone(WOBBLE3D_PARAMS),
- color0: new THREE.Color(0x1adb91),
- color1: new THREE.Color(0xdbff57),
- color2: new THREE.Color(0xdf6bff),
- color3: new THREE.Color(0x9eaeff),
- wobbleStrength: 0.8,
- wobbleTimeFrequency: 0.4,
- warpStrength: 0.2,
- colorMix: 0.6,
- chromaticAberration: 0.8,
- anisotropicBlur: 0.2,
- distortion: 2,
- distortionScale: 0.8,
- temporalDistortion: 0.3,
- refractionSamples: 6,
-};
-
-const MATERIAL_CONFIG: THREE.MeshPhysicalMaterialParameters = {
- iridescence: 0,
- metalness: 0.0,
- roughness: 0.0,
- transmission: 0.99,
- thickness: 0.2,
- transparent: true,
-};
-
-const setGUI = (gui: GUI) => {
- gui.addColor(CONFIG, "color0");
- gui.addColor(CONFIG, "color1");
- gui.addColor(CONFIG, "color2");
- gui.addColor(CONFIG, "color3");
- gui.add(CONFIG, "wobbleStrength", 0, 10, 0.01);
- gui.add(CONFIG, "wobblePositionFrequency", 0, 10, 0.01);
- gui.add(CONFIG, "wobbleTimeFrequency", 0, 10, 0.01);
- gui.add(CONFIG, "warpStrength", 0, 10, 0.01);
- gui.add(CONFIG, "warpPositionFrequency", 0, 10, 0.01);
- gui.add(CONFIG, "warpTimeFrequency", 0, 10, 0.01);
- gui.add(CONFIG, "refractionSamples", 0, 10, 1);
- gui.add(CONFIG, "colorMix", 0, 1, 0.01);
- gui.add(CONFIG, "chromaticAberration", 0, 10, 0.01);
- gui.add(CONFIG, "anisotropicBlur", 0, 10, 0.01);
- gui.add(CONFIG, "distortion", 0, 10, 0.01);
- gui.add(CONFIG, "distortionScale", 0, 10, 0.01);
- gui.add(CONFIG, "temporalDistortion", 0, 10, 0.01);
- const mpm = gui.addFolder("MeshPhysicalMaterial");
- mpm.add(MATERIAL_CONFIG, "iridescence", 0, 1, 0.01);
- mpm.add(MATERIAL_CONFIG, "metalness", 0, 1, 0.01);
- mpm.add(MATERIAL_CONFIG, "roughness", 0, 1, 0.01);
- mpm.add(MATERIAL_CONFIG, "transmission", 0, 10, 0.01);
- mpm.add(MATERIAL_CONFIG, "thickness", 0, 10, 0.01);
- return gui;
-};
-const setConfig = () => {
- return {
- ...CONFIG,
- } as Wobble3DParams;
-};
-
-export const Playground = () => {
- const updateGUI = useGUI(setGUI);
- const [funkun] = useLoader(THREE.TextureLoader, ["/funkun.jpg"]);
-
- /*===============================================
- example of FBO
- ===============================================*/
- // const { size, viewport, camera } = useThree();
- // const [update, _, { output, scene }] = useWobble3D({
- // size,
- // dpr: viewport.dpr,
- // camera,
- // });
- // useEffect(() => {
- // const light = new THREE.AmbientLight(0xffffff, 2);
- // scene.add(light);
- // }, [scene]);
- // useFrame((props) => update(props));
-
- /*===============================================
- example of primitive
- ===============================================*/
- const [updateWobble, wobble] = useCreateWobble3D({
- baseMaterial: THREE.MeshPhysicalMaterial,
- materialParameters: MATERIAL_CONFIG,
- isCustomTransmission: true,
- depth: true,
- // onBeforeInit: (params) => {
- // console.log(params);
- // },
- });
- if (wobble.depthMaterial) {
- wobble.mesh.customDepthMaterial = wobble.depthMaterial;
- }
- wobble.mesh.receiveShadow = true;
- wobble.mesh.castShadow = true;
-
- const beat = useBeat(140, "easeInOutBack");
-
- useFrame((state) => {
- updateWobble(state, {
- ...setConfig(),
- beat: beat(state.clock).beat,
- });
- const mat = wobble.mesh.material as THREE.MeshPhysicalMaterial;
- mat.iridescence = MATERIAL_CONFIG.iridescence!;
- mat.metalness = MATERIAL_CONFIG.metalness!;
- mat.roughness = MATERIAL_CONFIG.roughness!;
- mat.transmission = MATERIAL_CONFIG.transmission!;
- mat.thickness = MATERIAL_CONFIG.thickness!;
- updateGUI();
- });
-
- return (
-
-
-
-
-
-
-
-
-
- {/*
-
- */}
-
- );
-};
-
-/*===============================================
-simpler example
-===============================================*/
-// export const Playground = () => {
-// const [updateWobble, wobble] = useCreateWobble3D({
-// baseMaterial: THREE.MeshPhysicalMaterial,
-// materialParameters: {
-// roughness: 0.0,
-// transmission: 1,
-// thickness: 1,
-// },
-// });
-// useFrame((state) => updateWobble(state));
-// return (
-//
-//
-//
-//
-// );
-// };
diff --git a/app/useWobble3D/page.tsx b/app/useWobble3D/page.tsx
deleted file mode 100644
index 420e310a..00000000
--- a/app/useWobble3D/page.tsx
+++ /dev/null
@@ -1,18 +0,0 @@
-import { ShaderFx } from "../ShaderFx";
-import { Playground } from "./Playground";
-
-export default function Page() {
- return (
-
- );
-}
diff --git a/css/article.module.scss b/css/article.module.scss
new file mode 100644
index 00000000..658504ae
--- /dev/null
+++ b/css/article.module.scss
@@ -0,0 +1,285 @@
+@use "@/css" as *;
+
+@mixin quoteIcon($color) {
+ background-image: url('data:image/svg+xml;utf8, ');
+}
+@function re-color($code) {
+ @return str-slice("#{$code}", 2);
+}
+
+.article {
+ position: relative;
+ z-index: 10;
+ > *:first-child {
+ margin-top: 0 !important;
+ }
+
+ > *:last-child {
+ margin-bottom: 0 !important;
+ }
+
+ //color
+ --color-txt: currentColor;
+ --color-bg: #{$color-grey2};
+ --color-key: #{$color-key};
+
+ //line-height
+ --title_lineHeight: #{$leading-snug};
+ --text_lineHeight: #{$leading-loose};
+ //margin
+ --title_margin: #{$spacing-6 0 $spacing-1};
+ --title_margin_s: #{$spacing-4 0 $spacing-1};
+ --text_margin: #{$spacing-1 0};
+ --block_margin: #{$spacing-6 0};
+ @include mq(md) {
+ --title_margin: #{$spacing-4 0 $spacing-1};
+ --title_margin_s: #{$spacing-3 0 $spacing-1};
+ --text_margin: #{$spacing-1 0};
+ --block_margin: #{$spacing-4 0};
+ }
+ //fons size
+ --title_large: 24rem;
+ --title_medium: 20rem;
+ --title_small: 18rem;
+ --text_normal: 15rem;
+ --text_small: 14rem;
+ @include mq(md) {
+ --title_large: 20rem;
+ --title_medium: 18rem;
+ --title_small: 16rem;
+ --text_normal: 13rem;
+ --text_small: 12rem;
+ }
+
+ color: var(--color-txt);
+
+ h1,
+ h2 {
+ font-size: var(--title_large);
+ font-weight: bold;
+ position: relative;
+ line-height: var(--title_lineHeight);
+ margin: var(--title_margin);
+
+ // border left
+ padding-left: $spacing-3;
+ &:before {
+ position: absolute;
+ top: 0;
+ left: 0;
+ content: "";
+ width: $spacing-half;
+ height: 100%;
+ background-color: var(--color-key);
+ border-radius: $spacing-mini;
+ }
+ }
+
+ h3 {
+ font-size: var(--title_medium);
+ font-weight: bold;
+ position: relative;
+ line-height: var(--title_lineHeight);
+ margin: var(--title_margin);
+ }
+
+ h4,
+ h5,
+ h6 {
+ font-size: var(--title_small);
+ font-weight: bold;
+ line-height: var(--title_lineHeight);
+ margin: var(--title_margin_s);
+ }
+
+ a {
+ display: inline;
+ text-decoration: underline;
+ color: var(--color-key);
+ @include transition;
+ transition-property: opacity;
+ @include hover {
+ opacity: 0.7;
+ }
+ }
+
+ p {
+ font-size: var(--text_normal);
+ line-height: var(--text_lineHeight);
+ margin: var(--text_margin);
+ }
+
+ ul,
+ ol {
+ margin: var(--block_margin);
+
+ li {
+ font-size: var(--text_normal);
+ list-style: none;
+ line-height: var(--title_lineHeight);
+
+ p {
+ margin: 0;
+ }
+
+ &:not(:first-child) {
+ margin-top: $spacing-2;
+ }
+
+ display: flex;
+ gap: $spacing-mini;
+ }
+ }
+
+ ul {
+ li {
+ align-items: flex-start;
+ &::before {
+ position: relative;
+ top: 1.3ch;
+ content: "";
+ width: 4rem;
+ height: 4rem;
+ background-color: var(--color-key);
+ border-radius: 50%;
+ }
+ }
+ }
+
+ ol {
+ li {
+ counter-increment: listNum;
+
+ &::before {
+ content: "" counter(listNum) ".";
+ }
+ }
+ }
+
+ blockquote {
+ font-size: var(--text_normal);
+ padding: $spacing-3 $spacing-8;
+ position: relative;
+ margin: var(--block_margin);
+ line-height: var(--text_lineHeight);
+
+ @include mq(sm) {
+ padding-right: $spacing-1;
+ padding-left: $spacing-6;
+ }
+
+ &:before {
+ margin: auto;
+ top: $spacing-3;
+ left: $spacing-2;
+ content: "";
+ position: absolute;
+ width: 32rem;
+ height: 27rem;
+ @include bg_img_contain;
+ z-index: 1;
+ @include quoteIcon(re-color($color-key));
+ @include mq(sm) {
+ left: $spacing-1;
+ width: 24rem;
+ }
+ }
+ &:after {
+ border-radius: 4rem;
+ position: absolute;
+ content: "";
+ width: 100%;
+ height: 100%;
+ background-color: var(--color-key);
+ opacity: 0.24;
+ z-index: -1;
+ top: 0;
+ left: 0;
+ }
+
+ p {
+ margin: 0;
+ }
+
+ cite {
+ font-size: var(--text_small);
+ opacity: 0.48;
+ width: 100%;
+ text-align: right;
+ display: inline-block;
+ margin-top: $spacing-1;
+ line-height: var(--title_lineHeight);
+
+ a {
+ display: inline;
+ }
+ }
+ }
+
+ table {
+ border-collapse: collapse;
+ font-size: var(--text_normal);
+ width: 100%;
+ margin: var(--block_margin);
+
+ td,
+ th {
+ padding: $spacing-1;
+ text-align: left;
+ line-height: var(--title_lineHeight);
+ border-bottom: 1px solid var(--color-key);
+ }
+
+ th {
+ font-weight: bold;
+ min-width: $spacing-12;
+ }
+ }
+
+ img {
+ display: block;
+ margin: var(--block_margin);
+ }
+
+ figure {
+ margin: var(--block_margin);
+
+ img {
+ margin: 0;
+ }
+
+ figcaption {
+ font-size: var(--text_small);
+ text-align: center;
+ margin-top: $spacing-1;
+ line-height: var(--title_lineHeight);
+ }
+ }
+
+ strong {
+ font-weight: bold;
+ }
+
+ em {
+ font-style: italic;
+ }
+
+ u {
+ text-decoration: underline;
+ }
+
+ s {
+ text-decoration: line-through;
+ }
+
+ code {
+ background-color: var(--color-key);
+ border-radius: 4rem;
+ padding: 4rem 8rem;
+ }
+
+ hr {
+ border-top: 2px solid var(--color-txt);
+ margin: var(--block_margin);
+ }
+}
diff --git a/css/easing.scss b/css/easing.scss
new file mode 100644
index 00000000..da9e28d6
--- /dev/null
+++ b/css/easing.scss
@@ -0,0 +1,975 @@
+$easeInSine: cubic-bezier(0.12, 0, 0.39, 0);
+$easeOutSine: cubic-bezier(0.61, 1, 0.88, 1);
+$easeInOutSine: cubic-bezier(0.37, 0, 0.63, 1);
+$easeOutCubic: cubic-bezier(0.33, 1, 0.68, 1);
+$easeInCubic: cubic-bezier(0.32, 0, 0.67, 0);
+$easeInOutCubic: cubic-bezier(0.65, 0, 0.35, 1);
+$easeInQuint: cubic-bezier(0.64, 0, 0.78, 0);
+$easeOutQuint: cubic-bezier(0.22, 1, 0.36, 1);
+$easeInOutQuint: cubic-bezier(0.83, 0, 0.17, 1);
+$easeInCirc: cubic-bezier(0.55, 0, 1, 0.45);
+$easeOutCirc: cubic-bezier(0, 0.55, 0.45, 1);
+$easeInOutCirc: cubic-bezier(0.85, 0, 0.15, 1);
+@mixin easeInElastic {
+ @keyframes scale-easeInElastic {
+ 0% {
+ transform: scale(1);
+ }
+ 4% {
+ transform: scale(1);
+ }
+ 8% {
+ transform: scale(1);
+ }
+ 14% {
+ transform: scale(1);
+ }
+
+ 18% {
+ transform: scale(1);
+ }
+
+ 26% {
+ transform: scale(1.01);
+ }
+
+ 28% {
+ transform: scale(1.01);
+ }
+
+ 40% {
+ transform: scale(0.98);
+ }
+
+ 42% {
+ transform: scale(0.98);
+ }
+
+ 56% {
+ transform: scale(1.05);
+ }
+
+ 58% {
+ transform: scale(1.04);
+ }
+
+ 72% {
+ transform: scale(0.87);
+ }
+
+ 86% {
+ transform: scale(1.37);
+ }
+
+ 100% {
+ transform: scale(0);
+ }
+ }
+ @keyframes undefined-easeInElastic {
+ 0% {
+ transform: translateX(0%);
+ }
+
+ 4% {
+ transform: translateX(-0.04%);
+ }
+
+ 8% {
+ transform: translateX(-0.16%);
+ }
+
+ 14% {
+ transform: translateX(-0.17%);
+ }
+
+ 18% {
+ transform: translateX(0.04%);
+ }
+
+ 26% {
+ transform: translateX(0.58%);
+ }
+
+ 28% {
+ transform: translateX(0.55%);
+ }
+
+ 40% {
+ transform: translateX(-1.56%);
+ }
+
+ 42% {
+ transform: translateX(-1.64%);
+ }
+
+ 56% {
+ transform: translateX(4.63%);
+ }
+
+ 58% {
+ transform: translateX(4.4%);
+ }
+
+ 72% {
+ transform: translateX(-13.12%);
+ }
+
+ 86% {
+ transform: translateX(37.06%);
+ }
+
+ 100% {
+ transform: translateX(-100%);
+ }
+ }
+ @keyframes opacity-easeInElastic {
+ 0% {
+ opacity: 1;
+ }
+
+ 4% {
+ opacity: 1;
+ }
+
+ 8% {
+ opacity: 1;
+ }
+
+ 14% {
+ opacity: 1;
+ }
+
+ 18% {
+ opacity: 1;
+ }
+
+ 26% {
+ opacity: 1.01;
+ }
+
+ 28% {
+ opacity: 1.01;
+ }
+
+ 40% {
+ opacity: 0.98;
+ }
+
+ 42% {
+ opacity: 0.98;
+ }
+
+ 56% {
+ opacity: 1.05;
+ }
+
+ 58% {
+ opacity: 1.04;
+ }
+
+ 72% {
+ opacity: 0.87;
+ }
+
+ 86% {
+ opacity: 1.37;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+ }
+}
+@mixin easeOutElastic {
+ @keyframes scale-easeOutElastic {
+ 0% {
+ transform: scale(1);
+ }
+
+ 16% {
+ transform: scale(-0.32);
+ }
+
+ 28% {
+ transform: scale(0.13);
+ }
+
+ 44% {
+ transform: scale(-0.05);
+ }
+
+ 59% {
+ transform: scale(0.02);
+ }
+
+ 73% {
+ transform: scale(-0.01);
+ }
+
+ 88% {
+ transform: scale(0);
+ }
+
+ 100% {
+ transform: scale(0);
+ }
+ }
+ @keyframes undefined-easeOutElastic {
+ 0% {
+ transform: translateX(0%);
+ }
+
+ 16% {
+ transform: translateX(-132.27%);
+ }
+
+ 28% {
+ transform: translateX(-86.88%);
+ }
+
+ 44% {
+ transform: translateX(-104.63%);
+ }
+
+ 59% {
+ transform: translateX(-98.36%);
+ }
+
+ 73% {
+ transform: translateX(-100.58%);
+ }
+
+ 88% {
+ transform: translateX(-99.8%);
+ }
+
+ 100% {
+ transform: translateX(-100%);
+ }
+ }
+ @keyframes opacity-easeOutElastic {
+ 0% {
+ opacity: 1;
+ }
+
+ 16% {
+ opacity: -0.32;
+ }
+
+ 28% {
+ opacity: 0.13;
+ }
+
+ 44% {
+ opacity: -0.05;
+ }
+
+ 59% {
+ opacity: 0.02;
+ }
+
+ 73% {
+ opacity: -0.01;
+ }
+
+ 88% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+ }
+}
+@mixin easeInOutElastic {
+ @keyframes scale-easeInOutElastic {
+ 0% {
+ transform: scale(1);
+ }
+
+ 4% {
+ transform: scale(1);
+ }
+
+ 8% {
+ transform: scale(1);
+ }
+
+ 18% {
+ transform: scale(1.01);
+ }
+
+ 20% {
+ transform: scale(1);
+ }
+
+ 28% {
+ transform: scale(0.98);
+ }
+
+ 30% {
+ transform: scale(0.98);
+ }
+
+ 38% {
+ transform: scale(1.09);
+ }
+
+ 40% {
+ transform: scale(1.12);
+ }
+
+ 60% {
+ transform: scale(-0.12);
+ }
+
+ 62% {
+ transform: scale(-0.09);
+ }
+
+ 70% {
+ transform: scale(0.02);
+ }
+
+ 72% {
+ transform: scale(0.02);
+ }
+
+ 80% {
+ transform: scale(0);
+ }
+
+ 82% {
+ transform: scale(-0.01);
+ }
+
+ 90% {
+ transform: scale(0);
+ }
+
+ 92% {
+ transform: scale(0);
+ }
+
+ 100% {
+ transform: scale(0);
+ }
+ }
+ @keyframes undefined-easeInOutElastic {
+ 0% {
+ transform: translateX(0%);
+ }
+
+ 4% {
+ transform: translateX(-0.08%);
+ }
+
+ 8% {
+ transform: translateX(-0.1%);
+ }
+
+ 18% {
+ transform: translateX(0.52%);
+ }
+
+ 20% {
+ transform: translateX(0.39%);
+ }
+
+ 28% {
+ transform: translateX(-2.35%);
+ }
+
+ 30% {
+ transform: translateX(-2.39%);
+ }
+
+ 38% {
+ transform: translateX(9.27%);
+ }
+
+ 40% {
+ transform: translateX(11.75%);
+ }
+
+ 60% {
+ transform: translateX(-111.75%);
+ }
+
+ 62% {
+ transform: translateX(-109.27%);
+ }
+
+ 70% {
+ transform: translateX(-97.61%);
+ }
+
+ 72% {
+ transform: translateX(-97.65%);
+ }
+
+ 80% {
+ transform: translateX(-100.39%);
+ }
+
+ 82% {
+ transform: translateX(-100.52%);
+ }
+
+ 90% {
+ transform: translateX(-99.97%);
+ }
+
+ 92% {
+ transform: translateX(-99.9%);
+ }
+
+ 100% {
+ transform: translateX(-100%);
+ }
+ }
+ @keyframes opacity-easeInOutElastic {
+ 0% {
+ opacity: 1;
+ }
+
+ 4% {
+ opacity: 1;
+ }
+
+ 8% {
+ opacity: 1;
+ }
+
+ 18% {
+ opacity: 1.01;
+ }
+
+ 20% {
+ opacity: 1;
+ }
+
+ 28% {
+ opacity: 0.98;
+ }
+
+ 30% {
+ opacity: 0.98;
+ }
+
+ 38% {
+ opacity: 1.09;
+ }
+
+ 40% {
+ opacity: 1.12;
+ }
+
+ 60% {
+ opacity: -0.12;
+ }
+
+ 62% {
+ opacity: -0.09;
+ }
+
+ 70% {
+ opacity: 0.02;
+ }
+
+ 72% {
+ opacity: 0.02;
+ }
+
+ 80% {
+ opacity: 0;
+ }
+
+ 82% {
+ opacity: -0.01;
+ }
+
+ 90% {
+ opacity: 0;
+ }
+
+ 92% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+ }
+}
+$easeInQuad: cubic-bezier(0.11, 0, 0.5, 0);
+$easeOutQuad: cubic-bezier(0.5, 1, 0.89, 1);
+$easeInOutQuad: cubic-bezier(0.45, 0, 0.55, 1);
+$easeInQuart: cubic-bezier(0.5, 0, 0.75, 0);
+$easeOutQuart: cubic-bezier(0.25, 1, 0.5, 1);
+$easeInOutQuart: cubic-bezier(0.76, 0, 0.24, 1);
+$easeInExpo: cubic-bezier(0.7, 0, 0.84, 0);
+$easeOutExpo: cubic-bezier(0.16, 1, 0.3, 1);
+$easeInOutExpo: cubic-bezier(0.87, 0, 0.13, 1);
+$easeInBack: cubic-bezier(0.36, 0, 0.66, -0.56);
+$easeOutBack: cubic-bezier(0.34, 1.56, 0.64, 1);
+$easeInOutBack: cubic-bezier(0.68, -0.6, 0.32, 1.6);
+@mixin easeInBounce {
+ @keyframes scale-easeInBounce {
+ 0% {
+ transform: scale(1);
+ }
+
+ 4% {
+ transform: scale(0.98);
+ }
+
+ 8% {
+ transform: scale(0.99);
+ }
+
+ 18% {
+ transform: scale(0.94);
+ }
+
+ 26% {
+ transform: scale(0.98);
+ }
+
+ 46% {
+ transform: scale(0.75);
+ }
+
+ 64% {
+ transform: scale(0.98);
+ }
+
+ 76% {
+ transform: scale(0.44);
+ }
+
+ 88% {
+ transform: scale(0.11);
+ }
+
+ 100% {
+ transform: scale(0);
+ }
+ }
+ @keyframes undefined-easeInBounce {
+ 0% {
+ transform: translateX(0%);
+ }
+
+ 4% {
+ transform: translateX(-1.54%);
+ }
+
+ 8% {
+ transform: translateX(-0.66%);
+ }
+
+ 18% {
+ transform: translateX(-6.25%);
+ }
+
+ 26% {
+ transform: translateX(-1.63%);
+ }
+
+ 46% {
+ transform: translateX(-24.98%);
+ }
+
+ 64% {
+ transform: translateX(-1.99%);
+ }
+
+ 76% {
+ transform: translateX(-56.44%);
+ }
+
+ 88% {
+ transform: translateX(-89.11%);
+ }
+
+ 100% {
+ transform: translateX(-100%);
+ }
+ }
+ @keyframes opacity-easeInBounce {
+ 0% {
+ opacity: 1;
+ }
+
+ 4% {
+ opacity: 0.98;
+ }
+
+ 8% {
+ opacity: 0.99;
+ }
+
+ 18% {
+ opacity: 0.94;
+ }
+
+ 26% {
+ opacity: 0.98;
+ }
+
+ 46% {
+ opacity: 0.75;
+ }
+
+ 64% {
+ opacity: 0.98;
+ }
+
+ 76% {
+ opacity: 0.44;
+ }
+
+ 88% {
+ opacity: 0.11;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+ }
+}
+@mixin easeOutBounce {
+ @keyframes scale-easeOutBounce {
+ 0% {
+ transform: scale(1);
+ }
+
+ 12% {
+ transform: scale(0.89);
+ }
+
+ 24% {
+ transform: scale(0.56);
+ }
+
+ 36% {
+ transform: scale(0.02);
+ }
+
+ 54% {
+ transform: scale(0.25);
+ }
+
+ 74% {
+ transform: scale(0.02);
+ }
+
+ 82% {
+ transform: scale(0.06);
+ }
+
+ 92% {
+ transform: scale(0.01);
+ }
+
+ 96% {
+ transform: scale(0.02);
+ }
+
+ 100% {
+ transform: scale(0);
+ }
+ }
+ @keyframes undefined-easeOutBounce {
+ 0% {
+ transform: translateX(0%);
+ }
+
+ 12% {
+ transform: translateX(-10.89%);
+ }
+
+ 24% {
+ transform: translateX(-43.56%);
+ }
+
+ 36% {
+ transform: translateX(-98.01%);
+ }
+
+ 54% {
+ transform: translateX(-75.02%);
+ }
+
+ 74% {
+ transform: translateX(-98.37%);
+ }
+
+ 82% {
+ transform: translateX(-93.75%);
+ }
+
+ 92% {
+ transform: translateX(-99.34%);
+ }
+
+ 96% {
+ transform: translateX(-98.46%);
+ }
+
+ 100% {
+ transform: translateX(-100%);
+ }
+ }
+ @keyframes opacity-easeOutBounce {
+ 0% {
+ opacity: 1;
+ }
+
+ 12% {
+ opacity: 0.89;
+ }
+
+ 24% {
+ opacity: 0.56;
+ }
+
+ 36% {
+ opacity: 0.02;
+ }
+
+ 54% {
+ opacity: 0.25;
+ }
+
+ 74% {
+ opacity: 0.02;
+ }
+
+ 82% {
+ opacity: 0.06;
+ }
+
+ 92% {
+ opacity: 0.01;
+ }
+
+ 96% {
+ opacity: 0.02;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+ }
+}
+@mixin easeInOutBounce {
+ @keyframes scale-easeInOutBounce {
+ 0% {
+ transform: scale(1);
+ }
+
+ 2% {
+ transform: scale(0.99);
+ }
+
+ 4% {
+ transform: scale(1);
+ }
+
+ 10% {
+ transform: scale(0.97);
+ }
+
+ 14% {
+ transform: scale(0.99);
+ }
+
+ 22% {
+ transform: scale(0.88);
+ }
+
+ 32% {
+ transform: scale(0.99);
+ }
+
+ 42% {
+ transform: scale(0.6);
+ }
+
+ 50% {
+ transform: scale(0.5);
+ }
+
+ 58% {
+ transform: scale(0.4);
+ }
+
+ 68% {
+ transform: scale(0.01);
+ }
+
+ 78% {
+ transform: scale(0.12);
+ }
+
+ 86% {
+ transform: scale(0.01);
+ }
+
+ 90% {
+ transform: scale(0.03);
+ }
+
+ 96% {
+ transform: scale(0);
+ }
+
+ 98% {
+ transform: scale(0.01);
+ }
+
+ 100% {
+ transform: scale(0);
+ }
+ }
+ @keyframes undefined-easeInOutBounce {
+ 0% {
+ transform: translateX(0%);
+ }
+
+ 2% {
+ transform: translateX(-0.77%);
+ }
+
+ 4% {
+ transform: translateX(-0.33%);
+ }
+
+ 10% {
+ transform: translateX(-3%);
+ }
+
+ 14% {
+ transform: translateX(-0.98%);
+ }
+
+ 22% {
+ transform: translateX(-12.42%);
+ }
+
+ 32% {
+ transform: translateX(-1%);
+ }
+
+ 42% {
+ transform: translateX(-40.32%);
+ }
+
+ 50% {
+ transform: translateX(-50%);
+ }
+
+ 58% {
+ transform: translateX(-59.68%);
+ }
+
+ 68% {
+ transform: translateX(-99.01%);
+ }
+
+ 78% {
+ transform: translateX(-87.58%);
+ }
+
+ 86% {
+ transform: translateX(-99.02%);
+ }
+
+ 90% {
+ transform: translateX(-97%);
+ }
+
+ 96% {
+ transform: translateX(-99.67%);
+ }
+
+ 98% {
+ transform: translateX(-99.23%);
+ }
+
+ 100% {
+ transform: translateX(-100%);
+ }
+ }
+ @keyframes opacity-easeInOutBounce {
+ 0% {
+ opacity: 1;
+ }
+
+ 2% {
+ opacity: 0.99;
+ }
+
+ 4% {
+ opacity: 1;
+ }
+
+ 10% {
+ opacity: 0.97;
+ }
+
+ 14% {
+ opacity: 0.99;
+ }
+
+ 22% {
+ opacity: 0.88;
+ }
+
+ 32% {
+ opacity: 0.99;
+ }
+
+ 42% {
+ opacity: 0.6;
+ }
+
+ 50% {
+ opacity: 0.5;
+ }
+
+ 58% {
+ opacity: 0.4;
+ }
+
+ 68% {
+ opacity: 0.01;
+ }
+
+ 78% {
+ opacity: 0.12;
+ }
+
+ 86% {
+ opacity: 0.01;
+ }
+
+ 90% {
+ opacity: 0.03;
+ }
+
+ 96% {
+ opacity: 0;
+ }
+
+ 98% {
+ opacity: 0.01;
+ }
+
+ 100% {
+ opacity: 0;
+ }
+ }
+}
diff --git a/css/global.scss b/css/global.scss
new file mode 100644
index 00000000..b55c16b2
--- /dev/null
+++ b/css/global.scss
@@ -0,0 +1,220 @@
+@use "./index.scss" as *;
+
+:root {
+ /*===============================================
+ ①liquid design
+ ===============================================*/
+ --liquid-lgDesignRatio: #{$lg-design-width};
+ --liquid-mdDesignRatio: #{$md-design-width};
+ --liquid-smDesignRatio: #{$sm-design-width};
+ --liquid-htmlroot: calc(100vw / var(--liquid-lgDesignRatio));
+ --liquid-bodyroot: 16rem;
+
+ @include mq(md) {
+ --liquid-htmlroot: calc(100vw / var(--liquid-mdDesignRatio));
+ }
+
+ @include mq(sm) {
+ --liquid-htmlroot: calc(100vw / var(--liquid-smDesignRatio));
+ }
+
+ /*===============================================
+ ②solid design
+ ===============================================*/
+ --solid-root: 16px;
+
+ /*===============================================
+ ③mobilefirst design
+ ===============================================*/
+ --mobile-DesignWidth: #{$mobile-design-width};
+ --mobile-ContentsWidth: #{$mobile-design-width};
+ --mobile-ContentsRatio: var(--mobile-ContentsWidth) /
+ var(--mobile-DesignWidth);
+ --mobile-root: min(
+ 16px * var(--mobile-ContentsRatio),
+ 16 * 100 / var(--mobile-DesignWidth) * 1vw
+ );
+
+ /*===============================================
+ css vars
+ ===============================================*/
+ --z-index-header: 9999;
+ --z-index-menu: 10000;
+ --z-index-menuButton: 10001;
+ --header-height: 80rem;
+}
+
+/*===============================================
+html body
+===============================================*/
+
+* {
+ padding: 0;
+ margin: 0;
+}
+
+html,
+body {
+ max-width: 100vw;
+}
+
+body {
+ background-color: $color-bg;
+ color: $color-txt;
+ line-height: $leading-none;
+ transition: opacity #{$duration-standardAccelerate + "s"} ease-in-out;
+ font-style: normal;
+ font-weight: normal;
+ overflow-wrap: break-word;
+ font-feature-settings: "palt";
+ letter-spacing: 0;
+ overscroll-behavior-y: none;
+}
+
+html {
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ scroll-behavior: auto;
+ scrollbar-gutter: stable;
+ user-select: none;
+ // Disabling pinch improves performance in WebGL projects.
+ touch-action: pan-x pan-y;
+
+ //liquid
+ @if $designRoot==1 {
+ font-size: var(--liquid-htmlroot);
+
+ body {
+ font-size: var(--liquid-bodyroot);
+ }
+ }
+
+ //solid
+ @else if $designRoot==2 {
+ font-size: var(--solid-root);
+ }
+
+ //mobile
+ @else if $designRoot==3 {
+ font-size: var(--mobile-root);
+ }
+}
+
+//set opacity to 1 after font is loaded
+html.fonts-loaded body {
+ opacity: 1 !important;
+}
+
+/*===============================================
+UI
+===============================================*/
+a,
+button {
+ display: block;
+ border: none;
+ outline: none;
+ text-decoration: none;
+ background: none;
+ > * {
+ pointer-events: none;
+ }
+
+ &:focus:not(:fous-visible) {
+ outline: none;
+ }
+
+ img {
+ border: none;
+ }
+}
+
+a,
+button,
+input,
+label,
+textarea,
+select {
+ color: inherit;
+ pointer-events: auto;
+ cursor: pointer;
+ @media (hover: none) {
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ }
+
+ &:focus-visible {
+ outline: $color-key solid 2px;
+
+ @media (hover: none) {
+ outline: none;
+ }
+ }
+}
+
+img {
+ border: 0;
+ height: auto;
+ pointer-events: none;
+ vertical-align: middle;
+ width: 100%;
+}
+
+picture {
+ display: block;
+}
+
+iframe {
+ width: 100%;
+}
+
+ul,
+ol,
+li {
+ list-style: none;
+}
+
+svg {
+ overflow: visible;
+}
+
+/*===============================================
+br
+===============================================*/
+br {
+ &.lg {
+ @include mq(md) {
+ display: none;
+ }
+ }
+ &.lgmd {
+ @include mq(sm) {
+ display: none;
+ }
+ }
+ &.mdsm {
+ display: none;
+ @include mq(md) {
+ display: block;
+ }
+ }
+ &.md {
+ display: none;
+ @include mq(md) {
+ display: block;
+ }
+ @include mq(sm) {
+ display: none;
+ }
+ }
+ &.sm {
+ display: none;
+ @include mq(sm) {
+ display: block;
+ }
+ }
+}
+
+/*===============================================
+gui
+===============================================*/
+.lil-gui {
+ right: 0 !important;
+}
diff --git a/css/index.scss b/css/index.scss
new file mode 100644
index 00000000..6e2ce30c
--- /dev/null
+++ b/css/index.scss
@@ -0,0 +1,205 @@
+@use "sass:math";
+@use "./easing.scss" as *;
+
+/*===============================================
+designRoot
+===============================================*/
+$designRoot: 1;
+// device
+$sm-device: 560px;
+$md-device: 960px;
+$lg-device: 1200px;
+$lg-design-width: 1440;
+$md-design-width: 750;
+$sm-design-width: 375;
+$lg-design-height: 780;
+$sm-design-height: 812;
+$mobile-design-width: 750;
+
+/*===============================================
+unit
+===============================================*/
+$unit: inherit;
+
+//unit
+@if $designRoot==1 {
+ $unit: rem;
+} @else {
+ $unit: px;
+}
+
+/*===============================================
+duration
+===============================================*/
+$duration-strong: 1.2s;
+$duration-strongDecelerate: 1s;
+$duration-strongAccelerate: 0.8s;
+$duration-emphasized: 0.5s;
+$duration-emphasizedDecelerate: 0.4s;
+$duration-emphasizedAccelerate: 0.2s;
+$duration-standard: 0.3s;
+$duration-standardDecelerate: 0.25s;
+$duration-standardAccelerate: 0.2s;
+
+/*===============================================
+spacing
+===============================================*/
+$spacing-0: if($designRoot==1, 0, 0);
+$spacing-half: if($designRoot==1, 8rem, 8px);
+$spacing-mini: if($designRoot==1, 12rem, 12px);
+$spacing-1: if($designRoot==1, 16rem, 16px);
+$spacing-2: if($designRoot==1, 24rem, 24px);
+$spacing-3: if($designRoot==1, 32rem, 32px);
+$spacing-4: if($designRoot==1, 40rem, 40px);
+$spacing-4half: if($designRoot==1, 48rem, 48px);
+$spacing-5: if($designRoot==1, 56rem, 56px);
+$spacing-6: if($designRoot==1, 64rem, 64px);
+$spacing-7: if($designRoot==1, 72rem, 72px);
+$spacing-8: if($designRoot==1, 80rem, 80px);
+$spacing-8half: if($designRoot==1, 88rem, 88px);
+$spacing-9: if($designRoot==1, 96rem, 96px);
+$spacing-10: if($designRoot==1, 104rem, 104px);
+$spacing-11: if($designRoot==1, 112rem, 112px);
+$spacing-12: if($designRoot==1, 120rem, 120px);
+
+/*===============================================
+inner
+===============================================*/
+$inner-outer: 1360rem;
+$inner-wide: 1280rem;
+$inner-default: 1128rem;
+$inner-narrow: 960rem;
+$inner-padding: $spacing-3;
+
+/*===============================================
+font
+===============================================*/
+// line-height @include lineHeightCrop($leading-loose);
+$leading-none: 1 !default;
+$leading-x-tight: 1.1 !default;
+$leading-tight: 1.3 !default;
+$leading-snug: 1.6 !default;
+$leading-normal: 1.7 !default;
+$leading-relaxed: 1.8 !default;
+$leading-loose: 2 !default;
+$leading-x-loose: 2.2 !default;
+
+/*===============================================
+color
+===============================================*/
+//brandColor
+$color-line: #00c300;
+$color-yahoo: #ff0027;
+$color-twitter: #1da1f2;
+$color-facebook: #3b5998;
+$color-insta: #e1306c;
+$FunTech: #b84f0a;
+
+//colorRegulation
+$color-txt: #ffffff;
+$color-key: #b84f0a;
+$color-bg: #000000;
+$color-grey0: #111111;
+$color-grey1: #222222;
+$color-grey2: #a5a5a5;
+$color-grey3: #d9d9d9;
+$color-grey4: #1e1e1e;
+$color-grey5: #121212;
+
+/*===============================================
+Media Query
+===============================================*/
+$breakpoints: (
+ "sm": "screen and (max-width:" $sm-device ")",
+ "md": "screen and (max-width:" $md-device ")",
+ "lg": "screen and (max-width:" $lg-device ")",
+) !default;
+
+@mixin mq($breakpoint) {
+ @media #{map-get($breakpoints, $breakpoint)} {
+ @content;
+ }
+}
+
+/*===============================================
+Disable hover effects when on mobile
+If $parent is set, hover can be specified for the parent element.
+===============================================*/
+@mixin hover($parent: null) {
+ @media (hover: none) {
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ }
+
+ @media (-ms-high-contrast: none),
+ (-ms-high-contrast: active),
+ (-moz-touch-enabled: 0),
+ (hover: hover) {
+ @if $parent == null {
+ &:hover,
+ &:focus-visible {
+ @content;
+ }
+ } @else {
+ #{$parent}:hover &,
+ #{$parent}:focus-visible & {
+ @content;
+ }
+ }
+ }
+}
+
+/*===============================================
+transition
+power1 : quad
+power2 : cubic
+power3 : quart
+power4 : quint
+===============================================*/
+@mixin transition($dur: all $duration-standard) {
+ transition: $dur;
+ transition-timing-function: $easeOutQuart;
+}
+
+/*===============================================
+placeholder
+===============================================*/
+
+@mixin placeholder($color) {
+ &::placeholder {
+ color: $color;
+ }
+
+ &:-ms-input-placeholder {
+ color: $color;
+ }
+
+ &::-ms-input-placeholder {
+ color: $color;
+ }
+}
+
+/*===============================================
+background image
+===============================================*/
+@mixin bg_img_cover {
+ background-repeat: no-repeat;
+ background-size: cover;
+ background-position: center;
+}
+
+@mixin bg_img_contain {
+ background-repeat: no-repeat;
+ background-size: contain;
+ background-position: center;
+}
+
+/*===============================================
+fill
+===============================================*/
+@mixin fill {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ inset: 0;
+ color: transparent;
+}
diff --git a/css/reset.css b/css/reset.css
new file mode 100644
index 00000000..81a6468c
--- /dev/null
+++ b/css/reset.css
@@ -0,0 +1,116 @@
+/***
+ The new CSS reset - version 1.11.2 (last updated 15.11.2023)
+ GitHub page: https://github.com/elad2412/the-new-css-reset
+***/
+
+/*
+ Remove all the styles of the "User-Agent-Stylesheet", except for the 'display' property
+ - The "symbol *" part is to solve Firefox SVG sprite bug
+ - The "html" element is excluded, otherwise a bug in Chrome breaks the CSS hyphens property (https://github.com/elad2412/the-new-css-reset/issues/36)
+ */
+*:where(
+ :not(html, iframe, canvas, img, svg, video, audio):not(svg *, symbol *)
+ ) {
+ all: unset;
+ display: revert;
+}
+
+/* Preferred box-sizing value */
+*,
+*::before,
+*::after {
+ box-sizing: border-box;
+}
+
+/* Fix mobile Safari increase font-size on landscape mode */
+html {
+ -moz-text-size-adjust: none;
+ -webkit-text-size-adjust: none;
+ text-size-adjust: none;
+}
+
+/* Reapply the pointer cursor for anchor tags */
+a,
+button {
+ cursor: revert;
+}
+
+/* Remove list styles (bullets/numbers) */
+ol,
+ul,
+menu,
+summary {
+ list-style: none;
+}
+
+/* For images to not be able to exceed their container */
+img {
+ max-inline-size: 100%;
+ max-block-size: 100%;
+}
+
+/* removes spacing between cells in tables */
+table {
+ border-collapse: collapse;
+}
+
+/* Safari - solving issue when using user-select:none on the text input doesn't working */
+input,
+textarea {
+ -webkit-user-select: auto;
+}
+
+/* revert the 'white-space' property for textarea elements on Safari */
+textarea {
+ white-space: revert;
+}
+
+/* minimum style to allow to style meter element */
+meter {
+ -webkit-appearance: revert;
+ appearance: revert;
+}
+
+/* preformatted text - use only for this feature */
+:where(pre) {
+ all: revert;
+ box-sizing: border-box;
+}
+
+/* reset default text opacity of input placeholder */
+::placeholder {
+ color: unset;
+}
+
+/* fix the feature of 'hidden' attribute.
+ display:revert; revert to element instead of attribute */
+:where([hidden]) {
+ display: none;
+}
+
+/* revert for bug in Chromium browsers
+ - fix for the content editable attribute will work properly.
+ - webkit-user-select: auto; added for Safari in case of using user-select:none on wrapper element*/
+:where([contenteditable]:not([contenteditable="false"])) {
+ -moz-user-modify: read-write;
+ -webkit-user-modify: read-write;
+ overflow-wrap: break-word;
+ -webkit-line-break: after-white-space;
+ -webkit-user-select: auto;
+}
+
+/* apply back the draggable feature - exist only in Chromium and Safari */
+:where([draggable="true"]) {
+ -webkit-user-drag: element;
+}
+
+/* Revert Modal native behavior */
+:where(dialog:modal) {
+ all: revert;
+ box-sizing: border-box;
+}
+
+/* Remove details summary webkit styles */
+::-webkit-details-marker {
+ display: none;
+}
diff --git a/next.config.js b/next.config.js
index 91cccabe..aff03425 100644
--- a/next.config.js
+++ b/next.config.js
@@ -1,14 +1,20 @@
/** @type {import('next').NextConfig} */
+const path = require("path");
const nextConfig = {
- // basePath: "/takuma/out",
- // output: "export",
- webpack: (config, { isServer }) => {
+ webpack: (config) => {
// GLSLファイル用のルールを追加
config.module.rules.push({
test: /\.(glsl|vs|fs|vert|frag)$/,
exclude: /node_modules/,
use: ["raw-loader", "glslify-loader"],
});
+
+ // project rootのthreeを参照するように設定
+ config.resolve.alias = {
+ ...config.resolve.alias,
+ three: path.resolve(__dirname, "node_modules/three"),
+ };
+
return config;
},
};
diff --git a/package-lock.json b/package-lock.json
index 643f5416..64fa46d0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,9 +8,9 @@
"name": "use-shader-fx",
"version": "0.1.0",
"dependencies": {
- "@funtech-inc/spice": "^1.2.18",
- "@react-three/drei": "^9.105.6",
- "@react-three/fiber": "^8.16.6",
+ "@funtech-inc/spice": "^1.2.113",
+ "@react-three/drei": "^9.122.0",
+ "@react-three/fiber": "^8.18.0",
"@types/node": "20.5.6",
"@types/react": "18.2.21",
"@types/react-dom": "18.2.7",
@@ -19,15346 +19,3931 @@
"eslint-config-next": "13.4.19",
"glslify-loader": "^2.0.0",
"gsap": "^3.12.2",
- "meshline": "^3.1.6",
- "next": "^14.2.3",
+ "next": "^14.2.16",
"raw-loader": "^4.0.2",
- "react": "18.2.0",
- "react-dom": "18.2.0",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
"sass": "^1.66.1",
"the-new-css-reset": "^1.9.0",
- "three": "^0.164.1",
- "three-custom-shader-material": "^5.4.0",
- "three-stdlib": "^2.26.6",
- "typescript": "5.2.2",
- "zustand": "^4.4.1"
+ "typescript": "5.2.2"
},
"devDependencies": {
- "@storybook/addon-essentials": "^7.5.3",
- "@storybook/addon-interactions": "^7.5.3",
- "@storybook/addon-links": "^7.5.3",
- "@storybook/addon-onboarding": "^1.0.8",
- "@storybook/blocks": "^7.5.3",
- "@storybook/nextjs": "^7.5.3",
- "@storybook/react": "^7.5.3",
- "@storybook/testing-library": "^0.2.2",
- "eslint-plugin-storybook": "^0.6.15",
"lil-gui": "^0.18.2",
- "r3f-perf": "^7.1.2",
- "storybook": "^7.5.3"
- }
- },
- "node_modules/@aashutoshrathi/word-wrap": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",
- "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
- "engines": {
- "node": ">=0.10.0"
+ "r3f-perf": "^7.1.2"
}
},
- "node_modules/@ampproject/remapping": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
- "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
- "dev": true,
+ "node_modules/@babel/runtime": {
+ "version": "7.26.10",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz",
+ "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==",
"dependencies": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
+ "regenerator-runtime": "^0.14.0"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">=6.9.0"
}
},
- "node_modules/@aw-web-design/x-default-browser": {
- "version": "1.4.126",
- "resolved": "https://registry.npmjs.org/@aw-web-design/x-default-browser/-/x-default-browser-1.4.126.tgz",
- "integrity": "sha512-Xk1sIhyNC/esHGGVjL/niHLowM0csl/kFO5uawBy4IrWwy0o1G8LGt3jP6nmWGz+USxeeqbihAmp/oVZju6wug==",
- "dev": true,
+ "node_modules/@choojs/findup": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@choojs/findup/-/findup-0.2.1.tgz",
+ "integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==",
"dependencies": {
- "default-browser-id": "3.0.0"
+ "commander": "^2.15.1"
},
"bin": {
- "x-default-browser": "bin/x-default-browser.js"
- }
- },
- "node_modules/@babel/code-frame": {
- "version": "7.22.13",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
- "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
- "dev": true,
- "dependencies": {
- "@babel/highlight": "^7.22.13",
- "chalk": "^2.4.2"
- },
- "engines": {
- "node": ">=6.9.0"
+ "findup": "bin/findup.js"
}
},
- "node_modules/@babel/code-frame/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
+ "node_modules/@emnapi/core": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.3.1.tgz",
+ "integrity": "sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==",
+ "optional": true,
"dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
+ "@emnapi/wasi-threads": "1.0.1",
+ "tslib": "^2.4.0"
}
},
- "node_modules/@babel/code-frame/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
+ "node_modules/@emnapi/runtime": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz",
+ "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==",
+ "optional": true,
"dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
+ "tslib": "^2.4.0"
}
},
- "node_modules/@babel/code-frame/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
+ "node_modules/@emnapi/wasi-threads": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz",
+ "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==",
+ "optional": true,
"dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/@babel/code-frame/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/@babel/code-frame/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/@babel/code-frame/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "engines": {
- "node": ">=4"
+ "tslib": "^2.4.0"
}
},
- "node_modules/@babel/code-frame/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz",
+ "integrity": "sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==",
"dependencies": {
- "has-flag": "^3.0.0"
+ "eslint-visitor-keys": "^3.4.3"
},
"engines": {
- "node": ">=4"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
}
},
- "node_modules/@babel/compat-data": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.2.tgz",
- "integrity": "sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==",
- "dev": true,
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+ "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
"engines": {
- "node": ">=6.9.0"
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
},
- "node_modules/@babel/core": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz",
- "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==",
- "dev": true,
+ "node_modules/@eslint/eslintrc": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
"dependencies": {
- "@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.22.13",
- "@babel/generator": "^7.23.0",
- "@babel/helper-compilation-targets": "^7.22.15",
- "@babel/helper-module-transforms": "^7.23.0",
- "@babel/helpers": "^7.23.2",
- "@babel/parser": "^7.23.0",
- "@babel/template": "^7.22.15",
- "@babel/traverse": "^7.23.2",
- "@babel/types": "^7.23.0",
- "convert-source-map": "^2.0.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.3",
- "semver": "^6.3.1"
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.6.0",
+ "globals": "^13.19.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
},
"engines": {
- "node": ">=6.9.0"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/babel"
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/@babel/core/node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "dev": true,
- "bin": {
- "json5": "lib/cli.js"
- },
+ "node_modules/@eslint/js": {
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
+ "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
"engines": {
- "node": ">=6"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
- "node_modules/@babel/core/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
+ "node_modules/@funtech-inc/spice": {
+ "version": "1.2.113",
+ "resolved": "https://registry.npmjs.org/@funtech-inc/spice/-/spice-1.2.113.tgz",
+ "integrity": "sha512-eT8wIGz2pGNJ2EXdadHD4iHx6Melwb2OwqXFID23lDWNaAxvAyVxw4KNk1zGrgRQ5/mTYPYz+5y6vpMvBdsxRA==",
+ "peerDependencies": {
+ "gsap": "^3.12.5",
+ "react": "^18.2.0",
+ "react-dom": ">=18.0"
}
},
- "node_modules/@babel/generator": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz",
- "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==",
- "dev": true,
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.11.14",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
+ "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
+ "deprecated": "Use @eslint/config-array instead",
"dependencies": {
- "@babel/types": "^7.23.0",
- "@jridgewell/gen-mapping": "^0.3.2",
- "@jridgewell/trace-mapping": "^0.3.17",
- "jsesc": "^2.5.1"
+ "@humanwhocodes/object-schema": "^2.0.2",
+ "debug": "^4.3.1",
+ "minimatch": "^3.0.5"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=10.10.0"
}
},
- "node_modules/@babel/helper-annotate-as-pure": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz",
- "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
"engines": {
- "node": ">=6.9.0"
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
}
},
- "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz",
- "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==",
- "dev": true,
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
+ "deprecated": "Use @eslint/object-schema instead"
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
+ "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
+ "peer": true,
"dependencies": {
- "@babel/types": "^7.22.15"
+ "@jridgewell/set-array": "^1.2.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.24"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=6.0.0"
}
},
- "node_modules/@babel/helper-compilation-targets": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz",
- "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==",
- "dev": true,
- "dependencies": {
- "@babel/compat-data": "^7.22.9",
- "@babel/helper-validator-option": "^7.22.15",
- "browserslist": "^4.21.9",
- "lru-cache": "^5.1.1",
- "semver": "^6.3.1"
- },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "peer": true,
"engines": {
- "node": ">=6.9.0"
+ "node": ">=6.0.0"
}
},
- "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "dev": true,
- "dependencies": {
- "yallist": "^3.0.2"
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+ "peer": true,
+ "engines": {
+ "node": ">=6.0.0"
}
},
- "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
+ "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
+ "peer": true,
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25"
}
},
- "node_modules/@babel/helper-compilation-targets/node_modules/yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+ "peer": true
},
- "node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz",
- "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==",
- "dev": true,
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "peer": true,
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-member-expression-to-functions": "^7.22.15",
- "@babel/helper-optimise-call-expression": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
}
},
- "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
+ "node_modules/@mediapipe/tasks-vision": {
+ "version": "0.10.17",
+ "resolved": "https://registry.npmjs.org/@mediapipe/tasks-vision/-/tasks-vision-0.10.17.tgz",
+ "integrity": "sha512-CZWV/q6TTe8ta61cZXjfnnHsfWIdFhms03M9T7Cnd5y2mdpylJM0rF1qRq+wsQVRMLz1OYPVEBU9ph2Bx8cxrg=="
},
- "node_modules/@babel/helper-create-regexp-features-plugin": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz",
- "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==",
- "dev": true,
+ "node_modules/@monogrid/gainmap-js": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@monogrid/gainmap-js/-/gainmap-js-3.1.0.tgz",
+ "integrity": "sha512-Obb0/gEd/HReTlg8ttaYk+0m62gQJmCblMOjHSMHRrBP2zdfKMHLCRbh/6ex9fSUJMKdjjIEiohwkbGD3wj2Nw==",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "regexpu-core": "^5.3.1",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
+ "promise-worker-transferable": "^1.0.4"
},
"peerDependencies": {
- "@babel/core": "^7.0.0"
+ "three": ">= 0.159.0"
}
},
- "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
+ "node_modules/@napi-rs/wasm-runtime": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.7.tgz",
+ "integrity": "sha512-5yximcFK5FNompXfJFoWanu5l8v1hNGqNHh9du1xETp9HWk/B/PzvchX55WYOPaIeNglG8++68AAiauBAtbnzw==",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/core": "^1.3.1",
+ "@emnapi/runtime": "^1.3.1",
+ "@tybys/wasm-util": "^0.9.0"
}
},
- "node_modules/@babel/helper-define-polyfill-provider": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz",
- "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==",
- "dev": true,
+ "node_modules/@next/env": {
+ "version": "14.2.25",
+ "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.25.tgz",
+ "integrity": "sha512-JnzQ2cExDeG7FxJwqAksZ3aqVJrHjFwZQAEJ9gQZSoEhIow7SNoKZzju/AwQ+PLIR4NY8V0rhcVozx/2izDO0w=="
+ },
+ "node_modules/@next/eslint-plugin-next": {
+ "version": "13.4.19",
+ "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.4.19.tgz",
+ "integrity": "sha512-N/O+zGb6wZQdwu6atMZHbR7T9Np5SUFUjZqCbj0sXm+MwQO35M8TazVB4otm87GkXYs2l6OPwARd3/PUWhZBVQ==",
"dependencies": {
- "@babel/helper-compilation-targets": "^7.22.6",
- "@babel/helper-plugin-utils": "^7.22.5",
- "debug": "^4.1.1",
- "lodash.debounce": "^4.0.8",
- "resolve": "^1.14.2"
- },
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ "glob": "7.1.7"
}
},
- "node_modules/@babel/helper-environment-visitor": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
- "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
- "dev": true,
+ "node_modules/@next/swc-darwin-arm64": {
+ "version": "14.2.25",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.25.tgz",
+ "integrity": "sha512-09clWInF1YRd6le00vt750s3m7SEYNehz9C4PUcSu3bAdCTpjIV4aTYQZ25Ehrr83VR1rZeqtKUPWSI7GfuKZQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 10"
}
},
- "node_modules/@babel/helper-function-name": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
- "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
- "dev": true,
- "dependencies": {
- "@babel/template": "^7.22.15",
- "@babel/types": "^7.23.0"
- },
+ "node_modules/@next/swc-darwin-x64": {
+ "version": "14.2.25",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.25.tgz",
+ "integrity": "sha512-V+iYM/QR+aYeJl3/FWWU/7Ix4b07ovsQ5IbkwgUK29pTHmq+5UxeDr7/dphvtXEq5pLB/PucfcBNh9KZ8vWbug==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 10"
}
},
- "node_modules/@babel/helper-hoist-variables": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
- "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
+ "node_modules/@next/swc-linux-arm64-gnu": {
+ "version": "14.2.25",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.25.tgz",
+ "integrity": "sha512-LFnV2899PJZAIEHQ4IMmZIgL0FBieh5keMnriMY1cK7ompR+JUd24xeTtKkcaw8QmxmEdhoE5Mu9dPSuDBgtTg==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 10"
}
},
- "node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz",
- "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.23.0"
- },
+ "node_modules/@next/swc-linux-arm64-musl": {
+ "version": "14.2.25",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.25.tgz",
+ "integrity": "sha512-QC5y5PPTmtqFExcKWKYgUNkHeHE/z3lUsu83di488nyP0ZzQ3Yse2G6TCxz6nNsQwgAx1BehAJTZez+UQxzLfw==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 10"
}
},
- "node_modules/@babel/helper-module-imports": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
- "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.15"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-transforms": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz",
- "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-module-imports": "^7.22.15",
- "@babel/helper-simple-access": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/helper-validator-identifier": "^7.22.20"
- },
+ "node_modules/@next/swc-linux-x64-gnu": {
+ "version": "14.2.25",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.25.tgz",
+ "integrity": "sha512-y6/ML4b9eQ2D/56wqatTJN5/JR8/xdObU2Fb1RBidnrr450HLCKr6IJZbPqbv7NXmje61UyxjF5kvSajvjye5w==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
+ "node": ">= 10"
}
},
- "node_modules/@babel/helper-optimise-call-expression": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz",
- "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
+ "node_modules/@next/swc-linux-x64-musl": {
+ "version": "14.2.25",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.25.tgz",
+ "integrity": "sha512-sPX0TSXHGUOZFvv96GoBXpB3w4emMqKeMgemrSxI7A6l55VBJp/RKYLwZIB9JxSqYPApqiREaIIap+wWq0RU8w==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 10"
}
},
- "node_modules/@babel/helper-plugin-utils": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
- "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
- "dev": true,
+ "node_modules/@next/swc-win32-arm64-msvc": {
+ "version": "14.2.25",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.25.tgz",
+ "integrity": "sha512-ReO9S5hkA1DU2cFCsGoOEp7WJkhFzNbU/3VUF6XxNGUCQChyug6hZdYL/istQgfT/GWE6PNIg9cm784OI4ddxQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 10"
}
},
- "node_modules/@babel/helper-remap-async-to-generator": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz",
- "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-wrap-function": "^7.22.20"
- },
+ "node_modules/@next/swc-win32-ia32-msvc": {
+ "version": "14.2.25",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.25.tgz",
+ "integrity": "sha512-DZ/gc0o9neuCDyD5IumyTGHVun2dCox5TfPQI/BJTYwpSNYM3CZDI4i6TOdjeq1JMo+Ug4kPSMuZdwsycwFbAw==",
+ "cpu": [
+ "ia32"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
+ "node": ">= 10"
}
},
- "node_modules/@babel/helper-replace-supers": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz",
- "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-member-expression-to-functions": "^7.22.15",
- "@babel/helper-optimise-call-expression": "^7.22.5"
- },
+ "node_modules/@next/swc-win32-x64-msvc": {
+ "version": "14.2.25",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.25.tgz",
+ "integrity": "sha512-KSznmS6eFjQ9RJ1nEc66kJvtGIL1iZMYmGEXsZPh2YtnLtqrgdVvKXJY2ScjjoFnG6nGLyPFR0UiEvDwVah4Tw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
+ "node": ">= 10"
}
},
- "node_modules/@babel/helper-simple-access": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
- "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
- "dev": true,
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
"dependencies": {
- "@babel/types": "^7.22.5"
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 8"
}
},
- "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz",
- "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.22.5"
- },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 8"
}
},
- "node_modules/@babel/helper-split-export-declaration": {
- "version": "7.22.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
- "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
- "dev": true,
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
"dependencies": {
- "@babel/types": "^7.22.5"
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
},
"engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-string-parser": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
- "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
- "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-option": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz",
- "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
+ "node": ">= 8"
}
},
- "node_modules/@babel/helper-wrap-function": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz",
- "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-function-name": "^7.22.5",
- "@babel/template": "^7.22.15",
- "@babel/types": "^7.22.19"
- },
+ "node_modules/@nolyfill/is-core-module": {
+ "version": "1.0.39",
+ "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz",
+ "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==",
"engines": {
- "node": ">=6.9.0"
+ "node": ">=12.4.0"
}
},
- "node_modules/@babel/helpers": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz",
- "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==",
- "dev": true,
+ "node_modules/@parcel/watcher": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
+ "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==",
+ "hasInstallScript": true,
+ "optional": true,
"dependencies": {
- "@babel/template": "^7.22.15",
- "@babel/traverse": "^7.23.2",
- "@babel/types": "^7.23.0"
+ "detect-libc": "^1.0.3",
+ "is-glob": "^4.0.3",
+ "micromatch": "^4.0.5",
+ "node-addon-api": "^7.0.0"
},
"engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight": {
- "version": "7.22.20",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
- "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.22.20",
- "chalk": "^2.4.2",
- "js-tokens": "^4.0.0"
+ "node": ">= 10.0.0"
},
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
},
+ "optionalDependencies": {
+ "@parcel/watcher-android-arm64": "2.5.1",
+ "@parcel/watcher-darwin-arm64": "2.5.1",
+ "@parcel/watcher-darwin-x64": "2.5.1",
+ "@parcel/watcher-freebsd-x64": "2.5.1",
+ "@parcel/watcher-linux-arm-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm-musl": "2.5.1",
+ "@parcel/watcher-linux-arm64-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm64-musl": "2.5.1",
+ "@parcel/watcher-linux-x64-glibc": "2.5.1",
+ "@parcel/watcher-linux-x64-musl": "2.5.1",
+ "@parcel/watcher-win32-arm64": "2.5.1",
+ "@parcel/watcher-win32-ia32": "2.5.1",
+ "@parcel/watcher-win32-x64": "2.5.1"
+ }
+ },
+ "node_modules/@parcel/watcher-android-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz",
+ "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "android"
+ ],
"engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "node": ">= 10.0.0"
},
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@babel/highlight/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
+ "node_modules/@parcel/watcher-darwin-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz",
+ "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
+ "node": ">= 10.0.0"
},
- "engines": {
- "node": ">=4"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@babel/parser": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz",
- "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
- "dev": true,
- "bin": {
- "parser": "bin/babel-parser.js"
- },
+ "node_modules/@parcel/watcher-darwin-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz",
+ "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">=6.0.0"
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz",
- "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
+ "node_modules/@parcel/watcher-freebsd-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz",
+ "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 10.0.0"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz",
- "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/plugin-transform-optional-chaining": "^7.22.15"
- },
+ "node_modules/@parcel/watcher-linux-arm-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz",
+ "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 10.0.0"
},
- "peerDependencies": {
- "@babel/core": "^7.13.0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@babel/plugin-proposal-class-properties": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
- "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
- "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- },
+ "node_modules/@parcel/watcher-linux-arm-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz",
+ "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 10.0.0"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
- "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
- "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
- },
+ "node_modules/@parcel/watcher-linux-arm64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz",
+ "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 10.0.0"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@babel/plugin-proposal-optional-chaining": {
- "version": "7.21.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz",
- "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==",
- "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.",
- "dev": true,
- "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"
- },
+ "node_modules/@parcel/watcher-linux-arm64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz",
+ "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 10.0.0"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@babel/plugin-proposal-private-property-in-object": {
- "version": "7.21.0-placeholder-for-preset-env.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
- "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
- "dev": true,
+ "node_modules/@parcel/watcher-linux-x64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz",
+ "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 10.0.0"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@babel/plugin-syntax-async-generators": {
- "version": "7.8.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
- "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
+ "node_modules/@parcel/watcher-linux-x64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz",
+ "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@babel/plugin-syntax-bigint": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
- "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
+ "node_modules/@parcel/watcher-win32-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz",
+ "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@babel/plugin-syntax-class-properties": {
- "version": "7.12.13",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
- "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.12.13"
+ "node_modules/@parcel/watcher-win32-ia32": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz",
+ "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@babel/plugin-syntax-class-static-block": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
- "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
+ "node_modules/@parcel/watcher-win32-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz",
+ "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ],
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 10.0.0"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
}
},
- "node_modules/@babel/plugin-syntax-dynamic-import": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
- "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
+ "node_modules/@radix-ui/react-icons": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.2.tgz",
+ "integrity": "sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==",
"dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "react": "^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc"
}
},
- "node_modules/@babel/plugin-syntax-export-namespace-from": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
- "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
- "dev": true,
+ "node_modules/@react-spring/animated": {
+ "version": "9.7.5",
+ "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.7.5.tgz",
+ "integrity": "sha512-Tqrwz7pIlsSDITzxoLS3n/v/YCUHQdOIKtOJf4yL6kYVSDTSmVK1LI1Q3M/uu2Sx4X3pIWF3xLUhlsA6SPNTNg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.3"
+ "@react-spring/shared": "~9.7.5",
+ "@react-spring/types": "~9.7.5"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
- "node_modules/@babel/plugin-syntax-flow": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz",
- "integrity": "sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==",
- "dev": true,
+ "node_modules/@react-spring/core": {
+ "version": "9.7.5",
+ "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.7.5.tgz",
+ "integrity": "sha512-rmEqcxRcu7dWh7MnCcMXLvrf6/SDlSokLaLTxiPlAYi11nN3B5oiCUAblO72o+9z/87j2uzxa2Inm8UbLjXA+w==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@react-spring/animated": "~9.7.5",
+ "@react-spring/shared": "~9.7.5",
+ "@react-spring/types": "~9.7.5"
},
- "engines": {
- "node": ">=6.9.0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/react-spring/donate"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
- "node_modules/@babel/plugin-syntax-import-assertions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz",
- "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==",
- "dev": true,
+ "node_modules/@react-spring/rafz": {
+ "version": "9.7.5",
+ "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.7.5.tgz",
+ "integrity": "sha512-5ZenDQMC48wjUzPAm1EtwQ5Ot3bLIAwwqP2w2owG5KoNdNHpEJV263nGhCeKKmuA3vG2zLLOdu3or6kuDjA6Aw=="
+ },
+ "node_modules/@react-spring/shared": {
+ "version": "9.7.5",
+ "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.7.5.tgz",
+ "integrity": "sha512-wdtoJrhUeeyD/PP/zo+np2s1Z820Ohr/BbuVYv+3dVLW7WctoiN7std8rISoYoHpUXtbkpesSKuPIw/6U1w1Pw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
+ "@react-spring/rafz": "~9.7.5",
+ "@react-spring/types": "~9.7.5"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
- "node_modules/@babel/plugin-syntax-import-attributes": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz",
- "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==",
- "dev": true,
+ "node_modules/@react-spring/three": {
+ "version": "9.7.5",
+ "resolved": "https://registry.npmjs.org/@react-spring/three/-/three-9.7.5.tgz",
+ "integrity": "sha512-RxIsCoQfUqOS3POmhVHa1wdWS0wyHAUway73uRLp3GAL5U2iYVNdnzQsep6M2NZ994BlW8TcKuMtQHUqOsy6WA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
+ "@react-spring/animated": "~9.7.5",
+ "@react-spring/core": "~9.7.5",
+ "@react-spring/shared": "~9.7.5",
+ "@react-spring/types": "~9.7.5"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@react-three/fiber": ">=6.0",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "three": ">=0.126"
}
},
- "node_modules/@babel/plugin-syntax-import-meta": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
- "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
+ "node_modules/@react-spring/types": {
+ "version": "9.7.5",
+ "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.7.5.tgz",
+ "integrity": "sha512-HVj7LrZ4ReHWBimBvu2SKND3cDVUPWKLqRTmWe/fNY6o1owGOX0cAHbdPDTMelgBlVbrTKrre6lFkhqGZErK/g=="
+ },
+ "node_modules/@react-three/drei": {
+ "version": "9.122.0",
+ "resolved": "https://registry.npmjs.org/@react-three/drei/-/drei-9.122.0.tgz",
+ "integrity": "sha512-SEO/F/rBCTjlLez7WAlpys+iGe9hty4rNgjZvgkQeXFSiwqD4Hbk/wNHMAbdd8vprO2Aj81mihv4dF5bC7D0CA==",
+ "dependencies": {
+ "@babel/runtime": "^7.26.0",
+ "@mediapipe/tasks-vision": "0.10.17",
+ "@monogrid/gainmap-js": "^3.0.6",
+ "@react-spring/three": "~9.7.5",
+ "@use-gesture/react": "^10.3.1",
+ "camera-controls": "^2.9.0",
+ "cross-env": "^7.0.3",
+ "detect-gpu": "^5.0.56",
+ "glsl-noise": "^0.0.0",
+ "hls.js": "^1.5.17",
+ "maath": "^0.10.8",
+ "meshline": "^3.3.1",
+ "react-composer": "^5.0.3",
+ "stats-gl": "^2.2.8",
+ "stats.js": "^0.17.0",
+ "suspend-react": "^0.1.3",
+ "three-mesh-bvh": "^0.7.8",
+ "three-stdlib": "^2.35.6",
+ "troika-three-text": "^0.52.0",
+ "tunnel-rat": "^0.1.2",
+ "utility-types": "^3.11.0",
+ "zustand": "^5.0.1"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@react-three/fiber": "^8",
+ "react": "^18",
+ "react-dom": "^18",
+ "three": ">=0.137"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ }
}
},
- "node_modules/@babel/plugin-syntax-json-strings": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
- "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
- "dev": true,
+ "node_modules/@react-three/fiber": {
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/@react-three/fiber/-/fiber-8.18.0.tgz",
+ "integrity": "sha512-FYZZqD0UUHUswKz3LQl2Z7H24AhD14XGTsIRw3SJaXUxyfVMi+1yiZGmqTcPt/CkPpdU7rrxqcyQ1zJE5DjvIQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
+ "@babel/runtime": "^7.17.8",
+ "@types/react-reconciler": "^0.26.7",
+ "@types/webxr": "*",
+ "base64-js": "^1.5.1",
+ "buffer": "^6.0.3",
+ "its-fine": "^1.0.6",
+ "react-reconciler": "^0.27.0",
+ "react-use-measure": "^2.1.7",
+ "scheduler": "^0.21.0",
+ "suspend-react": "^0.1.3",
+ "zustand": "^3.7.1"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "expo": ">=43.0",
+ "expo-asset": ">=8.4",
+ "expo-file-system": ">=11.0",
+ "expo-gl": ">=11.0",
+ "react": ">=18 <19",
+ "react-dom": ">=18 <19",
+ "react-native": ">=0.64",
+ "three": ">=0.133"
+ },
+ "peerDependenciesMeta": {
+ "expo": {
+ "optional": true
+ },
+ "expo-asset": {
+ "optional": true
+ },
+ "expo-file-system": {
+ "optional": true
+ },
+ "expo-gl": {
+ "optional": true
+ },
+ "react-dom": {
+ "optional": true
+ },
+ "react-native": {
+ "optional": true
+ }
}
},
- "node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz",
- "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
+ "node_modules/@react-three/fiber/node_modules/zustand": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz",
+ "integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==",
"engines": {
- "node": ">=6.9.0"
+ "node": ">=12.7.0"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "react": ">=16.8"
+ },
+ "peerDependenciesMeta": {
+ "react": {
+ "optional": true
+ }
}
},
- "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
- "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
+ "node_modules/@rtsao/scc": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",
+ "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g=="
+ },
+ "node_modules/@rushstack/eslint-patch": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.11.0.tgz",
+ "integrity": "sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ=="
+ },
+ "node_modules/@stitches/react": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@stitches/react/-/react-1.2.8.tgz",
+ "integrity": "sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA==",
"dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "react": ">= 16.3.0"
}
},
- "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
- "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
- "dev": true,
+ "node_modules/@swc/counter": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
+ "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ=="
+ },
+ "node_modules/@swc/helpers": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz",
+ "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@swc/counter": "^0.1.3",
+ "tslib": "^2.4.0"
}
},
- "node_modules/@babel/plugin-syntax-numeric-separator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
- "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
- "dev": true,
+ "node_modules/@tweenjs/tween.js": {
+ "version": "23.1.3",
+ "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.3.tgz",
+ "integrity": "sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA=="
+ },
+ "node_modules/@tybys/wasm-util": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz",
+ "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==",
+ "optional": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "tslib": "^2.4.0"
}
},
- "node_modules/@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
- "dev": true,
+ "node_modules/@types/draco3d": {
+ "version": "1.4.10",
+ "resolved": "https://registry.npmjs.org/@types/draco3d/-/draco3d-1.4.10.tgz",
+ "integrity": "sha512-AX22jp8Y7wwaBgAixaSvkoG4M/+PlAcm3Qs4OW8yT9DM4xUpWKeFhLueTAyZF39pviAdcDdeJoACapiAceqNcw=="
+ },
+ "node_modules/@types/eslint": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz",
+ "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==",
+ "peer": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@types/estree": "*",
+ "@types/json-schema": "*"
}
},
- "node_modules/@babel/plugin-syntax-optional-catch-binding": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
- "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
- "dev": true,
+ "node_modules/@types/eslint-scope": {
+ "version": "3.7.7",
+ "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
+ "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
+ "peer": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@types/eslint": "*",
+ "@types/estree": "*"
}
},
- "node_modules/@babel/plugin-syntax-optional-chaining": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
- "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-private-property-in-object": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
- "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
+ "node_modules/@types/estree": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
+ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
+ "peer": true
},
- "node_modules/@babel/plugin-syntax-top-level-await": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
- "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="
},
- "node_modules/@babel/plugin-syntax-typescript": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz",
- "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
+ "node_modules/@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
},
- "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
- "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
+ "node_modules/@types/node": {
+ "version": "20.5.6",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.6.tgz",
+ "integrity": "sha512-Gi5wRGPbbyOTX+4Y2iULQ27oUPrefaB0PxGQJnfyWN3kvEDGM3mIB5M/gQLmitZf7A9FmLeaqxD3L1CXpm3VKQ=="
},
- "node_modules/@babel/plugin-transform-arrow-functions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz",
- "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
+ "node_modules/@types/offscreencanvas": {
+ "version": "2019.7.3",
+ "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz",
+ "integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A=="
},
- "node_modules/@babel/plugin-transform-async-generator-functions": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz",
- "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-remap-async-to-generator": "^7.22.20",
- "@babel/plugin-syntax-async-generators": "^7.8.4"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
+ "node_modules/@types/prop-types": {
+ "version": "15.7.14",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz",
+ "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ=="
},
- "node_modules/@babel/plugin-transform-async-to-generator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz",
- "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==",
- "dev": true,
+ "node_modules/@types/react": {
+ "version": "18.2.21",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.21.tgz",
+ "integrity": "sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA==",
"dependencies": {
- "@babel/helper-module-imports": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-remap-async-to-generator": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
}
},
- "node_modules/@babel/plugin-transform-block-scoped-functions": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz",
- "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==",
- "dev": true,
+ "node_modules/@types/react-dom": {
+ "version": "18.2.7",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.7.tgz",
+ "integrity": "sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@types/react": "*"
}
},
- "node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz",
- "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==",
- "dev": true,
+ "node_modules/@types/react-reconciler": {
+ "version": "0.26.7",
+ "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.26.7.tgz",
+ "integrity": "sha512-mBDYl8x+oyPX/VBb3E638N0B7xG+SPk/EAMcVPeexqus/5aTpTphQi0curhhshOqRrc9t6OPoJfEUkbymse/lQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@types/react": "*"
}
},
- "node_modules/@babel/plugin-transform-class-properties": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz",
- "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
+ "node_modules/@types/scheduler": {
+ "version": "0.23.0",
+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.23.0.tgz",
+ "integrity": "sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw=="
},
- "node_modules/@babel/plugin-transform-class-static-block": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz",
- "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.22.11",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-class-static-block": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.12.0"
- }
+ "node_modules/@types/stats.js": {
+ "version": "0.17.3",
+ "resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.3.tgz",
+ "integrity": "sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ=="
},
- "node_modules/@babel/plugin-transform-classes": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz",
- "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==",
- "dev": true,
+ "node_modules/@types/three": {
+ "version": "0.164.1",
+ "resolved": "https://registry.npmjs.org/@types/three/-/three-0.164.1.tgz",
+ "integrity": "sha512-dR/trWDhyaNqJV38rl1TonlCA9DpnX7OPYDWD81bmBGn/+uEc3+zNalFxQcV4FlPTeDBhCY3SFWKvK6EJwL88g==",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-compilation-targets": "^7.22.15",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-optimise-call-expression": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.9",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@tweenjs/tween.js": "~23.1.1",
+ "@types/stats.js": "*",
+ "@types/webxr": "*",
+ "fflate": "~0.8.2",
+ "meshoptimizer": "~0.18.1"
}
},
- "node_modules/@babel/plugin-transform-classes/node_modules/globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
+ "node_modules/@types/webxr": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.21.tgz",
+ "integrity": "sha512-geZIAtLzjGmgY2JUi6VxXdCrTb99A7yP49lxLr2Nm/uIK0PkkxcEi4OGhoGDO4pxCf3JwGz2GiJL2Ej4K2bKaA=="
},
- "node_modules/@babel/plugin-transform-computed-properties": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz",
- "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/template": "^7.22.5"
+ "node_modules/@typescript-eslint/parser": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz",
+ "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==",
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "6.21.0",
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/typescript-estree": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0",
+ "debug": "^4.3.4"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz",
- "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "node": "^16.0.0 || >=18.0.0"
},
- "engines": {
- "node": ">=6.9.0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-dotall-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz",
- "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
+ "eslint": "^7.0.0 || ^8.0.0"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/@babel/plugin-transform-duplicate-keys": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz",
- "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==",
- "dev": true,
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz",
+ "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": "^16.0.0 || >=18.0.0"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@babel/plugin-transform-dynamic-import": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz",
- "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3"
- },
+ "node_modules/@typescript-eslint/types": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz",
+ "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==",
"engines": {
- "node": ">=6.9.0"
+ "node": "^16.0.0 || >=18.0.0"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@babel/plugin-transform-exponentiation-operator": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz",
- "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==",
- "dev": true,
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz",
+ "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==",
"dependencies": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "9.0.3",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-export-namespace-from": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz",
- "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
+ "node": "^16.0.0 || >=18.0.0"
},
- "engines": {
- "node": ">=6.9.0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/@babel/plugin-transform-flow-strip-types": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz",
- "integrity": "sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA==",
- "dev": true,
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-flow": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/@babel/plugin-transform-for-of": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz",
- "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==",
- "dev": true,
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "brace-expansion": "^2.0.1"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=16 || 14 >=14.17"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@babel/plugin-transform-function-name": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz",
- "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==",
- "dev": true,
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz",
+ "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==",
"dependencies": {
- "@babel/helper-compilation-targets": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@typescript-eslint/types": "6.21.0",
+ "eslint-visitor-keys": "^3.4.1"
},
"engines": {
- "node": ">=6.9.0"
+ "node": "^16.0.0 || >=18.0.0"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/@babel/plugin-transform-json-strings": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz",
- "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-json-strings": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
+ "node_modules/@unrs/rspack-resolver-binding-darwin-arm64": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-darwin-arm64/-/rspack-resolver-binding-darwin-arm64-1.2.2.tgz",
+ "integrity": "sha512-i7z0B+C0P8Q63O/5PXJAzeFtA1ttY3OR2VSJgGv18S+PFNwD98xHgAgPOT1H5HIV6jlQP8Avzbp09qxJUdpPNw==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
},
- "node_modules/@babel/plugin-transform-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz",
- "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==",
- "dev": true,
+ "node_modules/@unrs/rspack-resolver-binding-darwin-x64": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-darwin-x64/-/rspack-resolver-binding-darwin-x64-1.2.2.tgz",
+ "integrity": "sha512-YEdFzPjIbDUCfmehC6eS+AdJYtFWY35YYgWUnqqTM2oe/N58GhNy5yRllxYhxwJ9GcfHoNc6Ubze1yjkNv+9Qg==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@unrs/rspack-resolver-binding-freebsd-x64": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-freebsd-x64/-/rspack-resolver-binding-freebsd-x64-1.2.2.tgz",
+ "integrity": "sha512-TU4ntNXDgPN2giQyyzSnGWf/dVCem5lvwxg0XYvsvz35h5H19WrhTmHgbrULMuypCB3aHe1enYUC9rPLDw45mA==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@unrs/rspack-resolver-binding-linux-arm-gnueabihf": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm-gnueabihf/-/rspack-resolver-binding-linux-arm-gnueabihf-1.2.2.tgz",
+ "integrity": "sha512-ik3w4/rU6RujBvNWiDnKdXi1smBhqxEDhccNi/j2rHaMjm0Fk49KkJ6XKsoUnD2kZ5xaMJf9JjailW/okfUPIw==",
+ "cpu": [
+ "arm"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/rspack-resolver-binding-linux-arm64-gnu": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm64-gnu/-/rspack-resolver-binding-linux-arm64-gnu-1.2.2.tgz",
+ "integrity": "sha512-fp4Azi8kHz6TX8SFmKfyScZrMLfp++uRm2srpqRjsRZIIBzH74NtSkdEUHImR4G7f7XJ+sVZjCc6KDDK04YEpQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/rspack-resolver-binding-linux-arm64-musl": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm64-musl/-/rspack-resolver-binding-linux-arm64-musl-1.2.2.tgz",
+ "integrity": "sha512-gMiG3DCFioJxdGBzhlL86KcFgt9HGz0iDhw0YVYPsShItpN5pqIkNrI+L/Q/0gfDiGrfcE0X3VANSYIPmqEAlQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/rspack-resolver-binding-linux-x64-gnu": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-x64-gnu/-/rspack-resolver-binding-linux-x64-gnu-1.2.2.tgz",
+ "integrity": "sha512-n/4n2CxaUF9tcaJxEaZm+lqvaw2gflfWQ1R9I7WQgYkKEKbRKbpG/R3hopYdUmLSRI4xaW1Cy0Bz40eS2Yi4Sw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/rspack-resolver-binding-linux-x64-musl": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-x64-musl/-/rspack-resolver-binding-linux-x64-musl-1.2.2.tgz",
+ "integrity": "sha512-cHyhAr6rlYYbon1L2Ag449YCj3p6XMfcYTP0AQX+KkQo025d1y/VFtPWvjMhuEsE2lLvtHm7GdJozj6BOMtzVg==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@unrs/rspack-resolver-binding-wasm32-wasi": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-wasm32-wasi/-/rspack-resolver-binding-wasm32-wasi-1.2.2.tgz",
+ "integrity": "sha512-eogDKuICghDLGc32FtP+WniG38IB1RcGOGz0G3z8406dUdjJvxfHGuGs/dSlM9YEp/v0lEqhJ4mBu6X2nL9pog==",
+ "cpu": [
+ "wasm32"
+ ],
+ "optional": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@napi-rs/wasm-runtime": "^0.2.7"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">=14.0.0"
}
},
- "node_modules/@babel/plugin-transform-logical-assignment-operators": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz",
- "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==",
- "dev": true,
+ "node_modules/@unrs/rspack-resolver-binding-win32-arm64-msvc": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-win32-arm64-msvc/-/rspack-resolver-binding-win32-arm64-msvc-1.2.2.tgz",
+ "integrity": "sha512-7sWRJumhpXSi2lccX8aQpfFXHsSVASdWndLv8AmD8nDRA/5PBi8IplQVZNx2mYRx6+Bp91Z00kuVqpXO9NfCTg==",
+ "cpu": [
+ "arm64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@unrs/rspack-resolver-binding-win32-x64-msvc": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-win32-x64-msvc/-/rspack-resolver-binding-win32-x64-msvc-1.2.2.tgz",
+ "integrity": "sha512-hewo/UMGP1a7O6FG/ThcPzSJdm/WwrYDNkdGgWl6M18H6K6MSitklomWpT9MUtT5KGj++QJb06va/14QBC4pvw==",
+ "cpu": [
+ "x64"
+ ],
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@use-gesture/core": {
+ "version": "10.3.1",
+ "resolved": "https://registry.npmjs.org/@use-gesture/core/-/core-10.3.1.tgz",
+ "integrity": "sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw=="
+ },
+ "node_modules/@use-gesture/react": {
+ "version": "10.3.1",
+ "resolved": "https://registry.npmjs.org/@use-gesture/react/-/react-10.3.1.tgz",
+ "integrity": "sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
- },
- "engines": {
- "node": ">=6.9.0"
+ "@use-gesture/core": "10.3.1"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "react": ">= 16.8.0"
}
},
- "node_modules/@babel/plugin-transform-member-expression-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz",
- "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==",
+ "node_modules/@utsubo/events": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/@utsubo/events/-/events-0.1.7.tgz",
+ "integrity": "sha512-WB/GEj/0h27Bz8rJ0+CBtNz5mLT79ne1OjB7PUM4n0qLBqEDwm6yBzZC3j6tasHjlBPJDYZiBVIA1glaMlgZ5g==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
+ "eventemitter3": "^4.0.7"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "react": ">=16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "react": {
+ "optional": true
+ }
}
},
- "node_modules/@babel/plugin-transform-modules-amd": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz",
- "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==",
- "dev": true,
+ "node_modules/@webassemblyjs/ast": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz",
+ "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==",
+ "peer": true,
"dependencies": {
- "@babel/helper-module-transforms": "^7.23.0",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@webassemblyjs/helper-numbers": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2"
}
},
- "node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz",
- "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==",
- "dev": true,
+ "node_modules/@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz",
+ "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==",
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-api-error": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz",
+ "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==",
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-buffer": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz",
+ "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==",
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-numbers": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz",
+ "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==",
+ "peer": true,
"dependencies": {
- "@babel/helper-module-transforms": "^7.23.0",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-simple-access": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@webassemblyjs/floating-point-hex-parser": "1.13.2",
+ "@webassemblyjs/helper-api-error": "1.13.2",
+ "@xtuc/long": "4.2.2"
}
},
- "node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz",
- "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==",
- "dev": true,
+ "node_modules/@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz",
+ "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==",
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-wasm-section": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz",
+ "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==",
+ "peer": true,
"dependencies": {
- "@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-module-transforms": "^7.23.0",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.20"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/wasm-gen": "1.14.1"
}
},
- "node_modules/@babel/plugin-transform-modules-umd": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz",
- "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==",
- "dev": true,
+ "node_modules/@webassemblyjs/ieee754": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz",
+ "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==",
+ "peer": true,
"dependencies": {
- "@babel/helper-module-transforms": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@xtuc/ieee754": "^1.2.0"
}
},
- "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz",
- "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==",
- "dev": true,
+ "node_modules/@webassemblyjs/leb128": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz",
+ "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==",
+ "peer": true,
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
+ "@xtuc/long": "4.2.2"
}
},
- "node_modules/@babel/plugin-transform-new-target": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz",
- "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==",
- "dev": true,
+ "node_modules/@webassemblyjs/utf8": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz",
+ "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==",
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/wasm-edit": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz",
+ "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==",
+ "peer": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/helper-wasm-section": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-opt": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1",
+ "@webassemblyjs/wast-printer": "1.14.1"
}
},
- "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz",
- "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==",
- "dev": true,
+ "node_modules/@webassemblyjs/wasm-gen": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz",
+ "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==",
+ "peer": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
}
},
- "node_modules/@babel/plugin-transform-numeric-separator": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz",
- "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==",
- "dev": true,
+ "node_modules/@webassemblyjs/wasm-opt": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz",
+ "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==",
+ "peer": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1"
}
},
- "node_modules/@babel/plugin-transform-object-rest-spread": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz",
- "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==",
- "dev": true,
+ "node_modules/@webassemblyjs/wasm-parser": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz",
+ "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==",
+ "peer": true,
"dependencies": {
- "@babel/compat-data": "^7.22.9",
- "@babel/helper-compilation-targets": "^7.22.15",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.22.15"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-api-error": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
}
},
- "node_modules/@babel/plugin-transform-object-super": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz",
- "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==",
- "dev": true,
+ "node_modules/@webassemblyjs/wast-printer": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz",
+ "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==",
+ "peer": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-replace-supers": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "@webassemblyjs/ast": "1.14.1",
+ "@xtuc/long": "4.2.2"
}
},
- "node_modules/@babel/plugin-transform-optional-catch-binding": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz",
- "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
+ "node_modules/@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+ "peer": true
+ },
+ "node_modules/@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+ "peer": true
+ },
+ "node_modules/acorn": {
+ "version": "8.14.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
+ "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==",
+ "bin": {
+ "acorn": "bin/acorn"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">=0.4.0"
}
},
- "node_modules/@babel/plugin-transform-optional-chaining": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz",
- "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
- "node_modules/@babel/plugin-transform-parameters": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz",
- "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==",
- "dev": true,
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/@babel/plugin-transform-private-methods": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz",
- "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==",
- "dev": true,
+ "node_modules/ajv-formats": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
+ "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+ "peer": true,
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
+ "ajv": "^8.0.0"
},
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "ajv": "^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "ajv": {
+ "optional": true
+ }
}
},
- "node_modules/@babel/plugin-transform-private-property-in-object": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz",
- "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==",
- "dev": true,
+ "node_modules/ajv-formats/node_modules/ajv": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "peer": true,
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-create-class-features-plugin": "^7.22.11",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/@babel/plugin-transform-property-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz",
- "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
+ "node_modules/ajv-formats/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "peer": true
+ },
+ "node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
"peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "ajv": "^6.9.1"
}
},
- "node_modules/@babel/plugin-transform-react-display-name": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz",
- "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">=8"
}
},
- "node_modules/@babel/plugin-transform-react-jsx": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz",
- "integrity": "sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==",
- "dev": true,
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-module-imports": "^7.22.15",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-jsx": "^7.22.5",
- "@babel/types": "^7.22.15"
+ "color-convert": "^2.0.1"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=8"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@babel/plugin-transform-react-jsx-development": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz",
- "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==",
- "dev": true,
- "dependencies": {
- "@babel/plugin-transform-react-jsx": "^7.22.5"
- },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ },
+ "node_modules/aria-query": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
+ "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">= 0.4"
}
},
- "node_modules/@babel/plugin-transform-react-pure-annotations": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz",
- "integrity": "sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==",
- "dev": true,
+ "node_modules/array-buffer-byte-length": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz",
+ "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
+ "call-bound": "^1.0.3",
+ "is-array-buffer": "^3.0.5"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 0.4"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz",
- "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "regenerator-transform": "^0.15.2"
+ "node_modules/array-includes": {
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
+ "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "is-string": "^1.0.7"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 0.4"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@babel/plugin-transform-reserved-words": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz",
- "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
- },
+ "node_modules/array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">=8"
}
},
- "node_modules/@babel/plugin-transform-runtime": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.2.tgz",
- "integrity": "sha512-XOntj6icgzMS58jPVtQpiuF6ZFWxQiJavISGx5KGjRj+3gqZr8+N6Kx+N9BApWzgS+DOjIZfXXj0ZesenOWDyA==",
- "dev": true,
+ "node_modules/array.prototype.findlast": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
+ "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
"dependencies": {
- "@babel/helper-module-imports": "^7.22.15",
- "@babel/helper-plugin-utils": "^7.22.5",
- "babel-plugin-polyfill-corejs2": "^0.4.6",
- "babel-plugin-polyfill-corejs3": "^0.8.5",
- "babel-plugin-polyfill-regenerator": "^0.5.3",
- "semver": "^6.3.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-shim-unscopables": "^1.0.2"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 0.4"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-runtime/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@babel/plugin-transform-shorthand-properties": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz",
- "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==",
- "dev": true,
+ "node_modules/array.prototype.findlastindex": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz",
+ "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.9",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.1.1",
+ "es-shim-unscopables": "^1.1.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 0.4"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@babel/plugin-transform-spread": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz",
- "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==",
- "dev": true,
+ "node_modules/array.prototype.flat": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz",
+ "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5"
+ "call-bind": "^1.0.8",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.5",
+ "es-shim-unscopables": "^1.0.2"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 0.4"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@babel/plugin-transform-sticky-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz",
- "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==",
- "dev": true,
+ "node_modules/array.prototype.flatmap": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz",
+ "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "call-bind": "^1.0.8",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.5",
+ "es-shim-unscopables": "^1.0.2"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 0.4"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@babel/plugin-transform-template-literals": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz",
- "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==",
- "dev": true,
+ "node_modules/array.prototype.tosorted": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz",
+ "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.3",
+ "es-errors": "^1.3.0",
+ "es-shim-unscopables": "^1.0.2"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">= 0.4"
}
},
- "node_modules/@babel/plugin-transform-typeof-symbol": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz",
- "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==",
- "dev": true,
+ "node_modules/arraybuffer.prototype.slice": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz",
+ "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "array-buffer-byte-length": "^1.0.1",
+ "call-bind": "^1.0.8",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.5",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.6",
+ "is-array-buffer": "^3.0.4"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 0.4"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@babel/plugin-transform-typescript": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz",
- "integrity": "sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.22.5",
- "@babel/helper-create-class-features-plugin": "^7.22.15",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-typescript": "^7.22.5"
- },
+ "node_modules/ast-types-flow": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz",
+ "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ=="
+ },
+ "node_modules/async-function": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz",
+ "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==",
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">= 0.4"
}
},
- "node_modules/@babel/plugin-transform-unicode-escapes": {
- "version": "7.22.10",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz",
- "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==",
- "dev": true,
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "possible-typed-array-names": "^1.0.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 0.4"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@babel/plugin-transform-unicode-property-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz",
- "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
+ "node_modules/axe-core": {
+ "version": "4.10.3",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz",
+ "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==",
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">=4"
}
},
- "node_modules/@babel/plugin-transform-unicode-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz",
- "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
+ "node_modules/axobject-query": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
+ "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==",
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">= 0.4"
}
},
- "node_modules/@babel/plugin-transform-unicode-sets-regex": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz",
- "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==",
- "dev": true,
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/bidi-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz",
+ "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.22.5",
- "@babel/helper-plugin-utils": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
+ "require-from-string": "^2.0.2"
}
},
- "node_modules/@babel/preset-env": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz",
- "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==",
- "dev": true,
- "dependencies": {
- "@babel/compat-data": "^7.23.2",
- "@babel/helper-compilation-targets": "^7.22.15",
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-validator-option": "^7.22.15",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15",
- "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
- "@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.22.5",
- "@babel/plugin-syntax-import-attributes": "^7.22.5",
- "@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-syntax-unicode-sets-regex": "^7.18.6",
- "@babel/plugin-transform-arrow-functions": "^7.22.5",
- "@babel/plugin-transform-async-generator-functions": "^7.23.2",
- "@babel/plugin-transform-async-to-generator": "^7.22.5",
- "@babel/plugin-transform-block-scoped-functions": "^7.22.5",
- "@babel/plugin-transform-block-scoping": "^7.23.0",
- "@babel/plugin-transform-class-properties": "^7.22.5",
- "@babel/plugin-transform-class-static-block": "^7.22.11",
- "@babel/plugin-transform-classes": "^7.22.15",
- "@babel/plugin-transform-computed-properties": "^7.22.5",
- "@babel/plugin-transform-destructuring": "^7.23.0",
- "@babel/plugin-transform-dotall-regex": "^7.22.5",
- "@babel/plugin-transform-duplicate-keys": "^7.22.5",
- "@babel/plugin-transform-dynamic-import": "^7.22.11",
- "@babel/plugin-transform-exponentiation-operator": "^7.22.5",
- "@babel/plugin-transform-export-namespace-from": "^7.22.11",
- "@babel/plugin-transform-for-of": "^7.22.15",
- "@babel/plugin-transform-function-name": "^7.22.5",
- "@babel/plugin-transform-json-strings": "^7.22.11",
- "@babel/plugin-transform-literals": "^7.22.5",
- "@babel/plugin-transform-logical-assignment-operators": "^7.22.11",
- "@babel/plugin-transform-member-expression-literals": "^7.22.5",
- "@babel/plugin-transform-modules-amd": "^7.23.0",
- "@babel/plugin-transform-modules-commonjs": "^7.23.0",
- "@babel/plugin-transform-modules-systemjs": "^7.23.0",
- "@babel/plugin-transform-modules-umd": "^7.22.5",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5",
- "@babel/plugin-transform-new-target": "^7.22.5",
- "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11",
- "@babel/plugin-transform-numeric-separator": "^7.22.11",
- "@babel/plugin-transform-object-rest-spread": "^7.22.15",
- "@babel/plugin-transform-object-super": "^7.22.5",
- "@babel/plugin-transform-optional-catch-binding": "^7.22.11",
- "@babel/plugin-transform-optional-chaining": "^7.23.0",
- "@babel/plugin-transform-parameters": "^7.22.15",
- "@babel/plugin-transform-private-methods": "^7.22.5",
- "@babel/plugin-transform-private-property-in-object": "^7.22.11",
- "@babel/plugin-transform-property-literals": "^7.22.5",
- "@babel/plugin-transform-regenerator": "^7.22.10",
- "@babel/plugin-transform-reserved-words": "^7.22.5",
- "@babel/plugin-transform-shorthand-properties": "^7.22.5",
- "@babel/plugin-transform-spread": "^7.22.5",
- "@babel/plugin-transform-sticky-regex": "^7.22.5",
- "@babel/plugin-transform-template-literals": "^7.22.5",
- "@babel/plugin-transform-typeof-symbol": "^7.22.5",
- "@babel/plugin-transform-unicode-escapes": "^7.22.10",
- "@babel/plugin-transform-unicode-property-regex": "^7.22.5",
- "@babel/plugin-transform-unicode-regex": "^7.22.5",
- "@babel/plugin-transform-unicode-sets-regex": "^7.22.5",
- "@babel/preset-modules": "0.1.6-no-external-plugins",
- "@babel/types": "^7.23.0",
- "babel-plugin-polyfill-corejs2": "^0.4.6",
- "babel-plugin-polyfill-corejs3": "^0.8.5",
- "babel-plugin-polyfill-regenerator": "^0.5.3",
- "core-js-compat": "^3.31.0",
- "semver": "^6.3.1"
- },
+ "node_modules/big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": "*"
}
},
- "node_modules/@babel/preset-env/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
}
},
- "node_modules/@babel/preset-flow": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.22.15.tgz",
- "integrity": "sha512-dB5aIMqpkgbTfN5vDdTRPzjqtWiZcRESNR88QYnoPR+bmdYoluOzMX9tQerTv0XzSgZYctPfO1oc0N5zdog1ew==",
- "dev": true,
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-validator-option": "^7.22.15",
- "@babel/plugin-transform-flow-strip-types": "^7.22.5"
+ "fill-range": "^7.1.1"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">=8"
}
},
- "node_modules/@babel/preset-modules": {
- "version": "0.1.6-no-external-plugins",
- "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
- "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@babel/types": "^7.4.4",
- "esutils": "^2.0.2"
+ "node_modules/browserslist": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz",
+ "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "peer": true,
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001688",
+ "electron-to-chromium": "^1.5.73",
+ "node-releases": "^2.0.19",
+ "update-browserslist-db": "^1.1.1"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
}
},
- "node_modules/@babel/preset-react": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.15.tgz",
- "integrity": "sha512-Csy1IJ2uEh/PecCBXXoZGAZBeCATTuePzCSB7dLYWS0vOEj6CNpjxIhW4duWwZodBNueH7QO14WbGn8YyeuN9w==",
- "dev": true,
+ "node_modules/buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-validator-option": "^7.22.15",
- "@babel/plugin-transform-react-display-name": "^7.22.5",
- "@babel/plugin-transform-react-jsx": "^7.22.15",
- "@babel/plugin-transform-react-jsx-development": "^7.22.5",
- "@babel/plugin-transform-react-pure-annotations": "^7.22.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
}
},
- "node_modules/@babel/preset-typescript": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.2.tgz",
- "integrity": "sha512-u4UJc1XsS1GhIGteM8rnGiIvf9rJpiVgMEeCnwlLA7WJPC+jcXWJAGxYmeqs5hOZD8BbAfnV5ezBOxQbb4OUxA==",
- "dev": true,
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "peer": true
+ },
+ "node_modules/busboy": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/helper-validator-option": "^7.22.15",
- "@babel/plugin-syntax-jsx": "^7.22.5",
- "@babel/plugin-transform-modules-commonjs": "^7.23.0",
- "@babel/plugin-transform-typescript": "^7.22.15"
+ "streamsearch": "^1.1.0"
},
"engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "node": ">=10.16.0"
}
},
- "node_modules/@babel/register": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.22.15.tgz",
- "integrity": "sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg==",
- "dev": true,
+ "node_modules/call-bind": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
+ "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
"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"
+ "call-bind-apply-helpers": "^1.0.0",
+ "es-define-property": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.2"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 0.4"
},
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@babel/register/node_modules/find-cache-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
- "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
- "dev": true,
+ "node_modules/call-bind-apply-helpers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
"dependencies": {
- "commondir": "^1.0.1",
- "make-dir": "^2.0.0",
- "pkg-dir": "^3.0.0"
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2"
},
"engines": {
- "node": ">=6"
+ "node": ">= 0.4"
}
},
- "node_modules/@babel/register/node_modules/find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
+ "node_modules/call-bound": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
"dependencies": {
- "locate-path": "^3.0.0"
+ "call-bind-apply-helpers": "^1.0.2",
+ "get-intrinsic": "^1.3.0"
},
"engines": {
- "node": ">=6"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@babel/register/node_modules/locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "dependencies": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"engines": {
"node": ">=6"
}
},
- "node_modules/@babel/register/node_modules/make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "dependencies": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- },
- "engines": {
- "node": ">=6"
+ "node_modules/camera-controls": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/camera-controls/-/camera-controls-2.10.0.tgz",
+ "integrity": "sha512-vBQ5Daxv4KRsn07U/VqkPxoqD8U+S++0oq5NLf4HevMuh/BDta3rg49e/P564AMzFPBePQeXDKOkiIezRgyDwg==",
+ "peerDependencies": {
+ "three": ">=0.126.1"
}
},
- "node_modules/@babel/register/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001706",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001706.tgz",
+ "integrity": "sha512-3ZczoTApMAZwPKYWmwVbQMFpXBDds3/0VciVoUwPUbldlYyVLmRVuRs/PcUZtHpbLRpzzDvrvnFuREsGt6lUug==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ]
+ },
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dependencies": {
- "p-try": "^2.0.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/@babel/register/node_modules/p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
+ "node_modules/chokidar": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
+ "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
"dependencies": {
- "p-limit": "^2.0.0"
+ "readdirp": "^4.0.1"
},
"engines": {
- "node": ">=6"
+ "node": ">= 14.16.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
}
},
- "node_modules/@babel/register/node_modules/path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true,
+ "node_modules/chrome-trace-event": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
+ "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
+ "peer": true,
"engines": {
- "node": ">=4"
+ "node": ">=6.0"
}
},
- "node_modules/@babel/register/node_modules/pkg-dir": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
- "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
- "dev": true,
+ "node_modules/client-only": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
+ "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
- "find-up": "^3.0.0"
+ "color-name": "~1.1.4"
},
"engines": {
- "node": ">=6"
+ "node": ">=7.0.0"
}
},
- "node_modules/@babel/register/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
- "node_modules/@babel/regjsgen": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
- "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==",
- "dev": true
+ "node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
},
- "node_modules/@babel/runtime": {
- "version": "7.22.11",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.11.tgz",
- "integrity": "sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==",
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+ },
+ "node_modules/cross-env": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
+ "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
"dependencies": {
- "regenerator-runtime": "^0.14.0"
+ "cross-spawn": "^7.0.1"
+ },
+ "bin": {
+ "cross-env": "src/bin/cross-env.js",
+ "cross-env-shell": "src/bin/cross-env-shell.js"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=10.14",
+ "npm": ">=6",
+ "yarn": ">=1"
}
},
- "node_modules/@babel/template": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
- "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
- "dev": true,
+ "node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
"dependencies": {
- "@babel/code-frame": "^7.22.13",
- "@babel/parser": "^7.22.15",
- "@babel/types": "^7.22.15"
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 8"
}
},
- "node_modules/@babel/traverse": {
- "version": "7.23.2",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz",
- "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==",
- "dev": true,
+ "node_modules/csstype": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
+ },
+ "node_modules/damerau-levenshtein": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
+ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA=="
+ },
+ "node_modules/data-view-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz",
+ "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==",
"dependencies": {
- "@babel/code-frame": "^7.22.13",
- "@babel/generator": "^7.23.0",
- "@babel/helper-environment-visitor": "^7.22.20",
- "@babel/helper-function-name": "^7.23.0",
- "@babel/helper-hoist-variables": "^7.22.5",
- "@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/parser": "^7.23.0",
- "@babel/types": "^7.23.0",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
+ "call-bound": "^1.0.3",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.2"
},
"engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse/node_modules/globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true,
- "engines": {
- "node": ">=4"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@babel/types": {
- "version": "7.23.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz",
- "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==",
- "dev": true,
+ "node_modules/data-view-byte-length": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz",
+ "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==",
"dependencies": {
- "@babel/helper-string-parser": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.20",
- "to-fast-properties": "^2.0.0"
+ "call-bound": "^1.0.3",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.2"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/inspect-js"
}
},
- "node_modules/@base2/pretty-print-object": {
+ "node_modules/data-view-byte-offset": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz",
- "integrity": "sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==",
- "dev": true
- },
- "node_modules/@bcoe/v8-coverage": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
- "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
- "dev": true
- },
- "node_modules/@choojs/findup": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/@choojs/findup/-/findup-0.2.1.tgz",
- "integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==",
+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz",
+ "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==",
"dependencies": {
- "commander": "^2.15.1"
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
},
- "bin": {
- "findup": "bin/findup.js"
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@colors/colors": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
- "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
- "dev": true,
- "optional": true,
+ "node_modules/debug": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
+ "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
"engines": {
- "node": ">=0.1.90"
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
}
},
- "node_modules/@discoveryjs/json-ext": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
- "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
- "dev": true,
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
+ },
+ "node_modules/define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ },
"engines": {
- "node": ">=10.0.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@emotion/use-insertion-effect-with-fallbacks": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz",
- "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==",
- "dev": true,
- "peerDependencies": {
- "react": ">=16.8.0"
+ "node_modules/define-properties": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+ "dependencies": {
+ "define-data-property": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@esbuild/android-arm": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
- "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
+ "node_modules/detect-gpu": {
+ "version": "5.0.70",
+ "resolved": "https://registry.npmjs.org/detect-gpu/-/detect-gpu-5.0.70.tgz",
+ "integrity": "sha512-bqerEP1Ese6nt3rFkwPnGbsUF9a4q+gMmpTVVOEzoCyeCc+y7/RvJnQZJx1JwhgQI5Ntg0Kgat8Uu7XpBqnz1w==",
+ "dependencies": {
+ "webgl-constants": "^1.1.1"
+ }
+ },
+ "node_modules/detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
"optional": true,
- "os": [
- "android"
- ],
+ "bin": {
+ "detect-libc": "bin/detect-libc.js"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=0.10"
}
},
- "node_modules/@esbuild/android-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
- "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
+ "node_modules/dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dependencies": {
+ "path-type": "^4.0.0"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=8"
}
},
- "node_modules/@esbuild/android-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
- "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=6.0.0"
}
},
- "node_modules/@esbuild/darwin-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
- "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
+ "node_modules/draco3d": {
+ "version": "1.5.7",
+ "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.7.tgz",
+ "integrity": "sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ=="
+ },
+ "node_modules/dunder-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.2.0"
+ },
"engines": {
- "node": ">=12"
+ "node": ">= 0.4"
}
},
- "node_modules/@esbuild/darwin-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
- "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.121",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.121.tgz",
+ "integrity": "sha512-gpIEzIb3uvm6V8IK452TvzOvZ3EAF8D5i11SMUG7BjpF2aalh5KyKX5dO+GDW5m9Qdia1ejLm6WM5NOIOd7sbQ==",
+ "peer": true
+ },
+ "node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
+ },
+ "node_modules/emojis-list": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
"engines": {
- "node": ">=12"
+ "node": ">= 4"
}
},
- "node_modules/@esbuild/freebsd-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
- "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
+ "node_modules/enhanced-resolve": {
+ "version": "5.18.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz",
+ "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==",
+ "peer": true,
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ },
"engines": {
- "node": ">=12"
+ "node": ">=10.13.0"
}
},
- "node_modules/@esbuild/freebsd-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
- "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
+ "node_modules/es-abstract": {
+ "version": "1.23.9",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz",
+ "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.2",
+ "arraybuffer.prototype.slice": "^1.0.4",
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "data-view-buffer": "^1.0.2",
+ "data-view-byte-length": "^1.0.2",
+ "data-view-byte-offset": "^1.0.1",
+ "es-define-property": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-set-tostringtag": "^2.1.0",
+ "es-to-primitive": "^1.3.0",
+ "function.prototype.name": "^1.1.8",
+ "get-intrinsic": "^1.2.7",
+ "get-proto": "^1.0.0",
+ "get-symbol-description": "^1.1.0",
+ "globalthis": "^1.0.4",
+ "gopd": "^1.2.0",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "internal-slot": "^1.1.0",
+ "is-array-buffer": "^3.0.5",
+ "is-callable": "^1.2.7",
+ "is-data-view": "^1.0.2",
+ "is-regex": "^1.2.1",
+ "is-shared-array-buffer": "^1.0.4",
+ "is-string": "^1.1.1",
+ "is-typed-array": "^1.1.15",
+ "is-weakref": "^1.1.0",
+ "math-intrinsics": "^1.1.0",
+ "object-inspect": "^1.13.3",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.7",
+ "own-keys": "^1.0.1",
+ "regexp.prototype.flags": "^1.5.3",
+ "safe-array-concat": "^1.1.3",
+ "safe-push-apply": "^1.0.0",
+ "safe-regex-test": "^1.1.0",
+ "set-proto": "^1.0.0",
+ "string.prototype.trim": "^1.2.10",
+ "string.prototype.trimend": "^1.0.9",
+ "string.prototype.trimstart": "^1.0.8",
+ "typed-array-buffer": "^1.0.3",
+ "typed-array-byte-length": "^1.0.3",
+ "typed-array-byte-offset": "^1.0.4",
+ "typed-array-length": "^1.0.7",
+ "unbox-primitive": "^1.1.0",
+ "which-typed-array": "^1.1.18"
+ },
"engines": {
- "node": ">=12"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@esbuild/linux-arm": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
- "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "node_modules/es-define-property": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
"engines": {
- "node": ">=12"
+ "node": ">= 0.4"
}
},
- "node_modules/@esbuild/linux-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
- "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
"engines": {
- "node": ">=12"
+ "node": ">= 0.4"
}
},
- "node_modules/@esbuild/linux-ia32": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
- "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "node_modules/es-iterator-helpers": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz",
+ "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==",
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.6",
+ "es-errors": "^1.3.0",
+ "es-set-tostringtag": "^2.0.3",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.6",
+ "globalthis": "^1.0.4",
+ "gopd": "^1.2.0",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "internal-slot": "^1.1.0",
+ "iterator.prototype": "^1.1.4",
+ "safe-array-concat": "^1.1.3"
+ },
"engines": {
- "node": ">=12"
+ "node": ">= 0.4"
}
},
- "node_modules/@esbuild/linux-loong64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
- "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "node_modules/es-module-lexer": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz",
+ "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==",
+ "peer": true
+ },
+ "node_modules/es-object-atoms": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
"engines": {
- "node": ">=12"
+ "node": ">= 0.4"
}
},
- "node_modules/@esbuild/linux-mips64el": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
- "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "node_modules/es-set-tostringtag": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.6",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.2"
+ },
"engines": {
- "node": ">=12"
+ "node": ">= 0.4"
}
},
- "node_modules/@esbuild/linux-ppc64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
- "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "node_modules/es-shim-unscopables": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz",
+ "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==",
+ "dependencies": {
+ "hasown": "^2.0.2"
+ },
"engines": {
- "node": ">=12"
+ "node": ">= 0.4"
}
},
- "node_modules/@esbuild/linux-riscv64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
- "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "node_modules/es-to-primitive": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz",
+ "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==",
+ "dependencies": {
+ "is-callable": "^1.2.7",
+ "is-date-object": "^1.0.5",
+ "is-symbol": "^1.0.4"
+ },
"engines": {
- "node": ">=12"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/@esbuild/linux-s390x": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
- "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "peer": true,
"engines": {
- "node": ">=12"
+ "node": ">=6"
}
},
- "node_modules/@esbuild/linux-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
- "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/netbsd-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
- "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/openbsd-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
- "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/sunos-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
- "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
- "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-ia32": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
- "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
- "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@eslint-community/eslint-utils": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
- "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
- "dependencies": {
- "eslint-visitor-keys": "^3.3.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
- }
- },
- "node_modules/@eslint-community/regexpp": {
- "version": "4.8.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.8.0.tgz",
- "integrity": "sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==",
- "engines": {
- "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
- }
- },
- "node_modules/@eslint/eslintrc": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz",
- "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==",
- "dependencies": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^9.6.0",
- "globals": "^13.19.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/@eslint/js": {
- "version": "8.47.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.47.0.tgz",
- "integrity": "sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og==",
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- }
- },
- "node_modules/@fal-works/esbuild-plugin-global-externals": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz",
- "integrity": "sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==",
- "dev": true
- },
- "node_modules/@floating-ui/core": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz",
- "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==",
- "dev": true,
- "dependencies": {
- "@floating-ui/utils": "^0.1.3"
- }
- },
- "node_modules/@floating-ui/dom": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz",
- "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==",
- "dev": true,
- "dependencies": {
- "@floating-ui/core": "^1.4.2",
- "@floating-ui/utils": "^0.1.3"
- }
- },
- "node_modules/@floating-ui/react-dom": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.2.tgz",
- "integrity": "sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==",
- "dev": true,
- "dependencies": {
- "@floating-ui/dom": "^1.5.1"
- },
- "peerDependencies": {
- "react": ">=16.8.0",
- "react-dom": ">=16.8.0"
- }
- },
- "node_modules/@floating-ui/utils": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz",
- "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==",
- "dev": true
- },
- "node_modules/@funtech-inc/spice": {
- "version": "1.2.18",
- "resolved": "https://registry.npmjs.org/@funtech-inc/spice/-/spice-1.2.18.tgz",
- "integrity": "sha512-pum0I9F49F52KAPm38NwwK0ujQmMmR4vQtlZ/riXJnpZdJ8gQitYGTEeqlxFh3XtSqNPLXYU17LR3nyejJv2hQ==",
- "peerDependencies": {
- "gsap": "^3.12.5",
- "react": "^18.2.0",
- "react-dom": ">=18.0"
- }
- },
- "node_modules/@humanwhocodes/config-array": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz",
- "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==",
- "dependencies": {
- "@humanwhocodes/object-schema": "^1.2.1",
- "debug": "^4.1.1",
- "minimatch": "^3.0.5"
- },
- "engines": {
- "node": ">=10.10.0"
- }
- },
- "node_modules/@humanwhocodes/module-importer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
- "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
- "engines": {
- "node": ">=12.22"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
- }
- },
- "node_modules/@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA=="
- },
- "node_modules/@isaacs/cliui": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
- "dev": true,
- "dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "dev": true,
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
- "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
- "dev": true,
- "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"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dev": true,
- "dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/schema": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
- "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/schemas": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
- "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
- "dev": true,
- "dependencies": {
- "@sinclair/typebox": "^0.27.8"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/transform": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
- "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.11.6",
- "@jest/types": "^29.6.3",
- "@jridgewell/trace-mapping": "^0.3.18",
- "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.7.0",
- "jest-regex-util": "^29.6.3",
- "jest-util": "^29.7.0",
- "micromatch": "^4.0.4",
- "pirates": "^4.0.4",
- "slash": "^3.0.0",
- "write-file-atomic": "^4.0.2"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/types": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
- "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
- "dev": true,
- "dependencies": {
- "@jest/schemas": "^29.6.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"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
- "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
- "dependencies": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
- "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/source-map": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz",
- "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.0",
- "@jridgewell/trace-mapping": "^0.3.9"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.15",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
- "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.19",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz",
- "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "node_modules/@juggle/resize-observer": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz",
- "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==",
- "dev": true
- },
- "node_modules/@mdx-js/react": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-2.3.0.tgz",
- "integrity": "sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==",
- "dev": true,
- "dependencies": {
- "@types/mdx": "^2.0.0",
- "@types/react": ">=16"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- },
- "peerDependencies": {
- "react": ">=16"
- }
- },
- "node_modules/@mediapipe/tasks-vision": {
- "version": "0.10.8",
- "resolved": "https://registry.npmjs.org/@mediapipe/tasks-vision/-/tasks-vision-0.10.8.tgz",
- "integrity": "sha512-Rp7ll8BHrKB3wXaRFKhrltwZl1CiXGdibPxuWXvqGnKTnv8fqa/nvftYNuSbf+pbJWKYCXdBtYTITdAUTGGh0Q=="
- },
- "node_modules/@ndelangen/get-tarball": {
- "version": "3.0.9",
- "resolved": "https://registry.npmjs.org/@ndelangen/get-tarball/-/get-tarball-3.0.9.tgz",
- "integrity": "sha512-9JKTEik4vq+yGosHYhZ1tiH/3WpUS0Nh0kej4Agndhox8pAdWhEx5knFVRcb/ya9knCRCs1rPxNrSXTDdfVqpA==",
- "dev": true,
- "dependencies": {
- "gunzip-maybe": "^1.4.2",
- "pump": "^3.0.0",
- "tar-fs": "^2.1.1"
- }
- },
- "node_modules/@next/env": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.3.tgz",
- "integrity": "sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA=="
- },
- "node_modules/@next/eslint-plugin-next": {
- "version": "13.4.19",
- "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.4.19.tgz",
- "integrity": "sha512-N/O+zGb6wZQdwu6atMZHbR7T9Np5SUFUjZqCbj0sXm+MwQO35M8TazVB4otm87GkXYs2l6OPwARd3/PUWhZBVQ==",
- "dependencies": {
- "glob": "7.1.7"
- }
- },
- "node_modules/@next/swc-darwin-arm64": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.3.tgz",
- "integrity": "sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-darwin-x64": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.3.tgz",
- "integrity": "sha512-6adp7waE6P1TYFSXpY366xwsOnEXM+y1kgRpjSRVI2CBDOcbRjsJ67Z6EgKIqWIue52d2q/Mx8g9MszARj8IEA==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-arm64-gnu": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.3.tgz",
- "integrity": "sha512-cuzCE/1G0ZSnTAHJPUT1rPgQx1w5tzSX7POXSLaS7w2nIUJUD+e25QoXD/hMfxbsT9rslEXugWypJMILBj/QsA==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-arm64-musl": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.3.tgz",
- "integrity": "sha512-0D4/oMM2Y9Ta3nGuCcQN8jjJjmDPYpHX9OJzqk42NZGJocU2MqhBq5tWkJrUQOQY9N+In9xOdymzapM09GeiZw==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-x64-gnu": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.3.tgz",
- "integrity": "sha512-ENPiNnBNDInBLyUU5ii8PMQh+4XLr4pG51tOp6aJ9xqFQ2iRI6IH0Ds2yJkAzNV1CfyagcyzPfROMViS2wOZ9w==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-linux-x64-musl": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.3.tgz",
- "integrity": "sha512-BTAbq0LnCbF5MtoM7I/9UeUu/8ZBY0i8SFjUMCbPDOLv+un67e2JgyN4pmgfXBwy/I+RHu8q+k+MCkDN6P9ViQ==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-win32-arm64-msvc": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.3.tgz",
- "integrity": "sha512-AEHIw/dhAMLNFJFJIJIyOFDzrzI5bAjI9J26gbO5xhAKHYTZ9Or04BesFPXiAYXDNdrwTP2dQceYA4dL1geu8A==",
- "cpu": [
- "arm64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-win32-ia32-msvc": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.3.tgz",
- "integrity": "sha512-vga40n1q6aYb0CLrM+eEmisfKCR45ixQYXuBXxOOmmoV8sYST9k7E3US32FsY+CkkF7NtzdcebiFT4CHuMSyZw==",
- "cpu": [
- "ia32"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@next/swc-win32-x64-msvc": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.3.tgz",
- "integrity": "sha512-Q1/zm43RWynxrO7lW4ehciQVj+5ePBhOK+/K2P7pLFX3JaJ/IZVC69SHidrmZSOkqz7ECIOhhy7XhAFG4JYyHA==",
- "cpu": [
- "x64"
- ],
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "dev": true,
- "optional": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@pmmmwh/react-refresh-webpack-plugin": {
- "version": "0.5.11",
- "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.11.tgz",
- "integrity": "sha512-7j/6vdTym0+qZ6u4XbSAxrWBGYSdCfTzySkj7WAFgDLmSyWlOrWvpyzxlFh5jtw9dn0oL/jtW+06XfFiisN3JQ==",
- "dev": true,
- "dependencies": {
- "ansi-html-community": "^0.0.8",
- "common-path-prefix": "^3.0.0",
- "core-js-pure": "^3.23.3",
- "error-stack-parser": "^2.0.6",
- "find-up": "^5.0.0",
- "html-entities": "^2.1.0",
- "loader-utils": "^2.0.4",
- "schema-utils": "^3.0.0",
- "source-map": "^0.7.3"
- },
- "engines": {
- "node": ">= 10.13"
- },
- "peerDependencies": {
- "@types/webpack": "4.x || 5.x",
- "react-refresh": ">=0.10.0 <1.0.0",
- "sockjs-client": "^1.4.0",
- "type-fest": ">=0.17.0 <5.0.0",
- "webpack": ">=4.43.0 <6.0.0",
- "webpack-dev-server": "3.x || 4.x",
- "webpack-hot-middleware": "2.x",
- "webpack-plugin-serve": "0.x || 1.x"
- },
- "peerDependenciesMeta": {
- "@types/webpack": {
- "optional": true
- },
- "sockjs-client": {
- "optional": true
- },
- "type-fest": {
- "optional": true
- },
- "webpack-dev-server": {
- "optional": true
- },
- "webpack-hot-middleware": {
- "optional": true
- },
- "webpack-plugin-serve": {
- "optional": true
- }
- }
- },
- "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "dev": true,
- "bin": {
- "json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/loader-utils": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
- "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
- "dev": true,
- "dependencies": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^2.1.2"
- },
- "engines": {
- "node": ">=8.9.0"
- }
- },
- "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
- "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@radix-ui/number": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.0.1.tgz",
- "integrity": "sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10"
- }
- },
- "node_modules/@radix-ui/primitive": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz",
- "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10"
- }
- },
- "node_modules/@radix-ui/react-arrow": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.0.3.tgz",
- "integrity": "sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/react-primitive": "1.0.3"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-collection": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.0.3.tgz",
- "integrity": "sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/react-compose-refs": "1.0.1",
- "@radix-ui/react-context": "1.0.1",
- "@radix-ui/react-primitive": "1.0.3",
- "@radix-ui/react-slot": "1.0.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-compose-refs": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz",
- "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-context": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz",
- "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-direction": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.0.1.tgz",
- "integrity": "sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-dismissable-layer": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.4.tgz",
- "integrity": "sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/primitive": "1.0.1",
- "@radix-ui/react-compose-refs": "1.0.1",
- "@radix-ui/react-primitive": "1.0.3",
- "@radix-ui/react-use-callback-ref": "1.0.1",
- "@radix-ui/react-use-escape-keydown": "1.0.3"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-focus-guards": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz",
- "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-focus-scope": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.3.tgz",
- "integrity": "sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/react-compose-refs": "1.0.1",
- "@radix-ui/react-primitive": "1.0.3",
- "@radix-ui/react-use-callback-ref": "1.0.1"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-icons": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.0.tgz",
- "integrity": "sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==",
- "dev": true,
- "peerDependencies": {
- "react": "^16.x || ^17.x || ^18.x"
- }
- },
- "node_modules/@radix-ui/react-id": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz",
- "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/react-use-layout-effect": "1.0.1"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-popper": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.1.2.tgz",
- "integrity": "sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@floating-ui/react-dom": "^2.0.0",
- "@radix-ui/react-arrow": "1.0.3",
- "@radix-ui/react-compose-refs": "1.0.1",
- "@radix-ui/react-context": "1.0.1",
- "@radix-ui/react-primitive": "1.0.3",
- "@radix-ui/react-use-callback-ref": "1.0.1",
- "@radix-ui/react-use-layout-effect": "1.0.1",
- "@radix-ui/react-use-rect": "1.0.1",
- "@radix-ui/react-use-size": "1.0.1",
- "@radix-ui/rect": "1.0.1"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-portal": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.3.tgz",
- "integrity": "sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/react-primitive": "1.0.3"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-primitive": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz",
- "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/react-slot": "1.0.2"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-roving-focus": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.0.4.tgz",
- "integrity": "sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/primitive": "1.0.1",
- "@radix-ui/react-collection": "1.0.3",
- "@radix-ui/react-compose-refs": "1.0.1",
- "@radix-ui/react-context": "1.0.1",
- "@radix-ui/react-direction": "1.0.1",
- "@radix-ui/react-id": "1.0.1",
- "@radix-ui/react-primitive": "1.0.3",
- "@radix-ui/react-use-callback-ref": "1.0.1",
- "@radix-ui/react-use-controllable-state": "1.0.1"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-select": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-1.2.2.tgz",
- "integrity": "sha512-zI7McXr8fNaSrUY9mZe4x/HC0jTLY9fWNhO1oLWYMQGDXuV4UCivIGTxwioSzO0ZCYX9iSLyWmAh/1TOmX3Cnw==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/number": "1.0.1",
- "@radix-ui/primitive": "1.0.1",
- "@radix-ui/react-collection": "1.0.3",
- "@radix-ui/react-compose-refs": "1.0.1",
- "@radix-ui/react-context": "1.0.1",
- "@radix-ui/react-direction": "1.0.1",
- "@radix-ui/react-dismissable-layer": "1.0.4",
- "@radix-ui/react-focus-guards": "1.0.1",
- "@radix-ui/react-focus-scope": "1.0.3",
- "@radix-ui/react-id": "1.0.1",
- "@radix-ui/react-popper": "1.1.2",
- "@radix-ui/react-portal": "1.0.3",
- "@radix-ui/react-primitive": "1.0.3",
- "@radix-ui/react-slot": "1.0.2",
- "@radix-ui/react-use-callback-ref": "1.0.1",
- "@radix-ui/react-use-controllable-state": "1.0.1",
- "@radix-ui/react-use-layout-effect": "1.0.1",
- "@radix-ui/react-use-previous": "1.0.1",
- "@radix-ui/react-visually-hidden": "1.0.3",
- "aria-hidden": "^1.1.1",
- "react-remove-scroll": "2.5.5"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-separator": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.0.3.tgz",
- "integrity": "sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/react-primitive": "1.0.3"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-slot": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz",
- "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/react-compose-refs": "1.0.1"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-toggle": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.0.3.tgz",
- "integrity": "sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/primitive": "1.0.1",
- "@radix-ui/react-primitive": "1.0.3",
- "@radix-ui/react-use-controllable-state": "1.0.1"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-toggle-group": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.0.4.tgz",
- "integrity": "sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/primitive": "1.0.1",
- "@radix-ui/react-context": "1.0.1",
- "@radix-ui/react-direction": "1.0.1",
- "@radix-ui/react-primitive": "1.0.3",
- "@radix-ui/react-roving-focus": "1.0.4",
- "@radix-ui/react-toggle": "1.0.3",
- "@radix-ui/react-use-controllable-state": "1.0.1"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-toolbar": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-toolbar/-/react-toolbar-1.0.4.tgz",
- "integrity": "sha512-tBgmM/O7a07xbaEkYJWYTXkIdU/1pW4/KZORR43toC/4XWyBCURK0ei9kMUdp+gTPPKBgYLxXmRSH1EVcIDp8Q==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/primitive": "1.0.1",
- "@radix-ui/react-context": "1.0.1",
- "@radix-ui/react-direction": "1.0.1",
- "@radix-ui/react-primitive": "1.0.3",
- "@radix-ui/react-roving-focus": "1.0.4",
- "@radix-ui/react-separator": "1.0.3",
- "@radix-ui/react-toggle-group": "1.0.4"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-callback-ref": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz",
- "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-controllable-state": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz",
- "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/react-use-callback-ref": "1.0.1"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-escape-keydown": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz",
- "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/react-use-callback-ref": "1.0.1"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-layout-effect": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz",
- "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-previous": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.0.1.tgz",
- "integrity": "sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-rect": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.0.1.tgz",
- "integrity": "sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/rect": "1.0.1"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-use-size": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.0.1.tgz",
- "integrity": "sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/react-use-layout-effect": "1.0.1"
- },
- "peerDependencies": {
- "@types/react": "*",
- "react": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/react-visually-hidden": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.3.tgz",
- "integrity": "sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10",
- "@radix-ui/react-primitive": "1.0.3"
- },
- "peerDependencies": {
- "@types/react": "*",
- "@types/react-dom": "*",
- "react": "^16.8 || ^17.0 || ^18.0",
- "react-dom": "^16.8 || ^17.0 || ^18.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "@types/react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@radix-ui/rect": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.0.1.tgz",
- "integrity": "sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==",
- "dev": true,
- "dependencies": {
- "@babel/runtime": "^7.13.10"
- }
- },
- "node_modules/@react-spring/animated": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.6.1.tgz",
- "integrity": "sha512-ls/rJBrAqiAYozjLo5EPPLLOb1LM0lNVQcXODTC1SMtS6DbuBCPaKco5svFUQFMP2dso3O+qcC4k9FsKc0KxMQ==",
- "dependencies": {
- "@react-spring/shared": "~9.6.1",
- "@react-spring/types": "~9.6.1"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@react-spring/core": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.6.1.tgz",
- "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"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/react-spring/donate"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@react-spring/rafz": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.6.1.tgz",
- "integrity": "sha512-v6qbgNRpztJFFfSE3e2W1Uz+g8KnIBs6SmzCzcVVF61GdGfGOuBrbjIcp+nUz301awVmREKi4eMQb2Ab2gGgyQ=="
- },
- "node_modules/@react-spring/shared": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.6.1.tgz",
- "integrity": "sha512-PBFBXabxFEuF8enNLkVqMC9h5uLRBo6GQhRMQT/nRTnemVENimgRd+0ZT4yFnAQ0AxWNiJfX3qux+bW2LbG6Bw==",
- "dependencies": {
- "@react-spring/rafz": "~9.6.1",
- "@react-spring/types": "~9.6.1"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@react-spring/three": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/@react-spring/three/-/three-9.6.1.tgz",
- "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"
- },
- "peerDependencies": {
- "@react-three/fiber": ">=6.0",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "three": ">=0.126"
- }
- },
- "node_modules/@react-spring/types": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.6.1.tgz",
- "integrity": "sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q=="
- },
- "node_modules/@react-three/drei": {
- "version": "9.105.6",
- "resolved": "https://registry.npmjs.org/@react-three/drei/-/drei-9.105.6.tgz",
- "integrity": "sha512-JBgYeV36N9N9f1c3o1ZfLYW4rXZA7UQTq32Y8s3DEF6lwj1/y+RP/yq2VG5I8OzUPl7gsmWdy8fpWZgrlAqUpQ==",
- "dependencies": {
- "@babel/runtime": "^7.11.2",
- "@mediapipe/tasks-vision": "0.10.8",
- "@monogrid/gainmap-js": "^3.0.5",
- "@react-spring/three": "~9.6.1",
- "@use-gesture/react": "^10.2.24",
- "camera-controls": "^2.4.2",
- "cross-env": "^7.0.3",
- "detect-gpu": "^5.0.28",
- "glsl-noise": "^0.0.0",
- "hls.js": "1.3.5",
- "maath": "^0.10.7",
- "meshline": "^3.1.6",
- "react-composer": "^5.0.3",
- "stats-gl": "^2.0.0",
- "stats.js": "^0.17.0",
- "suspend-react": "^0.1.3",
- "three-mesh-bvh": "^0.7.0",
- "three-stdlib": "^2.29.9",
- "troika-three-text": "^0.49.0",
- "tunnel-rat": "^0.1.2",
- "utility-types": "^3.10.0",
- "uuid": "^9.0.1",
- "zustand": "^3.7.1"
- },
- "peerDependencies": {
- "@react-three/fiber": ">=8.0",
- "react": ">=18.0",
- "react-dom": ">=18.0",
- "three": ">=0.137"
- },
- "peerDependenciesMeta": {
- "react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@react-three/drei/node_modules/@monogrid/gainmap-js": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@monogrid/gainmap-js/-/gainmap-js-3.0.5.tgz",
- "integrity": "sha512-53sCTG4FaJBaAq/tcufARtVYDMDGqyBT9i7F453pWGhZ5LqubDHDWtYoHo9VhQqMcHTEexdJqSsR58y+9HVmQA==",
- "dependencies": {
- "promise-worker-transferable": "^1.0.4"
- },
- "peerDependencies": {
- "three": ">= 0.159.0"
- }
- },
- "node_modules/@react-three/drei/node_modules/zustand": {
- "version": "3.7.2",
- "resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz",
- "integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==",
- "engines": {
- "node": ">=12.7.0"
- },
- "peerDependencies": {
- "react": ">=16.8"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- }
- }
- },
- "node_modules/@react-three/fiber": {
- "version": "8.16.6",
- "resolved": "https://registry.npmjs.org/@react-three/fiber/-/fiber-8.16.6.tgz",
- "integrity": "sha512-sKEqocYKRI3deW7z9CAVjedDID1an2i8FwxQVv2reMJxzIxIlyxCYXMIAqXBCgHTFtVX2hWGTZYhLL5nyne8kA==",
- "dependencies": {
- "@babel/runtime": "^7.17.8",
- "@types/react-reconciler": "^0.26.7",
- "@types/webxr": "*",
- "base64-js": "^1.5.1",
- "buffer": "^6.0.3",
- "its-fine": "^1.0.6",
- "react-reconciler": "^0.27.0",
- "react-use-measure": "^2.1.1",
- "scheduler": "^0.21.0",
- "suspend-react": "^0.1.3",
- "zustand": "^3.7.1"
- },
- "peerDependencies": {
- "expo": ">=43.0",
- "expo-asset": ">=8.4",
- "expo-file-system": ">=11.0",
- "expo-gl": ">=11.0",
- "react": ">=18.0",
- "react-dom": ">=18.0",
- "react-native": ">=0.64",
- "three": ">=0.133"
- },
- "peerDependenciesMeta": {
- "expo": {
- "optional": true
- },
- "expo-asset": {
- "optional": true
- },
- "expo-file-system": {
- "optional": true
- },
- "expo-gl": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- },
- "react-native": {
- "optional": true
- }
- }
- },
- "node_modules/@react-three/fiber/node_modules/scheduler": {
- "version": "0.21.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz",
- "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==",
- "dependencies": {
- "loose-envify": "^1.1.0"
- }
- },
- "node_modules/@react-three/fiber/node_modules/zustand": {
- "version": "3.7.2",
- "resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz",
- "integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==",
- "engines": {
- "node": ">=12.7.0"
- },
- "peerDependencies": {
- "react": ">=16.8"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- }
- }
- },
- "node_modules/@rushstack/eslint-patch": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.3.3.tgz",
- "integrity": "sha512-0xd7qez0AQ+MbHatZTlI1gu5vkG8r7MYRUJAHPAHJBmGLs16zpkrpAVLvjQKQOqaXPDUBwOiJzNc00znHSCVBw=="
- },
- "node_modules/@sinclair/typebox": {
- "version": "0.27.8",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
- "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
- "dev": true
- },
- "node_modules/@stitches/react": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@stitches/react/-/react-1.2.8.tgz",
- "integrity": "sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA==",
- "dev": true,
- "peerDependencies": {
- "react": ">= 16.3.0"
- }
- },
- "node_modules/@storybook/addon-actions": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.5.3.tgz",
- "integrity": "sha512-v3yL6Eq/jCiXfA24JjRdbEQUuorms6tmrywaKcd1tAy4Ftgof0KHB4tTcTyiajrI5bh6PVJoRBkE8IDqmNAHkA==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.3",
- "@storybook/components": "7.5.3",
- "@storybook/core-events": "7.5.3",
- "@storybook/global": "^5.0.0",
- "@storybook/manager-api": "7.5.3",
- "@storybook/preview-api": "7.5.3",
- "@storybook/theming": "7.5.3",
- "@storybook/types": "7.5.3",
- "dequal": "^2.0.2",
- "lodash": "^4.17.21",
- "polished": "^4.2.2",
- "prop-types": "^15.7.2",
- "react-inspector": "^6.0.0",
- "telejson": "^7.2.0",
- "ts-dedent": "^2.0.0",
- "uuid": "^9.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@storybook/addon-backgrounds": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.5.3.tgz",
- "integrity": "sha512-UCOVd4UNIL5FRiwi9nyiWFocn/7ewwS6bIWnq66AaHg/sv92YwsPmgQJn0DMBGDOvUAWpiHdVsZNOTX6nvw4gA==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.3",
- "@storybook/components": "7.5.3",
- "@storybook/core-events": "7.5.3",
- "@storybook/global": "^5.0.0",
- "@storybook/manager-api": "7.5.3",
- "@storybook/preview-api": "7.5.3",
- "@storybook/theming": "7.5.3",
- "@storybook/types": "7.5.3",
- "memoizerific": "^1.11.3",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@storybook/addon-controls": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.5.3.tgz",
- "integrity": "sha512-KEuU4X5Xr6cJI9xrzOUVGEmUf1iHPfK7cj0GACKv0GElsdIsQryv+OZ7gRnvmNax/e2hm2t9cJcFxB24/p6rVg==",
- "dev": true,
- "dependencies": {
- "@storybook/blocks": "7.5.3",
- "@storybook/client-logger": "7.5.3",
- "@storybook/components": "7.5.3",
- "@storybook/core-common": "7.5.3",
- "@storybook/core-events": "7.5.3",
- "@storybook/manager-api": "7.5.3",
- "@storybook/node-logger": "7.5.3",
- "@storybook/preview-api": "7.5.3",
- "@storybook/theming": "7.5.3",
- "@storybook/types": "7.5.3",
- "lodash": "^4.17.21",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@storybook/addon-docs": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.5.3.tgz",
- "integrity": "sha512-JVQ6iCXKESij/SbE4Wq47dkSSgBRulvA8SUf8NWL5m9qpiHrg0lPSERHfoTLiB5uC/JwF0OKIlhxoWl+zCmtYg==",
- "dev": true,
- "dependencies": {
- "@jest/transform": "^29.3.1",
- "@mdx-js/react": "^2.1.5",
- "@storybook/blocks": "7.5.3",
- "@storybook/client-logger": "7.5.3",
- "@storybook/components": "7.5.3",
- "@storybook/csf-plugin": "7.5.3",
- "@storybook/csf-tools": "7.5.3",
- "@storybook/global": "^5.0.0",
- "@storybook/mdx2-csf": "^1.0.0",
- "@storybook/node-logger": "7.5.3",
- "@storybook/postinstall": "7.5.3",
- "@storybook/preview-api": "7.5.3",
- "@storybook/react-dom-shim": "7.5.3",
- "@storybook/theming": "7.5.3",
- "@storybook/types": "7.5.3",
- "fs-extra": "^11.1.0",
- "remark-external-links": "^8.0.0",
- "remark-slug": "^6.0.0",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-essentials": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.5.3.tgz",
- "integrity": "sha512-PYj6swEI4nEzIbOTyHJB8u3K8ABYKoaW8XB5emMwsnrzB/TN7auHVhze2bQ/+ax5wyPKZpArPjxbWlSHtSws+A==",
- "dev": true,
- "dependencies": {
- "@storybook/addon-actions": "7.5.3",
- "@storybook/addon-backgrounds": "7.5.3",
- "@storybook/addon-controls": "7.5.3",
- "@storybook/addon-docs": "7.5.3",
- "@storybook/addon-highlight": "7.5.3",
- "@storybook/addon-measure": "7.5.3",
- "@storybook/addon-outline": "7.5.3",
- "@storybook/addon-toolbars": "7.5.3",
- "@storybook/addon-viewport": "7.5.3",
- "@storybook/core-common": "7.5.3",
- "@storybook/manager-api": "7.5.3",
- "@storybook/node-logger": "7.5.3",
- "@storybook/preview-api": "7.5.3",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-highlight": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.5.3.tgz",
- "integrity": "sha512-jb+aNRhj+tFK7EqqTlNCjGkTrkWqWHGdD1ubgnj29v8XhRuCR9YboPS+306KYwBEkuF4kNCHZofLiEBPf6nCJg==",
- "dev": true,
- "dependencies": {
- "@storybook/core-events": "7.5.3",
- "@storybook/global": "^5.0.0",
- "@storybook/preview-api": "7.5.3"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/addon-interactions": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-7.5.3.tgz",
- "integrity": "sha512-gD3cU8sYSM/mdbA9ooYIb4c689JkDsJbZ17vfYJ5RjNkSmqKehybdpZOfkj27sVIyFtmscSi75t+pzK4Pv4rZw==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.3",
- "@storybook/components": "7.5.3",
- "@storybook/core-common": "7.5.3",
- "@storybook/core-events": "7.5.3",
- "@storybook/global": "^5.0.0",
- "@storybook/instrumenter": "7.5.3",
- "@storybook/manager-api": "7.5.3",
- "@storybook/preview-api": "7.5.3",
- "@storybook/theming": "7.5.3",
- "@storybook/types": "7.5.3",
- "jest-mock": "^27.0.6",
- "polished": "^4.2.2",
- "ts-dedent": "^2.2.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@storybook/addon-links": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.5.3.tgz",
- "integrity": "sha512-NcigW0HX8AllZ/KJ4u1KMiK30QvjqtC+zApI6Yc3tTaa6+BldbLv06fEgHgMY0yC8R+Ly9mUN7S1HiU7LQ7Qxg==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.3",
- "@storybook/core-events": "7.5.3",
- "@storybook/csf": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/manager-api": "7.5.3",
- "@storybook/preview-api": "7.5.3",
- "@storybook/router": "7.5.3",
- "@storybook/types": "7.5.3",
- "prop-types": "^15.7.2",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@storybook/addon-measure": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.5.3.tgz",
- "integrity": "sha512-fun9BqUTGXgcMpcbX9wUowGDkjCL8oKasZbjp/MvGM3vPTM6HQdwzHTLJGPBnmJ1xK92NhwFRs0BrQX6uF1yrg==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.3",
- "@storybook/components": "7.5.3",
- "@storybook/core-events": "7.5.3",
- "@storybook/global": "^5.0.0",
- "@storybook/manager-api": "7.5.3",
- "@storybook/preview-api": "7.5.3",
- "@storybook/types": "7.5.3",
- "tiny-invariant": "^1.3.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@storybook/addon-onboarding": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/@storybook/addon-onboarding/-/addon-onboarding-1.0.8.tgz",
- "integrity": "sha512-3WwCocUuTibHWO89uzAbeONEn6x9NkmxA0mOU4rYPhEsMQ4NDNDD1GXcievZmpwt5VviFgw5FRx8+BxPn54YmQ==",
- "dev": true,
- "dependencies": {
- "@storybook/telemetry": "^7.1.0-alpha.32",
- "react-confetti": "^6.1.0"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/addon-outline": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.5.3.tgz",
- "integrity": "sha512-c9vCi1SCGrtWr8qaOu/1GNWlrlrpl2lg4F9r+xtYf/KopenI3jSMz0YeTfmepZGAl+6Yc2Ywhm60jgpQ6SKciA==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.3",
- "@storybook/components": "7.5.3",
- "@storybook/core-events": "7.5.3",
- "@storybook/global": "^5.0.0",
- "@storybook/manager-api": "7.5.3",
- "@storybook/preview-api": "7.5.3",
- "@storybook/types": "7.5.3",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@storybook/addon-toolbars": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.5.3.tgz",
- "integrity": "sha512-KdLr4sGMJzhtjNTNE2ocfu58yOHHUyZ/cI3BTp7a0gq9YbUpHmC3XTNr26/yOYYrdjkiMD26XusJUjXe+/V2xw==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.3",
- "@storybook/components": "7.5.3",
- "@storybook/manager-api": "7.5.3",
- "@storybook/preview-api": "7.5.3",
- "@storybook/theming": "7.5.3"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@storybook/addon-viewport": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.5.3.tgz",
- "integrity": "sha512-gT2XX0NNBrzSs1nrxadl6LnvcwgN7z2R0LzTK8/hxvx4D0EnXrV3feXLzjewr8ZYjzfEeSpO+W+bQTVNm3fNsg==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.3",
- "@storybook/components": "7.5.3",
- "@storybook/core-events": "7.5.3",
- "@storybook/global": "^5.0.0",
- "@storybook/manager-api": "7.5.3",
- "@storybook/preview-api": "7.5.3",
- "@storybook/theming": "7.5.3",
- "memoizerific": "^1.11.3",
- "prop-types": "^15.7.2"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- }
- }
- },
- "node_modules/@storybook/blocks": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.5.3.tgz",
- "integrity": "sha512-Z8yF820v78clQWkwG5OA5qugbQn7rtutq9XCsd03NDB+IEfDaTFQAZG8gs62ZX2ZaXAJsqJSr/mL9oURzXto2A==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.3",
- "@storybook/client-logger": "7.5.3",
- "@storybook/components": "7.5.3",
- "@storybook/core-events": "7.5.3",
- "@storybook/csf": "^0.1.0",
- "@storybook/docs-tools": "7.5.3",
- "@storybook/global": "^5.0.0",
- "@storybook/manager-api": "7.5.3",
- "@storybook/preview-api": "7.5.3",
- "@storybook/theming": "7.5.3",
- "@storybook/types": "7.5.3",
- "@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.2.0",
- "tocbot": "^4.20.1",
- "ts-dedent": "^2.0.0",
- "util-deprecate": "^1.0.2"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/builder-manager": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.5.3.tgz",
- "integrity": "sha512-uf4Vyj8ofHaq94m065SMvFKak1XrrxgI83VZAxc2QjiPcbRwcVOZd+wcKFdZydqqA6FlBDdJrU+k9INA4Qkfcw==",
- "dev": true,
- "dependencies": {
- "@fal-works/esbuild-plugin-global-externals": "^2.1.2",
- "@storybook/core-common": "7.5.3",
- "@storybook/manager": "7.5.3",
- "@storybook/node-logger": "7.5.3",
- "@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.18.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"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/builder-webpack5": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-7.5.3.tgz",
- "integrity": "sha512-a2kHXFT61AV1+OPNTqXCsYk7Wk4XSqjAOQkSxWc1HK+kyMT+lahO4U06slji6XAVuXc/KY+naNUoaOfpB1hKVw==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.22.0",
- "@storybook/channels": "7.5.3",
- "@storybook/client-logger": "7.5.3",
- "@storybook/core-common": "7.5.3",
- "@storybook/core-events": "7.5.3",
- "@storybook/core-webpack": "7.5.3",
- "@storybook/node-logger": "7.5.3",
- "@storybook/preview": "7.5.3",
- "@storybook/preview-api": "7.5.3",
- "@swc/core": "^1.3.82",
- "@types/node": "^18.0.0",
- "@types/semver": "^7.3.4",
- "babel-loader": "^9.0.0",
- "babel-plugin-named-exports-order": "^0.0.2",
- "browser-assert": "^1.2.1",
- "case-sensitive-paths-webpack-plugin": "^2.4.0",
- "constants-browserify": "^1.0.0",
- "css-loader": "^6.7.1",
- "express": "^4.17.3",
- "fork-ts-checker-webpack-plugin": "^8.0.0",
- "fs-extra": "^11.1.0",
- "html-webpack-plugin": "^5.5.0",
- "path-browserify": "^1.0.1",
- "process": "^0.11.10",
- "semver": "^7.3.7",
- "style-loader": "^3.3.1",
- "swc-loader": "^0.2.3",
- "terser-webpack-plugin": "^5.3.1",
- "ts-dedent": "^2.0.0",
- "url": "^0.11.0",
- "util": "^0.12.4",
- "util-deprecate": "^1.0.2",
- "webpack": "5",
- "webpack-dev-middleware": "^6.1.1",
- "webpack-hot-middleware": "^2.25.1",
- "webpack-virtual-modules": "^0.5.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@storybook/builder-webpack5/node_modules/@types/node": {
- "version": "18.18.8",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.8.tgz",
- "integrity": "sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ==",
- "dev": true,
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
- "node_modules/@storybook/channels": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.5.3.tgz",
- "integrity": "sha512-dhWuV2o2lmxH0RKuzND8jxYzvSQTSmpE13P0IT/k8+I1up/rSNYOBQJT6SalakcNWXFAMXguo/8E7ApmnKKcEw==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.3",
- "@storybook/core-events": "7.5.3",
- "@storybook/global": "^5.0.0",
- "qs": "^6.10.0",
- "telejson": "^7.2.0",
- "tiny-invariant": "^1.3.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/cli": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.5.3.tgz",
- "integrity": "sha512-XysHSnknZTAcTbQ0bQsbfv5J8ifHpOBsmXjk1HCA05E9WGGrn9JrQRCfpDUQJ6O6UWq0bpMqzP8gFLWXFE7hug==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.22.9",
- "@babel/preset-env": "^7.22.9",
- "@babel/types": "^7.22.5",
- "@ndelangen/get-tarball": "^3.0.7",
- "@storybook/codemod": "7.5.3",
- "@storybook/core-common": "7.5.3",
- "@storybook/core-events": "7.5.3",
- "@storybook/core-server": "7.5.3",
- "@storybook/csf-tools": "7.5.3",
- "@storybook/node-logger": "7.5.3",
- "@storybook/telemetry": "7.5.3",
- "@storybook/types": "7.5.3",
- "@types/semver": "^7.3.4",
- "@yarnpkg/fslib": "2.10.3",
- "@yarnpkg/libzip": "2.3.0",
- "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",
- "ora": "^5.4.1",
- "prettier": "^2.8.0",
- "prompts": "^2.4.0",
- "puppeteer-core": "^2.1.1",
- "read-pkg-up": "^7.0.1",
- "semver": "^7.3.7",
- "simple-update-notifier": "^2.0.0",
- "strip-json-comments": "^3.0.1",
- "tempy": "^1.0.1",
- "ts-dedent": "^2.0.0",
- "util-deprecate": "^1.0.2"
- },
- "bin": {
- "getstorybook": "bin/index.js",
- "sb": "bin/index.js"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/cli/node_modules/commander": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
- "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/@storybook/client-logger": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.5.3.tgz",
- "integrity": "sha512-vUFYALypjix5FoJ5M/XUP6KmyTnQJNW1poHdW7WXUVSg+lBM6E5eAtjTm0hdxNNDH8KSrdy24nCLra5h0X0BWg==",
- "dev": true,
- "dependencies": {
- "@storybook/global": "^5.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/codemod": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.5.3.tgz",
- "integrity": "sha512-gzycFdqnF4drUjfzMTrLNHqi2jkw1lDeACUzQdug5uWxynZKAvMTHAgU0q9wvoYRR9Xhq8PhfKtXtYCCj2Er4Q==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.22.9",
- "@babel/preset-env": "^7.22.9",
- "@babel/types": "^7.22.5",
- "@storybook/csf": "^0.1.0",
- "@storybook/csf-tools": "7.5.3",
- "@storybook/node-logger": "7.5.3",
- "@storybook/types": "7.5.3",
- "@types/cross-spawn": "^6.0.2",
- "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"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/components": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.5.3.tgz",
- "integrity": "sha512-M3+cjvEsDGLUx8RvK5wyF6/13LNlUnKbMgiDE8Sxk/v/WPpyhOAIh/B8VmrU1psahS61Jd4MTkFmLf1cWau1vw==",
- "dev": true,
- "dependencies": {
- "@radix-ui/react-select": "^1.2.2",
- "@radix-ui/react-toolbar": "^1.0.4",
- "@storybook/client-logger": "7.5.3",
- "@storybook/csf": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/theming": "7.5.3",
- "@storybook/types": "7.5.3",
- "memoizerific": "^1.11.3",
- "use-resize-observer": "^9.1.0",
- "util-deprecate": "^1.0.2"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/core-client": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.5.3.tgz",
- "integrity": "sha512-sIviDytbhos02TVXxU8XLymzty7IAtLs5e16hv49JSdBp47iBajRaNBmBj/l+sgTH+3M+R6gP8yGFMsZSCnU2g==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.3",
- "@storybook/preview-api": "7.5.3"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/core-common": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.5.3.tgz",
- "integrity": "sha512-WGMwjtVUxUzFwQz7Mgs0gLuNebIGNV55dCdZgurx2/y6QOkJ2v8D0b3iL+xKMV4B5Nwoc2DsM418Y+Hy3UQd+w==",
- "dev": true,
- "dependencies": {
- "@storybook/core-events": "7.5.3",
- "@storybook/node-logger": "7.5.3",
- "@storybook/types": "7.5.3",
- "@types/find-cache-dir": "^3.2.1",
- "@types/node": "^18.0.0",
- "@types/node-fetch": "^2.6.4",
- "@types/pretty-hrtime": "^1.0.0",
- "chalk": "^4.1.0",
- "esbuild": "^0.18.0",
- "esbuild-register": "^3.5.0",
- "file-system-cache": "2.3.0",
- "find-cache-dir": "^3.0.0",
- "find-up": "^5.0.0",
- "fs-extra": "^11.1.0",
- "glob": "^10.0.0",
- "handlebars": "^4.7.7",
- "lazy-universal-dotenv": "^4.0.0",
- "node-fetch": "^2.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"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/core-common/node_modules/@types/node": {
- "version": "18.18.8",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.8.tgz",
- "integrity": "sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ==",
- "dev": true,
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
- "node_modules/@storybook/core-common/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/@storybook/core-common/node_modules/foreground-child": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
- "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@storybook/core-common/node_modules/glob": {
- "version": "10.3.10",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
- "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
- "dev": true,
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^2.3.5",
- "minimatch": "^9.0.1",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
- "path-scurry": "^1.10.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@storybook/core-common/node_modules/minimatch": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
- "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@storybook/core-common/node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@storybook/core-common/node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "dev": true,
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@storybook/core-events": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.5.3.tgz",
- "integrity": "sha512-DFOpyQ22JD5C1oeOFzL8wlqSWZzrqgDfDbUGP8xdO4wJu+FVTxnnWN6ZYLdTPB1u27DOhd7TzjQMfLDHLu7kbQ==",
- "dev": true,
- "dependencies": {
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/core-server": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.5.3.tgz",
- "integrity": "sha512-Gmq1w7ulN/VIeTDboNcb6GNM+S8T0SqhJUqeoHzn0vLGnzxeuYRJ0V3ZJhGZiJfSmCNqYAjC8QUBf6uU1gLipw==",
- "dev": true,
- "dependencies": {
- "@aw-web-design/x-default-browser": "1.4.126",
- "@discoveryjs/json-ext": "^0.5.3",
- "@storybook/builder-manager": "7.5.3",
- "@storybook/channels": "7.5.3",
- "@storybook/core-common": "7.5.3",
- "@storybook/core-events": "7.5.3",
- "@storybook/csf": "^0.1.0",
- "@storybook/csf-tools": "7.5.3",
- "@storybook/docs-mdx": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/manager": "7.5.3",
- "@storybook/node-logger": "7.5.3",
- "@storybook/preview-api": "7.5.3",
- "@storybook/telemetry": "7.5.3",
- "@storybook/types": "7.5.3",
- "@types/detect-port": "^1.3.0",
- "@types/node": "^18.0.0",
- "@types/pretty-hrtime": "^1.0.0",
- "@types/semver": "^7.3.4",
- "better-opn": "^3.0.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",
- "open": "^8.4.0",
- "pretty-hrtime": "^1.0.3",
- "prompts": "^2.4.0",
- "read-pkg-up": "^7.0.1",
- "semver": "^7.3.7",
- "telejson": "^7.2.0",
- "tiny-invariant": "^1.3.1",
- "ts-dedent": "^2.0.0",
- "util": "^0.12.4",
- "util-deprecate": "^1.0.2",
- "watchpack": "^2.2.0",
- "ws": "^8.2.3"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/core-server/node_modules/@types/node": {
- "version": "18.18.8",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.8.tgz",
- "integrity": "sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ==",
- "dev": true,
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
- "node_modules/@storybook/core-webpack": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/core-webpack/-/core-webpack-7.5.3.tgz",
- "integrity": "sha512-dhC94VeLwyPtZ2gvEND6J4alMaiFDsK8lJCYPNAahUr56f3nRDyVibE7prd94sAlfrdind1g5slP9VMP8cX+uQ==",
- "dev": true,
- "dependencies": {
- "@storybook/core-common": "7.5.3",
- "@storybook/node-logger": "7.5.3",
- "@storybook/types": "7.5.3",
- "@types/node": "^18.0.0",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/core-webpack/node_modules/@types/node": {
- "version": "18.18.8",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.8.tgz",
- "integrity": "sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ==",
- "dev": true,
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
- "node_modules/@storybook/csf": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.1.tgz",
- "integrity": "sha512-4hE3AlNVxR60Wc5KSC68ASYzUobjPqtSKyhV6G+ge0FIXU55N5nTY7dXGRZHQGDBPq+XqchMkIdlkHPRs8nTHg==",
- "dev": true,
- "dependencies": {
- "type-fest": "^2.19.0"
- }
- },
- "node_modules/@storybook/csf-plugin": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.5.3.tgz",
- "integrity": "sha512-yQ3S/IOT08Y7XTnlc3SPkrJKZ6Xld6liAlHn+ddjge4oZa0hUqwYLb+piXUhFMfL6Ij65cj4hu3vMbw89azIhg==",
- "dev": true,
- "dependencies": {
- "@storybook/csf-tools": "7.5.3",
- "unplugin": "^1.3.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/csf-tools": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.5.3.tgz",
- "integrity": "sha512-676C3ISn7FQJKjb3DBWXhjGN2OQEv4s71dx+5D0TlmswDCOOGS8dYFjP8wVx51+mAIE8CROAw7vLHLtVKU7SwQ==",
- "dev": true,
- "dependencies": {
- "@babel/generator": "^7.22.9",
- "@babel/parser": "^7.22.7",
- "@babel/traverse": "^7.22.8",
- "@babel/types": "^7.22.5",
- "@storybook/csf": "^0.1.0",
- "@storybook/types": "7.5.3",
- "fs-extra": "^11.1.0",
- "recast": "^0.23.1",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/csf/node_modules/type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
- "dev": true,
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@storybook/docs-mdx": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/@storybook/docs-mdx/-/docs-mdx-0.1.0.tgz",
- "integrity": "sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg==",
- "dev": true
- },
- "node_modules/@storybook/docs-tools": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.5.3.tgz",
- "integrity": "sha512-f20EUQlwamcSPrOFn42fj9gpkZIDNCZkC3N19yGzLYiE4UMyaYQgRl18oLvqd3M6aBm6UW6SCoIIgeaOViBSqg==",
- "dev": true,
- "dependencies": {
- "@storybook/core-common": "7.5.3",
- "@storybook/preview-api": "7.5.3",
- "@storybook/types": "7.5.3",
- "@types/doctrine": "^0.0.3",
- "doctrine": "^3.0.0",
- "lodash": "^4.17.21"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/global": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz",
- "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==",
- "dev": true
- },
- "node_modules/@storybook/instrumenter": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-7.5.3.tgz",
- "integrity": "sha512-p6b+/6ohTCKxWn00bXT8KBqVjXUOxeILnJtLlG83USLQCpI+XVkpmK57HYuydqEwy/1XjG+4S4ntPk9VVz3u7w==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.3",
- "@storybook/client-logger": "7.5.3",
- "@storybook/core-events": "7.5.3",
- "@storybook/global": "^5.0.0",
- "@storybook/preview-api": "7.5.3"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/manager": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.5.3.tgz",
- "integrity": "sha512-3ZZrHYcXWAQXpDQZBvKyScGgQaAaBc63i+KC2mXqzTdXuJhVDUiylvqLRprBnrEprgePQLFrxGC2JSHUwH7dqg==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/manager-api": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.5.3.tgz",
- "integrity": "sha512-d8mVLr/5BEG4bAS2ZeqYTy/aX4jPEpZHdcLaWoB4mAM+PAL9wcWsirUyApKtDVYLITJf/hd8bb2Dm2ok6E45gA==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.3",
- "@storybook/client-logger": "7.5.3",
- "@storybook/core-events": "7.5.3",
- "@storybook/csf": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/router": "7.5.3",
- "@storybook/theming": "7.5.3",
- "@storybook/types": "7.5.3",
- "dequal": "^2.0.2",
- "lodash": "^4.17.21",
- "memoizerific": "^1.11.3",
- "semver": "^7.3.7",
- "store2": "^2.14.2",
- "telejson": "^7.2.0",
- "ts-dedent": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/mdx2-csf": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@storybook/mdx2-csf/-/mdx2-csf-1.1.0.tgz",
- "integrity": "sha512-TXJJd5RAKakWx4BtpwvSNdgTDkKM6RkXU8GK34S/LhidQ5Pjz3wcnqb0TxEkfhK/ztbP8nKHqXFwLfa2CYkvQw==",
- "dev": true
- },
- "node_modules/@storybook/nextjs": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/nextjs/-/nextjs-7.5.3.tgz",
- "integrity": "sha512-PYi9AJga6x46IN4aub9CuiKNF9mT3maTh1F9dXqE4kO+ZrbesiKcJ3Uud0D78c56/Jlr8FmHEDpO19OlgRM4kQ==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.22.9",
- "@babel/plugin-syntax-bigint": "^7.8.3",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
- "@babel/plugin-syntax-import-assertions": "^7.22.5",
- "@babel/plugin-transform-class-properties": "^7.22.5",
- "@babel/plugin-transform-export-namespace-from": "^7.22.11",
- "@babel/plugin-transform-numeric-separator": "^7.22.11",
- "@babel/plugin-transform-object-rest-spread": "^7.22.15",
- "@babel/plugin-transform-runtime": "^7.22.9",
- "@babel/preset-env": "^7.22.9",
- "@babel/preset-react": "^7.22.5",
- "@babel/preset-typescript": "^7.22.5",
- "@babel/runtime": "^7.22.6",
- "@storybook/addon-actions": "7.5.3",
- "@storybook/builder-webpack5": "7.5.3",
- "@storybook/core-common": "7.5.3",
- "@storybook/core-events": "7.5.3",
- "@storybook/node-logger": "7.5.3",
- "@storybook/preset-react-webpack": "7.5.3",
- "@storybook/preview-api": "7.5.3",
- "@storybook/react": "7.5.3",
- "@types/node": "^18.0.0",
- "css-loader": "^6.7.3",
- "find-up": "^5.0.0",
- "fs-extra": "^11.1.0",
- "image-size": "^1.0.0",
- "loader-utils": "^3.2.0",
- "node-polyfill-webpack-plugin": "^2.0.1",
- "pnp-webpack-plugin": "^1.7.0",
- "postcss": "^8.4.21",
- "postcss-loader": "^7.0.2",
- "resolve-url-loader": "^5.0.0",
- "sass-loader": "^12.4.0",
- "semver": "^7.3.5",
- "style-loader": "^3.3.1",
- "styled-jsx": "5.1.1",
- "ts-dedent": "^2.0.0",
- "tsconfig-paths": "^4.0.0",
- "tsconfig-paths-webpack-plugin": "^4.0.1"
- },
- "engines": {
- "node": ">=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "@next/font": "^13.0.0|| ^14.0.0",
- "next": "^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "webpack": "^5.0.0"
- },
- "peerDependenciesMeta": {
- "@next/font": {
- "optional": true
- },
- "@storybook/addon-actions": {
- "optional": true
- },
- "typescript": {
- "optional": true
- },
- "webpack": {
- "optional": true
- }
- }
- },
- "node_modules/@storybook/nextjs/node_modules/@types/node": {
- "version": "18.18.8",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.8.tgz",
- "integrity": "sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ==",
- "dev": true,
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
- "node_modules/@storybook/nextjs/node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "dev": true,
- "bin": {
- "json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@storybook/nextjs/node_modules/loader-utils": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz",
- "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==",
- "dev": true,
- "engines": {
- "node": ">= 12.13.0"
- }
- },
- "node_modules/@storybook/nextjs/node_modules/tsconfig-paths": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz",
- "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==",
- "dev": true,
- "dependencies": {
- "json5": "^2.2.2",
- "minimist": "^1.2.6",
- "strip-bom": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@storybook/node-logger": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.5.3.tgz",
- "integrity": "sha512-7ZZDw/q3hakBj1FngsBjaHNIBguYAWojp7R1fFTvwkeunCi21EUzZjRBcqp10kB6BP3/NLX32bIQknsCWD76rQ==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/postinstall": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.5.3.tgz",
- "integrity": "sha512-r+H3xGMu2A9yOSsygc3bDFhku8wpOZF3SqO19B7eAML12viHwUtYfyGL74svw4TMcKukyQ+KPn5QsSG+4bjZMg==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/preset-react-webpack": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/preset-react-webpack/-/preset-react-webpack-7.5.3.tgz",
- "integrity": "sha512-/3Zsh97KpMLsx3lkkQ9LAlEVWwBGbAJTwE+ueVxVnAJgwiDCVe95IN7sVpKuwN/PVStnMRwDADUvZPfmw4m3Sg==",
- "dev": true,
- "dependencies": {
- "@babel/preset-flow": "^7.22.5",
- "@babel/preset-react": "^7.22.5",
- "@pmmmwh/react-refresh-webpack-plugin": "^0.5.5",
- "@storybook/core-webpack": "7.5.3",
- "@storybook/docs-tools": "7.5.3",
- "@storybook/node-logger": "7.5.3",
- "@storybook/react": "7.5.3",
- "@storybook/react-docgen-typescript-plugin": "1.0.6--canary.9.0c3f3b7.0",
- "@types/node": "^18.0.0",
- "@types/semver": "^7.3.4",
- "babel-plugin-add-react-displayname": "^0.0.5",
- "babel-plugin-react-docgen": "^4.2.1",
- "fs-extra": "^11.1.0",
- "react-refresh": "^0.11.0",
- "semver": "^7.3.7",
- "webpack": "5"
- },
- "engines": {
- "node": ">=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "@babel/core": "^7.22.0",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "@babel/core": {
- "optional": true
- },
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@storybook/preset-react-webpack/node_modules/@types/node": {
- "version": "18.18.8",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.8.tgz",
- "integrity": "sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ==",
- "dev": true,
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
- "node_modules/@storybook/preview": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.5.3.tgz",
- "integrity": "sha512-Hf90NlLaSrdMZXPOHDCMPjTywVrQKK0e5CtzqWx/ZQz91JDINxJD+sGj2wZU+wuBtQcTtlsXc9OewlJ+9ETwIw==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/preview-api": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.5.3.tgz",
- "integrity": "sha512-LNmEf7oBRnZ1wG3bQ+P+TO29+NN5pSDJiAA6FabZBrtIVm+psc2lxBCDQvFYyAFzQSlt60toGKNW8+RfFNdR5Q==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.3",
- "@storybook/client-logger": "7.5.3",
- "@storybook/core-events": "7.5.3",
- "@storybook/csf": "^0.1.0",
- "@storybook/global": "^5.0.0",
- "@storybook/types": "7.5.3",
- "@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"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/react": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/react/-/react-7.5.3.tgz",
- "integrity": "sha512-dZILdM36xMFDjdmmy421G5X+sOIncB2qF3IPTooniG1i1Z6v/dVNo57ovdID9lDTNa+AWr2fLB9hANiISMqmjQ==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.3",
- "@storybook/core-client": "7.5.3",
- "@storybook/docs-tools": "7.5.3",
- "@storybook/global": "^5.0.0",
- "@storybook/preview-api": "7.5.3",
- "@storybook/react-dom-shim": "7.5.3",
- "@storybook/types": "7.5.3",
- "@types/escodegen": "^0.0.6",
- "@types/estree": "^0.0.51",
- "@types/node": "^18.0.0",
- "acorn": "^7.4.1",
- "acorn-jsx": "^5.3.1",
- "acorn-walk": "^7.2.0",
- "escodegen": "^2.1.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",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "typescript": "*"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@storybook/react-docgen-typescript-plugin": {
- "version": "1.0.6--canary.9.0c3f3b7.0",
- "resolved": "https://registry.npmjs.org/@storybook/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-1.0.6--canary.9.0c3f3b7.0.tgz",
- "integrity": "sha512-KUqXC3oa9JuQ0kZJLBhVdS4lOneKTOopnNBK4tUAgoxWQ3u/IjzdueZjFr7gyBrXMoU6duutk3RQR9u8ZpYJ4Q==",
- "dev": true,
- "dependencies": {
- "debug": "^4.1.1",
- "endent": "^2.0.1",
- "find-cache-dir": "^3.3.1",
- "flat-cache": "^3.0.4",
- "micromatch": "^4.0.2",
- "react-docgen-typescript": "^2.2.2",
- "tslib": "^2.0.0"
- },
- "peerDependencies": {
- "typescript": ">= 4.x",
- "webpack": ">= 4"
- }
- },
- "node_modules/@storybook/react-dom-shim": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.5.3.tgz",
- "integrity": "sha512-9aNcKdhoP36jMrcXgfzE9jVg/SpqPpWnUJM70upYoZXytG2wQSPtawLHHyC6kycvTzwncyfF3rwUnOFBB8zmig==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/react/node_modules/@types/estree": {
- "version": "0.0.51",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz",
- "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==",
- "dev": true
- },
- "node_modules/@storybook/react/node_modules/@types/node": {
- "version": "18.18.8",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.8.tgz",
- "integrity": "sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ==",
- "dev": true,
- "dependencies": {
- "undici-types": "~5.26.4"
- }
- },
- "node_modules/@storybook/react/node_modules/acorn": {
- "version": "7.4.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
- "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
- "dev": true,
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/@storybook/react/node_modules/type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
- "dev": true,
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@storybook/router": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.5.3.tgz",
- "integrity": "sha512-/iNYCFore7R5n6eFHbBYoB0P2/sybTVpA+uXTNUd3UEt7Ro6CEslTaFTEiH2RVQwOkceBp/NpyWon74xZuXhMg==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.3",
- "memoizerific": "^1.11.3",
- "qs": "^6.10.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/telemetry": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.5.3.tgz",
- "integrity": "sha512-X6alII3o0jCb5xALuw+qcWmvyrbhlkmPeNZ6ZQXknOfB4DkwponFdWN5y6W7yGvr01xa5QBepJRV79isl97d8g==",
- "dev": true,
- "dependencies": {
- "@storybook/client-logger": "7.5.3",
- "@storybook/core-common": "7.5.3",
- "@storybook/csf-tools": "7.5.3",
- "chalk": "^4.1.0",
- "detect-package-manager": "^2.0.1",
- "fetch-retry": "^5.0.2",
- "fs-extra": "^11.1.0",
- "read-pkg-up": "^7.0.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@storybook/testing-library": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/@storybook/testing-library/-/testing-library-0.2.2.tgz",
- "integrity": "sha512-L8sXFJUHmrlyU2BsWWZGuAjv39Jl1uAqUHdxmN42JY15M4+XCMjGlArdCCjDe1wpTSW6USYISA9axjZojgtvnw==",
- "dev": true,
- "dependencies": {
- "@testing-library/dom": "^9.0.0",
- "@testing-library/user-event": "^14.4.0",
- "ts-dedent": "^2.2.0"
- }
- },
- "node_modules/@storybook/theming": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.5.3.tgz",
- "integrity": "sha512-Cjmthe1MAk0z4RKCZ7m72gAD8YD0zTAH97z5ryM1Qv84QXjiCQ143fGOmYz1xEQdNFpOThPcwW6FEccLHTkVcg==",
- "dev": true,
- "dependencies": {
- "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
- "@storybook/client-logger": "7.5.3",
- "@storybook/global": "^5.0.0",
- "memoizerific": "^1.11.3"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@storybook/types": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.5.3.tgz",
- "integrity": "sha512-iu5W0Kdd6nysN5CPkY4GRl+0BpxRTdSfBIJak7mb6xCIHSB5t1tw4BOuqMQ5EgpikRY3MWJ4gY647QkWBX3MNQ==",
- "dev": true,
- "dependencies": {
- "@storybook/channels": "7.5.3",
- "@types/babel__core": "^7.0.0",
- "@types/express": "^4.7.0",
- "file-system-cache": "2.3.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- }
- },
- "node_modules/@swc/core": {
- "version": "1.3.96",
- "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.96.tgz",
- "integrity": "sha512-zwE3TLgoZwJfQygdv2SdCK9mRLYluwDOM53I+dT6Z5ZvrgVENmY3txvWDvduzkV+/8IuvrRbVezMpxcojadRdQ==",
- "dev": true,
- "hasInstallScript": true,
- "dependencies": {
- "@swc/counter": "^0.1.1",
- "@swc/types": "^0.1.5"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/swc"
- },
- "optionalDependencies": {
- "@swc/core-darwin-arm64": "1.3.96",
- "@swc/core-darwin-x64": "1.3.96",
- "@swc/core-linux-arm-gnueabihf": "1.3.96",
- "@swc/core-linux-arm64-gnu": "1.3.96",
- "@swc/core-linux-arm64-musl": "1.3.96",
- "@swc/core-linux-x64-gnu": "1.3.96",
- "@swc/core-linux-x64-musl": "1.3.96",
- "@swc/core-win32-arm64-msvc": "1.3.96",
- "@swc/core-win32-ia32-msvc": "1.3.96",
- "@swc/core-win32-x64-msvc": "1.3.96"
- },
- "peerDependencies": {
- "@swc/helpers": "^0.5.0"
- },
- "peerDependenciesMeta": {
- "@swc/helpers": {
- "optional": true
- }
- }
- },
- "node_modules/@swc/core-darwin-arm64": {
- "version": "1.3.96",
- "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.96.tgz",
- "integrity": "sha512-8hzgXYVd85hfPh6mJ9yrG26rhgzCmcLO0h1TIl8U31hwmTbfZLzRitFQ/kqMJNbIBCwmNH1RU2QcJnL3d7f69A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@swc/core-darwin-x64": {
- "version": "1.3.96",
- "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.96.tgz",
- "integrity": "sha512-mFp9GFfuPg+43vlAdQZl0WZpZSE8sEzqL7sr/7Reul5McUHP0BaLsEzwjvD035ESfkY8GBZdLpMinblIbFNljQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@swc/core-linux-arm-gnueabihf": {
- "version": "1.3.96",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.96.tgz",
- "integrity": "sha512-8UEKkYJP4c8YzYIY/LlbSo8z5Obj4hqcv/fUTHiEePiGsOddgGf7AWjh56u7IoN/0uEmEro59nc1ChFXqXSGyg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@swc/core-linux-arm64-gnu": {
- "version": "1.3.96",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.96.tgz",
- "integrity": "sha512-c/IiJ0s1y3Ymm2BTpyC/xr6gOvoqAVETrivVXHq68xgNms95luSpbYQ28rqaZC8bQC8M5zdXpSc0T8DJu8RJGw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@swc/core-linux-arm64-musl": {
- "version": "1.3.96",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.96.tgz",
- "integrity": "sha512-i5/UTUwmJLri7zhtF6SAo/4QDQJDH2fhYJaBIUhrICmIkRO/ltURmpejqxsM/ye9Jqv5zG7VszMC0v/GYn/7BQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@swc/core-linux-x64-gnu": {
- "version": "1.3.96",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.96.tgz",
- "integrity": "sha512-USdaZu8lTIkm4Yf9cogct/j5eqtdZqTgcTib4I+NloUW0E/hySou3eSyp3V2UAA1qyuC72ld1otXuyKBna0YKQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@swc/core-linux-x64-musl": {
- "version": "1.3.96",
- "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.96.tgz",
- "integrity": "sha512-QYErutd+G2SNaCinUVobfL7jWWjGTI0QEoQ6hqTp7PxCJS/dmKmj3C5ZkvxRYcq7XcZt7ovrYCTwPTHzt6lZBg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@swc/core-win32-arm64-msvc": {
- "version": "1.3.96",
- "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.96.tgz",
- "integrity": "sha512-hjGvvAduA3Un2cZ9iNP4xvTXOO4jL3G9iakhFsgVhpkU73SGmK7+LN8ZVBEu4oq2SUcHO6caWvnZ881cxGuSpg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@swc/core-win32-ia32-msvc": {
- "version": "1.3.96",
- "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.96.tgz",
- "integrity": "sha512-Far2hVFiwr+7VPCM2GxSmbh3ikTpM3pDombE+d69hkedvYHYZxtTF+2LTKl/sXtpbUnsoq7yV/32c9R/xaaWfw==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@swc/core-win32-x64-msvc": {
- "version": "1.3.96",
- "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.96.tgz",
- "integrity": "sha512-4VbSAniIu0ikLf5mBX81FsljnfqjoVGleEkCQv4+zRlyZtO3FHoDPkeLVoy6WRlj7tyrRcfUJ4mDdPkbfTO14g==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@swc/counter": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
- "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ=="
- },
- "node_modules/@swc/helpers": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz",
- "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==",
- "dependencies": {
- "@swc/counter": "^0.1.3",
- "tslib": "^2.4.0"
- }
- },
- "node_modules/@swc/types": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz",
- "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==",
- "dev": true
- },
- "node_modules/@testing-library/dom": {
- "version": "9.3.3",
- "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.3.tgz",
- "integrity": "sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.10.4",
- "@babel/runtime": "^7.12.5",
- "@types/aria-query": "^5.0.1",
- "aria-query": "5.1.3",
- "chalk": "^4.1.0",
- "dom-accessibility-api": "^0.5.9",
- "lz-string": "^1.5.0",
- "pretty-format": "^27.0.2"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@testing-library/dom/node_modules/aria-query": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz",
- "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==",
- "dev": true,
- "dependencies": {
- "deep-equal": "^2.0.5"
- }
- },
- "node_modules/@testing-library/user-event": {
- "version": "14.5.1",
- "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.5.1.tgz",
- "integrity": "sha512-UCcUKrUYGj7ClomOo2SpNVvx4/fkd/2BbIHDCle8A0ax+P3bU7yJwDBDrS6ZwdTMARWTGODX1hEsCcO+7beJjg==",
- "dev": true,
- "engines": {
- "node": ">=12",
- "npm": ">=6"
- },
- "peerDependencies": {
- "@testing-library/dom": ">=7.21.4"
- }
- },
- "node_modules/@tweenjs/tween.js": {
- "version": "23.1.2",
- "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.2.tgz",
- "integrity": "sha512-kMCNaZCJugWI86xiEHaY338CU5JpD0B97p1j1IKNn/Zto8PgACjQx0UxbHjmOcLl/dDOBnItwD07KmCs75pxtQ=="
- },
- "node_modules/@types/aria-query": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz",
- "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==",
- "dev": true
- },
- "node_modules/@types/babel__core": {
- "version": "7.20.4",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.4.tgz",
- "integrity": "sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==",
- "dev": true,
- "dependencies": {
- "@babel/parser": "^7.20.7",
- "@babel/types": "^7.20.7",
- "@types/babel__generator": "*",
- "@types/babel__template": "*",
- "@types/babel__traverse": "*"
- }
- },
- "node_modules/@types/babel__generator": {
- "version": "7.6.7",
- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz",
- "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.0.0"
- }
- },
- "node_modules/@types/babel__template": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
- "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
- "dev": true,
- "dependencies": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0"
- }
- },
- "node_modules/@types/babel__traverse": {
- "version": "7.20.4",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz",
- "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.20.7"
- }
- },
- "node_modules/@types/body-parser": {
- "version": "1.19.5",
- "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz",
- "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
- "dev": true,
- "dependencies": {
- "@types/connect": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/connect": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
- "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/cross-spawn": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.5.tgz",
- "integrity": "sha512-wsIMP68FvGXk+RaWhraz6Xp4v7sl4qwzHAmtPaJEN2NRTXXI9LtFawUpeTsBNL/pd6QoLStdytCaAyiK7AEd/Q==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/detect-port": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/@types/detect-port/-/detect-port-1.3.5.tgz",
- "integrity": "sha512-Rf3/lB9WkDfIL9eEKaSYKc+1L/rNVYBjThk22JTqQw0YozXarX8YljFAz+HCoC6h4B4KwCMsBPZHaFezwT4BNA==",
- "dev": true
- },
- "node_modules/@types/doctrine": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz",
- "integrity": "sha512-w5jZ0ee+HaPOaX25X2/2oGR/7rgAQSYII7X7pp0m9KgBfMP7uKfMfTvcpl5Dj+eDBbpxKGiqE+flqDr6XTd2RA==",
- "dev": true
- },
- "node_modules/@types/draco3d": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/@types/draco3d/-/draco3d-1.4.2.tgz",
- "integrity": "sha512-goh23EGr6CLV6aKPwN1p8kBD/7tT5V/bLpToSbarKrwVejqNrspVrv8DhliteYkkhZYrlq/fwKZRRUzH4XN88w=="
- },
- "node_modules/@types/ejs": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.1.5.tgz",
- "integrity": "sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg==",
- "dev": true
- },
- "node_modules/@types/emscripten": {
- "version": "1.39.10",
- "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.10.tgz",
- "integrity": "sha512-TB/6hBkYQJxsZHSqyeuO1Jt0AB/bW6G7rHt9g7lML7SOF6lbgcHvw/Lr+69iqN0qxgXLhWKScAon73JNnptuDw==",
- "dev": true
- },
- "node_modules/@types/escodegen": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/@types/escodegen/-/escodegen-0.0.6.tgz",
- "integrity": "sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig==",
- "dev": true
- },
- "node_modules/@types/eslint": {
- "version": "8.44.2",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.2.tgz",
- "integrity": "sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg==",
- "dependencies": {
- "@types/estree": "*",
- "@types/json-schema": "*"
- }
- },
- "node_modules/@types/eslint-scope": {
- "version": "3.7.4",
- "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz",
- "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==",
- "dependencies": {
- "@types/eslint": "*",
- "@types/estree": "*"
- }
- },
- "node_modules/@types/estree": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz",
- "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA=="
- },
- "node_modules/@types/express": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
- "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
- "dev": true,
- "dependencies": {
- "@types/body-parser": "*",
- "@types/express-serve-static-core": "^4.17.33",
- "@types/qs": "*",
- "@types/serve-static": "*"
- }
- },
- "node_modules/@types/express-serve-static-core": {
- "version": "4.17.41",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz",
- "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "@types/qs": "*",
- "@types/range-parser": "*",
- "@types/send": "*"
- }
- },
- "node_modules/@types/find-cache-dir": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@types/find-cache-dir/-/find-cache-dir-3.2.1.tgz",
- "integrity": "sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==",
- "dev": true
- },
- "node_modules/@types/graceful-fs": {
- "version": "4.1.8",
- "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.8.tgz",
- "integrity": "sha512-NhRH7YzWq8WiNKVavKPBmtLYZHxNY19Hh+az28O/phfp68CF45pMFud+ZzJ8ewnxnC5smIdF3dqFeiSUQ5I+pw==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/html-minifier-terser": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
- "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==",
- "dev": true
- },
- "node_modules/@types/http-errors": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.3.tgz",
- "integrity": "sha512-pP0P/9BnCj1OVvQR2lF41EkDG/lWWnDyA203b/4Fmi2eTyORnBtcDoKDwjWQthELrBvWkMOrvSOnZ8OVlW6tXA==",
- "dev": true
- },
- "node_modules/@types/istanbul-lib-coverage": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
- "integrity": "sha512-zONci81DZYCZjiLe0r6equvZut0b+dBRPBN5kBDjsONnutYNtJMoWQ9uR2RkL1gLG9NMTzvf+29e5RFfPbeKhQ==",
- "dev": true
- },
- "node_modules/@types/istanbul-lib-report": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.2.tgz",
- "integrity": "sha512-8toY6FgdltSdONav1XtUHl4LN1yTmLza+EuDazb/fEmRNCwjyqNVIQWs2IfC74IqjHkREs/nQ2FWq5kZU9IC0w==",
- "dev": true,
- "dependencies": {
- "@types/istanbul-lib-coverage": "*"
- }
- },
- "node_modules/@types/istanbul-reports": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.3.tgz",
- "integrity": "sha512-1nESsePMBlf0RPRffLZi5ujYh7IH1BWL4y9pr+Bn3cJBdxz+RTP8bUFljLz9HvzhhOSWKdyBZ4DIivdL6rvgZg==",
- "dev": true,
- "dependencies": {
- "@types/istanbul-lib-report": "*"
- }
- },
- "node_modules/@types/json-schema": {
- "version": "7.0.12",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz",
- "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA=="
- },
- "node_modules/@types/json5": {
- "version": "0.0.29",
- "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
- "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
- },
- "node_modules/@types/lodash": {
- "version": "4.14.200",
- "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.200.tgz",
- "integrity": "sha512-YI/M/4HRImtNf3pJgbF+W6FrXovqj+T+/HpENLTooK9PnkacBsDpeP3IpHab40CClUfhNmdM2WTNP2sa2dni5Q==",
- "dev": true
- },
- "node_modules/@types/mdx": {
- "version": "2.0.9",
- "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.9.tgz",
- "integrity": "sha512-OKMdj17y8Cs+k1r0XFyp59ChSOwf8ODGtMQ4mnpfz5eFDk1aO41yN3pSKGuvVzmWAkFp37seubY1tzOVpwfWwg==",
- "dev": true
- },
- "node_modules/@types/mime": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.4.tgz",
- "integrity": "sha512-1Gjee59G25MrQGk8bsNvC6fxNiRgUlGn2wlhGf95a59DrprnnHk80FIMMFG9XHMdrfsuA119ht06QPDXA1Z7tw==",
- "dev": true
- },
- "node_modules/@types/mime-types": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.3.tgz",
- "integrity": "sha512-bvxCbHeeS7quxS7uOJShyoOQj/BfLabhF6mk9Rmr+2MRfW8W1yxyyL/0GTxLFTHen41GrIw4K3D4DrLouhb8vg==",
- "dev": true
- },
- "node_modules/@types/node": {
- "version": "20.5.6",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.6.tgz",
- "integrity": "sha512-Gi5wRGPbbyOTX+4Y2iULQ27oUPrefaB0PxGQJnfyWN3kvEDGM3mIB5M/gQLmitZf7A9FmLeaqxD3L1CXpm3VKQ=="
- },
- "node_modules/@types/node-fetch": {
- "version": "2.6.8",
- "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.8.tgz",
- "integrity": "sha512-nnH5lV9QCMPsbEVdTb5Y+F3GQxLSw1xQgIydrb2gSfEavRPs50FnMr+KUaa+LoPSqibm2N+ZZxH7lavZlAT4GA==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "form-data": "^4.0.0"
- }
- },
- "node_modules/@types/normalize-package-data": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.3.tgz",
- "integrity": "sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==",
- "dev": true
- },
- "node_modules/@types/offscreencanvas": {
- "version": "2019.7.1",
- "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.1.tgz",
- "integrity": "sha512-+HSrJgjBW77ALieQdMJvXhRZUIRN1597L+BKvsyeiIlHHERnqjcuOLyodK3auJ3Y3zRezNKtKAhuQWYJfEgFHQ=="
- },
- "node_modules/@types/parse-json": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.1.tgz",
- "integrity": "sha512-3YmXzzPAdOTVljVMkTMBdBEvlOLg2cDQaDhnnhT3nT9uDbnJzjWhKlzb+desT12Y7tGqaN6d+AbozcKzyL36Ng==",
- "dev": true
- },
- "node_modules/@types/pretty-hrtime": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@types/pretty-hrtime/-/pretty-hrtime-1.0.2.tgz",
- "integrity": "sha512-vyv9knII8XeW8TnXDcGH7HqG6FeR56ESN6ExM34d/U8Zvs3xuG34euV6CVyB7KEYI7Ts4lQM8b4NL72e7UadnA==",
- "dev": true
- },
- "node_modules/@types/prop-types": {
- "version": "15.7.5",
- "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
- "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
- },
- "node_modules/@types/qs": {
- "version": "6.9.9",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.9.tgz",
- "integrity": "sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg==",
- "dev": true
- },
- "node_modules/@types/range-parser": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.6.tgz",
- "integrity": "sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA==",
- "dev": true
- },
- "node_modules/@types/react": {
- "version": "18.2.21",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.21.tgz",
- "integrity": "sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA==",
- "dependencies": {
- "@types/prop-types": "*",
- "@types/scheduler": "*",
- "csstype": "^3.0.2"
- }
- },
- "node_modules/@types/react-dom": {
- "version": "18.2.7",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.7.tgz",
- "integrity": "sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==",
- "dependencies": {
- "@types/react": "*"
- }
- },
- "node_modules/@types/react-reconciler": {
- "version": "0.26.7",
- "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.26.7.tgz",
- "integrity": "sha512-mBDYl8x+oyPX/VBb3E638N0B7xG+SPk/EAMcVPeexqus/5aTpTphQi0curhhshOqRrc9t6OPoJfEUkbymse/lQ==",
- "dependencies": {
- "@types/react": "*"
- }
- },
- "node_modules/@types/scheduler": {
- "version": "0.16.3",
- "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz",
- "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ=="
- },
- "node_modules/@types/semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==",
- "dev": true
- },
- "node_modules/@types/send": {
- "version": "0.17.3",
- "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.3.tgz",
- "integrity": "sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug==",
- "dev": true,
- "dependencies": {
- "@types/mime": "^1",
- "@types/node": "*"
- }
- },
- "node_modules/@types/serve-static": {
- "version": "1.15.4",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.4.tgz",
- "integrity": "sha512-aqqNfs1XTF0HDrFdlY//+SGUxmdSUbjeRXb5iaZc3x0/vMbYmdw9qvOgHWOyyLFxSSRnUuP5+724zBgfw8/WAw==",
- "dev": true,
- "dependencies": {
- "@types/http-errors": "*",
- "@types/mime": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/stats.js": {
- "version": "0.17.0",
- "resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.0.tgz",
- "integrity": "sha512-9w+a7bR8PeB0dCT/HBULU2fMqf6BAzvKbxFboYhmDtDkKPiyXYbjoe2auwsXlEFI7CFNMF1dCv3dFH5Poy9R1w=="
- },
- "node_modules/@types/three": {
- "version": "0.164.0",
- "resolved": "https://registry.npmjs.org/@types/three/-/three-0.164.0.tgz",
- "integrity": "sha512-SFDofn9dJVrE+1DKta7xj7lc4ru7B3S3yf10NsxOserW57aQlB6GxtAS1UK5To3LfEMN5HUHMu3n5v+M5rApgA==",
- "dependencies": {
- "@tweenjs/tween.js": "~23.1.1",
- "@types/stats.js": "*",
- "@types/webxr": "*",
- "fflate": "~0.8.2",
- "meshoptimizer": "~0.18.1"
- }
- },
- "node_modules/@types/three/node_modules/fflate": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz",
- "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A=="
- },
- "node_modules/@types/unist": {
- "version": "2.0.9",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.9.tgz",
- "integrity": "sha512-zC0iXxAv1C1ERURduJueYzkzZ2zaGyc+P2c95hgkikHPr3z8EdUZOlgEQ5X0DRmwDZn+hekycQnoeiiRVrmilQ==",
- "dev": true
- },
- "node_modules/@types/webxr": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.4.tgz",
- "integrity": "sha512-41gfGLTtqXZhcmoDlLDHqMJDuwAMwhHwXf9Q2job3TUBsvkNfPNI/3IWVEtLH4tyY1ElWtfwIaoNeqeEX238/Q=="
- },
- "node_modules/@types/yargs": {
- "version": "17.0.30",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.30.tgz",
- "integrity": "sha512-3SJLzYk3yz3EgI9I8OLoH06B3PdXIoU2imrBZzaGqUtUXf5iUNDtmAfCGuQrny1bnmyjh/GM/YNts6WK5jR5Rw==",
- "dev": true,
- "dependencies": {
- "@types/yargs-parser": "*"
- }
- },
- "node_modules/@types/yargs-parser": {
- "version": "21.0.2",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.2.tgz",
- "integrity": "sha512-5qcvofLPbfjmBfKaLfj/+f+Sbd6pN4zl7w7VSVI5uz7m9QZTuB2aZAa2uo1wHFBNN2x6g/SoTkXmd8mQnQF2Cw==",
- "dev": true
- },
- "node_modules/@typescript-eslint/parser": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.4.1.tgz",
- "integrity": "sha512-610G6KHymg9V7EqOaNBMtD1GgpAmGROsmfHJPXNLCU9bfIuLrkdOygltK784F6Crboyd5tBFayPB7Sf0McrQwg==",
- "dependencies": {
- "@typescript-eslint/scope-manager": "6.4.1",
- "@typescript-eslint/types": "6.4.1",
- "@typescript-eslint/typescript-estree": "6.4.1",
- "@typescript-eslint/visitor-keys": "6.4.1",
- "debug": "^4.3.4"
- },
- "engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/scope-manager": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.4.1.tgz",
- "integrity": "sha512-p/OavqOQfm4/Hdrr7kvacOSFjwQ2rrDVJRPxt/o0TOWdFnjJptnjnZ+sYDR7fi4OimvIuKp+2LCkc+rt9fIW+A==",
- "dependencies": {
- "@typescript-eslint/types": "6.4.1",
- "@typescript-eslint/visitor-keys": "6.4.1"
- },
- "engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/types": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.4.1.tgz",
- "integrity": "sha512-zAAopbNuYu++ijY1GV2ylCsQsi3B8QvfPHVqhGdDcbx/NK5lkqMnCGU53amAjccSpk+LfeONxwzUhDzArSfZJg==",
- "engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/typescript-estree": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.4.1.tgz",
- "integrity": "sha512-xF6Y7SatVE/OyV93h1xGgfOkHr2iXuo8ip0gbfzaKeGGuKiAnzS+HtVhSPx8Www243bwlW8IF7X0/B62SzFftg==",
- "dependencies": {
- "@typescript-eslint/types": "6.4.1",
- "@typescript-eslint/visitor-keys": "6.4.1",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "semver": "^7.5.4",
- "ts-api-utils": "^1.0.1"
- },
- "engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/utils": {
- "version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
- "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
- "dev": true,
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@types/json-schema": "^7.0.9",
- "@types/semver": "^7.3.12",
- "@typescript-eslint/scope-manager": "5.62.0",
- "@typescript-eslint/types": "5.62.0",
- "@typescript-eslint/typescript-estree": "5.62.0",
- "eslint-scope": "^5.1.1",
- "semver": "^7.3.7"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": {
- "version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
- "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
- "dev": true,
- "dependencies": {
- "@typescript-eslint/types": "5.62.0",
- "@typescript-eslint/visitor-keys": "5.62.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": {
- "version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
- "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
- "dev": true,
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": {
- "version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
- "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
- "dev": true,
- "dependencies": {
- "@typescript-eslint/types": "5.62.0",
- "@typescript-eslint/visitor-keys": "5.62.0",
- "debug": "^4.3.4",
- "globby": "^11.1.0",
- "is-glob": "^4.0.3",
- "semver": "^7.3.7",
- "tsutils": "^3.21.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": {
- "version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
- "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
- "dev": true,
- "dependencies": {
- "@typescript-eslint/types": "5.62.0",
- "eslint-visitor-keys": "^3.3.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
- "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
- "dev": true,
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^4.1.1"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/@typescript-eslint/utils/node_modules/estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/@typescript-eslint/visitor-keys": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.4.1.tgz",
- "integrity": "sha512-y/TyRJsbZPkJIZQXrHfdnxVnxyKegnpEvnRGNam7s3TRR2ykGefEWOhaef00/UUN3IZxizS7BTO3svd3lCOJRQ==",
- "dependencies": {
- "@typescript-eslint/types": "6.4.1",
- "eslint-visitor-keys": "^3.4.1"
- },
- "engines": {
- "node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- }
- },
- "node_modules/@use-gesture/core": {
- "version": "10.2.27",
- "resolved": "https://registry.npmjs.org/@use-gesture/core/-/core-10.2.27.tgz",
- "integrity": "sha512-V4XV7hn9GAD2MYu8yBBVi5iuWBsAMfjPRMsEVzoTNGYH72tf0kFP+OKqGKc8YJFQIJx6yj+AOqxmEHOmx2/MEA=="
- },
- "node_modules/@use-gesture/react": {
- "version": "10.2.27",
- "resolved": "https://registry.npmjs.org/@use-gesture/react/-/react-10.2.27.tgz",
- "integrity": "sha512-7E5vnWCxeslWlxwZ8uKIcnUZVMTRMZ8cvSnLLKF1NkyNb3PnNiAzoXM4G1vTKJKRhgOTeI6wK1YsEpwo9ABV5w==",
- "dependencies": {
- "@use-gesture/core": "10.2.27"
- },
- "peerDependencies": {
- "react": ">= 16.8.0"
- }
- },
- "node_modules/@utsubo/events": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/@utsubo/events/-/events-0.1.7.tgz",
- "integrity": "sha512-WB/GEj/0h27Bz8rJ0+CBtNz5mLT79ne1OjB7PUM4n0qLBqEDwm6yBzZC3j6tasHjlBPJDYZiBVIA1glaMlgZ5g==",
- "dev": true,
- "dependencies": {
- "eventemitter3": "^4.0.7"
- },
- "peerDependencies": {
- "react": ">=16.8.0"
- },
- "peerDependenciesMeta": {
- "react": {
- "optional": true
- }
- }
- },
- "node_modules/@webassemblyjs/ast": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz",
- "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==",
- "dependencies": {
- "@webassemblyjs/helper-numbers": "1.11.6",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6"
- }
- },
- "node_modules/@webassemblyjs/floating-point-hex-parser": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz",
- "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw=="
- },
- "node_modules/@webassemblyjs/helper-api-error": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz",
- "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q=="
- },
- "node_modules/@webassemblyjs/helper-buffer": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz",
- "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA=="
- },
- "node_modules/@webassemblyjs/helper-numbers": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz",
- "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==",
- "dependencies": {
- "@webassemblyjs/floating-point-hex-parser": "1.11.6",
- "@webassemblyjs/helper-api-error": "1.11.6",
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@webassemblyjs/helper-wasm-bytecode": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz",
- "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA=="
- },
- "node_modules/@webassemblyjs/helper-wasm-section": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz",
- "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==",
- "dependencies": {
- "@webassemblyjs/ast": "1.11.6",
- "@webassemblyjs/helper-buffer": "1.11.6",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/wasm-gen": "1.11.6"
- }
- },
- "node_modules/@webassemblyjs/ieee754": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz",
- "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==",
- "dependencies": {
- "@xtuc/ieee754": "^1.2.0"
- }
- },
- "node_modules/@webassemblyjs/leb128": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz",
- "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==",
- "dependencies": {
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@webassemblyjs/utf8": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz",
- "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA=="
- },
- "node_modules/@webassemblyjs/wasm-edit": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz",
- "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==",
- "dependencies": {
- "@webassemblyjs/ast": "1.11.6",
- "@webassemblyjs/helper-buffer": "1.11.6",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/helper-wasm-section": "1.11.6",
- "@webassemblyjs/wasm-gen": "1.11.6",
- "@webassemblyjs/wasm-opt": "1.11.6",
- "@webassemblyjs/wasm-parser": "1.11.6",
- "@webassemblyjs/wast-printer": "1.11.6"
- }
- },
- "node_modules/@webassemblyjs/wasm-gen": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz",
- "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==",
- "dependencies": {
- "@webassemblyjs/ast": "1.11.6",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/ieee754": "1.11.6",
- "@webassemblyjs/leb128": "1.11.6",
- "@webassemblyjs/utf8": "1.11.6"
- }
- },
- "node_modules/@webassemblyjs/wasm-opt": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz",
- "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==",
- "dependencies": {
- "@webassemblyjs/ast": "1.11.6",
- "@webassemblyjs/helper-buffer": "1.11.6",
- "@webassemblyjs/wasm-gen": "1.11.6",
- "@webassemblyjs/wasm-parser": "1.11.6"
- }
- },
- "node_modules/@webassemblyjs/wasm-parser": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz",
- "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==",
- "dependencies": {
- "@webassemblyjs/ast": "1.11.6",
- "@webassemblyjs/helper-api-error": "1.11.6",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/ieee754": "1.11.6",
- "@webassemblyjs/leb128": "1.11.6",
- "@webassemblyjs/utf8": "1.11.6"
- }
- },
- "node_modules/@webassemblyjs/wast-printer": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz",
- "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==",
- "dependencies": {
- "@webassemblyjs/ast": "1.11.6",
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@xtuc/ieee754": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
- "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA=="
- },
- "node_modules/@xtuc/long": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
- "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
- },
- "node_modules/@yarnpkg/esbuild-plugin-pnp": {
- "version": "3.0.0-rc.15",
- "resolved": "https://registry.npmjs.org/@yarnpkg/esbuild-plugin-pnp/-/esbuild-plugin-pnp-3.0.0-rc.15.tgz",
- "integrity": "sha512-kYzDJO5CA9sy+on/s2aIW0411AklfCi8Ck/4QDivOqsMKpStZA2SsR+X27VTggGwpStWaLrjJcDcdDMowtG8MA==",
- "dev": true,
- "dependencies": {
- "tslib": "^2.4.0"
- },
- "engines": {
- "node": ">=14.15.0"
- },
- "peerDependencies": {
- "esbuild": ">=0.10.0"
- }
- },
- "node_modules/@yarnpkg/fslib": {
- "version": "2.10.3",
- "resolved": "https://registry.npmjs.org/@yarnpkg/fslib/-/fslib-2.10.3.tgz",
- "integrity": "sha512-41H+Ga78xT9sHvWLlFOZLIhtU6mTGZ20pZ29EiZa97vnxdohJD2AF42rCoAoWfqUz486xY6fhjMH+DYEM9r14A==",
- "dev": true,
- "dependencies": {
- "@yarnpkg/libzip": "^2.3.0",
- "tslib": "^1.13.0"
- },
- "engines": {
- "node": ">=12 <14 || 14.2 - 14.9 || >14.10.0"
- }
- },
- "node_modules/@yarnpkg/fslib/node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- },
- "node_modules/@yarnpkg/libzip": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@yarnpkg/libzip/-/libzip-2.3.0.tgz",
- "integrity": "sha512-6xm38yGVIa6mKm/DUCF2zFFJhERh/QWp1ufm4cNUvxsONBmfPg8uZ9pZBdOmF6qFGr/HlT6ABBkCSx/dlEtvWg==",
- "dev": true,
- "dependencies": {
- "@types/emscripten": "^1.39.6",
- "tslib": "^1.13.0"
- },
- "engines": {
- "node": ">=12 <14 || 14.2 - 14.9 || >14.10.0"
- }
- },
- "node_modules/@yarnpkg/libzip/node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- },
- "node_modules/abort-controller": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
- "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
- "dev": true,
- "dependencies": {
- "event-target-shim": "^5.0.0"
- },
- "engines": {
- "node": ">=6.5"
- }
- },
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "dev": true,
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/acorn": {
- "version": "8.10.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
- "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==",
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-import-assertions": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz",
- "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==",
- "peerDependencies": {
- "acorn": "^8"
- }
- },
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/acorn-walk": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
- "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
- "dev": true,
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/address": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz",
- "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==",
- "dev": true,
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/adjust-sourcemap-loader": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz",
- "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==",
- "dev": true,
- "dependencies": {
- "loader-utils": "^2.0.0",
- "regex-parser": "^2.2.11"
- },
- "engines": {
- "node": ">=8.9"
- }
- },
- "node_modules/adjust-sourcemap-loader/node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "dev": true,
- "bin": {
- "json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
- "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
- "dev": true,
- "dependencies": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^2.1.2"
- },
- "engines": {
- "node": ">=8.9.0"
- }
- },
- "node_modules/agent-base": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
- "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
- "dev": true,
- "dependencies": {
- "debug": "^4.3.4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/aggregate-error": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
- "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
- "dev": true,
- "dependencies": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ajv-formats": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
- "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
- "dev": true,
- "dependencies": {
- "ajv": "^8.0.0"
- },
- "peerDependencies": {
- "ajv": "^8.0.0"
- },
- "peerDependenciesMeta": {
- "ajv": {
- "optional": true
- }
- }
- },
- "node_modules/ajv-formats/node_modules/ajv": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
- "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ajv-formats/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "node_modules/ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "peerDependencies": {
- "ajv": "^6.9.1"
- }
- },
- "node_modules/ansi-html-community": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz",
- "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==",
- "dev": true,
- "engines": [
- "node >= 0.8.0"
- ],
- "bin": {
- "ansi-html": "bin/ansi-html"
- }
- },
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/app-root-dir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz",
- "integrity": "sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==",
- "dev": true
- },
- "node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "node_modules/aria-hidden": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz",
- "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==",
- "dev": true,
- "dependencies": {
- "tslib": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/aria-query": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
- "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
- "dependencies": {
- "dequal": "^2.0.3"
- }
- },
- "node_modules/array-buffer-byte-length": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
- "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "is-array-buffer": "^3.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
- "dev": true
- },
- "node_modules/array-includes": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
- "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
- "get-intrinsic": "^1.1.3",
- "is-string": "^1.0.7"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/array.prototype.findlastindex": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.2.tgz",
- "integrity": "sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
- "es-shim-unscopables": "^1.0.0",
- "get-intrinsic": "^1.1.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array.prototype.flat": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz",
- "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
- "es-shim-unscopables": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array.prototype.flatmap": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz",
- "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
- "es-shim-unscopables": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/array.prototype.tosorted": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz",
- "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
- "es-shim-unscopables": "^1.0.0",
- "get-intrinsic": "^1.1.3"
- }
- },
- "node_modules/arraybuffer.prototype.slice": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.1.tgz",
- "integrity": "sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==",
- "dependencies": {
- "array-buffer-byte-length": "^1.0.0",
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "get-intrinsic": "^1.2.1",
- "is-array-buffer": "^3.0.2",
- "is-shared-array-buffer": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/asn1.js": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
- "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
- "dev": true,
- "dependencies": {
- "bn.js": "^4.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0",
- "safer-buffer": "^2.1.0"
- }
- },
- "node_modules/asn1.js/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
- },
- "node_modules/assert": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz",
- "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "is-nan": "^1.3.2",
- "object-is": "^1.1.5",
- "object.assign": "^4.1.4",
- "util": "^0.12.5"
- }
- },
- "node_modules/ast-types": {
- "version": "0.14.2",
- "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz",
- "integrity": "sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==",
- "dev": true,
- "dependencies": {
- "tslib": "^2.0.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/ast-types-flow": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
- "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag=="
- },
- "node_modules/async": {
- "version": "3.2.5",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz",
- "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==",
- "dev": true
- },
- "node_modules/async-limiter": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
- "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
- "dev": true
- },
- "node_modules/asynciterator.prototype": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz",
- "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==",
- "dependencies": {
- "has-symbols": "^1.0.3"
- }
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "dev": true
- },
- "node_modules/available-typed-arrays": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
- "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/axe-core": {
- "version": "4.7.2",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz",
- "integrity": "sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/axobject-query": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz",
- "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==",
- "dependencies": {
- "dequal": "^2.0.3"
- }
- },
- "node_modules/babel-core": {
- "version": "7.0.0-bridge.0",
- "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
- "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==",
- "dev": true,
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/babel-loader": {
- "version": "9.1.3",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz",
- "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==",
- "dev": true,
- "dependencies": {
- "find-cache-dir": "^4.0.0",
- "schema-utils": "^4.0.0"
- },
- "engines": {
- "node": ">= 14.15.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.12.0",
- "webpack": ">=5"
- }
- },
- "node_modules/babel-loader/node_modules/ajv": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
- "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/babel-loader/node_modules/ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "dev": true,
- "dependencies": {
- "fast-deep-equal": "^3.1.3"
- },
- "peerDependencies": {
- "ajv": "^8.8.2"
- }
- },
- "node_modules/babel-loader/node_modules/find-cache-dir": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz",
- "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==",
- "dev": true,
- "dependencies": {
- "common-path-prefix": "^3.0.0",
- "pkg-dir": "^7.0.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/babel-loader/node_modules/find-up": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
- "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
- "dev": true,
- "dependencies": {
- "locate-path": "^7.1.0",
- "path-exists": "^5.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/babel-loader/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "node_modules/babel-loader/node_modules/locate-path": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
- "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
- "dev": true,
- "dependencies": {
- "p-locate": "^6.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/babel-loader/node_modules/p-limit": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
- "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
- "dev": true,
- "dependencies": {
- "yocto-queue": "^1.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/babel-loader/node_modules/p-locate": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
- "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
- "dev": true,
- "dependencies": {
- "p-limit": "^4.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/babel-loader/node_modules/path-exists": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
- "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
- "dev": true,
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- }
- },
- "node_modules/babel-loader/node_modules/pkg-dir": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz",
- "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==",
- "dev": true,
- "dependencies": {
- "find-up": "^6.3.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/babel-loader/node_modules/schema-utils": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
- "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.9.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.1.0"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/babel-loader/node_modules/yocto-queue": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
- "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
- "dev": true,
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/babel-plugin-add-react-displayname": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/babel-plugin-add-react-displayname/-/babel-plugin-add-react-displayname-0.0.5.tgz",
- "integrity": "sha512-LY3+Y0XVDYcShHHorshrDbt4KFWL4bSeniCtl4SYZbask+Syngk1uMPCeN9+nSiZo6zX5s0RTq/J9Pnaaf/KHw==",
- "dev": true
- },
- "node_modules/babel-plugin-istanbul": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
- "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
- "dev": true,
- "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"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/babel-plugin-named-exports-order": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/babel-plugin-named-exports-order/-/babel-plugin-named-exports-order-0.0.2.tgz",
- "integrity": "sha512-OgOYHOLoRK+/mvXU9imKHlG6GkPLYrUCvFXG/CM93R/aNNO8pOOF4aS+S8CCHMDQoNSeiOYEZb/G6RwL95Jktw==",
- "dev": true
- },
- "node_modules/babel-plugin-polyfill-corejs2": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz",
- "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==",
- "dev": true,
- "dependencies": {
- "@babel/compat-data": "^7.22.6",
- "@babel/helper-define-polyfill-provider": "^0.4.3",
- "semver": "^6.3.1"
- },
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
- }
- },
- "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/babel-plugin-polyfill-corejs3": {
- "version": "0.8.6",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz",
- "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.4.3",
- "core-js-compat": "^3.33.1"
- },
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
- }
- },
- "node_modules/babel-plugin-polyfill-regenerator": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz",
- "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.4.3"
- },
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
- }
- },
- "node_modules/babel-plugin-react-docgen": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.2.1.tgz",
- "integrity": "sha512-UQ0NmGHj/HAqi5Bew8WvNfCk8wSsmdgNd8ZdMjBCICtyCJCq9LiqgqvjCYe570/Wg7AQArSq1VQ60Dd/CHN7mQ==",
- "dev": true,
- "dependencies": {
- "ast-types": "^0.14.2",
- "lodash": "^4.17.15",
- "react-docgen": "^5.0.0"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- },
- "node_modules/base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/better-opn": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz",
- "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==",
- "dev": true,
- "dependencies": {
- "open": "^8.0.4"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/bidi-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz",
- "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==",
- "dependencies": {
- "require-from-string": "^2.0.2"
- }
- },
- "node_modules/big-integer": {
- "version": "1.6.51",
- "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
- "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==",
- "dev": true,
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/big.js": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
- "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/bl": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
- "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
- "dev": true,
- "dependencies": {
- "buffer": "^5.5.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
- }
- },
- "node_modules/bl/node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "node_modules/bl/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/bl/node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/bn.js": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
- "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==",
- "dev": true
- },
- "node_modules/body-parser": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
- "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
- "dev": true,
- "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"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/body-parser/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/body-parser/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/body-parser/node_modules/qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "dev": true,
- "dependencies": {
- "side-channel": "^1.0.4"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
- "dev": true
- },
- "node_modules/bplist-parser": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz",
- "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==",
- "dev": true,
- "dependencies": {
- "big-integer": "^1.6.44"
- },
- "engines": {
- "node": ">= 5.10.0"
- }
- },
- "node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dependencies": {
- "fill-range": "^7.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/brorand": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
- "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
- "dev": true
- },
- "node_modules/browser-assert": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/browser-assert/-/browser-assert-1.2.1.tgz",
- "integrity": "sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==",
- "dev": true
- },
- "node_modules/browserify-aes": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
- "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
- "dev": true,
- "dependencies": {
- "buffer-xor": "^1.0.3",
- "cipher-base": "^1.0.0",
- "create-hash": "^1.1.0",
- "evp_bytestokey": "^1.0.3",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/browserify-cipher": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
- "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
- "dev": true,
- "dependencies": {
- "browserify-aes": "^1.0.4",
- "browserify-des": "^1.0.0",
- "evp_bytestokey": "^1.0.0"
- }
- },
- "node_modules/browserify-des": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
- "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
- "dev": true,
- "dependencies": {
- "cipher-base": "^1.0.1",
- "des.js": "^1.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "node_modules/browserify-rsa": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz",
- "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
- "dev": true,
- "dependencies": {
- "bn.js": "^5.0.0",
- "randombytes": "^2.0.1"
- }
- },
- "node_modules/browserify-sign": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz",
- "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==",
- "dev": true,
- "dependencies": {
- "bn.js": "^5.2.1",
- "browserify-rsa": "^4.1.0",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "elliptic": "^6.5.4",
- "inherits": "^2.0.4",
- "parse-asn1": "^5.1.6",
- "readable-stream": "^3.6.2",
- "safe-buffer": "^5.2.1"
- },
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/browserify-sign/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/browserify-sign/node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/browserify-zlib": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
- "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
- "dev": true,
- "dependencies": {
- "pako": "~1.0.5"
- }
- },
- "node_modules/browserslist": {
- "version": "4.22.1",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz",
- "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "caniuse-lite": "^1.0.30001541",
- "electron-to-chromium": "^1.4.535",
- "node-releases": "^2.0.13",
- "update-browserslist-db": "^1.0.13"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/bser": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
- "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
- "dev": true,
- "dependencies": {
- "node-int64": "^0.4.0"
- }
- },
- "node_modules/buffer": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
- }
- },
- "node_modules/buffer-crc32": {
- "version": "0.2.13",
- "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
- "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
- },
- "node_modules/buffer-xor": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
- "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==",
- "dev": true
- },
- "node_modules/builtin-status-codes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
- "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==",
- "dev": true
- },
- "node_modules/busboy": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
- "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
- "dependencies": {
- "streamsearch": "^1.1.0"
- },
- "engines": {
- "node": ">=10.16.0"
- }
- },
- "node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/c8": {
- "version": "7.14.0",
- "resolved": "https://registry.npmjs.org/c8/-/c8-7.14.0.tgz",
- "integrity": "sha512-i04rtkkcNcCf7zsQcSv/T9EbUn4RXQ6mropeMcjFOsQXQ0iGLAr/xT6TImQg4+U9hmNpN9XdvPkjUL1IzbgxJw==",
- "dev": true,
- "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"
- },
- "bin": {
- "c8": "bin/c8.js"
- },
- "engines": {
- "node": ">=10.12.0"
- }
- },
- "node_modules/call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dependencies": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/camel-case": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
- "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
- "dev": true,
- "dependencies": {
- "pascal-case": "^3.1.2",
- "tslib": "^2.0.3"
- }
- },
- "node_modules/camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/camera-controls": {
- "version": "2.7.2",
- "resolved": "https://registry.npmjs.org/camera-controls/-/camera-controls-2.7.2.tgz",
- "integrity": "sha512-6+gaZFK3LYbWaXC94EN0BYLlvpo9xfUqwp59vsU3nV7WXIU05q4wyP5TOgyG1tqTHReuBofb20vKfZNBNjMtzw==",
- "peerDependencies": {
- "three": ">=0.126.1"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001617",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001617.tgz",
- "integrity": "sha512-mLyjzNI9I+Pix8zwcrpxEbGlfqOkF9kM3ptzmKNw5tizSyYwMe+nGLTqMK9cO+0E+Bh6TsBxNAaHWEM8xwSsmA==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ]
- },
- "node_modules/case-sensitive-paths-webpack-plugin": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz",
- "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ],
- "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"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/chokidar/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/chrome-trace-event": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
- "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
- "engines": {
- "node": ">=6.0"
- }
- },
- "node_modules/ci-info": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
- "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/sibiraj-s"
- }
- ],
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cipher-base": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
- "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/clean-css": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz",
- "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==",
- "dev": true,
- "dependencies": {
- "source-map": "~0.6.0"
- },
- "engines": {
- "node": ">= 10.0"
- }
- },
- "node_modules/clean-stack": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/cli-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
- "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
- "dev": true,
- "dependencies": {
- "restore-cursor": "^3.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cli-spinners": {
- "version": "2.9.1",
- "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz",
- "integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/cli-table3": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz",
- "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.2.0"
- },
- "engines": {
- "node": "10.* || >= 12.*"
- },
- "optionalDependencies": {
- "@colors/colors": "1.5.0"
- }
- },
- "node_modules/client-only": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
- "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="
- },
- "node_modules/cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "node_modules/clone": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
- "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
- "dev": true,
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/clone-deep": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
- "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
- "dev": true,
- "dependencies": {
- "is-plain-object": "^2.0.4",
- "kind-of": "^6.0.2",
- "shallow-clone": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/clone-deep/node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dev": true,
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/colorette": {
- "version": "2.0.20",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
- "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
- "dev": true
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
- },
- "node_modules/common-path-prefix": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz",
- "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==",
- "dev": true
- },
- "node_modules/commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
- "dev": true
- },
- "node_modules/compressible": {
- "version": "2.0.18",
- "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
- "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
- "dev": true,
- "dependencies": {
- "mime-db": ">= 1.43.0 < 2"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/compression": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
- "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
- "dev": true,
- "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"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/compression/node_modules/bytes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
- "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/compression/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/compression/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/compression/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
- },
- "node_modules/concat-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
- "dev": true,
- "engines": [
- "node >= 0.8"
- ],
- "dependencies": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
- }
- },
- "node_modules/concat-stream/node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "dev": true
- },
- "node_modules/concat-stream/node_modules/readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
- "dev": true,
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/concat-stream/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "node_modules/concat-stream/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/console-browserify": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
- "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
- "dev": true
- },
- "node_modules/constants-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
- "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==",
- "dev": true
- },
- "node_modules/content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/content-type": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/convert-source-map": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
- "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
- "dev": true
- },
- "node_modules/cookie": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
- "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
- "dev": true
- },
- "node_modules/core-js-compat": {
- "version": "3.33.2",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.2.tgz",
- "integrity": "sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==",
- "dev": true,
- "dependencies": {
- "browserslist": "^4.22.1"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
- "node_modules/core-js-pure": {
- "version": "3.33.2",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.33.2.tgz",
- "integrity": "sha512-a8zeCdyVk7uF2elKIGz67AjcXOxjRbwOLz8SbklEso1V+2DoW4OkAMZN9S9GBgvZIaqQi/OemFX4OiSoQEmg1Q==",
- "dev": true,
- "hasInstallScript": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
- "node_modules/core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
- },
- "node_modules/cosmiconfig": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
- "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
- "dev": true,
- "dependencies": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.2.1",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.10.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/create-ecdh": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
- "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
- "dev": true,
- "dependencies": {
- "bn.js": "^4.1.0",
- "elliptic": "^6.5.3"
- }
- },
- "node_modules/create-ecdh/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
- },
- "node_modules/create-hash": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
- "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
- "dev": true,
- "dependencies": {
- "cipher-base": "^1.0.1",
- "inherits": "^2.0.1",
- "md5.js": "^1.3.4",
- "ripemd160": "^2.0.1",
- "sha.js": "^2.4.0"
- }
- },
- "node_modules/create-hmac": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
- "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
- "dev": true,
- "dependencies": {
- "cipher-base": "^1.0.3",
- "create-hash": "^1.1.0",
- "inherits": "^2.0.1",
- "ripemd160": "^2.0.0",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
- }
- },
- "node_modules/cross-env": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
- "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
- "dependencies": {
- "cross-spawn": "^7.0.1"
- },
- "bin": {
- "cross-env": "src/bin/cross-env.js",
- "cross-env-shell": "src/bin/cross-env-shell.js"
- },
- "engines": {
- "node": ">=10.14",
- "npm": ">=6",
- "yarn": ">=1"
- }
- },
- "node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/crypto-browserify": {
- "version": "3.12.0",
- "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
- "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
- "dev": true,
- "dependencies": {
- "browserify-cipher": "^1.0.0",
- "browserify-sign": "^4.0.0",
- "create-ecdh": "^4.0.0",
- "create-hash": "^1.1.0",
- "create-hmac": "^1.1.0",
- "diffie-hellman": "^5.0.0",
- "inherits": "^2.0.1",
- "pbkdf2": "^3.0.3",
- "public-encrypt": "^4.0.0",
- "randombytes": "^2.0.0",
- "randomfill": "^1.0.3"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/crypto-random-string": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
- "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/css-loader": {
- "version": "6.8.1",
- "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz",
- "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==",
- "dev": true,
- "dependencies": {
- "icss-utils": "^5.1.0",
- "postcss": "^8.4.21",
- "postcss-modules-extract-imports": "^3.0.0",
- "postcss-modules-local-by-default": "^4.0.3",
- "postcss-modules-scope": "^3.0.0",
- "postcss-modules-values": "^4.0.0",
- "postcss-value-parser": "^4.2.0",
- "semver": "^7.3.8"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.0.0"
- }
- },
- "node_modules/css-select": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
- "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
- "dev": true,
- "dependencies": {
- "boolbase": "^1.0.0",
- "css-what": "^6.0.1",
- "domhandler": "^4.3.1",
- "domutils": "^2.8.0",
- "nth-check": "^2.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/css-what": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
- "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/cssesc": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
- "dev": true,
- "bin": {
- "cssesc": "bin/cssesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/csstype": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
- "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
- },
- "node_modules/damerau-levenshtein": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
- "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA=="
- },
- "node_modules/debounce": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz",
- "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug=="
- },
- "node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/dedent": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
- "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==",
- "dev": true
- },
- "node_modules/deep-equal": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.2.tgz",
- "integrity": "sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==",
- "dev": true,
- "dependencies": {
- "array-buffer-byte-length": "^1.0.0",
- "call-bind": "^1.0.2",
- "es-get-iterator": "^1.1.3",
- "get-intrinsic": "^1.2.1",
- "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"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
- },
- "node_modules/deepmerge": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
- "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/default-browser-id": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz",
- "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==",
- "dev": true,
- "dependencies": {
- "bplist-parser": "^0.2.0",
- "untildify": "^4.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/defaults": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
- "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
- "dev": true,
- "dependencies": {
- "clone": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/define-lazy-prop": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
- "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/define-properties": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz",
- "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==",
- "dependencies": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/defu": {
- "version": "6.1.3",
- "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.3.tgz",
- "integrity": "sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ==",
- "dev": true
- },
- "node_modules/del": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz",
- "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==",
- "dev": true,
- "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"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "dev": true,
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/dequal": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
- "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/des.js": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz",
- "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0"
- }
- },
- "node_modules/destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "dev": true,
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/detect-gpu": {
- "version": "5.0.37",
- "resolved": "https://registry.npmjs.org/detect-gpu/-/detect-gpu-5.0.37.tgz",
- "integrity": "sha512-EraWs84faI4iskB4qvE39bevMIazEvd1RpoyGLOBesRLbiz6eMeJqqRPHjEFClfRByYZzi9IzU35rBXIO76oDw==",
- "dependencies": {
- "webgl-constants": "^1.1.1"
- }
- },
- "node_modules/detect-indent": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
- "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/detect-node-es": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz",
- "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==",
- "dev": true
- },
- "node_modules/detect-package-manager": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/detect-package-manager/-/detect-package-manager-2.0.1.tgz",
- "integrity": "sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==",
- "dev": true,
- "dependencies": {
- "execa": "^5.1.1"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/detect-port": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz",
- "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==",
- "dev": true,
- "dependencies": {
- "address": "^1.0.1",
- "debug": "4"
- },
- "bin": {
- "detect": "bin/detect-port.js",
- "detect-port": "bin/detect-port.js"
- }
- },
- "node_modules/diffie-hellman": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
- "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
- "dev": true,
- "dependencies": {
- "bn.js": "^4.1.0",
- "miller-rabin": "^4.0.0",
- "randombytes": "^2.0.0"
- }
- },
- "node_modules/diffie-hellman/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
- },
- "node_modules/dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "dependencies": {
- "path-type": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/dom-accessibility-api": {
- "version": "0.5.16",
- "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz",
- "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==",
- "dev": true
- },
- "node_modules/dom-converter": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
- "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==",
- "dev": true,
- "dependencies": {
- "utila": "~0.4"
- }
- },
- "node_modules/dom-serializer": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
- "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
- "dev": true,
- "dependencies": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.2.0",
- "entities": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
- }
- },
- "node_modules/domain-browser": {
- "version": "4.23.0",
- "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.23.0.tgz",
- "integrity": "sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://bevry.me/fund"
- }
- },
- "node_modules/domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ]
- },
- "node_modules/domhandler": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
- "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
- "dev": true,
- "dependencies": {
- "domelementtype": "^2.2.0"
- },
- "engines": {
- "node": ">= 4"
- },
- "funding": {
- "url": "https://github.com/fb55/domhandler?sponsor=1"
- }
- },
- "node_modules/domutils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
- "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
- "dev": true,
- "dependencies": {
- "dom-serializer": "^1.0.1",
- "domelementtype": "^2.2.0",
- "domhandler": "^4.2.0"
- },
- "funding": {
- "url": "https://github.com/fb55/domutils?sponsor=1"
- }
- },
- "node_modules/dot-case": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
- "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
- "dev": true,
- "dependencies": {
- "no-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
- },
- "node_modules/dotenv": {
- "version": "16.3.1",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz",
- "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/motdotla/dotenv?sponsor=1"
- }
- },
- "node_modules/dotenv-expand": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz",
- "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/draco3d": {
- "version": "1.5.6",
- "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.6.tgz",
- "integrity": "sha512-+3NaRjWktb5r61ZFoDejlykPEFKT5N/LkbXsaddlw6xNSXBanUYpFc2AXXpbJDilPHazcSreU/DpQIaxfX0NfQ=="
- },
- "node_modules/duplexify": {
- "version": "3.7.1",
- "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
- "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
- "dev": true,
- "dependencies": {
- "end-of-stream": "^1.0.0",
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.0",
- "stream-shift": "^1.0.0"
- }
- },
- "node_modules/duplexify/node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "dev": true
- },
- "node_modules/duplexify/node_modules/readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
- "dev": true,
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/duplexify/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "node_modules/duplexify/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dev": true
- },
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
- "dev": true
- },
- "node_modules/ejs": {
- "version": "3.1.9",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz",
- "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==",
- "dev": true,
- "dependencies": {
- "jake": "^10.8.5"
- },
- "bin": {
- "ejs": "bin/cli.js"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/electron-to-chromium": {
- "version": "1.4.576",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.576.tgz",
- "integrity": "sha512-yXsZyXJfAqzWk1WKryr0Wl0MN2D47xodPvEEwlVePBnhU5E7raevLQR+E6b9JAD3GfL/7MbAL9ZtWQQPcLx7wA=="
- },
- "node_modules/elliptic": {
- "version": "6.5.4",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
- "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
- "dev": true,
- "dependencies": {
- "bn.js": "^4.11.9",
- "brorand": "^1.1.0",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.1",
- "inherits": "^2.0.4",
- "minimalistic-assert": "^1.0.1",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
- "node_modules/elliptic/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
- },
- "node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
- },
- "node_modules/emojis-list": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
- "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/end-of-stream": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
- "dev": true,
- "dependencies": {
- "once": "^1.4.0"
- }
- },
- "node_modules/endent": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/endent/-/endent-2.1.0.tgz",
- "integrity": "sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==",
- "dev": true,
- "dependencies": {
- "dedent": "^0.7.0",
- "fast-json-parse": "^1.0.3",
- "objectorarray": "^1.0.5"
- }
- },
- "node_modules/enhanced-resolve": {
- "version": "5.15.0",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz",
- "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==",
- "dependencies": {
- "graceful-fs": "^4.2.4",
- "tapable": "^2.2.0"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/entities": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
- "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
- "dev": true,
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/envinfo": {
- "version": "7.11.0",
- "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz",
- "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==",
- "dev": true,
- "bin": {
- "envinfo": "dist/cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
- "dependencies": {
- "is-arrayish": "^0.2.1"
- }
- },
- "node_modules/error-stack-parser": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
- "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
- "dev": true,
- "dependencies": {
- "stackframe": "^1.3.4"
- }
- },
- "node_modules/es-abstract": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.1.tgz",
- "integrity": "sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==",
- "dependencies": {
- "array-buffer-byte-length": "^1.0.0",
- "arraybuffer.prototype.slice": "^1.0.1",
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
- "es-set-tostringtag": "^2.0.1",
- "es-to-primitive": "^1.2.1",
- "function.prototype.name": "^1.1.5",
- "get-intrinsic": "^1.2.1",
- "get-symbol-description": "^1.0.0",
- "globalthis": "^1.0.3",
- "gopd": "^1.0.1",
- "has": "^1.0.3",
- "has-property-descriptors": "^1.0.0",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "internal-slot": "^1.0.5",
- "is-array-buffer": "^3.0.2",
- "is-callable": "^1.2.7",
- "is-negative-zero": "^2.0.2",
- "is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.2",
- "is-string": "^1.0.7",
- "is-typed-array": "^1.1.10",
- "is-weakref": "^1.0.2",
- "object-inspect": "^1.12.3",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.4",
- "regexp.prototype.flags": "^1.5.0",
- "safe-array-concat": "^1.0.0",
- "safe-regex-test": "^1.0.0",
- "string.prototype.trim": "^1.2.7",
- "string.prototype.trimend": "^1.0.6",
- "string.prototype.trimstart": "^1.0.6",
- "typed-array-buffer": "^1.0.0",
- "typed-array-byte-length": "^1.0.0",
- "typed-array-byte-offset": "^1.0.0",
- "typed-array-length": "^1.0.4",
- "unbox-primitive": "^1.0.2",
- "which-typed-array": "^1.1.10"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/es-get-iterator": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz",
- "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==",
- "dev": true,
- "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"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/es-iterator-helpers": {
- "version": "1.0.13",
- "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.13.tgz",
- "integrity": "sha512-LK3VGwzvaPWobO8xzXXGRUOGw8Dcjyfk62CsY/wfHN75CwsJPbuypOYJxK6g5RyEL8YDjIWcl6jgd8foO6mmrA==",
- "dependencies": {
- "asynciterator.prototype": "^1.0.0",
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.21.3",
- "es-set-tostringtag": "^2.0.1",
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.2.1",
- "globalthis": "^1.0.3",
- "has-property-descriptors": "^1.0.0",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "internal-slot": "^1.0.5",
- "iterator.prototype": "^1.1.0",
- "safe-array-concat": "^1.0.0"
- }
- },
- "node_modules/es-module-lexer": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz",
- "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA=="
- },
- "node_modules/es-set-tostringtag": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz",
- "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==",
- "dependencies": {
- "get-intrinsic": "^1.1.3",
- "has": "^1.0.3",
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-shim-unscopables": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
- "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
- "dependencies": {
- "has": "^1.0.3"
- }
- },
- "node_modules/es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
- "dependencies": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/esbuild": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
- "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
- "dev": true,
- "hasInstallScript": true,
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=12"
- },
- "optionalDependencies": {
- "@esbuild/android-arm": "0.18.20",
- "@esbuild/android-arm64": "0.18.20",
- "@esbuild/android-x64": "0.18.20",
- "@esbuild/darwin-arm64": "0.18.20",
- "@esbuild/darwin-x64": "0.18.20",
- "@esbuild/freebsd-arm64": "0.18.20",
- "@esbuild/freebsd-x64": "0.18.20",
- "@esbuild/linux-arm": "0.18.20",
- "@esbuild/linux-arm64": "0.18.20",
- "@esbuild/linux-ia32": "0.18.20",
- "@esbuild/linux-loong64": "0.18.20",
- "@esbuild/linux-mips64el": "0.18.20",
- "@esbuild/linux-ppc64": "0.18.20",
- "@esbuild/linux-riscv64": "0.18.20",
- "@esbuild/linux-s390x": "0.18.20",
- "@esbuild/linux-x64": "0.18.20",
- "@esbuild/netbsd-x64": "0.18.20",
- "@esbuild/openbsd-x64": "0.18.20",
- "@esbuild/sunos-x64": "0.18.20",
- "@esbuild/win32-arm64": "0.18.20",
- "@esbuild/win32-ia32": "0.18.20",
- "@esbuild/win32-x64": "0.18.20"
- }
- },
- "node_modules/esbuild-plugin-alias": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/esbuild-plugin-alias/-/esbuild-plugin-alias-0.2.1.tgz",
- "integrity": "sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ==",
- "dev": true
- },
- "node_modules/esbuild-register": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.5.0.tgz",
- "integrity": "sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==",
- "dev": true,
- "dependencies": {
- "debug": "^4.3.4"
- },
- "peerDependencies": {
- "esbuild": ">=0.12 <1"
- }
- },
- "node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
- "dev": true
- },
- "node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/escodegen": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
- "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
- "dev": true,
- "dependencies": {
- "esprima": "^4.0.1",
- "estraverse": "^5.2.0",
- "esutils": "^2.0.2"
- },
- "bin": {
- "escodegen": "bin/escodegen.js",
- "esgenerate": "bin/esgenerate.js"
- },
- "engines": {
- "node": ">=6.0"
- },
- "optionalDependencies": {
- "source-map": "~0.6.1"
- }
- },
- "node_modules/eslint": {
- "version": "8.47.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.47.0.tgz",
- "integrity": "sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==",
- "dependencies": {
- "@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.6.1",
- "@eslint/eslintrc": "^2.1.2",
- "@eslint/js": "^8.47.0",
- "@humanwhocodes/config-array": "^0.11.10",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@nodelib/fs.walk": "^1.2.8",
- "ajv": "^6.12.4",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.2.2",
- "eslint-visitor-keys": "^3.4.3",
- "espree": "^9.6.1",
- "esquery": "^1.4.2",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "globals": "^13.19.0",
- "graphemer": "^1.4.0",
- "ignore": "^5.2.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "is-path-inside": "^3.0.3",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.3",
- "strip-ansi": "^6.0.1",
- "text-table": "^0.2.0"
- },
- "bin": {
- "eslint": "bin/eslint.js"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-config-next": {
- "version": "13.4.19",
- "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-13.4.19.tgz",
- "integrity": "sha512-WE8367sqMnjhWHvR5OivmfwENRQ1ixfNE9hZwQqNCsd+iM3KnuMc1V8Pt6ytgjxjf23D+xbesADv9x3xaKfT3g==",
- "dependencies": {
- "@next/eslint-plugin-next": "13.4.19",
- "@rushstack/eslint-patch": "^1.1.3",
- "@typescript-eslint/parser": "^5.4.2 || ^6.0.0",
- "eslint-import-resolver-node": "^0.3.6",
- "eslint-import-resolver-typescript": "^3.5.2",
- "eslint-plugin-import": "^2.26.0",
- "eslint-plugin-jsx-a11y": "^6.5.1",
- "eslint-plugin-react": "^7.31.7",
- "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705"
- },
- "peerDependencies": {
- "eslint": "^7.23.0 || ^8.0.0",
- "typescript": ">=3.3.1"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/eslint-import-resolver-node": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
- "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
- "dependencies": {
- "debug": "^3.2.7",
- "is-core-module": "^2.13.0",
- "resolve": "^1.22.4"
- }
- },
- "node_modules/eslint-import-resolver-node/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/eslint-import-resolver-typescript": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.0.tgz",
- "integrity": "sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg==",
- "dependencies": {
- "debug": "^4.3.4",
- "enhanced-resolve": "^5.12.0",
- "eslint-module-utils": "^2.7.4",
- "fast-glob": "^3.3.1",
- "get-tsconfig": "^4.5.0",
- "is-core-module": "^2.11.0",
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": "^14.18.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts"
- },
- "peerDependencies": {
- "eslint": "*",
- "eslint-plugin-import": "*"
- }
- },
- "node_modules/eslint-module-utils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz",
- "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==",
- "dependencies": {
- "debug": "^3.2.7"
- },
- "engines": {
- "node": ">=4"
- },
- "peerDependenciesMeta": {
- "eslint": {
- "optional": true
- }
- }
- },
- "node_modules/eslint-module-utils/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/eslint-plugin-import": {
- "version": "2.28.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz",
- "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==",
- "dependencies": {
- "array-includes": "^3.1.6",
- "array.prototype.findlastindex": "^1.2.2",
- "array.prototype.flat": "^1.3.1",
- "array.prototype.flatmap": "^1.3.1",
- "debug": "^3.2.7",
- "doctrine": "^2.1.0",
- "eslint-import-resolver-node": "^0.3.7",
- "eslint-module-utils": "^2.8.0",
- "has": "^1.0.3",
- "is-core-module": "^2.13.0",
- "is-glob": "^4.0.3",
- "minimatch": "^3.1.2",
- "object.fromentries": "^2.0.6",
- "object.groupby": "^1.0.0",
- "object.values": "^1.1.6",
- "semver": "^6.3.1",
- "tsconfig-paths": "^3.14.2"
- },
- "engines": {
- "node": ">=4"
- },
- "peerDependencies": {
- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
- "dependencies": {
- "ms": "^2.1.1"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/eslint-plugin-import/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/eslint-plugin-jsx-a11y": {
- "version": "6.7.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz",
- "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==",
- "dependencies": {
- "@babel/runtime": "^7.20.7",
- "aria-query": "^5.1.3",
- "array-includes": "^3.1.6",
- "array.prototype.flatmap": "^1.3.1",
- "ast-types-flow": "^0.0.7",
- "axe-core": "^4.6.2",
- "axobject-query": "^3.1.1",
- "damerau-levenshtein": "^1.0.8",
- "emoji-regex": "^9.2.2",
- "has": "^1.0.3",
- "jsx-ast-utils": "^3.3.3",
- "language-tags": "=1.0.5",
- "minimatch": "^3.1.2",
- "object.entries": "^1.1.6",
- "object.fromentries": "^2.0.6",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=4.0"
- },
- "peerDependencies": {
- "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
- }
- },
- "node_modules/eslint-plugin-jsx-a11y/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/eslint-plugin-react": {
- "version": "7.33.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz",
- "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==",
- "dependencies": {
- "array-includes": "^3.1.6",
- "array.prototype.flatmap": "^1.3.1",
- "array.prototype.tosorted": "^1.1.1",
- "doctrine": "^2.1.0",
- "es-iterator-helpers": "^1.0.12",
- "estraverse": "^5.3.0",
- "jsx-ast-utils": "^2.4.1 || ^3.0.0",
- "minimatch": "^3.1.2",
- "object.entries": "^1.1.6",
- "object.fromentries": "^2.0.6",
- "object.hasown": "^1.1.2",
- "object.values": "^1.1.6",
- "prop-types": "^15.8.1",
- "resolve": "^2.0.0-next.4",
- "semver": "^6.3.1",
- "string.prototype.matchall": "^4.0.8"
- },
- "engines": {
- "node": ">=4"
- },
- "peerDependencies": {
- "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
- }
- },
- "node_modules/eslint-plugin-react-hooks": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz",
- "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==",
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0"
- }
- },
- "node_modules/eslint-plugin-react/node_modules/doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/eslint-plugin-react/node_modules/resolve": {
- "version": "2.0.0-next.4",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz",
- "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==",
- "dependencies": {
- "is-core-module": "^2.9.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/eslint-plugin-react/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/eslint-plugin-storybook": {
- "version": "0.6.15",
- "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-0.6.15.tgz",
- "integrity": "sha512-lAGqVAJGob47Griu29KXYowI4G7KwMoJDOkEip8ujikuDLxU+oWJ1l0WL6F2oDO4QiyUFXvtDkEkISMOPzo+7w==",
- "dev": true,
- "dependencies": {
- "@storybook/csf": "^0.0.1",
- "@typescript-eslint/utils": "^5.45.0",
- "requireindex": "^1.1.0",
- "ts-dedent": "^2.2.0"
- },
- "engines": {
- "node": "12.x || 14.x || >= 16"
- },
- "peerDependencies": {
- "eslint": ">=6"
- }
- },
- "node_modules/eslint-plugin-storybook/node_modules/@storybook/csf": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.1.tgz",
- "integrity": "sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==",
- "dev": true,
- "dependencies": {
- "lodash": "^4.17.15"
- }
- },
- "node_modules/eslint-scope": {
- "version": "7.2.2",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
- "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/espree": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
- "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
- "dependencies": {
- "acorn": "^8.9.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.4.1"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "dev": true,
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/esquery": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
- "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
- "dependencies": {
- "estraverse": "^5.1.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dependencies": {
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estree-to-babel": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/estree-to-babel/-/estree-to-babel-3.2.1.tgz",
- "integrity": "sha512-YNF+mZ/Wu2FU/gvmzuWtYc8rloubL7wfXCTgouFrnjGVXPA/EeYYA7pupXWrb3Iv1cTBeSSxxJIbK23l4MRNqg==",
- "dev": true,
- "dependencies": {
- "@babel/traverse": "^7.1.6",
- "@babel/types": "^7.2.0",
- "c8": "^7.6.0"
- },
- "engines": {
- "node": ">=8.3.0"
- }
- },
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/event-target-shim": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
- "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/eventemitter3": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
- "dev": true
- },
- "node_modules/events": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
- "engines": {
- "node": ">=0.8.x"
- }
- },
- "node_modules/evp_bytestokey": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
- "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
- "dev": true,
- "dependencies": {
- "md5.js": "^1.3.4",
- "safe-buffer": "^5.1.1"
- }
- },
- "node_modules/execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dev": true,
- "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"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/express": {
- "version": "4.18.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
- "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
- "dev": true,
- "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"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/express/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/express/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/express/node_modules/qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "dev": true,
- "dependencies": {
- "side-channel": "^1.0.4"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
- "dev": true
- },
- "node_modules/extract-zip": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz",
- "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==",
- "dev": true,
- "dependencies": {
- "concat-stream": "^1.6.2",
- "debug": "^2.6.9",
- "mkdirp": "^0.5.4",
- "yauzl": "^2.10.0"
- },
- "bin": {
- "extract-zip": "cli.js"
- }
- },
- "node_modules/extract-zip/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/extract-zip/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
- },
- "node_modules/fast-glob": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
- "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
- "dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.4"
- },
- "engines": {
- "node": ">=8.6.0"
- }
- },
- "node_modules/fast-glob/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fast-json-parse": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz",
- "integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==",
- "dev": true
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
- },
- "node_modules/fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
- },
- "node_modules/fastq": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
- "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/fb-watchman": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
- "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
- "dev": true,
- "dependencies": {
- "bser": "2.1.1"
- }
- },
- "node_modules/fd-slicer": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
- "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
- "dev": true,
- "dependencies": {
- "pend": "~1.2.0"
- }
- },
- "node_modules/fetch-retry": {
- "version": "5.0.6",
- "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-5.0.6.tgz",
- "integrity": "sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==",
- "dev": true
- },
- "node_modules/fflate": {
- "version": "0.6.10",
- "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.6.10.tgz",
- "integrity": "sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg=="
- },
- "node_modules/file-entry-cache": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
- "dependencies": {
- "flat-cache": "^3.0.4"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- }
- },
- "node_modules/file-system-cache": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-2.3.0.tgz",
- "integrity": "sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==",
- "dev": true,
- "dependencies": {
- "fs-extra": "11.1.1",
- "ramda": "0.29.0"
- }
- },
- "node_modules/filelist": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz",
- "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==",
- "dev": true,
- "dependencies": {
- "minimatch": "^5.0.1"
- }
- },
- "node_modules/filelist/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/filelist/node_modules/minimatch": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
- "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/filter-obj": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-2.0.2.tgz",
- "integrity": "sha512-lO3ttPjHZRfjMcxWKb1j1eDhTFsu4meeR3lnMcnBFhk6RuLhvEiuALu2TlfL310ph4lCYYwgF/ElIjdP739tdg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/finalhandler": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
- "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
- "dev": true,
- "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"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/finalhandler/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/finalhandler/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/find-cache-dir": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
- "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
- "dev": true,
- "dependencies": {
- "commondir": "^1.0.1",
- "make-dir": "^3.0.2",
- "pkg-dir": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
- }
- },
- "node_modules/find-cache-dir/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/find-cache-dir/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/find-cache-dir/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/find-cache-dir/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/find-cache-dir/node_modules/pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "dev": true,
- "dependencies": {
- "find-up": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
- "dependencies": {
- "flatted": "^3.1.0",
- "rimraf": "^3.0.2"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- }
- },
- "node_modules/flatted": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
- "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ=="
- },
- "node_modules/flow-parser": {
- "version": "0.220.1",
- "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.220.1.tgz",
- "integrity": "sha512-RoM3ARqVYvxnwtkM36RjQFzo5Z9p22jUqtuMrN8gzA/8fU6iMLFE3cXkdSFPyfHRXLU8ILH8TCtSFADk1ACPCg==",
- "dev": true,
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/for-each": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
- "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
- "dependencies": {
- "is-callable": "^1.1.3"
- }
- },
- "node_modules/foreground-child": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz",
- "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^3.0.2"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/fork-ts-checker-webpack-plugin": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz",
- "integrity": "sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.16.7",
- "chalk": "^4.1.2",
- "chokidar": "^3.5.3",
- "cosmiconfig": "^7.0.1",
- "deepmerge": "^4.2.2",
- "fs-extra": "^10.0.0",
- "memfs": "^3.4.1",
- "minimatch": "^3.0.4",
- "node-abort-controller": "^3.0.1",
- "schema-utils": "^3.1.1",
- "semver": "^7.3.5",
- "tapable": "^2.2.1"
- },
- "engines": {
- "node": ">=12.13.0",
- "yarn": ">=1.0.0"
- },
- "peerDependencies": {
- "typescript": ">3.6.0",
- "webpack": "^5.11.0"
- }
- },
- "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/form-data": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
- "dev": true,
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fs-constants": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
- "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
- "dev": true
- },
- "node_modules/fs-extra": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz",
- "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=14.14"
- }
- },
- "node_modules/fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
- "dev": true,
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/fs-minipass/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/fs-monkey": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz",
- "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==",
- "dev": true
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
- },
- "node_modules/function.prototype.name": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
- "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.0",
- "functions-have-names": "^1.2.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/functions-have-names": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
- "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "dev": true,
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
- "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
- "dependencies": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-nonce": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz",
- "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/get-npm-tarball-url": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/get-npm-tarball-url/-/get-npm-tarball-url-2.0.3.tgz",
- "integrity": "sha512-R/PW6RqyaBQNWYaSyfrh54/qtcnOp22FHCCiRhSSZj0FP3KQWCsxxt0DzIdVTbwTqe9CtQfvl/FPD4UIPt4pqw==",
- "dev": true,
- "engines": {
- "node": ">=12.17"
- }
- },
- "node_modules/get-package-type": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
- "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
- "dev": true,
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/get-port": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz",
- "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/get-symbol-description": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
- "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-tsconfig": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.0.tgz",
- "integrity": "sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==",
- "dependencies": {
- "resolve-pkg-maps": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
- }
- },
- "node_modules/giget": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/giget/-/giget-1.1.3.tgz",
- "integrity": "sha512-zHuCeqtfgqgDwvXlR84UNgnJDuUHQcNI5OqWqFxxuk2BshuKbYhJWdxBsEo4PvKqoGh23lUAIvBNpChMLv7/9Q==",
- "dev": true,
- "dependencies": {
- "colorette": "^2.0.20",
- "defu": "^6.1.2",
- "https-proxy-agent": "^7.0.2",
- "mri": "^1.2.0",
- "node-fetch-native": "^1.4.0",
- "pathe": "^1.1.1",
- "tar": "^6.2.0"
- },
- "bin": {
- "giget": "dist/cli.mjs"
- }
- },
- "node_modules/github-slugger": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz",
- "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==",
- "dev": true
- },
- "node_modules/glob": {
- "version": "7.1.7",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
- "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/glob-to-regexp": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
- "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="
- },
- "node_modules/globals": {
- "version": "13.21.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz",
- "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==",
- "dependencies": {
- "type-fest": "^0.20.2"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/globalthis": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
- "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
- "dependencies": {
- "define-properties": "^1.1.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/globby": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
- "dependencies": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/glsl-inject-defines": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz",
- "integrity": "sha512-W49jIhuDtF6w+7wCMcClk27a2hq8znvHtlGnrYkSWEr8tHe9eA2dcnohlcAmxLYBSpSSdzOkRdyPTrx9fw49+A==",
- "dependencies": {
- "glsl-token-inject-block": "^1.0.0",
- "glsl-token-string": "^1.0.1",
- "glsl-tokenizer": "^2.0.2"
- }
- },
- "node_modules/glsl-noise": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/glsl-noise/-/glsl-noise-0.0.0.tgz",
- "integrity": "sha512-b/ZCF6amfAUb7dJM/MxRs7AetQEahYzJ8PtgfrmEdtw6uyGOr+ZSGtgjFm6mfsBkxJ4d2W7kg+Nlqzqvn3Bc0w=="
- },
- "node_modules/glsl-resolve": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/glsl-resolve/-/glsl-resolve-0.0.1.tgz",
- "integrity": "sha512-xxFNsfnhZTK9NBhzJjSBGX6IOqYpvBHxxmo+4vapiljyGNCY0Bekzn0firQkQrazK59c1hYxMDxYS8MDlhw4gA==",
- "dependencies": {
- "resolve": "^0.6.1",
- "xtend": "^2.1.2"
- }
- },
- "node_modules/glsl-resolve/node_modules/resolve": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz",
- "integrity": "sha512-UHBY3viPlJKf85YijDUcikKX6tmF4SokIDp518ZDVT92JNDcG5uKIthaT/owt3Sar0lwtOafsQuwrg22/v2Dwg=="
- },
- "node_modules/glsl-token-assignments": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/glsl-token-assignments/-/glsl-token-assignments-2.0.2.tgz",
- "integrity": "sha512-OwXrxixCyHzzA0U2g4btSNAyB2Dx8XrztY5aVUCjRSh4/D0WoJn8Qdps7Xub3sz6zE73W3szLrmWtQ7QMpeHEQ=="
- },
- "node_modules/glsl-token-defines": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/glsl-token-defines/-/glsl-token-defines-1.0.0.tgz",
- "integrity": "sha512-Vb5QMVeLjmOwvvOJuPNg3vnRlffscq2/qvIuTpMzuO/7s5kT+63iL6Dfo2FYLWbzuiycWpbC0/KV0biqFwHxaQ==",
- "dependencies": {
- "glsl-tokenizer": "^2.0.0"
- }
- },
- "node_modules/glsl-token-depth": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/glsl-token-depth/-/glsl-token-depth-1.1.2.tgz",
- "integrity": "sha512-eQnIBLc7vFf8axF9aoi/xW37LSWd2hCQr/3sZui8aBJnksq9C7zMeUYHVJWMhFzXrBU7fgIqni4EhXVW4/krpg=="
- },
- "node_modules/glsl-token-descope": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/glsl-token-descope/-/glsl-token-descope-1.0.2.tgz",
- "integrity": "sha512-kS2PTWkvi/YOeicVjXGgX5j7+8N7e56srNDEHDTVZ1dcESmbmpmgrnpjPcjxJjMxh56mSXYoFdZqb90gXkGjQw==",
- "dependencies": {
- "glsl-token-assignments": "^2.0.0",
- "glsl-token-depth": "^1.1.0",
- "glsl-token-properties": "^1.0.0",
- "glsl-token-scope": "^1.1.0"
- }
- },
- "node_modules/glsl-token-functions": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/glsl-token-functions/-/glsl-token-functions-1.0.1.tgz",
- "integrity": "sha512-EigGhp1g+aUVeUNY7H1o5tL/bnwIB3/FcRREPr2E7Du+/UDXN24hDkaZ3e4aWHDjHr9lJ6YHXMISkwhUYg9UOg=="
- },
- "node_modules/glsl-token-inject-block": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz",
- "integrity": "sha512-q/m+ukdUBuHCOtLhSr0uFb/qYQr4/oKrPSdIK2C4TD+qLaJvqM9wfXIF/OOBjuSA3pUoYHurVRNao6LTVVUPWA=="
- },
- "node_modules/glsl-token-properties": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/glsl-token-properties/-/glsl-token-properties-1.0.1.tgz",
- "integrity": "sha512-dSeW1cOIzbuUoYH0y+nxzwK9S9O3wsjttkq5ij9ZGw0OS41BirKJzzH48VLm8qLg+au6b0sINxGC0IrGwtQUcA=="
- },
- "node_modules/glsl-token-scope": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/glsl-token-scope/-/glsl-token-scope-1.1.2.tgz",
- "integrity": "sha512-YKyOMk1B/tz9BwYUdfDoHvMIYTGtVv2vbDSLh94PT4+f87z21FVdou1KNKgF+nECBTo0fJ20dpm0B1vZB1Q03A=="
- },
- "node_modules/glsl-token-string": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/glsl-token-string/-/glsl-token-string-1.0.1.tgz",
- "integrity": "sha512-1mtQ47Uxd47wrovl+T6RshKGkRRCYWhnELmkEcUAPALWGTFe2XZpH3r45XAwL2B6v+l0KNsCnoaZCSnhzKEksg=="
- },
- "node_modules/glsl-token-whitespace-trim": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/glsl-token-whitespace-trim/-/glsl-token-whitespace-trim-1.0.0.tgz",
- "integrity": "sha512-ZJtsPut/aDaUdLUNtmBYhaCmhIjpKNg7IgZSfX5wFReMc2vnj8zok+gB/3Quqs0TsBSX/fGnqUUYZDqyuc2xLQ=="
- },
- "node_modules/glsl-tokenizer": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz",
- "integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==",
- "dependencies": {
- "through2": "^0.6.3"
- }
- },
- "node_modules/glslify-bundle": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.1.1.tgz",
- "integrity": "sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==",
- "dependencies": {
- "glsl-inject-defines": "^1.0.1",
- "glsl-token-defines": "^1.0.0",
- "glsl-token-depth": "^1.1.1",
- "glsl-token-descope": "^1.0.2",
- "glsl-token-scope": "^1.1.1",
- "glsl-token-string": "^1.0.1",
- "glsl-token-whitespace-trim": "^1.0.0",
- "glsl-tokenizer": "^2.0.2",
- "murmurhash-js": "^1.0.0",
- "shallow-copy": "0.0.1"
- }
- },
- "node_modules/glslify-deps": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/glslify-deps/-/glslify-deps-1.3.2.tgz",
- "integrity": "sha512-7S7IkHWygJRjcawveXQjRXLO2FTjijPDYC7QfZyAQanY+yGLCFHYnPtsGT9bdyHiwPTw/5a1m1M9hamT2aBpag==",
- "dependencies": {
- "@choojs/findup": "^0.2.0",
- "events": "^3.2.0",
- "glsl-resolve": "0.0.1",
- "glsl-tokenizer": "^2.0.0",
- "graceful-fs": "^4.1.2",
- "inherits": "^2.0.1",
- "map-limit": "0.0.1",
- "resolve": "^1.0.0"
- }
- },
- "node_modules/glslify-loader": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/glslify-loader/-/glslify-loader-2.0.0.tgz",
- "integrity": "sha512-oOdmTX1BSPG75o3gNZToemfbbuN5dgi4Pco/aRfjbwGxPIfflYLuok6JCf2kDBPHjP+tV+imNsj6YRJg9gKJ1A==",
- "dependencies": {
- "glslify-bundle": "^5.0.0",
- "glslify-deps": "^1.3.0",
- "loader-utils": "^1.1.0",
- "resolve": "^1.3.3"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/gopd": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
- "dependencies": {
- "get-intrinsic": "^1.1.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
- },
- "node_modules/graphemer": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
- "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="
- },
- "node_modules/gsap": {
- "version": "3.12.5",
- "resolved": "https://registry.npmjs.org/gsap/-/gsap-3.12.5.tgz",
- "integrity": "sha512-srBfnk4n+Oe/ZnMIOXt3gT605BX9x5+rh/prT2F1SsNJsU1XuMiP0E2aptW481OnonOGACZWBqseH5Z7csHxhQ=="
- },
- "node_modules/gunzip-maybe": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz",
- "integrity": "sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==",
- "dev": true,
- "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"
- },
- "bin": {
- "gunzip-maybe": "bin.js"
- }
- },
- "node_modules/gunzip-maybe/node_modules/browserify-zlib": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
- "integrity": "sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==",
- "dev": true,
- "dependencies": {
- "pako": "~0.2.0"
- }
- },
- "node_modules/gunzip-maybe/node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "dev": true
- },
- "node_modules/gunzip-maybe/node_modules/pako": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
- "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==",
- "dev": true
- },
- "node_modules/gunzip-maybe/node_modules/readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
- "dev": true,
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/gunzip-maybe/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "node_modules/gunzip-maybe/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/gunzip-maybe/node_modules/through2": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
- "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
- "dev": true,
- "dependencies": {
- "readable-stream": "~2.3.6",
- "xtend": "~4.0.1"
- }
- },
- "node_modules/gunzip-maybe/node_modules/xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "dev": true,
- "engines": {
- "node": ">=0.4"
- }
- },
- "node_modules/handlebars": {
- "version": "4.7.8",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
- "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
- "dev": true,
- "dependencies": {
- "minimist": "^1.2.5",
- "neo-async": "^2.6.2",
- "source-map": "^0.6.1",
- "wordwrap": "^1.0.0"
- },
- "bin": {
- "handlebars": "bin/handlebars"
- },
- "engines": {
- "node": ">=0.4.7"
- },
- "optionalDependencies": {
- "uglify-js": "^3.1.4"
- }
- },
- "node_modules/has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dependencies": {
- "function-bind": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/has-bigints": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
- "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/has-property-descriptors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
- "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
- "dependencies": {
- "get-intrinsic": "^1.1.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
- "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-tostringtag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
- "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
- "dependencies": {
- "has-symbols": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/hash-base": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
- "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.4",
- "readable-stream": "^3.6.0",
- "safe-buffer": "^5.2.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/hash-base/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/hash-base/node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/hash.js": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
- "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
- "dev": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "minimalistic-assert": "^1.0.1"
- }
- },
- "node_modules/he": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
- "dev": true,
- "bin": {
- "he": "bin/he"
- }
- },
- "node_modules/hls.js": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.3.5.tgz",
- "integrity": "sha512-uybAvKS6uDe0MnWNEPnO0krWVr+8m2R0hJ/viql8H3MVK+itq8gGQuIYoFHL3rECkIpNH98Lw8YuuWMKZxp3Ew=="
- },
- "node_modules/hmac-drbg": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
- "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
- "dev": true,
- "dependencies": {
- "hash.js": "^1.0.3",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
- "node_modules/hosted-git-info": {
- "version": "2.8.9",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
- "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
- "dev": true
- },
- "node_modules/html-entities": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz",
- "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/mdevils"
- },
- {
- "type": "patreon",
- "url": "https://patreon.com/mdevils"
- }
- ]
- },
- "node_modules/html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true
- },
- "node_modules/html-minifier-terser": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
- "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==",
- "dev": true,
- "dependencies": {
- "camel-case": "^4.1.2",
- "clean-css": "^5.2.2",
- "commander": "^8.3.0",
- "he": "^1.2.0",
- "param-case": "^3.0.4",
- "relateurl": "^0.2.7",
- "terser": "^5.10.0"
- },
- "bin": {
- "html-minifier-terser": "cli.js"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/html-minifier-terser/node_modules/commander": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
- "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
- "dev": true,
- "engines": {
- "node": ">= 12"
- }
- },
- "node_modules/html-tags": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz",
- "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/html-webpack-plugin": {
- "version": "5.5.3",
- "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz",
- "integrity": "sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==",
- "dev": true,
- "dependencies": {
- "@types/html-minifier-terser": "^6.0.0",
- "html-minifier-terser": "^6.0.2",
- "lodash": "^4.17.21",
- "pretty-error": "^4.0.0",
- "tapable": "^2.0.0"
- },
- "engines": {
- "node": ">=10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/html-webpack-plugin"
- },
- "peerDependencies": {
- "webpack": "^5.20.0"
- }
- },
- "node_modules/htmlparser2": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz",
- "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
- "dev": true,
- "funding": [
- "https://github.com/fb55/htmlparser2?sponsor=1",
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ],
- "dependencies": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.0.0",
- "domutils": "^2.5.2",
- "entities": "^2.0.0"
- }
- },
- "node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dev": true,
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/https-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
- "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==",
- "dev": true
- },
- "node_modules/https-proxy-agent": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz",
- "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==",
- "dev": true,
- "dependencies": {
- "agent-base": "^7.0.2",
- "debug": "4"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "dev": true,
- "engines": {
- "node": ">=10.17.0"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/icss-utils": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
- "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
- "dev": true,
- "engines": {
- "node": "^10 || ^12 || >= 14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/ignore": {
- "version": "5.2.4",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
- "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/image-size": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz",
- "integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==",
- "dev": true,
- "dependencies": {
- "queue": "6.0.2"
- },
- "bin": {
- "image-size": "bin/image-size.js"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/immediate": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
- "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
- },
- "node_modules/immutable": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz",
- "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA=="
- },
- "node_modules/import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
- "dependencies": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "engines": {
- "node": ">=0.8.19"
- }
- },
- "node_modules/indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "node_modules/internal-slot": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz",
- "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==",
- "dependencies": {
- "get-intrinsic": "^1.2.0",
- "has": "^1.0.3",
- "side-channel": "^1.0.4"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/invariant": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
- "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
- "dev": true,
- "dependencies": {
- "loose-envify": "^1.0.0"
- }
- },
- "node_modules/ip": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz",
- "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==",
- "dev": true
- },
- "node_modules/ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "dev": true,
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/is-absolute-url": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz",
- "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-arguments": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
- "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-array-buffer": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
- "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.0",
- "is-typed-array": "^1.1.10"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true
- },
- "node_modules/is-async-function": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
- "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==",
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-bigint": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
- "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
- "dependencies": {
- "has-bigints": "^1.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-boolean-object": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
- "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-callable": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.13.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz",
- "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==",
- "dependencies": {
- "has": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-date-object": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
- "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-deflate": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-deflate/-/is-deflate-1.0.0.tgz",
- "integrity": "sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==",
- "dev": true
- },
- "node_modules/is-docker": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
- "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
- "dev": true,
- "bin": {
- "is-docker": "cli.js"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-finalizationregistry": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz",
- "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==",
- "dependencies": {
- "call-bind": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-generator-function": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
- "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-gzip": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz",
- "integrity": "sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-interactive": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
- "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-map": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
- "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-nan": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz",
- "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-negative-zero": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
- "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-number-object": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
- "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-path-cwd": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
- "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-plain-object": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
- "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-promise": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
- "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
- },
- "node_modules/is-regex": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
- "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-set": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
- "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-shared-array-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
- "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
- "dependencies": {
- "call-bind": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-string": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
- "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-symbol": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
- "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
- "dependencies": {
- "has-symbols": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-typed-array": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz",
- "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==",
- "dependencies": {
- "which-typed-array": "^1.1.11"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-unicode-supported": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
- "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-weakmap": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
- "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-weakref": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
- "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
- "dependencies": {
- "call-bind": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-weakset": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz",
- "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-wsl": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
- "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
- "dev": true,
- "dependencies": {
- "is-docker": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
- },
- "node_modules/isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/istanbul-lib-coverage": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.1.tgz",
- "integrity": "sha512-opCrKqbthmq3SKZ10mFMQG9dk3fTa3quaOLD35kJa5ejwZHd9xAr+kLuziiZz2cG32s4lMZxNdmdcEQnTDP4+g==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-instrument": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
- "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
- "dev": true,
- "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"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-instrument/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/istanbul-lib-report": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
- "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
- "dev": true,
- "dependencies": {
- "istanbul-lib-coverage": "^3.0.0",
- "make-dir": "^4.0.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/istanbul-lib-report/node_modules/make-dir": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
- "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
- "dev": true,
- "dependencies": {
- "semver": "^7.5.3"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/istanbul-reports": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz",
- "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==",
- "dev": true,
- "dependencies": {
- "html-escaper": "^2.0.0",
- "istanbul-lib-report": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/iterator.prototype": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.0.tgz",
- "integrity": "sha512-rjuhAk1AJ1fssphHD0IFV6TWL40CwRZ53FrztKx43yk2v6rguBYsY4Bj1VU4HmoMmKwZUlx7mfnhDf9cOp4YTw==",
- "dependencies": {
- "define-properties": "^1.1.4",
- "get-intrinsic": "^1.1.3",
- "has-symbols": "^1.0.3",
- "has-tostringtag": "^1.0.0",
- "reflect.getprototypeof": "^1.0.3"
- }
- },
- "node_modules/its-fine": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/its-fine/-/its-fine-1.1.1.tgz",
- "integrity": "sha512-v1Ia1xl20KbuSGlwoaGsW0oxsw8Be+TrXweidxD9oT/1lAh6O3K3/GIM95Tt6WCiv6W+h2M7RB1TwdoAjQyyKw==",
- "dependencies": {
- "@types/react-reconciler": "^0.28.0"
- },
- "peerDependencies": {
- "react": ">=18.0"
- }
- },
- "node_modules/its-fine/node_modules/@types/react-reconciler": {
- "version": "0.28.3",
- "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.3.tgz",
- "integrity": "sha512-srdTEjQKa0e2mVdjIJkISnFAevdXk3py6J7oKQWjLhy1JNaGq9zEgBh2adejjKi36gHn8NGa/Rr1Uh29rF97dQ==",
- "dependencies": {
- "@types/react": "*"
- }
- },
- "node_modules/jackspeak": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
- "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==",
- "dev": true,
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "node_modules/jake": {
- "version": "10.8.7",
- "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz",
- "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==",
- "dev": true,
- "dependencies": {
- "async": "^3.2.3",
- "chalk": "^4.0.2",
- "filelist": "^1.0.4",
- "minimatch": "^3.1.2"
- },
- "bin": {
- "jake": "bin/cli.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/jest-haste-map": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz",
- "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@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.6.3",
- "jest-util": "^29.7.0",
- "jest-worker": "^29.7.0",
- "micromatch": "^4.0.4",
- "walker": "^1.0.8"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- },
- "optionalDependencies": {
- "fsevents": "^2.3.2"
- }
- },
- "node_modules/jest-haste-map/node_modules/jest-worker": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
- "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "jest-util": "^29.7.0",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-haste-map/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/jest-mock": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz",
- "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^27.5.1",
- "@types/node": "*"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-mock/node_modules/@jest/types": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
- "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
- "dev": true,
- "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"
- },
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
- }
- },
- "node_modules/jest-mock/node_modules/@types/yargs": {
- "version": "16.0.7",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.7.tgz",
- "integrity": "sha512-lQcYmxWuOfJq4IncK88/nwud9rwr1F04CFc5xzk0k4oKVyz/AI35TfsXmhjf6t8zp8mpCOi17BfvuNWx+zrYkg==",
- "dev": true,
- "dependencies": {
- "@types/yargs-parser": "*"
- }
- },
- "node_modules/jest-regex-util": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz",
- "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==",
- "dev": true,
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-util": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
- "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "graceful-fs": "^4.2.9",
- "picomatch": "^2.2.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-worker": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
- "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
- "dependencies": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- }
- },
- "node_modules/jest-worker/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/jiti": {
- "version": "1.21.0",
- "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz",
- "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==",
- "dev": true,
- "bin": {
- "jiti": "bin/jiti.js"
- }
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
- },
- "node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/jscodeshift": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.14.0.tgz",
- "integrity": "sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==",
- "dev": true,
- "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"
- },
- "bin": {
- "jscodeshift": "bin/jscodeshift.js"
- },
- "peerDependencies": {
- "@babel/preset-env": "^7.1.6"
- }
- },
- "node_modules/jscodeshift/node_modules/ast-types": {
- "version": "0.15.2",
- "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz",
- "integrity": "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==",
- "dev": true,
- "dependencies": {
- "tslib": "^2.0.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/jscodeshift/node_modules/recast": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/recast/-/recast-0.21.5.tgz",
- "integrity": "sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==",
- "dev": true,
- "dependencies": {
- "ast-types": "0.15.2",
- "esprima": "~4.0.0",
- "source-map": "~0.6.1",
- "tslib": "^2.0.1"
- },
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/jscodeshift/node_modules/write-file-atomic": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
- "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.1.11",
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.2"
- }
- },
- "node_modules/jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true,
- "bin": {
- "jsesc": "bin/jsesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
- },
- "node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
- },
- "node_modules/json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
- },
- "node_modules/json5": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
- "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
- "dependencies": {
- "minimist": "^1.2.0"
- },
- "bin": {
- "json5": "lib/cli.js"
- }
- },
- "node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "dev": true,
- "dependencies": {
- "universalify": "^2.0.0"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/jsx-ast-utils": {
- "version": "3.3.5",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
- "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
- "dependencies": {
- "array-includes": "^3.1.6",
- "array.prototype.flat": "^1.3.1",
- "object.assign": "^4.1.4",
- "object.values": "^1.1.6"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/kleur": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
- "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/klona": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz",
- "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/language-subtag-registry": {
- "version": "0.3.22",
- "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz",
- "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w=="
- },
- "node_modules/language-tags": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
- "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==",
- "dependencies": {
- "language-subtag-registry": "~0.3.2"
- }
- },
- "node_modules/lazy-universal-dotenv": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-4.0.0.tgz",
- "integrity": "sha512-aXpZJRnTkpK6gQ/z4nk+ZBLd/Qdp118cvPruLSIQzQNRhKwEcdXCOzXuF55VDqIiuAaY3UGZ10DJtvZzDcvsxg==",
- "dev": true,
- "dependencies": {
- "app-root-dir": "^1.0.2",
- "dotenv": "^16.0.0",
- "dotenv-expand": "^10.0.0"
- },
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/leven": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
- "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
- "dependencies": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/lie": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
- "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
- "dependencies": {
- "immediate": "~3.0.5"
- }
- },
- "node_modules/lil-gui": {
- "version": "0.18.2",
- "resolved": "https://registry.npmjs.org/lil-gui/-/lil-gui-0.18.2.tgz",
- "integrity": "sha512-DgdrLy3/KGC0PiQLKgOcJMPItP4xY4iWgJ9+91Zaxfr8GCTmMps05QS9w9jW7yspILlbscbquwjOwxmWnSx5Uw==",
- "dev": true
- },
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
- },
- "node_modules/loader-runner": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
- "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
- "engines": {
- "node": ">=6.11.5"
- }
- },
- "node_modules/loader-utils": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
- "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
- "dependencies": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^1.0.1"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
- },
- "node_modules/lodash.debounce": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
- "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
- "dev": true
- },
- "node_modules/lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
- },
- "node_modules/log-symbols": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
- "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.1.0",
- "is-unicode-supported": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "dependencies": {
- "js-tokens": "^3.0.0 || ^4.0.0"
- },
- "bin": {
- "loose-envify": "cli.js"
- }
- },
- "node_modules/lower-case": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
- "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
- "dev": true,
- "dependencies": {
- "tslib": "^2.0.3"
- }
- },
- "node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/lz-string": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz",
- "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==",
- "dev": true,
- "bin": {
- "lz-string": "bin/bin.js"
- }
- },
- "node_modules/maath": {
- "version": "0.10.7",
- "resolved": "https://registry.npmjs.org/maath/-/maath-0.10.7.tgz",
- "integrity": "sha512-zQ2xd7dNOIVTjAS+hj22fyj1EFYmOJX6tzKjZ92r6WDoq8hyFxjuGA2q950tmR4iC/EKXoMQdSipkaJVuUHDTg==",
- "peerDependencies": {
- "@types/three": ">=0.144.0",
- "three": ">=0.144.0"
- }
- },
- "node_modules/make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
- "dev": true,
- "dependencies": {
- "semver": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/make-dir/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/makeerror": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
- "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
- "dev": true,
- "dependencies": {
- "tmpl": "1.0.5"
- }
- },
- "node_modules/map-limit": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz",
- "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==",
- "dependencies": {
- "once": "~1.3.0"
- }
- },
- "node_modules/map-limit/node_modules/once": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
- "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/map-or-similar": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz",
- "integrity": "sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==",
- "dev": true
- },
- "node_modules/markdown-to-jsx": {
- "version": "7.3.2",
- "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.3.2.tgz",
- "integrity": "sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==",
- "dev": true,
- "engines": {
- "node": ">= 10"
- },
- "peerDependencies": {
- "react": ">= 0.14.0"
- }
- },
- "node_modules/md5.js": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
- "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
- "dev": true,
- "dependencies": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
- }
- },
- "node_modules/mdast-util-definitions": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz",
- "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==",
- "dev": true,
- "dependencies": {
- "unist-util-visit": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-to-string": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz",
- "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/memfs": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz",
- "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==",
- "dev": true,
- "dependencies": {
- "fs-monkey": "^1.0.4"
- },
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/memoizerific": {
- "version": "1.11.3",
- "resolved": "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz",
- "integrity": "sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==",
- "dev": true,
- "dependencies": {
- "map-or-similar": "^1.5.0"
- }
- },
- "node_modules/merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
- "dev": true
- },
- "node_modules/merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
- },
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/meshline": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/meshline/-/meshline-3.1.6.tgz",
- "integrity": "sha512-8JZJOdaL5oz3PI/upG8JvP/5FfzYUOhrkJ8np/WKvXzl0/PZ2V9pqTvCIjSKv+w9ccg2xb+yyBhXAwt6ier3ug==",
- "peerDependencies": {
- "three": ">=0.137"
- }
- },
- "node_modules/meshoptimizer": {
- "version": "0.18.1",
- "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.18.1.tgz",
- "integrity": "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw=="
- },
- "node_modules/methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/micromatch": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
- "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
- "dependencies": {
- "braces": "^3.0.2",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/miller-rabin": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
- "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
- "dev": true,
- "dependencies": {
- "bn.js": "^4.0.0",
- "brorand": "^1.0.1"
- },
- "bin": {
- "miller-rabin": "bin/miller-rabin"
- }
- },
- "node_modules/miller-rabin/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
- },
- "node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "dev": true,
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/min-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
- "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/minimalistic-assert": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
- "dev": true
- },
- "node_modules/minimalistic-crypto-utils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
- "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==",
- "dev": true
- },
- "node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/minipass": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz",
- "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "dev": true,
- "dependencies": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/minizlib/node_modules/minipass": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
- "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
- "dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "dev": true,
- "dependencies": {
- "minimist": "^1.2.6"
- },
- "bin": {
- "mkdirp": "bin/cmd.js"
- }
- },
- "node_modules/mkdirp-classic": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
- "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
- "dev": true
- },
- "node_modules/mri": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
- "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node_modules/murmurhash-js": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz",
- "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw=="
- },
- "node_modules/nanoid": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
- "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
- },
- "node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "dev": true,
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/neo-async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
- },
- "node_modules/next": {
- "version": "14.2.3",
- "resolved": "https://registry.npmjs.org/next/-/next-14.2.3.tgz",
- "integrity": "sha512-dowFkFTR8v79NPJO4QsBUtxv0g9BrS/phluVpMAt2ku7H+cbcBJlopXjkWlwxrk/xGqMemr7JkGPGemPrLLX7A==",
- "dependencies": {
- "@next/env": "14.2.3",
- "@swc/helpers": "0.5.5",
- "busboy": "1.6.0",
- "caniuse-lite": "^1.0.30001579",
- "graceful-fs": "^4.2.11",
- "postcss": "8.4.31",
- "styled-jsx": "5.1.1"
- },
- "bin": {
- "next": "dist/bin/next"
- },
- "engines": {
- "node": ">=18.17.0"
- },
- "optionalDependencies": {
- "@next/swc-darwin-arm64": "14.2.3",
- "@next/swc-darwin-x64": "14.2.3",
- "@next/swc-linux-arm64-gnu": "14.2.3",
- "@next/swc-linux-arm64-musl": "14.2.3",
- "@next/swc-linux-x64-gnu": "14.2.3",
- "@next/swc-linux-x64-musl": "14.2.3",
- "@next/swc-win32-arm64-msvc": "14.2.3",
- "@next/swc-win32-ia32-msvc": "14.2.3",
- "@next/swc-win32-x64-msvc": "14.2.3"
- },
- "peerDependencies": {
- "@opentelemetry/api": "^1.1.0",
- "@playwright/test": "^1.41.2",
- "react": "^18.2.0",
- "react-dom": "^18.2.0",
- "sass": "^1.3.0"
- },
- "peerDependenciesMeta": {
- "@opentelemetry/api": {
- "optional": true
- },
- "@playwright/test": {
- "optional": true
- },
- "sass": {
- "optional": true
- }
- }
- },
- "node_modules/no-case": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
- "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
- "dev": true,
- "dependencies": {
- "lower-case": "^2.0.2",
- "tslib": "^2.0.3"
- }
- },
- "node_modules/node-abort-controller": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz",
- "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==",
- "dev": true
- },
- "node_modules/node-dir": {
- "version": "0.1.17",
- "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz",
- "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==",
- "dev": true,
- "dependencies": {
- "minimatch": "^3.0.2"
- },
- "engines": {
- "node": ">= 0.10.5"
- }
- },
- "node_modules/node-fetch": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
- "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
- "dev": true,
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/node-fetch-native": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.4.1.tgz",
- "integrity": "sha512-NsXBU0UgBxo2rQLOeWNZqS3fvflWePMECr8CoSWoSTqCqGbVVsvl9vZu1HfQicYN0g5piV9Gh8RTEvo/uP752w==",
- "dev": true
- },
- "node_modules/node-int64": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
- "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
- "dev": true
- },
- "node_modules/node-polyfill-webpack-plugin": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/node-polyfill-webpack-plugin/-/node-polyfill-webpack-plugin-2.0.1.tgz",
- "integrity": "sha512-ZUMiCnZkP1LF0Th2caY6J/eKKoA0TefpoVa68m/LQU1I/mE8rGt4fNYGgNuCcK+aG8P8P43nbeJ2RqJMOL/Y1A==",
- "dev": true,
- "dependencies": {
- "assert": "^2.0.0",
- "browserify-zlib": "^0.2.0",
- "buffer": "^6.0.3",
- "console-browserify": "^1.2.0",
- "constants-browserify": "^1.0.0",
- "crypto-browserify": "^3.12.0",
- "domain-browser": "^4.22.0",
- "events": "^3.3.0",
- "filter-obj": "^2.0.2",
- "https-browserify": "^1.0.0",
- "os-browserify": "^0.3.0",
- "path-browserify": "^1.0.1",
- "process": "^0.11.10",
- "punycode": "^2.1.1",
- "querystring-es3": "^0.2.1",
- "readable-stream": "^4.0.0",
- "stream-browserify": "^3.0.0",
- "stream-http": "^3.2.0",
- "string_decoder": "^1.3.0",
- "timers-browserify": "^2.0.12",
- "tty-browserify": "^0.0.1",
- "type-fest": "^2.14.0",
- "url": "^0.11.0",
- "util": "^0.12.4",
- "vm-browserify": "^1.1.2"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "webpack": ">=5"
- }
- },
- "node_modules/node-polyfill-webpack-plugin/node_modules/readable-stream": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz",
- "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==",
- "dev": true,
- "dependencies": {
- "abort-controller": "^3.0.0",
- "buffer": "^6.0.3",
- "events": "^3.3.0",
- "process": "^0.11.10",
- "string_decoder": "^1.3.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- }
- },
- "node_modules/node-polyfill-webpack-plugin/node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/node-polyfill-webpack-plugin/node_modules/type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
- "dev": true,
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/node-releases": {
- "version": "2.0.13",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz",
- "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ=="
- },
- "node_modules/normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
- "dev": true,
- "dependencies": {
- "hosted-git-info": "^2.1.4",
- "resolve": "^1.10.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
- }
- },
- "node_modules/normalize-package-data/node_modules/semver": {
- "version": "5.7.2",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
- "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nth-check": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
- "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
- "dev": true,
- "dependencies": {
- "boolbase": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/fb55/nth-check?sponsor=1"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-hash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
- "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/object-inspect": {
- "version": "1.12.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
- "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object-is": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
- "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
- },
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"engines": {
- "node": ">= 0.4"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "engines": {
- "node": ">= 0.4"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/object.assign": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
- "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
+ "node_modules/eslint": {
+ "version": "8.47.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.47.0.tgz",
+ "integrity": "sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==",
+ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "has-symbols": "^1.0.3",
- "object-keys": "^1.1.1"
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.2",
+ "@eslint/js": "^8.47.0",
+ "@humanwhocodes/config-array": "^0.11.10",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "ajv": "^6.12.4",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
},
"engines": {
- "node": ">= 0.4"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/object.entries": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz",
- "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==",
+ "node_modules/eslint-config-next": {
+ "version": "13.4.19",
+ "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-13.4.19.tgz",
+ "integrity": "sha512-WE8367sqMnjhWHvR5OivmfwENRQ1ixfNE9hZwQqNCsd+iM3KnuMc1V8Pt6ytgjxjf23D+xbesADv9x3xaKfT3g==",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "@next/eslint-plugin-next": "13.4.19",
+ "@rushstack/eslint-patch": "^1.1.3",
+ "@typescript-eslint/parser": "^5.4.2 || ^6.0.0",
+ "eslint-import-resolver-node": "^0.3.6",
+ "eslint-import-resolver-typescript": "^3.5.2",
+ "eslint-plugin-import": "^2.26.0",
+ "eslint-plugin-jsx-a11y": "^6.5.1",
+ "eslint-plugin-react": "^7.31.7",
+ "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705"
},
- "engines": {
- "node": ">= 0.4"
+ "peerDependencies": {
+ "eslint": "^7.23.0 || ^8.0.0",
+ "typescript": ">=3.3.1"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/object.fromentries": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz",
- "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==",
+ "node_modules/eslint-config-next/node_modules/eslint-import-resolver-typescript": {
+ "version": "3.9.1",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.9.1.tgz",
+ "integrity": "sha512-euxa5rTGqHeqVxmOHT25hpk58PxkQ4mNoX6Yun4ooGaCHAxOCojJYNvjmyeOQxj/LyW+3fulH0+xtk+p2kPPTw==",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "@nolyfill/is-core-module": "1.0.39",
+ "debug": "^4.4.0",
+ "get-tsconfig": "^4.10.0",
+ "is-bun-module": "^1.3.0",
+ "rspack-resolver": "^1.1.0",
+ "stable-hash": "^0.0.5",
+ "tinyglobby": "^0.2.12"
},
"engines": {
- "node": ">= 0.4"
+ "node": "^14.18.0 || >=16.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts"
+ },
+ "peerDependencies": {
+ "eslint": "*",
+ "eslint-plugin-import": "*",
+ "eslint-plugin-import-x": "*"
+ },
+ "peerDependenciesMeta": {
+ "eslint-plugin-import": {
+ "optional": true
+ },
+ "eslint-plugin-import-x": {
+ "optional": true
+ }
}
},
- "node_modules/object.groupby": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.0.tgz",
- "integrity": "sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw==",
+ "node_modules/eslint-import-resolver-node": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.21.2",
- "get-intrinsic": "^1.2.1"
+ "debug": "^3.2.7",
+ "is-core-module": "^2.13.0",
+ "resolve": "^1.22.4"
}
},
- "node_modules/object.hasown": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz",
- "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==",
+ "node_modules/eslint-import-resolver-node/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dependencies": {
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "ms": "^2.1.1"
}
},
- "node_modules/object.values": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
- "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
+ "node_modules/eslint-module-utils": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz",
+ "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "debug": "^3.2.7"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/objectorarray": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.5.tgz",
- "integrity": "sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==",
- "dev": true
- },
- "node_modules/on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "dev": true,
- "dependencies": {
- "ee-first": "1.1.1"
+ "node": ">=4"
},
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/on-headers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
- "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
+ "peerDependenciesMeta": {
+ "eslint": {
+ "optional": true
+ }
}
},
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "node_modules/eslint-module-utils/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dependencies": {
- "wrappy": "1"
+ "ms": "^2.1.1"
}
},
- "node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
- "dependencies": {
- "mimic-fn": "^2.1.0"
+ "node_modules/eslint-plugin-import": {
+ "version": "2.31.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
+ "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==",
+ "dependencies": {
+ "@rtsao/scc": "^1.1.0",
+ "array-includes": "^3.1.8",
+ "array.prototype.findlastindex": "^1.2.5",
+ "array.prototype.flat": "^1.3.2",
+ "array.prototype.flatmap": "^1.3.2",
+ "debug": "^3.2.7",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.9",
+ "eslint-module-utils": "^2.12.0",
+ "hasown": "^2.0.2",
+ "is-core-module": "^2.15.1",
+ "is-glob": "^4.0.3",
+ "minimatch": "^3.1.2",
+ "object.fromentries": "^2.0.8",
+ "object.groupby": "^1.0.3",
+ "object.values": "^1.2.0",
+ "semver": "^6.3.1",
+ "string.prototype.trimend": "^1.0.8",
+ "tsconfig-paths": "^3.15.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=4"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "peerDependencies": {
+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9"
}
},
- "node_modules/open": {
- "version": "8.4.2",
- "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
- "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
- "dev": true,
+ "node_modules/eslint-plugin-import/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dependencies": {
- "define-lazy-prop": "^2.0.0",
- "is-docker": "^2.1.1",
- "is-wsl": "^2.2.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "ms": "^2.1.1"
}
},
- "node_modules/optionator": {
- "version": "0.9.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
- "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
+ "node_modules/eslint-plugin-import/node_modules/doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dependencies": {
- "@aashutoshrathi/word-wrap": "^1.2.3",
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0"
+ "esutils": "^2.0.2"
},
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/ora": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz",
- "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==",
- "dev": true,
- "dependencies": {
- "bl": "^4.1.0",
- "chalk": "^4.1.0",
- "cli-cursor": "^3.1.0",
- "cli-spinners": "^2.5.0",
- "is-interactive": "^1.0.0",
- "is-unicode-supported": "^0.1.0",
- "log-symbols": "^4.1.0",
- "strip-ansi": "^6.0.0",
- "wcwidth": "^1.0.1"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node_modules/eslint-plugin-import/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "bin": {
+ "semver": "bin/semver.js"
}
},
- "node_modules/os-browserify": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
- "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==",
- "dev": true
- },
- "node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dependencies": {
- "yocto-queue": "^0.1.0"
+ "node_modules/eslint-plugin-jsx-a11y": {
+ "version": "6.10.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz",
+ "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==",
+ "dependencies": {
+ "aria-query": "^5.3.2",
+ "array-includes": "^3.1.8",
+ "array.prototype.flatmap": "^1.3.2",
+ "ast-types-flow": "^0.0.8",
+ "axe-core": "^4.10.0",
+ "axobject-query": "^4.1.0",
+ "damerau-levenshtein": "^1.0.8",
+ "emoji-regex": "^9.2.2",
+ "hasown": "^2.0.2",
+ "jsx-ast-utils": "^3.3.5",
+ "language-tags": "^1.0.9",
+ "minimatch": "^3.1.2",
+ "object.fromentries": "^2.0.8",
+ "safe-regex-test": "^1.0.3",
+ "string.prototype.includes": "^2.0.1"
},
"engines": {
- "node": ">=10"
+ "node": ">=4.0"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9"
}
},
- "node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dependencies": {
- "p-limit": "^3.0.2"
+ "node_modules/eslint-plugin-react": {
+ "version": "7.37.4",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz",
+ "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==",
+ "dependencies": {
+ "array-includes": "^3.1.8",
+ "array.prototype.findlast": "^1.2.5",
+ "array.prototype.flatmap": "^1.3.3",
+ "array.prototype.tosorted": "^1.1.4",
+ "doctrine": "^2.1.0",
+ "es-iterator-helpers": "^1.2.1",
+ "estraverse": "^5.3.0",
+ "hasown": "^2.0.2",
+ "jsx-ast-utils": "^2.4.1 || ^3.0.0",
+ "minimatch": "^3.1.2",
+ "object.entries": "^1.1.8",
+ "object.fromentries": "^2.0.8",
+ "object.values": "^1.2.1",
+ "prop-types": "^15.8.1",
+ "resolve": "^2.0.0-next.5",
+ "semver": "^6.3.1",
+ "string.prototype.matchall": "^4.0.12",
+ "string.prototype.repeat": "^1.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=4"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7"
}
},
- "node_modules/p-map": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
- "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
- "dev": true,
- "dependencies": {
- "aggregate-error": "^3.0.0"
- },
+ "node_modules/eslint-plugin-react-hooks": {
+ "version": "5.0.0-canary-7118f5dd7-20230705",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0-canary-7118f5dd7-20230705.tgz",
+ "integrity": "sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==",
"engines": {
"node": ">=10"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
+ "peerDependencies": {
+ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0"
}
},
- "node_modules/pako": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
- "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
- "dev": true
- },
- "node_modules/param-case": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
- "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
- "dev": true,
+ "node_modules/eslint-plugin-react/node_modules/doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dependencies": {
- "dot-case": "^3.0.4",
- "tslib": "^2.0.3"
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "node_modules/eslint-plugin-react/node_modules/resolve": {
+ "version": "2.0.0-next.5",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+ "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
"dependencies": {
- "callsites": "^3.0.0"
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
},
- "engines": {
- "node": ">=6"
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/parse-asn1": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz",
- "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==",
- "dev": true,
- "dependencies": {
- "asn1.js": "^5.2.0",
- "browserify-aes": "^1.0.0",
- "evp_bytestokey": "^1.0.0",
- "pbkdf2": "^3.0.3",
- "safe-buffer": "^5.1.1"
+ "node_modules/eslint-plugin-react/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "bin": {
+ "semver": "bin/semver.js"
}
},
- "node_modules/parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
+ "node_modules/eslint-scope": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
"dependencies": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
},
"engines": {
- "node": ">=8"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "dev": true,
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"engines": {
- "node": ">= 0.8"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/pascal-case": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
- "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
- "dev": true,
+ "node_modules/espree": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dependencies": {
- "no-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
- },
- "node_modules/path-browserify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
- "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
- "dev": true
- },
- "node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "acorn": "^8.9.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "node_modules/esquery": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
+ "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
"engines": {
- "node": ">=8"
+ "node": ">=0.10"
}
},
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
- },
- "node_modules/path-scurry": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
- "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
- "dev": true,
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"dependencies": {
- "lru-cache": "^9.1.1 || ^10.0.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ "estraverse": "^5.2.0"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
+ "node": ">=4.0"
}
},
- "node_modules/path-scurry/node_modules/lru-cache": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz",
- "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==",
- "dev": true,
+ "node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"engines": {
- "node": "14 || >=16.14"
+ "node": ">=4.0"
}
},
- "node_modules/path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
- "dev": true
- },
- "node_modules/path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/pathe": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz",
- "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==",
+ "node_modules/eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
"dev": true
},
- "node_modules/pbkdf2": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
- "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
- "dev": true,
- "dependencies": {
- "create-hash": "^1.1.2",
- "create-hmac": "^1.1.4",
- "ripemd160": "^2.0.1",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
- },
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
"engines": {
- "node": ">=0.12"
- }
- },
- "node_modules/peek-stream": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/peek-stream/-/peek-stream-1.1.3.tgz",
- "integrity": "sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==",
- "dev": true,
- "dependencies": {
- "buffer-from": "^1.0.0",
- "duplexify": "^3.5.0",
- "through2": "^2.0.3"
+ "node": ">=0.8.x"
}
},
- "node_modules/peek-stream/node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "dev": true
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
- "node_modules/peek-stream/node_modules/readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
- "dev": true,
+ "node_modules/fast-glob": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
"dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
}
},
- "node_modules/peek-stream/node_modules/safe-buffer": {
+ "node_modules/fast-glob/node_modules/glob-parent": {
"version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "node_modules/peek-stream/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/peek-stream/node_modules/through2": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
- "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dependencies": {
- "readable-stream": "~2.3.6",
- "xtend": "~4.0.1"
- }
- },
- "node_modules/peek-stream/node_modules/xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "dev": true,
+ "is-glob": "^4.0.1"
+ },
"engines": {
- "node": ">=0.4"
+ "node": ">= 6"
}
},
- "node_modules/pend": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
- "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
- "dev": true
- },
- "node_modules/picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
},
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
},
- "node_modules/pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
+ "node_modules/fast-uri": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz",
+ "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "peer": true
},
- "node_modules/pirates": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
- "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
- "dev": true,
- "engines": {
- "node": ">= 6"
+ "node_modules/fastq": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
+ "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
+ "dependencies": {
+ "reusify": "^1.0.4"
}
},
- "node_modules/pkg-dir": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz",
- "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==",
- "dev": true,
+ "node_modules/fflate": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz",
+ "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A=="
+ },
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
"dependencies": {
- "find-up": "^5.0.0"
+ "flat-cache": "^3.0.4"
},
"engines": {
- "node": ">=10"
+ "node": "^10.12.0 || >=12.0.0"
}
},
- "node_modules/pnp-webpack-plugin": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz",
- "integrity": "sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg==",
- "dev": true,
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dependencies": {
- "ts-pnp": "^1.1.6"
+ "to-regex-range": "^5.0.1"
},
"engines": {
- "node": ">=6"
+ "node": ">=8"
}
},
- "node_modules/polished": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/polished/-/polished-4.2.2.tgz",
- "integrity": "sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==",
- "dev": true,
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dependencies": {
- "@babel/runtime": "^7.17.8"
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
},
"engines": {
"node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/postcss": {
- "version": "8.4.31",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
- "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
+ "node_modules/flat-cache": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
"dependencies": {
- "nanoid": "^3.3.6",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
+ "rimraf": "^3.0.2"
},
"engines": {
- "node": "^10 || ^12 || >=14"
+ "node": "^10.12.0 || >=12.0.0"
}
},
- "node_modules/postcss-loader": {
- "version": "7.3.3",
- "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz",
- "integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==",
- "dev": true,
+ "node_modules/flatted": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
+ "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg=="
+ },
+ "node_modules/for-each": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
+ "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
"dependencies": {
- "cosmiconfig": "^8.2.0",
- "jiti": "^1.18.2",
- "semver": "^7.3.8"
+ "is-callable": "^1.2.7"
},
"engines": {
- "node": ">= 14.15.0"
+ "node": ">= 0.4"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "postcss": "^7.0.0 || ^8.0.1",
- "webpack": "^5.0.0"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/postcss-loader/node_modules/cosmiconfig": {
- "version": "8.3.6",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
- "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
- "dev": true,
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/function.prototype.name": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz",
+ "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==",
"dependencies": {
- "import-fresh": "^3.3.0",
- "js-yaml": "^4.1.0",
- "parse-json": "^5.2.0",
- "path-type": "^4.0.0"
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "define-properties": "^1.2.1",
+ "functions-have-names": "^1.2.3",
+ "hasown": "^2.0.2",
+ "is-callable": "^1.2.7"
},
"engines": {
- "node": ">=14"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/d-fischer"
- },
- "peerDependencies": {
- "typescript": ">=4.9.5"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/postcss-modules-extract-imports": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz",
- "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==",
- "dev": true,
- "engines": {
- "node": "^10 || ^12 || >= 14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/postcss-modules-local-by-default": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz",
- "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==",
- "dev": true,
+ "node_modules/get-intrinsic": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"dependencies": {
- "icss-utils": "^5.0.0",
- "postcss-selector-parser": "^6.0.2",
- "postcss-value-parser": "^4.1.0"
+ "call-bind-apply-helpers": "^1.0.2",
+ "es-define-property": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.1.1",
+ "function-bind": "^1.1.2",
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "math-intrinsics": "^1.1.0"
},
"engines": {
- "node": "^10 || ^12 || >= 14"
+ "node": ">= 0.4"
},
- "peerDependencies": {
- "postcss": "^8.1.0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/postcss-modules-scope": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz",
- "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==",
- "dev": true,
+ "node_modules/get-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
"dependencies": {
- "postcss-selector-parser": "^6.0.4"
+ "dunder-proto": "^1.0.1",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
- "node": "^10 || ^12 || >= 14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
+ "node": ">= 0.4"
}
},
- "node_modules/postcss-modules-values": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
- "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==",
- "dev": true,
+ "node_modules/get-symbol-description": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz",
+ "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==",
"dependencies": {
- "icss-utils": "^5.0.0"
+ "call-bound": "^1.0.3",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.6"
},
"engines": {
- "node": "^10 || ^12 || >= 14"
+ "node": ">= 0.4"
},
- "peerDependencies": {
- "postcss": "^8.1.0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/postcss-selector-parser": {
- "version": "6.0.13",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
- "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
- "dev": true,
+ "node_modules/get-tsconfig": {
+ "version": "4.10.0",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz",
+ "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==",
"dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
+ "resolve-pkg-maps": "^1.0.0"
},
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-value-parser": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
- "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
- "dev": true
- },
- "node_modules/potpack": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz",
- "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ=="
- },
- "node_modules/prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
- "engines": {
- "node": ">= 0.8.0"
+ "funding": {
+ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
}
},
- "node_modules/prettier": {
- "version": "2.8.8",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
- "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
- "dev": true,
- "bin": {
- "prettier": "bin-prettier.js"
+ "node_modules/glob": {
+ "version": "7.1.7",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
+ "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
},
"engines": {
- "node": ">=10.13.0"
+ "node": "*"
},
"funding": {
- "url": "https://github.com/prettier/prettier?sponsor=1"
- }
- },
- "node_modules/pretty-error": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz",
- "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==",
- "dev": true,
- "dependencies": {
- "lodash": "^4.17.20",
- "renderkid": "^3.0.0"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/pretty-format": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
- "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
- "dev": true,
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
"dependencies": {
- "ansi-regex": "^5.0.1",
- "ansi-styles": "^5.0.0",
- "react-is": "^17.0.1"
+ "is-glob": "^4.0.3"
},
"engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ "node": ">=10.13.0"
}
},
- "node_modules/pretty-format/node_modules/ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "dev": true,
+ "node_modules/glob-to-regexp": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
+ "peer": true
+ },
+ "node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
"engines": {
- "node": ">=10"
+ "node": ">=8"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/pretty-format/node_modules/react-is": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
- "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
- "dev": true
- },
- "node_modules/pretty-hrtime": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
- "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
- "dev": true,
- "engines": {
- "node": ">= 0.6.0"
- }
- },
- "node_modules/process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
- "dev": true
- },
- "node_modules/progress": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
- "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
- "dev": true,
- "engines": {
- "node": ">=0.4.0"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/promise-worker-transferable": {
+ "node_modules/globalthis": {
"version": "1.0.4",
- "resolved": "https://registry.npmjs.org/promise-worker-transferable/-/promise-worker-transferable-1.0.4.tgz",
- "integrity": "sha512-bN+0ehEnrXfxV2ZQvU2PetO0n4gqBD4ulq3MI1WOPLgr7/Mg9yRQkX5+0v1vagr74ZTsl7XtzlaYDo2EuCeYJw==",
- "dependencies": {
- "is-promise": "^2.1.0",
- "lie": "^3.0.2"
- }
- },
- "node_modules/prompts": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
- "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
+ "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
"dependencies": {
- "kleur": "^3.0.3",
- "sisteransi": "^1.0.5"
+ "define-properties": "^1.2.1",
+ "gopd": "^1.0.1"
},
"engines": {
- "node": ">= 6"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/prop-types": {
- "version": "15.8.1",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
- "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
"dependencies": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.13.1"
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "dev": true,
+ "node_modules/glsl-inject-defines": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz",
+ "integrity": "sha512-W49jIhuDtF6w+7wCMcClk27a2hq8znvHtlGnrYkSWEr8tHe9eA2dcnohlcAmxLYBSpSSdzOkRdyPTrx9fw49+A==",
"dependencies": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- },
- "engines": {
- "node": ">= 0.10"
+ "glsl-token-inject-block": "^1.0.0",
+ "glsl-token-string": "^1.0.1",
+ "glsl-tokenizer": "^2.0.2"
}
},
- "node_modules/proxy-from-env": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
- "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
- "dev": true
+ "node_modules/glsl-noise": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/glsl-noise/-/glsl-noise-0.0.0.tgz",
+ "integrity": "sha512-b/ZCF6amfAUb7dJM/MxRs7AetQEahYzJ8PtgfrmEdtw6uyGOr+ZSGtgjFm6mfsBkxJ4d2W7kg+Nlqzqvn3Bc0w=="
},
- "node_modules/public-encrypt": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
- "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
- "dev": true,
+ "node_modules/glsl-resolve": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/glsl-resolve/-/glsl-resolve-0.0.1.tgz",
+ "integrity": "sha512-xxFNsfnhZTK9NBhzJjSBGX6IOqYpvBHxxmo+4vapiljyGNCY0Bekzn0firQkQrazK59c1hYxMDxYS8MDlhw4gA==",
"dependencies": {
- "bn.js": "^4.1.0",
- "browserify-rsa": "^4.0.0",
- "create-hash": "^1.1.0",
- "parse-asn1": "^5.0.0",
- "randombytes": "^2.0.1",
- "safe-buffer": "^5.1.2"
+ "resolve": "^0.6.1",
+ "xtend": "^2.1.2"
}
},
- "node_modules/public-encrypt/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
+ "node_modules/glsl-resolve/node_modules/resolve": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz",
+ "integrity": "sha512-UHBY3viPlJKf85YijDUcikKX6tmF4SokIDp518ZDVT92JNDcG5uKIthaT/owt3Sar0lwtOafsQuwrg22/v2Dwg=="
},
- "node_modules/pump": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
- "dev": true,
- "dependencies": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
+ "node_modules/glsl-token-assignments": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/glsl-token-assignments/-/glsl-token-assignments-2.0.2.tgz",
+ "integrity": "sha512-OwXrxixCyHzzA0U2g4btSNAyB2Dx8XrztY5aVUCjRSh4/D0WoJn8Qdps7Xub3sz6zE73W3szLrmWtQ7QMpeHEQ=="
},
- "node_modules/pumpify": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
- "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
- "dev": true,
+ "node_modules/glsl-token-defines": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/glsl-token-defines/-/glsl-token-defines-1.0.0.tgz",
+ "integrity": "sha512-Vb5QMVeLjmOwvvOJuPNg3vnRlffscq2/qvIuTpMzuO/7s5kT+63iL6Dfo2FYLWbzuiycWpbC0/KV0biqFwHxaQ==",
"dependencies": {
- "duplexify": "^3.6.0",
- "inherits": "^2.0.3",
- "pump": "^2.0.0"
+ "glsl-tokenizer": "^2.0.0"
}
},
- "node_modules/pumpify/node_modules/pump": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
- "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
- "dev": true,
+ "node_modules/glsl-token-depth": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/glsl-token-depth/-/glsl-token-depth-1.1.2.tgz",
+ "integrity": "sha512-eQnIBLc7vFf8axF9aoi/xW37LSWd2hCQr/3sZui8aBJnksq9C7zMeUYHVJWMhFzXrBU7fgIqni4EhXVW4/krpg=="
+ },
+ "node_modules/glsl-token-descope": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/glsl-token-descope/-/glsl-token-descope-1.0.2.tgz",
+ "integrity": "sha512-kS2PTWkvi/YOeicVjXGgX5j7+8N7e56srNDEHDTVZ1dcESmbmpmgrnpjPcjxJjMxh56mSXYoFdZqb90gXkGjQw==",
"dependencies": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
+ "glsl-token-assignments": "^2.0.0",
+ "glsl-token-depth": "^1.1.0",
+ "glsl-token-properties": "^1.0.0",
+ "glsl-token-scope": "^1.1.0"
}
},
- "node_modules/punycode": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
- "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
- "engines": {
- "node": ">=6"
- }
+ "node_modules/glsl-token-inject-block": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz",
+ "integrity": "sha512-q/m+ukdUBuHCOtLhSr0uFb/qYQr4/oKrPSdIK2C4TD+qLaJvqM9wfXIF/OOBjuSA3pUoYHurVRNao6LTVVUPWA=="
},
- "node_modules/puppeteer-core": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-2.1.1.tgz",
- "integrity": "sha512-n13AWriBMPYxnpbb6bnaY5YoY6rGj8vPLrz6CZF3o0qJNEwlcfJVxBzYZ0NJsQ21UbdJoijPCDrM++SUVEz7+w==",
- "dev": true,
- "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"
- },
- "engines": {
- "node": ">=8.16.0"
- }
+ "node_modules/glsl-token-properties": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/glsl-token-properties/-/glsl-token-properties-1.0.1.tgz",
+ "integrity": "sha512-dSeW1cOIzbuUoYH0y+nxzwK9S9O3wsjttkq5ij9ZGw0OS41BirKJzzH48VLm8qLg+au6b0sINxGC0IrGwtQUcA=="
},
- "node_modules/puppeteer-core/node_modules/agent-base": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz",
- "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==",
- "dev": true,
- "engines": {
- "node": ">= 6.0.0"
- }
+ "node_modules/glsl-token-scope": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/glsl-token-scope/-/glsl-token-scope-1.1.2.tgz",
+ "integrity": "sha512-YKyOMk1B/tz9BwYUdfDoHvMIYTGtVv2vbDSLh94PT4+f87z21FVdou1KNKgF+nECBTo0fJ20dpm0B1vZB1Q03A=="
},
- "node_modules/puppeteer-core/node_modules/https-proxy-agent": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz",
- "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==",
- "dev": true,
- "dependencies": {
- "agent-base": "5",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
+ "node_modules/glsl-token-string": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/glsl-token-string/-/glsl-token-string-1.0.1.tgz",
+ "integrity": "sha512-1mtQ47Uxd47wrovl+T6RshKGkRRCYWhnELmkEcUAPALWGTFe2XZpH3r45XAwL2B6v+l0KNsCnoaZCSnhzKEksg=="
},
- "node_modules/puppeteer-core/node_modules/mime": {
- "version": "2.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
- "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
- "dev": true,
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4.0.0"
+ "node_modules/glsl-token-whitespace-trim": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/glsl-token-whitespace-trim/-/glsl-token-whitespace-trim-1.0.0.tgz",
+ "integrity": "sha512-ZJtsPut/aDaUdLUNtmBYhaCmhIjpKNg7IgZSfX5wFReMc2vnj8zok+gB/3Quqs0TsBSX/fGnqUUYZDqyuc2xLQ=="
+ },
+ "node_modules/glsl-tokenizer": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz",
+ "integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==",
+ "dependencies": {
+ "through2": "^0.6.3"
}
},
- "node_modules/puppeteer-core/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
+ "node_modules/glslify-bundle": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.1.1.tgz",
+ "integrity": "sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==",
"dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
+ "glsl-inject-defines": "^1.0.1",
+ "glsl-token-defines": "^1.0.0",
+ "glsl-token-depth": "^1.1.1",
+ "glsl-token-descope": "^1.0.2",
+ "glsl-token-scope": "^1.1.1",
+ "glsl-token-string": "^1.0.1",
+ "glsl-token-whitespace-trim": "^1.0.0",
+ "glsl-tokenizer": "^2.0.2",
+ "murmurhash-js": "^1.0.0",
+ "shallow-copy": "0.0.1"
}
},
- "node_modules/puppeteer-core/node_modules/ws": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
- "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==",
- "dev": true,
+ "node_modules/glslify-deps": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/glslify-deps/-/glslify-deps-1.3.2.tgz",
+ "integrity": "sha512-7S7IkHWygJRjcawveXQjRXLO2FTjijPDYC7QfZyAQanY+yGLCFHYnPtsGT9bdyHiwPTw/5a1m1M9hamT2aBpag==",
"dependencies": {
- "async-limiter": "~1.0.0"
+ "@choojs/findup": "^0.2.0",
+ "events": "^3.2.0",
+ "glsl-resolve": "0.0.1",
+ "glsl-tokenizer": "^2.0.0",
+ "graceful-fs": "^4.1.2",
+ "inherits": "^2.0.1",
+ "map-limit": "0.0.1",
+ "resolve": "^1.0.0"
}
},
- "node_modules/qs": {
- "version": "6.11.2",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz",
- "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==",
- "dev": true,
+ "node_modules/glslify-loader": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/glslify-loader/-/glslify-loader-2.0.0.tgz",
+ "integrity": "sha512-oOdmTX1BSPG75o3gNZToemfbbuN5dgi4Pco/aRfjbwGxPIfflYLuok6JCf2kDBPHjP+tV+imNsj6YRJg9gKJ1A==",
"dependencies": {
- "side-channel": "^1.0.4"
+ "glslify-bundle": "^5.0.0",
+ "glslify-deps": "^1.3.0",
+ "loader-utils": "^1.1.0",
+ "resolve": "^1.3.3"
},
"engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=6"
}
},
- "node_modules/querystring-es3": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
- "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==",
- "dev": true,
+ "node_modules/gopd": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
"engines": {
- "node": ">=0.4.x"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/queue": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz",
- "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==",
- "dev": true,
- "dependencies": {
- "inherits": "~2.0.3"
- }
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="
},
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="
},
- "node_modules/r3f-perf": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/r3f-perf/-/r3f-perf-7.1.2.tgz",
- "integrity": "sha512-AQ78ULjufILylHZpbgBdzk7JF3F7bceehlgOL19xtyJIDhvi4J4vwE5wpxNZ5q4PT4Oza1WADZt6KSlrkCqgkA==",
- "dev": true,
- "dependencies": {
- "@radix-ui/react-icons": "^1.0.3",
- "@react-three/drei": "^9.56.10",
- "@stitches/react": "^1.2.8",
- "@utsubo/events": "^0.1.7",
- "zustand": "~4.1.5"
- },
- "peerDependencies": {
- "@react-three/fiber": ">=8.0",
- "react": ">=18.0",
- "react-dom": ">=18.0",
- "three": ">=0.133"
- },
- "peerDependenciesMeta": {
- "@react-three/fiber": {
- "optional": true
- },
- "dom": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- }
- }
+ "node_modules/gsap": {
+ "version": "3.12.7",
+ "resolved": "https://registry.npmjs.org/gsap/-/gsap-3.12.7.tgz",
+ "integrity": "sha512-V4GsyVamhmKefvcAKaoy0h6si0xX7ogwBoBSs2CTJwt7luW0oZzC0LhdkyuKV8PJAXr7Yaj8pMjCKD4GJ+eEMg=="
},
- "node_modules/r3f-perf/node_modules/zustand": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.1.5.tgz",
- "integrity": "sha512-PsdRT8Bvq22Yyh1tvpgdHNE7OAeFKqJXUxtJvj1Ixw2B9O2YZ1M34ImQ+xyZah4wZrR4lENMoDUutKPpyXCQ/Q==",
- "dev": true,
- "dependencies": {
- "use-sync-external-store": "1.2.0"
- },
+ "node_modules/has-bigints": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz",
+ "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==",
"engines": {
- "node": ">=12.7.0"
- },
- "peerDependencies": {
- "immer": ">=9.0",
- "react": ">=16.8"
+ "node": ">= 0.4"
},
- "peerDependenciesMeta": {
- "immer": {
- "optional": true
- },
- "react": {
- "optional": true
- }
- }
- },
- "node_modules/ramda": {
- "version": "0.29.0",
- "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.29.0.tgz",
- "integrity": "sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==",
- "dev": true,
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/ramda"
- }
- },
- "node_modules/randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "dependencies": {
- "safe-buffer": "^5.1.0"
- }
- },
- "node_modules/randomfill": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
- "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
- "dev": true,
- "dependencies": {
- "randombytes": "^2.0.5",
- "safe-buffer": "^5.1.0"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "dev": true,
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"engines": {
- "node": ">= 0.6"
+ "node": ">=8"
}
},
- "node_modules/raw-body": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
- "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
- "dev": true,
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
"dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
+ "es-define-property": "^1.0.0"
},
- "engines": {
- "node": ">= 0.8"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/raw-loader": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz",
- "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==",
+ "node_modules/has-proto": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz",
+ "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==",
"dependencies": {
- "loader-utils": "^2.0.0",
- "schema-utils": "^3.0.0"
+ "dunder-proto": "^1.0.0"
},
"engines": {
- "node": ">= 10.13.0"
+ "node": ">= 0.4"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^4.0.0 || ^5.0.0"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/raw-loader/node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "bin": {
- "json5": "lib/cli.js"
- },
+ "node_modules/has-symbols": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
"engines": {
- "node": ">=6"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/raw-loader/node_modules/loader-utils": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
- "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+ "node_modules/has-tostringtag": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
"dependencies": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^2.1.2"
+ "has-symbols": "^1.0.3"
},
"engines": {
- "node": ">=8.9.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/react": {
- "version": "18.2.0",
- "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
- "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"dependencies": {
- "loose-envify": "^1.1.0"
+ "function-bind": "^1.1.2"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.4"
}
},
- "node_modules/react-colorful": {
- "version": "5.6.1",
- "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz",
- "integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==",
- "dev": true,
- "peerDependencies": {
- "react": ">=16.8.0",
- "react-dom": ">=16.8.0"
+ "node_modules/hls.js": {
+ "version": "1.5.20",
+ "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.5.20.tgz",
+ "integrity": "sha512-uu0VXUK52JhihhnN/MVVo1lvqNNuhoxkonqgO3IpjvQiGpJBdIXMGkofjQb/j9zvV7a1SW8U9g1FslWx/1HOiQ=="
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/ignore": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
+ "engines": {
+ "node": ">= 4"
}
},
- "node_modules/react-composer": {
+ "node_modules/immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
+ },
+ "node_modules/immutable": {
"version": "5.0.3",
- "resolved": "https://registry.npmjs.org/react-composer/-/react-composer-5.0.3.tgz",
- "integrity": "sha512-1uWd07EME6XZvMfapwZmc7NgCZqDemcvicRi3wMJzXsQLvZ3L7fTHVyPy1bZdnWXM4iPjYuNE+uJ41MLKeTtnA==",
- "dependencies": {
- "prop-types": "^15.6.0"
- },
- "peerDependencies": {
- "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
- }
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz",
+ "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw=="
},
- "node_modules/react-confetti": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/react-confetti/-/react-confetti-6.1.0.tgz",
- "integrity": "sha512-7Ypx4vz0+g8ECVxr88W9zhcQpbeujJAVqL14ZnXJ3I23mOI9/oBVTQ3dkJhUmB0D6XOtCZEM6N0Gm9PMngkORw==",
- "dev": true,
+ "node_modules/import-fresh": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
+ "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
"dependencies": {
- "tween-functions": "^1.2.0"
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
},
"engines": {
- "node": ">=10.18"
+ "node": ">=6"
},
- "peerDependencies": {
- "react": "^16.3.0 || ^17.0.1 || ^18.0.0"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/react-docgen": {
- "version": "5.4.3",
- "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-5.4.3.tgz",
- "integrity": "sha512-xlLJyOlnfr8lLEEeaDZ+X2J/KJoe6Nr9AzxnkdQWush5hz2ZSu66w6iLMOScMmxoSHWpWMn+k3v5ZiyCfcWsOA==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.7.5",
- "@babel/generator": "^7.12.11",
- "@babel/runtime": "^7.7.6",
- "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",
- "strip-indent": "^3.0.0"
- },
- "bin": {
- "react-docgen": "bin/react-docgen.js"
- },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
"engines": {
- "node": ">=8.10.0"
+ "node": ">=0.8.19"
}
},
- "node_modules/react-docgen-typescript": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.2.2.tgz",
- "integrity": "sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==",
- "dev": true,
- "peerDependencies": {
- "typescript": ">= 4.3.x"
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
}
},
- "node_modules/react-dom": {
- "version": "18.2.0",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
- "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "node_modules/internal-slot": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz",
+ "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==",
"dependencies": {
- "loose-envify": "^1.1.0",
- "scheduler": "^0.23.0"
+ "es-errors": "^1.3.0",
+ "hasown": "^2.0.2",
+ "side-channel": "^1.1.0"
},
- "peerDependencies": {
- "react": "^18.2.0"
+ "engines": {
+ "node": ">= 0.4"
}
},
- "node_modules/react-element-to-jsx-string": {
- "version": "15.0.0",
- "resolved": "https://registry.npmjs.org/react-element-to-jsx-string/-/react-element-to-jsx-string-15.0.0.tgz",
- "integrity": "sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==",
- "dev": true,
+ "node_modules/is-array-buffer": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz",
+ "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==",
"dependencies": {
- "@base2/pretty-print-object": "1.0.1",
- "is-plain-object": "5.0.0",
- "react-is": "18.1.0"
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "get-intrinsic": "^1.2.6"
},
- "peerDependencies": {
- "react": "^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0",
- "react-dom": "^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0"
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/react-element-to-jsx-string/node_modules/react-is": {
- "version": "18.1.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz",
- "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==",
- "dev": true
- },
- "node_modules/react-inspector": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-6.0.2.tgz",
- "integrity": "sha512-x+b7LxhmHXjHoU/VrFAzw5iutsILRoYyDq97EDYdFpPLcvqtEzk4ZSZSQjnFPbr5T57tLXnHcqFYoN1pI6u8uQ==",
- "dev": true,
- "peerDependencies": {
- "react": "^16.8.4 || ^17.0.0 || ^18.0.0"
+ "node_modules/is-async-function": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz",
+ "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==",
+ "dependencies": {
+ "async-function": "^1.0.0",
+ "call-bound": "^1.0.3",
+ "get-proto": "^1.0.1",
+ "has-tostringtag": "^1.0.2",
+ "safe-regex-test": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ "node_modules/is-bigint": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz",
+ "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==",
+ "dependencies": {
+ "has-bigints": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "node_modules/react-reconciler": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.27.0.tgz",
- "integrity": "sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA==",
+ "node_modules/is-boolean-object": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz",
+ "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==",
"dependencies": {
- "loose-envify": "^1.1.0",
- "scheduler": "^0.21.0"
+ "call-bound": "^1.0.3",
+ "has-tostringtag": "^1.0.2"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.4"
},
- "peerDependencies": {
- "react": "^18.0.0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/react-reconciler/node_modules/scheduler": {
- "version": "0.21.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz",
- "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==",
+ "node_modules/is-bun-module": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.3.0.tgz",
+ "integrity": "sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==",
"dependencies": {
- "loose-envify": "^1.1.0"
+ "semver": "^7.6.3"
}
},
- "node_modules/react-refresh": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz",
- "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==",
- "dev": true,
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/react-remove-scroll": {
- "version": "2.5.5",
- "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz",
- "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==",
- "dev": true,
+ "node_modules/is-core-module": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
"dependencies": {
- "react-remove-scroll-bar": "^2.3.3",
- "react-style-singleton": "^2.2.1",
- "tslib": "^2.1.0",
- "use-callback-ref": "^1.3.0",
- "use-sidecar": "^1.1.2"
+ "hasown": "^2.0.2"
},
"engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ "node": ">= 0.4"
},
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/react-remove-scroll-bar": {
- "version": "2.3.4",
- "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz",
- "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==",
- "dev": true,
+ "node_modules/is-data-view": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz",
+ "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==",
"dependencies": {
- "react-style-singleton": "^2.2.1",
- "tslib": "^2.0.0"
+ "call-bound": "^1.0.2",
+ "get-intrinsic": "^1.2.6",
+ "is-typed-array": "^1.1.13"
},
"engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ "node": ">= 0.4"
},
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/react-style-singleton": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz",
- "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==",
- "dev": true,
+ "node_modules/is-date-object": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz",
+ "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",
"dependencies": {
- "get-nonce": "^1.0.0",
- "invariant": "^2.2.4",
- "tslib": "^2.0.0"
+ "call-bound": "^1.0.2",
+ "has-tostringtag": "^1.0.2"
},
"engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ "node": ">= 0.4"
},
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/react-use-measure": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.1.1.tgz",
- "integrity": "sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==",
- "dependencies": {
- "debounce": "^1.2.1"
- },
- "peerDependencies": {
- "react": ">=16.13",
- "react-dom": ">=16.13"
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/read-pkg": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
- "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
- "dev": true,
+ "node_modules/is-finalizationregistry": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz",
+ "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==",
"dependencies": {
- "@types/normalize-package-data": "^2.4.0",
- "normalize-package-data": "^2.5.0",
- "parse-json": "^5.0.0",
- "type-fest": "^0.6.0"
+ "call-bound": "^1.0.3"
},
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/read-pkg-up": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
- "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
- "dev": true,
+ "node_modules/is-generator-function": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz",
+ "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==",
"dependencies": {
- "find-up": "^4.1.0",
- "read-pkg": "^5.2.0",
- "type-fest": "^0.8.1"
+ "call-bound": "^1.0.3",
+ "get-proto": "^1.0.0",
+ "has-tostringtag": "^1.0.2",
+ "safe-regex-test": "^1.1.0"
},
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/read-pkg-up/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
+ "is-extglob": "^2.1.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/read-pkg-up/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "dependencies": {
- "p-locate": "^4.1.0"
+ "node_modules/is-map": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
+ "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
+ "engines": {
+ "node": ">= 0.4"
},
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"engines": {
- "node": ">=8"
+ "node": ">=0.12.0"
}
},
- "node_modules/read-pkg-up/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
+ "node_modules/is-number-object": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz",
+ "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==",
"dependencies": {
- "p-try": "^2.0.0"
+ "call-bound": "^1.0.3",
+ "has-tostringtag": "^1.0.2"
},
"engines": {
- "node": ">=6"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/read-pkg-up/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.2.0"
- },
+ "node_modules/is-path-inside": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
"engines": {
"node": ">=8"
}
},
- "node_modules/read-pkg-up/node_modules/type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
- "dev": true,
+ "node_modules/is-promise": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
+ "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
+ },
+ "node_modules/is-regex": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
+ "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "gopd": "^1.2.0",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.2"
+ },
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/read-pkg/node_modules/type-fest": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
- "dev": true,
+ "node_modules/is-set": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
+ "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/readable-stream": {
- "version": "1.0.34",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
- "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==",
+ "node_modules/is-shared-array-buffer": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz",
+ "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==",
"dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
+ "call-bound": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/readable-stream/node_modules/isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
+ "node_modules/is-string": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz",
+ "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==",
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "has-tostringtag": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "node_modules/is-symbol": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz",
+ "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==",
"dependencies": {
- "picomatch": "^2.2.1"
+ "call-bound": "^1.0.2",
+ "has-symbols": "^1.1.0",
+ "safe-regex-test": "^1.1.0"
},
"engines": {
- "node": ">=8.10.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/recast": {
- "version": "0.23.4",
- "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.4.tgz",
- "integrity": "sha512-qtEDqIZGVcSZCHniWwZWbRy79Dc6Wp3kT/UmDA2RJKBPg7+7k51aQBZirHmUGn5uvHf2rg8DkjizrN26k61ATw==",
- "dev": true,
+ "node_modules/is-typed-array": {
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
+ "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
"dependencies": {
- "assert": "^2.0.0",
- "ast-types": "^0.16.1",
- "esprima": "~4.0.0",
- "source-map": "~0.6.1",
- "tslib": "^2.0.1"
+ "which-typed-array": "^1.1.16"
},
"engines": {
- "node": ">= 4"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/recast/node_modules/ast-types": {
- "version": "0.16.1",
- "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz",
- "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==",
- "dev": true,
+ "node_modules/is-weakmap": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
+ "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-weakref": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz",
+ "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==",
"dependencies": {
- "tslib": "^2.0.1"
+ "call-bound": "^1.0.3"
},
"engines": {
- "node": ">=4"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/reflect.getprototypeof": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.3.tgz",
- "integrity": "sha512-TTAOZpkJ2YLxl7mVHWrNo3iDMEkYlva/kgFcXndqMgbo/AZUmmavEkdXV+hXtE4P8xdyEKRzalaFqZVuwIk/Nw==",
+ "node_modules/is-weakset": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz",
+ "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
- "get-intrinsic": "^1.1.1",
- "globalthis": "^1.0.3",
- "which-builtin-type": "^1.1.3"
+ "call-bound": "^1.0.3",
+ "get-intrinsic": "^1.2.6"
},
"engines": {
"node": ">= 0.4"
@@ -15367,964 +3952,1015 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/regenerate": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
- "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
- "dev": true
+ "node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
},
- "node_modules/regenerate-unicode-properties": {
- "version": "10.1.1",
- "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz",
- "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==",
- "dev": true,
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
+ },
+ "node_modules/iterator.prototype": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz",
+ "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==",
"dependencies": {
- "regenerate": "^1.4.2"
+ "define-data-property": "^1.1.4",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.6",
+ "get-proto": "^1.0.0",
+ "has-symbols": "^1.1.0",
+ "set-function-name": "^2.0.2"
},
"engines": {
- "node": ">=4"
+ "node": ">= 0.4"
}
},
- "node_modules/regenerator-runtime": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
- "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA=="
- },
- "node_modules/regenerator-transform": {
- "version": "0.15.2",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
- "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
- "dev": true,
+ "node_modules/its-fine": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/its-fine/-/its-fine-1.2.5.tgz",
+ "integrity": "sha512-fXtDA0X0t0eBYAGLVM5YsgJGsJ5jEmqZEPrGbzdf5awjv0xE7nqv3TVnvtUF060Tkes15DbDAKW/I48vsb6SyA==",
"dependencies": {
- "@babel/runtime": "^7.8.4"
+ "@types/react-reconciler": "^0.28.0"
+ },
+ "peerDependencies": {
+ "react": ">=18.0"
}
},
- "node_modules/regex-parser": {
- "version": "2.2.11",
- "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz",
- "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==",
- "dev": true
+ "node_modules/its-fine/node_modules/@types/react-reconciler": {
+ "version": "0.28.9",
+ "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.9.tgz",
+ "integrity": "sha512-HHM3nxyUZ3zAylX8ZEyrDNd2XZOnQ0D5XfunJF5FLQnZbHHYq4UWvW1QfelQNXv1ICNkwYhfxjwfnqivYB6bFg==",
+ "peerDependencies": {
+ "@types/react": "*"
+ }
},
- "node_modules/regexp.prototype.flags": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz",
- "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==",
+ "node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "peer": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "functions-have-names": "^1.2.3"
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">= 10.13.0"
}
},
- "node_modules/regexpu-core": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
- "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
- "dev": true,
+ "node_modules/jest-worker/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "peer": true,
"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"
+ "has-flag": "^4.0.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
- "node_modules/regjsparser": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz",
- "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
- "dev": true,
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dependencies": {
- "jsesc": "~0.5.0"
+ "argparse": "^2.0.1"
},
"bin": {
- "regjsparser": "bin/parser"
+ "js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/regjsparser/node_modules/jsesc": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
- "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
- "dev": true,
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "peer": true
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
+ },
+ "node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
"bin": {
- "jsesc": "bin/jsesc"
+ "json5": "lib/cli.js"
}
},
- "node_modules/relateurl": {
- "version": "0.2.7",
- "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
- "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==",
- "dev": true,
+ "node_modules/jsx-ast-utils": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
+ "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
+ "dependencies": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flat": "^1.3.1",
+ "object.assign": "^4.1.4",
+ "object.values": "^1.1.6"
+ },
"engines": {
- "node": ">= 0.10"
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dependencies": {
+ "json-buffer": "3.0.1"
}
},
- "node_modules/remark-external-links": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/remark-external-links/-/remark-external-links-8.0.0.tgz",
- "integrity": "sha512-5vPSX0kHoSsqtdftSHhIYofVINC8qmp0nctkeU9YoJwV3YfiBRiI6cbFRJ0oI/1F9xS+bopXG0m2KS8VFscuKA==",
- "dev": true,
+ "node_modules/language-subtag-registry": {
+ "version": "0.3.23",
+ "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz",
+ "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ=="
+ },
+ "node_modules/language-tags": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz",
+ "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==",
"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"
+ "language-subtag-registry": "^0.3.20"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
+ "engines": {
+ "node": ">=0.10"
}
},
- "node_modules/remark-slug": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/remark-slug/-/remark-slug-6.1.0.tgz",
- "integrity": "sha512-oGCxDF9deA8phWvxFuyr3oSJsdyUAxMFbA0mZ7Y1Sas+emILtO+e5WutF9564gDsEN4IXaQXm5pFo6MLH+YmwQ==",
- "dev": true,
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
"dependencies": {
- "github-slugger": "^1.0.0",
- "mdast-util-to-string": "^1.0.0",
- "unist-util-visit": "^2.0.0"
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "node_modules/renderkid": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz",
- "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==",
- "dev": true,
+ "node_modules/lie": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
+ "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
"dependencies": {
- "css-select": "^4.1.3",
- "dom-converter": "^0.2.0",
- "htmlparser2": "^6.1.0",
- "lodash": "^4.17.21",
- "strip-ansi": "^6.0.1"
+ "immediate": "~3.0.5"
}
},
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "dev": true,
+ "node_modules/lil-gui": {
+ "version": "0.18.2",
+ "resolved": "https://registry.npmjs.org/lil-gui/-/lil-gui-0.18.2.tgz",
+ "integrity": "sha512-DgdrLy3/KGC0PiQLKgOcJMPItP4xY4iWgJ9+91Zaxfr8GCTmMps05QS9w9jW7yspILlbscbquwjOwxmWnSx5Uw==",
+ "dev": true
+ },
+ "node_modules/loader-runner": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
+ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
+ "peer": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=6.11.5"
}
},
- "node_modules/require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4.0.0"
}
},
- "node_modules/requireindex": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz",
- "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==",
- "dev": true,
+ "node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
"engines": {
- "node": ">=0.10.5"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/resolve": {
- "version": "1.22.4",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz",
- "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==",
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
+ },
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"dependencies": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
+ "js-tokens": "^3.0.0 || ^4.0.0"
},
"bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "loose-envify": "cli.js"
}
},
- "node_modules/resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "engines": {
- "node": ">=4"
+ "node_modules/maath": {
+ "version": "0.10.8",
+ "resolved": "https://registry.npmjs.org/maath/-/maath-0.10.8.tgz",
+ "integrity": "sha512-tRvbDF0Pgqz+9XUa4jjfgAQ8/aPKmQdWXilFu2tMy4GWj4NOsx99HlULO4IeREfbO3a0sA145DZYyvXPkybm0g==",
+ "peerDependencies": {
+ "@types/three": ">=0.134.0",
+ "three": ">=0.134.0"
}
},
- "node_modules/resolve-pkg-maps": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
- "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
- "funding": {
- "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
+ "node_modules/map-limit": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz",
+ "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==",
+ "dependencies": {
+ "once": "~1.3.0"
}
},
- "node_modules/resolve-url-loader": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz",
- "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==",
- "dev": true,
+ "node_modules/map-limit/node_modules/once": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
+ "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==",
"dependencies": {
- "adjust-sourcemap-loader": "^4.0.0",
- "convert-source-map": "^1.7.0",
- "loader-utils": "^2.0.0",
- "postcss": "^8.2.14",
- "source-map": "0.6.1"
- },
+ "wrappy": "1"
+ }
+ },
+ "node_modules/math-intrinsics": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
"engines": {
- "node": ">=12"
+ "node": ">= 0.4"
}
},
- "node_modules/resolve-url-loader/node_modules/convert-source-map": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
- "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
- "dev": true
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "peer": true
},
- "node_modules/resolve-url-loader/node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "dev": true,
- "bin": {
- "json5": "lib/cli.js"
- },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
"engines": {
- "node": ">=6"
+ "node": ">= 8"
}
},
- "node_modules/resolve-url-loader/node_modules/loader-utils": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
- "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
- "dev": true,
- "dependencies": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^2.1.2"
- },
- "engines": {
- "node": ">=8.9.0"
+ "node_modules/meshline": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/meshline/-/meshline-3.3.1.tgz",
+ "integrity": "sha512-/TQj+JdZkeSUOl5Mk2J7eLcYTLiQm2IDzmlSvYm7ov15anEcDJ92GHqqazxTSreeNgfnYu24kiEvvv0WlbCdFQ==",
+ "peerDependencies": {
+ "three": ">=0.137"
}
},
- "node_modules/restore-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
- "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
- "dev": true,
+ "node_modules/meshoptimizer": {
+ "version": "0.18.1",
+ "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.18.1.tgz",
+ "integrity": "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw=="
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
"dependencies": {
- "onetime": "^5.1.0",
- "signal-exit": "^3.0.2"
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=8.6"
}
},
- "node_modules/reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "peer": true,
"engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
+ "node": ">= 0.6"
}
},
- "node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "peer": true,
"dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
+ "mime-db": "1.52.0"
},
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/ripemd160": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
- "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
- "dev": true,
- "dependencies": {
- "hash-base": "^3.0.0",
- "inherits": "^2.0.1"
- }
- },
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "queue-microtask": "^1.2.2"
+ "engines": {
+ "node": ">= 0.6"
}
},
- "node_modules/safe-array-concat": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.0.tgz",
- "integrity": "sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==",
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.0",
- "has-symbols": "^1.0.3",
- "isarray": "^2.0.5"
+ "brace-expansion": "^1.1.7"
},
"engines": {
- "node": ">=0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": "*"
}
},
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/safe-regex-test": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
- "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.3",
- "is-regex": "^1.1.4"
- },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
- "node_modules/sass": {
- "version": "1.66.1",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.66.1.tgz",
- "integrity": "sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA==",
- "dependencies": {
- "chokidar": ">=3.0.0 <4.0.0",
- "immutable": "^4.0.0",
- "source-map-js": ">=0.6.2 <2.0.0"
- },
+ "node_modules/murmurhash-js": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz",
+ "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw=="
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"bin": {
- "sass": "sass.js"
+ "nanoid": "bin/nanoid.cjs"
},
"engines": {
- "node": ">=14.0.0"
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
- "node_modules/sass-loader": {
- "version": "12.6.0",
- "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz",
- "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==",
- "dev": true,
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="
+ },
+ "node_modules/neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "peer": true
+ },
+ "node_modules/next": {
+ "version": "14.2.25",
+ "resolved": "https://registry.npmjs.org/next/-/next-14.2.25.tgz",
+ "integrity": "sha512-N5M7xMc4wSb4IkPvEV5X2BRRXUmhVHNyaXwEM86+voXthSZz8ZiRyQW4p9mwAoAPIm6OzuVZtn7idgEJeAJN3Q==",
"dependencies": {
- "klona": "^2.0.4",
- "neo-async": "^2.6.2"
+ "@next/env": "14.2.25",
+ "@swc/helpers": "0.5.5",
+ "busboy": "1.6.0",
+ "caniuse-lite": "^1.0.30001579",
+ "graceful-fs": "^4.2.11",
+ "postcss": "8.4.31",
+ "styled-jsx": "5.1.1"
+ },
+ "bin": {
+ "next": "dist/bin/next"
},
"engines": {
- "node": ">= 12.13.0"
+ "node": ">=18.17.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
+ "optionalDependencies": {
+ "@next/swc-darwin-arm64": "14.2.25",
+ "@next/swc-darwin-x64": "14.2.25",
+ "@next/swc-linux-arm64-gnu": "14.2.25",
+ "@next/swc-linux-arm64-musl": "14.2.25",
+ "@next/swc-linux-x64-gnu": "14.2.25",
+ "@next/swc-linux-x64-musl": "14.2.25",
+ "@next/swc-win32-arm64-msvc": "14.2.25",
+ "@next/swc-win32-ia32-msvc": "14.2.25",
+ "@next/swc-win32-x64-msvc": "14.2.25"
},
"peerDependencies": {
- "fibers": ">= 3.1.0",
- "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0",
- "sass": "^1.3.0",
- "sass-embedded": "*",
- "webpack": "^5.0.0"
+ "@opentelemetry/api": "^1.1.0",
+ "@playwright/test": "^1.41.2",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
+ "sass": "^1.3.0"
},
"peerDependenciesMeta": {
- "fibers": {
+ "@opentelemetry/api": {
"optional": true
},
- "node-sass": {
+ "@playwright/test": {
"optional": true
},
"sass": {
"optional": true
- },
- "sass-embedded": {
- "optional": true
}
}
},
- "node_modules/scheduler": {
- "version": "0.23.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
- "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
- "dependencies": {
- "loose-envify": "^1.1.0"
+ "node_modules/node-addon-api": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
+ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
+ "optional": true
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.19",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
+ "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
+ "peer": true
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
+ "node_modules/object-inspect": {
+ "version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
"engines": {
- "node": ">= 10.13.0"
+ "node": ">= 0.4"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.assign": {
+ "version": "4.1.7",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz",
+ "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==",
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0",
+ "has-symbols": "^1.1.0",
+ "object-keys": "^1.1.1"
},
"engines": {
- "node": ">=10"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/send": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "dev": true,
+ "node_modules/object.entries": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz",
+ "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==",
"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"
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.1.1"
},
"engines": {
- "node": ">= 0.8.0"
+ "node": ">= 0.4"
}
},
- "node_modules/send/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
+ "node_modules/object.fromentries": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
+ "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
"dependencies": {
- "ms": "2.0.0"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/send/node_modules/debug/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
- "node_modules/send/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- },
- "node_modules/serialize-javascript": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz",
- "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==",
+ "node_modules/object.groupby": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
+ "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
"dependencies": {
- "randombytes": "^2.1.0"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
- "node_modules/serve-static": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
- "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
- "dev": true,
+ "node_modules/object.values": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz",
+ "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==",
"dependencies": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.18.0"
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
- "node": ">= 0.8.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/setimmediate": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
- "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
- "dev": true
- },
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
- "dev": true
- },
- "node_modules/sha.js": {
- "version": "2.4.11",
- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
- "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
- "dev": true,
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dependencies": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- },
- "bin": {
- "sha.js": "bin.js"
+ "wrappy": "1"
}
},
- "node_modules/shallow-clone": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
- "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
- "dev": true,
+ "node_modules/optionator": {
+ "version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
"dependencies": {
- "kind-of": "^6.0.2"
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.5"
},
"engines": {
- "node": ">=8"
+ "node": ">= 0.8.0"
}
},
- "node_modules/shallow-copy": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz",
- "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw=="
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "node_modules/own-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz",
+ "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==",
"dependencies": {
- "shebang-regex": "^3.0.0"
+ "get-intrinsic": "^1.2.6",
+ "object-keys": "^1.1.1",
+ "safe-push-apply": "^1.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"dependencies": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
- },
- "node_modules/simple-update-notifier": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz",
- "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==",
- "dev": true,
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dependencies": {
- "semver": "^7.5.3"
+ "callsites": "^3.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=6"
}
},
- "node_modules/sisteransi": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
- "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
- "dev": true
- },
- "node_modules/slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"engines": {
"node": ">=8"
}
},
- "node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
+ },
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/source-map-support": {
- "version": "0.5.21",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
- "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="
},
- "node_modules/space-separated-tokens": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz",
- "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==",
- "dev": true,
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "engines": {
+ "node": ">=8.6"
+ },
"funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/spdx-correct": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
- "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
- "dev": true,
- "dependencies": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
+ "node_modules/possible-typed-array-names": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
+ "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
+ "engines": {
+ "node": ">= 0.4"
}
},
- "node_modules/spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
- "dev": true
- },
- "node_modules/spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
- "dev": true,
+ "node_modules/postcss": {
+ "version": "8.4.31",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
+ "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"dependencies": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
+ "nanoid": "^3.3.6",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
}
},
- "node_modules/spdx-license-ids": {
- "version": "3.0.16",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz",
- "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==",
- "dev": true
- },
- "node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true
+ "node_modules/potpack": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz",
+ "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ=="
},
- "node_modules/stackframe": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
- "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==",
- "dev": true
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
},
- "node_modules/stats-gl": {
- "version": "2.2.8",
- "resolved": "https://registry.npmjs.org/stats-gl/-/stats-gl-2.2.8.tgz",
- "integrity": "sha512-94G5nZvduDmzxBS7K0lYnynYwreZpkknD8g5dZmU6mpwIhy3caCrjAm11Qm1cbyx7mqix7Fp00RkbsonzKWnoQ==",
+ "node_modules/promise-worker-transferable": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/promise-worker-transferable/-/promise-worker-transferable-1.0.4.tgz",
+ "integrity": "sha512-bN+0ehEnrXfxV2ZQvU2PetO0n4gqBD4ulq3MI1WOPLgr7/Mg9yRQkX5+0v1vagr74ZTsl7XtzlaYDo2EuCeYJw==",
"dependencies": {
- "@types/three": "^0.163.0"
+ "is-promise": "^2.1.0",
+ "lie": "^3.0.2"
}
},
- "node_modules/stats-gl/node_modules/@types/three": {
- "version": "0.163.0",
- "resolved": "https://registry.npmjs.org/@types/three/-/three-0.163.0.tgz",
- "integrity": "sha512-uIdDhsXRpQiBUkflBS/i1l3JX14fW6Ot9csed60nfbZNXHDTRsnV2xnTVwXcgbvTiboAR4IW+t+lTL5f1rqIqA==",
+ "node_modules/prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"dependencies": {
- "@tweenjs/tween.js": "~23.1.1",
- "@types/stats.js": "*",
- "@types/webxr": "*",
- "fflate": "~0.8.2",
- "meshoptimizer": "~0.18.1"
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
}
},
- "node_modules/stats-gl/node_modules/fflate": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz",
- "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A=="
- },
- "node_modules/stats.js": {
- "version": "0.17.0",
- "resolved": "https://registry.npmjs.org/stats.js/-/stats.js-0.17.0.tgz",
- "integrity": "sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw=="
- },
- "node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "dev": true,
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"engines": {
- "node": ">= 0.8"
+ "node": ">=6"
}
},
- "node_modules/stop-iteration-iterator": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz",
- "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==",
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/r3f-perf": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/r3f-perf/-/r3f-perf-7.2.3.tgz",
+ "integrity": "sha512-4+P/N/bnO9D8nzdm3suL/NjPZK/HHdjwpvajhi8j7eB41i2ECN6lX9RXiKSpHzpsDi2ui1tBj6q7/sz5opoqXw==",
"dev": true,
"dependencies": {
- "internal-slot": "^1.0.4"
+ "@radix-ui/react-icons": "^1.3.0",
+ "@react-three/drei": "^9.103.0",
+ "@stitches/react": "^1.2.8",
+ "@utsubo/events": "^0.1.7",
+ "zustand": "~4.5.2"
},
- "engines": {
- "node": ">= 0.4"
+ "peerDependencies": {
+ "@react-three/fiber": ">=8.0",
+ "react": ">=18.0",
+ "react-dom": ">=18.0",
+ "three": ">=0.133"
+ },
+ "peerDependenciesMeta": {
+ "@react-three/fiber": {
+ "optional": true
+ },
+ "dom": {
+ "optional": true
+ },
+ "react-dom": {
+ "optional": true
+ }
}
},
- "node_modules/store2": {
- "version": "2.14.2",
- "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz",
- "integrity": "sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==",
- "dev": true
- },
- "node_modules/storybook": {
- "version": "7.5.3",
- "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.5.3.tgz",
- "integrity": "sha512-lkn9hcedNmSNCzbDIrky2LpZJqlpS7Fy1KpGBZmLY34g5Mb0+KnXaUqzY0dxsd7aFm8Oa7Du/emceMYNNL4DMA==",
+ "node_modules/r3f-perf/node_modules/zustand": {
+ "version": "4.5.6",
+ "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.6.tgz",
+ "integrity": "sha512-ibr/n1hBzLLj5Y+yUcU7dYw8p6WnIVzdJbnX+1YpaScvZVF2ziugqHs+LAmHw4lWO9c/zRj+K1ncgWDQuthEdQ==",
"dev": true,
"dependencies": {
- "@storybook/cli": "7.5.3"
+ "use-sync-external-store": "^1.2.2"
},
- "bin": {
- "sb": "index.js",
- "storybook": "index.js"
+ "engines": {
+ "node": ">=12.7.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
+ "peerDependencies": {
+ "@types/react": ">=16.8",
+ "immer": ">=9.0.6",
+ "react": ">=16.8"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "immer": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ }
}
},
- "node_modules/stream-browserify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz",
- "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==",
- "dev": true,
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "peer": true,
"dependencies": {
- "inherits": "~2.0.4",
- "readable-stream": "^3.5.0"
+ "safe-buffer": "^5.1.0"
}
},
- "node_modules/stream-browserify/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
+ "node_modules/raw-loader": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz",
+ "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==",
"dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
+ "loader-utils": "^2.0.0",
+ "schema-utils": "^3.0.0"
},
"engines": {
- "node": ">= 6"
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
}
},
- "node_modules/stream-browserify/node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.2.0"
+ "node_modules/raw-loader/node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/stream-http": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz",
- "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==",
- "dev": true,
+ "node_modules/raw-loader/node_modules/loader-utils": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
"dependencies": {
- "builtin-status-codes": "^3.0.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.6.0",
- "xtend": "^4.0.2"
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=8.9.0"
}
},
- "node_modules/stream-http/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
+ "node_modules/react": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
+ "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
"dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
+ "loose-envify": "^1.1.0"
},
"engines": {
- "node": ">= 6"
+ "node": ">=0.10.0"
}
},
- "node_modules/stream-http/node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dev": true,
+ "node_modules/react-composer": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/react-composer/-/react-composer-5.0.3.tgz",
+ "integrity": "sha512-1uWd07EME6XZvMfapwZmc7NgCZqDemcvicRi3wMJzXsQLvZ3L7fTHVyPy1bZdnWXM4iPjYuNE+uJ41MLKeTtnA==",
"dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/stream-http/node_modules/xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "dev": true,
- "engines": {
- "node": ">=0.4"
+ "prop-types": "^15.6.0"
+ },
+ "peerDependencies": {
+ "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
}
},
- "node_modules/stream-shift": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
- "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==",
- "dev": true
- },
- "node_modules/streamsearch": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
- "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
- "engines": {
- "node": ">=10.0.0"
+ "node_modules/react-dom": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
+ "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "scheduler": "^0.23.2"
+ },
+ "peerDependencies": {
+ "react": "^18.3.1"
}
},
- "node_modules/string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="
+ "node_modules/react-dom/node_modules/scheduler": {
+ "version": "0.23.2",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
+ "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ }
},
- "node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
+ "node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ },
+ "node_modules/react-reconciler": {
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.27.0.tgz",
+ "integrity": "sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA==",
"dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
+ "loose-envify": "^1.1.0",
+ "scheduler": "^0.21.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0"
}
},
- "node_modules/string-width-cjs": {
- "name": "string-width",
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
+ "node_modules/react-use-measure": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.1.7.tgz",
+ "integrity": "sha512-KrvcAo13I/60HpwGO5jpW7E9DfusKyLPLvuHlUyP5zqnmAPhNc6qTRjUQrdTADl0lpPpDVU2/Gg51UlOGHXbdg==",
+ "peerDependencies": {
+ "react": ">=16.13",
+ "react-dom": ">=16.13"
},
- "engines": {
- "node": ">=8"
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ }
}
},
- "node_modules/string-width-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
+ "node_modules/readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
},
- "node_modules/string-width/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
+ "node_modules/readable-stream/node_modules/isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
},
- "node_modules/string.prototype.matchall": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz",
- "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
- "get-intrinsic": "^1.1.3",
- "has-symbols": "^1.0.3",
- "internal-slot": "^1.0.3",
- "regexp.prototype.flags": "^1.4.3",
- "side-channel": "^1.0.4"
+ "node_modules/readdirp": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+ "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
+ "engines": {
+ "node": ">= 14.18.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
}
},
- "node_modules/string.prototype.trim": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz",
- "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==",
+ "node_modules/reflect.getprototypeof": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
+ "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "call-bind": "^1.0.8",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.9",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.7",
+ "get-proto": "^1.0.1",
+ "which-builtin-type": "^1.2.1"
},
"engines": {
"node": ">= 0.4"
@@ -16333,772 +4969,652 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/string.prototype.trimend": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
- "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
+ "node_modules/regenerator-runtime": {
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
},
- "node_modules/string.prototype.trimstart": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
- "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz",
+ "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "call-bind": "^1.0.8",
+ "define-properties": "^1.2.1",
+ "es-errors": "^1.3.0",
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "set-function-name": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
+ "node_modules/require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/strip-ansi-cjs": {
- "name": "strip-ansi",
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dev": true,
+ "node_modules/resolve": {
+ "version": "1.22.10",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
+ "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
"dependencies": {
- "ansi-regex": "^5.0.1"
+ "is-core-module": "^2.16.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
},
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"engines": {
"node": ">=4"
}
},
- "node_modules/strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "dev": true,
- "engines": {
- "node": ">=6"
+ "node_modules/resolve-pkg-maps": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+ "funding": {
+ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
}
},
- "node_modules/strip-indent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
- "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
- "dev": true,
- "dependencies": {
- "min-indent": "^1.0.0"
- },
+ "node_modules/reusify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
"engines": {
- "node": ">=8"
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
}
},
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "engines": {
- "node": ">=8"
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/style-loader": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz",
- "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==",
- "dev": true,
- "engines": {
- "node": ">= 12.13.0"
- },
+ "node_modules/rspack-resolver": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/rspack-resolver/-/rspack-resolver-1.2.2.tgz",
+ "integrity": "sha512-Fwc19jMBA3g+fxDJH2B4WxwZjE0VaaOL7OX/A4Wn5Zv7bOD/vyPZhzXfaO73Xc2GAlfi96g5fGUa378WbIGfFw==",
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
+ "url": "https://github.com/sponsors/JounQin"
},
- "peerDependencies": {
- "webpack": "^5.0.0"
+ "optionalDependencies": {
+ "@unrs/rspack-resolver-binding-darwin-arm64": "1.2.2",
+ "@unrs/rspack-resolver-binding-darwin-x64": "1.2.2",
+ "@unrs/rspack-resolver-binding-freebsd-x64": "1.2.2",
+ "@unrs/rspack-resolver-binding-linux-arm-gnueabihf": "1.2.2",
+ "@unrs/rspack-resolver-binding-linux-arm64-gnu": "1.2.2",
+ "@unrs/rspack-resolver-binding-linux-arm64-musl": "1.2.2",
+ "@unrs/rspack-resolver-binding-linux-x64-gnu": "1.2.2",
+ "@unrs/rspack-resolver-binding-linux-x64-musl": "1.2.2",
+ "@unrs/rspack-resolver-binding-wasm32-wasi": "1.2.2",
+ "@unrs/rspack-resolver-binding-win32-arm64-msvc": "1.2.2",
+ "@unrs/rspack-resolver-binding-win32-x64-msvc": "1.2.2"
}
},
- "node_modules/styled-jsx": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz",
- "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==",
- "dependencies": {
- "client-only": "0.0.1"
- },
- "engines": {
- "node": ">= 12.0.0"
- },
- "peerDependencies": {
- "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0"
- },
- "peerDependenciesMeta": {
- "@babel/core": {
- "optional": true
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
},
- "babel-plugin-macros": {
- "optional": true
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
}
+ ],
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
}
},
- "node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "node_modules/safe-array-concat": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
+ "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==",
"dependencies": {
- "has-flag": "^4.0.0"
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
+ "get-intrinsic": "^1.2.6",
+ "has-symbols": "^1.1.0",
+ "isarray": "^2.0.5"
},
"engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "engines": {
- "node": ">= 0.4"
+ "node": ">=0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/suspend-react": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/suspend-react/-/suspend-react-0.1.3.tgz",
- "integrity": "sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==",
- "peerDependencies": {
- "react": ">=17.0"
- }
- },
- "node_modules/swc-loader": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/swc-loader/-/swc-loader-0.2.3.tgz",
- "integrity": "sha512-D1p6XXURfSPleZZA/Lipb3A8pZ17fP4NObZvFCDjK/OKljroqDpPmsBdTraWhVBqUNpcWBQY1imWdoPScRlQ7A==",
- "dev": true,
- "peerDependencies": {
- "@swc/core": "^1.2.147",
- "webpack": ">=2"
- }
- },
- "node_modules/synchronous-promise": {
- "version": "2.0.17",
- "resolved": "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.17.tgz",
- "integrity": "sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==",
- "dev": true
- },
- "node_modules/tapable": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
- "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
- "engines": {
- "node": ">=6"
- }
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "peer": true
},
- "node_modules/tar": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
- "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
- "dev": true,
+ "node_modules/safe-push-apply": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz",
+ "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==",
"dependencies": {
- "chownr": "^2.0.0",
- "fs-minipass": "^2.0.0",
- "minipass": "^5.0.0",
- "minizlib": "^2.1.1",
- "mkdirp": "^1.0.3",
- "yallist": "^4.0.0"
+ "es-errors": "^1.3.0",
+ "isarray": "^2.0.5"
},
"engines": {
- "node": ">=10"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/tar-fs": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
- "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
- "dev": true,
+ "node_modules/safe-regex-test": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
+ "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
"dependencies": {
- "chownr": "^1.1.1",
- "mkdirp-classic": "^0.5.2",
- "pump": "^3.0.0",
- "tar-stream": "^2.1.4"
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "is-regex": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/tar-fs/node_modules/chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
- "dev": true
- },
- "node_modules/tar-stream": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
- "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
- "dev": true,
+ "node_modules/sass": {
+ "version": "1.86.0",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.86.0.tgz",
+ "integrity": "sha512-zV8vGUld/+mP4KbMLJMX7TyGCuUp7hnkOScgCMsWuHtns8CWBoz+vmEhoGMXsaJrbUP8gj+F1dLvVe79sK8UdA==",
"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"
+ "chokidar": "^4.0.0",
+ "immutable": "^5.0.2",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ },
+ "bin": {
+ "sass": "sass.js"
},
"engines": {
- "node": ">=6"
+ "node": ">=14.0.0"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher": "^2.4.1"
}
},
- "node_modules/tar-stream/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
+ "node_modules/scheduler": {
+ "version": "0.21.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz",
+ "integrity": "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==",
"dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
+ "loose-envify": "^1.1.0"
}
},
- "node_modules/tar-stream/node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dev": true,
+ "node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
"dependencies": {
- "safe-buffer": "~5.2.0"
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
}
},
- "node_modules/tar/node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "dev": true,
+ "node_modules/semver": {
+ "version": "7.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
+ "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
"bin": {
- "mkdirp": "bin/cmd.js"
+ "semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
- "node_modules/telejson": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/telejson/-/telejson-7.2.0.tgz",
- "integrity": "sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==",
- "dev": true,
+ "node_modules/serialize-javascript": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+ "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
+ "peer": true,
"dependencies": {
- "memoizerific": "^1.11.3"
+ "randombytes": "^2.1.0"
}
},
- "node_modules/temp": {
- "version": "0.8.4",
- "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz",
- "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==",
- "dev": true,
+ "node_modules/set-function-length": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"dependencies": {
- "rimraf": "~2.6.2"
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">= 0.4"
}
},
- "node_modules/temp-dir": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz",
- "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==",
- "dev": true,
+ "node_modules/set-function-name": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "functions-have-names": "^1.2.3",
+ "has-property-descriptors": "^1.0.2"
+ },
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
}
},
- "node_modules/temp/node_modules/rimraf": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
- "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
- "dev": true,
+ "node_modules/set-proto": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz",
+ "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==",
"dependencies": {
- "glob": "^7.1.3"
+ "dunder-proto": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0"
},
- "bin": {
- "rimraf": "bin.js"
+ "engines": {
+ "node": ">= 0.4"
}
},
- "node_modules/tempy": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz",
- "integrity": "sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==",
- "dev": true,
+ "node_modules/shallow-copy": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz",
+ "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw=="
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"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"
+ "shebang-regex": "^3.0.0"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=8"
}
},
- "node_modules/tempy/node_modules/type-fest": {
- "version": "0.16.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz",
- "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==",
- "dev": true,
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=8"
}
},
- "node_modules/terser": {
- "version": "5.19.2",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.2.tgz",
- "integrity": "sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==",
+ "node_modules/side-channel": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
"dependencies": {
- "@jridgewell/source-map": "^0.3.3",
- "acorn": "^8.8.2",
- "commander": "^2.20.0",
- "source-map-support": "~0.5.20"
- },
- "bin": {
- "terser": "bin/terser"
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3",
+ "side-channel-list": "^1.0.0",
+ "side-channel-map": "^1.0.1",
+ "side-channel-weakmap": "^1.0.2"
},
"engines": {
- "node": ">=10"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/terser-webpack-plugin": {
- "version": "5.3.9",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz",
- "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==",
+ "node_modules/side-channel-list": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
"dependencies": {
- "@jridgewell/trace-mapping": "^0.3.17",
- "jest-worker": "^27.4.5",
- "schema-utils": "^3.1.1",
- "serialize-javascript": "^6.0.1",
- "terser": "^5.16.8"
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3"
},
"engines": {
- "node": ">= 10.13.0"
+ "node": ">= 0.4"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.1.0"
- },
- "peerDependenciesMeta": {
- "@swc/core": {
- "optional": true
- },
- "esbuild": {
- "optional": true
- },
- "uglify-js": {
- "optional": true
- }
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/test-exclude": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
- "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
- "dev": true,
+ "node_modules/side-channel-map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
"dependencies": {
- "@istanbuljs/schema": "^0.1.2",
- "glob": "^7.1.4",
- "minimatch": "^3.0.4"
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3"
},
"engines": {
- "node": ">=8"
- }
- },
- "node_modules/text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
- },
- "node_modules/the-new-css-reset": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/the-new-css-reset/-/the-new-css-reset-1.9.0.tgz",
- "integrity": "sha512-bKM9xgiVFTqSuWle952Xu/YWE7qYMzPHWxerO0edxjBfPIm2T4k2tRpIJ45IU7knY35Jr6Fb5P/TVm2RIsB//Q=="
- },
- "node_modules/three": {
- "version": "0.164.1",
- "resolved": "https://registry.npmjs.org/three/-/three-0.164.1.tgz",
- "integrity": "sha512-iC/hUBbl1vzFny7f5GtqzVXYjMJKaTPxiCxXfrvVdBi1Sf+jhd1CAkitiFwC7mIBFCo3MrDLJG97yisoaWig0w=="
- },
- "node_modules/three-custom-shader-material": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/three-custom-shader-material/-/three-custom-shader-material-5.4.0.tgz",
- "integrity": "sha512-Yn1lFlKOk3Vul3npEGAmbbFUZ5S2+yjPgM2XqJEZEYRSUUH2vk+WVYrtTB6Bcq15wa7hLUXAKoctAvbRmBmbYA==",
- "dependencies": {
- "glsl-token-functions": "^1.0.1",
- "glsl-token-string": "^1.0.1",
- "glsl-tokenizer": "^2.1.5",
- "object-hash": "^3.0.0"
- },
- "peerDependencies": {
- "@react-three/fiber": ">=8.0",
- "react": ">=18.0",
- "three": ">=0.154"
+ "node": ">= 0.4"
},
- "peerDependenciesMeta": {
- "@react-three/fiber": {
- "optional": true
- },
- "react": {
- "optional": true
- }
- }
- },
- "node_modules/three-mesh-bvh": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/three-mesh-bvh/-/three-mesh-bvh-0.7.3.tgz",
- "integrity": "sha512-3W6KjzmupjfE89GuHPT31kxKWZ4YGZPEZJNysJpiOZfQRsBQQgmK7v/VJPpjG6syhAvTnY+5Fr77EvIkTLpGSw==",
- "peerDependencies": {
- "three": ">= 0.151.0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/three-stdlib": {
- "version": "2.30.0",
- "resolved": "https://registry.npmjs.org/three-stdlib/-/three-stdlib-2.30.0.tgz",
- "integrity": "sha512-ALL7rn57jq/MovDRk5hGjeWCvOeZlZhFCWIdpbBAQNudCO3nMwxEba5ZulsMgiI1ymQMzUzTMcxhLTCVlUaKDw==",
+ "node_modules/side-channel-weakmap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
"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"
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3",
+ "side-channel-map": "^1.0.1"
},
- "peerDependencies": {
- "three": ">=0.128.0"
- }
- },
- "node_modules/through2": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
- "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==",
- "dependencies": {
- "readable-stream": ">=1.0.33-1 <1.1.0-0",
- "xtend": ">=4.0.0 <4.1.0-0"
- }
- },
- "node_modules/through2/node_modules/xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
"engines": {
- "node": ">=0.4"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/timers-browserify": {
- "version": "2.0.12",
- "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
- "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==",
- "dev": true,
- "dependencies": {
- "setimmediate": "^1.0.4"
- },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
"engines": {
- "node": ">=0.6.0"
+ "node": ">=8"
}
},
- "node_modules/tiny-invariant": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz",
- "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==",
- "dev": true
- },
- "node_modules/tmpl": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
- "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
- "dev": true
- },
- "node_modules/to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
- "dev": true,
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "peer": true,
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dependencies": {
- "is-number": "^7.0.0"
- },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
"engines": {
- "node": ">=8.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/tocbot": {
- "version": "4.21.6",
- "resolved": "https://registry.npmjs.org/tocbot/-/tocbot-4.21.6.tgz",
- "integrity": "sha512-bAnyV6SU2n1AvuBvEgi8t7KiIn5rRiEmwFp4+elx/1ueuncAUyubITfXDMwOqStgUwh8pDzLdWgDKLicsJPikw==",
- "dev": true
- },
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "dev": true,
- "engines": {
- "node": ">=0.6"
+ "node_modules/source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "peer": true,
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
}
},
- "node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true
+ "node_modules/stable-hash": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz",
+ "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA=="
},
- "node_modules/troika-three-text": {
- "version": "0.49.1",
- "resolved": "https://registry.npmjs.org/troika-three-text/-/troika-three-text-0.49.1.tgz",
- "integrity": "sha512-lXGWxgjJP9kw4i4Wh+0k0Q/7cRfS6iOME4knKht/KozPu9GcFA9NnNpRvehIhrUawq9B0ZRw+0oiFHgRO+4Wig==",
+ "node_modules/stats-gl": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/stats-gl/-/stats-gl-2.4.2.tgz",
+ "integrity": "sha512-g5O9B0hm9CvnM36+v7SFl39T7hmAlv541tU81ME8YeSb3i1CIP5/QdDeSB3A0la0bKNHpxpwxOVRo2wFTYEosQ==",
"dependencies": {
- "bidi-js": "^1.0.2",
- "troika-three-utils": "^0.49.0",
- "troika-worker-utils": "^0.49.0",
- "webgl-sdf-generator": "1.1.1"
+ "@types/three": "*",
+ "three": "^0.170.0"
},
"peerDependencies": {
- "three": ">=0.125.0"
+ "@types/three": "*",
+ "three": "*"
}
},
- "node_modules/troika-three-utils": {
- "version": "0.49.0",
- "resolved": "https://registry.npmjs.org/troika-three-utils/-/troika-three-utils-0.49.0.tgz",
- "integrity": "sha512-umitFL4cT+Fm/uONmaQEq4oZlyRHWwVClaS6ZrdcueRvwc2w+cpNQ47LlJKJswpqtMFWbEhOLy0TekmcPZOdYA==",
- "peerDependencies": {
- "three": ">=0.125.0"
- }
+ "node_modules/stats-gl/node_modules/three": {
+ "version": "0.170.0",
+ "resolved": "https://registry.npmjs.org/three/-/three-0.170.0.tgz",
+ "integrity": "sha512-FQK+LEpYc0fBD+J8g6oSEyyNzjp+Q7Ks1C568WWaoMRLW+TkNNWmenWeGgJjV105Gd+p/2ql1ZcjYvNiPZBhuQ=="
},
- "node_modules/troika-worker-utils": {
- "version": "0.49.0",
- "resolved": "https://registry.npmjs.org/troika-worker-utils/-/troika-worker-utils-0.49.0.tgz",
- "integrity": "sha512-1xZHoJrG0HFfCvT/iyN41DvI/nRykiBtHqFkGaGgJwq5iXfIZFBiPPEHFpPpgyKM3Oo5ITHXP5wM2TNQszYdVg=="
+ "node_modules/stats.js": {
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/stats.js/-/stats.js-0.17.0.tgz",
+ "integrity": "sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw=="
},
- "node_modules/ts-api-utils": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.2.tgz",
- "integrity": "sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ==",
+ "node_modules/streamsearch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
"engines": {
- "node": ">=16.13.0"
- },
- "peerDependencies": {
- "typescript": ">=4.2.0"
+ "node": ">=10.0.0"
}
},
- "node_modules/ts-dedent": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz",
- "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==",
- "dev": true,
+ "node_modules/string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="
+ },
+ "node_modules/string.prototype.includes": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz",
+ "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.3"
+ },
"engines": {
- "node": ">=6.10"
+ "node": ">= 0.4"
}
},
- "node_modules/ts-pnp": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz",
- "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==",
- "dev": true,
+ "node_modules/string.prototype.matchall": {
+ "version": "4.0.12",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz",
+ "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==",
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.6",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.6",
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "internal-slot": "^1.1.0",
+ "regexp.prototype.flags": "^1.5.3",
+ "set-function-name": "^2.0.2",
+ "side-channel": "^1.1.0"
+ },
"engines": {
- "node": ">=6"
+ "node": ">= 0.4"
},
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/tsconfig-paths": {
- "version": "3.14.2",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
- "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==",
+ "node_modules/string.prototype.repeat": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz",
+ "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==",
"dependencies": {
- "@types/json5": "^0.0.29",
- "json5": "^1.0.2",
- "minimist": "^1.2.6",
- "strip-bom": "^3.0.0"
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5"
}
},
- "node_modules/tsconfig-paths-webpack-plugin": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.1.0.tgz",
- "integrity": "sha512-xWFISjviPydmtmgeUAuXp4N1fky+VCtfhOkDUFIv5ea7p4wuTomI4QTrXvFBX2S4jZsmyTSrStQl+E+4w+RzxA==",
- "dev": true,
+ "node_modules/string.prototype.trim": {
+ "version": "1.2.10",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",
+ "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==",
"dependencies": {
- "chalk": "^4.1.0",
- "enhanced-resolve": "^5.7.0",
- "tsconfig-paths": "^4.1.2"
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
+ "define-data-property": "^1.1.4",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.5",
+ "es-object-atoms": "^1.0.0",
+ "has-property-descriptors": "^1.0.2"
},
"engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/tsconfig-paths-webpack-plugin/node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "dev": true,
- "bin": {
- "json5": "lib/cli.js"
+ "node": ">= 0.4"
},
- "engines": {
- "node": ">=6"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/tsconfig-paths-webpack-plugin/node_modules/tsconfig-paths": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz",
- "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==",
- "dev": true,
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz",
+ "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==",
"dependencies": {
- "json5": "^2.2.2",
- "minimist": "^1.2.6",
- "strip-bom": "^3.0.0"
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
- "node": ">=6"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/tslib": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
- "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
- },
- "node_modules/tsutils": {
- "version": "3.21.0",
- "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
- "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
- "dev": true,
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
+ "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
"dependencies": {
- "tslib": "^1.8.1"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
},
"engines": {
- "node": ">= 6"
+ "node": ">= 0.4"
},
- "peerDependencies": {
- "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/tsutils/node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- },
- "node_modules/tty-browserify": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz",
- "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==",
- "dev": true
- },
- "node_modules/tunnel-rat": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/tunnel-rat/-/tunnel-rat-0.1.2.tgz",
- "integrity": "sha512-lR5VHmkPhzdhrM092lI2nACsLO4QubF0/yoOhzX7c+wIpbN1GjHNzCc91QlpxBi+cnx8vVJ+Ur6vL5cEoQPFpQ==",
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dependencies": {
- "zustand": "^4.3.2"
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/tween-functions": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/tween-functions/-/tween-functions-1.2.0.tgz",
- "integrity": "sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA==",
- "dev": true
- },
- "node_modules/type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "dependencies": {
- "prelude-ls": "^1.2.1"
- },
+ "node_modules/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
"engines": {
- "node": ">= 0.8.0"
+ "node": ">=4"
}
},
- "node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"engines": {
- "node": ">=10"
+ "node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "dev": true,
+ "node_modules/styled-jsx": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz",
+ "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==",
"dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
+ "client-only": "0.0.1"
},
"engines": {
- "node": ">= 0.6"
+ "node": ">= 12.0.0"
+ },
+ "peerDependencies": {
+ "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0"
+ },
+ "peerDependenciesMeta": {
+ "@babel/core": {
+ "optional": true
+ },
+ "babel-plugin-macros": {
+ "optional": true
+ }
}
},
- "node_modules/typed-array-buffer": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz",
- "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==",
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.1",
- "is-typed-array": "^1.1.10"
+ "has-flag": "^4.0.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=8"
}
},
- "node_modules/typed-array-byte-length": {
+ "node_modules/supports-preserve-symlinks-flag": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
- "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
- "dependencies": {
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "has-proto": "^1.0.1",
- "is-typed-array": "^1.1.10"
- },
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
"engines": {
"node": ">= 0.4"
},
@@ -17106,441 +5622,510 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/typed-array-byte-offset": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz",
- "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==",
+ "node_modules/suspend-react": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/suspend-react/-/suspend-react-0.1.3.tgz",
+ "integrity": "sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==",
+ "peerDependencies": {
+ "react": ">=17.0"
+ }
+ },
+ "node_modules/tapable": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+ "peer": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/terser": {
+ "version": "5.39.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz",
+ "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==",
+ "peer": true,
"dependencies": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "has-proto": "^1.0.1",
- "is-typed-array": "^1.1.10"
+ "@jridgewell/source-map": "^0.3.3",
+ "acorn": "^8.8.2",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
},
- "engines": {
- "node": ">= 0.4"
+ "bin": {
+ "terser": "bin/terser"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/typed-array-length": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
- "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+ "node_modules/terser-webpack-plugin": {
+ "version": "5.3.14",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz",
+ "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==",
+ "peer": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "is-typed-array": "^1.1.9"
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "jest-worker": "^27.4.5",
+ "schema-utils": "^4.3.0",
+ "serialize-javascript": "^6.0.2",
+ "terser": "^5.31.1"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.1.0"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ },
+ "uglify-js": {
+ "optional": true
+ }
}
},
- "node_modules/typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
- "dev": true
- },
- "node_modules/typescript": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
- "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
+ "node_modules/terser-webpack-plugin/node_modules/ajv": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "peer": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
},
- "engines": {
- "node": ">=14.17"
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/uglify-js": {
- "version": "3.17.4",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz",
- "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==",
- "dev": true,
- "optional": true,
- "bin": {
- "uglifyjs": "bin/uglifyjs"
+ "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "peer": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3"
},
- "engines": {
- "node": ">=0.8.0"
+ "peerDependencies": {
+ "ajv": "^8.8.2"
}
},
- "node_modules/unbox-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
- "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "peer": true
+ },
+ "node_modules/terser-webpack-plugin/node_modules/schema-utils": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz",
+ "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==",
+ "peer": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "has-bigints": "^1.0.2",
- "has-symbols": "^1.0.3",
- "which-boxed-primitive": "^1.0.2"
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.9.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.1.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
}
},
- "node_modules/undici-types": {
- "version": "5.26.5",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
- "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
- "dev": true
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
},
- "node_modules/unicode-canonical-property-names-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
- "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
+ "node_modules/the-new-css-reset": {
+ "version": "1.11.3",
+ "resolved": "https://registry.npmjs.org/the-new-css-reset/-/the-new-css-reset-1.11.3.tgz",
+ "integrity": "sha512-61SB81vu9foUyEIqoU1CeqxrdlsVjJojj/CBXoG8BdvlKFsllB0Rza63DblnRqH+3uttPj3FGWo7+c9nu7MT+A=="
+ },
+ "node_modules/three": {
+ "version": "0.174.0",
+ "resolved": "https://registry.npmjs.org/three/-/three-0.174.0.tgz",
+ "integrity": "sha512-p+WG3W6Ov74alh3geCMkGK9NWuT62ee21cV3jEnun201zodVF4tCE5aZa2U122/mkLRmhJJUQmLLW1BH00uQJQ==",
+ "peer": true
+ },
+ "node_modules/three-mesh-bvh": {
+ "version": "0.7.8",
+ "resolved": "https://registry.npmjs.org/three-mesh-bvh/-/three-mesh-bvh-0.7.8.tgz",
+ "integrity": "sha512-BGEZTOIC14U0XIRw3tO4jY7IjP7n7v24nv9JXS1CyeVRWOCkcOMhRnmENUjuV39gktAw4Ofhr0OvIAiTspQrrw==",
+ "deprecated": "Deprecated due to three.js version incompatibility. Please use v0.8.0, instead.",
+ "peerDependencies": {
+ "three": ">= 0.151.0"
}
},
- "node_modules/unicode-match-property-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
- "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
- "dev": true,
+ "node_modules/three-stdlib": {
+ "version": "2.35.14",
+ "resolved": "https://registry.npmjs.org/three-stdlib/-/three-stdlib-2.35.14.tgz",
+ "integrity": "sha512-kpCaEg59M9usFTgHC+YZNKvx7nMoLI2zQxZBV8pjoNW6vNZmGyXpaLBL09A2oLCsS3KepgMFkOuk6lRoebTNvA==",
"dependencies": {
- "unicode-canonical-property-names-ecmascript": "^2.0.0",
- "unicode-property-aliases-ecmascript": "^2.0.0"
+ "@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"
},
- "engines": {
- "node": ">=4"
+ "peerDependencies": {
+ "three": ">=0.128.0"
}
},
- "node_modules/unicode-match-property-value-ecmascript": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz",
- "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==",
- "dev": true,
- "engines": {
- "node": ">=4"
+ "node_modules/three-stdlib/node_modules/fflate": {
+ "version": "0.6.10",
+ "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.6.10.tgz",
+ "integrity": "sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg=="
+ },
+ "node_modules/through2": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
+ "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==",
+ "dependencies": {
+ "readable-stream": ">=1.0.33-1 <1.1.0-0",
+ "xtend": ">=4.0.0 <4.1.0-0"
}
},
- "node_modules/unicode-property-aliases-ecmascript": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
- "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
- "dev": true,
+ "node_modules/through2/node_modules/xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
"engines": {
- "node": ">=4"
+ "node": ">=0.4"
}
},
- "node_modules/unique-string": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
- "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
- "dev": true,
+ "node_modules/tinyglobby": {
+ "version": "0.2.12",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz",
+ "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==",
"dependencies": {
- "crypto-random-string": "^2.0.0"
+ "fdir": "^6.4.3",
+ "picomatch": "^4.0.2"
},
"engines": {
- "node": ">=8"
- }
- },
- "node_modules/unist-util-is": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz",
- "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-visit": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz",
- "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^4.0.0",
- "unist-util-visit-parents": "^3.0.0"
+ "node": ">=12.0.0"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
+ "url": "https://github.com/sponsors/SuperchupuDev"
}
},
- "node_modules/unist-util-visit-parents": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz",
- "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==",
- "dev": true,
- "dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^4.0.0"
+ "node_modules/tinyglobby/node_modules/fdir": {
+ "version": "6.4.3",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz",
+ "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==",
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
}
},
- "node_modules/universalify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
- "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
- "dev": true,
+ "node_modules/tinyglobby/node_modules/picomatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"engines": {
- "node": ">= 10.0.0"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "dev": true,
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
"engines": {
- "node": ">= 0.8"
+ "node": ">=8.0"
}
},
- "node_modules/unplugin": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.5.0.tgz",
- "integrity": "sha512-9ZdRwbh/4gcm1JTOkp9lAkIDrtOyOxgHmY7cjuwI8L/2RTikMcVG25GsZwNAgRuap3iDw2jeq7eoqtAsz5rW3A==",
- "dev": true,
+ "node_modules/troika-three-text": {
+ "version": "0.52.3",
+ "resolved": "https://registry.npmjs.org/troika-three-text/-/troika-three-text-0.52.3.tgz",
+ "integrity": "sha512-jLhiwgV8kEkwWjvK12f2fHVpbOC75p7SgPQ0cgcz+IMtN5Bdyg4EuFdwuTOVu9ga8UeYdKBpzd1AxviyixtYTQ==",
"dependencies": {
- "acorn": "^8.10.0",
- "chokidar": "^3.5.3",
- "webpack-sources": "^3.2.3",
- "webpack-virtual-modules": "^0.5.0"
+ "bidi-js": "^1.0.2",
+ "troika-three-utils": "^0.52.0",
+ "troika-worker-utils": "^0.52.0",
+ "webgl-sdf-generator": "1.1.1"
+ },
+ "peerDependencies": {
+ "three": ">=0.125.0"
}
},
- "node_modules/untildify": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
- "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
- "dev": true,
- "engines": {
- "node": ">=8"
+ "node_modules/troika-three-utils": {
+ "version": "0.52.0",
+ "resolved": "https://registry.npmjs.org/troika-three-utils/-/troika-three-utils-0.52.0.tgz",
+ "integrity": "sha512-00oxqIIehtEKInOTQekgyknBuRUj1POfOUE2q1OmL+Xlpp4gIu+S0oA0schTyXsDS4d9DkR04iqCdD40rF5R6w==",
+ "peerDependencies": {
+ "three": ">=0.125.0"
}
},
- "node_modules/update-browserslist-db": {
- "version": "1.0.13",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
- "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
- },
- "bin": {
- "update-browserslist-db": "cli.js"
+ "node_modules/troika-worker-utils": {
+ "version": "0.52.0",
+ "resolved": "https://registry.npmjs.org/troika-worker-utils/-/troika-worker-utils-0.52.0.tgz",
+ "integrity": "sha512-W1CpvTHykaPH5brv5VHLfQo9D1OYuo0cSBEUQFFT/nBUzM8iD6Lq2/tgG/f1OelbAS1WtaTPQzE5uM49egnngw=="
+ },
+ "node_modules/ts-api-utils": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz",
+ "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==",
+ "engines": {
+ "node": ">=16"
},
"peerDependencies": {
- "browserslist": ">= 4.21.0"
+ "typescript": ">=4.2.0"
}
},
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "node_modules/tsconfig-paths": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
+ "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
"dependencies": {
- "punycode": "^2.1.0"
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
}
},
- "node_modules/url": {
- "version": "0.11.3",
- "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz",
- "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==",
- "dev": true,
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
+ },
+ "node_modules/tunnel-rat": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/tunnel-rat/-/tunnel-rat-0.1.2.tgz",
+ "integrity": "sha512-lR5VHmkPhzdhrM092lI2nACsLO4QubF0/yoOhzX7c+wIpbN1GjHNzCc91QlpxBi+cnx8vVJ+Ur6vL5cEoQPFpQ==",
"dependencies": {
- "punycode": "^1.4.1",
- "qs": "^6.11.2"
+ "zustand": "^4.3.2"
}
},
- "node_modules/url/node_modules/punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
- "dev": true
- },
- "node_modules/use-callback-ref": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz",
- "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==",
- "dev": true,
+ "node_modules/tunnel-rat/node_modules/zustand": {
+ "version": "4.5.6",
+ "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.6.tgz",
+ "integrity": "sha512-ibr/n1hBzLLj5Y+yUcU7dYw8p6WnIVzdJbnX+1YpaScvZVF2ziugqHs+LAmHw4lWO9c/zRj+K1ncgWDQuthEdQ==",
"dependencies": {
- "tslib": "^2.0.0"
+ "use-sync-external-store": "^1.2.2"
},
"engines": {
- "node": ">=10"
+ "node": ">=12.7.0"
},
"peerDependencies": {
- "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ "@types/react": ">=16.8",
+ "immer": ">=9.0.6",
+ "react": ">=16.8"
},
"peerDependenciesMeta": {
"@types/react": {
"optional": true
+ },
+ "immer": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
}
}
},
- "node_modules/use-resize-observer": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/use-resize-observer/-/use-resize-observer-9.1.0.tgz",
- "integrity": "sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==",
- "dev": true,
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
"dependencies": {
- "@juggle/resize-observer": "^3.3.1"
+ "prelude-ls": "^1.2.1"
},
- "peerDependencies": {
- "react": "16.8.0 - 18",
- "react-dom": "16.8.0 - 18"
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "node_modules/use-sidecar": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz",
- "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==",
- "dev": true,
- "dependencies": {
- "detect-node-es": "^1.1.0",
- "tslib": "^2.0.0"
- },
+ "node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"engines": {
"node": ">=10"
},
- "peerDependencies": {
- "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/use-sync-external-store": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
- "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==",
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ "node_modules/typed-array-buffer": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "es-errors": "^1.3.0",
+ "is-typed-array": "^1.1.14"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
- "node_modules/util": {
- "version": "0.12.5",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
- "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
- "dev": true,
+ "node_modules/typed-array-byte-length": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz",
+ "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==",
"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"
+ "call-bind": "^1.0.8",
+ "for-each": "^0.3.3",
+ "gopd": "^1.2.0",
+ "has-proto": "^1.2.0",
+ "is-typed-array": "^1.1.14"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "dev": true
- },
- "node_modules/utila": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
- "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==",
- "dev": true
- },
- "node_modules/utility-types": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz",
- "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==",
+ "node_modules/typed-array-byte-offset": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz",
+ "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "for-each": "^0.3.3",
+ "gopd": "^1.2.0",
+ "has-proto": "^1.2.0",
+ "is-typed-array": "^1.1.15",
+ "reflect.getprototypeof": "^1.0.9"
+ },
"engines": {
- "node": ">= 4"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "dev": true,
+ "node_modules/typed-array-length": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz",
+ "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "is-typed-array": "^1.1.13",
+ "possible-typed-array-names": "^1.0.0",
+ "reflect.getprototypeof": "^1.0.6"
+ },
"engines": {
- "node": ">= 0.4.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
+ "node_modules/typescript": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz",
+ "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
"bin": {
- "uuid": "dist/bin/uuid"
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
}
},
- "node_modules/v8-to-istanbul": {
- "version": "9.1.3",
- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz",
- "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==",
- "dev": true,
+ "node_modules/unbox-primitive": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
+ "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==",
"dependencies": {
- "@jridgewell/trace-mapping": "^0.3.12",
- "@types/istanbul-lib-coverage": "^2.0.1",
- "convert-source-map": "^2.0.0"
+ "call-bound": "^1.0.3",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.1.0",
+ "which-boxed-primitive": "^1.1.1"
},
"engines": {
- "node": ">=10.12.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "dev": true,
+ "node_modules/update-browserslist-db": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
+ "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "peer": true,
"dependencies": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
}
},
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "dev": true,
- "engines": {
- "node": ">= 0.8"
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dependencies": {
+ "punycode": "^2.1.0"
}
},
- "node_modules/vm-browserify": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
- "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
- "dev": true
+ "node_modules/use-sync-external-store": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz",
+ "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
},
- "node_modules/walker": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
- "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
- "dev": true,
- "dependencies": {
- "makeerror": "1.0.12"
+ "node_modules/utility-types": {
+ "version": "3.11.0",
+ "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz",
+ "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==",
+ "engines": {
+ "node": ">= 4"
}
},
"node_modules/watchpack": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz",
- "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==",
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz",
+ "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==",
+ "peer": true,
"dependencies": {
"glob-to-regexp": "^0.4.1",
"graceful-fs": "^4.1.2"
@@ -17549,15 +6134,6 @@
"node": ">=10.13.0"
}
},
- "node_modules/wcwidth": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
- "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
- "dev": true,
- "dependencies": {
- "defaults": "^1.0.3"
- }
- },
"node_modules/webgl-constants": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/webgl-constants/-/webgl-constants-1.1.1.tgz",
@@ -17568,40 +6144,34 @@
"resolved": "https://registry.npmjs.org/webgl-sdf-generator/-/webgl-sdf-generator-1.1.1.tgz",
"integrity": "sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA=="
},
- "node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true
- },
"node_modules/webpack": {
- "version": "5.88.2",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.2.tgz",
- "integrity": "sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==",
- "dependencies": {
- "@types/eslint-scope": "^3.7.3",
- "@types/estree": "^1.0.0",
- "@webassemblyjs/ast": "^1.11.5",
- "@webassemblyjs/wasm-edit": "^1.11.5",
- "@webassemblyjs/wasm-parser": "^1.11.5",
- "acorn": "^8.7.1",
- "acorn-import-assertions": "^1.9.0",
- "browserslist": "^4.14.5",
+ "version": "5.98.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.98.0.tgz",
+ "integrity": "sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==",
+ "peer": true,
+ "dependencies": {
+ "@types/eslint-scope": "^3.7.7",
+ "@types/estree": "^1.0.6",
+ "@webassemblyjs/ast": "^1.14.1",
+ "@webassemblyjs/wasm-edit": "^1.14.1",
+ "@webassemblyjs/wasm-parser": "^1.14.1",
+ "acorn": "^8.14.0",
+ "browserslist": "^4.24.0",
"chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^5.15.0",
+ "enhanced-resolve": "^5.17.1",
"es-module-lexer": "^1.2.1",
"eslint-scope": "5.1.1",
"events": "^3.2.0",
"glob-to-regexp": "^0.4.1",
- "graceful-fs": "^4.2.9",
+ "graceful-fs": "^4.2.11",
"json-parse-even-better-errors": "^2.3.1",
"loader-runner": "^4.2.0",
"mime-types": "^2.1.27",
"neo-async": "^2.6.2",
- "schema-utils": "^3.2.0",
+ "schema-utils": "^4.3.0",
"tapable": "^2.1.1",
- "terser-webpack-plugin": "^5.3.7",
- "watchpack": "^2.4.0",
+ "terser-webpack-plugin": "^5.3.11",
+ "watchpack": "^2.4.1",
"webpack-sources": "^3.2.3"
},
"bin": {
@@ -17620,55 +6190,36 @@
}
}
},
- "node_modules/webpack-dev-middleware": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.1.tgz",
- "integrity": "sha512-y51HrHaFeeWir0YO4f0g+9GwZawuigzcAdRNon6jErXy/SqV/+O6eaVAzDqE6t3e3NpGeR5CS+cCDaTC+V3yEQ==",
- "dev": true,
- "dependencies": {
- "colorette": "^2.0.10",
- "memfs": "^3.4.12",
- "mime-types": "^2.1.31",
- "range-parser": "^1.2.1",
- "schema-utils": "^4.0.0"
- },
+ "node_modules/webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
+ "peer": true,
"engines": {
- "node": ">= 14.15.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.0.0"
- },
- "peerDependenciesMeta": {
- "webpack": {
- "optional": true
- }
+ "node": ">=10.13.0"
}
},
- "node_modules/webpack-dev-middleware/node_modules/ajv": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
- "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
- "dev": true,
+ "node_modules/webpack/node_modules/ajv": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "peer": true,
"dependencies": {
- "fast-deep-equal": "^3.1.1",
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
"json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
+ "require-from-string": "^2.0.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": {
+ "node_modules/webpack/node_modules/ajv-keywords": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
"integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "dev": true,
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3"
},
@@ -17676,60 +6227,11 @@
"ajv": "^8.8.2"
}
},
- "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "dev": true
- },
- "node_modules/webpack-dev-middleware/node_modules/schema-utils": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
- "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
- "dev": true,
- "dependencies": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.9.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.1.0"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/webpack-hot-middleware": {
- "version": "2.25.4",
- "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.25.4.tgz",
- "integrity": "sha512-IRmTspuHM06aZh98OhBJtqLpeWFM8FXJS5UYpKYxCJzyFoyWj1w6VGFfomZU7OPA55dMLrQK0pRT1eQ3PACr4w==",
- "dev": true,
- "dependencies": {
- "ansi-html-community": "0.0.8",
- "html-entities": "^2.1.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "node_modules/webpack-sources": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
- "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/webpack-virtual-modules": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz",
- "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==",
- "dev": true
- },
"node_modules/webpack/node_modules/eslint-scope": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
"integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "peer": true,
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^4.1.1"
@@ -17742,18 +6244,34 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "peer": true,
"engines": {
"node": ">=4.0"
}
},
- "node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dev": true,
+ "node_modules/webpack/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "peer": true
+ },
+ "node_modules/webpack/node_modules/schema-utils": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz",
+ "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==",
+ "peer": true,
"dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.9.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.1.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
}
},
"node_modules/which": {
@@ -17771,37 +6289,41 @@
}
},
"node_modules/which-boxed-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
- "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz",
+ "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==",
"dependencies": {
- "is-bigint": "^1.0.1",
- "is-boolean-object": "^1.1.0",
- "is-number-object": "^1.0.4",
- "is-string": "^1.0.5",
- "is-symbol": "^1.0.3"
+ "is-bigint": "^1.1.0",
+ "is-boolean-object": "^1.2.1",
+ "is-number-object": "^1.1.1",
+ "is-string": "^1.1.1",
+ "is-symbol": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/which-builtin-type": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz",
- "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz",
+ "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==",
"dependencies": {
- "function.prototype.name": "^1.1.5",
- "has-tostringtag": "^1.0.0",
+ "call-bound": "^1.0.2",
+ "function.prototype.name": "^1.1.6",
+ "has-tostringtag": "^1.0.2",
"is-async-function": "^2.0.0",
- "is-date-object": "^1.0.5",
- "is-finalizationregistry": "^1.0.2",
+ "is-date-object": "^1.1.0",
+ "is-finalizationregistry": "^1.1.0",
"is-generator-function": "^1.0.10",
- "is-regex": "^1.1.4",
+ "is-regex": "^1.2.1",
"is-weakref": "^1.0.2",
"isarray": "^2.0.5",
- "which-boxed-primitive": "^1.0.2",
- "which-collection": "^1.0.1",
- "which-typed-array": "^1.1.9"
+ "which-boxed-primitive": "^1.1.0",
+ "which-collection": "^1.0.2",
+ "which-typed-array": "^1.1.16"
},
"engines": {
"node": ">= 0.4"
@@ -17811,29 +6333,14 @@
}
},
"node_modules/which-collection": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
- "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"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/which-typed-array": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz",
- "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
+ "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
"dependencies": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-tostringtag": "^1.0.0"
+ "is-map": "^2.0.3",
+ "is-set": "^2.0.3",
+ "is-weakmap": "^2.0.2",
+ "is-weakset": "^2.0.3"
},
"engines": {
"node": ">= 0.4"
@@ -17842,45 +6349,32 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/wordwrap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
- "dev": true
- },
- "node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
+ "node_modules/which-typed-array": {
+ "version": "1.1.19",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz",
+ "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==",
"dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
+ "for-each": "^0.3.5",
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "has-tostringtag": "^1.0.2"
},
"engines": {
- "node": ">=10"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/wrap-ansi-cjs": {
- "name": "wrap-ansi",
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
+ "node_modules/word-wrap": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ "node": ">=0.10.0"
}
},
"node_modules/wrappy": {
@@ -17888,40 +6382,6 @@
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
},
- "node_modules/write-file-atomic": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
- "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
- "dev": true,
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.7"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/ws": {
- "version": "8.14.2",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz",
- "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==",
- "dev": true,
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
"node_modules/xtend": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz",
@@ -17930,66 +6390,6 @@
"node": ">=0.4"
}
},
- "node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- },
- "node_modules/yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
- "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"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yauzl": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
- "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
- "dev": true,
- "dependencies": {
- "buffer-crc32": "~0.2.3",
- "fd-slicer": "~1.1.0"
- }
- },
"node_modules/yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
@@ -18002,19 +6402,17 @@
}
},
"node_modules/zustand": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.4.1.tgz",
- "integrity": "sha512-QCPfstAS4EBiTQzlaGP1gmorkh/UL1Leaj2tdj+zZCZ/9bm0WS7sI2wnfD5lpOszFqWJ1DcPnGoY8RDL61uokw==",
- "dependencies": {
- "use-sync-external-store": "1.2.0"
- },
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.3.tgz",
+ "integrity": "sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==",
"engines": {
- "node": ">=12.7.0"
+ "node": ">=12.20.0"
},
"peerDependencies": {
- "@types/react": ">=16.8",
- "immer": ">=9.0",
- "react": ">=16.8"
+ "@types/react": ">=18.0.0",
+ "immer": ">=9.0.6",
+ "react": ">=18.0.0",
+ "use-sync-external-store": ">=1.2.0"
},
"peerDependenciesMeta": {
"@types/react": {
@@ -18025,6 +6423,9 @@
},
"react": {
"optional": true
+ },
+ "use-sync-external-store": {
+ "optional": true
}
}
}
diff --git a/package.json b/package.json
index ea0a7a1e..8ead98bc 100644
--- a/package.json
+++ b/package.json
@@ -13,9 +13,9 @@
"create-fx": "git clone https://github.com/takuma-hmng8/CreateShaderFx"
},
"dependencies": {
- "@funtech-inc/spice": "^1.2.18",
- "@react-three/drei": "^9.105.6",
- "@react-three/fiber": "^8.16.6",
+ "@funtech-inc/spice": "^1.2.113",
+ "@react-three/drei": "^9.122.0",
+ "@react-three/fiber": "^8.18.0",
"@types/node": "20.5.6",
"@types/react": "18.2.21",
"@types/react-dom": "18.2.7",
@@ -24,31 +24,16 @@
"eslint-config-next": "13.4.19",
"glslify-loader": "^2.0.0",
"gsap": "^3.12.2",
- "meshline": "^3.1.6",
- "next": "^14.2.3",
+ "next": "^14.2.16",
"raw-loader": "^4.0.2",
- "react": "18.2.0",
- "react-dom": "18.2.0",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0",
"sass": "^1.66.1",
"the-new-css-reset": "^1.9.0",
- "three": "^0.164.1",
- "three-custom-shader-material": "^5.4.0",
- "three-stdlib": "^2.26.6",
- "typescript": "5.2.2",
- "zustand": "^4.4.1"
+ "typescript": "5.2.2"
},
"devDependencies": {
- "@storybook/addon-essentials": "^7.5.3",
- "@storybook/addon-interactions": "^7.5.3",
- "@storybook/addon-links": "^7.5.3",
- "@storybook/addon-onboarding": "^1.0.8",
- "@storybook/blocks": "^7.5.3",
- "@storybook/nextjs": "^7.5.3",
- "@storybook/react": "^7.5.3",
- "@storybook/testing-library": "^0.2.2",
- "eslint-plugin-storybook": "^0.6.15",
"lil-gui": "^0.18.2",
- "r3f-perf": "^7.1.2",
- "storybook": "^7.5.3"
+ "r3f-perf": "^7.1.2"
}
}
diff --git a/packages/use-shader-fx/build/use-shader-fx.js b/packages/use-shader-fx/build/use-shader-fx.js
index 726d0fa2..8c34b162 100644
--- a/packages/use-shader-fx/build/use-shader-fx.js
+++ b/packages/use-shader-fx/build/use-shader-fx.js
@@ -1,4304 +1,1957 @@
import * as o from "three";
-import { useMemo as y, useEffect as Z, useRef as B, useCallback as _, useState as Be } from "react";
-import { mergeVertices as Ee } from "three-stdlib";
-var Le = "#usf ", $e = `precision highp float;
-
-uniform sampler2D uBuffer;
-uniform sampler2D uTexture;
-uniform bool uIsTexture;
-uniform sampler2D uMap;
-uniform bool uIsMap;
-uniform float uMapIntensity;
-uniform float uRadius;
-uniform float uDissipation;
-uniform vec2 uResolution;
-uniform float uSmudge;
-uniform vec2 uMouse;
-uniform vec2 uPrevMouse;
-uniform vec2 uVelocity;
-uniform vec3 uColor;
-uniform float uMotionBlur;
-uniform int uMotionSample;
-uniform bool uIsCursor;
-uniform float uPressureStart;
-uniform float uPressureEnd;
-
-varying vec2 vUv;
-
-float isOnLine(vec2 point, vec2 start, vec2 end, float radius, float pressureStart, float pressureEnd) {
-
- float aspect = uResolution.x / uResolution.y;
-
- point.x *= aspect;
- start.x *= aspect;
- end.x *= aspect;
-
- vec2 dir = normalize(end - start);
- vec2 n = vec2(dir.y, -dir.x);
- vec2 p0 = point - start;
-
- float distToLine = abs(dot(p0, n));
- float distAlongLine = dot(p0, dir);
- float totalLength = length(end - start);
-
- float progress = clamp(distAlongLine / totalLength, 0.0, 1.0);
- float pressure = mix(pressureStart, pressureEnd, progress);
- radius = min(radius,radius * pressure);
-
- float distFromStart = length(point - start);
- float distFromEnd = length(point - end);
-
- bool withinLine = (distToLine < radius && distAlongLine > 0.0 && distAlongLine < totalLength) || distFromStart < radius || distFromEnd < radius;
-
- return float(withinLine);
-}
-
-vec4 createSmudge(vec2 uv){
- vec2 offsets[9];
- offsets[0] = vec2(-1, -1); offsets[1] = vec2( 0, -1); offsets[2] = vec2( 1, -1);
- offsets[3] = vec2(-1, 0); offsets[4] = vec2( 0, 0); offsets[5] = vec2( 1, 0);
- offsets[6] = vec2(-1, 1); offsets[7] = vec2( 0, 1); offsets[8] = vec2( 1, 1);
-
- for(int i = 0; i < 9; i++) {
- offsets[i] = (offsets[i] * uSmudge) / uResolution;
- }
- vec4 smudgedColor = vec4(0.);
- for(int i = 0; i < 9; i++) {
- smudgedColor += texture2D(uBuffer, uv + offsets[i]);
- }
- return smudgedColor / 9.0;
-}
-
-vec4 createMotionBlur(vec2 uv , vec4 baseColor, vec2 velocity) {
- vec2 scaledV = velocity * uMotionBlur;
- for(int i = 1; i < uMotionSample; i++) {
- float t = float(i) / float(uMotionSample - 1);
- vec2 offset = t * scaledV / uResolution;
- baseColor += texture2D(uBuffer, uv + offset);
- }
- return baseColor / float(uMotionSample);
-}
-
-void main() {
-
- vec2 uv = vUv;
- if(uIsMap){
- vec2 mapColor = texture2D(uMap, uv).rg;
- vec2 normalizedMap = mapColor * 2.0 - 1.0;
- uv = uv * 2.0 - 1.0;
- uv *= mix(vec2(1.0), abs(normalizedMap.rg), uMapIntensity);
- uv = (uv + 1.0) / 2.0;
- }
- vec2 suv = uv*2.-1.;
-
- vec2 velocity = uVelocity * uResolution;
-
- float radius = max(0.0,uRadius);
-
- vec4 smudgedColor = uSmudge > 0. ? createSmudge(uv) : texture2D(uBuffer, uv);
-
- vec4 motionBlurredColor = uMotionBlur > 0. ? createMotionBlur(uv,smudgedColor, velocity) : smudgedColor;
-
- vec4 bufferColor = motionBlurredColor;
- bufferColor.a = bufferColor.a < 1e-10 ? 0.0 : bufferColor.a * uDissipation;
-
- vec4 brushColor = uIsTexture ? texture2D(uTexture, uv) : vec4(uColor,1.);
-
- float onLine = isOnLine(suv, uPrevMouse, uMouse, radius, uPressureStart,uPressureEnd);
- float isOnLine = length(velocity) > 0. ? onLine : uIsCursor ? onLine : 0.;
-
- vec4 finalColor = mix(bufferColor, brushColor, isOnLine);
-
- gl_FragColor = finalColor;
-}`;
-const K = (e, t = !1) => {
- const n = t ? e.width * t : e.width, r = t ? e.height * t : e.height;
- return y(
- () => new o.Vector2(n, r),
- [n, r]
- );
-}, R = (e) => (t, n) => {
- if (n === void 0)
- return;
- const r = e.uniforms;
- r && r[t] && (r[t].value = n);
-}, F = (e) => (t) => {
- t !== void 0 && Object.keys(t).forEach((n) => {
- const r = e.uniforms;
- r && r[n] && (r[n].value = t[n]);
- });
-}, E = (e, t, n, r) => {
- const s = y(() => {
- const l = new r(t, n);
- return e && e.add(l), l;
- }, [t, n, r, e]);
- return Z(() => () => {
- e && e.remove(s), t.dispose(), n.dispose();
- }, [e, t, n, s]), s;
-}, Re = process.env.NODE_ENV === "development", I = {
- transparent: !1,
- depthTest: !1,
- depthWrite: !1
-}, w = new o.DataTexture(
- new Uint8Array([0, 0, 0, 0]),
- 1,
- 1,
- o.RGBAFormat
-);
-var je = `vec4 permute(vec4 x){return mod(((x*34.0)+1.0)*x, 289.0);}
-float permute(float x){return floor(mod(((x*34.0)+1.0)*x, 289.0));}
-vec4 taylorInvSqrt(vec4 r){return 1.79284291400159 - 0.85373472095314 * r;}
-float taylorInvSqrt(float r){return 1.79284291400159 - 0.85373472095314 * r;}
-
-vec4 grad4(float j, vec4 ip)
-{
- const vec4 ones = vec4(1.0, 1.0, 1.0, -1.0);
- vec4 p,s;
-
- p.xyz = floor( fract (vec3(j) * ip.xyz) * 7.0) * ip.z - 1.0;
- p.w = 1.5 - dot(abs(p.xyz), ones.xyz);
- s = vec4(lessThan(p, vec4(0.0)));
- p.xyz = p.xyz + (s.xyz*2.0 - 1.0) * s.www;
-
- return p;
-}
-
-float simplexNoise4d(vec4 v)
-{
- const vec2 C = vec2( 0.138196601125010504,
- 0.309016994374947451);
-
- vec4 i = floor(v + dot(v, C.yyyy) );
- vec4 x0 = v - i + dot(i, C.xxxx);
-
-
-
-
- vec4 i0;
-
- vec3 isX = step( x0.yzw, x0.xxx );
- vec3 isYZ = step( x0.zww, x0.yyz );
-
- i0.x = isX.x + isX.y + isX.z;
- i0.yzw = 1.0 - isX;
-
-
- i0.y += isYZ.x + isYZ.y;
- i0.zw += 1.0 - isYZ.xy;
-
- i0.z += isYZ.z;
- i0.w += 1.0 - isYZ.z;
-
-
- vec4 i3 = clamp( i0, 0.0, 1.0 );
- vec4 i2 = clamp( i0-1.0, 0.0, 1.0 );
- vec4 i1 = clamp( i0-2.0, 0.0, 1.0 );
-
-
- vec4 x1 = x0 - i1 + 1.0 * C.xxxx;
- vec4 x2 = x0 - i2 + 2.0 * C.xxxx;
- vec4 x3 = x0 - i3 + 3.0 * C.xxxx;
- vec4 x4 = x0 - 1.0 + 4.0 * C.xxxx;
-
-
- i = mod(i, 289.0);
- float j0 = permute( permute( permute( permute(i.w) + i.z) + i.y) + i.x);
- vec4 j1 = permute( permute( permute( permute (
- i.w + vec4(i1.w, i2.w, i3.w, 1.0 ))
- + i.z + vec4(i1.z, i2.z, i3.z, 1.0 ))
- + i.y + vec4(i1.y, i2.y, i3.y, 1.0 ))
- + i.x + vec4(i1.x, i2.x, i3.x, 1.0 ));
-
-
-
-
- vec4 ip = vec4(1.0/294.0, 1.0/49.0, 1.0/7.0, 0.0) ;
-
- vec4 p0 = grad4(j0, ip);
- vec4 p1 = grad4(j1.x, ip);
- vec4 p2 = grad4(j1.y, ip);
- vec4 p3 = grad4(j1.z, ip);
- vec4 p4 = grad4(j1.w, ip);
-
-
- vec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2, p2), dot(p3,p3)));
- p0 *= norm.x;
- p1 *= norm.y;
- p2 *= norm.z;
- p3 *= norm.w;
- p4 *= taylorInvSqrt(dot(p4,p4));
-
-
- vec3 m0 = max(0.6 - vec3(dot(x0,x0), dot(x1,x1), dot(x2,x2)), 0.0);
- vec2 m1 = max(0.6 - vec2(dot(x3,x3), dot(x4,x4) ), 0.0);
- m0 = m0 * m0;
- m1 = m1 * m1;
- return 49.0 * ( dot(m0*m0, vec3( dot( p0, x0 ), dot( p1, x1 ), dot( p2, x2 )))
- + dot(m1*m1, vec2( dot( p3, x3 ), dot( p4, x4 ) ) ) ) ;
-
-}
-
-float getWobble(vec3 position)
-{
- vec3 warpedPosition = position;
- warpedPosition += simplexNoise4d(
- vec4(
- position * uWarpPositionFrequency,
- uTime * uWarpTimeFrequency
- )
- ) * uWarpStrength;
-
- return simplexNoise4d(vec4(
- warpedPosition * uWobblePositionFrequency,
- uTime * uWobbleTimeFrequency
- )) * uWobbleStrength;
-}`, qe = `vec3 random3(vec3 c) {
- float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0)));
- vec3 r;
- r.z = fract(512.0*j);
- j *= .125;
- r.x = fract(512.0*j);
- j *= .125;
- r.y = fract(512.0*j);
- return r-0.5;
-}
-
-const float F3 = 0.3333333;
-const float G3 = 0.1666667;
-
-float snoise(vec3 p) {
-
- vec3 s = floor(p + dot(p, vec3(F3)));
- vec3 x = p - s + dot(s, vec3(G3));
-
- vec3 e = step(vec3(0.0), x - x.yzx);
- vec3 i1 = e*(1.0 - e.zxy);
- vec3 i2 = 1.0 - e.zxy*(1.0 - e);
-
- vec3 x1 = x - i1 + G3;
- vec3 x2 = x - i2 + 2.0*G3;
- vec3 x3 = x - 1.0 + 3.0*G3;
-
- vec4 w, d;
-
- w.x = dot(x, x);
- w.y = dot(x1, x1);
- w.z = dot(x2, x2);
- w.w = dot(x3, x3);
-
- w = max(0.6 - w, 0.0);
-
- d.x = dot(random3(s), x);
- d.y = dot(random3(s + i1), x1);
- d.z = dot(random3(s + i2), x2);
- d.w = dot(random3(s + 1.0), x3);
-
- w *= w;
- w *= w;
- d *= w;
-
- return dot(d, vec4(52.0));
-}
-
-float snoiseFractal(vec3 m) {
- return 0.5333333* snoise(m)
- +0.2666667* snoise(2.0*m)
- +0.1333333* snoise(4.0*m)
- +0.0666667* snoise(8.0*m);
-}`, We = `float screenAspect = uResolution.x / uResolution.y;
-float textureAspect = uTextureResolution.x / uTextureResolution.y;
-vec2 aspectRatio = vec2(
- min(screenAspect / textureAspect, 1.0),
- min(textureAspect / screenAspect, 1.0)
-);
-vec2 uv = vUv * aspectRatio + (1.0 - aspectRatio) * .5;`, Ne = `vec3 mapColor = texture2D(uMap, uv).rgb;
-vec3 normalizedMap = mapColor * 2.0 - 1.0;
-
-uv = uv * 2.0 - 1.0;
-uv *= mix(vec2(1.0), abs(normalizedMap.rg), uMapIntensity);
-uv = (uv + 1.0) / 2.0;`, ke = `precision highp float;
-
-varying vec2 vUv;
-
-void main() {
- vUv = uv;
- gl_Position = vec4(position, 1.0);
-}`, Ge = `varying vec2 vUv;
-
-void main() {
- vUv = uv;
- gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
-}`, Ke = `vec3 hsv2rgb(vec3 c)
-{
- vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
- vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
- return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
-}`, He = `vec3 rgb2hsv(vec3 c)
-{
- vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
- vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
- vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
-
- float d = q.x - min(q.w, q.y);
- float e = 1.0e-10;
- return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
-}`;
-const Xe = Object.freeze({
- wobble3D: je,
- snoise: qe,
- coverTexture: We,
- fxBlending: Ne,
- planeVertex: ke,
- defaultVertex: Ge,
- hsv2rgb: Ke,
- rgb2hsv: He
-}), Ye = /^[ \t]*#usf +<([\w\d./]+)>/gm;
-function Qe(e, t) {
- return ye(Xe[t] || "");
-}
-function ye(e) {
- return e.replace(Ye, Qe);
-}
-const V = (e, t) => (t && t(e), e.vertexShader = ye(e.vertexShader), e.fragmentShader = ye(e.fragmentShader), e), Ze = ({
- scene: e,
- size: t,
- dpr: n,
- onBeforeInit: r
-}) => {
- const s = y(() => new o.PlaneGeometry(2, 2), []), l = y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uBuffer: { value: w },
- uResolution: { value: new o.Vector2(0, 0) },
- uTexture: { value: w },
- uIsTexture: { value: !1 },
- uMap: { value: w },
- uIsMap: { value: !1 },
- uMapIntensity: { value: re.mapIntensity },
- uRadius: { value: re.radius },
- uSmudge: { value: re.smudge },
- uDissipation: { value: re.dissipation },
- uMotionBlur: { value: re.motionBlur },
- uMotionSample: { value: re.motionSample },
- uMouse: { value: new o.Vector2(-10, -10) },
- uPrevMouse: { value: new o.Vector2(-10, -10) },
- uVelocity: { value: new o.Vector2(0, 0) },
- uColor: { value: re.color },
- uIsCursor: { value: !1 },
- uPressureStart: { value: 1 },
- uPressureEnd: { value: 1 }
- },
- vertexShader: Le,
- fragmentShader: $e
- },
- r
- ),
- ...I,
- // Must be transparent
- transparent: !0
- }), [r]), c = K(t, n);
- R(l)("uResolution", c.clone());
- const i = E(e, s, l, o.Mesh);
- return { material: l, mesh: i };
-}, Je = (e, t) => {
- const n = t, r = e / t, [s, l] = [n * r / 2, n / 2];
- return { width: s, height: l, near: -1e3, far: 1e3 };
-}, L = (e, t = "OrthographicCamera") => {
- const n = K(e), { width: r, height: s, near: l, far: c } = Je(
- n.x,
- n.y
- );
- return y(() => t === "OrthographicCamera" ? new o.OrthographicCamera(
- -r,
- r,
- s,
- -s,
- l,
- c
- ) : new o.PerspectiveCamera(50, r / s), [r, s, l, c, t]);
-}, Se = (e = 0) => {
- const t = B(new o.Vector2(0, 0)), n = B(new o.Vector2(0, 0)), r = B(new o.Vector2(0, 0)), s = B(0), l = B(new o.Vector2(0, 0)), c = B(!1);
- return _(
- (d) => {
- const p = performance.now();
- let f;
- c.current && e ? (r.current = r.current.lerp(
- d,
- 1 - e
- ), f = r.current.clone()) : (f = d.clone(), r.current = f), s.current === 0 && (s.current = p, t.current = f);
- const x = Math.max(1, p - s.current);
- s.current = p, l.current.copy(f).sub(t.current).divideScalar(x);
- const a = l.current.length() > 0, v = c.current ? t.current.clone() : f;
- return !c.current && a && (c.current = !0), t.current = f, {
- currentPointer: f,
- prevPointer: v,
- diffPointer: n.current.subVectors(f, v),
- velocity: l.current,
- isVelocityUpdate: a
- };
- },
- [e]
- );
-}, j = (e) => {
- const n = B(
- ((s) => Object.values(s).some((l) => typeof l == "function"))(e) ? e : structuredClone(e)
- ), r = _((s) => {
- if (s !== void 0)
- for (const l in s) {
- const c = l;
- c in n.current && s[c] !== void 0 && s[c] !== null ? n.current[c] = s[c] : console.error(
- `"${String(
- c
- )}" does not exist in the params. or "${String(
- c
- )}" is null | undefined`
- );
- }
- }, []);
- return [n.current, r];
-}, he = {
+import { useState as E, useEffect as K, useCallback as h, useRef as T } from "react";
+const R = (e) => typeof e == "number" ? { shader: e, fbo: e } : {
+ shader: e.shader ?? !1,
+ fbo: e.fbo ?? !1
+}, N = (e, t = !1) => {
+ const r = t ? e.width * t : e.width, a = t ? e.height * t : e.height, [n] = E(() => new o.Vector2(r, a));
+ return n.set(r, a), n;
+}, De = (e, t) => {
+ const r = t, a = e / t, [n, i] = [r * a / 2, r / 2];
+ return { width: n, height: i, near: -1e3, far: 1e3 };
+}, be = (e, t = "OrthographicCamera") => {
+ const r = N(e), { width: a, height: n, near: i, far: s } = De(
+ r.x,
+ r.y
+ ), [c] = E(() => t === "OrthographicCamera" ? new o.OrthographicCamera(
+ -a,
+ a,
+ n,
+ -n,
+ i,
+ s
+ ) : new o.PerspectiveCamera(50, a / n));
+ return c instanceof o.OrthographicCamera ? (c.left = -a, c.right = a, c.top = n, c.bottom = -n, c.near = i, c.far = s, c.updateProjectionMatrix()) : c instanceof o.PerspectiveCamera && (c.aspect = a / n, c.updateProjectionMatrix()), c;
+}, te = {
depthBuffer: !1
-}, _e = ({
+}, de = ({
gl: e,
fbo: t,
- scene: n,
- camera: r,
- onBeforeRender: s,
- onSwap: l
+ scene: r,
+ camera: a,
+ clear: n = !0,
+ onBeforeRender: i,
+ onSwap: s
}) => {
- e.setRenderTarget(t), s(), e.clear(), e.render(n, r), l && l(), e.setRenderTarget(null), e.clear();
-}, $ = (e) => {
- var x;
- const {
- scene: t,
- camera: n,
- size: r,
- dpr: s = !1,
- isSizeUpdate: l = !1,
- depth: c = !1,
- ...i
- } = e, d = B(), p = K(r, s);
- d.current = y(
- () => {
- const a = new o.WebGLRenderTarget(
- p.x,
- p.y,
- {
- ...he,
- ...i
- }
- );
- return c && (a.depthTexture = new o.DepthTexture(
- p.x,
- p.y,
- o.FloatType
- )), a;
- },
- // eslint-disable-next-line react-hooks/exhaustive-deps
- []
- ), l && ((x = d.current) == null || x.setSize(p.x, p.y)), Z(() => {
- const a = d.current;
- return () => {
- a == null || a.dispose();
- };
- }, []);
- const f = _(
- (a, v) => {
- const u = d.current;
- return _e({
- gl: a,
- fbo: u,
- scene: t,
- camera: n,
- onBeforeRender: () => v && v({ read: u.texture })
- }), u.texture;
- },
- [t, n]
- );
- return [d.current, f];
-}, se = (e) => {
- var x, a;
+ if (!r || !a)
+ return;
+ const c = e.autoClear;
+ e.autoClear = n, e.setRenderTarget(t), i(), e.render(r, a), s && s(), e.setRenderTarget(null), e.autoClear = c;
+}, b = (e) => {
const {
scene: t,
- camera: n,
- size: r,
- dpr: s = !1,
- isSizeUpdate: l = !1,
- depth: c = !1,
- ...i
- } = e, d = K(r, s), p = y(() => {
- const v = new o.WebGLRenderTarget(d.x, d.y, {
- ...he,
- ...i
- }), u = new o.WebGLRenderTarget(d.x, d.y, {
- ...he,
- ...i
+ camera: r,
+ size: a,
+ dpr: n = !1,
+ fboAutoSetSize: i = !1,
+ depth: s = !1,
+ ...c
+ } = e, l = N(a, n), [u] = E(() => {
+ const _ = new o.WebGLRenderTarget(l.x, l.y, {
+ ...te,
+ ...c
});
- return c && (v.depthTexture = new o.DepthTexture(
- d.x,
- d.y,
+ return s && (_.depthTexture = new o.DepthTexture(
+ l.x,
+ l.y,
o.FloatType
- ), u.depthTexture = new o.DepthTexture(
- d.x,
- d.y,
- o.FloatType
- )), {
- read: v,
- write: u,
- swap: function() {
- let m = this.read;
- this.read = this.write, this.write = m;
- }
- };
- }, []);
- l && ((x = p.read) == null || x.setSize(d.x, d.y), (a = p.write) == null || a.setSize(d.x, d.y)), Z(() => {
- const v = p;
+ )), _;
+ });
+ i && u.setSize(l.x, l.y), K(() => {
+ const _ = u;
return () => {
- var u, m;
- (u = v.read) == null || u.dispose(), (m = v.write) == null || m.dispose();
- };
- }, [p]);
- const f = _(
- (v, u) => {
- var h;
- const m = p;
- return _e({
- gl: v,
- scene: t,
- camera: n,
- fbo: m.write,
- onBeforeRender: () => u && u({
- read: m.read.texture,
- write: m.write.texture
- }),
- onSwap: () => m.swap()
- }), (h = m.read) == null ? void 0 : h.texture;
- },
- [t, n, p]
- );
- return [
- { read: p.read, write: p.write },
- f
- ];
-}, U = (e) => typeof e == "number" ? { shader: e, fbo: e } : {
- shader: e.shader ?? !1,
- fbo: e.fbo ?? !1
-}, re = Object.freeze({
- texture: !1,
- map: !1,
- mapIntensity: 0.1,
- radius: 0.05,
- smudge: 0,
- dissipation: 1,
- motionBlur: 0,
- motionSample: 5,
- color: new o.Vector3(1, 0, 0),
- isCursor: !1,
- pressure: 1,
- pointerValues: !1
-}), Jn = ({
- size: e,
- dpr: t,
- renderTargetOptions: n,
- isSizeUpdate: r,
- onBeforeInit: s
-}) => {
- const l = U(t), c = y(() => new o.Scene(), []), { material: i, mesh: d } = Ze({
- scene: c,
- size: e,
- dpr: l.shader,
- onBeforeInit: s
- }), p = L(e), f = Se(), [x, a] = se({
- scene: c,
- camera: p,
- size: e,
- dpr: l.fbo,
- isSizeUpdate: r,
- ...n
- }), [v, u] = j(re), m = B(null), h = R(i), M = F(i), b = _(
- (S, C) => {
- u(S), M(C);
- },
- [u, M]
- );
- return [
- _(
- (S, C, T) => {
- const { gl: A, pointer: z } = S;
- b(C, T), v.texture ? (h("uIsTexture", !0), h("uTexture", v.texture)) : h("uIsTexture", !1), v.map ? (h("uIsMap", !0), h("uMap", v.map), h("uMapIntensity", v.mapIntensity)) : h("uIsMap", !1), h("uRadius", v.radius), h("uSmudge", v.smudge), h("uDissipation", v.dissipation), h("uMotionBlur", v.motionBlur), h("uMotionSample", v.motionSample);
- const P = v.pointerValues || f(z);
- P.isVelocityUpdate && (h("uMouse", P.currentPointer), h("uPrevMouse", P.prevPointer)), h("uVelocity", P.velocity);
- const q = typeof v.color == "function" ? v.color(P.velocity) : v.color;
- return h("uColor", q), h("uIsCursor", v.isCursor), h("uPressureEnd", v.pressure), m.current === null && (m.current = v.pressure), h("uPressureStart", m.current), m.current = v.pressure, a(A, ({ read: D }) => {
- h("uBuffer", D);
- });
- },
- [h, f, a, v, b]
- ),
- b,
- {
- scene: c,
- mesh: d,
- material: i,
- camera: p,
- renderTarget: x,
- output: x.read.texture
- }
- ];
-};
-var J = `varying vec2 vUv;
-varying vec2 vL;
-varying vec2 vR;
-varying vec2 vT;
-varying vec2 vB;
-uniform vec2 texelSize;
-
-void main () {
- vUv = uv;
- vL = vUv - vec2(texelSize.x, 0.0);
- vR = vUv + vec2(texelSize.x, 0.0);
- vT = vUv + vec2(0.0, texelSize.y);
- vB = vUv - vec2(0.0, texelSize.y);
- gl_Position = vec4(position, 1.0);
-}`, et = `precision highp float;
-
-void main(){
- gl_FragColor = vec4(0.0);
-}`;
-const tt = () => y(() => new o.ShaderMaterial({
- vertexShader: J,
- fragmentShader: et,
- ...I
-}), []);
-var nt = `precision highp float;
-
-varying vec2 vUv;
-uniform sampler2D uVelocity;
-uniform sampler2D uSource;
-uniform vec2 texelSize;
-uniform float dt;
-uniform float dissipation;
-
-void main () {
- vec2 coord = vUv - dt * texture2D(uVelocity, vUv).xy * texelSize;
- gl_FragColor = vec4(dissipation * texture2D(uSource, coord).rgb,1.);
-}`;
-const rt = ({ onBeforeInit: e }) => y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uVelocity: { value: w },
- uSource: { value: w },
- texelSize: { value: new o.Vector2() },
- dt: { value: Ae },
- dissipation: { value: 0 }
- },
- vertexShader: J,
- fragmentShader: nt
- },
- e
- ),
- ...I
-}), [e]);
-var ot = `precision highp float;
-
-varying vec2 vUv;
-varying vec2 vL;
-varying vec2 vR;
-varying vec2 vT;
-varying vec2 vB;
-uniform sampler2D uVelocity;
-
-vec2 sampleVelocity(in vec2 uv) {
- vec2 clampedUV = clamp(uv, 0.0, 1.0);
- vec2 multiplier = vec2(1.0, 1.0);
- multiplier.x = uv.x < 0.0 || uv.x > 1.0 ? -1.0 : 1.0;
- multiplier.y = uv.y < 0.0 || uv.y > 1.0 ? -1.0 : 1.0;
- return multiplier * texture2D(uVelocity, clampedUV).xy;
-}
-
-void main () {
- float L = sampleVelocity(vL).x;
- float R = sampleVelocity(vR).x;
- float T = sampleVelocity(vT).y;
- float B = sampleVelocity(vB).y;
- float div = 0.5 * (R - L + T - B);
- gl_FragColor = vec4(div, 0.0, 0.0, 1.0);
-}`;
-const at = ({ onBeforeInit: e }) => y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uVelocity: { value: null },
- texelSize: { value: new o.Vector2() }
- },
- vertexShader: J,
- fragmentShader: ot
- },
- e
- ),
- ...I
-}), [e]);
-var it = `precision highp float;
-
-varying vec2 vUv;
-varying vec2 vL;
-varying vec2 vR;
-varying vec2 vT;
-varying vec2 vB;
-uniform sampler2D uPressure;
-uniform sampler2D uDivergence;
-
-void main () {
- float L = texture2D(uPressure, clamp(vL,0.,1.)).x;
- float R = texture2D(uPressure, clamp(vR,0.,1.)).x;
- float T = texture2D(uPressure, clamp(vT,0.,1.)).x;
- float B = texture2D(uPressure, clamp(vB,0.,1.)).x;
- float C = texture2D(uPressure, vUv).x;
- float divergence = texture2D(uDivergence, vUv).x;
- float pressure = (L + R + B + T - divergence) * 0.25;
- gl_FragColor = vec4(pressure, 0.0, 0.0, 1.0);
-}`;
-const ut = ({ onBeforeInit: e }) => y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uPressure: { value: null },
- uDivergence: { value: null },
- texelSize: { value: new o.Vector2() }
- },
- vertexShader: J,
- fragmentShader: it
- },
- e
- ),
- ...I
-}), [e]);
-var st = `precision highp float;
-
-varying vec2 vUv;
-varying vec2 vL;
-varying vec2 vR;
-varying vec2 vT;
-varying vec2 vB;
-uniform sampler2D uVelocity;
-
-void main () {
- float L = texture2D(uVelocity, vL).y;
- float R = texture2D(uVelocity, vR).y;
- float T = texture2D(uVelocity, vT).x;
- float B = texture2D(uVelocity, vB).x;
- float vorticity = R - L - T + B;
- gl_FragColor = vec4(vorticity, 0.0, 0.0, 1.0);
-}`;
-const lt = ({ onBeforeInit: e }) => y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uVelocity: { value: null },
- texelSize: { value: new o.Vector2() }
- },
- vertexShader: J,
- fragmentShader: st
- },
- e
- ),
- ...I
-}), [e]);
-var ct = `precision highp float;
-
-varying vec2 vUv;
-varying vec2 vT;
-varying vec2 vB;
-uniform sampler2D uVelocity;
-uniform sampler2D uCurl;
-uniform float curl;
-uniform float dt;
-
-void main () {
- float T = texture2D(uCurl, vT).x;
- float B = texture2D(uCurl, vB).x;
- float C = texture2D(uCurl, vUv).x;
- vec2 force = vec2(abs(T) - abs(B), 0.0);
- force *= 1.0 / length(force + 0.00001) * curl * C;
- vec2 vel = texture2D(uVelocity, vUv).xy;
- gl_FragColor = vec4(vel + force * dt, 0.0, 1.0);
-}`;
-const vt = ({ onBeforeInit: e }) => y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uVelocity: { value: null },
- uCurl: { value: null },
- curl: { value: 0 },
- dt: { value: Ae },
- texelSize: { value: new o.Vector2() }
- },
- vertexShader: J,
- fragmentShader: ct
- },
- e
- ),
- ...I
-}), [e]);
-var mt = `precision highp float;
-
-varying vec2 vUv;
-uniform sampler2D uTexture;
-uniform float value;
-
-void main () {
- gl_FragColor = value * texture2D(uTexture, vUv);
-}`;
-const pt = ({ onBeforeInit: e }) => y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uTexture: { value: w },
- value: { value: 0 },
- texelSize: { value: new o.Vector2() }
- },
- vertexShader: J,
- fragmentShader: mt
- },
- e
- ),
- ...I
-}), [e]);
-var dt = `precision highp float;
-
-varying vec2 vUv;
-varying vec2 vL;
-varying vec2 vR;
-varying vec2 vT;
-varying vec2 vB;
-uniform sampler2D uPressure;
-uniform sampler2D uVelocity;
-
-void main () {
- float L = texture2D(uPressure, clamp(vL,0.,1.)).x;
- float R = texture2D(uPressure, clamp(vR,0.,1.)).x;
- float T = texture2D(uPressure, clamp(vT,0.,1.)).x;
- float B = texture2D(uPressure, clamp(vB,0.,1.)).x;
- vec2 velocity = texture2D(uVelocity, vUv).xy;
- velocity.xy -= vec2(R - L, T - B);
- gl_FragColor = vec4(velocity, 0.0, 1.0);
-}`;
-const ft = ({
- onBeforeInit: e
-}) => y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uPressure: { value: w },
- uVelocity: { value: w },
- texelSize: { value: new o.Vector2() }
- },
- vertexShader: J,
- fragmentShader: dt
- },
- e
- ),
- ...I
-}), [e]);
-var gt = `precision highp float;
-
-varying vec2 vUv;
-uniform sampler2D uTarget;
-uniform float aspectRatio;
-uniform vec3 color;
-uniform vec2 point;
-uniform float radius;
-
-void main () {
- vec2 nPoint = (point + vec2(1.0)) * 0.5;
- vec2 p = vUv - nPoint.xy;
- p.x *= aspectRatio;
- vec3 splat = exp(-dot(p, p) / radius) * color;
- vec3 base = texture2D(uTarget, vUv).xyz;
- gl_FragColor = vec4(base + splat, 1.0);
-}`;
-const ht = ({ onBeforeInit: e }) => y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uTarget: { value: w },
- aspectRatio: { value: 0 },
- color: { value: new o.Vector3() },
- point: { value: new o.Vector2() },
- radius: { value: 0 },
- texelSize: { value: new o.Vector2() }
- },
- vertexShader: J,
- fragmentShader: gt
- },
- e
- ),
- ...I
-}), [e]), X = (e, t) => e(t ?? {}), xt = ({
- scene: e,
- size: t,
- dpr: n,
- customFluidProps: r
-}) => {
- const s = y(() => new o.PlaneGeometry(2, 2), []), {
- curl: l,
- vorticity: c,
- advection: i,
- divergence: d,
- pressure: p,
- clear: f,
- gradientSubtract: x,
- splat: a
- } = r ?? {}, v = X(tt), u = v.clone(), m = X(lt, l), h = X(vt, c), M = X(rt, i), b = X(
- at,
- d
- ), g = X(ut, p), S = X(pt, f), C = X(
- ft,
- x
- ), T = X(ht, a), A = y(
- () => ({
- vorticityMaterial: h,
- curlMaterial: m,
- advectionMaterial: M,
- divergenceMaterial: b,
- pressureMaterial: g,
- clearMaterial: S,
- gradientSubtractMaterial: C,
- splatMaterial: T
- }),
- [
- h,
- m,
- M,
- b,
- g,
- S,
- C,
- T
- ]
- ), z = K(t, n);
- y(() => {
- R(A.splatMaterial)(
- "aspectRatio",
- z.x / z.y
- );
- for (const D of Object.values(A))
- R(D)(
- "texelSize",
- new o.Vector2(1 / z.x, 1 / z.y)
- );
- }, [z, A]);
- const P = E(e, s, v, o.Mesh);
- y(() => {
- v.dispose(), P.material = u;
- }, [v, P, u]), Z(() => () => {
- for (const D of Object.values(A))
- D.dispose();
- }, [A]);
- const q = _(
- (D) => {
- P.material = D, P.material.needsUpdate = !0;
- },
- [P]
- );
- return { materials: A, setMeshMaterial: q, mesh: P };
-}, Ae = 0.016, yt = Object.freeze({
- densityDissipation: 0.98,
- velocityDissipation: 0.99,
- velocityAcceleration: 10,
- pressureDissipation: 0.9,
- pressureIterations: 20,
- curlStrength: 35,
- splatRadius: 2e-3,
- fluidColor: new o.Vector3(1, 1, 1),
- pointerValues: !1
-}), er = ({
- size: e,
- dpr: t,
- renderTargetOptions: n,
- isSizeUpdate: r,
- customFluidProps: s
-}) => {
- const l = U(t), c = y(() => new o.Scene(), []), { materials: i, setMeshMaterial: d, mesh: p } = xt({
- scene: c,
- size: e,
- dpr: l.shader,
- customFluidProps: s
- }), f = L(e), x = Se(), a = y(
- () => ({
- scene: c,
- camera: f,
- dpr: l.fbo,
- size: e,
- isSizeUpdate: r,
- type: o.HalfFloatType,
- ...n
- }),
- [c, f, e, l.fbo, r, n]
- ), [v, u] = se(a), [m, h] = se(a), [M, b] = $(a), [g, S] = $(a), [C, T] = se(a), A = B(new o.Vector2(0, 0)), z = B(new o.Vector3(0, 0, 0)), [P, q] = j(yt), D = y(
- () => ({
- advection: R(i.advectionMaterial),
- splat: R(i.splatMaterial),
- curl: R(i.curlMaterial),
- vorticity: R(i.vorticityMaterial),
- divergence: R(i.divergenceMaterial),
- clear: R(i.clearMaterial),
- pressure: R(i.pressureMaterial),
- gradientSubtract: R(i.gradientSubtractMaterial)
- }),
- [i]
- ), k = y(
- () => ({
- advection: F(i.advectionMaterial),
- splat: F(i.splatMaterial),
- curl: F(i.curlMaterial),
- vorticity: F(i.vorticityMaterial),
- divergence: F(i.divergenceMaterial),
- clear: F(i.clearMaterial),
- pressure: F(i.pressureMaterial),
- gradientSubtract: F(i.gradientSubtractMaterial)
- }),
- [i]
- ), H = _(
- (te, ne) => {
- q(te), ne && Object.keys(ne).forEach((ie) => {
- k[ie](
- ne[ie]
- );
- });
- },
- [q, k]
- );
- return [
- _(
- (te, ne, ie) => {
- const { gl: G, pointer: Ie, size: Ce } = te;
- H(ne, ie);
- const xe = u(G, ({ read: N }) => {
- d(i.advectionMaterial), D.advection("uVelocity", N), D.advection("uSource", N), D.advection(
- "dissipation",
- P.velocityDissipation
- );
- }), ze = h(G, ({ read: N }) => {
- d(i.advectionMaterial), D.advection("uVelocity", xe), D.advection("uSource", N), D.advection(
- "dissipation",
- P.densityDissipation
- );
- }), pe = P.pointerValues || x(Ie);
- pe.isVelocityUpdate && (u(G, ({ read: N }) => {
- d(i.splatMaterial), D.splat("uTarget", N), D.splat("point", pe.currentPointer);
- const le = pe.diffPointer.multiply(
- A.current.set(Ce.width, Ce.height).multiplyScalar(P.velocityAcceleration)
- );
- D.splat(
- "color",
- z.current.set(le.x, le.y, 1)
- ), D.splat("radius", P.splatRadius);
- }), h(G, ({ read: N }) => {
- d(i.splatMaterial), D.splat("uTarget", N);
- const le = typeof P.fluidColor == "function" ? P.fluidColor(pe.velocity) : P.fluidColor;
- D.splat("color", le);
- }));
- const Ue = b(G, () => {
- d(i.curlMaterial), D.curl("uVelocity", xe);
- });
- u(G, ({ read: N }) => {
- d(i.vorticityMaterial), D.vorticity("uVelocity", N), D.vorticity("uCurl", Ue), D.vorticity("curl", P.curlStrength);
- });
- const Oe = S(G, () => {
- d(i.divergenceMaterial), D.divergence("uVelocity", xe);
- });
- T(G, ({ read: N }) => {
- d(i.clearMaterial), D.clear("uTexture", N), D.clear("value", P.pressureDissipation);
- }), d(i.pressureMaterial), D.pressure("uDivergence", Oe);
- let we;
- for (let N = 0; N < P.pressureIterations; N++)
- we = T(G, ({ read: le }) => {
- D.pressure("uPressure", le);
- });
- return u(G, ({ read: N }) => {
- d(i.gradientSubtractMaterial), D.gradientSubtract("uPressure", we), D.gradientSubtract("uVelocity", N);
- }), ze;
- },
- [
- i,
- D,
- d,
- b,
- h,
- S,
- x,
- T,
- u,
- P,
- H
- ]
- ),
- H,
- {
- scene: c,
- mesh: p,
- materials: i,
- camera: f,
- renderTarget: {
- velocity: v,
- density: m,
- curl: M,
- divergence: g,
- pressure: C
- },
- output: m.read.texture
- }
- ];
-};
-var bt = "#usf ", Mt = `precision highp float;
-
-uniform sampler2D uMap;
-uniform float uOpacity;
-
-varying vec2 vUv;
-
-void main() {
- vec2 uv = vUv;
- vec3 color = texture2D(uMap, uv).rgb;
- gl_FragColor = vec4(color,uOpacity);
-}`;
-const St = ({
- scale: e,
- max: t,
- texture: n,
- scene: r,
- onBeforeInit: s
-}) => {
- const l = y(
- () => new o.PlaneGeometry(e, e),
- [e]
- ), c = y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uOpacity: { value: 0 },
- uMap: { value: n || w }
- },
- vertexShader: bt,
- fragmentShader: Mt
- },
- s
- ),
- blending: o.AdditiveBlending,
- ...I,
- // Must be transparent.
- transparent: !0
- }), [n, s]), i = y(() => {
- const d = [];
- for (let p = 0; p < t; p++) {
- const f = c.clone(), x = new o.Mesh(l.clone(), f);
- x.rotateZ(2 * Math.PI * Math.random()), x.visible = !1, r.add(x), d.push(x);
- }
- return d;
- }, [l, c, r, t]);
- return Z(() => () => {
- i.forEach((d) => {
- d.geometry.dispose(), Array.isArray(d.material) ? d.material.forEach((p) => p.dispose()) : d.material.dispose(), r.remove(d);
- });
- }, [r, i]), i;
-}, _t = Object.freeze({
- frequency: 0.01,
- rotation: 0.05,
- fadeoutSpeed: 0.9,
- scale: 0.3,
- alpha: 0.6,
- pointerValues: !1
-}), tr = ({
- texture: e,
- scale: t = 64,
- max: n = 100,
- size: r,
- dpr: s,
- renderTargetOptions: l,
- isSizeUpdate: c,
- onBeforeInit: i
-}) => {
- const d = U(s), p = y(() => new o.Scene(), []), f = St({
- scale: t,
- max: n,
- texture: e,
- scene: p,
- onBeforeInit: i
- }), x = L(r), a = Se(), [v, u] = $({
- scene: p,
- camera: x,
- size: r,
- dpr: d.fbo,
- isSizeUpdate: c,
- ...l
- }), [m, h] = j(_t), M = B(0), b = y(() => (S, C) => {
- h(S), f.forEach((T) => {
- if (T.visible) {
- const A = T.material;
- T.rotation.z += m.rotation, T.scale.x = m.fadeoutSpeed * T.scale.x + m.scale, T.scale.y = T.scale.x;
- const z = A.uniforms.uOpacity.value;
- R(A)("uOpacity", z * m.fadeoutSpeed), z < 1e-3 && (T.visible = !1);
- }
- F(T.material)(C);
- });
- }, [f, m, h]);
- return [
- _(
- (S, C, T) => {
- const { gl: A, pointer: z, size: P } = S;
- b(C, T);
- const q = m.pointerValues || a(z);
- if (m.frequency < q.diffPointer.length()) {
- const D = f[M.current], k = D.material;
- D.visible = !0, D.position.set(
- q.currentPointer.x * (P.width / 2),
- q.currentPointer.y * (P.height / 2),
- 0
- ), D.scale.x = D.scale.y = 0, R(k)("uOpacity", m.alpha), M.current = (M.current + 1) % n;
- }
- return u(A);
- },
- [u, f, a, n, m, b]
- ),
- b,
- {
- scene: p,
- camera: x,
- meshArr: f,
- renderTarget: v,
- output: v.texture
- }
- ];
-};
-var Ct = "#usf ", wt = `precision highp float;
-precision highp int;
-
-varying vec2 vUv;
-uniform float uTime;
-uniform float timeStrength;
-uniform int noiseOctaves;
-uniform int fbmOctaves;
-uniform int warpOctaves;
-uniform vec2 warpDirection;
-uniform float warpStrength;
-uniform float scale;
-
-const float per = 0.5;
-const float PI = 3.14159265359;
-
-float rnd(vec2 n) {
- float a = 0.129898;
- float b = 0.78233;
- float c = 437.585453;
- float dt= dot(n ,vec2(a, b));
- float sn= mod(dt, PI);
- return fract(sin(sn) * c);
-}
-
-float interpolate(float a, float b, float x){
- float f = (1.0 - cos(x * PI)) * 0.5;
- return a * (1.0 - f) + b * f;
-}
-
-float irnd(vec2 p){
- vec2 i = floor(p);
- vec2 f = fract(p);
- vec4 v = vec4(rnd(vec2(i.x,i.y)),rnd(vec2(i.x + 1.0,i.y)),rnd(vec2(i.x,i.y + 1.0)),rnd(vec2(i.x + 1.0, i.y + 1.0)));
- return interpolate(interpolate(v.x, v.y, f.x), interpolate(v.z, v.w, f.x), f.y);
-}
-
-float noise(vec2 p, float time){
- float t = 0.0;
- for(int i = 0; i < noiseOctaves; i++){
- float freq = pow(2.0, float(i));
- float amp = pow(per, float(noiseOctaves - i));
- t += irnd(vec2(p.y / freq + time, p.x / freq + time)) * amp;
- }
- return t;
-}
-
-float fbm(vec2 x, float time) {
- float v = 0.0;
- float a = 0.5;
- vec2 shift = vec2(100);
- mat2 rot = mat2(cos(0.5), sin(0.5), -sin(0.5), cos(0.5));
- float sign = 1.0;
- for (int i = 0; i < fbmOctaves; ++i) {
- v += a * noise(x, time * sign);
- x = rot * x * 2.0 + shift;
- a *= 0.5;
- sign *= -1.0;
- }
- return v;
-}
-
-float warp(vec2 x, float g,float time){
- float val = 0.0;
- for (int i = 0; i < warpOctaves; i++){
- val = fbm(x + g * vec2(cos(warpDirection.x * val), sin(warpDirection.y * val)), time);
- }
- return val;
-}
-
-void main() {
- float noise = warp(gl_FragCoord.xy * scale ,warpStrength,uTime * timeStrength);
- gl_FragColor = vec4(vec3(noise),1.0);
-}`;
-const Tt = ({
- scene: e,
- onBeforeInit: t
-}) => {
- const n = y(() => new o.PlaneGeometry(2, 2), []), r = y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uTime: { value: 0 },
- scale: { value: oe.scale },
- timeStrength: { value: oe.timeStrength },
- noiseOctaves: { value: oe.noiseOctaves },
- fbmOctaves: { value: oe.fbmOctaves },
- warpOctaves: { value: oe.warpOctaves },
- warpDirection: { value: oe.warpDirection },
- warpStrength: { value: oe.warpStrength }
- },
- vertexShader: Ct,
- fragmentShader: wt
- },
- t
- ),
- ...I
- }), [t]), s = E(e, n, r, o.Mesh);
- return { material: r, mesh: s };
-}, oe = Object.freeze({
- scale: 4e-3,
- timeStrength: 0.3,
- noiseOctaves: 2,
- fbmOctaves: 2,
- warpOctaves: 2,
- warpDirection: new o.Vector2(2, 2),
- warpStrength: 8,
- beat: !1
-}), nr = ({
- size: e,
- dpr: t,
- renderTargetOptions: n,
- isSizeUpdate: r,
- onBeforeInit: s
-}) => {
- const l = U(t), c = y(() => new o.Scene(), []), { material: i, mesh: d } = Tt({ scene: c, onBeforeInit: s }), p = L(e), [f, x] = $({
- scene: c,
- camera: p,
- size: e,
- dpr: l.fbo,
- isSizeUpdate: r,
- ...n
- }), [a, v] = j(oe), u = R(i), m = F(i), h = _(
- (b, g) => {
- v(b), m(g);
- },
- [v, m]
- );
- return [
- _(
- (b, g, S) => {
- const { gl: C, clock: T } = b;
- return h(g, S), u("scale", a.scale), u("timeStrength", a.timeStrength), u("noiseOctaves", a.noiseOctaves), u("fbmOctaves", a.fbmOctaves), u("warpOctaves", a.warpOctaves), u("warpDirection", a.warpDirection), u("warpStrength", a.warpStrength), u("uTime", a.beat || T.getElapsedTime()), x(C);
- },
- [x, u, a, h]
- ),
- h,
- {
- scene: c,
- mesh: d,
- material: i,
- camera: p,
- renderTarget: f,
- output: f.texture
- }
- ];
-};
-var Dt = "#usf ", Pt = `precision highp float;
-varying vec2 vUv;
-
-uniform sampler2D uTexture;
-uniform bool isTexture;
-uniform sampler2D noise;
-uniform bool isNoise;
-uniform vec2 noiseStrength;
-uniform float laminateLayer;
-uniform vec2 laminateInterval;
-uniform vec2 laminateDetail;
-uniform vec2 distortion;
-uniform vec3 colorFactor;
-uniform float uTime;
-uniform vec2 timeStrength;
-uniform float scale;
-
-void main() {
- vec2 uv = vUv;
-
- vec2 pos = isTexture ? texture2D(uTexture, uv).rg : uv * scale;
- vec2 noise = isNoise ? texture2D(noise, uv).rg : vec2(0.0);
- float alpha = isTexture ? texture2D(uTexture, uv).a : 1.0;
-
-
- alpha = (alpha < 1e-10) ? 0.0 : alpha;
-
- vec3 col;
- for(float j = 0.0; j < 3.0; j++){
- for(float i = 1.0; i < laminateLayer; i++){
- float timeNoiseSin = sin(uTime / (i + j)) * timeStrength.x + noise.r * noiseStrength.x;
- float timeNoiseCos = cos(uTime / (i + j)) * timeStrength.y + noise.g * noiseStrength.y;
- pos.x += laminateInterval.x / (i + j) * cos(i * distortion.x * pos.y + timeNoiseSin + sin(i + j));
- pos.y += laminateInterval.y / (i + j) * cos(i * distortion.y * pos.x + timeNoiseCos + sin(i + j));
- }
- col[int(j)] = sin(pow(pos.x, 2.) * pow(laminateDetail.x, 2.)) + sin(pow(pos.y, 2.) * pow(laminateDetail.y, 2.));
- }
-
- col *= colorFactor * alpha;
- col = clamp(col, 0.0, 1.0);
-
- gl_FragColor = vec4(col, alpha);
-}`;
-const Rt = ({
- scene: e,
- onBeforeInit: t
-}) => {
- const n = y(() => new o.PlaneGeometry(2, 2), []), r = y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uTexture: { value: w },
- isTexture: { value: !1 },
- scale: { value: Y.scale },
- noise: { value: w },
- noiseStrength: { value: Y.noiseStrength },
- isNoise: { value: !1 },
- laminateLayer: { value: Y.laminateLayer },
- laminateInterval: {
- value: Y.laminateInterval
- },
- laminateDetail: { value: Y.laminateDetail },
- distortion: { value: Y.distortion },
- colorFactor: { value: Y.colorFactor },
- uTime: { value: 0 },
- timeStrength: { value: Y.timeStrength }
- },
- vertexShader: Dt,
- fragmentShader: Pt
- },
- t
- ),
- ...I
- }), [t]), s = E(e, n, r, o.Mesh);
- return { material: r, mesh: s };
-}, Y = Object.freeze({
- texture: !1,
- scale: 1,
- laminateLayer: 1,
- laminateInterval: new o.Vector2(0.1, 0.1),
- laminateDetail: new o.Vector2(1, 1),
- distortion: new o.Vector2(0, 0),
- colorFactor: new o.Vector3(1, 1, 1),
- timeStrength: new o.Vector2(0, 0),
- noise: !1,
- noiseStrength: new o.Vector2(0, 0),
- beat: !1
-}), rr = ({
- size: e,
- dpr: t,
- renderTargetOptions: n,
- isSizeUpdate: r,
- onBeforeInit: s
-}) => {
- const l = U(t), c = y(() => new o.Scene(), []), { material: i, mesh: d } = Rt({ scene: c, onBeforeInit: s }), p = L(e), [f, x] = $({
- scene: c,
- camera: p,
- size: e,
- dpr: l.fbo,
- isSizeUpdate: r,
- ...n
- }), [a, v] = j(Y), u = R(i), m = F(i), h = _(
- (b, g) => {
- v(b), m(g);
- },
- [v, m]
- );
- return [
- _(
- (b, g, S) => {
- const { gl: C, clock: T } = b;
- return h(g, S), a.texture ? (u("uTexture", a.texture), u("isTexture", !0)) : (u("isTexture", !1), u("scale", a.scale)), a.noise ? (u("noise", a.noise), u("isNoise", !0), u("noiseStrength", a.noiseStrength)) : u("isNoise", !1), u("uTime", a.beat || T.getElapsedTime()), u("laminateLayer", a.laminateLayer), u("laminateInterval", a.laminateInterval), u("laminateDetail", a.laminateDetail), u("distortion", a.distortion), u("colorFactor", a.colorFactor), u("timeStrength", a.timeStrength), x(C);
- },
- [x, u, a, h]
- ),
- h,
- {
- scene: c,
- mesh: d,
- material: i,
- camera: p,
- renderTarget: f,
- output: f.texture
- }
- ];
-};
-var At = "#usf ", Vt = `precision highp float;
-
-varying vec2 vUv;
-uniform float u_time;
-uniform float u_pattern;
-uniform float u_complexity;
-uniform float u_complexityAttenuation;
-uniform float u_iterations;
-uniform float u_timeStrength;
-uniform float u_scale;
-
-vec3 marble(vec3 p){
- vec4 n;
- for(float i;i {
- const n = y(() => new o.PlaneGeometry(2, 2), []), r = y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- u_time: { value: 0 },
- u_pattern: { value: ue.pattern },
- u_complexity: { value: ue.complexity },
- u_complexityAttenuation: {
- value: ue.complexityAttenuation
- },
- u_iterations: { value: ue.iterations },
- u_timeStrength: { value: ue.timeStrength },
- u_scale: { value: ue.scale }
- },
- vertexShader: At,
- fragmentShader: Vt
- },
- t
- ),
- ...I
- }), [t]), s = E(e, n, r, o.Mesh);
- return { material: r, mesh: s };
-}, ue = Object.freeze({
- pattern: 0,
- complexity: 2,
- complexityAttenuation: 0.2,
- iterations: 8,
- timeStrength: 0.2,
- scale: 2e-3,
- beat: !1
-}), or = ({
- size: e,
- dpr: t,
- renderTargetOptions: n,
- isSizeUpdate: r,
- onBeforeInit: s
-}) => {
- const l = U(t), c = y(() => new o.Scene(), []), { material: i, mesh: d } = Ft({ scene: c, onBeforeInit: s }), p = L(e), [f, x] = $({
- scene: c,
- camera: p,
- size: e,
- dpr: l.fbo,
- isSizeUpdate: r,
- ...n
- }), [a, v] = j(ue), u = R(i), m = F(i), h = _(
- (b, g) => {
- v(b), m(g);
- },
- [v, m]
- );
- return [
- _(
- (b, g, S) => {
- const { gl: C, clock: T } = b;
- return h(g, S), u("u_pattern", a.pattern), u("u_complexity", a.complexity), u("u_complexityAttenuation", a.complexityAttenuation), u("u_iterations", a.iterations), u("u_timeStrength", a.timeStrength), u("u_scale", a.scale), u("u_time", a.beat || T.getElapsedTime()), x(C);
- },
- [x, u, a, h]
- ),
- h,
- {
- scene: c,
- mesh: d,
- material: i,
- camera: p,
- renderTarget: f,
- output: f.texture
- }
- ];
-};
-var It = "#usf ", zt = `precision highp float;
-precision highp int;
-
-varying vec2 vUv;
-uniform sampler2D uTexture;
-uniform vec3 uColor1;
-uniform vec3 uColor2;
-uniform vec3 uColor3;
-uniform vec3 uColor4;
-uniform vec3 uRgbWeight;
-
-vec3 cosPalette( float t, vec3 color1, vec3 color2, vec3 color3, vec3 color4 ){
- return color1 + color2 * cos( 6.28318 * ( color3 * t + color4) );
-}
-
-void main() {
-
- vec4 tex = texture2D(uTexture, vUv);
- float gray = dot(tex.rgb, uRgbWeight);
-
- vec3 outColor = cosPalette(
- gray,
- uColor1,
- uColor2,
- uColor3,
- uColor4
- );
-
- gl_FragColor = vec4(outColor, tex.a);
-}`;
-const Ut = ({
- scene: e,
- onBeforeInit: t
-}) => {
- const n = y(() => new o.PlaneGeometry(2, 2), []), r = y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uTexture: { value: w },
- uRgbWeight: { value: ce.rgbWeight },
- uColor1: { value: ce.color1 },
- uColor2: { value: ce.color2 },
- uColor3: { value: ce.color3 },
- uColor4: { value: ce.color4 }
- },
- vertexShader: It,
- fragmentShader: zt
- },
- t
- ),
- ...I
- }), [t]), s = E(e, n, r, o.Mesh);
- return { material: r, mesh: s };
-}, ce = Object.freeze({
- texture: w,
- color1: new o.Color().set(0.5, 0.5, 0.5),
- color2: new o.Color().set(0.5, 0.5, 0.5),
- color3: new o.Color().set(1, 1, 1),
- color4: new o.Color().set(0, 0.1, 0.2),
- rgbWeight: new o.Vector3(0.299, 0.587, 0.114)
-}), ar = ({
- size: e,
- dpr: t,
- renderTargetOptions: n,
- isSizeUpdate: r,
- onBeforeInit: s
-}) => {
- const l = U(t), c = y(() => new o.Scene(), []), { material: i, mesh: d } = Ut({ scene: c, onBeforeInit: s }), p = L(e), [f, x] = $({
- scene: c,
- camera: p,
- size: e,
- dpr: l.fbo,
- isSizeUpdate: r,
- ...n
- }), [a, v] = j(ce), u = R(i), m = F(i), h = _(
- (b, g) => {
- v(b), m(g);
- },
- [v, m]
- );
- return [
- _(
- (b, g, S) => {
- const { gl: C } = b;
- return h(g, S), u("uTexture", a.texture), u("uColor1", a.color1), u("uColor2", a.color2), u("uColor3", a.color3), u("uColor4", a.color4), u("uRgbWeight", a.rgbWeight), x(C);
- },
- [x, u, a, h]
- ),
- h,
- {
- scene: c,
- mesh: d,
- material: i,
- camera: p,
- renderTarget: f,
- output: f.texture
- }
- ];
-};
-var Ot = "#usf ", Bt = `precision highp float;
-
-varying vec2 vUv;
-uniform sampler2D uTexture;
-
-uniform vec3 uColor0;
-uniform vec3 uColor1;
-
-void main() {
- vec2 uv = vUv;
- vec4 texColor = texture2D(uTexture, uv);
- float grayscale = dot(texColor.rgb, vec3(0.299, 0.587, 0.114));
- vec3 duotone = mix(uColor0, uColor1, grayscale);
- gl_FragColor = vec4(duotone, texColor.a);
-}`;
-const Et = ({
- scene: e,
- onBeforeInit: t
-}) => {
- const n = y(() => new o.PlaneGeometry(2, 2), []), r = y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uTexture: { value: w },
- uColor0: { value: be.color0 },
- uColor1: { value: be.color1 }
- },
- vertexShader: Ot,
- fragmentShader: Bt
- },
- t
- ),
- ...I
- }), [t]), s = E(e, n, r, o.Mesh);
- return { material: r, mesh: s };
-}, be = Object.freeze({
- texture: w,
- color0: new o.Color(16777215),
- color1: new o.Color(0)
-}), ir = ({
- size: e,
- dpr: t,
- renderTargetOptions: n,
- isSizeUpdate: r,
- onBeforeInit: s
-}) => {
- const l = U(t), c = y(() => new o.Scene(), []), { material: i, mesh: d } = Et({ scene: c, onBeforeInit: s }), p = L(e), [f, x] = $({
- scene: c,
- camera: p,
- size: e,
- dpr: l.fbo,
- isSizeUpdate: r,
- ...n
- }), [a, v] = j(be), u = R(i), m = F(i), h = _(
- (b, g) => {
- v(b), m(g);
- },
- [v, m]
- );
- return [
- _(
- (b, g, S) => {
- const { gl: C } = b;
- return h(g, S), u("uTexture", a.texture), u("uColor0", a.color0), u("uColor1", a.color1), x(C);
- },
- [x, u, a, h]
- ),
- h,
- {
- scene: c,
- mesh: d,
- material: i,
- camera: p,
- renderTarget: f,
- output: f.texture
- }
- ];
-};
-var Lt = "#usf ", $t = `precision highp float;
-
-varying vec2 vUv;
-uniform sampler2D u_texture;
-uniform sampler2D uMap;
-uniform bool u_isAlphaMap;
-uniform sampler2D u_alphaMap;
-uniform float uMapIntensity;
-uniform vec3 u_brightness;
-uniform float u_min;
-uniform float u_max;
-uniform vec3 u_dodgeColor;
-uniform bool u_isDodgeColor;
-
-void main() {
- vec2 uv = vUv;
-
- #usf
-
-
- float brightness = dot(mapColor,u_brightness);
- vec4 textureMap = texture2D(u_texture, uv);
- float blendValue = smoothstep(u_min, u_max, brightness);
-
-
- vec3 dodgeColor = u_isDodgeColor ? u_dodgeColor : mapColor;
- vec3 outputColor = blendValue * dodgeColor + (1.0 - blendValue) * textureMap.rgb;
-
-
- float alpha = u_isAlphaMap ? texture2D(u_alphaMap, uv).a : textureMap.a;
- float mixValue = u_isAlphaMap ? alpha : 0.0;
- vec3 alphaColor = vec3(mix(outputColor,mapColor,mixValue));
-
- gl_FragColor = vec4(alphaColor,alpha);
-}`;
-const jt = ({
- scene: e,
- onBeforeInit: t
-}) => {
- const n = y(() => new o.PlaneGeometry(2, 2), []), r = y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- u_texture: { value: w },
- uMap: { value: w },
- u_alphaMap: { value: w },
- u_isAlphaMap: { value: !1 },
- uMapIntensity: { value: ve.mapIntensity },
- u_brightness: { value: ve.brightness },
- u_min: { value: ve.min },
- u_max: { value: ve.max },
- u_dodgeColor: { value: new o.Color() },
- u_isDodgeColor: { value: !1 }
- },
- vertexShader: Lt,
- fragmentShader: $t
- },
- t
- ),
- ...I
- }), [t]), s = E(e, n, r, o.Mesh);
- return { material: r, mesh: s };
-}, ve = Object.freeze({
- texture: w,
- map: w,
- alphaMap: !1,
- mapIntensity: 0.3,
- brightness: new o.Vector3(0.5, 0.5, 0.5),
- min: 0,
- max: 1,
- dodgeColor: !1
-}), ur = ({
- size: e,
- dpr: t,
- renderTargetOptions: n,
- isSizeUpdate: r,
- onBeforeInit: s
-}) => {
- const l = U(t), c = y(() => new o.Scene(), []), { material: i, mesh: d } = jt({ scene: c, onBeforeInit: s }), p = L(e), [f, x] = $({
- scene: c,
- camera: p,
- size: e,
- dpr: l.fbo,
- isSizeUpdate: r,
- ...n
- }), [a, v] = j(ve), u = R(i), m = F(i), h = _(
- (b, g) => {
- v(b), m(g);
- },
- [v, m]
- );
- return [
- _(
- (b, g, S) => {
- const { gl: C } = b;
- return h(g, S), u("u_texture", a.texture), u("uMap", a.map), u("uMapIntensity", a.mapIntensity), a.alphaMap ? (u("u_alphaMap", a.alphaMap), u("u_isAlphaMap", !0)) : u("u_isAlphaMap", !1), u("u_brightness", a.brightness), u("u_min", a.min), u("u_max", a.max), a.dodgeColor ? (u("u_dodgeColor", a.dodgeColor), u("u_isDodgeColor", !0)) : u("u_isDodgeColor", !1), x(C);
- },
- [x, u, a, h]
- ),
- h,
- {
- scene: c,
- mesh: d,
- material: i,
- camera: p,
- renderTarget: f,
- output: f.texture
- }
- ];
-};
-var qt = "#usf ", Wt = `precision highp float;
-
-varying vec2 vUv;
-uniform vec2 uResolution;
-uniform vec2 uTextureResolution;
-uniform sampler2D uTexture0;
-uniform sampler2D uTexture1;
-uniform sampler2D uMap;
-uniform float mapIntensity;
-uniform float edgeIntensity;
-uniform float progress;
-uniform float dirX;
-uniform float dirY;
-uniform vec2 epicenter;
-uniform float padding;
-
-bool isInPaddingArea(vec2 uv) {
- return uv.x < padding || uv.x > 1.0 - padding || uv.y < padding || uv.y > 1.0 - padding;
-}
-
-void main() {
- #usf
-
-
- vec2 map = texture2D(uMap, uv).rg;
- vec2 normalizedMap = map * 2.0 - 1.0;
-
-
- uv = uv * 2.0 - 1.0;
- uv *= map * distance(epicenter, uv) * edgeIntensity + 1.0;
- uv = (uv + 1.0) / 2.0;
-
-
- if (isInPaddingArea(uv)) {
- gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
- return;
- }
- vec2 paddedUV = uv * (1.0 - 2.0 * padding * -1.) + padding * -1.;
-
-
- vec2 centeredUV = paddedUV - vec2(0.5);
-
-
- centeredUV *= normalizedMap * map * mapIntensity + 1.0;
-
-
- float xOffsetTexture0 = 0.5 - dirX * progress;
- float yOffsetTexture0 = 0.5 - dirY * progress;
- vec2 samplePosTexture0 = vec2(xOffsetTexture0, yOffsetTexture0) + centeredUV;
-
-
- float xOffsetTexture1 = 0.5 + dirX * (1.0 - progress);
- float yOffsetTexture1 = 0.5 + dirY * (1.0 - progress);
- vec2 samplePosTexture1 = vec2(xOffsetTexture1, yOffsetTexture1) + centeredUV;
-
- vec4 color0 = texture2D(uTexture0, samplePosTexture0);
- vec4 color1 = texture2D(uTexture1, samplePosTexture1);
-
- gl_FragColor = mix(color0, color1, progress);
-
-}`;
-const Nt = ({
- scene: e,
- size: t,
- dpr: n,
- onBeforeInit: r
-}) => {
- const s = y(() => new o.PlaneGeometry(2, 2), []), l = y(() => {
- var p, f;
- return new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uResolution: { value: new o.Vector2() },
- uTextureResolution: { value: new o.Vector2() },
- uTexture0: { value: w },
- uTexture1: { value: w },
- padding: { value: ae.padding },
- uMap: { value: w },
- edgeIntensity: { value: ae.edgeIntensity },
- mapIntensity: { value: ae.mapIntensity },
- epicenter: { value: ae.epicenter },
- progress: { value: ae.progress },
- dirX: { value: (p = ae.dir) == null ? void 0 : p.x },
- dirY: { value: (f = ae.dir) == null ? void 0 : f.y }
- },
- vertexShader: qt,
- fragmentShader: Wt
- },
- r
- ),
- ...I
- });
- }, [r]), c = K(t, n);
- R(l)("uResolution", c.clone());
- const i = E(e, s, l, o.Mesh);
- return { material: l, mesh: i };
-}, ae = Object.freeze({
- texture0: w,
- texture1: w,
- padding: 0,
- map: w,
- mapIntensity: 0,
- edgeIntensity: 0,
- epicenter: new o.Vector2(0, 0),
- progress: 0,
- dir: new o.Vector2(0, 0)
-}), sr = ({
- size: e,
- dpr: t,
- renderTargetOptions: n,
- isSizeUpdate: r,
- onBeforeInit: s
-}) => {
- const l = U(t), c = y(() => new o.Scene(), []), { material: i, mesh: d } = Nt({
- scene: c,
- size: e,
- dpr: l.shader,
- onBeforeInit: s
- }), p = L(e), [f, x] = $({
- scene: c,
- camera: p,
- dpr: l.fbo,
- size: e,
- isSizeUpdate: r,
- ...n
- }), [a, v] = j(ae), u = R(i), m = F(i), h = _(
- (b, g) => {
- v(b), m(g);
- },
- [v, m]
- );
- return [
- _(
- (b, g, S) => {
- var P, q, D, k, H, ee, te, ne;
- const { gl: C } = b;
- h(g, S), u("uTexture0", a.texture0), u("uTexture1", a.texture1), u("progress", a.progress);
- const T = [
- ((q = (P = a.texture0) == null ? void 0 : P.image) == null ? void 0 : q.width) || 0,
- ((k = (D = a.texture0) == null ? void 0 : D.image) == null ? void 0 : k.height) || 0
- ], A = [
- ((ee = (H = a.texture1) == null ? void 0 : H.image) == null ? void 0 : ee.width) || 0,
- ((ne = (te = a.texture1) == null ? void 0 : te.image) == null ? void 0 : ne.height) || 0
- ], z = T.map((ie, G) => ie + (A[G] - ie) * a.progress);
- return u("uTextureResolution", z), u("padding", a.padding), u("uMap", a.map), u("mapIntensity", a.mapIntensity), u("edgeIntensity", a.edgeIntensity), u("epicenter", a.epicenter), u("dirX", a.dir.x), u("dirY", a.dir.y), x(C);
- },
- [x, u, a, h]
- ),
- h,
- {
- scene: c,
- mesh: d,
- material: i,
- camera: p,
- renderTarget: f,
- output: f.texture
- }
- ];
-};
-var kt = "#usf ", Gt = `precision highp float;
-
-varying vec2 vUv;
-uniform sampler2D u_texture;
-uniform vec3 u_brightness;
-uniform float u_min;
-uniform float u_max;
-
-void main() {
- vec2 uv = vUv;
- vec3 color = texture2D(u_texture, uv).rgb;
- float brightness = dot(color,u_brightness);
- float alpha = clamp(smoothstep(u_min, u_max, brightness),0.0,1.0);
- gl_FragColor = vec4(color, alpha);
-}`;
-const Kt = ({
- scene: e,
- onBeforeInit: t
-}) => {
- const n = y(() => new o.PlaneGeometry(2, 2), []), r = y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- u_texture: { value: w },
- u_brightness: { value: de.brightness },
- u_min: { value: de.min },
- u_max: { value: de.max }
- },
- vertexShader: kt,
- fragmentShader: Gt
- },
- t
- ),
- ...I
- }), [t]), s = E(e, n, r, o.Mesh);
- return { material: r, mesh: s };
-}, de = Object.freeze({
- texture: w,
- brightness: new o.Vector3(0.5, 0.5, 0.5),
- min: 0,
- max: 1
-}), lr = ({
- size: e,
- dpr: t,
- renderTargetOptions: n,
- isSizeUpdate: r,
- onBeforeInit: s
-}) => {
- const l = U(t), c = y(() => new o.Scene(), []), { material: i, mesh: d } = Kt({ scene: c, onBeforeInit: s }), p = L(e), [f, x] = $({
- scene: c,
- camera: p,
- size: e,
- dpr: l.fbo,
- isSizeUpdate: r,
- ...n
- }), [a, v] = j(
- de
- ), u = R(i), m = F(i), h = _(
- (b, g) => {
- v(b), m(g);
- },
- [v, m]
- );
- return [
- _(
- (b, g, S) => {
- const { gl: C } = b;
- return h(g, S), u("u_texture", a.texture), u("u_brightness", a.brightness), u("u_min", a.min), u("u_max", a.max), x(C);
- },
- [x, u, a, h]
- ),
- h,
- {
- scene: c,
- mesh: d,
- material: i,
- camera: p,
- renderTarget: f,
- output: f.texture
- }
- ];
-};
-var Ht = "#usf ", Xt = `precision highp float;
-
-varying vec2 vUv;
-uniform sampler2D u_texture;
-uniform sampler2D uMap;
-uniform float uMapIntensity;
-
-void main() {
- vec2 uv = vUv;
-
- #usf
-
- gl_FragColor = texture2D(u_texture, uv);
-}`;
-const Yt = ({
- scene: e,
- onBeforeInit: t
-}) => {
- const n = y(() => new o.PlaneGeometry(2, 2), []), r = y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- u_texture: { value: w },
- uMap: { value: w },
- uMapIntensity: { value: Ve.mapIntensity }
- },
- vertexShader: Ht,
- fragmentShader: Xt
- },
- t
- ),
- ...I
- }), [t]), s = E(e, n, r, o.Mesh);
- return { material: r, mesh: s };
-}, Ve = Object.freeze({
- texture: w,
- map: w,
- mapIntensity: 0.3
-}), cr = ({
- size: e,
- dpr: t,
- renderTargetOptions: n,
- isSizeUpdate: r,
- onBeforeInit: s
-}) => {
- const l = U(t), c = y(() => new o.Scene(), []), { material: i, mesh: d } = Yt({ scene: c, onBeforeInit: s }), p = L(e), [f, x] = $({
- scene: c,
- camera: p,
- size: e,
- dpr: l.fbo,
- isSizeUpdate: r,
- ...n
- }), [a, v] = j(Ve), u = R(i), m = F(i), h = _(
- (b, g) => {
- v(b), m(g);
- },
- [v, m]
- );
- return [
- _(
- (b, g, S) => {
- const { gl: C } = b;
- return h(g, S), u("u_texture", a.texture), u("uMap", a.map), u("uMapIntensity", a.mapIntensity), x(C);
- },
- [x, u, a, h]
- ),
- h,
- {
- scene: c,
- mesh: d,
- material: i,
- camera: p,
- renderTarget: f,
- output: f.texture
- }
- ];
-};
-var Qt = "#usf ", Zt = `precision highp float;
-
-uniform sampler2D uTexture;
-uniform sampler2D uMap;
-
-varying vec2 vUv;
-
-void main() {
- vec2 uv = vUv;
- vec4 tex = texture2D(uTexture, uv);
- vec4 map = texture2D(uMap, uv);
- gl_FragColor = mix(tex,map,map.a);
-}`;
-const Jt = ({
- scene: e,
- onBeforeInit: t
-}) => {
- const n = y(() => new o.PlaneGeometry(2, 2), []), r = y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uTexture: { value: w },
- uMap: { value: w }
- },
- vertexShader: Qt,
- fragmentShader: Zt
- },
- t
- ),
- ...I
- }), [t]), s = E(e, n, r, o.Mesh);
- return { material: r, mesh: s };
-}, en = Object.freeze({
- texture: w,
- map: w
-}), vr = ({
- size: e,
- dpr: t,
- renderTargetOptions: n,
- isSizeUpdate: r,
- onBeforeInit: s
-}) => {
- const l = U(t), c = y(() => new o.Scene(), []), { material: i, mesh: d } = Jt({
- scene: c,
- size: e,
- onBeforeInit: s
- }), p = L(e), [f, x] = $({
- scene: c,
- camera: p,
- size: e,
- dpr: l.fbo,
- isSizeUpdate: r,
- ...n
- }), [a, v] = j(en), u = R(i), m = F(i), h = _(
- (b, g) => {
- v(b), m(g);
- },
- [v, m]
- );
- return [
- _(
- (b, g, S) => {
- const { gl: C } = b;
- return h(g, S), u("uTexture", a.texture), u("uMap", a.map), x(C);
- },
- [u, x, a, h]
- ),
- h,
- {
- scene: c,
- mesh: d,
- material: i,
- camera: p,
- renderTarget: f,
- output: f.texture
- }
- ];
-};
-var tn = "#usf ", nn = `precision highp float;
-
-varying vec2 vUv;
-uniform sampler2D u_texture;
-uniform float u_brightness;
-uniform float u_saturation;
-
-#usf
-
-#usf
-
-void main() {
- vec4 tex = texture2D(u_texture, vUv);
- vec3 hsv = rgb2hsv(tex.rgb);
- hsv.y *= u_saturation;
- hsv.z *= u_brightness;
- vec3 final = hsv2rgb(hsv);
- gl_FragColor = vec4(final, tex.a);
-}`;
-const rn = ({
- scene: e,
- onBeforeInit: t
-}) => {
- const n = y(() => new o.PlaneGeometry(2, 2), []), r = y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- u_texture: { value: w },
- u_brightness: { value: Me.brightness },
- u_saturation: { value: Me.saturation }
- },
- vertexShader: tn,
- fragmentShader: nn
- },
- t
- ),
- ...I
- }), [t]), s = E(e, n, r, o.Mesh);
- return { material: r, mesh: s };
-}, Me = Object.freeze({
- texture: w,
- brightness: 1,
- saturation: 1
-}), mr = ({
- size: e,
- dpr: t,
- renderTargetOptions: n,
- isSizeUpdate: r,
- onBeforeInit: s
-}) => {
- const l = U(t), c = y(() => new o.Scene(), []), { material: i, mesh: d } = rn({
- scene: c,
- size: e,
- onBeforeInit: s
- }), p = L(e), [f, x] = $({
- scene: c,
- camera: p,
- size: e,
- dpr: l.fbo,
- isSizeUpdate: r,
- ...n
- }), [a, v] = j(Me), u = R(i), m = F(i), h = _(
- (b, g) => {
- v(b), m(g);
- },
- [v, m]
- );
- return [
- _(
- (b, g, S) => {
- const { gl: C } = b;
- return h(g, S), u("u_texture", a.texture), u("u_brightness", a.brightness), u("u_saturation", a.saturation), x(C);
- },
- [u, x, a, h]
- ),
- h,
- {
- scene: c,
- mesh: d,
- material: i,
- camera: p,
- renderTarget: f,
- output: f.texture
- }
- ];
-};
-var on = "#usf ", an = `precision highp float;
-
-varying vec2 vUv;
-uniform vec2 uResolution;
-uniform vec2 uTextureResolution;
-uniform sampler2D uTexture;
-
-void main() {
- #usf
-
- gl_FragColor = texture2D(uTexture, uv);
-}`;
-const un = ({
- scene: e,
- size: t,
- dpr: n,
- onBeforeInit: r
-}) => {
- const s = y(() => new o.PlaneGeometry(2, 2), []), l = y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uResolution: { value: new o.Vector2() },
- uTextureResolution: { value: new o.Vector2() },
- uTexture: { value: w }
- },
- vertexShader: on,
- fragmentShader: an
- },
- r
- ),
- ...I
- }), [r]), c = K(t, n);
- R(l)("uResolution", c.clone());
- const i = E(e, s, l, o.Mesh);
- return { material: l, mesh: i };
-}, sn = Object.freeze({
- texture: w
-}), pr = ({
- size: e,
- dpr: t,
- renderTargetOptions: n,
- isSizeUpdate: r,
- onBeforeInit: s
-}) => {
- const l = U(t), c = y(() => new o.Scene(), []), { material: i, mesh: d } = un({
- scene: c,
- size: e,
- dpr: l.shader,
- onBeforeInit: s
- }), p = L(e), [f, x] = $({
- scene: c,
- camera: p,
- dpr: l.fbo,
- size: e,
- isSizeUpdate: r,
- ...n
- }), [a, v] = j(sn), u = R(i), m = F(i), h = _(
- (b, g) => {
- v(b), m(g);
- },
- [v, m]
- );
- return [
- _(
- (b, g, S) => {
- var T, A, z, P, q, D;
- const { gl: C } = b;
- return h(g, S), u("uTexture", a.texture), u("uTextureResolution", [
- ((z = (A = (T = a.texture) == null ? void 0 : T.source) == null ? void 0 : A.data) == null ? void 0 : z.width) || 0,
- ((D = (q = (P = a.texture) == null ? void 0 : P.source) == null ? void 0 : q.data) == null ? void 0 : D.height) || 0
- ]), x(C);
- },
- [x, u, a, h]
- ),
- h,
- {
- scene: c,
- mesh: d,
- material: i,
- camera: p,
- renderTarget: f,
- output: f.texture
- }
- ];
-};
-var ln = "#usf ", cn = `precision highp float;
-
-varying vec2 vUv;
-uniform sampler2D uTexture;
-uniform vec2 uResolution;
-uniform float uBlurSize;
-
-void main() {
- vec2 uv = vUv;
- vec2 perDivSize = uBlurSize / uResolution;
-
-
- vec4 outColor = vec4(
- texture2D(uTexture, uv + perDivSize * vec2(-1.0, -1.0)) +
- texture2D(uTexture, uv + perDivSize * vec2(0.0, -1.0)) +
- texture2D(uTexture, uv + perDivSize * vec2(1.0, -1.0)) +
- texture2D(uTexture, uv + perDivSize * vec2(-1.0, 0.0)) +
- texture2D(uTexture, uv + perDivSize * vec2(0.0, 0.0)) +
- texture2D(uTexture, uv + perDivSize * vec2(1.0, 0.0)) +
- texture2D(uTexture, uv + perDivSize * vec2(-1.0, 1.0)) +
- texture2D(uTexture, uv + perDivSize * vec2(0.0, 1.0)) +
- texture2D(uTexture, uv + perDivSize * vec2(1.0, 1.0))
- ) / 9.0;
-
- gl_FragColor = outColor;
-}`;
-const vn = ({
- scene: e,
- onBeforeInit: t
-}) => {
- const n = y(() => new o.PlaneGeometry(2, 2), []), r = y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uTexture: { value: w },
- uResolution: { value: new o.Vector2(0, 0) },
- uBlurSize: { value: Fe.blurSize }
- },
- vertexShader: ln,
- fragmentShader: cn
- },
- t
- ),
- ...I
- }), [t]), s = E(e, n, r, o.Mesh);
- return { material: r, mesh: s };
-}, Fe = Object.freeze({
- texture: w,
- blurSize: 3,
- blurPower: 5
-}), dr = ({
- size: e,
- dpr: t,
- renderTargetOptions: n,
- isSizeUpdate: r,
- onBeforeInit: s
-}) => {
- const l = U(t), c = y(() => new o.Scene(), []), { material: i, mesh: d } = vn({ scene: c, onBeforeInit: s }), p = L(e), f = y(
- () => ({
- scene: c,
- camera: p,
- size: e,
- dpr: l.fbo,
- isSizeUpdate: r,
- ...n
- }),
- [c, p, e, l.fbo, r, n]
- ), [x, a] = se(f), [v, u] = j(Fe), m = R(i), h = F(i), M = _(
- (g, S) => {
- u(g), h(S);
- },
- [u, h]
- );
- return [
- _(
- (g, S, C) => {
- var z, P, q, D, k, H;
- const { gl: T } = g;
- M(S, C), m("uTexture", v.texture), m("uResolution", [
- ((q = (P = (z = v.texture) == null ? void 0 : z.source) == null ? void 0 : P.data) == null ? void 0 : q.width) || 0,
- ((H = (k = (D = v.texture) == null ? void 0 : D.source) == null ? void 0 : k.data) == null ? void 0 : H.height) || 0
- ]), m("uBlurSize", v.blurSize);
- let A = a(T);
- for (let ee = 0; ee < v.blurPower; ee++)
- m("uTexture", A), A = a(T);
- return A;
- },
- [a, m, v, M]
- ),
- M,
- {
- scene: c,
- mesh: d,
- material: i,
- camera: p,
- renderTarget: x,
- output: x.read.texture
- }
- ];
-};
-var mn = "#usf ", pn = `precision highp float;
-
-varying vec2 vUv;
-uniform sampler2D uTexture;
-uniform sampler2D uBackbuffer;
-uniform vec2 uBegin;
-uniform vec2 uEnd;
-uniform float uStrength;
-
-void main() {
- vec2 uv = vUv;
- vec4 current = texture2D(uTexture, uv + uBegin*.1);
- vec4 back = texture2D(uBackbuffer, uv + uEnd*.1);
- vec4 mixed = mix(current,back,uStrength);
- gl_FragColor = mixed;
-}`;
-const dn = ({
- scene: e,
- onBeforeInit: t
-}) => {
- const n = y(() => new o.PlaneGeometry(2, 2), []), r = y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uTexture: { value: w },
- uBackbuffer: { value: w },
- uBegin: { value: fe.begin },
- uEnd: { value: fe.end },
- uStrength: { value: fe.strength }
- },
- vertexShader: mn,
- fragmentShader: pn
- },
- t
- ),
- ...I
- }), [t]), s = E(e, n, r, o.Mesh);
- return { material: r, mesh: s };
-}, fe = Object.freeze({
- texture: w,
- begin: new o.Vector2(0, 0),
- end: new o.Vector2(0, 0),
- strength: 0.9
-}), fr = ({
- size: e,
- dpr: t,
- renderTargetOptions: n,
- isSizeUpdate: r,
- onBeforeInit: s
-}) => {
- const l = U(t), c = y(() => new o.Scene(), []), { material: i, mesh: d } = dn({ scene: c, onBeforeInit: s }), p = L(e), f = y(
- () => ({
- scene: c,
- camera: p,
- size: e,
- dpr: l.fbo,
- isSizeUpdate: r,
- ...n
- }),
- [c, p, e, l.fbo, r, n]
- ), [x, a] = se(f), [v, u] = j(fe), m = R(i), h = F(i), M = _(
- (g, S) => {
- u(g), h(S);
- },
- [u, h]
- );
- return [
- _(
- (g, S, C) => {
- const { gl: T } = g;
- return M(S, C), m("uTexture", v.texture), m("uBegin", v.begin), m("uEnd", v.end), m("uStrength", v.strength), a(T, ({ read: A }) => {
- m("uBackbuffer", A);
- });
- },
- [a, m, M, v]
- ),
- M,
- {
- scene: c,
- mesh: d,
- material: i,
- camera: p,
- renderTarget: x,
- output: x.read.texture
- }
- ];
-};
-var fn = "#usf ", gn = `precision highp float;
-
-varying vec2 vUv;
-uniform float uProgress;
-uniform float uStrength;
-uniform float uWidth;
-uniform vec2 uEpicenter;
-uniform int uMode;
-
-float PI = 3.141592653589;
-
-void main() {
-
- vec2 uv = vUv;
-
- float progress = min(uProgress, 1.0);
- float progressFactor = sin(progress * PI);
-
- float border = progress - progress * progressFactor * uWidth;
- float blur = uStrength * progressFactor;
-
-
- vec2 normalizeCenter = (uEpicenter + 1.0) / 2.0;
-
-
- float dist = uMode == 0 ? length(uv - normalizeCenter) : uMode == 1 ? length(uv.x - normalizeCenter.x) : length(uv.y - normalizeCenter.y);
-
-
- float maxDistance = max(
- length(vec2(0.0, 0.0) - normalizeCenter),
- max(
- length(vec2(1.0, 0.0) - normalizeCenter),
- max(
- length(vec2(0.0, 1.0) - normalizeCenter),
- length(vec2(1.0, 1.0) - normalizeCenter)
- )
- )
- );
-
-
- dist = maxDistance > 0.0 ? dist / maxDistance : dist;
-
- vec3 color = vec3(smoothstep(border - blur, border, dist) -
- smoothstep(progress, progress + blur, dist));
-
-
- color *= progressFactor;
-
- gl_FragColor = vec4(color, 1.0);
-}`;
-const hn = ({
- scene: e,
- onBeforeInit: t
-}) => {
- const n = y(() => new o.PlaneGeometry(2, 2), []), r = y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uEpicenter: { value: me.epicenter },
- uProgress: { value: me.progress },
- uStrength: { value: me.strength },
- uWidth: { value: me.width },
- uMode: { value: 0 }
- },
- vertexShader: fn,
- fragmentShader: gn
- },
- t
- ),
- ...I
- }), [t]), s = E(e, n, r, o.Mesh);
- return { material: r, mesh: s };
-}, me = Object.freeze({
- epicenter: new o.Vector2(0, 0),
- progress: 0,
- width: 0,
- strength: 0,
- mode: "center"
-}), gr = ({
- size: e,
- dpr: t,
- renderTargetOptions: n,
- isSizeUpdate: r,
- onBeforeInit: s
-}) => {
- const l = U(t), c = y(() => new o.Scene(), []), { material: i, mesh: d } = hn({ scene: c, onBeforeInit: s }), p = L(e), [f, x] = $({
- scene: c,
- camera: p,
- size: e,
- dpr: l.fbo,
- isSizeUpdate: r,
- ...n
- }), [a, v] = j(me), u = R(i), m = F(i), h = _(
- (b, g) => {
- v(b), m(g);
- },
- [v, m]
- );
- return [
- _(
- (b, g, S) => {
- const { gl: C } = b;
- return h(g, S), u("uEpicenter", a.epicenter), u("uProgress", a.progress), u("uWidth", a.width), u("uStrength", a.strength), u(
- "uMode",
- a.mode === "center" ? 0 : a.mode === "horizontal" ? 1 : 2
- ), x(C);
- },
- [x, u, a, h]
- ),
- h,
- {
- scene: c,
- mesh: d,
- material: i,
- camera: p,
- renderTarget: f,
- output: f.texture
- }
- ];
-};
-var xn = "#usf ", yn = `precision highp float;
-varying vec2 vUv;
-
-uniform sampler2D u_texture;
-uniform vec2 u_resolution;
-uniform vec3 u_keyColor;
-uniform float u_similarity;
-uniform float u_smoothness;
-uniform float u_spill;
-
-uniform vec4 u_color;
-uniform float u_contrast;
-uniform float u_brightness;
-uniform float u_gamma;
-
-vec2 RGBtoUV(vec3 rgb) {
- return vec2(
- rgb.r * -0.169 + rgb.g * -0.331 + rgb.b * 0.5 + 0.5,
- rgb.r * 0.5 + rgb.g * -0.419 + rgb.b * -0.081 + 0.5
- );
-}
-float getChromeDist(vec3 texColor){
- float chromaDist = distance(RGBtoUV(texColor), RGBtoUV(u_keyColor));
- return chromaDist;
-}
-
-float getBoxFilteredChromaDist(vec3 rgb, vec2 uv)
-{
- vec2 pixel_size = vec2(1.) / u_resolution;
- vec2 h_pixel_size = pixel_size / 2.0;
- vec2 point_0 = vec2(pixel_size.x, h_pixel_size.y);
- vec2 point_1 = vec2(h_pixel_size.x, -pixel_size.y);
- float distVal = getChromeDist(texture2D(u_texture,uv-point_0).rgb);
- distVal += getChromeDist(texture2D(u_texture,uv+point_0).rgb);
- distVal += getChromeDist(texture2D(u_texture,uv-point_1).rgb);
- distVal += getChromeDist(texture2D(u_texture,uv+point_1).rgb);
- distVal *= 2.0;
- distVal += getChromeDist(rgb);
- return distVal / 9.0;
-}
-
-vec4 CalcColor(vec4 rgba)
-{
- return vec4(pow(rgba.rgb, vec3(u_gamma, u_gamma, u_gamma)) * u_contrast + u_brightness, rgba.a);
-}
-
-void main() {
-
- vec2 uv = vUv;
-
- vec4 texColor = texture2D(u_texture, uv);
- texColor.rgb *= (texColor.a > 0.) ? (1. / texColor.a) : 0.;
-
- float chromaDist = getBoxFilteredChromaDist(texColor.rgb,uv);
-
- float baseMask = chromaDist - u_similarity;
- float fullMask = pow(clamp(baseMask / u_smoothness, 0., 1.), 1.5);
-
- texColor.rgba *= u_color;
- texColor.a = fullMask;
-
- float spillVal = pow(clamp(baseMask / u_spill, 0., 1.), 1.5);
- float desat = clamp(texColor.r * 0.2126 + texColor.g * 0.7152 + texColor.b * 0.0722, 0., 1.);
- texColor.rgb = mix(vec3(desat, desat, desat), texColor.rgb, spillVal);
-
- vec4 finColor = CalcColor(texColor);
-
- gl_FragColor = finColor;
-}`;
-const bn = ({
- scene: e,
- size: t,
- dpr: n,
- onBeforeInit: r
-}) => {
- const s = y(() => new o.PlaneGeometry(2, 2), []), l = y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- u_texture: { value: w },
- u_resolution: { value: new o.Vector2() },
- u_keyColor: { value: Q.color },
- u_similarity: { value: Q.similarity },
- u_smoothness: { value: Q.smoothness },
- u_spill: { value: Q.spill },
- u_color: { value: Q.color },
- u_contrast: { value: Q.contrast },
- u_brightness: { value: Q.brightness },
- u_gamma: { value: Q.gamma }
- },
- vertexShader: xn,
- fragmentShader: yn
- },
- r
- ),
- ...I
- }), [r]), c = K(t, n);
- R(l)("u_resolution", c.clone());
- const i = E(e, s, l, o.Mesh);
- return { material: l, mesh: i };
-}, Q = Object.freeze({
- texture: w,
- keyColor: new o.Color(65280),
- similarity: 0.2,
- smoothness: 0.1,
- spill: 0.2,
- color: new o.Vector4(1, 1, 1, 1),
- contrast: 1,
- brightness: 0,
- gamma: 1
-}), hr = ({
- size: e,
- dpr: t,
- renderTargetOptions: n,
- isSizeUpdate: r,
- onBeforeInit: s
-}) => {
- const l = U(t), c = y(() => new o.Scene(), []), { material: i, mesh: d } = bn({
- scene: c,
- size: e,
- dpr: l.shader,
- onBeforeInit: s
- }), p = L(e), [f, x] = $({
- scene: c,
- camera: p,
- size: e,
- dpr: l.fbo,
- isSizeUpdate: r,
- ...n
- }), [a, v] = j(Q), u = R(i), m = F(i), h = _(
- (b, g) => {
- v(b), m(g);
- },
- [v, m]
- );
- return [
- _(
- (b, g, S) => {
- const { gl: C } = b;
- return h(g, S), u("u_texture", a.texture), u("u_keyColor", a.keyColor), u("u_similarity", a.similarity), u("u_smoothness", a.smoothness), u("u_spill", a.spill), u("u_color", a.color), u("u_contrast", a.contrast), u("u_brightness", a.brightness), u("u_gamma", a.gamma), x(C);
- },
- [x, u, a, h]
- ),
- h,
- {
- scene: c,
- mesh: d,
- material: i,
- camera: p,
- renderTarget: f,
- output: f.texture
- }
- ];
-};
-var Mn = `precision highp float;
-
-varying vec2 vUv;
-#usf
-
-#usf
-
-void main() {
- vec4 usf_Position = vec4(position,1.);
- vUv = uv;
-
- #usf
-
- gl_Position = usf_Position;
-}`, Sn = `precision highp float;
-
-varying vec2 vUv;
-#usf
-
-uniform sampler2D uTexture;
-uniform sampler2D uBackbuffer;
-uniform float uTime;
-uniform vec2 uPointer;
-uniform vec2 uResolution;
-
-#usf
-
-void main() {
- vec4 usf_FragColor = vec4(1.);
-
- #usf
-
- gl_FragColor = usf_FragColor;
-}`;
-const _n = ({
- scene: e,
- size: t,
- dpr: n,
- onBeforeInit: r
-}) => {
- const s = y(() => new o.PlaneGeometry(2, 2), []), l = y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uTexture: { value: w },
- uBackbuffer: { value: w },
- uTime: { value: 0 },
- uPointer: { value: new o.Vector2() },
- uResolution: { value: new o.Vector2() }
- },
- vertexShader: Mn,
- fragmentShader: Sn
- },
- r
- ),
- ...I
- }), [r]), c = K(t, n);
- R(l)("uResolution", c.clone());
- const i = E(e, s, l, o.Mesh);
- return { material: l, mesh: i };
-}, Cn = Object.freeze({
- texture: w,
- beat: !1
-}), xr = ({
- size: e,
- dpr: t,
- renderTargetOptions: n,
- isSizeUpdate: r,
- onBeforeInit: s
-}) => {
- const l = U(t), c = y(() => new o.Scene(), []), { material: i, mesh: d } = _n({
- scene: c,
- size: e,
- dpr: l.shader,
- onBeforeInit: s
- }), p = L(e), f = y(
- () => ({
- scene: c,
- camera: p,
- size: e,
- dpr: l.fbo,
- isSizeUpdate: r,
- ...n
- }),
- [c, p, e, l.fbo, r, n]
- ), [x, a] = se(f), [v, u] = j(Cn), m = R(i), h = F(i), M = _(
- (g, S) => {
- u(g), h(S);
- },
- [u, h]
- );
- return [
- _(
- (g, S, C) => {
- const { gl: T, clock: A, pointer: z } = g;
- return M(S, C), m("uPointer", z), m("uTexture", v.texture), m("uTime", v.beat || A.getElapsedTime()), a(T, ({ read: P }) => {
- m("uBackbuffer", P);
- });
- },
- [a, m, v, M]
- ),
- M,
- {
- scene: c,
- mesh: d,
- material: i,
- camera: p,
- renderTarget: x,
- output: x.read.texture
- }
- ];
-};
-var wn = `precision highp float;
-
-varying vec2 vUv;
-#usf
-
-#usf
-
-void main() {
- vec4 usf_Position = vec4(position,1.);
- vUv = uv;
-
- #usf
-
- gl_Position = usf_Position;
-}`, Tn = `precision highp float;
-
-varying vec2 vUv;
-#usf
-
-uniform vec2 uResolution;
-
-#usf
-
-void main() {
- vec4 usf_FragColor = vec4(1.);
-
- #usf
-
- gl_FragColor = usf_FragColor;
-}`;
-const Dn = ({
- scene: e,
- size: t,
- dpr: n,
- onBeforeInit: r
-}) => {
- const s = y(() => new o.PlaneGeometry(2, 2), []), l = y(() => new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uResolution: { value: new o.Vector2() }
- },
- vertexShader: wn,
- fragmentShader: Tn
- },
- r
- ),
- ...I
- }), [r]), c = K(t, n);
- R(l)("uResolution", c.clone());
- const i = E(e, s, l, o.Mesh);
- return { material: l, mesh: i };
-}, yr = Object.freeze({}), br = ({
- size: e,
- dpr: t,
- renderTargetOptions: n,
- isSizeUpdate: r,
- onBeforeInit: s
-}) => {
- const l = U(t), c = y(() => new o.Scene(), []), { material: i, mesh: d } = Dn({
- scene: c,
- size: e,
- dpr: l.shader,
- onBeforeInit: s
- }), p = L(e), f = y(
- () => ({
- scene: c,
- camera: p,
- size: e,
- dpr: l.fbo,
- isSizeUpdate: r,
- ...n
- }),
- [c, p, e, l.fbo, r, n]
- ), [x, a] = $(f), v = F(i), u = _(
- (h, M) => {
- v(M);
- },
- [v]
- );
- return [
- _(
- (h, M, b) => {
- const { gl: g } = h;
- return u(M, b), a(g);
- },
- [a, u]
- ),
- u,
- {
- scene: c,
- mesh: d,
- material: i,
- camera: p,
- renderTarget: x,
- output: x.texture
- }
- ];
-}, Pn = ({
- scene: e,
- geometry: t,
- material: n
-}) => {
- const r = E(
- e,
- t,
- n,
- o.Points
- ), s = E(
- e,
- y(() => t.clone(), [t]),
- y(() => n.clone(), [n]),
- o.Mesh
- );
- return s.visible = !1, {
- points: r,
- interactiveMesh: s
- };
-};
-var Rn = `uniform vec2 uResolution;
-uniform float uMorphProgress;
-uniform float uPointSize;
-
-uniform sampler2D uPicture;
-uniform bool uIsPicture;
-uniform sampler2D uAlphaPicture;
-uniform bool uIsAlphaPicture;
-
-uniform vec3 uColor0;
-uniform vec3 uColor1;
-uniform vec3 uColor2;
-uniform vec3 uColor3;
-
-uniform float uTime;
-
-uniform float uWobblePositionFrequency;
-uniform float uWobbleTimeFrequency;
-uniform float uWobbleStrength;
-uniform float uWarpPositionFrequency;
-uniform float uWarpTimeFrequency;
-uniform float uWarpStrength;
-
-uniform sampler2D uDisplacement;
-uniform bool uIsDisplacement;
-uniform float uDisplacementIntensity;
-
-uniform float uSizeRandomIntensity;
-uniform float uSizeRandomTimeFrequency;
-uniform float uSizeRandomMin;
-uniform float uSizeRandomMax;
-
-uniform float uMapArrayLength;
-
-uniform float uDivergence;
-uniform vec3 uDivergencePoint;
-
-varying vec3 vColor;
-varying float vPictureAlpha;
-varying vec3 vDisplacementColor;
-varying float vDisplacementIntensity;
-varying float vMapArrayIndex;
-
-#usf
-
-#usf
-
-#usf
-
-float random3D(vec3 co) {
- return fract(sin(dot(co.xyz ,vec3(12.9898, 78.233, 45.764))) * 43758.5453);
-}
-
-void main() {
- vec3 newPosition = position;
- vec2 newUv = uv;
-
- #usf
- #usf
-
-
- vec3 displacement = uIsDisplacement ? texture2D(uDisplacement, newUv).rgb : vec3(0.0);
- float displacementIntensity = smoothstep(0., 1., displacement.g);
- vDisplacementColor = displacement;
- vDisplacementIntensity = displacementIntensity;
-
-
- displacement = displacement * 2.-1.;
- displacement *= displacementIntensity * uDisplacementIntensity;
- newPosition += displacement;
-
-
- vec3 divergenceDir = newPosition - uDivergencePoint;
- if (uDivergence > 0.0) {
- newPosition += normalize(divergenceDir) * uDivergence;
- } else if (uDivergence < 0.0) {
- newPosition -= normalize(divergenceDir) * abs(uDivergence);
- }
-
-
- vec4 modelPosition = modelMatrix * vec4(newPosition, 1.0);
- vec4 viewPosition = viewMatrix * modelPosition;
- vec4 projectedPosition = projectionMatrix * viewPosition;
-
-
- float wobble = uWobbleStrength > 0. ? getWobble(projectedPosition.xyz) : 0.0;
-
- gl_Position = projectedPosition += wobble;
-
-
- vColor = uIsPicture ? texture2D(uPicture, newUv).rgb : mix(mix(uColor0, uColor1, newPosition.x), mix(uColor2, uColor3, newPosition.y), newPosition.z);
-
-
- vPictureAlpha = uIsAlphaPicture ? texture2D(uAlphaPicture, newUv).g : 1.;
-
-
-
- float sizeRand = uSizeRandomIntensity > 0. ? mix(uSizeRandomMin,uSizeRandomMax,(simplexNoise4d(vec4(newPosition,uTime * uSizeRandomTimeFrequency))*.5+.5)) * uSizeRandomIntensity : 1.;
- gl_PointSize = uPointSize * vPictureAlpha * uResolution.y * sizeRand;
- gl_PointSize *= (1.0 / - viewPosition.z);
-
-
- vMapArrayIndex = uMapArrayLength > 0. ? floor(random3D(position) * uMapArrayLength) : 0.;
-}`, An = `precision highp float;
-precision highp int;
-
-varying vec3 vColor;
-varying float vPictureAlpha;
-varying vec3 vDisplacementColor;
-varying float vDisplacementIntensity;
-varying float vMapArrayIndex;
-
-uniform float uBlurAlpha;
-uniform float uBlurRadius;
-uniform sampler2D uMap;
-uniform bool uIsMap;
-uniform sampler2D uAlphaMap;
-uniform bool uIsAlphaMap;
-uniform float uDisplacementColorIntensity;
-uniform float uPointAlpha;
-
-#usf
-
-void main() {
- vec2 uv = gl_PointCoord;
- uv.y = 1.0 - uv.y;
-
-
- float distanceToCenter = length(uv - .5);
- float alpha = clamp(uBlurRadius / distanceToCenter - (1.-uBlurAlpha) , 0. , 1.);
-
-
- vec4 mapArrayColor;
- #usf
- vec4 mapColor = isMapArray ? mapArrayColor : uIsMap ? texture2D(uMap,uv) : vec4(1.);
- vec3 finalColor = isMapArray || uIsMap ? mapColor.rgb : vColor;
-
-
- float mixIntensity = clamp(uDisplacementColorIntensity * vDisplacementIntensity,0.,1.);
- finalColor = vDisplacementIntensity > 0. ? mix(finalColor,vDisplacementColor,mixIntensity) : finalColor;
-
-
- float alphaMap = uIsAlphaMap ? texture2D(uAlphaMap,uv).g : 1.;
-
- gl_FragColor = vec4(finalColor,alpha * vPictureAlpha * alphaMap * mapColor.a * uPointAlpha);
-}`;
-const Te = (e, t, n, r, s) => {
- var f;
- const l = n === "position" ? "positionTarget" : "uvTarget", c = n === "position" ? "#usf " : "#usf ", i = n === "position" ? "#usf " : "#usf ", d = n === "position" ? "positionsList" : "uvsList", p = n === "position" ? `
- float scaledProgress = uMorphProgress * ${e.length - 1}.;
- int baseIndex = int(floor(scaledProgress));
- baseIndex = clamp(baseIndex, 0, ${e.length - 1});
- float progress = fract(scaledProgress);
- int nextIndex = baseIndex + 1;
- newPosition = mix(positionsList[baseIndex], positionsList[nextIndex], progress);
- ` : "newUv = mix(uvsList[baseIndex], uvsList[nextIndex], progress);";
- if (e.length > 0) {
- t.deleteAttribute(n), t.setAttribute(
- n,
- new o.BufferAttribute(e[0], s)
- );
- let x = "", a = "";
- e.forEach((v, u) => {
- t.setAttribute(
- `${l}${u}`,
- new o.BufferAttribute(v, s)
- ), x += `attribute vec${s} ${l}${u};
-`, u === 0 ? a += `${l}${u}` : a += `,${l}${u}`;
- }), r = r.replace(
- `${c}`,
- x
- ), r = r.replace(
- `${i}`,
- `vec${s} ${d}[${e.length}] = vec${s}[](${a});
- ${p}
- `
- );
- } else
- r = r.replace(`${c}`, ""), r = r.replace(`${i}`, ""), (f = t == null ? void 0 : t.attributes[n]) != null && f.array || Re && console.error(
- `use-shader-fx:geometry.attributes.${n}.array is not found`
- );
- return r;
-}, De = (e, t, n, r) => {
- var l;
- let s = [];
- if (e && e.length > 0) {
- (l = t == null ? void 0 : t.attributes[n]) != null && l.array ? s = [
- t.attributes[n].array,
- ...e
- ] : s = e;
- const c = Math.max(...s.map((i) => i.length));
- s.forEach((i, d) => {
- if (i.length < c) {
- const p = (c - i.length) / r, f = [], x = Array.from(i);
- for (let a = 0; a < p; a++) {
- const v = Math.floor(i.length / r * Math.random()) * r;
- for (let u = 0; u < r; u++)
- f.push(x[v + u]);
- }
- s[d] = new Float32Array([...x, ...f]);
- }
- });
- }
- return s;
-}, Vn = (e, t) => {
- let n = "";
- const r = {};
- let s = "mapArrayColor = ";
- return e && e.length > 0 ? (e.forEach((c, i) => {
- const d = `vMapArrayIndex < ${i}.1`, p = `texture2D(uMapArray${i}, uv)`;
- s += `( ${d} ) ? ${p} : `, n += `
- uniform sampler2D uMapArray${i};
- `, r[`uMapArray${i}`] = { value: c };
- }), s += "vec4(1.);", n += "bool isMapArray = true;", r.uMapArrayLength = { value: e.length }) : (s += "vec4(1.0);", n += "bool isMapArray = false;", r.uMapArrayLength = { value: 0 }), { rewritedFragmentShader: t.replace("#usf ", s).replace("#usf ", n), mapArrayUniforms: r };
-}, Fn = ({
- size: e,
- dpr: t,
- geometry: n,
- positions: r,
- uvs: s,
- mapArray: l,
- onBeforeInit: c
-}) => {
- const i = y(
- () => De(r, n, "position", 3),
- [r, n]
- ), d = y(
- () => De(s, n, "uv", 2),
- [s, n]
- ), p = y(() => {
- i.length !== d.length && Re && console.log("use-shader-fx:positions and uvs are not matched");
- const x = Te(
- d,
- n,
- "uv",
- Te(
- i,
- n,
- "position",
- Rn,
- 3
- ),
- 2
- ), { rewritedFragmentShader: a, mapArrayUniforms: v } = Vn(l, An);
- return new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- uResolution: { value: new o.Vector2(0, 0) },
- uMorphProgress: {
- value: O.morphProgress
- },
- uBlurAlpha: { value: O.blurAlpha },
- uBlurRadius: { value: O.blurRadius },
- uPointSize: { value: O.pointSize },
- uPointAlpha: { value: O.pointAlpha },
- uPicture: { value: w },
- uIsPicture: { value: !1 },
- uAlphaPicture: { value: w },
- uIsAlphaPicture: { value: !1 },
- uColor0: { value: O.color0 },
- uColor1: { value: O.color1 },
- uColor2: { value: O.color2 },
- uColor3: { value: O.color3 },
- uMap: { value: w },
- uIsMap: { value: !1 },
- uAlphaMap: { value: w },
- uIsAlphaMap: { value: !1 },
- uTime: { value: 0 },
- uWobblePositionFrequency: {
- value: O.wobblePositionFrequency
- },
- uWobbleTimeFrequency: {
- value: O.wobbleTimeFrequency
- },
- uWobbleStrength: {
- value: O.wobbleStrength
- },
- uWarpPositionFrequency: {
- value: O.warpPositionFrequency
- },
- uWarpTimeFrequency: {
- value: O.warpTimeFrequency
- },
- uWarpStrength: { value: O.warpStrength },
- uDisplacement: { value: w },
- uIsDisplacement: { value: !1 },
- uDisplacementIntensity: {
- value: O.displacementIntensity
- },
- uDisplacementColorIntensity: {
- value: O.displacementColorIntensity
- },
- uSizeRandomIntensity: {
- value: O.sizeRandomIntensity
- },
- uSizeRandomTimeFrequency: {
- value: O.sizeRandomTimeFrequency
- },
- uSizeRandomMin: {
- value: O.sizeRandomMin
- },
- uSizeRandomMax: {
- value: O.sizeRandomMax
- },
- uDivergence: { value: O.divergence },
- uDivergencePoint: {
- value: O.divergencePoint
- },
- ...v
- },
- vertexShader: x,
- fragmentShader: a
- },
- c
- ),
- ...I,
- blending: o.AdditiveBlending,
- // Must be transparent
- transparent: !0
+ _ == null || _.dispose();
+ };
+ }, [u]);
+ const v = h(
+ (_, m) => {
+ const x = u;
+ return de({
+ ..._,
+ scene: _.scene || t,
+ camera: _.camera || r,
+ fbo: x,
+ onBeforeRender: () => m == null ? void 0 : m({ read: x.texture })
+ }), x.texture;
+ },
+ [t, r, u]
+ );
+ return [u, v];
+}, he = (e) => {
+ var _, m;
+ const {
+ scene: t,
+ camera: r,
+ size: a,
+ dpr: n = !1,
+ fboAutoSetSize: i = !1,
+ depth: s = !1,
+ ...c
+ } = e, l = N(a, n), [u] = E(() => {
+ const x = new o.WebGLRenderTarget(l.x, l.y, {
+ ...te,
+ ...c
+ }), p = new o.WebGLRenderTarget(l.x, l.y, {
+ ...te,
+ ...c
});
- }, [
- n,
- i,
- d,
- l,
- c
- ]), f = K(e, t);
- return R(p)("uResolution", f.clone()), { material: p, modifiedPositions: i, modifiedUvs: d };
-}, In = ({
- size: e,
- dpr: t,
- scene: n = !1,
- geometry: r,
- positions: s,
- uvs: l,
- mapArray: c,
- onBeforeInit: i
-}) => {
- const d = U(t), p = y(() => {
- const b = r || new o.SphereGeometry(1, 32, 32);
- return b.setIndex(null), b.deleteAttribute("normal"), b;
- }, [r]), { material: f, modifiedPositions: x, modifiedUvs: a } = Fn({
- size: e,
- dpr: d.shader,
- geometry: p,
- positions: s,
- uvs: l,
- mapArray: c,
- onBeforeInit: i
- }), { points: v, interactiveMesh: u } = Pn({
- scene: n,
- geometry: p,
- material: f
- }), m = R(f), h = F(f);
+ return s && (x.depthTexture = new o.DepthTexture(
+ l.x,
+ l.y,
+ o.FloatType
+ ), p.depthTexture = new o.DepthTexture(
+ l.x,
+ l.y,
+ o.FloatType
+ )), {
+ read: x,
+ write: p,
+ swap: function() {
+ let f = this.read;
+ this.read = this.write, this.write = f;
+ }
+ };
+ });
+ i && ((_ = u.read) == null || _.setSize(l.x, l.y), (m = u.write) == null || m.setSize(l.x, l.y)), K(() => {
+ const x = u;
+ return () => {
+ var p, f;
+ (p = x.read) == null || p.dispose(), (f = x.write) == null || f.dispose();
+ };
+ }, [u]);
+ const v = h(
+ (x, p) => {
+ var g;
+ const f = u;
+ return de({
+ ...x,
+ scene: x.scene || t,
+ camera: x.camera || r,
+ fbo: f.write,
+ onBeforeRender: () => p == null ? void 0 : p({
+ read: f.read.texture,
+ write: f.write.texture
+ }),
+ onSwap: () => f.swap()
+ }), (g = f.read) == null ? void 0 : g.texture;
+ },
+ [t, r, u]
+ );
return [
- _(
- (b, g, S) => {
- b && m(
- "uTime",
- (g == null ? void 0 : g.beat) || b.clock.getElapsedTime()
- ), g !== void 0 && (m("uMorphProgress", g.morphProgress), m("uBlurAlpha", g.blurAlpha), m("uBlurRadius", g.blurRadius), m("uPointSize", g.pointSize), m("uPointAlpha", g.pointAlpha), g.picture ? (m("uPicture", g.picture), m("uIsPicture", !0)) : g.picture === !1 && m("uIsPicture", !1), g.alphaPicture ? (m("uAlphaPicture", g.alphaPicture), m("uIsAlphaPicture", !0)) : g.alphaPicture === !1 && m("uIsAlphaPicture", !1), m("uColor0", g.color0), m("uColor1", g.color1), m("uColor2", g.color2), m("uColor3", g.color3), g.map ? (m("uMap", g.map), m("uIsMap", !0)) : g.map === !1 && m("uIsMap", !1), g.alphaMap ? (m("uAlphaMap", g.alphaMap), m("uIsAlphaMap", !0)) : g.alphaMap === !1 && m("uIsAlphaMap", !1), m("uWobbleStrength", g.wobbleStrength), m(
- "uWobblePositionFrequency",
- g.wobblePositionFrequency
- ), m("uWobbleTimeFrequency", g.wobbleTimeFrequency), m("uWarpStrength", g.warpStrength), m("uWarpPositionFrequency", g.warpPositionFrequency), m("uWarpTimeFrequency", g.warpTimeFrequency), g.displacement ? (m("uDisplacement", g.displacement), m("uIsDisplacement", !0)) : g.displacement === !1 && m("uIsDisplacement", !1), m("uDisplacementIntensity", g.displacementIntensity), m(
- "uDisplacementColorIntensity",
- g.displacementColorIntensity
- ), m("uSizeRandomIntensity", g.sizeRandomIntensity), m(
- "uSizeRandomTimeFrequency",
- g.sizeRandomTimeFrequency
- ), m("uSizeRandomMin", g.sizeRandomMin), m("uSizeRandomMax", g.sizeRandomMax), m("uDivergence", g.divergence), m("uDivergencePoint", g.divergencePoint), h(S));
- },
- [m, h]
- ),
- {
- points: v,
- interactiveMesh: u,
- positions: x,
- uvs: a
- }
+ { read: u.read, write: u.write },
+ v
];
-}, O = Object.freeze({
- morphProgress: 0,
- blurAlpha: 0.9,
- blurRadius: 0.05,
- pointSize: 0.05,
- pointAlpha: 1,
- picture: !1,
- alphaPicture: !1,
- color0: new o.Color(16711680),
- color1: new o.Color(65280),
- color2: new o.Color(255),
- color3: new o.Color(16776960),
- map: !1,
- alphaMap: !1,
- wobbleStrength: 0,
- wobblePositionFrequency: 0.5,
- wobbleTimeFrequency: 0.5,
- warpStrength: 0,
- warpPositionFrequency: 0.5,
- warpTimeFrequency: 0.5,
- displacement: !1,
- displacementIntensity: 1,
- displacementColorIntensity: 0,
- sizeRandomIntensity: 0,
- sizeRandomTimeFrequency: 0.2,
- sizeRandomMin: 0.5,
- sizeRandomMax: 1.5,
- divergence: 0,
- divergencePoint: new o.Vector3(0),
- beat: !1
-}), Mr = ({
+}, we = (e, t, r, a) => {
+ const [n] = E(() => new a(t, r));
+ return K(() => (e && e.add(n), () => {
+ e && e.remove(n), t.dispose(), r.dispose();
+ }), [e, t, r, n]), n;
+}, M = ({
size: e,
dpr: t,
- isSizeUpdate: n,
- renderTargetOptions: r,
- camera: s,
- geometry: l,
- positions: c,
- uvs: i,
- onBeforeInit: d
+ material: r,
+ geometry: a = o.PlaneGeometry,
+ geometrySize: n,
+ ...i
}) => {
- const p = U(t), f = y(() => new o.Scene(), []), [
- x,
- {
- points: a,
- interactiveMesh: v,
- positions: u,
- uvs: m
- }
- ] = In({
- scene: f,
- size: e,
- dpr: t,
- geometry: l,
- positions: c,
- uvs: i,
- onBeforeInit: d
- }), [h, M] = $({
- scene: f,
- camera: s,
- size: e,
- dpr: p.fbo,
- isSizeUpdate: n,
- depthBuffer: !0,
- ...r
- }), b = _(
- (S, C, T) => (x(S, C, T), M(S.gl)),
- [M, x]
- ), g = _(
- (S, C) => {
- x(null, S, C);
- },
- [x]
- );
- return [
- b,
- g,
- {
- scene: f,
- points: a,
- interactiveMesh: v,
- renderTarget: h,
- output: h.texture,
- positions: u,
- uvs: m
- }
- ];
-}, Pe = (e) => {
- const t = e.shaderType === "MeshDepthMaterial";
- e.vertexShader = e.vertexShader.replace(
- "#include ",
- `
- vec3 objectNormal = usf_Normal;
- #ifdef USE_TANGENT
- vec3 objectTangent = vec3( tangent.xyz );
- #endif
- `
- ), e.vertexShader = e.vertexShader.replace(
- "#include ",
- `
- vec3 transformed = usf_Position;
- #ifdef USE_ALPHAHASH
- vPosition = vec3( position );
- #endif
- `
- ), e.vertexShader = e.vertexShader.replace(
- "void main() {",
- `
- uniform float uTime;
- uniform float uWobblePositionFrequency;
- uniform float uWobbleTimeFrequency;
- uniform float uWobbleStrength;
- uniform float uWarpPositionFrequency;
- uniform float uWarpTimeFrequency;
- uniform float uWarpStrength;
-
- ${t ? "attribute vec4 tangent;" : ""}
-
- varying float vWobble;
- varying vec2 vPosition;
-
- // edge
- varying vec3 vEdgeNormal;
- varying vec3 vEdgeViewPosition;
-
- #usf
-
- void main() {
-
- vec3 usf_Position = position;
- vec3 usf_Normal = normal;
- vec3 biTangent = cross(normal, tangent.xyz);
-
- // Neighbours positions
- float shift = 0.01;
- vec3 positionA = usf_Position + tangent.xyz * shift;
- vec3 positionB = usf_Position + biTangent * shift;
-
- // wobble
- float wobble = (uWobbleStrength > 0.) ? getWobble(usf_Position) : 0.0;
- float wobblePositionA = (uWobbleStrength > 0.) ? getWobble(positionA) : 0.0;
- float wobblePositionB = (uWobbleStrength > 0.) ? getWobble(positionB) : 0.0;
-
- usf_Position += wobble * normal;
- positionA += wobblePositionA * normal;
- positionB += wobblePositionB * normal;
-
- // Compute normal
- vec3 toA = normalize(positionA - usf_Position);
- vec3 toB = normalize(positionB - usf_Position);
- usf_Normal = cross(toA, toB);
-
- // Varying
- vPosition = usf_Position.xy;
- vWobble = wobble/uWobbleStrength;
-
- vEdgeNormal = normalize(normalMatrix * usf_Normal);
- vec4 viewPosition = viewMatrix * modelMatrix * vec4(usf_Position, 1.0);
- vEdgeViewPosition = normalize(viewPosition.xyz);
- `
- );
-}, zn = (e) => {
- e.fragmentShader = e.fragmentShader.replace(
- "#include ",
- `
- #include
-
- if (uEdgeThreshold > 0.0) {
- float edgeThreshold = dot(vEdgeNormal, -vEdgeViewPosition);
- diffuseColor = edgeThreshold < uEdgeThreshold ? vec4(uEdgeColor, 1.0) : mix(diffuseColor, usf_DiffuseColor, uColorMix);
- } else {
- diffuseColor = mix(diffuseColor, usf_DiffuseColor, uColorMix);
- }
- `
- ), e.fragmentShader = e.fragmentShader.replace(
- "void main() {",
- `
- uniform vec3 uColor0;
- uniform vec3 uColor1;
- uniform vec3 uColor2;
- uniform vec3 uColor3;
- uniform float uColorMix;
- uniform float uEdgeThreshold;
- uniform vec3 uEdgeColor;
-
- // transmission
- uniform float uChromaticAberration;
- uniform float uAnisotropicBlur;
- uniform float uTime;
- uniform float uDistortion;
- uniform float uDistortionScale;
- uniform float uTemporalDistortion;
- uniform float uRefractionSamples;
-
- float rand(float n){return fract(sin(n) * 43758.5453123);}
-
- #usf
-
- varying float vWobble;
- varying vec2 vPosition;
- varying vec3 vEdgeNormal;
- varying vec3 vEdgeViewPosition;
-
- void main(){
-
- vec4 usf_DiffuseColor = vec4(1.0);
- float colorWobbleMix = smoothstep(-1.,1.,vWobble);
- vec2 colorPosMix = vec2(smoothstep(-1.,1.,vPosition.x),smoothstep(-1.,1.,vPosition.y));
-
- usf_DiffuseColor.rgb = mix(mix(uColor0, uColor1, colorPosMix.x), mix(uColor2, uColor3, colorPosMix.y), colorWobbleMix);
- `
- );
+ const [s] = E(() => new o.Scene()), [c] = E(
+ () => new a((n == null ? void 0 : n.width) || 2, (n == null ? void 0 : n.height) || 2)
+ ), [l] = E(() => new r(i)), u = N(e, t);
+ l.updateResolution(u.x, u.y), we(s, c, l, o.Mesh);
+ const v = be(e);
+ return {
+ scene: s,
+ material: l,
+ camera: v
+ };
+}, Ce = (e) => {
+ const t = T(e), r = h((a) => {
+ t.current = typeof a == "function" ? a(t.current) : a;
+ }, []);
+ return [t, r];
+}, Te = (() => {
+ try {
+ return process.env.NODE_ENV === "development";
+ } catch {
+ return !1;
+ }
+})(), S = new o.DataTexture(
+ new Uint8Array([0, 0, 0, 0]),
+ 1,
+ 1,
+ o.RGBAFormat
+), Ee = "use-shader-fx", Oe = [
+ "isColor",
+ "isMatrix3",
+ "isMatrix4",
+ "isVector2",
+ "isVector3",
+ "isVector4",
+ "isTexture",
+ "isQuaternion",
+ "isWebGLRenderTarget",
+ "isEuler",
+ "isBufferGeometry",
+ "isMaterial",
+ "isCamera",
+ "isLight",
+ "isObject3D",
+ "isBone",
+ "isVideoTexture"
+], j = (e) => {
+ Te && console.warn(`${Ee}: ${e}`);
+}, re = {
+ /*===============================================
+ mixSrc
+ ===============================================*/
+ mixSrc: { value: !1 },
+ mixSrc_src: { value: new o.Texture() },
+ mixSrc_fit: { value: 0 },
+ mixSrc_fitScale: { value: new o.Vector2(1, 1) },
+ // uv
+ mixSrc_uv: { value: !1 },
+ mixSrc_uv_ch: { value: 0 },
+ mixSrc_uv_factor: { value: 0 },
+ mixSrc_uv_offset: { value: new o.Vector2(0, 0) },
+ mixSrc_uv_radius: { value: 0.5 },
+ mixSrc_uv_position: { value: new o.Vector2(0.5, 0.5) },
+ mixSrc_uv_range: { value: new o.Vector2(0, 1) },
+ mixSrc_uv_mixMap: { value: !1 },
+ mixSrc_uv_mixMap_src: { value: S },
+ mixSrc_uv_mixMap_ch: { value: 0 },
+ // color
+ mixSrc_color: { value: !1 },
+ mixSrc_color_factor: { value: 0 },
+ mixSrc_color_radius: { value: 0.5 },
+ mixSrc_color_position: { value: new o.Vector2(0.5, 0.5) },
+ mixSrc_color_range: { value: new o.Vector2(0, 1) },
+ mixSrc_color_mixMap: { value: !1 },
+ mixSrc_color_mixMap_src: { value: S },
+ mixSrc_color_mixMap_ch: { value: 0 },
+ // alpha
+ mixSrc_alpha: { value: !1 },
+ mixSrc_alpha_factor: { value: 0 },
+ mixSrc_alpha_radius: { value: 0.5 },
+ mixSrc_alpha_position: { value: new o.Vector2(0.5, 0.5) },
+ mixSrc_alpha_range: { value: new o.Vector2(0, 1) },
+ mixSrc_alpha_mixMap: { value: !1 },
+ mixSrc_alpha_mixMap_src: { value: S },
+ mixSrc_alpha_mixMap_ch: { value: 0 },
+ /*===============================================
+ mixDst
+ ===============================================*/
+ mixDst: { value: !1 },
+ mixDst_src: { value: new o.Texture() },
+ mixDst_fit: { value: 0 },
+ mixDst_fitScale: { value: new o.Vector2(1, 1) },
+ // uv
+ mixDst_uv: { value: !1 },
+ mixDst_uv_ch: { value: 0 },
+ mixDst_uv_factor: { value: 0 },
+ mixDst_uv_offset: { value: new o.Vector2(0, 0) },
+ mixDst_uv_radius: { value: 0.5 },
+ mixDst_uv_position: { value: new o.Vector2(0.5, 0.5) },
+ mixDst_uv_range: { value: new o.Vector2(0, 1) },
+ mixDst_uv_mixMap: { value: !1 },
+ mixDst_uv_mixMap_src: { value: S },
+ mixDst_uv_mixMap_ch: { value: 0 },
+ // color
+ mixDst_color: { value: !1 },
+ mixDst_color_factor: { value: 0 },
+ mixDst_color_radius: { value: 0.5 },
+ mixDst_color_position: { value: new o.Vector2(0.5, 0.5) },
+ mixDst_color_range: { value: new o.Vector2(0, 1) },
+ mixDst_color_mixMap: { value: !1 },
+ mixDst_color_mixMap_src: { value: S },
+ mixDst_color_mixMap_ch: { value: 0 },
+ // alpha
+ mixDst_alpha: { value: !1 },
+ mixDst_alpha_factor: { value: 0 },
+ mixDst_alpha_radius: { value: 0.5 },
+ mixDst_alpha_position: { value: new o.Vector2(0.5, 0.5) },
+ mixDst_alpha_range: { value: new o.Vector2(0, 1) },
+ mixDst_alpha_mixMap: { value: !1 },
+ mixDst_alpha_mixMap_src: { value: S },
+ mixDst_alpha_mixMap_ch: { value: 0 },
+ /*===============================================
+ adjustments
+ ===============================================*/
+ // levels
+ levels: { value: !1 },
+ levels_shadows: { value: new o.Vector4(0, 0, 0, 0) },
+ levels_midtones: { value: new o.Vector4(1, 1, 1, 1) },
+ levels_highlights: { value: new o.Vector4(1, 1, 1, 1) },
+ levels_outputMin: { value: new o.Vector4(0, 0, 0, 0) },
+ levels_outputMax: { value: new o.Vector4(1, 1, 1, 1) },
+ // contrast
+ contrast: { value: !1 },
+ contrast_factor: { value: new o.Vector4(1, 1, 1, 1) },
+ // colorBalance
+ colorBalance: { value: !1 },
+ colorBalance_factor: { value: new o.Vector3(1, 1, 1) },
+ // hsv
+ hsv: { value: !1 },
+ hsv_hueShift: { value: 0 },
+ hsv_saturation: { value: 1 },
+ hsv_brightness: { value: 1 },
+ // posterize
+ posterize: { value: !1 },
+ posterize_levels: { value: new o.Vector4(0, 0, 0, 0) },
+ // grayscale
+ grayscale: { value: !1 },
+ grayscale_weight: { value: new o.Vector3(0, 0, 0) },
+ grayscale_duotone: { value: !1 },
+ grayscale_duotone_color0: { value: new o.Color(0) },
+ grayscale_duotone_color1: { value: new o.Color(16777215) },
+ grayscale_threshold: { value: -1 }
};
-var Un = `#ifdef USE_TRANSMISSION
-
-
-
-
- uniform float _transmission;
- uniform float thickness;
- uniform float attenuationDistance;
- uniform vec3 attenuationColor;
+function Pe(e) {
+ const {
+ mixSrc: t,
+ mixDst: r,
+ srcSystem: a,
+ levels: n,
+ contrast: i,
+ colorBalance: s,
+ hsv: c,
+ posterize: l,
+ grayscale: u
+ } = e;
+ return {
+ USF_USE_SRC_SYSTEM: a,
+ USF_USE_MIXSRC: t,
+ USF_USE_MIXDST: r,
+ USF_USE_LEVELS: n,
+ USF_USE_CONTRAST: i,
+ USF_USE_COLORBALANCE: s,
+ USF_USE_HSV: c,
+ USF_USE_POSTERIZE: l,
+ USF_USE_GRAYSCALE: u
+ };
+}
+function ue(e) {
+ const t = !!e.mixSrc.value, r = !!e.mixDst.value;
+ return {
+ mixSrc: t,
+ mixDst: r,
+ srcSystem: t || r,
+ levels: !!e.levels.value,
+ contrast: !!e.contrast.value,
+ colorBalance: !!e.colorBalance.value,
+ hsv: !!e.hsv.value,
+ posterize: !!e.posterize.value,
+ grayscale: !!e.grayscale.value
+ };
+}
+var Ve = "#usf ", Ie = "#usf ", Be = "#usf ", Re = "#usf ", Le = `#usf
+#usf `, Ae = `#usf
+#usf
+#usf `, ke = `#usf
+#usf
+#usf
+#usf `, $e = "#usf ", je = `#usf
+#usf
+#usf `, ze = "#usf ", Ke = "#usf ", Ne = "#usf ";
+const d = Object.freeze({
+ plane_vertex: Ve,
+ default_vertex: Ie,
+ default_pars_vertex: Be,
+ default_pars_fragment: Re,
+ basicFx_vertex: Le,
+ basicFx_pars_vertex: Ae,
+ basicFx_pars_fragment: ke,
+ basicFx_fragment_begin: $e,
+ basicFx_fragment_end: je,
+ samplingFx_vertex: ze,
+ samplingFx_pars_vertex: Ke,
+ samplingFx_pars_fragment: Ne
+}), Xe = `
+ void main() {
+ ${d.plane_vertex}
+ }
+`, qe = `
+ precision highp int;
+
+ uniform float tick;
+ uniform float timeStrength;
+ uniform int noiseOctaves;
+ uniform int fbmOctaves;
+ uniform int warpOctaves;
+ uniform vec2 warpDirection;
+ uniform float warpStrength;
+ uniform float scale;
+ uniform float timeOffset;
+
+ const float per = 0.5;
+ const float PI = 3.14159265359;
+
+ float rnd(vec2 n) {
+ float a = 0.129898;
+ float b = 0.78233;
+ float c = 437.585453;
+ float dt= dot(n ,vec2(a, b));
+ float sn= mod(dt, PI);
+ return fract(sin(sn) * c);
+ }
- #ifdef USE_TRANSMISSIONMAP
+ float interpolate(float a, float b, float x){
+ float f = (1.0 - cos(x * PI)) * 0.5;
+ return a * (1.0 - f) + b * f;
+ }
- uniform sampler2D transmissionMap;
+ float irnd(vec2 p){
+ vec2 i = floor(p);
+ vec2 f = fract(p);
+ vec4 v = vec4(rnd(vec2(i.x,i.y)),rnd(vec2(i.x + 1.0,i.y)),rnd(vec2(i.x,i.y + 1.0)),rnd(vec2(i.x + 1.0, i.y + 1.0)));
+ return interpolate(interpolate(v.x, v.y, f.x), interpolate(v.z, v.w, f.x), f.y);
+ }
- #endif
+ // Based on The Book of Shaders
+ // https://thebookofshaders.com/13/
+ float noise(vec2 p, float time){
+ float _time = time + timeOffset;
+ float t = 0.0;
+ for(int i = 0; i < noiseOctaves; i++){
+ float freq = pow(2.0, float(i));
+ float amp = pow(per, float(noiseOctaves - i));
+ t += irnd(vec2(p.y / freq + _time, p.x / freq + _time)) * amp;
+ }
+ return t;
+ }
- #ifdef USE_THICKNESSMAP
+ float fbm(vec2 x, float time) {
+ float v = 0.0;
+ float a = 0.5;
+ vec2 shift = vec2(100);
+ mat2 rot = mat2(cos(0.5), sin(0.5), -sin(0.5), cos(0.5));
+ float sign = 1.0;
+ for (int i = 0; i < fbmOctaves; ++i) {
+ v += a * noise(x, time * sign);
+ x = rot * x * 2.0 + shift;
+ a *= 0.5;
+ sign *= -1.0;
+ }
+ return v;
+ }
- uniform sampler2D thicknessMap;
+ float warp(vec2 x, float g,float time){
+ float val = 0.0;
+ for (int i = 0; i < warpOctaves; i++){
+ val = fbm(x + g * vec2(cos(warpDirection.x * val), sin(warpDirection.y * val)), time);
+ }
+ return val;
+ }
- #endif
+ void main() {
- uniform vec2 transmissionSamplerSize;
- uniform sampler2D transmissionSamplerMap;
+ vec2 usf_Uv = gl_FragCoord.xy * scale;
- uniform mat4 modelMatrix;
- uniform mat4 projectionMatrix;
+ ${d.basicFx_fragment_begin}
- varying vec3 vWorldPosition;
+ float noise = warp(usf_Uv ,warpStrength,tick * timeStrength);
-
-
+ vec4 usf_FragColor = vec4(noise);
- float w0( float a ) {
+ ${d.basicFx_fragment_end}
- return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );
+ gl_FragColor = usf_FragColor;
}
+`;
+var Ge = "gl_Position = vec4(position, 1.0);", He = `#ifdef USF_USE_SRC_SYSTEM
- float w1( float a ) {
-
- return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );
-
- }
+ #usf
- float w2( float a ){
+#endif`, Qe = `#ifdef USF_USE_SRC_SYSTEM
- return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );
+ #usf
+ float calcMixCirclePower(vec2 center, float radius, vec2 range)
+ {
+ vec2 adjustedUV = (vUv - 0.5) * vec2(aspectRatio, 1.0) + 0.5;
+ vec2 adjustedCenter = (center - 0.5) * vec2(aspectRatio, 1.0) + 0.5;
+
+ float dist = length(adjustedUV - adjustedCenter);
+ float power = radius > 0.0 ? 1.0 - dist / radius : 1.0;
+ return smoothstep(range.x,range.y,power);
}
- float w3( float a ) {
-
- return ( 1.0 / 6.0 ) * ( a * a * a );
-
+ float calcMixMapPower(sampler2D map,vec2 range, int ch)
+ {
+ return smoothstep(range.x,range.y, texture2D(map, vUv)[ch]);
}
-
- float g0( float a ) {
+ vec4 fitTexture(sampler2D src , vec2 uv, int fitType)
+ {
+
+ float a = fitType == 2 ? step(0.0, uv.x) * step(uv.x, 1.0) * step(0.0, uv.y) * step(uv.y, 1.0) : 1.;
+ return mix(vec4(0.), texture2D(src, uv), a);
+ }
- return w0( a ) + w1( a );
+#endif`, Ye = "vUv = uv;", We = `precision highp float;
- }
+varying vec2 vUv;
+uniform vec2 resolution;
+uniform vec2 texelSize;
+uniform float aspectRatio;
+uniform vec2 maxAspect;`, Ze = `precision highp float;
- float g1( float a ) {
+varying vec2 vUv;
+uniform vec2 resolution;
+uniform vec2 texelSize;
+uniform float aspectRatio;
+uniform vec2 maxAspect;
+uniform int renderCount;`, Je = `#ifdef USF_USE_MIXSRC
+ varying vec2 vMixSrcCoverUv;
+ uniform vec2 mixSrc_fitScale;
+#endif`, et = `#ifdef USF_USE_MIXSRC
+ vMixSrcCoverUv = calcSrcUv(vUv, mixSrc_fitScale);
+#endif`, tt = `#ifdef USF_USE_MIXSRC
+ varying vec2 vMixSrcCoverUv;
+ uniform sampler2D mixSrc_src;
+ uniform int mixSrc_fit;
+
+ uniform bool mixSrc_uv;
+ uniform int mixSrc_uv_ch;
+ uniform float mixSrc_uv_factor;
+ uniform vec2 mixSrc_uv_offset;
+ uniform float mixSrc_uv_radius;
+ uniform vec2 mixSrc_uv_position;
+ uniform vec2 mixSrc_uv_range;
+ uniform bool mixSrc_uv_mixMap;
+ uniform sampler2D mixSrc_uv_mixMap_src;
+ uniform int mixSrc_uv_mixMap_ch;
+
+ uniform bool mixSrc_color;
+ uniform float mixSrc_color_factor;
+ uniform float mixSrc_color_radius;
+ uniform vec2 mixSrc_color_position;
+ uniform vec2 mixSrc_color_range;
+ uniform bool mixSrc_color_mixMap;
+ uniform sampler2D mixSrc_color_mixMap_src;
+ uniform int mixSrc_color_mixMap_ch;
+
+ uniform bool mixSrc_alpha;
+ uniform float mixSrc_alpha_factor;
+ uniform float mixSrc_alpha_radius;
+ uniform vec2 mixSrc_alpha_position;
+ uniform vec2 mixSrc_alpha_range;
+ uniform bool mixSrc_alpha_mixMap;
+ uniform sampler2D mixSrc_alpha_mixMap_src;
+ uniform int mixSrc_alpha_mixMap_ch;
+
+#endif`, rt = `#ifdef USF_USE_MIXSRC
+
+ vec4 mixSrcColor = fitTexture(mixSrc_src, vMixSrcCoverUv, mixSrc_fit);
+
+ usf_Uv += mixSrc_uv
+ ? (mixSrc_uv_offset + (vec2(mixSrcColor[mixSrc_uv_ch]) * 2. - 1.)) *
+ (mixSrc_uv_mixMap
+ ? calcMixMapPower(mixSrc_uv_mixMap_src,mixSrc_uv_range,mixSrc_uv_mixMap_ch)
+ : calcMixCirclePower(mixSrc_uv_position,mixSrc_uv_radius,mixSrc_uv_range)) * mixSrc_uv_factor
+ : vec2(0.);
+
+#endif`, at = `#ifdef USF_USE_MIXSRC
+
+ usf_FragColor = mixSrc_color
+ ? mix(usf_FragColor, mixSrcColor,
+ (mixSrc_color_mixMap
+ ? calcMixMapPower(mixSrc_color_mixMap_src,mixSrc_color_range,mixSrc_color_mixMap_ch)
+ : calcMixCirclePower(mixSrc_color_position,mixSrc_color_radius,mixSrc_color_range)) * mixSrc_color_factor)
+ : usf_FragColor;
+
+
+ usf_FragColor = mixSrc_alpha
+ ? mix(usf_FragColor, mixSrcColor,
+ (mixSrc_alpha_mixMap
+ ? calcMixMapPower(mixSrc_alpha_mixMap_src,mixSrc_alpha_range,mixSrc_alpha_mixMap_ch)
+ : calcMixCirclePower(mixSrc_alpha_position,mixSrc_alpha_radius,mixSrc_alpha_range)) * mixSrc_alpha_factor * mixSrcColor.a)
+ : usf_FragColor;
+
+#endif`, nt = `#ifdef USF_USE_MIXDST
+ varying vec2 vMixDstCoverUv;
+ uniform vec2 mixDst_fitScale;
+#endif`, st = `#ifdef USF_USE_MIXDST
+ vMixDstCoverUv = calcSrcUv(vUv, mixDst_fitScale);
+#endif`, it = `#ifdef USF_USE_MIXDST
+
+ varying vec2 vMixDstCoverUv;
+ uniform sampler2D mixDst_src;
+ uniform int mixDst_fit;
+
+ uniform bool mixDst_uv;
+ uniform int mixDst_uv_ch;
+ uniform float mixDst_uv_factor;
+ uniform vec2 mixDst_uv_offset;
+ uniform float mixDst_uv_radius;
+ uniform vec2 mixDst_uv_position;
+ uniform vec2 mixDst_uv_range;
+ uniform bool mixDst_uv_mixMap;
+ uniform sampler2D mixDst_uv_mixMap_src;
+ uniform int mixDst_uv_mixMap_ch;
+
+ uniform bool mixDst_color;
+ uniform float mixDst_color_factor;
+ uniform float mixDst_color_radius;
+ uniform vec2 mixDst_color_position;
+ uniform vec2 mixDst_color_range;
+ uniform bool mixDst_color_mixMap;
+ uniform sampler2D mixDst_color_mixMap_src;
+ uniform int mixDst_color_mixMap_ch;
+
+ uniform bool mixDst_alpha;
+ uniform float mixDst_alpha_factor;
+ uniform float mixDst_alpha_radius;
+ uniform vec2 mixDst_alpha_position;
+ uniform vec2 mixDst_alpha_range;
+ uniform bool mixDst_alpha_mixMap;
+ uniform sampler2D mixDst_alpha_mixMap_src;
+ uniform int mixDst_alpha_mixMap_ch;
+
+#endif`, ot = `#ifdef USF_USE_MIXDST
+
+
+ vec2 mixedUv = vMixDstCoverUv;
+ mixedUv += mixDst_uv
+ ? (mixDst_uv_offset + (vec2(usf_FragColor[mixDst_uv_ch]) * 2. - 1.)) *
+ (mixDst_uv_mixMap
+ ? calcMixMapPower(mixDst_uv_mixMap_src,mixDst_uv_range,mixDst_uv_mixMap_ch)
+ : calcMixCirclePower(mixDst_uv_position,mixDst_uv_radius,mixDst_uv_range)) * mixDst_uv_factor
+ : vec2(0.);
+ vec4 mixDstColor = fitTexture(mixDst_src, mixedUv , mixDst_fit);
+
+
+ usf_FragColor = mixDst_color
+ ? mix(usf_FragColor, mixDstColor,
+ (mixDst_color_mixMap
+ ? calcMixMapPower(mixDst_color_mixMap_src,mixDst_color_range,mixDst_color_mixMap_ch)
+ : calcMixCirclePower(mixDst_color_position,mixDst_color_radius,mixDst_color_range)) * mixDst_color_factor)
+ : usf_FragColor;
+
+
+ usf_FragColor = mixDst_alpha
+ ? mix(usf_FragColor, mixDstColor,
+ (mixDst_alpha_mixMap
+ ? calcMixMapPower(mixDst_alpha_mixMap_src,mixDst_alpha_range,mixDst_alpha_mixMap_ch)
+ : calcMixCirclePower(mixDst_alpha_position,mixDst_alpha_radius,mixDst_alpha_range)) * mixDst_alpha_factor * mixDstColor.a)
+ : usf_FragColor;
+
+#endif`, ct = `#ifdef USF_USE_TEXTURE
+ vTextureCoverUv = calcSrcUv(vUv, texture_fitScale);
+#endif`, lt = `#ifdef USF_USE_TEXTURE
+ varying vec2 vTextureCoverUv;
+ uniform vec2 texture_fitScale;
+#endif`, ut = `#ifdef USF_USE_TEXTURE
+ varying vec2 vTextureCoverUv;
+ uniform sampler2D texture_src;
+ uniform int texture_fit;
+ uniform vec2 texture_fitScale;
+#endif`, ft = `#ifdef USF_USE_LEVELS
+ usf_FragColor = (usf_FragColor - vec4(levels_shadows)) / (vec4(levels_highlights) - vec4(levels_shadows));
+ usf_FragColor = pow(usf_FragColor, vec4(1.0 / levels_midtones));
+ usf_FragColor = usf_FragColor * (vec4(levels_outputMax) - vec4(levels_outputMin)) + vec4(levels_outputMin);
+#endif
- return w2( a ) + w3( a );
+#ifdef USF_USE_CONTRAST
+ usf_FragColor = clamp(((usf_FragColor-.5)*contrast_factor)+.5, 0., 1.);
+#endif
- }
+#ifdef USF_USE_COLORBALANCE
+ usf_FragColor.rgb = clamp(usf_FragColor.rgb * colorBalance_factor, 0., 1.);
+#endif
-
- float h0( float a ) {
+#ifdef USF_USE_HSV
+ vec3 hsv = rgb2hsv(usf_FragColor.rgb);
+ hsv.x = fract(hsv.x + hsv_hueShift);
+ hsv.y = clamp(hsv.y * hsv_saturation, 0.0, 1.0);
+ hsv.z = clamp(hsv.z * hsv_brightness, 0.0, 1.0);
+ usf_FragColor.rgb = hsv2rgb(hsv);
+#endif
- return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );
+#ifdef USF_USE_POSTERIZE
+ usf_FragColor = posterize(usf_FragColor, posterize_levels);
+#endif
- }
+#ifdef USF_USE_GRAYSCALE
+ float grayscale = dot(usf_FragColor.rgb, vec3(0.299 + grayscale_weight.r, 0.587 + grayscale_weight.g, 0.114 + grayscale_weight.b));
+ grayscale = grayscale_threshold > 0.0 ? step(grayscale_threshold, grayscale) : grayscale;
+ vec3 duotoneColor = mix(grayscale_duotone_color0, grayscale_duotone_color1, grayscale);
+ usf_FragColor.rgb = grayscale_duotone ? duotoneColor : vec3(grayscale);
+#endif`, _t = `#ifdef USF_USE_LEVELS
+ uniform vec4 levels_shadows;
+ uniform vec4 levels_midtones;
+ uniform vec4 levels_highlights;
+ uniform vec4 levels_outputMin;
+ uniform vec4 levels_outputMax;
+#endif
- float h1( float a ) {
+#ifdef USF_USE_CONTRAST
+ uniform vec4 contrast_factor;
+#endif
- return 1.0 + w3( a ) / ( w2( a ) + w3( a ) );
+#ifdef USF_USE_COLORBALANCE
+ uniform vec3 colorBalance_factor;
+#endif
+#ifdef USF_USE_HSV
+ uniform float hsv_hueShift;
+ uniform float hsv_saturation;
+ uniform float hsv_brightness;
+ vec3 hsv2rgb(vec3 c)
+ {
+ vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
+ vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
+ return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
}
+ vec3 rgb2hsv(vec3 c)
+ {
+ vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
+ vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
+ vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
+
+ float d = q.x - min(q.w, q.y);
+ float e = 1.0e-10;
+ return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
+ }
+#endif
- vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {
-
- uv = uv * texelSize.zw + 0.5;
+#ifdef USF_USE_POSTERIZE
+ uniform vec4 posterize_levels;
+ vec4 posterize(vec4 color, vec4 levels)
+ {
+ return vec4(
+ levels.x > 1. ? floor(color.r * levels.x) / levels.x : color.r,
+ levels.y > 1. ? floor(color.g * levels.y) / levels.y : color.g,
+ levels.z > 1. ? floor(color.b * levels.z) / levels.z : color.b,
+ levels.w > 1. ? floor(color.a * levels.w) / levels.w : color.a
+ );
+ }
+#endif
- vec2 iuv = floor( uv );
- vec2 fuv = fract( uv );
+#ifdef USF_USE_GRAYSCALE
+ uniform vec3 grayscale_weight;
+ uniform bool grayscale_duotone;
+ uniform vec3 grayscale_duotone_color0;
+ uniform vec3 grayscale_duotone_color1;
+ uniform float grayscale_threshold;
+#endif`, vt = `vec2 calcSrcUv(vec2 uv, vec2 fitScale) {
+ return uv * fitScale + (1.0 - fitScale) * .5;
+}`;
+const mt = Object.freeze({
+ plane_vertex: Ge,
+ srcSystem_pars_vertex: He,
+ srcSystem_pars_fragment: Qe,
+ default_vertex: Ye,
+ default_pars_vertex: We,
+ default_pars_fragment: Ze,
+ mixSrc_vertex: et,
+ mixSrc_pars_vertex: Je,
+ mixSrc_pars_fragment: tt,
+ mixSrc_fragment_begin: rt,
+ mixSrc_fragment_end: at,
+ mixDst_pars_vertex: nt,
+ mixDst_vertex: st,
+ mixDst_pars_fragment: it,
+ mixDst_fragment: ot,
+ texture_vertex: ct,
+ texture_pars_vertex: lt,
+ texture_pars_fragment: ut,
+ adjustments_fragment: ft,
+ adjustments_pars_fragment: _t,
+ calcSrcUv: vt
+});
+function V(e) {
+ return e.filter((t) => t !== "").join(`
+`);
+}
+function ne(e, t, r) {
+ let a, n;
+ const i = {
+ default: {
+ vertexPars: d.default_pars_vertex,
+ vertexMain: d.default_vertex,
+ fragmentPars: d.default_pars_fragment
+ },
+ basicFx: {
+ vertexPars: d.basicFx_pars_vertex,
+ vertexMain: d.basicFx_vertex,
+ fragmentPars: d.basicFx_pars_fragment
+ },
+ samplingFx: {
+ vertexPars: V([
+ d.basicFx_pars_vertex,
+ d.samplingFx_pars_vertex
+ ]),
+ vertexMain: V([
+ d.basicFx_vertex,
+ d.samplingFx_vertex
+ ]),
+ fragmentPars: V([
+ d.basicFx_pars_fragment,
+ d.samplingFx_pars_fragment
+ ])
+ }
+ }, s = i[r].vertexPars, c = i[r].vertexMain, l = i[r].fragmentPars;
+ return e && (a = V([s, e]), a = a.replace(
+ /void\s+main\s*\(\)\s*\{/,
+ `void main() {
+${c}`
+ )), t && (n = V([l, t])), [a, n];
+}
+const pt = /^[ \t]*#usf +<([\w\d./]+)>/gm;
+function xt(e, t) {
+ return ae(mt[t] || "");
+}
+function ae(e) {
+ return e.replace(pt, xt);
+}
+function dt(e) {
+ return e && Oe.some((t) => e[t] === !0);
+}
+function ht(e) {
+ const t = {}, r = (a, n = "") => {
+ for (const [i, s] of Object.entries(a)) {
+ const c = n ? `${n}_${i}` : i;
+ s && typeof s == "object" && !Array.isArray(s) && !dt(s) ? (t[c] = !0, r(s, c)) : (t.hasOwnProperty(c) && j(`${c} already exists and will be overwritten.`), t[c] = s);
+ }
+ };
+ return r(e), t;
+}
+class w extends o.ShaderMaterial {
+ constructor({
+ uniformValues: t,
+ materialParameters: r = {},
+ uniforms: a,
+ vertexShader: n,
+ fragmentShader: i
+ } = {}) {
+ super(r), this.uniforms = {
+ resolution: { value: new o.Vector2() },
+ texelSize: { value: new o.Vector2() },
+ aspectRatio: { value: 0 },
+ maxAspect: { value: new o.Vector2() },
+ // 一部のFXでiterationをカウントする必要があるため
+ renderCount: { value: 0 },
+ ...a
+ }, this._setupShaders(n, i), this.setUniformValues(t), this._defineUniformAccessors();
+ }
+ /** This is updated in useFxScene */
+ updateResolution(t, r) {
+ const a = Math.max(t, r);
+ this.uniforms.resolution.value.set(t, r), this.uniforms.texelSize.value.set(1 / t, 1 / r), this.uniforms.aspectRatio.value = t / r, this.uniforms.maxAspect.value.set(a / t, a / r);
+ }
+ _setupShaders(t, r) {
+ if (!t && !r)
+ return;
+ const [a, n] = ne(
+ t,
+ r,
+ "default"
+ );
+ this.vertexShader = a ? ae(a) : this.vertexShader, this.fragmentShader = n ? ae(n) : this.fragmentShader;
+ }
+ setUniformValues(t) {
+ if (t === void 0)
+ return;
+ const r = ht(t);
+ for (const [a, n] of Object.entries(r)) {
+ if (n === void 0) {
+ j(`parameter '${a}' has value of undefined.`);
+ continue;
+ }
+ const i = this.uniforms[a];
+ if (i === void 0) {
+ j(`'${a}' is not a uniform property of ${this.type}.`);
+ continue;
+ }
+ i.value = typeof n == "function" ? n(i.value) : n;
+ }
+ return r;
+ }
+ /** define getter/setters */
+ _defineUniformAccessors(t) {
+ for (const r of Object.keys(this.uniforms)) {
+ if (this.hasOwnProperty(r)) {
+ j(`'${r}' is already defined in ${this.type}.`);
+ continue;
+ }
+ Object.defineProperty(this, r, {
+ get: () => this.uniforms[r].value,
+ set: (a) => {
+ this.uniforms[r].value = a, t == null || t();
+ }
+ });
+ }
+ }
+}
+w.key = o.MathUtils.generateUUID();
+class se extends w {
+ constructor({
+ uniforms: t,
+ vertexShader: r,
+ fragmentShader: a,
+ ...n
+ } = {}) {
+ var i;
+ super({
+ ...n,
+ uniforms: {
+ ...o.UniformsUtils.clone(re),
+ ...t
+ }
+ }), this.defines = {
+ ...(i = n == null ? void 0 : n.materialParameters) == null ? void 0 : i.defines
+ }, this.programCache = 0, this.fxKey = this._setupFxKey(this.uniforms), this._setupFxShaders(r, a);
+ }
+ _setupFxShaders(t, r) {
+ if (!t && !r)
+ return;
+ this._updateFxDefines();
+ const [a, n] = this._handleMergeShaderLib(
+ t,
+ r
+ );
+ super._setupShaders(a, n);
+ }
+ /** SamplingFxMaterialで継承するため、handlerとして独立させる */
+ _handleMergeShaderLib(t, r) {
+ return ne(t, r, "basicFx");
+ }
+ _updateFxShaders() {
+ if (!this.fxKey)
+ return;
+ const t = this.programCache, { diffCount: r, newFxKey: a } = this._handleUpdateFxShaders();
+ this.programCache += r, this.fxKey = a, t !== this.programCache && (this._updateFxDefines(), this.needsUpdate = !0);
+ }
+ /** SamplingFxMaterialで継承するため、handlerとして独立させる */
+ _handleUpdateFxShaders() {
+ const t = ue(this.uniforms);
+ return {
+ diffCount: Object.keys(t).filter((a) => this.fxKey[a] !== t[a]).length,
+ newFxKey: t
+ };
+ }
+ _updateFxDefines() {
+ Object.assign(this.defines, this._handleUpdateFxDefines());
+ }
+ /** SamplingFxMaterialで継承するため、handlerとして独立させる */
+ _handleUpdateFxDefines() {
+ return Pe(this.fxKey);
+ }
+ _isContainsBasicFxValues(t, r) {
+ return t ? Object.keys(t).some(
+ (a) => Object.keys(r ?? re).includes(a)
+ ) : !1;
+ }
+ _setupFxKey(t) {
+ return ue(t);
+ }
+ /*===============================================
+ Fit Scale
+ ===============================================*/
+ _calcFitScale(t, r) {
+ var c;
+ let a = 1;
+ const n = new o.Vector2(1, 1), i = this.uniforms.aspectRatio.value, s = (c = t == null ? void 0 : t.source) == null ? void 0 : c.data;
+ return s != null && s.width && (s != null && s.height) ? a = s.width / s.height : a = i, r === 1 ? n.set(
+ Math.min(i / a, 1),
+ Math.min(a / i, 1)
+ ) : r === 2 && n.set(
+ Math.max(i / a, 1),
+ Math.max(a / i, 1)
+ ), n;
+ }
+ _setFitScale(t) {
+ const r = this.uniforms;
+ r[`${t}_fitScale`].value = this._calcFitScale(
+ r[`${t}_src`].value,
+ r[`${t}_fit`].value
+ );
+ }
+ _updateFitScale() {
+ var t, r;
+ (t = this.fxKey) != null && t.mixSrc && this._setFitScale("mixSrc"), (r = this.fxKey) != null && r.mixDst && this._setFitScale("mixDst");
+ }
+ /*===============================================
+ super FxMaterial
+ ===============================================*/
+ /**
+ * @param needsUpdate default : `true`
+ */
+ setUniformValues(t, r = !0) {
+ const a = super.setUniformValues(t);
+ return r && this._isContainsBasicFxValues(a) && (this._updateFxShaders(), this._updateFitScale()), a;
+ }
+ _defineUniformAccessors(t) {
+ super._defineUniformAccessors(() => {
+ this._updateFxShaders(), this._updateFitScale(), t == null || t();
+ });
+ }
+ updateResolution(t, r) {
+ super.updateResolution(t, r), this._updateFitScale();
+ }
+}
+const ge = class Se extends se {
+ constructor(t = {}) {
+ super({
+ ...t,
+ vertexShader: Xe,
+ fragmentShader: qe,
+ uniforms: {
+ tick: { value: 0 },
+ scale: { value: 0.03 },
+ timeStrength: { value: 0.3 },
+ noiseOctaves: { value: 2 },
+ fbmOctaves: { value: 2 },
+ warpOctaves: { value: 2 },
+ warpDirection: { value: new o.Vector2(2, 2) },
+ warpStrength: { value: 8 },
+ timeOffset: { value: 0 }
+ }
+ }), this.type = Se.type;
+ }
+ static get type() {
+ return "NoiseMaterial";
+ }
+};
+ge.key = o.MathUtils.generateUUID();
+let gt = ge;
+const fe = `
+ uniform bool bounce;
+ varying vec2 vL;
+ varying vec2 vR;
+ varying vec2 vT;
+ varying vec2 vB;
+`, ee = (e = !0) => `
+ vec3 pos = position;
+ vec2 scale = ${e ? "bounce ? vec2(1.,1.) : 1.-texelSize*2." : "1.-texelSize*2."};
+ pos.xy = pos.xy * scale;
+ vUv = vec2(.5)+(pos.xy)*.5;
+ `, _e = (e) => `
+ vL = vUv - vec2(texelSize.x * ${e}, 0.0);
+ vR = vUv + vec2(texelSize.x * ${e}, 0.0);
+ vT = vUv + vec2(0.0, texelSize.y * ${e});
+ vB = vUv - vec2(0.0, texelSize.y * ${e});
+ `, St = {
+ main: `
+ ${fe}
+
+ void main(){
+
+ ${ee()}
+ ${_e("1.")}
- float g0x = g0( fuv.x );
- float g1x = g1( fuv.x );
- float h0x = h0( fuv.x );
- float h1x = h1( fuv.x );
- float h0y = h0( fuv.y );
- float h1y = h1( fuv.y );
+ gl_Position = vec4(pos, 1.0);
+ }
+ `,
+ poisson: `
+ ${fe}
+
+ void main(){
- vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;
- vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;
- vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;
- vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;
+ ${ee()}
+ ${_e("2.")}
- return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +
- g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );
+ gl_Position = vec4(pos, 1.0);
+ }
+ `,
+ advection: `
+ void main(){
+ ${ee(!1)}
+ gl_Position = vec4(pos, 1.0);
+ }
+ `,
+ splat: `
+ uniform vec2 center;
+ uniform vec2 radius;
+ void main(){
+ vec2 pos = position.xy * radius * 2.0 * texelSize + center;
+ gl_Position = vec4(pos, 0.0, 1.0);
+ }
+ `
+}, A = St;
+var yt = `uniform float deltaTime;
+uniform sampler2D velocity;
+uniform float dissipation;
- }
+void main(){
+ vec2 vel = texture2D(velocity, vUv).xy;
+ vec2 uv2 = vUv - vel * deltaTime * maxAspect;
+ vec2 newVel = texture2D(velocity, uv2).xy;
+ gl_FragColor = vec4(dissipation * newVel, 0.0, 0.0);
+}`;
+class X extends w {
+ constructor(t) {
+ super({
+ ...t,
+ vertexShader: A.advection,
+ fragmentShader: yt,
+ uniforms: {
+ dissipation: { value: 0.99 },
+ velocity: { value: S },
+ deltaTime: { value: W }
+ }
+ }), this.type = X.type;
+ }
+ static get type() {
+ return "AdvectionMaterial";
+ }
+}
+var Ft = `uniform float deltaTime;
+uniform sampler2D velocity;
- vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {
+varying vec2 vL;
+varying vec2 vR;
+varying vec2 vT;
+varying vec2 vB;
- vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );
- vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );
- vec2 fLodSizeInv = 1.0 / fLodSize;
- vec2 cLodSizeInv = 1.0 / cLodSize;
- vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );
- vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );
- return mix( fSample, cSample, fract( lod ) );
+void main(){
+ float L = texture2D(velocity, vL).r;
+ float R = texture2D(velocity, vR).r;
+ float B = texture2D(velocity, vB).g;
+ float T = texture2D(velocity, vT).g;
+
+ float divergence = (R-L + T-B) / 2.0;
+ gl_FragColor = vec4(divergence / deltaTime);
+}`;
+class q extends w {
+ constructor(t) {
+ super({
+ ...t,
+ vertexShader: A.main,
+ fragmentShader: Ft,
+ uniforms: {
+ bounce: { value: !0 },
+ velocity: { value: S },
+ deltaTime: { value: W }
+ }
+ }), this.type = q.type;
+ }
+ static get type() {
+ return "DivergenceMaterial";
+ }
+}
+var Mt = `uniform float deltaTime;
+uniform sampler2D pressure;
+uniform sampler2D velocity;
- }
+varying vec2 vL;
+varying vec2 vR;
+varying vec2 vT;
+varying vec2 vB;
- vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {
+void main(){
-
- vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );
+ float L = texture2D(pressure, vL).r;
+ float R = texture2D(pressure, vR).r;
+ float B = texture2D(pressure, vB).r;
+ float T = texture2D(pressure, vT).r;
-
- vec3 modelScale;
- modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );
- modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );
- modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );
+ vec2 v = texture2D(velocity, vUv).xy;
+ vec2 gradP = vec2(R - L, T - B) * 0.5;
+ v = v - gradP * deltaTime;
-
- return normalize( refractionVector ) * thickness * modelScale;
+ gl_FragColor = vec4(v, 0.0, 1.0);
- }
+}`;
+class G extends w {
+ constructor(t) {
+ super({
+ ...t,
+ vertexShader: A.main,
+ fragmentShader: Mt,
+ uniforms: {
+ bounce: { value: !0 },
+ deltaTime: { value: W },
+ pressure: { value: S },
+ velocity: { value: S }
+ }
+ }), this.type = G.type;
+ }
+ static get type() {
+ return "PressureMaterial";
+ }
+}
+var Ut = `uniform sampler2D pressure;
+uniform sampler2D divergence;
- float applyIorToRoughness( const in float roughness, const in float ior ) {
+varying vec2 vL;
+varying vec2 vR;
+varying vec2 vT;
+varying vec2 vB;
-
-
- return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );
+void main(){
- }
+ float L = texture2D(pressure, vL).r;
+ float R = texture2D(pressure, vR).r;
+ float B = texture2D(pressure, vB).r;
+ float T = texture2D(pressure, vT).r;
- vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {
+ float div = texture2D(divergence, vUv).r;
+
+ float newP = (L + R + B + T) / 4.0 - div;
- float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );
- return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );
+ gl_FragColor = vec4(newP);
+}`;
+class H extends w {
+ constructor({ customParameters: t, ...r }) {
+ super({
+ ...r,
+ vertexShader: A.poisson,
+ fragmentShader: Ut,
+ uniforms: {
+ bounce: { value: !0 },
+ pressure: { value: S },
+ divergence: { value: S }
+ }
+ }), this.iterations = (t == null ? void 0 : t.iterations) ?? 32, this.type = H.type;
+ }
+ static get type() {
+ return "PoissonMaterial";
+ }
+}
+var Dt = `uniform vec2 force;
+uniform float forceBias;
- }
+void main(){
+ gl_FragColor = vec4(force * forceBias * pow(1.0 - clamp(2.0 * distance(vUv, vec2(0.5)), 0.0, 1.0), 2.0), 0.0, 1.0);
+}`;
+class Q extends w {
+ constructor(t) {
+ super({
+ ...t,
+ vertexShader: A.splat,
+ fragmentShader: Dt,
+ uniforms: {
+ forceBias: { value: 20 },
+ radius: { value: new o.Vector2(50, 50) },
+ force: { value: new o.Vector2(0, 0) },
+ center: { value: new o.Vector2(0, 0) }
+ }
+ }), this.type = Q.type, this.blending = o.AdditiveBlending;
+ }
+ static get type() {
+ return "SplatMaterial";
+ }
+}
+class Y extends se {
+ constructor(t = {}) {
+ super({
+ ...t,
+ vertexShader: `
+ void main() {
+ ${d.plane_vertex}
+ }
+ `,
+ fragmentShader: `
+ uniform sampler2D src;
+ void main() {
+ vec2 usf_Uv = vUv;
+
+ ${d.basicFx_fragment_begin}
- vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {
+ vec4 usf_FragColor = vec4(length(texture2D(src,usf_Uv).rg));
- if ( isinf( attenuationDistance ) ) {
+ ${d.basicFx_fragment_end}
-
- return vec3( 1.0 );
+ gl_FragColor = usf_FragColor;
+ }
+ `,
+ uniforms: {
+ src: { value: S }
+ }
+ }), this.type = Y.type;
+ }
+ static get type() {
+ return "OutputMaterial";
+ }
+}
+const W = 8e-3, kt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
+ __proto__: null,
+ AdvectionMaterial: X,
+ DELTA_TIME: W,
+ DivergenceMaterial: q,
+ OutputMaterial: Y,
+ PoissonMaterial: H,
+ PressureMaterial: G,
+ SplatMaterial: Q
+}, Symbol.toStringTag, { value: "Module" })), ve = {
+ texture: { value: !0 },
+ texture_src: { value: S },
+ texture_fit: { value: 0 },
+ texture_fitScale: { value: new o.Vector2(1, 1) }
+};
+class ye extends se {
+ constructor({ uniforms: t, ...r }) {
+ super({
+ ...r,
+ uniforms: {
+ ...o.UniformsUtils.clone(ve),
+ ...t
+ }
+ });
+ }
+ _handleMergeShaderLib(t, r) {
+ return ne(t, r, "samplingFx");
+ }
+ _isContainsBasicFxValues(t) {
+ return super._isContainsBasicFxValues(t, {
+ ...re,
+ ...ve
+ });
+ }
+ _updateFitScale() {
+ super._updateFitScale(), this._setFitScale("texture");
+ }
+ _setupFxKey(t) {
+ const r = super._setupFxKey(t);
+ return r.srcSystem = !0, r;
+ }
+ _handleUpdateFxShaders() {
+ const { diffCount: t, newFxKey: r } = super._handleUpdateFxShaders();
+ return r.srcSystem = !0, {
+ diffCount: t,
+ newFxKey: r
+ };
+ }
+ _handleUpdateFxDefines() {
+ return Object.assign(super._handleUpdateFxDefines(), {
+ USF_USE_TEXTURE: !0
+ });
+ }
+}
+const Fe = class Me extends ye {
+ constructor(t = {}) {
+ super({
+ ...t,
+ vertexShader: `
+ void main() {
+ ${d.plane_vertex}
+ }
+ `,
+ fragmentShader: `
+ void main() {
+ vec2 usf_Uv = vTextureCoverUv;
- } else {
+ ${d.basicFx_fragment_begin}
-
- vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;
- vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );
- return transmittance;
+ vec4 usf_FragColor = fitTexture(texture_src,usf_Uv,texture_fit);
- }
+ ${d.basicFx_fragment_end}
+ gl_FragColor = usf_FragColor;
+ }
+ `
+ }), this.type = Me.type;
+ }
+ static get type() {
+ return "BufferMaterial";
+ }
+};
+Fe.key = o.MathUtils.generateUUID();
+let bt = Fe;
+class ie extends w {
+ static get type() {
+ return "RawBlankMaterial";
+ }
+ constructor(t) {
+ super(t), this.type = ie.type;
+ }
+}
+const me = `
+ uniform float time;
+ uniform vec2 pointer;
+ uniform sampler2D backbuffer;
+`;
+class oe extends w {
+ constructor({
+ vertexShader: t,
+ fragmentShader: r,
+ uniforms: a,
+ ...n
+ }) {
+ super({
+ ...n,
+ vertexShader: t && V([me, t]),
+ fragmentShader: r && V([me, r]),
+ uniforms: {
+ time: { value: 0 },
+ pointer: { value: new o.Vector2() },
+ backbuffer: { value: new o.Texture() },
+ ...a
+ }
+ }), this.type = oe.type;
+ }
+ static get type() {
+ return "BlankMaterial";
+ }
+}
+const wt = `
+ void main() {
+ ${d.plane_vertex}
}
-
- vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,
- const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,
- const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,
- const in vec3 attenuationColor, const in float attenuationDistance ) {
-
- vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );
- vec3 refractedRayExit = position + transmissionRay;
-
-
- vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );
- vec2 refractionCoords = ndcPos.xy / ndcPos.w;
- refractionCoords += 1.0;
- refractionCoords /= 2.0;
-
-
- vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );
-
- vec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );
- vec3 attenuatedColor = transmittance * transmittedLight.rgb;
-
-
- vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );
-
-
-
- float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;
-
- return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );
-
+`, Ct = `
+ uniform vec2 count;
+ uniform bool autoScale;
+ uniform float tick;
+ uniform bool shuffle;
+ uniform float shuffle_frequency;
+ uniform float shuffle_range;
+
+ uniform bool sprite;
+ uniform sampler2D sprite_src;
+ uniform float sprite_length;
+ uniform float sprite_shuffleSpeed;
+
+ float hash(vec2 p) {
+ return fract(sin(dot(p, vec2(12.9898, 78.233))) * 43758.5453);
}
-#endif`, On = `#ifdef USE_TRANSMISSION
-
-material.transmission = _transmission;
-material.transmissionAlpha = 1.0;
-material.thickness = thickness;
-material.attenuationDistance = attenuationDistance;
-material.attenuationColor = attenuationColor;
-#ifdef USE_TRANSMISSIONMAP
+ vec2 shuffleIndex(vec2 cellIndex , vec2 count) {
- material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;
+ float discreteTime = floor(tick * shuffle_frequency);
-#endif
-
-#ifdef USE_THICKNESSMAP
+ float r1 = hash(cellIndex + vec2(0.123, discreteTime));
+ float r2 = hash(cellIndex + vec2(0.789, discreteTime));
- material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;
+ // -range ~ +range
+ float offsetX = floor(r1 * (shuffle_range * 2.0 + 1.0)) - shuffle_range;
+ float offsetY = floor(r2 * (shuffle_range * 2.0 + 1.0)) - shuffle_range;
+ vec2 offset = vec2(offsetX, offsetY);
-#endif
+ return mod(cellIndex + offset, count);
+ }
-vec3 pos = vWorldPosition;
+ void main() {
+ vec2 usf_Uv = vUv;
+ ${d.basicFx_fragment_begin}
-vec3 v = normalize( cameraPosition - pos );
-vec3 n = inverseTransformDirection( normal, viewMatrix );
+ vec2 n_count = count;
+ n_count.x *= autoScale ? aspectRatio : 1.;
-vec4 transmitted = getIBLVolumeRefraction(
- n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,
- pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,
- material.attenuationColor, material.attenuationDistance );
+ vec2 cellIndex = ceil(usf_Uv * n_count);
-material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );
+ vec2 shuffledIndex = shuffle ? shuffleIndex(cellIndex, n_count) : cellIndex;
-float runningSeed = 0.0;
-vec3 transmission = vec3(0.0);
-float transmissionR, transmissionB, transmissionG;
-float randomCoords = rand(runningSeed++);
-float thickness_smear = thickness * max(pow(roughnessFactor, 0.33), uAnisotropicBlur);
-vec3 distortionNormal = vec3(0.0);
-vec3 temporalOffset = vec3(uTime, -uTime, -uTime) * uTemporalDistortion;
+ vec2 cellCenter = calcSrcUv((shuffledIndex - .5) / n_count, texture_fitScale);
-if (uDistortion > 0.0) {
- distortionNormal = uDistortion * vec3(snoiseFractal(vec3((pos * uDistortionScale + temporalOffset))), snoiseFractal(vec3(pos.zxy * uDistortionScale - temporalOffset)), snoiseFractal(vec3(pos.yxz * uDistortionScale + temporalOffset)));
-}
+ vec4 gridTextureColor = fitTexture(texture_src, cellCenter, texture_fit);
-for (float i = 0.0; i < uRefractionSamples; i ++) {
- vec3 sampleNorm = normalize(n + roughnessFactor * roughnessFactor * 2.0 * normalize(vec3(rand(runningSeed++) - 0.5, rand(runningSeed++) - 0.5, rand(runningSeed++) - 0.5)) * pow(rand(runningSeed++), 0.33) + distortionNormal);
-
- transmissionR = getIBLVolumeRefraction(
- sampleNorm, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,
- pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness + thickness_smear * (i + randomCoords) / uRefractionSamples,
- material.attenuationColor, material.attenuationDistance
- ).r;
- transmissionG = getIBLVolumeRefraction(
- sampleNorm, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,
- pos, modelMatrix, viewMatrix, projectionMatrix, material.ior * (1.0 + uChromaticAberration * (i + randomCoords) / uRefractionSamples) , material.thickness + thickness_smear * (i + randomCoords) / uRefractionSamples,
- material.attenuationColor, material.attenuationDistance
- ).g;
- transmissionB = getIBLVolumeRefraction(
- sampleNorm, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,
- pos, modelMatrix, viewMatrix, projectionMatrix, material.ior * (1.0 + 2.0 * uChromaticAberration * (i + randomCoords) / uRefractionSamples), material.thickness + thickness_smear * (i + randomCoords) / uRefractionSamples,
- material.attenuationColor, material.attenuationDistance
- ).b;
- transmission.r += transmissionR;
- transmission.g += transmissionG;
- transmission.b += transmissionB;
-}
+ if(sprite){
+ vec2 cellUv = fract(usf_Uv * n_count);
+ float cellHash = hash(cellIndex);
+ float spritePos = fract(cellHash + tick * sprite_shuffleSpeed);
+ float spriteIndex = floor(spritePos * sprite_length);
+ float spriteSize = 1.0 / sprite_length;
+ float spriteOffset = spriteIndex * spriteSize;
+ float spriteU = spriteOffset + cellUv.x * spriteSize;
+ vec2 spriteUv = vec2(spriteU, cellUv.y);
+ vec4 spriteColor = texture2D(sprite_src, spriteUv);
+ gridTextureColor *= spriteColor;
+ }
-transmission /= uRefractionSamples;
+ vec4 usf_FragColor = gridTextureColor;
+ ${d.basicFx_fragment_end}
-totalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );
+ gl_FragColor = usf_FragColor;
-#endif`;
-const Bn = ({
- mat: e,
- isCustomTransmission: t,
- parameters: n
-}) => {
- e.type === "MeshPhysicalMaterial" && t && (n.fragmentShader = n.fragmentShader.replace(
- "#include ",
- `${Un}`
- ), n.fragmentShader = n.fragmentShader.replace(
- "#include ",
- `${On}`
- )), e.normalMap || (n.vertexShader = n.vertexShader.replace(
- "void main() {",
- `
- attribute vec4 tangent;
-
- void main() {
- `
- ));
-}, En = ({
- baseMaterial: e,
- materialParameters: t,
- isCustomTransmission: n = !1,
- onBeforeInit: r,
- depthOnBeforeInit: s,
- depth: l = !1
-}) => {
- const { material: c, depthMaterial: i } = y(() => {
- const d = new (e || o.MeshPhysicalMaterial)(
- t || {}
- );
- Object.assign(d.userData, {
+ }
+`;
+class ce extends ye {
+ constructor(t) {
+ super({
+ ...t,
+ vertexShader: wt,
+ fragmentShader: Ct,
uniforms: {
- uTime: { value: 0 },
- uWobblePositionFrequency: {
- value: W.wobblePositionFrequency
- },
- uWobbleTimeFrequency: {
- value: W.wobbleTimeFrequency
- },
- uWobbleStrength: { value: W.wobbleStrength },
- uWarpPositionFrequency: {
- value: W.warpPositionFrequency
- },
- uWarpTimeFrequency: { value: W.warpTimeFrequency },
- uWarpStrength: { value: W.warpStrength },
- uColor0: { value: W.color0 },
- uColor1: { value: W.color1 },
- uColor2: { value: W.color2 },
- uColor3: { value: W.color3 },
- uColorMix: { value: W.colorMix },
- uEdgeThreshold: { value: W.edgeThreshold },
- uEdgeColor: { value: W.edgeColor },
- uChromaticAberration: {
- value: W.chromaticAberration
- },
- uAnisotropicBlur: { value: W.anisotropicBlur },
- uDistortion: { value: W.distortion },
- uDistortionScale: { value: W.distortionScale },
- uTemporalDistortion: { value: W.temporalDistortion },
- uRefractionSamples: { value: W.refractionSamples },
- transmission: { value: 0 },
- _transmission: { value: 1 },
- transmissionMap: { value: null }
+ count: { value: new o.Vector2(20, 20) },
+ autoScale: { value: !0 },
+ tick: { value: 0 },
+ shuffle: { value: !1 },
+ shuffle_frequency: { value: 5 },
+ shuffle_range: { value: 2 },
+ sprite: { value: !1 },
+ sprite_src: { value: new o.Texture() },
+ sprite_length: { value: 10 },
+ sprite_shuffleSpeed: { value: 0 }
}
- }), d.onBeforeCompile = (f) => {
- Pe(f), zn(f), Bn({
- parameters: f,
- mat: d,
- isCustomTransmission: n
- });
- const x = V(
- {
- fragmentShader: f.fragmentShader,
- vertexShader: f.vertexShader,
- // Because wobble3D uses userData to update uniforms.
- uniforms: d.userData.uniforms
- },
- r
- );
- f.fragmentShader = x.fragmentShader, f.vertexShader = x.vertexShader, Object.assign(f.uniforms, x.uniforms);
- }, d.needsUpdate = !0;
- let p = null;
- return l && (p = new o.MeshDepthMaterial({
- depthPacking: o.RGBADepthPacking
- }), p.onBeforeCompile = (f) => {
- Object.assign(f.uniforms, d.userData.uniforms), Pe(f), V(f, s);
- }, p.needsUpdate = !0), { material: d, depthMaterial: p };
- }, [
- t,
- e,
- r,
- s,
- n,
- l
- ]);
- return Z(() => () => {
- i && i.dispose();
- }, [i]), {
- material: c,
- depthMaterial: i
- };
-}, Ln = ({
- scene: e = !1,
- geometry: t,
- isCustomTransmission: n,
- baseMaterial: r,
- materialParameters: s,
- depth: l,
- onBeforeInit: c,
- depthOnBeforeInit: i
+ }), this.setNearestFilter(), this.type = ce.type;
+ }
+ static get type() {
+ return "GridMaterial";
+ }
+ /** When gridding with floor, you must use NearestFilter. */
+ setNearestFilter() {
+ this.uniforms.texture_src.value.magFilter = o.NearestFilter, this.uniforms.texture_src.value.minFilter = o.NearestFilter, this.uniforms.sprite_src.value.magFilter = o.NearestFilter, this.uniforms.sprite_src.value.minFilter = o.NearestFilter;
+ }
+}
+const $t = ({
+ size: e,
+ dpr: t,
+ fboAutoSetSize: r,
+ renderTargetOptions: a,
+ materialParameters: n,
+ ...i
}) => {
- const d = y(() => {
- let h = t || new o.IcosahedronGeometry(2, 20);
- return h = Ee(h), h.computeTangents(), h;
- }, [t]), { material: p, depthMaterial: f } = En({
- baseMaterial: r,
- materialParameters: s,
- isCustomTransmission: n,
- onBeforeInit: c,
- depthOnBeforeInit: i,
- depth: l
- }), x = E(e, d, p, o.Mesh), a = p.userData, v = R(a), u = F(a);
- return [
- _(
- (h, M, b) => {
- h && v(
- "uTime",
- (M == null ? void 0 : M.beat) || h.clock.getElapsedTime()
- ), M !== void 0 && (v("uWobbleStrength", M.wobbleStrength), v(
- "uWobblePositionFrequency",
- M.wobblePositionFrequency
- ), v("uWobbleTimeFrequency", M.wobbleTimeFrequency), v("uWarpStrength", M.warpStrength), v("uWarpPositionFrequency", M.warpPositionFrequency), v("uWarpTimeFrequency", M.warpTimeFrequency), v("uColor0", M.color0), v("uColor1", M.color1), v("uColor2", M.color2), v("uColor3", M.color3), v("uColorMix", M.colorMix), v("uEdgeThreshold", M.edgeThreshold), v("uEdgeColor", M.edgeColor), v("uChromaticAberration", M.chromaticAberration), v("uAnisotropicBlur", M.anisotropicBlur), v("uDistortion", M.distortion), v("uDistortionScale", M.distortionScale), v("uRefractionSamples", M.refractionSamples), v("uTemporalDistortion", M.temporalDistortion), u(b));
+ const s = R(t), { scene: c, material: l, camera: u } = M({
+ size: e,
+ dpr: s.shader,
+ material: gt,
+ uniformValues: i,
+ materialParameters: n
+ }), [v, _] = b({
+ scene: c,
+ camera: u,
+ size: e,
+ dpr: s.fbo,
+ fboAutoSetSize: r,
+ ...a
+ }), m = h(
+ (p, f = !0) => {
+ l.setUniformValues(p, f);
+ },
+ [l]
+ );
+ return {
+ render: h(
+ (p, f) => {
+ const { gl: g, clock: C } = p;
+ return f && m(f, !1), l.uniforms.tick.value = typeof (f == null ? void 0 : f.tick) == "function" ? f.tick(l.uniforms.tick.value) : (f == null ? void 0 : f.tick) || C.getElapsedTime(), _({ gl: g });
},
- [v, u]
+ [m, _, l]
),
- {
- mesh: x,
- depthMaterial: f
- }
- ];
-}, W = Object.freeze({
- wobbleStrength: 0.3,
- wobblePositionFrequency: 0.3,
- wobbleTimeFrequency: 0.3,
- warpStrength: 0.3,
- warpPositionFrequency: 0.3,
- warpTimeFrequency: 0.3,
- color0: new o.Color(16711680),
- color1: new o.Color(65280),
- color2: new o.Color(255),
- color3: new o.Color(16776960),
- colorMix: 1,
- edgeThreshold: 0,
- edgeColor: new o.Color(0),
- chromaticAberration: 0.1,
- anisotropicBlur: 0.1,
- distortion: 0,
- distortionScale: 0.1,
- temporalDistortion: 0,
- refractionSamples: 6,
- beat: !1
-}), Sr = ({
+ setValues: m,
+ texture: v.texture,
+ material: l,
+ scene: c,
+ camera: u,
+ renderTarget: v
+ };
+}, Tt = ({
size: e,
dpr: t,
- renderTargetOptions: n,
- isSizeUpdate: r,
- camera: s,
- geometry: l,
- baseMaterial: c,
- materialParameters: i,
- isCustomTransmission: d,
- onBeforeInit: p,
- depthOnBeforeInit: f,
- depth: x
-}) => {
- const a = U(t), v = y(() => new o.Scene(), []), [u, { mesh: m, depthMaterial: h }] = Ln({
- baseMaterial: c,
- materialParameters: i,
- scene: v,
- geometry: l,
- isCustomTransmission: d,
- onBeforeInit: p,
- depthOnBeforeInit: f,
- depth: x
- }), [M, b] = $({
- scene: v,
- camera: s,
+ ...r
+}, a) => {
+ const { scene: n, material: i, camera: s } = M({
size: e,
- dpr: a.fbo,
- isSizeUpdate: r,
- depthBuffer: !0,
- ...n
- }), g = _(
- (C, T, A) => (u(C, T, A), b(C.gl)),
- [b, u]
- ), S = _(
- (C, T) => {
- u(null, C, T);
+ dpr: t,
+ material: X,
+ uniformValues: r
+ });
+ return { render: h(
+ (l) => {
+ const { gl: u } = l;
+ a({ gl: u, scene: n, camera: s });
+ },
+ [a, n, s]
+ ), material: i };
+}, Et = (e = 0) => {
+ const t = T(new o.Vector2(0, 0)), r = T(new o.Vector2(0, 0)), a = T(new o.Vector2(0, 0)), n = T(0), i = T(new o.Vector2(0, 0)), s = T(!1);
+ return h(
+ (l) => {
+ const u = performance.now();
+ let v;
+ s.current && e ? (a.current = a.current.lerp(
+ l,
+ 1 - e
+ ), v = a.current.clone()) : (v = l.clone(), a.current = v), n.current === 0 && (n.current = u, t.current = v);
+ const _ = Math.max(1, u - n.current);
+ n.current = u, i.current.copy(v).sub(t.current).divideScalar(_);
+ const m = i.current.length() > 0, x = s.current ? t.current.clone() : v;
+ return !s.current && m && (s.current = !0), t.current = v, {
+ currentPointer: v,
+ prevPointer: x,
+ diffPointer: r.current.subVectors(v, x),
+ velocity: i.current,
+ isVelocityUpdate: m
+ };
},
- [u]
+ [e]
);
+}, Ot = ({
+ size: e,
+ dpr: t,
+ ...r
+}, a) => {
+ const { scene: n, material: i, camera: s } = M({
+ size: e,
+ dpr: t,
+ material: Q,
+ geometrySize: {
+ width: 1,
+ height: 1
+ },
+ uniformValues: r
+ }), c = Et();
+ return { render: h(
+ (u) => {
+ const { gl: v, pointer: _ } = u, { currentPointer: m, diffPointer: x } = c(_);
+ i.uniforms.center.value.copy(m), i.uniforms.force.value.copy(x), a({ gl: v, scene: n, camera: s, clear: !1 });
+ },
+ [a, i, c, n, s]
+ ), material: i };
+}, Pt = ({
+ size: e,
+ dpr: t,
+ ...r
+}, a) => {
+ const { scene: n, material: i, camera: s } = M({
+ size: e,
+ dpr: t,
+ material: q,
+ uniformValues: r
+ });
+ return { render: h(
+ (l) => {
+ const { gl: u } = l;
+ a({ gl: u, scene: n, camera: s });
+ },
+ [a, n, s]
+ ), material: i };
+}, Vt = ({
+ size: e,
+ dpr: t,
+ pressureIterations: r,
+ ...a
+}, n) => {
+ const { scene: i, material: s, camera: c } = M({
+ size: e,
+ dpr: t,
+ material: H,
+ uniformValues: a,
+ customParameters: {
+ iterations: r
+ }
+ });
+ return { render: h(
+ (u) => {
+ const { gl: v } = u;
+ for (let _ = 0; _ < s.iterations; _++)
+ n({ gl: v, scene: i, camera: c }, ({ read: m }) => {
+ s.uniforms.pressure.value = m;
+ });
+ },
+ [n, s, i, c]
+ ), material: s };
+}, It = ({
+ size: e,
+ dpr: t,
+ ...r
+}, a) => {
+ const { scene: n, material: i, camera: s } = M({
+ size: e,
+ dpr: t,
+ material: G,
+ uniformValues: r
+ });
+ return { render: h(
+ (l) => {
+ const { gl: u } = l;
+ a({ gl: u, scene: n, camera: s });
+ },
+ [a, n, s]
+ ), material: i };
+}, Bt = ({
+ size: e,
+ dpr: t,
+ ...r
+}, a) => {
+ const { scene: n, material: i, camera: s } = M({
+ size: e,
+ dpr: t,
+ material: Y,
+ uniformValues: r
+ });
+ return { render: h(
+ (l) => {
+ const { gl: u } = l;
+ a({ gl: u, scene: n, camera: s });
+ },
+ [a, n, s]
+ ), material: i };
+}, L = (e) => Object.fromEntries(
+ Object.entries(e).filter(([, t]) => t !== void 0)
+), pe = (e) => {
+ const {
+ dissipation: t,
+ deltaTime: r,
+ bounce: a,
+ pressureIterations: n,
+ radius: i,
+ forceBias: s,
+ ...c
+ } = e;
return [
- g,
- S,
{
- scene: v,
- mesh: m,
- depthMaterial: h,
- renderTarget: M,
- output: M.texture
- }
+ advection: L({ dissipation: t, deltaTime: r }),
+ divergence: L({ bounce: a, deltaTime: r }),
+ poisson: L({ bounce: a }),
+ pressure: L({ bounce: a, deltaTime: r }),
+ splat: L({ radius: i, forceBias: s }),
+ pressureIterations: n
+ },
+ c
];
-}, _r = (e, t, n) => {
- const r = y(() => {
- const s = new o.Mesh(t, n);
- return e.add(s), s;
- }, [t, n, e]);
- return Z(() => () => {
- e.remove(r), t.dispose(), n.dispose();
- }, [e, t, n, r]), r;
-}, $n = (e, t, n, r, s, l) => {
- const c = e < n - s || t < r - s, i = e > n + s || t > r + s;
- return l === "smaller" && c || l === "larger" && i || l === "both" && (c || i);
-}, Cr = ({
+}, jt = ({
size: e,
- boundFor: t,
- threshold: n
+ dpr: t,
+ fboAutoSetSize: r,
+ renderTargetOptions: a,
+ materialParameters: n,
+ ...i
}) => {
- const r = B(e);
- return y(() => {
- const { width: l, height: c } = e, { width: i, height: d } = r.current, p = $n(
- l,
- c,
- i,
- d,
- n,
- t
- );
- return p && (r.current = e), p;
- }, [e, t, n]);
-}, ge = Object.freeze({
+ const s = R(t), c = {
+ dpr: s.fbo,
+ size: e,
+ fboAutoSetSize: r,
+ type: o.HalfFloatType,
+ ...a
+ }, [l, u] = b(c), [v, _] = b(c), [m, x] = b(c), [p, f] = he(c), [g, C] = b(c), [U, le] = pe(i), y = { size: e, dpr: s.shader }, D = Tt(
+ {
+ ...y,
+ ...U.advection,
+ velocity: l.texture
+ },
+ _
+ ), O = Ot(
+ {
+ ...y,
+ ...U.splat
+ },
+ _
+ ), I = Pt(
+ {
+ ...y,
+ ...U.divergence,
+ velocity: v.texture
+ },
+ x
+ ), P = Vt(
+ {
+ ...y,
+ ...U.poisson,
+ divergence: m.texture,
+ pressureIterations: U.pressureIterations
+ },
+ f
+ ), B = It(
+ {
+ ...y,
+ ...U.pressure,
+ velocity: v.texture,
+ pressure: p.read.texture
+ },
+ u
+ ), k = Bt(
+ {
+ ...y,
+ ...le,
+ src: l.texture
+ },
+ C
+ ), Z = h(
+ (J, $ = !0) => {
+ const [F, Ue] = pe(J);
+ k.material.setUniformValues(Ue, $), D.material.setUniformValues(F.advection), I.material.setUniformValues(F.divergence), P.material.setUniformValues(F.poisson), B.material.setUniformValues(F.pressure), O.material.setUniformValues(F.splat), F.pressureIterations && (P.material.iterations = F.pressureIterations);
+ },
+ [k, D, I, P, B, O]
+ );
+ return {
+ render: h(
+ (J, $) => ($ && Z($, !1), [D, O, I, P, B, k].forEach(
+ (F) => F == null ? void 0 : F.render(J)
+ ), g.texture),
+ [
+ Z,
+ g.texture,
+ D,
+ O,
+ I,
+ P,
+ B,
+ k
+ ]
+ ),
+ setValues: Z,
+ texture: g.texture,
+ velocity: l.texture
+ };
+}, zt = ({
+ size: e,
+ dpr: t,
+ fboAutoSetSize: r,
+ renderTargetOptions: a,
+ materialParameters: n,
+ ...i
+}) => {
+ const s = R(t), { scene: c, material: l, camera: u } = M({
+ size: e,
+ dpr: s.shader,
+ material: bt,
+ uniformValues: i,
+ materialParameters: n
+ }), [v, _] = b({
+ scene: c,
+ camera: u,
+ size: e,
+ dpr: s.fbo,
+ fboAutoSetSize: r,
+ ...a
+ }), m = h(
+ (p, f = !0) => {
+ l.setUniformValues(p, f);
+ },
+ [l]
+ );
+ return {
+ render: h(
+ (p, f) => {
+ const { gl: g } = p;
+ return f && m(f, !1), _({ gl: g });
+ },
+ [m, _]
+ ),
+ setValues: m,
+ texture: v.texture,
+ material: l,
+ scene: c,
+ camera: u,
+ renderTarget: v
+ };
+}, Kt = ({
+ size: e,
+ dpr: t,
+ fboAutoSetSize: r,
+ renderTargetOptions: a,
+ materialParameters: n,
+ ...i
+}) => {
+ const s = R(t), { scene: c, material: l, camera: u } = M({
+ size: e,
+ dpr: s.shader,
+ material: ie,
+ materialParameters: n,
+ ...i
+ }), [v, _] = b({
+ scene: c,
+ camera: u,
+ size: e,
+ dpr: s.fbo,
+ fboAutoSetSize: r,
+ ...a
+ }), m = h(
+ (p) => {
+ l.setUniformValues(p);
+ },
+ [l]
+ );
+ return {
+ render: h(
+ (p, f) => {
+ const { gl: g } = p;
+ return f && m(f), _({ gl: g });
+ },
+ [m, _]
+ ),
+ setValues: m,
+ texture: v.texture,
+ material: l,
+ scene: c,
+ camera: u,
+ renderTarget: v
+ };
+}, Nt = ({
+ size: e,
+ dpr: t,
+ fboAutoSetSize: r,
+ renderTargetOptions: a,
+ materialParameters: n,
+ pointerLerp: i = 1,
+ ...s
+}) => {
+ const c = R(t), { scene: l, material: u, camera: v } = M({
+ size: e,
+ dpr: c.shader,
+ material: oe,
+ materialParameters: n,
+ ...s
+ }), _ = {
+ scene: l,
+ camera: v,
+ size: e,
+ dpr: c.fbo,
+ fboAutoSetSize: r,
+ ...a
+ }, [m, x] = b(_), [p, f] = he(_), [g, C] = Ce({ pointerLerp: i }), U = h(
+ ({ pointerLerp: y, ...D }) => {
+ u.setUniformValues(D), y && C({ pointerLerp: y });
+ },
+ [u, C]
+ );
+ return {
+ render: h(
+ (y, D) => {
+ const { gl: O, clock: I, pointer: P } = y;
+ return D && U(D), u.uniforms.time.value = I.getElapsedTime(), u.uniforms.pointer.value.lerp(
+ P,
+ g.current.pointerLerp
+ ), f(
+ { gl: O },
+ ({ read: B }) => u.uniforms.backbuffer.value = B
+ ), x({ gl: O });
+ },
+ [U, x, u, f, g]
+ ),
+ setValues: U,
+ texture: m.texture,
+ material: u,
+ scene: l,
+ camera: v,
+ renderTarget: m
+ };
+}, Xt = ({
+ size: e,
+ dpr: t,
+ fboAutoSetSize: r,
+ renderTargetOptions: a,
+ materialParameters: n,
+ ...i
+}) => {
+ const s = R(t), { scene: c, material: l, camera: u } = M({
+ size: e,
+ dpr: s.shader,
+ material: ce,
+ uniformValues: i,
+ materialParameters: n
+ }), [v, _] = b({
+ scene: c,
+ camera: u,
+ size: e,
+ dpr: s.fbo,
+ fboAutoSetSize: r,
+ ...a
+ }), m = h(
+ (p, f = !0) => {
+ l.setUniformValues(p, f), l.setNearestFilter();
+ },
+ [l]
+ );
+ return {
+ render: h(
+ (p, f) => {
+ const { gl: g, clock: C } = p;
+ return f && m(f, !1), l.uniforms.tick.value = typeof (f == null ? void 0 : f.tick) == "function" ? f.tick(l.uniforms.tick.value) : (f == null ? void 0 : f.tick) || C.getElapsedTime(), _({ gl: g });
+ },
+ [m, _, l]
+ ),
+ setValues: m,
+ texture: v.texture,
+ material: l,
+ scene: c,
+ camera: u,
+ renderTarget: v
+ };
+}, z = Object.freeze({
easeInSine(e) {
return 1 - Math.cos(e * Math.PI / 2);
},
@@ -4369,8 +2022,8 @@ const Bn = ({
return 1 + 2.70158 * Math.pow(e - 1, 3) + 1.70158 * Math.pow(e - 1, 2);
},
easeInOutBack(e) {
- const n = 2.5949095;
- return e < 0.5 ? Math.pow(2 * e, 2) * ((n + 1) * 2 * e - n) / 2 : (Math.pow(2 * e - 2, 2) * ((n + 1) * (e * 2 - 2) + n) + 2) / 2;
+ const r = 2.5949095;
+ return e < 0.5 ? Math.pow(2 * e, 2) * ((r + 1) * 2 * e - r) / 2 : (Math.pow(2 * e - 2, 2) * ((r + 1) * (e * 2 - 2) + r) + 2) / 2;
},
easeInElastic(e) {
const t = 2 * Math.PI / 3;
@@ -4385,424 +2038,75 @@ const Bn = ({
return e === 0 ? 0 : e === 1 ? 1 : e < 0.5 ? -(Math.pow(2, 20 * e - 10) * Math.sin((20 * e - 11.125) * t)) / 2 : Math.pow(2, -20 * e + 10) * Math.sin((20 * e - 11.125) * t) / 2 + 1;
},
easeInBounce(e) {
- return 1 - ge.easeOutBounce(1 - e);
+ return 1 - z.easeOutBounce(1 - e);
},
easeOutBounce(e) {
return e < 1 / 2.75 ? 7.5625 * e * e : e < 2 / 2.75 ? 7.5625 * (e -= 1.5 / 2.75) * e + 0.75 : e < 2.5 / 2.75 ? 7.5625 * (e -= 2.25 / 2.75) * e + 0.9375 : 7.5625 * (e -= 2.625 / 2.75) * e + 0.984375;
},
easeInOutBounce(e) {
- return e < 0.5 ? (1 - ge.easeOutBounce(1 - 2 * e)) / 2 : (1 + ge.easeOutBounce(2 * e - 1)) / 2;
+ return e < 0.5 ? (1 - z.easeOutBounce(1 - 2 * e)) / 2 : (1 + z.easeOutBounce(2 * e - 1)) / 2;
}
});
-function jn(e) {
+function Rt(e) {
let t = Math.sin(e * 12.9898) * 43758.5453;
return t - Math.floor(t);
}
-const wr = (e, t = "easeOutQuart") => {
- const n = e / 60, r = ge[t];
- return _(
- (l) => {
- let c = l.getElapsedTime() * n;
- const i = Math.floor(c), d = r(c - i);
- c = d + i;
- const p = jn(i);
+const qt = (e, t = "easeOutQuart") => {
+ const r = e / 60, a = z[t];
+ return h(
+ (i) => {
+ let s = i.getElapsedTime() * r;
+ const c = Math.floor(s), l = a(s - c);
+ s = l + c;
+ const u = Rt(c);
return {
- beat: c,
- floor: i,
- fract: d,
- hash: p
+ beat: s,
+ floor: c,
+ fract: l,
+ hash: u
};
},
- [n, r]
- );
-}, Tr = (e = 60) => {
- const t = y(() => 1 / Math.max(Math.min(e, 60), 1), [e]), n = B(null);
- return _(
- (s) => {
- const l = s.getElapsedTime();
- return n.current === null || l - n.current >= t ? (n.current = l, !0) : !1;
- },
- [t]
- );
-}, qn = (e) => {
- var r, s;
- const t = (r = e.dom) == null ? void 0 : r.length, n = (s = e.texture) == null ? void 0 : s.length;
- return !t || !n || t !== n;
-};
-var Wn = `varying vec2 vUv;
-
-void main() {
- vUv = uv;
- gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.0);
-}`, Nn = `precision highp float;
-
-varying vec2 vUv;
-uniform sampler2D u_texture;
-uniform vec2 u_textureResolution;
-uniform vec2 u_resolution;
-uniform float u_borderRadius;
-
-void main() {
-
- float screenAspect = u_resolution.x / u_resolution.y;
- float textureAspect = u_textureResolution.x / u_textureResolution.y;
- vec2 ratio = vec2(
- min(screenAspect / textureAspect, 1.0),
- min(textureAspect / screenAspect, 1.0)
- );
-
- vec2 adjustedUv = vUv * ratio + (1.0 - ratio) * 0.5;
- vec3 textureColor = texture2D(u_texture, adjustedUv).rgb;
- float textureAlpha = texture2D(u_texture, adjustedUv).a;
-
-
- float maxSide = max(u_resolution.x, u_resolution.y);
- float minSide = min(u_resolution.x, u_resolution.y);
- vec2 aspect = u_resolution / maxSide;
- vec2 alphaUv = vUv - 0.5;
-
- float borderRadius = min(u_borderRadius, minSide * 0.5);
- vec2 offset = vec2(borderRadius) / u_resolution;
- vec2 alphaXY = smoothstep(vec2(0.5 - offset), vec2(0.5 - offset - 0.001), abs(alphaUv));
- float alpha = min(1.0, alphaXY.x + alphaXY.y);
-
- vec2 alphaUv2 = abs(vUv - 0.5);
- float radius = borderRadius / maxSide;
- alphaUv2 = (alphaUv2 - 0.5) * aspect + radius;
- float roundAlpha = smoothstep(radius + 0.001, radius, length(alphaUv2));
-
- alpha = min(1.0, alpha + roundAlpha);
-
-
- alpha *= textureAlpha;
-
- gl_FragColor = vec4(textureColor, alpha);
-}`;
-const kn = ({
- params: e,
- scene: t,
- onBeforeInit: n
-}) => {
- t.children.length > 0 && (t.children.forEach((r) => {
- r instanceof o.Mesh && (r.geometry.dispose(), r.material.dispose());
- }), t.remove(...t.children)), e.texture.forEach((r, s) => {
- const l = new o.ShaderMaterial({
- ...V(
- {
- uniforms: {
- u_texture: { value: r },
- u_textureResolution: {
- value: new o.Vector2(0, 0)
- },
- u_resolution: { value: new o.Vector2(0, 0) },
- u_borderRadius: {
- value: e.boderRadius[s] ? e.boderRadius[s] : 0
- }
- },
- vertexShader: Wn,
- fragmentShader: Nn
- },
- n
- ),
- ...I,
- // Must be transparent.
- transparent: !0
- }), c = new o.Mesh(new o.PlaneGeometry(1, 1), l);
- t.add(c);
- });
-}, Gn = () => {
- const e = B([]), t = B([]);
- return _(
- ({
- isIntersectingRef: r,
- isIntersectingOnceRef: s,
- params: l
- }) => {
- e.current.length > 0 && e.current.forEach((i, d) => {
- i.unobserve(t.current[d]);
- }), t.current = [], e.current = [];
- const c = new Array(l.dom.length).fill(!1);
- r.current = [...c], s.current = [...c], l.dom.forEach((i, d) => {
- const p = (x) => {
- x.forEach((a) => {
- l.onIntersect[d] && l.onIntersect[d](a), r.current[d] = a.isIntersecting;
- });
- }, f = new IntersectionObserver(p, {
- rootMargin: "0px",
- threshold: 0
- });
- f.observe(i), e.current.push(f), t.current.push(i);
- });
- },
- []
- );
-}, Kn = () => {
- const e = B([]), t = _(
- ({
- params: n,
- customParams: r,
- size: s,
- resolutionRef: l,
- scene: c,
- isIntersectingRef: i
- }) => {
- c.children.length !== e.current.length && (e.current = new Array(c.children.length)), c.children.forEach((d, p) => {
- var a, v, u, m, h, M;
- const f = n.dom[p];
- if (!f)
- return;
- const x = f.getBoundingClientRect();
- if (e.current[p] = x, d.scale.set(x.width, x.height, 1), d.position.set(
- x.left + x.width * 0.5 - s.width * 0.5,
- -x.top - x.height * 0.5 + s.height * 0.5,
- 0
- ), i.current[p] && (n.rotation[p] && d.rotation.copy(n.rotation[p]), d instanceof o.Mesh)) {
- const b = d.material, g = R(b), S = F(b);
- g("u_texture", n.texture[p]), g("u_textureResolution", [
- ((u = (v = (a = n.texture[p]) == null ? void 0 : a.source) == null ? void 0 : v.data) == null ? void 0 : u.width) || 0,
- ((M = (h = (m = n.texture[p]) == null ? void 0 : m.source) == null ? void 0 : h.data) == null ? void 0 : M.height) || 0
- ]), g(
- "u_resolution",
- l.current.set(x.width, x.height)
- ), g(
- "u_borderRadius",
- n.boderRadius[p] ? n.boderRadius[p] : 0
- ), S(r);
- }
- });
- },
- []
+ [r, a]
);
- return [e.current, t];
-}, Hn = () => {
- const e = B([]), t = B([]), n = _((r, s = !1) => {
- e.current.forEach((c, i) => {
- c && (t.current[i] = !0);
- });
- const l = s ? [...t.current] : [...e.current];
- return r < 0 ? l : l[r];
- }, []);
- return {
- isIntersectingRef: e,
- isIntersectingOnceRef: t,
- isIntersecting: n
- };
-}, Xn = (e) => ({ onView: n, onHidden: r }) => {
- const s = B(!1);
- Z(() => {
- let l;
- const c = () => {
- e.current.some((i) => i) ? s.current || (n && n(), s.current = !0) : s.current && (r && r(), s.current = !1), l = requestAnimationFrame(c);
- };
- return l = requestAnimationFrame(c), () => {
- cancelAnimationFrame(l);
+}, xe = { passive: !0 }, Gt = (e) => {
+ const t = T(new o.Vector2(0));
+ return K(() => {
+ const r = (i, s) => {
+ t.current.set(
+ (i - e.left) / e.width * 2 - 1,
+ -((s - e.top) / e.height) * 2 + 1
+ );
+ }, a = (i) => {
+ const s = i.touches[0];
+ r(s.clientX, s.clientY);
+ }, n = (i) => {
+ r(i.clientX, i.clientY);
};
- }, [n, r]);
-}, Yn = {
- texture: [],
- dom: [],
- boderRadius: [],
- rotation: [],
- onIntersect: []
-}, Dr = ({ size: e, dpr: t, isSizeUpdate: n, renderTargetOptions: r, onBeforeInit: s }, l = []) => {
- const c = U(t), i = y(() => new o.Scene(), []), d = L(e), [p, f] = $({
- scene: i,
- camera: d,
- size: e,
- dpr: c.fbo,
- isSizeUpdate: n,
- ...r
- }), [x, a] = j({
- ...Yn,
- updateKey: performance.now()
- }), [v, u] = Kn(), m = B(new o.Vector2(0, 0)), [h, M] = Be(!0);
- y(
- () => M(!0),
- // eslint-disable-next-line react-hooks/exhaustive-deps
- l
- );
- const b = B(null), g = y(() => w, []), S = Gn(), { isIntersectingOnceRef: C, isIntersectingRef: T, isIntersecting: A } = Hn(), z = Xn(T), P = y(() => (D, k) => {
- a(D), u({
- params: x,
- customParams: k,
- size: e,
- resolutionRef: m,
- scene: i,
- isIntersectingRef: T
- });
- }, [T, a, u, e, i, x]);
- return [
- _(
- (D, k, H) => {
- const { gl: ee, size: te } = D;
- if (P(k, H), qn(x))
- return g;
- if (h) {
- if (b.current === x.updateKey)
- return g;
- b.current = x.updateKey;
- }
- return h && (kn({
- params: x,
- size: te,
- scene: i,
- onBeforeInit: s
- }), S({
- isIntersectingRef: T,
- isIntersectingOnceRef: C,
- params: x
- }), M(!1)), f(ee);
- },
- [
- f,
- S,
- s,
- P,
- h,
- i,
- x,
- C,
- T,
- g
- ]
- ),
- P,
- {
- scene: i,
- camera: d,
- renderTarget: p,
- output: p.texture,
- isIntersecting: A,
- DOMRects: v,
- intersections: T.current,
- useDomView: z
- }
- ];
-}, Pr = (e, t) => {
- const {
- scene: n,
- camera: r,
- size: s,
- dpr: l = !1,
- isSizeUpdate: c = !1,
- depth: i = !1,
- ...d
- } = e, p = B([]), f = K(s, l);
- p.current = y(() => Array.from({ length: t }, () => {
- const a = new o.WebGLRenderTarget(
- f.x,
- f.y,
- {
- ...he,
- ...d
- }
- );
- return i && (a.depthTexture = new o.DepthTexture(
- f.x,
- f.y,
- o.FloatType
- )), a;
- }), [t]), c && p.current.forEach(
- (a) => a.setSize(f.x, f.y)
- ), Z(() => {
- const a = p.current;
- return () => {
- a.forEach((v) => v.dispose());
+ return window.addEventListener("touchmove", a, xe), window.addEventListener("pointermove", n, xe), () => {
+ window.removeEventListener("touchmove", a), window.removeEventListener("pointermove", n);
};
- }, [t]);
- const x = _(
- (a, v, u) => {
- const m = p.current[v];
- return _e({
- gl: a,
- scene: n,
- camera: r,
- fbo: m,
- onBeforeRender: () => u && u({ read: m.texture })
- }), m.texture;
- },
- [n, r]
- );
- return [p.current, x];
-}, Rr = Object.freeze({
- interpolate(e, t, n, r = 1e-6) {
- const s = e + (t - e) * n;
- return Math.abs(s) < r ? 0 : s;
- },
- smoothstep(e, t, n) {
- const r = Math.min(Math.max((n - e) / (t - e), 0), 1);
- return r * r * (3 - 2 * r);
- }
-});
+ }, [e]), t.current;
+};
export {
- en as ALPHABLENDING_PARAMS,
- Cn as BLANK_PARAMS,
- ve as BLENDING_PARAMS,
- de as BRIGHTNESSPICKER_PARAMS,
- re as BRUSH_PARAMS,
- Q as CHROMAKEY_PARAMS,
- Y as COLORSTRATA_PARAMS,
- ce as COSPALETTE_PARAMS,
- sn as COVERTEXTURE_PARAMS,
- Ae as DELTA_TIME,
- Yn as DOMSYNCER_PARAMS,
- be as DUOTONE_PARAMS,
- ge as Easing,
- he as FBO_DEFAULT_OPTION,
- yt as FLUID_PARAMS,
- Ve as FXBLENDING_PARAMS,
- ae as FXTEXTURE_PARAMS,
- Me as HSV_PARAMS,
- ue as MARBLE_PARAMS,
- O as MORPHPARTICLES_PARAMS,
- fe as MOTIONBLUR_PARAMS,
- oe as NOISE_PARAMS,
- yr as RAWBLANK_PARAMS,
- _t as RIPPLE_PARAMS,
- Fe as SIMPLEBLUR_PARAMS,
- Xe as ShaderChunk,
- Rr as Utils,
- me as WAVE_PARAMS,
- W as WOBBLE3D_PARAMS,
- _e as renderFBO,
- F as setCustomUniform,
- R as setUniform,
- _r as useAddMesh,
- vr as useAlphaBlending,
- wr as useBeat,
- xr as useBlank,
- ur as useBlending,
- lr as useBrightnessPicker,
- Jn as useBrush,
- L as useCamera,
- hr as useChromaKey,
- rr as useColorStrata,
- Pr as useCopyTexture,
- ar as useCosPalette,
- pr as useCoverTexture,
- In as useCreateMorphParticles,
- Ln as useCreateWobble3D,
- Dr as useDomSyncer,
- se as useDoubleFBO,
- ir as useDuoTone,
- Tr as useFPSLimiter,
- er as useFluid,
- cr as useFxBlending,
- sr as useFxTexture,
- mr as useHSV,
- or as useMarble,
- Mr as useMorphParticles,
- fr as useMotionBlur,
- nr as useNoise,
- j as useParams,
- Se as usePointer,
- br as useRawBlank,
- Cr as useResizeBoundary,
- K as useResolution,
- tr as useRipple,
- dr as useSimpleBlur,
- $ as useSingleFBO,
- gr as useWave,
- Sr as useWobble3D
+ re as BASICFX_VALUES,
+ oe as BlankMaterial,
+ bt as BufferMaterial,
+ kt as FluidMaterials,
+ ce as GridMaterial,
+ gt as NoiseMaterial,
+ ie as RawBlankMaterial,
+ ue as getFxKeyFromUniforms,
+ Pe as handleUpdateFxDefines,
+ qt as useBeat,
+ Nt as useBlank,
+ zt as useBuffer,
+ he as useDoubleFBO,
+ jt as useFluid,
+ Xt as useGrid,
+ $t as useNoise,
+ Et as usePointerTracker,
+ Kt as useRawBlank,
+ b as useSingleFBO,
+ Gt as useWindowPointer
};
//# sourceMappingURL=use-shader-fx.js.map
diff --git a/packages/use-shader-fx/build/use-shader-fx.js.map b/packages/use-shader-fx/build/use-shader-fx.js.map
index a4c30435..06e78f64 100644
--- a/packages/use-shader-fx/build/use-shader-fx.js.map
+++ b/packages/use-shader-fx/build/use-shader-fx.js.map
@@ -1 +1 @@
-{"version":3,"file":"use-shader-fx.js","sources":["../src/fxs/interactions/useBrush/shader/main.vert","../src/fxs/interactions/useBrush/shader/main.frag","../src/utils/useResolution.ts","../src/utils/setUniforms.ts","../src/utils/useAddObject.ts","../src/libs/constants.ts","../src/libs/shaders/shaderChunk/wobble3D.glsl","../src/libs/shaders/shaderChunk/snoise.glsl","../src/libs/shaders/shaderChunk/coverTexture.glsl","../src/libs/shaders/shaderChunk/fxBlending.glsl","../src/libs/shaders/shaderChunk/planeVertex.glsl","../src/libs/shaders/shaderChunk/defaultVertex.glsl","../src/libs/shaders/shaderChunk/hsv2rgb.glsl","../src/libs/shaders/shaderChunk/rgb2hsv.glsl","../src/libs/shaders/ShaderChunk.ts","../src/libs/shaders/resolveShaders.ts","../src/utils/createMaterialParameters.ts","../src/fxs/interactions/useBrush/useMesh.ts","../src/utils/useCamera.ts","../src/misc/usePointer.ts","../src/utils/useParams.ts","../src/utils/useSingleFBO.ts","../src/utils/useDoubleFBO.ts","../src/utils/getDpr.ts","../src/fxs/interactions/useBrush/index.ts","../src/fxs/simulations/useFluid/shaders/main.vert","../src/fxs/simulations/useFluid/shaders/init.frag","../src/fxs/simulations/useFluid/materials/useInitialMaterial.ts","../src/fxs/simulations/useFluid/shaders/advection.frag","../src/fxs/simulations/useFluid/materials/useAdvectionMaterial.ts","../src/fxs/simulations/useFluid/shaders/divergence.frag","../src/fxs/simulations/useFluid/materials/useDivergenceMaterial.ts","../src/fxs/simulations/useFluid/shaders/pressure.frag","../src/fxs/simulations/useFluid/materials/usePressureMaterial.ts","../src/fxs/simulations/useFluid/shaders/curl.frag","../src/fxs/simulations/useFluid/materials/useCurlMaterial.ts","../src/fxs/simulations/useFluid/shaders/vorticity.frag","../src/fxs/simulations/useFluid/materials/useVorticityMaterial.ts","../src/fxs/simulations/useFluid/shaders/clear.frag","../src/fxs/simulations/useFluid/materials/useClearMaterial.ts","../src/fxs/simulations/useFluid/shaders/gradientSubtract.frag","../src/fxs/simulations/useFluid/materials/useGradientSubtractMaterial.ts","../src/fxs/simulations/useFluid/shaders/splat.frag","../src/fxs/simulations/useFluid/materials/useSplatMaterial.ts","../src/fxs/simulations/useFluid/useMesh.ts","../src/fxs/simulations/useFluid/index.ts","../src/fxs/simulations/useRipple/shader/main.vert","../src/fxs/simulations/useRipple/shader/main.frag","../src/fxs/simulations/useRipple/useMesh.ts","../src/fxs/simulations/useRipple/index.ts","../src/fxs/noises/useNoise/shader/main.vert","../src/fxs/noises/useNoise/shader/main.frag","../src/fxs/noises/useNoise/useMesh.ts","../src/fxs/noises/useNoise/index.ts","../src/fxs/noises/useColorStrata/shader/main.vert","../src/fxs/noises/useColorStrata/shader/main.frag","../src/fxs/noises/useColorStrata/useMesh.ts","../src/fxs/noises/useColorStrata/index.ts","../src/fxs/noises/useMarble/shader/main.vert","../src/fxs/noises/useMarble/shader/main.frag","../src/fxs/noises/useMarble/useMesh.ts","../src/fxs/noises/useMarble/index.ts","../src/fxs/noises/useCosPalette/shader/main.vert","../src/fxs/noises/useCosPalette/shader/main.frag","../src/fxs/noises/useCosPalette/useMesh.ts","../src/fxs/noises/useCosPalette/index.ts","../src/fxs/utils/useDuoTone/shader/main.vert","../src/fxs/utils/useDuoTone/shader/main.frag","../src/fxs/utils/useDuoTone/useMesh.ts","../src/fxs/utils/useDuoTone/index.ts","../src/fxs/utils/useBlending/shader/main.vert","../src/fxs/utils/useBlending/shader/main.frag","../src/fxs/utils/useBlending/useMesh.ts","../src/fxs/utils/useBlending/index.ts","../src/fxs/utils/useFxTexture/shader/main.vert","../src/fxs/utils/useFxTexture/shader/main.frag","../src/fxs/utils/useFxTexture/useMesh.ts","../src/fxs/utils/useFxTexture/index.ts","../src/fxs/utils/useBrightnessPicker/shader/main.vert","../src/fxs/utils/useBrightnessPicker/shader/main.frag","../src/fxs/utils/useBrightnessPicker/useMesh.ts","../src/fxs/utils/useBrightnessPicker/index.ts","../src/fxs/utils/useFxBlending/shader/main.vert","../src/fxs/utils/useFxBlending/shader/main.frag","../src/fxs/utils/useFxBlending/useMesh.ts","../src/fxs/utils/useFxBlending/index.ts","../src/fxs/utils/useAlphaBlending/shader/main.vert","../src/fxs/utils/useAlphaBlending/shader/main.frag","../src/fxs/utils/useAlphaBlending/useMesh.ts","../src/fxs/utils/useAlphaBlending/index.ts","../src/fxs/utils/useHSV/shader/main.vert","../src/fxs/utils/useHSV/shader/main.frag","../src/fxs/utils/useHSV/useMesh.ts","../src/fxs/utils/useHSV/index.ts","../src/fxs/utils/useCoverTexture/shader/main.vert","../src/fxs/utils/useCoverTexture/shader/main.frag","../src/fxs/utils/useCoverTexture/useMesh.ts","../src/fxs/utils/useCoverTexture/index.ts","../src/fxs/effects/useSimpleBlur/shader/main.vert","../src/fxs/effects/useSimpleBlur/shader/main.frag","../src/fxs/effects/useSimpleBlur/useMesh.ts","../src/fxs/effects/useSimpleBlur/index.ts","../src/fxs/effects/useMotionBlur/shader/main.vert","../src/fxs/effects/useMotionBlur/shader/main.frag","../src/fxs/effects/useMotionBlur/useMesh.ts","../src/fxs/effects/useMotionBlur/index.ts","../src/fxs/effects/useWave/shader/main.vert","../src/fxs/effects/useWave/shader/main.frag","../src/fxs/effects/useWave/useMesh.ts","../src/fxs/effects/useWave/index.ts","../src/fxs/misc/useChromaKey/shader/main.vert","../src/fxs/misc/useChromaKey/shader/main.frag","../src/fxs/misc/useChromaKey/useMesh.ts","../src/fxs/misc/useChromaKey/index.ts","../src/fxs/blank/useBlank/shader/main.vert","../src/fxs/blank/useBlank/shader/main.frag","../src/fxs/blank/useBlank/useMesh.ts","../src/fxs/blank/useBlank/index.ts","../src/fxs/blank/useRawBlank/shader/main.vert","../src/fxs/blank/useRawBlank/shader/main.frag","../src/fxs/blank/useRawBlank/useMesh.ts","../src/fxs/blank/useRawBlank/index.ts","../src/fxs/3D/useMorphParticles/utils/useCreateObject.ts","../src/fxs/3D/useMorphParticles/shaders/main.vert","../src/fxs/3D/useMorphParticles/shaders/main.frag","../src/fxs/3D/useMorphParticles/utils/rewriteVertexShader.ts","../src/fxs/3D/useMorphParticles/utils/modifyAttributes.ts","../src/fxs/3D/useMorphParticles/utils/rewriteFragmentShader.ts","../src/fxs/3D/useMorphParticles/utils/useMaterial.ts","../src/fxs/3D/useMorphParticles/useCreateMorphParticles.ts","../src/fxs/3D/useMorphParticles/index.ts","../src/fxs/3D/useWobble3D/utils/rewriteVertexShader.ts","../src/fxs/3D/useWobble3D/utils/rewriteFragmentShader.ts","../src/fxs/3D/useWobble3D/shaders/transmission_pars_fragment.glsl","../src/fxs/3D/useWobble3D/shaders/transmission_fragment.glsl","../src/fxs/3D/useWobble3D/utils/resolveEachMaterial.ts","../src/fxs/3D/useWobble3D/useMaterial.ts","../src/fxs/3D/useWobble3D/useCreateWobble3D.ts","../src/fxs/3D/useWobble3D/index.ts","../src/utils/useAddMesh.ts","../src/utils/useResizeBoundary.ts","../src/libs/Easings.ts","../src/misc/useBeat.ts","../src/misc/useFPSLimiter.ts","../src/misc/useDomSyncer/utils/errorHandler.ts","../src/misc/useDomSyncer/shader/main.vert","../src/misc/useDomSyncer/shader/main.frag","../src/misc/useDomSyncer/utils/createMesh.ts","../src/misc/useDomSyncer/utils/useIntersectionHandler.ts","../src/misc/useDomSyncer/utils/useUpdateDomRect.ts","../src/misc/useDomSyncer/utils/useIsIntersecting.ts","../src/misc/useDomSyncer/utils/createUseDomView.ts","../src/misc/useDomSyncer/index.ts","../src/misc/useCopyTexture.ts","../src/libs/Utils.ts"],"sourcesContent":["#usf ","precision highp float;\n\nuniform sampler2D uBuffer;\nuniform sampler2D uTexture;\nuniform bool uIsTexture;\nuniform sampler2D uMap;\nuniform bool uIsMap;\nuniform float uMapIntensity;\nuniform float uRadius;\nuniform float uDissipation;\nuniform vec2 uResolution;\nuniform float uSmudge;\nuniform vec2 uMouse;\nuniform vec2 uPrevMouse;\nuniform vec2 uVelocity;\nuniform vec3 uColor;\nuniform float uMotionBlur;\nuniform int uMotionSample;\nuniform bool uIsCursor;\nuniform float uPressureStart;\nuniform float uPressureEnd;\n\nvarying vec2 vUv;\n\nfloat isOnLine(vec2 point, vec2 start, vec2 end, float radius, float pressureStart, float pressureEnd) {\n\t\n\tfloat aspect = uResolution.x / uResolution.y;\n\n\tpoint.x *= aspect;\n\tstart.x *= aspect;\n\tend.x *= aspect;\n\n\tvec2 dir = normalize(end - start);\n\tvec2 n = vec2(dir.y, -dir.x);\n\tvec2 p0 = point - start;\n\t\n\tfloat distToLine = abs(dot(p0, n));\n\tfloat distAlongLine = dot(p0, dir);\n\tfloat totalLength = length(end - start);\n\n\tfloat progress = clamp(distAlongLine / totalLength, 0.0, 1.0);\n\tfloat pressure = mix(pressureStart, pressureEnd, progress);\n\tradius = min(radius,radius * pressure);\n\n\tfloat distFromStart = length(point - start);\n\tfloat distFromEnd = length(point - end);\n\t\n\tbool withinLine = (distToLine < radius && distAlongLine > 0.0 && distAlongLine < totalLength) || distFromStart < radius || distFromEnd < radius;\n\n\treturn float(withinLine);\n}\n\nvec4 createSmudge(vec2 uv){\n\tvec2 offsets[9];\n\toffsets[0] = vec2(-1, -1); offsets[1] = vec2( 0, -1); offsets[2] = vec2( 1, -1);\n\toffsets[3] = vec2(-1, 0); offsets[4] = vec2( 0, 0); offsets[5] = vec2( 1, 0);\n\toffsets[6] = vec2(-1, 1); offsets[7] = vec2( 0, 1); offsets[8] = vec2( 1, 1);\n\n\tfor(int i = 0; i < 9; i++) {\n\t\toffsets[i] = (offsets[i] * uSmudge) / uResolution;\n\t}\t\n\tvec4 smudgedColor = vec4(0.);\n\tfor(int i = 0; i < 9; i++) {\n\t\tsmudgedColor += texture2D(uBuffer, uv + offsets[i]);\n\t}\n\treturn smudgedColor / 9.0;\n}\n\nvec4 createMotionBlur(vec2 uv , vec4 baseColor, vec2 velocity) {\n\tvec2 scaledV = velocity * uMotionBlur;\n\tfor(int i = 1; i < uMotionSample; i++) {\n\t\tfloat t = float(i) / float(uMotionSample - 1);\n\t\tvec2 offset = t * scaledV / uResolution;\n\t\tbaseColor += texture2D(uBuffer, uv + offset);\n\t}\n\treturn baseColor / float(uMotionSample);\n}\n\nvoid main() {\n\n\tvec2 uv = vUv;\n\tif(uIsMap){\n\t\tvec2 mapColor = texture2D(uMap, uv).rg;\n\t\tvec2 normalizedMap = mapColor * 2.0 - 1.0;\n\t\tuv = uv * 2.0 - 1.0;\n\t\tuv *= mix(vec2(1.0), abs(normalizedMap.rg), uMapIntensity);\n\t\tuv = (uv + 1.0) / 2.0;\n\t}\n\tvec2 suv = uv*2.-1.;\n\n\tvec2 velocity = uVelocity * uResolution;\n\n\tfloat radius = max(0.0,uRadius);\n\t\n\tvec4 smudgedColor = uSmudge > 0. ? createSmudge(uv) : texture2D(uBuffer, uv);\n\n\tvec4 motionBlurredColor = uMotionBlur > 0. ? createMotionBlur(uv,smudgedColor, velocity) : smudgedColor;\n\n\tvec4 bufferColor = motionBlurredColor;\n\tbufferColor.a = bufferColor.a < 1e-10 ? 0.0 : bufferColor.a * uDissipation;\n\t\n\tvec4 brushColor = uIsTexture ? texture2D(uTexture, uv) : vec4(uColor,1.);\n\t\n\tfloat onLine = isOnLine(suv, uPrevMouse, uMouse, radius, uPressureStart,uPressureEnd);\n\tfloat isOnLine = length(velocity) > 0. ? onLine : uIsCursor ? onLine : 0.;\n\n\tvec4 finalColor = mix(bufferColor, brushColor, isOnLine);\n\n\tgl_FragColor = finalColor;\n}","import * as THREE from \"three\";\nimport { useMemo } from \"react\";\nimport { Size } from \"../fxs/types\";\n\n/**\n * @params dpr if dpr is set, it returns the resolution which is size multiplied by dpr.\n */\nexport const useResolution = (size: Size, dpr: number | false = false) => {\n const _width = dpr ? size.width * dpr : size.width;\n const _height = dpr ? size.height * dpr : size.height;\n\n const resolution = useMemo(\n () => new THREE.Vector2(_width, _height),\n [_width, _height]\n );\n return resolution;\n};\n","import * as THREE from \"three\";\ntype UniformValue =\n | THREE.CubeTexture\n | THREE.Texture\n | Int32Array\n | Float32Array\n | THREE.Matrix4\n | THREE.Matrix3\n | THREE.Quaternion\n | THREE.Vector4\n | THREE.Vector3\n | THREE.Vector2\n | THREE.Color\n | number\n | boolean\n | Array\n | null\n | undefined;\ntype UniformObject = { [key: string]: { value: UniformValue } };\n\nexport const setUniform =\n (material: { uniforms: T }) =>\n (key: keyof T, value: UniformValue) => {\n if (value === undefined) {\n return;\n }\n const uniforms = material.uniforms;\n if (uniforms && uniforms[key]) {\n uniforms[key].value = value;\n }\n };\n\nexport type CustomParams = { [uniform: string]: UniformValue };\nexport const setCustomUniform =\n (material: { uniforms: UniformObject }) =>\n (customParams: CustomParams | undefined) => {\n if (customParams === undefined) {\n return;\n }\n Object.keys(customParams).forEach((key) => {\n const uniforms = material.uniforms;\n if (uniforms && uniforms[key]) {\n uniforms[key].value = customParams[key];\n }\n });\n };\n","import * as THREE from \"three\";\nimport { useEffect, useMemo } from \"react\";\n\ntype Object3DConstructor = new (\n geometry: THREE.BufferGeometry,\n material: M\n) => T;\n\n/**\n * Add geometry and material to Object3D and add them to scene.\n */\nexport const useAddObject = <\n T extends THREE.Object3D,\n M extends THREE.Material\n>(\n scene: THREE.Scene | false,\n geometry: THREE.BufferGeometry,\n material: M,\n Proto: Object3DConstructor\n) => {\n const object3D = useMemo(() => {\n const obj = new Proto(geometry, material);\n scene && scene.add(obj);\n return obj;\n }, [geometry, material, Proto, scene]);\n\n useEffect(() => {\n return () => {\n scene && scene.remove(object3D);\n geometry.dispose();\n material.dispose();\n };\n }, [scene, geometry, material, object3D]);\n\n return object3D;\n};\n","import * as THREE from \"three\";\n\nexport const ISDEV = process.env.NODE_ENV === \"development\";\n\nexport const MATERIAL_BASIC_PARAMS = {\n transparent: false,\n depthTest: false,\n depthWrite: false,\n};\n\nexport const DEFAULT_TEXTURE = new THREE.DataTexture(\n new Uint8Array([0, 0, 0, 0]),\n 1,\n 1,\n THREE.RGBAFormat\n);\n","//\tSimplex 4D Noise \n//\tby Ian McEwan, Ashima Arts\n//\nvec4 permute(vec4 x){return mod(((x*34.0)+1.0)*x, 289.0);}\nfloat permute(float x){return floor(mod(((x*34.0)+1.0)*x, 289.0));}\nvec4 taylorInvSqrt(vec4 r){return 1.79284291400159 - 0.85373472095314 * r;}\nfloat taylorInvSqrt(float r){return 1.79284291400159 - 0.85373472095314 * r;}\n\nvec4 grad4(float j, vec4 ip)\n{\n\tconst vec4 ones = vec4(1.0, 1.0, 1.0, -1.0);\n\tvec4 p,s;\n\n\tp.xyz = floor( fract (vec3(j) * ip.xyz) * 7.0) * ip.z - 1.0;\n\tp.w = 1.5 - dot(abs(p.xyz), ones.xyz);\n\ts = vec4(lessThan(p, vec4(0.0)));\n\tp.xyz = p.xyz + (s.xyz*2.0 - 1.0) * s.www; \n\n\treturn p;\n}\n\nfloat simplexNoise4d(vec4 v)\n{\n\tconst vec2 C = vec2( 0.138196601125010504, // (5 - sqrt(5))/20 G4\n\t\t\t\t\t\t\t\t\t0.309016994374947451); // (sqrt(5) - 1)/4 F4\n\t// First corner\n\tvec4 i = floor(v + dot(v, C.yyyy) );\n\tvec4 x0 = v - i + dot(i, C.xxxx);\n\n\t// Other corners\n\n\t// Rank sorting originally contributed by Bill Licea-Kane, AMD (formerly ATI)\n\tvec4 i0;\n\n\tvec3 isX = step( x0.yzw, x0.xxx );\n\tvec3 isYZ = step( x0.zww, x0.yyz );\n\t// i0.x = dot( isX, vec3( 1.0 ) );\n\ti0.x = isX.x + isX.y + isX.z;\n\ti0.yzw = 1.0 - isX;\n\n\t// i0.y += dot( isYZ.xy, vec2( 1.0 ) );\n\ti0.y += isYZ.x + isYZ.y;\n\ti0.zw += 1.0 - isYZ.xy;\n\n\ti0.z += isYZ.z;\n\ti0.w += 1.0 - isYZ.z;\n\n\t// i0 now contains the unique values 0,1,2,3 in each channel\n\tvec4 i3 = clamp( i0, 0.0, 1.0 );\n\tvec4 i2 = clamp( i0-1.0, 0.0, 1.0 );\n\tvec4 i1 = clamp( i0-2.0, 0.0, 1.0 );\n\n\t// x0 = x0 - 0.0 + 0.0 * C \n\tvec4 x1 = x0 - i1 + 1.0 * C.xxxx;\n\tvec4 x2 = x0 - i2 + 2.0 * C.xxxx;\n\tvec4 x3 = x0 - i3 + 3.0 * C.xxxx;\n\tvec4 x4 = x0 - 1.0 + 4.0 * C.xxxx;\n\n\t// Permutations\n\ti = mod(i, 289.0); \n\tfloat j0 = permute( permute( permute( permute(i.w) + i.z) + i.y) + i.x);\n\tvec4 j1 = permute( permute( permute( permute (\n\t\t\t\t\ti.w + vec4(i1.w, i2.w, i3.w, 1.0 ))\n\t\t\t\t+ i.z + vec4(i1.z, i2.z, i3.z, 1.0 ))\n\t\t\t\t+ i.y + vec4(i1.y, i2.y, i3.y, 1.0 ))\n\t\t\t\t+ i.x + vec4(i1.x, i2.x, i3.x, 1.0 ));\n\t// Gradients\n\t// ( 7*7*6 points uniformly over a cube, mapped onto a 4-octahedron.)\n\t// 7*7*6 = 294, which is close to the ring size 17*17 = 289.\n\n\tvec4 ip = vec4(1.0/294.0, 1.0/49.0, 1.0/7.0, 0.0) ;\n\n\tvec4 p0 = grad4(j0, ip);\n\tvec4 p1 = grad4(j1.x, ip);\n\tvec4 p2 = grad4(j1.y, ip);\n\tvec4 p3 = grad4(j1.z, ip);\n\tvec4 p4 = grad4(j1.w, ip);\n\n\t// Normalise gradients\n\tvec4 norm = taylorInvSqrt(vec4(dot(p0,p0), dot(p1,p1), dot(p2, p2), dot(p3,p3)));\n\tp0 *= norm.x;\n\tp1 *= norm.y;\n\tp2 *= norm.z;\n\tp3 *= norm.w;\n\tp4 *= taylorInvSqrt(dot(p4,p4));\n\n\t// Mix contributions from the five corners\n\tvec3 m0 = max(0.6 - vec3(dot(x0,x0), dot(x1,x1), dot(x2,x2)), 0.0);\n\tvec2 m1 = max(0.6 - vec2(dot(x3,x3), dot(x4,x4) ), 0.0);\n\tm0 = m0 * m0;\n\tm1 = m1 * m1;\n\treturn 49.0 * ( dot(m0*m0, vec3( dot( p0, x0 ), dot( p1, x1 ), dot( p2, x2 )))\n\t\t\t\t\t\t+ dot(m1*m1, vec2( dot( p3, x3 ), dot( p4, x4 ) ) ) ) ;\n\n}\n\nfloat getWobble(vec3 position)\n{\n\tvec3 warpedPosition = position;\n\twarpedPosition += simplexNoise4d(\n\t\tvec4(\n\t\t\t\tposition * uWarpPositionFrequency,\n\t\t\t\tuTime * uWarpTimeFrequency\n\t\t)\n\t) * uWarpStrength;\n\n\treturn simplexNoise4d(vec4(\n\t\twarpedPosition * uWobblePositionFrequency, // XYZ\n\t\tuTime * uWobbleTimeFrequency // W\n\t)) * uWobbleStrength;\n}","// \n//\tby Nikita Miropolskiy\n\n/* discontinuous pseudorandom uniformly distributed in [-0.5, +0.5]^3 */\nvec3 random3(vec3 c) {\n\tfloat j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0)));\n\tvec3 r;\n\tr.z = fract(512.0*j);\n\tj *= .125;\n\tr.x = fract(512.0*j);\n\tj *= .125;\n\tr.y = fract(512.0*j);\n\treturn r-0.5;\n}\n\nconst float F3 = 0.3333333;\nconst float G3 = 0.1666667;\n\nfloat snoise(vec3 p) {\n\n\tvec3 s = floor(p + dot(p, vec3(F3)));\n\tvec3 x = p - s + dot(s, vec3(G3));\n\t\n\tvec3 e = step(vec3(0.0), x - x.yzx);\n\tvec3 i1 = e*(1.0 - e.zxy);\n\tvec3 i2 = 1.0 - e.zxy*(1.0 - e);\n \t\n\tvec3 x1 = x - i1 + G3;\n\tvec3 x2 = x - i2 + 2.0*G3;\n\tvec3 x3 = x - 1.0 + 3.0*G3;\n\t \n\tvec4 w, d;\n\t \n\tw.x = dot(x, x);\n\tw.y = dot(x1, x1);\n\tw.z = dot(x2, x2);\n\tw.w = dot(x3, x3);\n\t \n\tw = max(0.6 - w, 0.0);\n\t \n\td.x = dot(random3(s), x);\n\td.y = dot(random3(s + i1), x1);\n\td.z = dot(random3(s + i2), x2);\n\td.w = dot(random3(s + 1.0), x3);\n\t \n\tw *= w;\n\tw *= w;\n\td *= w;\n\t \n\treturn dot(d, vec4(52.0));\n}\n\nfloat snoiseFractal(vec3 m) {\n\treturn 0.5333333* snoise(m)\n\t\t\t\t+0.2666667* snoise(2.0*m)\n\t\t\t\t+0.1333333* snoise(4.0*m)\n\t\t\t\t+0.0666667* snoise(8.0*m);\n}","float screenAspect = uResolution.x / uResolution.y;\nfloat textureAspect = uTextureResolution.x / uTextureResolution.y;\nvec2 aspectRatio = vec2(\n\tmin(screenAspect / textureAspect, 1.0),\n\tmin(textureAspect / screenAspect, 1.0)\n);\nvec2 uv = vUv * aspectRatio + (1.0 - aspectRatio) * .5;","vec3 mapColor = texture2D(uMap, uv).rgb;\nvec3 normalizedMap = mapColor * 2.0 - 1.0;\n\nuv = uv * 2.0 - 1.0;\nuv *= mix(vec2(1.0), abs(normalizedMap.rg), uMapIntensity);\nuv = (uv + 1.0) / 2.0;","precision highp float;\n\nvarying vec2 vUv;\n\nvoid main() {\n\tvUv = uv;\n\tgl_Position = vec4(position, 1.0);\n}","varying vec2 vUv;\n\nvoid main() {\n\tvUv = uv;\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}","vec3 hsv2rgb(vec3 c)\n{\n vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}","vec3 rgb2hsv(vec3 c)\n{\n vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\n vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));\n vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));\n\n float d = q.x - min(q.w, q.y);\n float e = 1.0e-10;\n return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);\n}","import wobble3D from \"./shaderChunk/wobble3D.glsl\";\nimport snoise from \"./shaderChunk/snoise.glsl\";\nimport coverTexture from \"./shaderChunk/coverTexture.glsl\";\nimport fxBlending from \"./shaderChunk/fxBlending.glsl\";\nimport planeVertex from \"./shaderChunk/planeVertex.glsl\";\nimport defaultVertex from \"./shaderChunk/defaultVertex.glsl\";\nimport hsv2rgb from \"./shaderChunk/hsv2rgb.glsl\";\nimport rgb2hsv from \"./shaderChunk/rgb2hsv.glsl\";\n\nexport type ShaderChunkTypes =\n | \"wobble3D\"\n | \"snoise\"\n | \"coverTexture\"\n | \"fxBlending\"\n | \"planeVertex\"\n | \"defaultVertex\"\n | \"hsv2rgb\"\n | \"rgb2hsv\";\n\nexport const ShaderChunk: { [K in ShaderChunkTypes]: string } = Object.freeze({\n wobble3D,\n snoise,\n coverTexture,\n fxBlending,\n planeVertex,\n defaultVertex,\n hsv2rgb,\n rgb2hsv,\n});\n","import { ShaderChunk, ShaderChunkTypes } from \"./ShaderChunk\";\n\nconst includePattern = /^[ \\t]*#usf +<([\\w\\d./]+)>/gm;\n\nfunction includeReplacer(match: string, include: ShaderChunkTypes): string {\n return resolveIncludes(ShaderChunk[include] || \"\");\n}\n\nfunction resolveIncludes(string: string): string {\n return string.replace(includePattern, includeReplacer);\n}\n\nexport { resolveIncludes };\n","import { resolveIncludes } from \"../libs/shaders/resolveShaders\";\nimport { OnBeforeInitParameters } from \"../fxs/types\";\n\nexport const createMaterialParameters = (\n parameters: OnBeforeInitParameters,\n onBeforeInit?: (parameters: OnBeforeInitParameters) => void\n) => {\n onBeforeInit && onBeforeInit(parameters);\n parameters.vertexShader = resolveIncludes(parameters.vertexShader);\n parameters.fragmentShader = resolveIncludes(parameters.fragmentShader);\n return parameters;\n};\n","import * as THREE from \"three\";\nimport vertexShader from \"./shader/main.vert\";\nimport fragmentShader from \"./shader/main.frag\";\nimport { useMemo } from \"react\";\nimport { useResolution } from \"../../../utils/useResolution\";\nimport { setUniform } from \"../../../utils/setUniforms\";\nimport { useAddObject } from \"../../../utils/useAddObject\";\nimport { MaterialProps, Size } from \"../../types\";\nimport {\n DEFAULT_TEXTURE,\n MATERIAL_BASIC_PARAMS,\n} from \"../../../libs/constants\";\nimport { BRUSH_PARAMS } from \".\";\nimport { createMaterialParameters } from \"../../../utils/createMaterialParameters\";\n\nexport class BrushMaterial extends THREE.ShaderMaterial {\n uniforms!: {\n uBuffer: { value: THREE.Texture };\n uTexture: { value: THREE.Texture };\n uIsTexture: { value: boolean };\n uMap: { value: THREE.Texture };\n uIsMap: { value: boolean };\n uMapIntensity: { value: number };\n uResolution: { value: THREE.Vector2 };\n uRadius: { value: number };\n uSmudge: { value: number };\n uDissipation: { value: number };\n uMotionBlur: { value: number };\n uMotionSample: { value: number };\n uMouse: { value: number };\n uPrevMouse: { value: number };\n uVelocity: { value: number };\n uColor: { value: THREE.Vector3 | THREE.Color };\n uIsCursor: { value: boolean };\n uPressureStart: { value: number };\n uPressureEnd: { value: number };\n };\n}\n\nexport const useMesh = ({\n scene,\n size,\n dpr,\n onBeforeInit,\n}: {\n scene: THREE.Scene;\n size: Size;\n dpr: number | false;\n} & MaterialProps) => {\n const geometry = useMemo(() => new THREE.PlaneGeometry(2, 2), []);\n const material = useMemo(() => {\n const mat = new THREE.ShaderMaterial({\n ...createMaterialParameters(\n {\n uniforms: {\n uBuffer: { value: DEFAULT_TEXTURE },\n uResolution: { value: new THREE.Vector2(0, 0) },\n uTexture: { value: DEFAULT_TEXTURE },\n uIsTexture: { value: false },\n uMap: { value: DEFAULT_TEXTURE },\n uIsMap: { value: false },\n uMapIntensity: { value: BRUSH_PARAMS.mapIntensity },\n uRadius: { value: BRUSH_PARAMS.radius },\n uSmudge: { value: BRUSH_PARAMS.smudge },\n uDissipation: { value: BRUSH_PARAMS.dissipation },\n uMotionBlur: { value: BRUSH_PARAMS.motionBlur },\n uMotionSample: { value: BRUSH_PARAMS.motionSample },\n uMouse: { value: new THREE.Vector2(-10, -10) },\n uPrevMouse: { value: new THREE.Vector2(-10, -10) },\n uVelocity: { value: new THREE.Vector2(0, 0) },\n uColor: { value: BRUSH_PARAMS.color },\n uIsCursor: { value: false },\n uPressureStart: { value: 1.0 },\n uPressureEnd: { value: 1.0 },\n },\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n },\n onBeforeInit\n ),\n ...MATERIAL_BASIC_PARAMS,\n // Must be transparent\n transparent: true,\n });\n\n return mat;\n }, [onBeforeInit]) as BrushMaterial;\n\n const resolution = useResolution(size, dpr);\n setUniform(material)(\"uResolution\", resolution.clone());\n\n const mesh = useAddObject(scene, geometry, material, THREE.Mesh);\n\n return { material, mesh };\n};\n","import * as THREE from \"three\";\nimport { useResolution } from \"./useResolution\";\nimport { useMemo } from \"react\";\nimport { Size } from \"../fxs/types\";\n\nconst getCameraProps = (width: number, height: number) => {\n const frustumSize = height;\n const aspect = width / height;\n const [w, h] = [(frustumSize * aspect) / 2, frustumSize / 2];\n return { width: w, height: h, near: -1000, far: 1000 };\n};\n\nexport const useCamera = (\n size: Size,\n cameraType: \"OrthographicCamera\" | \"PerspectiveCamera\" = \"OrthographicCamera\"\n) => {\n const resolution = useResolution(size);\n const { width, height, near, far } = getCameraProps(\n resolution.x,\n resolution.y\n );\n const camera = useMemo(() => {\n return cameraType === \"OrthographicCamera\"\n ? new THREE.OrthographicCamera(\n -width,\n width,\n height,\n -height,\n near,\n far\n )\n : new THREE.PerspectiveCamera(50, width / height);\n }, [width, height, near, far, cameraType]);\n return camera;\n};\n","import * as THREE from \"three\";\nimport { useCallback, useRef } from \"react\";\n\nexport type PointerValues = {\n currentPointer: THREE.Vector2;\n prevPointer: THREE.Vector2;\n diffPointer: THREE.Vector2;\n velocity: THREE.Vector2;\n isVelocityUpdate: boolean;\n};\n\ntype UpdatePointer = (currentPointer: THREE.Vector2) => PointerValues;\n\n/**\n * @description When given the pointer vector2 from r3f's RootState, it generates an update function that returns {`currentPointer`, `prevPointer`, `diffPointer`, `isVelocityUpdate`, `velocity`}.\n * @description When calling custom in a `useFrame` loop, you can avoid duplication of execution by passing `pointerValues` to the update function of a Pointer-activated fxHook, such as `useBrush`.\n * @param lerp 0~1, lerp intensity (0 to less than 1) , default : `0`\n */\nexport const usePointer = (lerp: number = 0): UpdatePointer => {\n const prevPointer = useRef(new THREE.Vector2(0, 0));\n const diffPointer = useRef(new THREE.Vector2(0, 0));\n const lerpPointer = useRef(new THREE.Vector2(0, 0));\n const lastUpdateTime = useRef(0);\n const velocity = useRef(new THREE.Vector2(0, 0));\n const isMoved = useRef(false);\n\n const updatePointer = useCallback(\n (currentPointer: THREE.Vector2) => {\n const now = performance.now();\n\n // lerp\n let current: THREE.Vector2;\n if (isMoved.current && lerp) {\n lerpPointer.current = lerpPointer.current.lerp(\n currentPointer,\n 1 - lerp\n );\n current = lerpPointer.current.clone();\n } else {\n current = currentPointer.clone();\n lerpPointer.current = current;\n }\n\n // first frame\n if (lastUpdateTime.current === 0) {\n lastUpdateTime.current = now;\n prevPointer.current = current;\n }\n const deltaTime = Math.max(1, now - lastUpdateTime.current);\n lastUpdateTime.current = now;\n\n // get velocity\n velocity.current\n .copy(current)\n .sub(prevPointer.current)\n .divideScalar(deltaTime);\n const isUpdate = velocity.current.length() > 0;\n\n //set prev temp pos\n const prevTemp = isMoved.current\n ? prevPointer.current.clone()\n : current;\n if (!isMoved.current && isUpdate) {\n isMoved.current = true;\n }\n prevPointer.current = current;\n\n return {\n currentPointer: current,\n prevPointer: prevTemp,\n diffPointer: diffPointer.current.subVectors(current, prevTemp),\n velocity: velocity.current,\n isVelocityUpdate: isUpdate,\n };\n },\n [lerp]\n );\n\n return updatePointer;\n};\n","import { useCallback, useRef } from \"react\";\n\ntype SetParams = (newParams?: Partial) => void;\ntype UseParamsReturn = [T, SetParams];\n\n/**\n * @param params Receives an initial value object. With structuredClone, deep copy and set, but if the object contains a function, just set it.\n */\nexport const useParams = (params: T): UseParamsReturn => {\n const isContainsFunctions = (obj: object): boolean =>\n Object.values(obj).some((value) => typeof value === \"function\");\n const paramsRef = useRef(\n isContainsFunctions(params) ? params : structuredClone(params)\n );\n\n const setParams = useCallback>((newParams) => {\n if (newParams === undefined) {\n return;\n }\n for (const key in newParams) {\n const paramKey = key as keyof T;\n if (\n paramKey in paramsRef.current &&\n newParams[paramKey] !== undefined &&\n newParams[paramKey] !== null\n ) {\n paramsRef.current[paramKey] = newParams[paramKey]!;\n } else {\n console.error(\n `\"${String(\n paramKey\n )}\" does not exist in the params. or \"${String(\n paramKey\n )}\" is null | undefined`\n );\n }\n }\n }, []);\n return [paramsRef.current, setParams];\n};\n","import * as THREE from \"three\";\nimport { useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { useResolution } from \"./useResolution\";\nimport { Size } from \"../fxs/types\";\n\nexport const FBO_DEFAULT_OPTION: THREE.RenderTargetOptions = {\n depthBuffer: false,\n};\n\nexport type UseFboProps = {\n scene: THREE.Scene;\n camera: THREE.Camera;\n size: Size;\n /** If dpr is set, dpr will be multiplied, default : `false` */\n dpr?: number | false;\n /** Whether to resize when resizing occurs. If isDpr is true, set FBO to setSize even if dpr is changed, default : `false` */\n isSizeUpdate?: boolean;\n /** If set, the scene depth will be rendered into buffer.depthTexture. default : `false` */\n depth?: boolean;\n} & THREE.RenderTargetOptions;\n\nexport const renderFBO = ({\n gl,\n fbo,\n scene,\n camera,\n onBeforeRender,\n onSwap,\n}: {\n gl: THREE.WebGLRenderer;\n fbo: THREE.WebGLRenderTarget;\n scene: THREE.Scene;\n camera: THREE.Camera;\n onBeforeRender: () => void;\n onSwap?: () => void;\n}) => {\n gl.setRenderTarget(fbo);\n onBeforeRender();\n gl.clear();\n gl.render(scene, camera);\n onSwap && onSwap();\n gl.setRenderTarget(null);\n gl.clear();\n};\n\ntype UpdateRenderTarget = (\n gl: THREE.WebGLRenderer,\n /** call before FBO is rendered */\n onBeforeRender?: ({ read }: { read: THREE.Texture }) => void\n) => THREE.Texture;\n\ntype UseSingleFBOReturn = [THREE.WebGLRenderTarget, UpdateRenderTarget];\n\n/**\n * @param dpr If dpr is set, dpr will be multiplied, default:false\n * @param isSizeUpdate Whether to resize when resizing occurs. If isDpr is true, set FBO to setSize even if dpr is changed, default:false\n * @param depthBuffer Unlike the default in three.js, the default is `false`.\n * @returns [THREE.WebGLRenderTarget , updateFBO] -Receives the RenderTarget as the first argument and the update function as the second argument.\n */\nexport const useSingleFBO = (props: UseFboProps): UseSingleFBOReturn => {\n const {\n scene,\n camera,\n size,\n dpr = false,\n isSizeUpdate = false,\n depth = false,\n ...renderTargetOptions\n } = props;\n\n const renderTarget = useRef();\n\n const resolution = useResolution(size, dpr);\n\n renderTarget.current = useMemo(\n () => {\n const target = new THREE.WebGLRenderTarget(\n resolution.x,\n resolution.y,\n {\n ...FBO_DEFAULT_OPTION,\n ...renderTargetOptions,\n }\n );\n if (depth) {\n target.depthTexture = new THREE.DepthTexture(\n resolution.x,\n resolution.y,\n THREE.FloatType\n );\n }\n return target;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n if (isSizeUpdate) {\n renderTarget.current?.setSize(resolution.x, resolution.y);\n }\n\n useEffect(() => {\n const temp = renderTarget.current;\n return () => {\n temp?.dispose();\n };\n }, []);\n\n const updateRenderTarget: UpdateRenderTarget = useCallback(\n (gl, onBeforeRender) => {\n const fbo = renderTarget.current!;\n renderFBO({\n gl,\n fbo,\n scene,\n camera,\n onBeforeRender: () =>\n onBeforeRender && onBeforeRender({ read: fbo.texture }),\n });\n return fbo.texture;\n },\n [scene, camera]\n );\n\n return [renderTarget.current, updateRenderTarget];\n};\n","import * as THREE from \"three\";\nimport { useCallback, useEffect, useMemo } from \"react\";\nimport { FBO_DEFAULT_OPTION, UseFboProps, renderFBO } from \"./useSingleFBO\";\nimport { useResolution } from \"./useResolution\";\n\nexport type DoubleRenderTarget = {\n read: THREE.WebGLRenderTarget;\n write: THREE.WebGLRenderTarget;\n};\n\ninterface WebGLDoubleRenderTarget extends DoubleRenderTarget {\n swap: () => void;\n}\n\ntype FBOUpdateFunction = (\n gl: THREE.WebGLRenderer,\n /** call before FBO is rendered */\n onBeforeRender?: ({\n read,\n write,\n }: {\n read: THREE.Texture;\n write: THREE.Texture;\n }) => void\n) => THREE.Texture;\n\ntype UseDoubleFBOReturn = [\n { read: THREE.WebGLRenderTarget; write: THREE.WebGLRenderTarget },\n FBOUpdateFunction\n];\n\n/**\n * @description Custom hook for setting up double buffering with WebGL render targets.\n * @param UseFboProps same as `useSingleFBO`\n */\nexport const useDoubleFBO = (props: UseFboProps): UseDoubleFBOReturn => {\n const {\n scene,\n camera,\n size,\n dpr = false,\n isSizeUpdate = false,\n depth = false,\n ...renderTargetOptions\n } = props;\n\n const resolution = useResolution(size, dpr);\n\n const renderTarget = useMemo(() => {\n const read = new THREE.WebGLRenderTarget(resolution.x, resolution.y, {\n ...FBO_DEFAULT_OPTION,\n ...renderTargetOptions,\n });\n const write = new THREE.WebGLRenderTarget(resolution.x, resolution.y, {\n ...FBO_DEFAULT_OPTION,\n ...renderTargetOptions,\n });\n\n if (depth) {\n read.depthTexture = new THREE.DepthTexture(\n resolution.x,\n resolution.y,\n THREE.FloatType\n );\n write.depthTexture = new THREE.DepthTexture(\n resolution.x,\n resolution.y,\n THREE.FloatType\n );\n }\n\n return {\n read: read,\n write: write,\n swap: function () {\n let temp = this.read;\n this.read = this.write;\n this.write = temp;\n },\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n if (isSizeUpdate) {\n renderTarget.read?.setSize(resolution.x, resolution.y);\n renderTarget.write?.setSize(resolution.x, resolution.y);\n }\n\n useEffect(() => {\n const temp = renderTarget;\n return () => {\n temp.read?.dispose();\n temp.write?.dispose();\n };\n }, [renderTarget]);\n\n const updateRenderTarget: FBOUpdateFunction = useCallback(\n (gl, onBeforeRender) => {\n const fbo = renderTarget;\n renderFBO({\n gl,\n scene,\n camera,\n fbo: fbo.write!,\n onBeforeRender: () =>\n onBeforeRender &&\n onBeforeRender({\n read: fbo.read!.texture,\n write: fbo.write!.texture,\n }),\n onSwap: () => fbo.swap(),\n });\n return fbo.read?.texture as THREE.Texture;\n },\n [scene, camera, renderTarget]\n );\n\n return [\n { read: renderTarget.read, write: renderTarget.write },\n updateRenderTarget,\n ];\n};\n","import { Dpr } from \"../fxs/types\";\n\nexport const getDpr = (\n dpr: Dpr\n): { shader: number | false; fbo: number | false } => {\n if (typeof dpr === \"number\") {\n return { shader: dpr, fbo: dpr };\n }\n return {\n shader: dpr.shader ?? false,\n fbo: dpr.fbo ?? false,\n };\n};\n","import * as THREE from \"three\";\nimport { useMesh } from \"./useMesh\";\nimport { useCamera } from \"../../../utils/useCamera\";\nimport { useCallback, useMemo, useRef } from \"react\";\nimport { RootState } from \"@react-three/fiber\";\nimport { PointerValues, usePointer } from \"../../../misc/usePointer\";\nimport {\n CustomParams,\n setCustomUniform,\n setUniform,\n} from \"../../../utils/setUniforms\";\nimport { HooksProps, HooksReturn } from \"../../types\";\nimport { useParams } from \"../../../utils/useParams\";\nimport { DoubleRenderTarget, useDoubleFBO } from \"../../../utils/useDoubleFBO\";\nimport { getDpr } from \"../../../utils/getDpr\";\n\nexport type BrushParams = {\n /** Texture applied to the brush, If texture is true, it will take precedence over color , default : `false` */\n texture?: THREE.Texture | false;\n /** You can attach an fx map , default : `false` */\n map?: THREE.Texture | false;\n /** map intensity , default : `0.1` */\n mapIntensity?: number;\n /** size of the stamp, percentage of the size ,default : `0.05` */\n radius?: number;\n /** Strength of smudge effect , default : `0.0`*/\n smudge?: number;\n /** dissipation rate. If set to 1, it will remain. , default : `1.0` */\n dissipation?: number;\n /** Strength of motion blur , default : `0.0` */\n motionBlur?: number;\n /** Number of motion blur samples. Affects performance default : `5` */\n motionSample?: number;\n /** brush color , it accepts a function that returns THREE.Vector3.The function takes velocity:THREE.Vector2 as an argument. , default : `THREE.Vector3(1.0, 1.0, 1.0)` */\n color?:\n | ((velocity: THREE.Vector2) => THREE.Vector3)\n | THREE.Vector3\n | THREE.Color;\n /** Follows the cursor even if it loses speed , default : `false` */\n isCursor?: boolean;\n /** brush pressure (0 to 1) , default : `1.0` */\n pressure?: number;\n /** When calling usePointer in a frame loop, setting PointerValues to this value prevents double calls , default : `false` */\n pointerValues?: PointerValues | false;\n};\n\nexport type BrushObject = {\n scene: THREE.Scene;\n mesh: THREE.Mesh;\n material: THREE.Material;\n camera: THREE.Camera;\n renderTarget: DoubleRenderTarget;\n output: THREE.Texture;\n};\n\nexport const BRUSH_PARAMS: BrushParams = Object.freeze({\n texture: false,\n map: false,\n mapIntensity: 0.1,\n radius: 0.05,\n smudge: 0.0,\n dissipation: 1.0,\n motionBlur: 0.0,\n motionSample: 5,\n color: new THREE.Vector3(1.0, 0.0, 0.0),\n isCursor: false,\n pressure: 1.0,\n pointerValues: false,\n});\n\n/**\n * @link https://github.com/FunTechInc/use-shader-fx?tab=readme-ov-file#usage\n */\nexport const useBrush = ({\n size,\n dpr,\n renderTargetOptions,\n isSizeUpdate,\n onBeforeInit,\n}: HooksProps): HooksReturn => {\n const _dpr = getDpr(dpr);\n\n const scene = useMemo(() => new THREE.Scene(), []);\n const { material, mesh } = useMesh({\n scene,\n size,\n dpr: _dpr.shader,\n onBeforeInit,\n });\n const camera = useCamera(size);\n const updatePointer = usePointer();\n const [renderTarget, updateRenderTarget] = useDoubleFBO({\n scene,\n camera,\n size,\n dpr: _dpr.fbo,\n isSizeUpdate,\n ...renderTargetOptions,\n });\n\n const [params, setParams] = useParams(BRUSH_PARAMS);\n\n const pressureEnd = useRef(null);\n\n const updateValue = setUniform(material);\n const updateCustomValue = setCustomUniform(material);\n\n const updateParams = useCallback(\n (newParams?: BrushParams, customParams?: CustomParams) => {\n setParams(newParams);\n updateCustomValue(customParams);\n },\n [setParams, updateCustomValue]\n );\n\n const updateFx = useCallback(\n (\n rootState: RootState,\n newParams?: BrushParams,\n customParams?: CustomParams\n ) => {\n const { gl, pointer } = rootState;\n\n updateParams(newParams, customParams);\n\n if (params.texture!) {\n updateValue(\"uIsTexture\", true);\n updateValue(\"uTexture\", params.texture!);\n } else {\n updateValue(\"uIsTexture\", false);\n }\n\n if (params.map!) {\n updateValue(\"uIsMap\", true);\n updateValue(\"uMap\", params.map!);\n updateValue(\"uMapIntensity\", params.mapIntensity!);\n } else {\n updateValue(\"uIsMap\", false);\n }\n\n updateValue(\"uRadius\", params.radius!);\n updateValue(\"uSmudge\", params.smudge!);\n updateValue(\"uDissipation\", params.dissipation!);\n updateValue(\"uMotionBlur\", params.motionBlur!);\n updateValue(\"uMotionSample\", params.motionSample!);\n\n const pointerValues = params.pointerValues! || updatePointer(pointer);\n\n if (pointerValues.isVelocityUpdate) {\n updateValue(\"uMouse\", pointerValues.currentPointer);\n updateValue(\"uPrevMouse\", pointerValues.prevPointer);\n }\n updateValue(\"uVelocity\", pointerValues.velocity);\n\n const color: THREE.Vector3 | THREE.Color =\n typeof params.color === \"function\"\n ? params.color(pointerValues.velocity)\n : params.color!;\n updateValue(\"uColor\", color);\n\n updateValue(\"uIsCursor\", params.isCursor!);\n\n // pressure\n updateValue(\"uPressureEnd\", params.pressure!);\n if (pressureEnd.current === null) {\n pressureEnd.current = params.pressure!;\n }\n updateValue(\"uPressureStart\", pressureEnd.current);\n pressureEnd.current = params.pressure!;\n\n return updateRenderTarget(gl, ({ read }) => {\n updateValue(\"uBuffer\", read);\n });\n },\n [updateValue, updatePointer, updateRenderTarget, params, updateParams]\n );\n\n return [\n updateFx,\n updateParams,\n {\n scene: scene,\n mesh: mesh,\n material: material,\n camera: camera,\n renderTarget: renderTarget,\n output: renderTarget.read.texture,\n },\n ];\n};\n","varying vec2 vUv;\nvarying vec2 vL;\nvarying vec2 vR;\nvarying vec2 vT;\nvarying vec2 vB;\nuniform vec2 texelSize;\n\nvoid main () {\n\tvUv = uv;\n\tvL = vUv - vec2(texelSize.x, 0.0);\n\tvR = vUv + vec2(texelSize.x, 0.0);\n\tvT = vUv + vec2(0.0, texelSize.y);\n\tvB = vUv - vec2(0.0, texelSize.y);\n\tgl_Position = vec4(position, 1.0);\n}","precision highp float;\n\nvoid main(){\n\tgl_FragColor = vec4(0.0);\n}","import * as THREE from \"three\";\nimport { useMemo } from \"react\";\nimport vertexShader from \"../shaders/main.vert\";\nimport fragmentShader from \"../shaders/init.frag\";\nimport { MATERIAL_BASIC_PARAMS } from \"../../../../libs/constants\";\n\nexport const useInitialMaterial = () => {\n const initialMaterial = useMemo(() => {\n const mat = new THREE.ShaderMaterial({\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n ...MATERIAL_BASIC_PARAMS,\n });\n return mat;\n }, []);\n\n return initialMaterial as THREE.ShaderMaterial;\n};\n","precision highp float;\n\nvarying vec2 vUv;\nuniform sampler2D uVelocity;\nuniform sampler2D uSource;\nuniform vec2 texelSize;\nuniform float dt;\nuniform float dissipation;\n\nvoid main () {\n\tvec2 coord = vUv - dt * texture2D(uVelocity, vUv).xy * texelSize;\n\tgl_FragColor = vec4(dissipation * texture2D(uSource, coord).rgb,1.);\n}","import * as THREE from \"three\";\nimport { useMemo } from \"react\";\nimport vertexShader from \"../shaders/main.vert\";\nimport fragmentShader from \"../shaders/advection.frag\";\nimport { MaterialProps } from \"../../../types\";\nimport {\n DEFAULT_TEXTURE,\n MATERIAL_BASIC_PARAMS,\n} from \"../../../../libs/constants\";\nimport { DELTA_TIME } from \"..\";\nimport { createMaterialParameters } from \"../../../../utils/createMaterialParameters\";\n\nexport class AdvectionMaterial extends THREE.ShaderMaterial {\n uniforms!: {\n uVelocity: { value: THREE.Texture };\n uSource: { value: THREE.Texture };\n texelSize: { value: THREE.Vector2 };\n dt: { value: number };\n dissipation: { value: number };\n };\n}\n\nexport const useAdvectionMaterial = ({ onBeforeInit }: MaterialProps) => {\n const advectionMaterial = useMemo(() => {\n const mat = new THREE.ShaderMaterial({\n ...createMaterialParameters(\n {\n uniforms: {\n uVelocity: { value: DEFAULT_TEXTURE },\n uSource: { value: DEFAULT_TEXTURE },\n texelSize: { value: new THREE.Vector2() },\n dt: { value: DELTA_TIME },\n dissipation: { value: 0.0 },\n },\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n },\n onBeforeInit\n ),\n ...MATERIAL_BASIC_PARAMS,\n });\n\n return mat;\n }, [onBeforeInit]);\n\n return advectionMaterial as AdvectionMaterial;\n};\n","precision highp float;\n\nvarying vec2 vUv;\nvarying vec2 vL;\nvarying vec2 vR;\nvarying vec2 vT;\nvarying vec2 vB;\nuniform sampler2D uVelocity;\n\nvec2 sampleVelocity(in vec2 uv) {\n\tvec2 clampedUV = clamp(uv, 0.0, 1.0);\n\tvec2 multiplier = vec2(1.0, 1.0);\n\tmultiplier.x = uv.x < 0.0 || uv.x > 1.0 ? -1.0 : 1.0;\n\tmultiplier.y = uv.y < 0.0 || uv.y > 1.0 ? -1.0 : 1.0;\n\treturn multiplier * texture2D(uVelocity, clampedUV).xy;\n}\n\nvoid main () {\n\tfloat L = sampleVelocity(vL).x;\n\tfloat R = sampleVelocity(vR).x;\n\tfloat T = sampleVelocity(vT).y;\n\tfloat B = sampleVelocity(vB).y;\n\tfloat div = 0.5 * (R - L + T - B);\n\tgl_FragColor = vec4(div, 0.0, 0.0, 1.0);\n}","import * as THREE from \"three\";\nimport { useMemo } from \"react\";\nimport vertexShader from \"../shaders/main.vert\";\nimport fragmentShader from \"../shaders/divergence.frag\";\nimport { MaterialProps } from \"../../../types\";\nimport { MATERIAL_BASIC_PARAMS } from \"../../../../libs/constants\";\nimport { createMaterialParameters } from \"../../../../utils/createMaterialParameters\";\n\nexport class DivergenceMaterial extends THREE.ShaderMaterial {\n uniforms!: {\n uVelocity: { value: THREE.Texture };\n texelSize: { value: THREE.Vector2 };\n };\n}\n\nexport const useDivergenceMaterial = ({ onBeforeInit }: MaterialProps) => {\n const divergenceMaterial = useMemo(() => {\n const mat = new THREE.ShaderMaterial({\n ...createMaterialParameters(\n {\n uniforms: {\n uVelocity: { value: null },\n texelSize: { value: new THREE.Vector2() },\n },\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n },\n onBeforeInit\n ),\n ...MATERIAL_BASIC_PARAMS,\n });\n return mat;\n }, [onBeforeInit]);\n\n return divergenceMaterial as DivergenceMaterial;\n};\n","precision highp float;\n\nvarying vec2 vUv;\nvarying vec2 vL;\nvarying vec2 vR;\nvarying vec2 vT;\nvarying vec2 vB;\nuniform sampler2D uPressure;\nuniform sampler2D uDivergence;\n\nvoid main () {\n\tfloat L = texture2D(uPressure, clamp(vL,0.,1.)).x;\n\tfloat R = texture2D(uPressure, clamp(vR,0.,1.)).x;\n\tfloat T = texture2D(uPressure, clamp(vT,0.,1.)).x;\n\tfloat B = texture2D(uPressure, clamp(vB,0.,1.)).x;\n\tfloat C = texture2D(uPressure, vUv).x;\n\tfloat divergence = texture2D(uDivergence, vUv).x;\n\tfloat pressure = (L + R + B + T - divergence) * 0.25;\n\tgl_FragColor = vec4(pressure, 0.0, 0.0, 1.0);\n}","import * as THREE from \"three\";\nimport { useMemo } from \"react\";\nimport vertexShader from \"../shaders/main.vert\";\nimport fragmentShader from \"../shaders/pressure.frag\";\nimport { MaterialProps } from \"../../../types\";\nimport { MATERIAL_BASIC_PARAMS } from \"../../../../libs/constants\";\nimport { createMaterialParameters } from \"../../../../utils/createMaterialParameters\";\n\nexport class PressureMaterial extends THREE.ShaderMaterial {\n uniforms!: {\n uPressure: { value: THREE.Texture };\n uDivergence: { value: THREE.Texture };\n texelSize: { value: THREE.Vector2 };\n };\n}\n\nexport const usePressureMaterial = ({ onBeforeInit }: MaterialProps) => {\n const pressureMaterial = useMemo(() => {\n const mat = new THREE.ShaderMaterial({\n ...createMaterialParameters(\n {\n uniforms: {\n uPressure: { value: null },\n uDivergence: { value: null },\n texelSize: { value: new THREE.Vector2() },\n },\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n },\n onBeforeInit\n ),\n ...MATERIAL_BASIC_PARAMS,\n });\n\n return mat;\n }, [onBeforeInit]);\n\n return pressureMaterial as PressureMaterial;\n};\n","precision highp float;\n\nvarying vec2 vUv;\nvarying vec2 vL;\nvarying vec2 vR;\nvarying vec2 vT;\nvarying vec2 vB;\nuniform sampler2D uVelocity;\n\nvoid main () {\n\tfloat L = texture2D(uVelocity, vL).y;\n\tfloat R = texture2D(uVelocity, vR).y;\n\tfloat T = texture2D(uVelocity, vT).x;\n\tfloat B = texture2D(uVelocity, vB).x;\n\tfloat vorticity = R - L - T + B;\n\tgl_FragColor = vec4(vorticity, 0.0, 0.0, 1.0);\n}","import * as THREE from \"three\";\nimport { useMemo } from \"react\";\nimport vertexShader from \"../shaders/main.vert\";\nimport fragmentShader from \"../shaders/curl.frag\";\nimport { MaterialProps } from \"../../../types\";\nimport { MATERIAL_BASIC_PARAMS } from \"../../../../libs/constants\";\nimport { createMaterialParameters } from \"../../../../utils/createMaterialParameters\";\n\nexport class CurlMaterial extends THREE.ShaderMaterial {\n uniforms!: {\n uVelocity: { value: THREE.Texture };\n texelSize: { value: THREE.Vector2 };\n };\n}\n\nexport const useCurlMaterial = ({ onBeforeInit }: MaterialProps) => {\n const curlMaterial = useMemo(() => {\n const mat = new THREE.ShaderMaterial({\n ...createMaterialParameters(\n {\n uniforms: {\n uVelocity: { value: null },\n texelSize: { value: new THREE.Vector2() },\n },\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n },\n onBeforeInit\n ),\n ...MATERIAL_BASIC_PARAMS,\n });\n\n return mat;\n }, [onBeforeInit]);\n\n return curlMaterial as CurlMaterial;\n};\n","precision highp float;\n\nvarying vec2 vUv;\nvarying vec2 vT;\nvarying vec2 vB;\nuniform sampler2D uVelocity;\nuniform sampler2D uCurl;\nuniform float curl;\nuniform float dt;\n\nvoid main () {\n\tfloat T = texture2D(uCurl, vT).x;\n\tfloat B = texture2D(uCurl, vB).x;\n\tfloat C = texture2D(uCurl, vUv).x;\n\tvec2 force = vec2(abs(T) - abs(B), 0.0);\n\tforce *= 1.0 / length(force + 0.00001) * curl * C;\n\tvec2 vel = texture2D(uVelocity, vUv).xy;\n\tgl_FragColor = vec4(vel + force * dt, 0.0, 1.0);\n}","import * as THREE from \"three\";\nimport { useMemo } from \"react\";\nimport vertexShader from \"../shaders/main.vert\";\nimport fragmentShader from \"../shaders/vorticity.frag\";\nimport { MaterialProps } from \"../../../types\";\nimport { MATERIAL_BASIC_PARAMS } from \"../../../../libs/constants\";\nimport { DELTA_TIME } from \"..\";\nimport { createMaterialParameters } from \"../../../../utils/createMaterialParameters\";\n\nexport class VorticityMaterial extends THREE.ShaderMaterial {\n uniforms!: {\n uVelocity: { value: THREE.Texture };\n uCurl: { value: THREE.Texture };\n curl: { value: number };\n dt: { value: number };\n texelSize: { value: THREE.Vector2 };\n };\n}\n\nexport const useVorticityMaterial = ({ onBeforeInit }: MaterialProps) => {\n const vorticityMaterial = useMemo(() => {\n const mat = new THREE.ShaderMaterial({\n ...createMaterialParameters(\n {\n uniforms: {\n uVelocity: { value: null },\n uCurl: { value: null },\n curl: { value: 0 },\n dt: { value: DELTA_TIME },\n texelSize: { value: new THREE.Vector2() },\n },\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n },\n onBeforeInit\n ),\n ...MATERIAL_BASIC_PARAMS,\n });\n return mat;\n }, [onBeforeInit]);\n\n return vorticityMaterial as VorticityMaterial;\n};\n","precision highp float;\n\nvarying vec2 vUv;\nuniform sampler2D uTexture;\nuniform float value;\n\nvoid main () {\n\tgl_FragColor = value * texture2D(uTexture, vUv);\n}","import * as THREE from \"three\";\nimport { useMemo } from \"react\";\nimport vertexShader from \"../shaders/main.vert\";\nimport fragmentShader from \"../shaders/clear.frag\";\nimport { MaterialProps } from \"../../../types\";\nimport {\n MATERIAL_BASIC_PARAMS,\n DEFAULT_TEXTURE,\n} from \"../../../../libs/constants\";\nimport { createMaterialParameters } from \"../../../../utils/createMaterialParameters\";\n\nexport class ClearMaterial extends THREE.ShaderMaterial {\n uniforms!: {\n uTexture: { value: THREE.Texture };\n value: { value: number };\n texelSize: { value: THREE.Vector2 };\n };\n}\n\nexport const useClearMaterial = ({ onBeforeInit }: MaterialProps) => {\n const advectionMaterial = useMemo(() => {\n const mat = new THREE.ShaderMaterial({\n ...createMaterialParameters(\n {\n uniforms: {\n uTexture: { value: DEFAULT_TEXTURE },\n value: { value: 0.0 },\n texelSize: { value: new THREE.Vector2() },\n },\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n },\n onBeforeInit\n ),\n ...MATERIAL_BASIC_PARAMS,\n });\n\n return mat;\n }, [onBeforeInit]);\n\n return advectionMaterial as ClearMaterial;\n};\n","precision highp float;\n\nvarying vec2 vUv;\nvarying vec2 vL;\nvarying vec2 vR;\nvarying vec2 vT;\nvarying vec2 vB;\nuniform sampler2D uPressure;\nuniform sampler2D uVelocity;\n\nvoid main () {\n\tfloat L = texture2D(uPressure, clamp(vL,0.,1.)).x;\n\tfloat R = texture2D(uPressure, clamp(vR,0.,1.)).x;\n\tfloat T = texture2D(uPressure, clamp(vT,0.,1.)).x;\n\tfloat B = texture2D(uPressure, clamp(vB,0.,1.)).x;\n\tvec2 velocity = texture2D(uVelocity, vUv).xy;\n\tvelocity.xy -= vec2(R - L, T - B);\n\tgl_FragColor = vec4(velocity, 0.0, 1.0);\n}","import * as THREE from \"three\";\nimport { useMemo } from \"react\";\nimport vertexShader from \"../shaders/main.vert\";\nimport fragmentShader from \"../shaders/gradientSubtract.frag\";\nimport { MaterialProps } from \"../../../types\";\nimport {\n MATERIAL_BASIC_PARAMS,\n DEFAULT_TEXTURE,\n} from \"../../../../libs/constants\";\nimport { createMaterialParameters } from \"../../../../utils/createMaterialParameters\";\n\nexport class GradientSubtractMaterial extends THREE.ShaderMaterial {\n uniforms!: {\n uPressure: { value: THREE.Texture };\n uVelocity: { value: THREE.Texture };\n texelSize: { value: THREE.Vector2 };\n };\n}\n\nexport const useGradientSubtractMaterial = ({\n onBeforeInit,\n}: MaterialProps) => {\n const gradientSubtractMaterial = useMemo(() => {\n const mat = new THREE.ShaderMaterial({\n ...createMaterialParameters(\n {\n uniforms: {\n uPressure: { value: DEFAULT_TEXTURE },\n uVelocity: { value: DEFAULT_TEXTURE },\n texelSize: { value: new THREE.Vector2() },\n },\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n },\n onBeforeInit\n ),\n ...MATERIAL_BASIC_PARAMS,\n });\n\n return mat;\n }, [onBeforeInit]);\n\n return gradientSubtractMaterial as GradientSubtractMaterial;\n};\n","precision highp float;\n\nvarying vec2 vUv;\nuniform sampler2D uTarget;\nuniform float aspectRatio;\nuniform vec3 color;\nuniform vec2 point;\nuniform float radius;\n\nvoid main () {\n\tvec2 nPoint = (point + vec2(1.0)) * 0.5;\n\tvec2 p = vUv - nPoint.xy;\n\tp.x *= aspectRatio;\n\tvec3 splat = exp(-dot(p, p) / radius) * color;\n\tvec3 base = texture2D(uTarget, vUv).xyz;\n\tgl_FragColor = vec4(base + splat, 1.0);\n}","import * as THREE from \"three\";\nimport { useMemo } from \"react\";\nimport vertexShader from \"../shaders/main.vert\";\nimport fragmentShader from \"../shaders/splat.frag\";\nimport { MaterialProps } from \"../../../types\";\nimport {\n MATERIAL_BASIC_PARAMS,\n DEFAULT_TEXTURE,\n} from \"../../../../libs/constants\";\nimport { createMaterialParameters } from \"../../../../utils/createMaterialParameters\";\n\nexport class SplatMaterial extends THREE.ShaderMaterial {\n uniforms!: {\n uTarget: { value: THREE.Texture };\n aspectRatio: { value: number };\n color: { value: THREE.Vector3 | THREE.Color };\n point: { value: THREE.Vector2 };\n radius: { value: number };\n texelSize: { value: THREE.Vector2 };\n };\n}\n\nexport const useSplatMaterial = ({ onBeforeInit }: MaterialProps) => {\n const splatMaterial = useMemo(() => {\n const mat = new THREE.ShaderMaterial({\n ...createMaterialParameters(\n {\n uniforms: {\n uTarget: { value: DEFAULT_TEXTURE },\n aspectRatio: { value: 0 },\n color: { value: new THREE.Vector3() },\n point: { value: new THREE.Vector2() },\n radius: { value: 0.0 },\n texelSize: { value: new THREE.Vector2() },\n },\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n },\n onBeforeInit\n ),\n ...MATERIAL_BASIC_PARAMS,\n });\n\n return mat;\n }, [onBeforeInit]);\n\n return splatMaterial as SplatMaterial;\n};\n","import * as THREE from \"three\";\nimport { useCallback, useEffect, useMemo } from \"react\";\nimport { useInitialMaterial } from \"./materials/useInitialMaterial\";\nimport {\n AdvectionMaterial,\n useAdvectionMaterial,\n} from \"./materials/useAdvectionMaterial\";\nimport {\n DivergenceMaterial,\n useDivergenceMaterial,\n} from \"./materials/useDivergenceMaterial\";\nimport {\n PressureMaterial,\n usePressureMaterial,\n} from \"./materials/usePressureMaterial\";\nimport { CurlMaterial, useCurlMaterial } from \"./materials/useCurlMaterial\";\nimport {\n VorticityMaterial,\n useVorticityMaterial,\n} from \"./materials/useVorticityMaterial\";\nimport { useResolution } from \"../../../utils/useResolution\";\nimport { ClearMaterial, useClearMaterial } from \"./materials/useClearMaterial\";\nimport {\n GradientSubtractMaterial,\n useGradientSubtractMaterial,\n} from \"./materials/useGradientSubtractMaterial\";\nimport { SplatMaterial, useSplatMaterial } from \"./materials/useSplatMaterial\";\nimport { CustomParams, setUniform } from \"../../../utils/setUniforms\";\nimport { useAddObject } from \"../../../utils/useAddObject\";\nimport { MaterialProps, Size } from \"../../types\";\n\ntype TMaterials =\n | AdvectionMaterial\n | DivergenceMaterial\n | CurlMaterial\n | PressureMaterial\n | ClearMaterial\n | GradientSubtractMaterial\n | SplatMaterial;\n\nexport type FluidMaterials = {\n vorticityMaterial: VorticityMaterial;\n curlMaterial: CurlMaterial;\n advectionMaterial: AdvectionMaterial;\n divergenceMaterial: DivergenceMaterial;\n pressureMaterial: PressureMaterial;\n clearMaterial: ClearMaterial;\n gradientSubtractMaterial: GradientSubtractMaterial;\n splatMaterial: SplatMaterial;\n};\n\nexport type CustomizableKeys =\n | \"advection\"\n | \"splat\"\n | \"curl\"\n | \"vorticity\"\n | \"divergence\"\n | \"clear\"\n | \"pressure\"\n | \"gradientSubtract\";\n\nexport type CustomFluidProps = {\n [K in CustomizableKeys]?: MaterialProps;\n};\nexport type CustomFluidParams = {\n [K in CustomizableKeys]?: CustomParams;\n};\n\nconst useCustomMaterial = (\n materialHook: (materialProps: MaterialProps) => T,\n materialProps?: MaterialProps\n) => {\n return materialHook(materialProps ?? {});\n};\n\n/**\n * Returns the material update function in the second argument\n */\nexport const useMesh = ({\n scene,\n size,\n dpr,\n customFluidProps,\n}: {\n scene: THREE.Scene;\n size: Size;\n dpr: number | false;\n customFluidProps?: CustomFluidProps;\n}) => {\n const geometry = useMemo(() => new THREE.PlaneGeometry(2, 2), []);\n\n const {\n curl,\n vorticity,\n advection,\n divergence,\n pressure,\n clear,\n gradientSubtract,\n splat,\n } = customFluidProps ?? {};\n\n const initialMaterial = useCustomMaterial(useInitialMaterial);\n const updateMaterial = initialMaterial.clone();\n const curlMaterial = useCustomMaterial(useCurlMaterial, curl);\n const vorticityMaterial = useCustomMaterial(useVorticityMaterial, vorticity);\n const advectionMaterial = useCustomMaterial(useAdvectionMaterial, advection);\n const divergenceMaterial = useCustomMaterial(\n useDivergenceMaterial,\n divergence\n );\n const pressureMaterial = useCustomMaterial(usePressureMaterial, pressure);\n const clearMaterial = useCustomMaterial(useClearMaterial, clear);\n const gradientSubtractMaterial = useCustomMaterial(\n useGradientSubtractMaterial,\n gradientSubtract\n );\n const splatMaterial = useCustomMaterial(useSplatMaterial, splat);\n const materials = useMemo(\n () => ({\n vorticityMaterial,\n curlMaterial,\n advectionMaterial,\n divergenceMaterial,\n pressureMaterial,\n clearMaterial,\n gradientSubtractMaterial,\n splatMaterial,\n }),\n [\n vorticityMaterial,\n curlMaterial,\n advectionMaterial,\n divergenceMaterial,\n pressureMaterial,\n clearMaterial,\n gradientSubtractMaterial,\n splatMaterial,\n ]\n );\n\n const resolution = useResolution(size, dpr);\n useMemo(() => {\n setUniform(materials.splatMaterial)(\n \"aspectRatio\",\n resolution.x / resolution.y\n );\n for (const material of Object.values(materials)) {\n setUniform(material)(\n \"texelSize\",\n new THREE.Vector2(1.0 / resolution.x, 1.0 / resolution.y)\n );\n }\n }, [resolution, materials]);\n\n const mesh = useAddObject(scene, geometry, initialMaterial, THREE.Mesh);\n\n useMemo(() => {\n initialMaterial.dispose();\n mesh.material = updateMaterial;\n }, [initialMaterial, mesh, updateMaterial]);\n\n useEffect(() => {\n return () => {\n for (const material of Object.values(materials)) {\n material.dispose();\n }\n };\n }, [materials]);\n\n const setMeshMaterial = useCallback(\n (material: TMaterials) => {\n mesh.material = material;\n mesh.material.needsUpdate = true;\n },\n [mesh]\n );\n\n return { materials, setMeshMaterial, mesh };\n};\n","import * as THREE from \"three\";\nimport {\n CustomizableKeys,\n FluidMaterials,\n CustomFluidProps,\n CustomFluidParams,\n useMesh,\n} from \"./useMesh\";\nimport { useCamera } from \"../../../utils/useCamera\";\nimport { useCallback, useMemo, useRef } from \"react\";\nimport { PointerValues, usePointer } from \"../../../misc/usePointer\";\nimport { RootState } from \"@react-three/fiber\";\nimport { useSingleFBO } from \"../../../utils/useSingleFBO\";\nimport {\n CustomParams,\n setCustomUniform,\n setUniform,\n} from \"../../../utils/setUniforms\";\nimport { HooksProps, HooksReturn } from \"../../types\";\nimport { useParams } from \"../../../utils/useParams\";\nimport { UseFboProps } from \"../../../utils/useSingleFBO\";\nimport { DoubleRenderTarget, useDoubleFBO } from \"../../../utils/useDoubleFBO\";\nimport { getDpr } from \"../../../utils/getDpr\";\n\nexport const DELTA_TIME = 0.016;\n\nexport type FluidParams = {\n /** density disspation , default : `0.98` */\n densityDissipation?: number;\n /** velocity dissipation , default : `0.99` */\n velocityDissipation?: number;\n /** velocity acceleration , default : `10.0` */\n velocityAcceleration?: number;\n /** pressure dissipation , default : `0.9` */\n pressureDissipation?: number;\n /** pressure iterations. affects performance , default : `20` */\n pressureIterations?: number;\n /** curl_strength , default : `35` */\n curlStrength?: number;\n /** splat radius , default : `0.002` */\n splatRadius?: number;\n /** Fluid Color.THREE.Vector3 Alternatively, it accepts a function that returns THREE.Vector3.The function takes velocity:THREE.Vector2 as an argument. , default : `THREE.Vector3(1.0, 1.0, 1.0)` */\n fluidColor?:\n | ((velocity: THREE.Vector2) => THREE.Vector3)\n | THREE.Vector3\n | THREE.Color;\n /** When calling usePointer in a frame loop, setting PointerValues to this value prevents double calls , default : `false` */\n pointerValues?: PointerValues | false;\n};\n\nexport type FluidObject = {\n scene: THREE.Scene;\n mesh: THREE.Mesh;\n materials: FluidMaterials;\n camera: THREE.Camera;\n renderTarget: {\n velocity: DoubleRenderTarget;\n density: DoubleRenderTarget;\n curl: THREE.WebGLRenderTarget;\n divergence: THREE.WebGLRenderTarget;\n pressure: DoubleRenderTarget;\n };\n output: THREE.Texture;\n};\n\nexport const FLUID_PARAMS: FluidParams = Object.freeze({\n densityDissipation: 0.98,\n velocityDissipation: 0.99,\n velocityAcceleration: 10.0,\n pressureDissipation: 0.9,\n pressureIterations: 20,\n curlStrength: 35,\n splatRadius: 0.002,\n fluidColor: new THREE.Vector3(1.0, 1.0, 1.0),\n pointerValues: false,\n});\n\n/**\n * @link https://github.com/FunTechInc/use-shader-fx?tab=readme-ov-file#usage\n */\nexport const useFluid = ({\n size,\n dpr,\n renderTargetOptions,\n isSizeUpdate,\n customFluidProps,\n}: {\n /** you can add `onBeforeInit` of the next material.`initial`,`curl`,`vorticity`,`advection`,`divergence`,`pressure`,`clear`,`gradientSubtract`,`splat` \n\t * ```ts\n\t * customFluidProps: {\n vorticity: {\n onBeforeInit: (parameters) => console.log(parameters),\n },\n },\n\t * ```\n\t*/\n customFluidProps?: CustomFluidProps;\n} & HooksProps): HooksReturn => {\n const _dpr = getDpr(dpr);\n\n const scene = useMemo(() => new THREE.Scene(), []);\n const { materials, setMeshMaterial, mesh } = useMesh({\n scene,\n size,\n dpr: _dpr.shader,\n customFluidProps,\n });\n const camera = useCamera(size);\n const updatePointer = usePointer();\n\n const fboProps = useMemo(\n () => ({\n scene,\n camera,\n dpr: _dpr.fbo,\n size,\n isSizeUpdate,\n type: THREE.HalfFloatType,\n ...renderTargetOptions,\n }),\n [scene, camera, size, _dpr.fbo, isSizeUpdate, renderTargetOptions]\n );\n const [velocityFBO, updateVelocityFBO] = useDoubleFBO(fboProps);\n const [densityFBO, updateDensityFBO] = useDoubleFBO(fboProps);\n const [curlFBO, updateCurlFBO] = useSingleFBO(fboProps);\n const [divergenceFBO, updateDivergenceFBO] = useSingleFBO(fboProps);\n const [pressureFBO, updatePressureFBO] = useDoubleFBO(fboProps);\n\n const scaledDiffVec = useRef(new THREE.Vector2(0, 0));\n const spaltVec = useRef(new THREE.Vector3(0, 0, 0));\n\n const [params, setParams] = useParams(FLUID_PARAMS);\n\n // setUniform\n const updateParamsList = useMemo(\n () => ({\n advection: setUniform(materials.advectionMaterial),\n splat: setUniform(materials.splatMaterial),\n curl: setUniform(materials.curlMaterial),\n vorticity: setUniform(materials.vorticityMaterial),\n divergence: setUniform(materials.divergenceMaterial),\n clear: setUniform(materials.clearMaterial),\n pressure: setUniform(materials.pressureMaterial),\n gradientSubtract: setUniform(materials.gradientSubtractMaterial),\n }),\n [materials]\n );\n // customSetUniform\n const updateCustomParamsList = useMemo<{\n [K in CustomizableKeys]: (customParams: CustomParams | undefined) => void;\n }>(\n () => ({\n advection: setCustomUniform(materials.advectionMaterial),\n splat: setCustomUniform(materials.splatMaterial),\n curl: setCustomUniform(materials.curlMaterial),\n vorticity: setCustomUniform(materials.vorticityMaterial),\n divergence: setCustomUniform(materials.divergenceMaterial),\n clear: setCustomUniform(materials.clearMaterial),\n pressure: setCustomUniform(materials.pressureMaterial),\n gradientSubtract: setCustomUniform(materials.gradientSubtractMaterial),\n }),\n [materials]\n );\n\n const updateParams = useCallback(\n (newParams?: FluidParams, customParams?: CustomFluidParams) => {\n setParams(newParams);\n if (customParams) {\n Object.keys(customParams).forEach((key) => {\n updateCustomParamsList[key as CustomizableKeys](\n customParams[key as CustomizableKeys]\n );\n });\n }\n },\n [setParams, updateCustomParamsList]\n );\n\n const updateFx = useCallback(\n (\n rootState: RootState,\n newParams?: FluidParams,\n customParams?: CustomFluidParams\n ) => {\n const { gl, pointer, size } = rootState;\n\n updateParams(newParams, customParams);\n\n const velocityTex = updateVelocityFBO(gl, ({ read }) => {\n setMeshMaterial(materials.advectionMaterial);\n updateParamsList.advection(\"uVelocity\", read);\n updateParamsList.advection(\"uSource\", read);\n updateParamsList.advection(\n \"dissipation\",\n params.velocityDissipation!\n );\n });\n\n const densityTex = updateDensityFBO(gl, ({ read }) => {\n setMeshMaterial(materials.advectionMaterial);\n updateParamsList.advection(\"uVelocity\", velocityTex);\n updateParamsList.advection(\"uSource\", read);\n updateParamsList.advection(\n \"dissipation\",\n params.densityDissipation!\n );\n });\n\n const pointerValues = params.pointerValues! || updatePointer(pointer);\n\n if (pointerValues.isVelocityUpdate) {\n updateVelocityFBO(gl, ({ read }) => {\n setMeshMaterial(materials.splatMaterial);\n updateParamsList.splat(\"uTarget\", read);\n updateParamsList.splat(\"point\", pointerValues.currentPointer);\n const scaledDiff = pointerValues.diffPointer.multiply(\n scaledDiffVec.current\n .set(size.width, size.height)\n .multiplyScalar(params.velocityAcceleration!)\n );\n updateParamsList.splat(\n \"color\",\n spaltVec.current.set(scaledDiff.x, scaledDiff.y, 1.0)\n );\n updateParamsList.splat(\"radius\", params.splatRadius!);\n });\n updateDensityFBO(gl, ({ read }) => {\n setMeshMaterial(materials.splatMaterial);\n updateParamsList.splat(\"uTarget\", read);\n const color: THREE.Vector3 | THREE.Color =\n typeof params.fluidColor === \"function\"\n ? params.fluidColor(pointerValues.velocity)\n : params.fluidColor!;\n updateParamsList.splat(\"color\", color);\n });\n }\n\n const curlTex = updateCurlFBO(gl, () => {\n setMeshMaterial(materials.curlMaterial);\n updateParamsList.curl(\"uVelocity\", velocityTex);\n });\n\n updateVelocityFBO(gl, ({ read }) => {\n setMeshMaterial(materials.vorticityMaterial);\n updateParamsList.vorticity(\"uVelocity\", read);\n updateParamsList.vorticity(\"uCurl\", curlTex);\n updateParamsList.vorticity(\"curl\", params.curlStrength!);\n });\n\n const divergenceTex = updateDivergenceFBO(gl, () => {\n setMeshMaterial(materials.divergenceMaterial);\n updateParamsList.divergence(\"uVelocity\", velocityTex);\n });\n\n updatePressureFBO(gl, ({ read }) => {\n setMeshMaterial(materials.clearMaterial);\n updateParamsList.clear(\"uTexture\", read);\n updateParamsList.clear(\"value\", params.pressureDissipation!);\n });\n\n setMeshMaterial(materials.pressureMaterial);\n updateParamsList.pressure(\"uDivergence\", divergenceTex);\n let pressureTexTemp: THREE.Texture;\n for (let i = 0; i < params.pressureIterations!; i++) {\n pressureTexTemp = updatePressureFBO(gl, ({ read }) => {\n updateParamsList.pressure(\"uPressure\", read);\n });\n }\n\n updateVelocityFBO(gl, ({ read }) => {\n setMeshMaterial(materials.gradientSubtractMaterial);\n updateParamsList.gradientSubtract(\"uPressure\", pressureTexTemp);\n updateParamsList.gradientSubtract(\"uVelocity\", read);\n });\n\n return densityTex;\n },\n [\n materials,\n updateParamsList,\n setMeshMaterial,\n updateCurlFBO,\n updateDensityFBO,\n updateDivergenceFBO,\n updatePointer,\n updatePressureFBO,\n updateVelocityFBO,\n params,\n updateParams,\n ]\n );\n return [\n updateFx,\n updateParams,\n {\n scene: scene,\n mesh: mesh,\n materials: materials,\n camera: camera,\n renderTarget: {\n velocity: velocityFBO,\n density: densityFBO,\n curl: curlFBO,\n divergence: divergenceFBO,\n pressure: pressureFBO,\n },\n output: densityFBO.read.texture,\n },\n ];\n};\n","#usf ","precision highp float;\n\nuniform sampler2D uMap;\nuniform float uOpacity;\n\nvarying vec2 vUv;\n\nvoid main() {\n\tvec2 uv = vUv;\n\tvec3 color = texture2D(uMap, uv).rgb;\n\tgl_FragColor = vec4(color,uOpacity);\n}","import * as THREE from \"three\";\nimport { useEffect, useMemo } from \"react\";\nimport vertexShader from \"./shader/main.vert\";\nimport fragmentShader from \"./shader/main.frag\";\nimport { MaterialProps } from \"../../types\";\nimport {\n DEFAULT_TEXTURE,\n MATERIAL_BASIC_PARAMS,\n} from \"../../../libs/constants\";\nimport { createMaterialParameters } from \"../../../utils/createMaterialParameters\";\n\ntype UseMeshProps = {\n scale: number;\n max: number;\n scene: THREE.Scene;\n texture?: THREE.Texture;\n};\n\nexport const useMesh = ({\n scale,\n max,\n texture,\n scene,\n onBeforeInit,\n}: UseMeshProps & MaterialProps) => {\n const geometry = useMemo(\n () => new THREE.PlaneGeometry(scale, scale),\n [scale]\n );\n\n const material = useMemo(() => {\n const mat = new THREE.ShaderMaterial({\n ...createMaterialParameters(\n {\n uniforms: {\n uOpacity: { value: 0.0 },\n uMap: { value: texture || DEFAULT_TEXTURE },\n },\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n },\n onBeforeInit\n ),\n blending: THREE.AdditiveBlending,\n ...MATERIAL_BASIC_PARAMS,\n // Must be transparent.\n transparent: true,\n });\n return mat;\n }, [texture, onBeforeInit]);\n\n const meshArr = useMemo(() => {\n const temp = [];\n for (let i = 0; i < max; i++) {\n const clonedMat = material.clone();\n const mesh = new THREE.Mesh(geometry.clone(), clonedMat);\n mesh.rotateZ(2 * Math.PI * Math.random());\n mesh.visible = false;\n scene.add(mesh);\n temp.push(mesh);\n }\n return temp;\n }, [geometry, material, scene, max]);\n\n useEffect(() => {\n return () => {\n meshArr.forEach((mesh) => {\n mesh.geometry.dispose();\n if (Array.isArray(mesh.material)) {\n mesh.material.forEach((material) => material.dispose());\n } else {\n mesh.material.dispose();\n }\n scene.remove(mesh);\n });\n };\n }, [scene, meshArr]);\n\n return meshArr;\n};\n","import { useCallback, useMemo, useRef } from \"react\";\nimport * as THREE from \"three\";\nimport { useMesh } from \"./useMesh\";\nimport { useCamera } from \"../../../utils/useCamera\";\nimport { RootState } from \"@react-three/fiber\";\nimport { useSingleFBO } from \"../../../utils/useSingleFBO\";\nimport { usePointer, PointerValues } from \"../../../misc/usePointer\";\nimport { HooksProps, HooksReturn } from \"../../types\";\nimport { useParams } from \"../../../utils/useParams\";\nimport { getDpr } from \"../../../utils/getDpr\";\nimport {\n CustomParams,\n setCustomUniform,\n setUniform,\n} from \"../../../utils/setUniforms\";\n\nexport type RippleParams = {\n /** How often ripples appear, default : `0.01` */\n frequency?: number;\n /** rotation rate, default : `0.05` */\n rotation?: number;\n /** fadeout speed, default : `0.9` */\n fadeoutSpeed?: number;\n /** scale rate, default : `0.3` */\n scale?: number;\n /** alpha, default : `0.6` */\n alpha?: number;\n /** When calling usePointer in a frame loop, setting PointerValues to this value prevents double calls , default : `false` */\n pointerValues?: PointerValues | false;\n};\n\nexport type RippleObject = {\n scene: THREE.Scene;\n meshArr: THREE.Mesh[];\n camera: THREE.Camera;\n renderTarget: THREE.WebGLRenderTarget;\n output: THREE.Texture;\n};\n\nexport const RIPPLE_PARAMS: RippleParams = Object.freeze({\n frequency: 0.01,\n rotation: 0.05,\n fadeoutSpeed: 0.9,\n scale: 0.3,\n alpha: 0.6,\n pointerValues: false,\n});\n\ninterface UseRippleProps extends HooksProps {\n /** texture applied to ripple */\n texture?: THREE.Texture;\n /** ripple size, default:64 */\n scale?: number;\n /** ripple max length, default:100 */\n max?: number;\n}\n\n/**\n * @link https://github.com/FunTechInc/use-shader-fx?tab=readme-ov-file#usage\n */\nexport const useRipple = ({\n texture,\n scale = 64,\n max = 100,\n size,\n dpr,\n renderTargetOptions,\n isSizeUpdate,\n onBeforeInit,\n}: UseRippleProps): HooksReturn => {\n const _dpr = getDpr(dpr);\n const scene = useMemo(() => new THREE.Scene(), []);\n const meshArr = useMesh({\n scale: scale,\n max: max,\n texture,\n scene,\n onBeforeInit,\n });\n const camera = useCamera(size);\n const updatePointer = usePointer();\n const [renderTarget, updateRenderTarget] = useSingleFBO({\n scene,\n camera,\n size,\n dpr: _dpr.fbo,\n isSizeUpdate,\n ...renderTargetOptions,\n });\n\n const [params, setParams] = useParams(RIPPLE_PARAMS);\n\n const currentWave = useRef(0);\n\n const updateParams = useMemo(() => {\n return (newParams?: RippleParams, customParams?: CustomParams) => {\n setParams(newParams);\n meshArr.forEach((mesh) => {\n if (mesh.visible) {\n const material = mesh.material as THREE.ShaderMaterial;\n mesh.rotation.z += params.rotation!;\n mesh.scale.x =\n params.fadeoutSpeed! * mesh.scale.x + params.scale!;\n mesh.scale.y = mesh.scale.x;\n const opacity = material.uniforms.uOpacity.value;\n setUniform(material)(\"uOpacity\", opacity * params.fadeoutSpeed!);\n if (opacity < 0.001) mesh.visible = false;\n }\n setCustomUniform(mesh.material)(customParams);\n });\n };\n }, [meshArr, params, setParams]);\n\n const updateFx = useCallback(\n (\n rootState: RootState,\n newParams?: RippleParams,\n customParams?: CustomParams\n ) => {\n const { gl, pointer, size } = rootState;\n\n updateParams(newParams, customParams);\n\n const pointerValues = params.pointerValues! || updatePointer(pointer);\n\n if (params.frequency! < pointerValues.diffPointer.length()) {\n const mesh = meshArr[currentWave.current];\n const material = mesh.material as THREE.ShaderMaterial;\n mesh.visible = true;\n mesh.position.set(\n pointerValues.currentPointer.x * (size.width / 2),\n pointerValues.currentPointer.y * (size.height / 2),\n 0\n );\n mesh.scale.x = mesh.scale.y = 0.0;\n setUniform(material)(\"uOpacity\", params.alpha!);\n currentWave.current = (currentWave.current + 1) % max;\n }\n\n return updateRenderTarget(gl);\n },\n [updateRenderTarget, meshArr, updatePointer, max, params, updateParams]\n );\n return [\n updateFx,\n updateParams,\n {\n scene: scene,\n camera: camera,\n meshArr: meshArr,\n renderTarget: renderTarget,\n output: renderTarget.texture,\n },\n ];\n};\n","#usf ","precision highp float;\nprecision highp int;\n\nvarying vec2 vUv;\nuniform float uTime;\nuniform float timeStrength;\nuniform int noiseOctaves;\nuniform int fbmOctaves;\nuniform int warpOctaves;\nuniform vec2 warpDirection;\nuniform float warpStrength;\nuniform float scale;\n\nconst float per = 0.5;\nconst float PI = 3.14159265359;\n\nfloat rnd(vec2 n) {\n\tfloat a = 0.129898;\n\tfloat b = 0.78233;\n\tfloat c = 437.585453;\n\tfloat dt= dot(n ,vec2(a, b));\n\tfloat sn= mod(dt, PI);\n\treturn fract(sin(sn) * c);\n}\n\nfloat interpolate(float a, float b, float x){\n float f = (1.0 - cos(x * PI)) * 0.5;\n return a * (1.0 - f) + b * f;\n}\n\nfloat irnd(vec2 p){\n\tvec2 i = floor(p);\n\tvec2 f = fract(p);\n\tvec4 v = vec4(rnd(vec2(i.x,i.y)),rnd(vec2(i.x + 1.0,i.y)),rnd(vec2(i.x,i.y + 1.0)),rnd(vec2(i.x + 1.0, i.y + 1.0)));\n\treturn interpolate(interpolate(v.x, v.y, f.x), interpolate(v.z, v.w, f.x), f.y);\n}\n\n// Based on The Book of Shaders\n// https://thebookofshaders.com/13/\nfloat noise(vec2 p, float time){\n\tfloat t = 0.0;\n\tfor(int i = 0; i < noiseOctaves; i++){\n\t\tfloat freq = pow(2.0, float(i));\n\t\tfloat amp = pow(per, float(noiseOctaves - i));\n\t\tt += irnd(vec2(p.y / freq + time, p.x / freq + time)) * amp;\n\t}\n\treturn t;\n}\n\nfloat fbm(vec2 x, float time) {\n\tfloat v = 0.0;\n\tfloat a = 0.5;\n\tvec2 shift = vec2(100);\n\tmat2 rot = mat2(cos(0.5), sin(0.5), -sin(0.5), cos(0.5));\n\tfloat sign = 1.0;\n\tfor (int i = 0; i < fbmOctaves; ++i) {\n\t\tv += a * noise(x, time * sign);\n\t\tx = rot * x * 2.0 + shift;\n\t\ta *= 0.5;\n\t\tsign *= -1.0;\n\t}\n\treturn v;\n}\n\nfloat warp(vec2 x, float g,float time){\n\tfloat val = 0.0;\n\tfor (int i = 0; i < warpOctaves; i++){\n\t\tval = fbm(x + g * vec2(cos(warpDirection.x * val), sin(warpDirection.y * val)), time);\n\t}\n\treturn val;\n}\n\nvoid main() {\n\tfloat noise = warp(gl_FragCoord.xy * scale ,warpStrength,uTime * timeStrength);\n\tgl_FragColor = vec4(vec3(noise),1.0);\n}","import { useMemo } from \"react\";\nimport * as THREE from \"three\";\nimport vertexShader from \"./shader/main.vert\";\nimport fragmentShader from \"./shader/main.frag\";\nimport { useAddObject } from \"../../../utils/useAddObject\";\nimport { MaterialProps } from \"../../types\";\nimport { MATERIAL_BASIC_PARAMS } from \"../../../libs/constants\";\nimport { NOISE_PARAMS } from \".\";\nimport { createMaterialParameters } from \"../../../utils/createMaterialParameters\";\n\nexport class NoiseMaterial extends THREE.ShaderMaterial {\n uniforms!: {\n uTime: { value: number };\n scale: { value: number };\n timeStrength: { value: number };\n noiseOctaves: { value: number };\n fbmOctaves: { value: number };\n warpOctaves: { value: number };\n warpDirection: { value: THREE.Vector2 };\n warpStrength: { value: number };\n };\n}\n\nexport const useMesh = ({\n scene,\n onBeforeInit,\n}: { scene: THREE.Scene } & MaterialProps) => {\n const geometry = useMemo(() => new THREE.PlaneGeometry(2, 2), []);\n const material = useMemo(() => {\n const mat = new THREE.ShaderMaterial({\n ...createMaterialParameters(\n {\n uniforms: {\n uTime: { value: 0.0 },\n scale: { value: NOISE_PARAMS.scale },\n timeStrength: { value: NOISE_PARAMS.timeStrength },\n noiseOctaves: { value: NOISE_PARAMS.noiseOctaves },\n fbmOctaves: { value: NOISE_PARAMS.fbmOctaves },\n warpOctaves: { value: NOISE_PARAMS.warpOctaves },\n warpDirection: { value: NOISE_PARAMS.warpDirection },\n warpStrength: { value: NOISE_PARAMS.warpStrength },\n },\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n },\n onBeforeInit\n ),\n ...MATERIAL_BASIC_PARAMS,\n });\n return mat;\n }, [onBeforeInit]) as NoiseMaterial;\n const mesh = useAddObject(scene, geometry, material, THREE.Mesh);\n return { material, mesh };\n};\n","import { useCallback, useMemo } from \"react\";\nimport * as THREE from \"three\";\nimport { useMesh } from \"./useMesh\";\nimport { RootState } from \"@react-three/fiber\";\nimport { useCamera } from \"../../../utils/useCamera\";\nimport { useSingleFBO } from \"../../../utils/useSingleFBO\";\nimport {\n CustomParams,\n setCustomUniform,\n setUniform,\n} from \"../../../utils/setUniforms\";\nimport { useParams } from \"../../../utils/useParams\";\nimport { HooksProps, HooksReturn } from \"../../types\";\nimport { getDpr } from \"../../../utils/getDpr\";\n\nexport type NoiseParams = {\n /** noise scale , default : `0.004` */\n scale?: number;\n /** time factor default : `0.3` */\n timeStrength?: number;\n /** noiseOctaves, affects performance default : `2` */\n noiseOctaves?: number;\n /** fbmOctaves, affects performance default : `2` */\n fbmOctaves?: number;\n /** domain warping octaves , affects performance default : `2` */\n warpOctaves?: number;\n /** direction of domain warping , default : `(2.0,2,0)` */\n warpDirection?: THREE.Vector2;\n /** strength of domain warping , default : `8.0` */\n warpStrength?: number;\n /** you can get into the rhythm ♪ , default : `false` */\n beat?: number | false;\n};\n\nexport type NoiseObject = {\n scene: THREE.Scene;\n mesh: THREE.Mesh;\n material: THREE.Material;\n camera: THREE.Camera;\n renderTarget: THREE.WebGLRenderTarget;\n output: THREE.Texture;\n};\n\nexport const NOISE_PARAMS: NoiseParams = Object.freeze({\n scale: 0.004,\n timeStrength: 0.3,\n noiseOctaves: 2,\n fbmOctaves: 2,\n warpOctaves: 2,\n warpDirection: new THREE.Vector2(2.0, 2.0),\n warpStrength: 8.0,\n beat: false,\n});\n\n/**\n * @link https://github.com/FunTechInc/use-shader-fx?tab=readme-ov-file#usage\n *\n * It is a basic value noise with `fbm` and `domain warping`\n */\nexport const useNoise = ({\n size,\n dpr,\n renderTargetOptions,\n isSizeUpdate,\n onBeforeInit,\n}: HooksProps): HooksReturn => {\n const _dpr = getDpr(dpr);\n\n const scene = useMemo(() => new THREE.Scene(), []);\n const { material, mesh } = useMesh({ scene, onBeforeInit });\n const camera = useCamera(size);\n const [renderTarget, updateRenderTarget] = useSingleFBO({\n scene,\n camera,\n size,\n dpr: _dpr.fbo,\n isSizeUpdate,\n ...renderTargetOptions,\n });\n\n const [params, setParams] = useParams(NOISE_PARAMS);\n\n const updateValue = setUniform(material);\n const updateCustomValue = setCustomUniform(material);\n\n const updateParams = useCallback(\n (newParams?: NoiseParams, customParams?: CustomParams) => {\n setParams(newParams);\n updateCustomValue(customParams);\n },\n [setParams, updateCustomValue]\n );\n\n const updateFx = useCallback(\n (\n rootState: RootState,\n newParams?: NoiseParams,\n customParams?: CustomParams\n ) => {\n const { gl, clock } = rootState;\n\n updateParams(newParams, customParams);\n\n updateValue(\"scale\", params.scale!);\n updateValue(\"timeStrength\", params.timeStrength!);\n updateValue(\"noiseOctaves\", params.noiseOctaves!);\n updateValue(\"fbmOctaves\", params.fbmOctaves!);\n updateValue(\"warpOctaves\", params.warpOctaves!);\n updateValue(\"warpDirection\", params.warpDirection!);\n updateValue(\"warpStrength\", params.warpStrength!);\n updateValue(\"uTime\", params.beat || clock.getElapsedTime());\n\n return updateRenderTarget(gl);\n },\n [updateRenderTarget, updateValue, params, updateParams]\n );\n\n return [\n updateFx,\n updateParams,\n {\n scene: scene,\n mesh: mesh,\n material: material,\n camera: camera,\n renderTarget: renderTarget,\n output: renderTarget.texture,\n },\n ];\n};\n","#usf ","precision highp float;\nvarying vec2 vUv;\n\nuniform sampler2D uTexture;\nuniform bool isTexture;\nuniform sampler2D noise;\nuniform bool isNoise;\nuniform vec2 noiseStrength;\nuniform float laminateLayer;\nuniform vec2 laminateInterval;\nuniform vec2 laminateDetail;\nuniform vec2 distortion;\nuniform vec3 colorFactor;\nuniform float uTime;\nuniform vec2 timeStrength;\nuniform float scale;\n\nvoid main() {\n\tvec2 uv = vUv;\n\n\tvec2 pos = isTexture ? texture2D(uTexture, uv).rg : uv * scale;\n\tvec2 noise = isNoise ? texture2D(noise, uv).rg : vec2(0.0);\n\tfloat alpha = isTexture ? texture2D(uTexture, uv).a : 1.0;\n\t\n\t// Avoid floating point bugs caused by GPU drivers.\n\talpha = (alpha < 1e-10) ? 0.0 : alpha;\n\n\tvec3 col;\n\tfor(float j = 0.0; j < 3.0; j++){\n\t\tfor(float i = 1.0; i < laminateLayer; i++){\n\t\t\tfloat timeNoiseSin = sin(uTime / (i + j)) * timeStrength.x + noise.r * noiseStrength.x;\n\t\t\tfloat timeNoiseCos = cos(uTime / (i + j)) * timeStrength.y + noise.g * noiseStrength.y;\n\t\t\tpos.x += laminateInterval.x / (i + j) * cos(i * distortion.x * pos.y + timeNoiseSin + sin(i + j));\n\t\t\tpos.y += laminateInterval.y / (i + j) * cos(i * distortion.y * pos.x + timeNoiseCos + sin(i + j));\n\t\t}\n\t\tcol[int(j)] = sin(pow(pos.x, 2.) * pow(laminateDetail.x, 2.)) + sin(pow(pos.y, 2.) * pow(laminateDetail.y, 2.));\n\t}\n\n\tcol *= colorFactor * alpha;\n\tcol = clamp(col, 0.0, 1.0);\n\t\n\tgl_FragColor = vec4(col, alpha);\n}","import { useMemo } from \"react\";\nimport * as THREE from \"three\";\nimport vertexShader from \"./shader/main.vert\";\nimport fragmentShader from \"./shader/main.frag\";\nimport { useAddObject } from \"../../../utils/useAddObject\";\nimport { MaterialProps } from \"../../types\";\nimport {\n MATERIAL_BASIC_PARAMS,\n DEFAULT_TEXTURE,\n} from \"../../../libs/constants\";\nimport { COLORSTRATA_PARAMS } from \".\";\nimport { createMaterialParameters } from \"../../../utils/createMaterialParameters\";\n\nexport class ColorStrataMaterial extends THREE.ShaderMaterial {\n uniforms!: {\n uTexture: { value: THREE.Texture };\n isTexture: { value: boolean };\n scale: { value: number };\n noise: { value: THREE.Texture };\n noiseStrength: { value: THREE.Vector2 };\n isNoise: { value: boolean };\n laminateLayer: { value: number };\n laminateInterval: { value: THREE.Vector2 };\n laminateDetail: { value: THREE.Vector2 };\n distortion: { value: THREE.Vector2 };\n colorFactor: { value: THREE.Vector3 };\n uTime: { value: number };\n timeStrength: { value: THREE.Vector2 };\n };\n}\n\nexport const useMesh = ({\n scene,\n onBeforeInit,\n}: { scene: THREE.Scene } & MaterialProps) => {\n const geometry = useMemo(() => new THREE.PlaneGeometry(2, 2), []);\n const material = useMemo(() => {\n const mat = new THREE.ShaderMaterial({\n ...createMaterialParameters(\n {\n uniforms: {\n uTexture: { value: DEFAULT_TEXTURE },\n isTexture: { value: false },\n scale: { value: COLORSTRATA_PARAMS.scale },\n noise: { value: DEFAULT_TEXTURE },\n noiseStrength: { value: COLORSTRATA_PARAMS.noiseStrength },\n isNoise: { value: false },\n laminateLayer: { value: COLORSTRATA_PARAMS.laminateLayer },\n laminateInterval: {\n value: COLORSTRATA_PARAMS.laminateInterval,\n },\n laminateDetail: { value: COLORSTRATA_PARAMS.laminateDetail },\n distortion: { value: COLORSTRATA_PARAMS.distortion },\n colorFactor: { value: COLORSTRATA_PARAMS.colorFactor },\n uTime: { value: 0 },\n timeStrength: { value: COLORSTRATA_PARAMS.timeStrength },\n },\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n },\n onBeforeInit\n ),\n ...MATERIAL_BASIC_PARAMS,\n });\n\n return mat;\n }, [onBeforeInit]) as ColorStrataMaterial;\n\n const mesh = useAddObject(scene, geometry, material, THREE.Mesh);\n\n return { material, mesh };\n};\n","import { useCallback, useMemo } from \"react\";\nimport * as THREE from \"three\";\nimport { useMesh } from \"./useMesh\";\nimport { useCamera } from \"../../../utils/useCamera\";\nimport { RootState } from \"@react-three/fiber\";\nimport { useSingleFBO } from \"../../../utils/useSingleFBO\";\nimport {\n CustomParams,\n setCustomUniform,\n setUniform,\n} from \"../../../utils/setUniforms\";\nimport { HooksProps, HooksReturn } from \"../../types\";\nimport { useParams } from \"../../../utils/useParams\";\nimport { getDpr } from \"../../../utils/getDpr\";\n\nexport type ColorStrataParams = {\n /** default : `null` */\n texture?: THREE.Texture | false;\n /** Valid when texture is false. default : `1` */\n scale?: number;\n /** default : `1.0` */\n laminateLayer?: number;\n /** default : `(0.1, 0.1)` */\n laminateInterval?: THREE.Vector2;\n /** default : `(1.0, 1.0)` */\n laminateDetail?: THREE.Vector2;\n /** default : `(0.0, 0.0)` */\n distortion?: THREE.Vector2;\n /** default : `(1.0, 1.0, 1.0)` */\n colorFactor?: THREE.Vector3;\n /** default : `(0.0, 0.0)` */\n timeStrength?: THREE.Vector2;\n /** default : `false` */\n noise?: THREE.Texture | false;\n /** default : `(0.0,0.0)` */\n noiseStrength?: THREE.Vector2;\n /** you can get into the rhythm ♪ , default : `false` */\n beat?: number | false;\n};\n\nexport type ColorStrataObject = {\n scene: THREE.Scene;\n mesh: THREE.Mesh;\n material: THREE.Material;\n camera: THREE.Camera;\n renderTarget: THREE.WebGLRenderTarget;\n output: THREE.Texture;\n};\n\nexport const COLORSTRATA_PARAMS: ColorStrataParams = Object.freeze({\n texture: false,\n scale: 1.0,\n laminateLayer: 1.0,\n laminateInterval: new THREE.Vector2(0.1, 0.1),\n laminateDetail: new THREE.Vector2(1, 1),\n distortion: new THREE.Vector2(0, 0),\n colorFactor: new THREE.Vector3(1, 1, 1),\n timeStrength: new THREE.Vector2(0, 0),\n noise: false,\n noiseStrength: new THREE.Vector2(0, 0),\n beat: false,\n});\n\n/**\n * @link https://github.com/FunTechInc/use-shader-fx?tab=readme-ov-file#usage\n */\nexport const useColorStrata = ({\n size,\n dpr,\n renderTargetOptions,\n isSizeUpdate,\n onBeforeInit,\n}: HooksProps): HooksReturn<\n ColorStrataParams,\n ColorStrataObject,\n CustomParams\n> => {\n const _dpr = getDpr(dpr);\n\n const scene = useMemo(() => new THREE.Scene(), []);\n const { material, mesh } = useMesh({ scene, onBeforeInit });\n const camera = useCamera(size);\n const [renderTarget, updateRenderTarget] = useSingleFBO({\n scene,\n camera,\n size,\n dpr: _dpr.fbo,\n isSizeUpdate,\n ...renderTargetOptions,\n });\n\n const [params, setParams] = useParams(COLORSTRATA_PARAMS);\n\n const updateValue = setUniform(material);\n const updateCustomValue = setCustomUniform(material);\n\n const updateParams = useCallback(\n (newParams?: ColorStrataParams, customParams?: CustomParams) => {\n setParams(newParams);\n updateCustomValue(customParams);\n },\n [setParams, updateCustomValue]\n );\n\n const updateFx = useCallback(\n (\n rootState: RootState,\n newParams?: ColorStrataParams,\n customParams?: CustomParams\n ) => {\n const { gl, clock } = rootState;\n\n updateParams(newParams, customParams);\n\n if (params.texture) {\n updateValue(\"uTexture\", params.texture);\n updateValue(\"isTexture\", true);\n } else {\n updateValue(\"isTexture\", false);\n updateValue(\"scale\", params.scale!);\n }\n\n if (params.noise) {\n updateValue(\"noise\", params.noise);\n updateValue(\"isNoise\", true);\n updateValue(\"noiseStrength\", params.noiseStrength!);\n } else {\n updateValue(\"isNoise\", false);\n }\n\n updateValue(\"uTime\", params.beat || clock.getElapsedTime());\n\n updateValue(\"laminateLayer\", params.laminateLayer!);\n updateValue(\"laminateInterval\", params.laminateInterval!);\n updateValue(\"laminateDetail\", params.laminateDetail!);\n updateValue(\"distortion\", params.distortion!);\n updateValue(\"colorFactor\", params.colorFactor!);\n updateValue(\"timeStrength\", params.timeStrength!);\n\n return updateRenderTarget(gl);\n },\n [updateRenderTarget, updateValue, params, updateParams]\n );\n\n return [\n updateFx,\n updateParams,\n {\n scene: scene,\n mesh: mesh,\n material: material,\n camera: camera,\n renderTarget: renderTarget,\n output: renderTarget.texture,\n },\n ];\n};\n","#usf ","precision highp float;\n\nvarying vec2 vUv;\nuniform float u_time;\nuniform float u_pattern;\nuniform float u_complexity;\nuniform float u_complexityAttenuation;\nuniform float u_iterations;\nuniform float u_timeStrength;\nuniform float u_scale;\n\nvec3 marble(vec3 p){\n\tvec4 n;\n\tfor(float i;i {\n const geometry = useMemo(() => new THREE.PlaneGeometry(2, 2), []);\n const material = useMemo(() => {\n const mat = new THREE.ShaderMaterial({\n ...createMaterialParameters(\n {\n uniforms: {\n u_time: { value: 0 },\n u_pattern: { value: MARBLE_PARAMS.pattern },\n u_complexity: { value: MARBLE_PARAMS.complexity },\n u_complexityAttenuation: {\n value: MARBLE_PARAMS.complexityAttenuation,\n },\n u_iterations: { value: MARBLE_PARAMS.iterations },\n u_timeStrength: { value: MARBLE_PARAMS.timeStrength },\n u_scale: { value: MARBLE_PARAMS.scale },\n },\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n },\n onBeforeInit\n ),\n ...MATERIAL_BASIC_PARAMS,\n });\n\n return mat;\n }, [onBeforeInit]) as MarbleMaterial;\n const mesh = useAddObject(scene, geometry, material, THREE.Mesh);\n return { material, mesh };\n};\n","import { useCallback, useMemo } from \"react\";\nimport * as THREE from \"three\";\nimport { useMesh } from \"./useMesh\";\nimport { useCamera } from \"../../../utils/useCamera\";\nimport { RootState } from \"@react-three/fiber\";\nimport { useSingleFBO } from \"../../../utils/useSingleFBO\";\nimport {\n CustomParams,\n setCustomUniform,\n setUniform,\n} from \"../../../utils/setUniforms\";\nimport { HooksProps, HooksReturn } from \"../../types\";\nimport { useParams } from \"../../../utils/useParams\";\nimport { getDpr } from \"../../../utils/getDpr\";\n\nexport type MarbleParams = {\n /** You can add random patterns to noise by passing random numbers ,default : `0` */\n pattern?: number;\n /** default : `2` */\n complexity?: number;\n /** default : `0.2` */\n complexityAttenuation?: number;\n /** default : `8` */\n iterations?: number;\n /** default : `0.2` */\n timeStrength?: number;\n /** default : `0.002` */\n scale?: number;\n /** you can get into the rhythm ♪ , default : `false` */\n beat?: number | false;\n};\n\nexport type MarbleObject = {\n scene: THREE.Scene;\n mesh: THREE.Mesh;\n material: THREE.Material;\n camera: THREE.Camera;\n renderTarget: THREE.WebGLRenderTarget;\n output: THREE.Texture;\n};\n\nexport const MARBLE_PARAMS: MarbleParams = Object.freeze({\n pattern: 0,\n complexity: 2,\n complexityAttenuation: 0.2,\n iterations: 8,\n timeStrength: 0.2,\n scale: 0.002,\n beat: false,\n});\n\n/**\n * @link https://github.com/FunTechInc/use-shader-fx?tab=readme-ov-file#usage\n */\nexport const useMarble = ({\n size,\n dpr,\n renderTargetOptions,\n isSizeUpdate,\n onBeforeInit,\n}: HooksProps): HooksReturn => {\n const _dpr = getDpr(dpr);\n const scene = useMemo(() => new THREE.Scene(), []);\n const { material, mesh } = useMesh({ scene, onBeforeInit });\n const camera = useCamera(size);\n const [renderTarget, updateRenderTarget] = useSingleFBO({\n scene,\n camera,\n size,\n dpr: _dpr.fbo,\n isSizeUpdate,\n ...renderTargetOptions,\n });\n\n const [params, setParams] = useParams(MARBLE_PARAMS);\n\n const updateValue = setUniform(material);\n const updateCustomValue = setCustomUniform(material);\n\n const updateParams = useCallback(\n (newParams?: MarbleParams, customParams?: CustomParams) => {\n setParams(newParams);\n updateCustomValue(customParams);\n },\n [setParams, updateCustomValue]\n );\n\n const updateFx = useCallback(\n (\n rootState: RootState,\n newParams?: MarbleParams,\n customParams?: CustomParams\n ) => {\n const { gl, clock } = rootState;\n\n updateParams(newParams, customParams);\n\n updateValue(\"u_pattern\", params.pattern!);\n updateValue(\"u_complexity\", params.complexity!);\n updateValue(\"u_complexityAttenuation\", params.complexityAttenuation!);\n updateValue(\"u_iterations\", params.iterations!);\n updateValue(\"u_timeStrength\", params.timeStrength!);\n updateValue(\"u_scale\", params.scale!);\n updateValue(\"u_time\", params.beat || clock.getElapsedTime());\n\n return updateRenderTarget(gl);\n },\n [updateRenderTarget, updateValue, params, updateParams]\n );\n\n return [\n updateFx,\n updateParams,\n {\n scene: scene,\n mesh: mesh,\n material: material,\n camera: camera,\n renderTarget: renderTarget,\n output: renderTarget.texture,\n },\n ];\n};\n","#usf ","precision highp float;\nprecision highp int;\n\nvarying vec2 vUv;\nuniform sampler2D uTexture;\nuniform vec3 uColor1;\nuniform vec3 uColor2;\nuniform vec3 uColor3;\nuniform vec3 uColor4;\nuniform vec3 uRgbWeight;\n\n\n// Based on glsl-cos-palette by Erkaman\n// https://github.com/Erkaman/glsl-cos-palette\nvec3 cosPalette( float t, vec3 color1, vec3 color2, vec3 color3, vec3 color4 ){\n return color1 + color2 * cos( 6.28318 * ( color3 * t + color4) );\n}\n\nvoid main() {\n\n\tvec4 tex = texture2D(uTexture, vUv);\n\tfloat gray = dot(tex.rgb, uRgbWeight);\t\t\n\n\tvec3 outColor = cosPalette(\n\t\tgray,\n\t\tuColor1,\n\t\tuColor2,\n\t\tuColor3,\n\t\tuColor4\n\t);\n\n\tgl_FragColor = vec4(outColor, tex.a);\n}","import { useMemo } from \"react\";\nimport * as THREE from \"three\";\nimport vertexShader from \"./shader/main.vert\";\nimport fragmentShader from \"./shader/main.frag\";\nimport { useAddObject } from \"../../../utils/useAddObject\";\nimport { MaterialProps } from \"../../types\";\nimport {\n MATERIAL_BASIC_PARAMS,\n DEFAULT_TEXTURE,\n} from \"../../../libs/constants\";\nimport { COSPALETTE_PARAMS } from \".\";\nimport { createMaterialParameters } from \"../../../utils/createMaterialParameters\";\n\nexport class CosPaletteMaterial extends THREE.ShaderMaterial {\n uniforms!: {\n uTexture: { value: THREE.Texture };\n uRgbWeight: { value: THREE.Vector3 };\n uColor1: { value: THREE.Color };\n uColor2: { value: THREE.Color };\n uColor3: { value: THREE.Color };\n uColor4: { value: THREE.Color };\n };\n}\n\nexport const useMesh = ({\n scene,\n onBeforeInit,\n}: { scene: THREE.Scene } & MaterialProps) => {\n const geometry = useMemo(() => new THREE.PlaneGeometry(2, 2), []);\n const material = useMemo(() => {\n const mat = new THREE.ShaderMaterial({\n ...createMaterialParameters(\n {\n uniforms: {\n uTexture: { value: DEFAULT_TEXTURE },\n uRgbWeight: { value: COSPALETTE_PARAMS.rgbWeight },\n uColor1: { value: COSPALETTE_PARAMS.color1 },\n uColor2: { value: COSPALETTE_PARAMS.color2 },\n uColor3: { value: COSPALETTE_PARAMS.color3 },\n uColor4: { value: COSPALETTE_PARAMS.color4 },\n },\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n },\n onBeforeInit\n ),\n ...MATERIAL_BASIC_PARAMS,\n });\n\n return mat;\n }, [onBeforeInit]) as CosPaletteMaterial;\n const mesh = useAddObject(scene, geometry, material, THREE.Mesh);\n return { material, mesh };\n};\n","import { useCallback, useMemo } from \"react\";\nimport * as THREE from \"three\";\nimport { useMesh } from \"./useMesh\";\nimport { RootState } from \"@react-three/fiber\";\nimport { useCamera } from \"../../../utils/useCamera\";\nimport { useSingleFBO } from \"../../../utils/useSingleFBO\";\nimport {\n CustomParams,\n setCustomUniform,\n setUniform,\n} from \"../../../utils/setUniforms\";\nimport { useParams } from \"../../../utils/useParams\";\nimport { HooksProps, HooksReturn } from \"../../types\";\nimport { getDpr } from \"../../../utils/getDpr\";\nimport { DEFAULT_TEXTURE } from \"../../../libs/constants\";\n\nexport type CosPaletteParams = {\n /** color1, default : `rgb(50%, 50%, 50%)` */\n color1?: THREE.Color;\n /** color2, default : `rgb(50%, 50%, 50%)` */\n color2?: THREE.Color;\n /** color3, default : `rgb(100%, 100%, 100%)` */\n color3?: THREE.Color;\n /** color4, default : `rgb(0%, 10%, 20%)` */\n color4?: THREE.Color;\n /** texture to be used as a palette */\n texture?: THREE.Texture;\n /** weight of the rgb, default : `THREE.Vector3(1.0,0.0,0.0)` */\n rgbWeight?: THREE.Vector3;\n};\n\nexport type ColorPaletteObject = {\n scene: THREE.Scene;\n mesh: THREE.Mesh;\n material: THREE.Material;\n camera: THREE.Camera;\n renderTarget: THREE.WebGLRenderTarget;\n output: THREE.Texture;\n};\n\nexport const COSPALETTE_PARAMS: CosPaletteParams = Object.freeze({\n texture: DEFAULT_TEXTURE,\n color1: new THREE.Color().set(0.5, 0.5, 0.5),\n color2: new THREE.Color().set(0.5, 0.5, 0.5),\n color3: new THREE.Color().set(1, 1, 1),\n color4: new THREE.Color().set(0, 0.1, 0.2),\n rgbWeight: new THREE.Vector3(0.299, 0.587, 0.114),\n});\n\n/**\n * @link https://github.com/FunTechInc/use-shader-fx?tab=readme-ov-file#usage\n */\nexport const useCosPalette = ({\n size,\n dpr,\n renderTargetOptions,\n isSizeUpdate,\n onBeforeInit,\n}: HooksProps): HooksReturn<\n CosPaletteParams,\n ColorPaletteObject,\n CustomParams\n> => {\n const _dpr = getDpr(dpr);\n\n const scene = useMemo(() => new THREE.Scene(), []);\n const { material, mesh } = useMesh({ scene, onBeforeInit });\n const camera = useCamera(size);\n const [renderTarget, updateRenderTarget] = useSingleFBO({\n scene,\n camera,\n size,\n dpr: _dpr.fbo,\n isSizeUpdate,\n ...renderTargetOptions,\n });\n\n const [params, setParams] = useParams(COSPALETTE_PARAMS);\n\n const updateValue = setUniform(material);\n const updateCustomValue = setCustomUniform(material);\n\n const updateParams = useCallback(\n (newParams?: CosPaletteParams, customParams?: CustomParams) => {\n setParams(newParams);\n updateCustomValue(customParams);\n },\n [setParams, updateCustomValue]\n );\n\n const updateFx = useCallback(\n (\n rootState: RootState,\n newParams?: CosPaletteParams,\n customParams?: CustomParams\n ) => {\n const { gl } = rootState;\n\n updateParams(newParams, customParams);\n\n updateValue(\"uTexture\", params.texture!);\n updateValue(\"uColor1\", params.color1!);\n updateValue(\"uColor2\", params.color2!);\n updateValue(\"uColor3\", params.color3!);\n updateValue(\"uColor4\", params.color4!);\n updateValue(\"uRgbWeight\", params.rgbWeight!);\n\n return updateRenderTarget(gl);\n },\n [updateRenderTarget, updateValue, params, updateParams]\n );\n\n return [\n updateFx,\n updateParams,\n {\n scene: scene,\n mesh: mesh,\n material: material,\n camera: camera,\n renderTarget: renderTarget,\n output: renderTarget.texture,\n },\n ];\n};\n","#usf ","precision highp float;\n\nvarying vec2 vUv;\nuniform sampler2D uTexture;\n\nuniform vec3 uColor0;\nuniform vec3 uColor1;\n\nvoid main() {\n\tvec2 uv = vUv;\n\tvec4 texColor = texture2D(uTexture, uv);\n\tfloat grayscale = dot(texColor.rgb, vec3(0.299, 0.587, 0.114));\n\tvec3 duotone = mix(uColor0, uColor1, grayscale);\n\tgl_FragColor = vec4(duotone, texColor.a);\n}","import { useMemo } from \"react\";\nimport * as THREE from \"three\";\nimport vertexShader from \"./shader/main.vert\";\nimport fragmentShader from \"./shader/main.frag\";\nimport { useAddObject } from \"../../../utils/useAddObject\";\nimport { MaterialProps } from \"../../types\";\nimport {\n MATERIAL_BASIC_PARAMS,\n DEFAULT_TEXTURE,\n} from \"../../../libs/constants\";\nimport { DUOTONE_PARAMS } from \".\";\nimport { createMaterialParameters } from \"../../../utils/createMaterialParameters\";\n\nexport class DuoToneMaterial extends THREE.ShaderMaterial {\n uniforms!: {\n uTexture: { value: THREE.Texture };\n uColor0: { value: THREE.Color };\n uColor1: { value: THREE.Color };\n };\n}\n\nexport const useMesh = ({\n scene,\n onBeforeInit,\n}: { scene: THREE.Scene } & MaterialProps) => {\n const geometry = useMemo(() => new THREE.PlaneGeometry(2, 2), []);\n const material = useMemo(() => {\n const mat = new THREE.ShaderMaterial({\n ...createMaterialParameters(\n {\n uniforms: {\n uTexture: { value: DEFAULT_TEXTURE },\n uColor0: { value: DUOTONE_PARAMS.color0 },\n uColor1: { value: DUOTONE_PARAMS.color1 },\n },\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n },\n onBeforeInit\n ),\n ...MATERIAL_BASIC_PARAMS,\n });\n return mat;\n }, [onBeforeInit]) as DuoToneMaterial;\n const mesh = useAddObject(scene, geometry, material, THREE.Mesh);\n return { material, mesh };\n};\n","import { useCallback, useMemo } from \"react\";\nimport * as THREE from \"three\";\nimport { DuoToneMaterial, useMesh } from \"./useMesh\";\nimport { useCamera } from \"../../../utils/useCamera\";\nimport { RootState } from \"@react-three/fiber\";\nimport { useSingleFBO } from \"../../../utils/useSingleFBO\";\nimport {\n CustomParams,\n setCustomUniform,\n setUniform,\n} from \"../../../utils/setUniforms\";\nimport { HooksProps, HooksReturn } from \"../../types\";\nimport { useParams } from \"../../../utils/useParams\";\nimport { getDpr } from \"../../../utils/getDpr\";\nimport { DEFAULT_TEXTURE } from \"../../../libs/constants\";\n\nexport type DuoToneParams = {\n /** Make this texture duotone , Default : `THREE.Texture()` */\n texture?: THREE.Texture;\n /** 1st color , Default : `THREE.Color(0xffffff)` */\n color0?: THREE.Color;\n /** 2nd color , Default : `THREE.Color(0x000000)` */\n color1?: THREE.Color;\n};\n\nexport type DuoToneObject = {\n scene: THREE.Scene;\n mesh: THREE.Mesh;\n material: DuoToneMaterial;\n camera: THREE.Camera;\n renderTarget: THREE.WebGLRenderTarget;\n output: THREE.Texture;\n};\n\nexport const DUOTONE_PARAMS: DuoToneParams = Object.freeze({\n texture: DEFAULT_TEXTURE,\n color0: new THREE.Color(0xffffff),\n color1: new THREE.Color(0x000000),\n});\n\n/**\n * @link https://github.com/FunTechInc/use-shader-fx?tab=readme-ov-file#usage\n */\nexport const useDuoTone = ({\n size,\n dpr,\n renderTargetOptions,\n isSizeUpdate,\n onBeforeInit,\n}: HooksProps): HooksReturn => {\n const _dpr = getDpr(dpr);\n\n const scene = useMemo(() => new THREE.Scene(), []);\n const { material, mesh } = useMesh({ scene, onBeforeInit });\n const camera = useCamera(size);\n const [renderTarget, updateRenderTarget] = useSingleFBO({\n scene,\n camera,\n size,\n dpr: _dpr.fbo,\n isSizeUpdate,\n ...renderTargetOptions,\n });\n\n const [params, setParams] = useParams(DUOTONE_PARAMS);\n\n const updateValue = setUniform(material);\n const updateCustomValue = setCustomUniform(material);\n\n const updateParams = useCallback(\n (newParams?: DuoToneParams, customParams?: CustomParams) => {\n setParams(newParams);\n updateCustomValue(customParams);\n },\n [setParams, updateCustomValue]\n );\n\n const updateFx = useCallback(\n (\n rootState: RootState,\n newParams?: DuoToneParams,\n customParams?: CustomParams\n ) => {\n const { gl } = rootState;\n\n updateParams(newParams, customParams);\n\n updateValue(\"uTexture\", params.texture!);\n updateValue(\"uColor0\", params.color0!);\n updateValue(\"uColor1\", params.color1!);\n\n return updateRenderTarget(gl);\n },\n [updateRenderTarget, updateValue, params, updateParams]\n );\n\n return [\n updateFx,\n updateParams,\n {\n scene: scene,\n mesh: mesh,\n material: material,\n camera: camera,\n renderTarget: renderTarget,\n output: renderTarget.texture,\n },\n ];\n};\n","#usf ","precision highp float;\n\nvarying vec2 vUv;\nuniform sampler2D u_texture;\nuniform sampler2D uMap;\nuniform bool u_isAlphaMap;\nuniform sampler2D u_alphaMap;\nuniform float uMapIntensity;\nuniform vec3 u_brightness;\nuniform float u_min;\nuniform float u_max;\nuniform vec3 u_dodgeColor;\nuniform bool u_isDodgeColor;\n\nvoid main() {\n\tvec2 uv = vUv;\n\n\t#usf \n\n\t// color blending\n\tfloat brightness = dot(mapColor,u_brightness);\n\tvec4 textureMap = texture2D(u_texture, uv);\n\tfloat blendValue = smoothstep(u_min, u_max, brightness);\n\n\t// set dodge color\n\tvec3 dodgeColor = u_isDodgeColor ? u_dodgeColor : mapColor;\n\tvec3 outputColor = blendValue * dodgeColor + (1.0 - blendValue) * textureMap.rgb;\n\t\n\t// alpha blending\n\tfloat alpha = u_isAlphaMap ? texture2D(u_alphaMap, uv).a : textureMap.a;\n\tfloat mixValue = u_isAlphaMap ? alpha : 0.0;\n\tvec3 alphaColor = vec3(mix(outputColor,mapColor,mixValue));\n\n\tgl_FragColor = vec4(alphaColor,alpha);\n}","import { useMemo } from \"react\";\nimport * as THREE from \"three\";\nimport vertexShader from \"./shader/main.vert\";\nimport fragmentShader from \"./shader/main.frag\";\nimport { useAddObject } from \"../../../utils/useAddObject\";\nimport { MaterialProps } from \"../../types\";\nimport {\n DEFAULT_TEXTURE,\n MATERIAL_BASIC_PARAMS,\n} from \"../../../libs/constants\";\nimport { BLENDING_PARAMS } from \".\";\nimport { createMaterialParameters } from \"../../../utils/createMaterialParameters\";\n\nexport class BlendingMaterial extends THREE.ShaderMaterial {\n uniforms!: {\n u_texture: { value: THREE.Texture };\n uMap: { value: THREE.Texture };\n u_alphaMap: { value: THREE.Texture };\n u_isAlphaMap: { value: boolean };\n uMapIntensity: { value: number };\n u_brightness: { value: THREE.Vector3 };\n u_min: { value: number };\n u_max: { value: number };\n u_dodgeColor: { value: THREE.Color };\n u_isDodgeColor: { value: boolean };\n };\n}\n\nexport const useMesh = ({\n scene,\n onBeforeInit,\n}: { scene: THREE.Scene } & MaterialProps) => {\n const geometry = useMemo(() => new THREE.PlaneGeometry(2, 2), []);\n const material = useMemo(() => {\n const mat = new THREE.ShaderMaterial({\n ...createMaterialParameters(\n {\n uniforms: {\n u_texture: { value: DEFAULT_TEXTURE },\n uMap: { value: DEFAULT_TEXTURE },\n u_alphaMap: { value: DEFAULT_TEXTURE },\n u_isAlphaMap: { value: false },\n uMapIntensity: { value: BLENDING_PARAMS.mapIntensity },\n u_brightness: { value: BLENDING_PARAMS.brightness },\n u_min: { value: BLENDING_PARAMS.min },\n u_max: { value: BLENDING_PARAMS.max },\n u_dodgeColor: { value: new THREE.Color() },\n u_isDodgeColor: { value: false },\n },\n vertexShader: vertexShader,\n fragmentShader: fragmentShader,\n },\n onBeforeInit\n ),\n ...MATERIAL_BASIC_PARAMS,\n });\n\n return mat;\n }, [onBeforeInit]) as BlendingMaterial;\n const mesh = useAddObject(scene, geometry, material, THREE.Mesh);\n return { material, mesh };\n};\n","import { useCallback, useMemo } from \"react\";\nimport * as THREE from \"three\";\nimport { useMesh } from \"./useMesh\";\nimport { useCamera } from \"../../../utils/useCamera\";\nimport { RootState } from \"@react-three/fiber\";\nimport { useSingleFBO } from \"../../../utils/useSingleFBO\";\nimport {\n CustomParams,\n setCustomUniform,\n setUniform,\n} from \"../../../utils/setUniforms\";\nimport { HooksProps, HooksReturn } from \"../../types\";\nimport { useParams } from \"../../../utils/useParams\";\nimport { getDpr } from \"../../../utils/getDpr\";\nimport { DEFAULT_TEXTURE } from \"../../../libs/constants\";\n\nexport type BlendingParams = {\n /** Make this texture Blending , default : `THREE.Texture` */\n texture?: THREE.Texture;\n /** map texture, default : `THREE.Texture` */\n map?: THREE.Texture;\n /** map strength , r,g value are affecting , default : `0.3` */\n mapIntensity?: number;\n /** Alpha blending is performed using the alpha of the set texture. , default : `false` */\n alphaMap?: THREE.Texture | false;\n /** default : `(0.5,0.5,0.5)` */\n brightness?: THREE.Vector3;\n /** default : `0.0` */\n min?: number;\n /** default : `1.0` */\n max?: number;\n /** If set, this value will apply color dodge , default : `false` */\n dodgeColor?: THREE.Color | false;\n};\n\nexport type BlendingObject = {\n scene: THREE.Scene;\n mesh: THREE.Mesh;\n material: THREE.Material;\n camera: THREE.Camera;\n renderTarget: THREE.WebGLRenderTarget;\n output: THREE.Texture;\n};\n\nexport const BLENDING_PARAMS: BlendingParams = Object.freeze({\n texture: DEFAULT_TEXTURE,\n map: DEFAULT_TEXTURE,\n alphaMap: false,\n mapIntensity: 0.3,\n brightness: new THREE.Vector3(0.5, 0.5, 0.5),\n min: 0.0,\n max: 1.0,\n dodgeColor: false,\n});\n\n/**\n * Blend map to texture. You can set the threshold for blending with brightness. You can set the dodge color by setting color. \nIf you don't want to reflect the map's color, you can use useFxBlending instead.\n * @link https://github.com/FunTechInc/use-shader-fx?tab=readme-ov-file#usage\n */\nexport const useBlending = ({\n size,\n dpr,\n renderTargetOptions,\n isSizeUpdate,\n onBeforeInit,\n}: HooksProps): HooksReturn => {\n const _dpr = getDpr(dpr);\n\n const scene = useMemo(() => new THREE.Scene(), []);\n const { material, mesh } = useMesh({ scene, onBeforeInit });\n const camera = useCamera(size);\n const [renderTarget, updateRenderTarget] = useSingleFBO({\n scene,\n camera,\n size,\n dpr: _dpr.fbo,\n isSizeUpdate,\n ...renderTargetOptions,\n });\n\n const [params, setParams] = useParams(BLENDING_PARAMS);\n\n const updateValue = setUniform(material);\n const updateCustomValue = setCustomUniform(material);\n\n const updateParams = useCallback(\n (newParams?: BlendingParams, customParams?: CustomParams) => {\n setParams(newParams);\n updateCustomValue(customParams);\n },\n [setParams, updateCustomValue]\n );\n\n const updateFx = useCallback(\n (\n rootState: RootState,\n newParams?: BlendingParams,\n customParams?: CustomParams\n ) => {\n const { gl } = rootState;\n\n updateParams(newParams, customParams);\n\n updateValue(\"u_texture\", params.texture!);\n updateValue(\"uMap\", params.map!);\n updateValue(\"uMapIntensity\", params.mapIntensity!);\n if (params.alphaMap) {\n updateValue(\"u_alphaMap\", params.alphaMap!);\n updateValue(\"u_isAlphaMap\", true);\n } else {\n updateValue(\"u_isAlphaMap\", false);\n }\n updateValue(\"u_brightness\", params.brightness!);\n updateValue(\"u_min\", params.min!);\n updateValue(\"u_max\", params.max!);\n if (params.dodgeColor) {\n updateValue(\"u_dodgeColor\", params.dodgeColor);\n updateValue(\"u_isDodgeColor\", true);\n } else {\n updateValue(\"u_isDodgeColor\", false);\n }\n\n return updateRenderTarget(gl);\n },\n [updateRenderTarget, updateValue, params, updateParams]\n );\n\n return [\n updateFx,\n updateParams,\n {\n scene: scene,\n mesh: mesh,\n material: material,\n camera: camera,\n renderTarget: renderTarget,\n output: renderTarget.texture,\n },\n ];\n};\n","#usf ","precision highp float;\n\nvarying vec2 vUv;\nuniform vec2 uResolution;\nuniform vec2 uTextureResolution;\nuniform sampler2D uTexture0;\nuniform sampler2D uTexture1;\nuniform sampler2D uMap;\nuniform float mapIntensity;\nuniform float edgeIntensity;\nuniform float progress;\nuniform float dirX;\nuniform float dirY;\nuniform vec2 epicenter;\nuniform float padding;\n\nbool isInPaddingArea(vec2 uv) {\n return uv.x < padding || uv.x > 1.0 - padding || uv.y < padding || uv.y > 1.0 - padding;\n}\n\nvoid main() {\n\t#usf