├── .gitattributes
├── .github
└── workflows
│ ├── firebase-hosting-merge.yml
│ └── firebase-hosting-pull-request.yml
├── .gitignore
├── .prettierrc.json
├── .yarnrc.yml
├── README.md
├── eslint.config.js
├── firebase.json
├── index.html
├── package.json
├── public
└── vite.svg
├── src
├── @types
│ ├── easeljs.d.ts
│ └── orbitControls.d.ts
├── App.css
├── App.tsx
├── components
│ ├── Sidebar.tsx
│ ├── ThreeJSViewer.tsx
│ └── ui
│ │ └── Button.tsx
├── index.css
├── interfaces
│ └── index.ts
├── main.tsx
├── utils
│ ├── color.ts
│ ├── constants.ts
│ ├── exportimport.ts
│ ├── index.ts
│ └── keyboard.ts
└── vite-env.d.ts
├── tsconfig.app.json
├── tsconfig.json
├── tsconfig.node.json
├── vite.config.ts
└── yarn.lock
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/.github/workflows/firebase-hosting-merge.yml:
--------------------------------------------------------------------------------
1 | name: Deploy to Firebase Hosting on merge
2 | on:
3 | push:
4 | branches:
5 | - main
6 | jobs:
7 | build_and_deploy:
8 | runs-on: ubuntu-latest
9 | steps:
10 | - uses: actions/checkout@v4
11 | - name: Enable Corepack
12 | run: corepack enable
13 | - name: Install dependencies with Yarn
14 | run: yarn install
15 | - name: Build the project
16 | run: yarn build
17 | - uses: FirebaseExtended/action-hosting-deploy@v0
18 | with:
19 | repoToken: ${{ secrets.GITHUB_TOKEN }}
20 | firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_REACT_THREEJS_EASELJS }}
21 | channelId: live
22 | projectId: react-threejs-easeljs
23 |
--------------------------------------------------------------------------------
/.github/workflows/firebase-hosting-pull-request.yml:
--------------------------------------------------------------------------------
1 | name: Deploy to Firebase Hosting on PR
2 | on: pull_request
3 | permissions:
4 | checks: write
5 | contents: read
6 | pull-requests: write
7 | jobs:
8 | build_and_preview:
9 | if: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
10 | runs-on: ubuntu-latest
11 | steps:
12 | - uses: actions/checkout@v4
13 | - uses: FirebaseExtended/action-hosting-deploy@v0
14 | with:
15 | repoToken: ${{ secrets.GITHUB_TOKEN }}
16 | firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_REACT_THREEJS_EASELJS }}
17 | projectId: react-threejs-easeljs
18 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 | .firebaserc
26 | /.firebase
27 | .yarn/install-state.gz
28 | tsconfig.app.tsbuildinfo
29 | tsconfig.node.tsbuildinfo
30 | tsconfig.tsbuildinfo
31 |
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "arrowParens": "avoid",
3 | "bracketSpacing": true,
4 | "htmlWhitespaceSensitivity": "css",
5 | "insertPragma": false,
6 | "jsxBracketSameLine": false,
7 | "jsxSingleQuote": true,
8 | "printWidth": 120,
9 | "proseWrap": "preserve",
10 | "quoteProps": "as-needed",
11 | "requirePragma": false,
12 | "semi": false,
13 | "singleQuote": true,
14 | "tabWidth": 2,
15 | "useTabs": false,
16 | "vueIndentScriptAndStyle": false,
17 | "endOfLine": "lf",
18 | "singleAttributePerLine": true
19 | }
20 |
--------------------------------------------------------------------------------
/.yarnrc.yml:
--------------------------------------------------------------------------------
1 | nodeLinker: node-modules
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 🌟 React - ThreeJS - EaselJS Drawing App 🎨
2 |
3 | Welcome to the **React-ThreeJS EaselJS Drawing App** – a powerful tool for creating 2D and 3D visualizations! This app covers you whether you're looking to draw, manipulate shapes, or view objects in a 3D scene. Let's unleash your creativity! 🌐✨ This is the perfect boilerplate to kickstart your drawing projects with React, ThreeJS, and EaselJS! 🚀
4 |
5 | ### 🎥 Demo Video
6 |
7 | https://github.com/user-attachments/assets/27ea7167-7dec-4ab3-911e-9e0686a1a496
8 |
9 | ### 🌍 Live Demo
10 |
11 | https://react-threejs-easeljs.web.app/
12 |
13 | ## 🎯 Key Features
14 |
15 | - 🎨 **Draw Shapes:** Draw rectangles, circles, lines, and custom paths effortlessly with a click-and-drag interface.
16 | - ✋ **Shape Manipulation:** Move, drag, and delete shapes as needed. Shapes adjust in real time for a smooth experience!
17 | - 🌐 **3D Viewer:** Toggle between 2D and view-only 3D mode to see your drawings come to life in a new dimension.
18 | - 🎨 **Random Colors:** Each shape you create is assigned a random stroke and fill color.
19 | - ⚡ **Real-Time Updates:** Watch your canvas update instantly as you interact with shapes.
20 | - ⌨️ **Keyboard Support:** Delete selected shapes using the Delete or Backspace keys for quick editing.
21 |
22 | ## 🛠️ Tech Stack
23 |
24 | This project is built using modern technologies:
25 |
26 | - **React** ⚛️
27 | - **Three.js** 🌐
28 | - **EaselJS** 🎨
29 | - **Vite** ⚡
30 | - **Lodash** 🛠️
31 | - **TypeScript** 🔧
32 | - **Firebase** 🔥
33 | - **SonarCloud** 🧪
34 |
35 | ### 📦 Dependencies
36 |
37 | The project relies on several key libraries:
38 |
39 | **React:** A library for building user interfaces.
40 | **Three.js:** A powerful 3D engine for rendering the 3D view mode.
41 | **EaselJS:** A library for drawing and manipulating 2D shapes.
42 | **Vite:** A fast build tool for modern web development.
43 | **Lodash:** A utility library for working with arrays, objects, and more.
44 |
45 | ### 🚀 Getting Started
46 |
47 | To start the project locally, fork the repo and follow these steps:
48 |
49 | ```
50 | 1. 🍴 Fork the repository
51 | 2. 📥 Clone your forked repository
52 | 3. 🛠️ Run `yarn install` to install dependencies
53 | 4. 🚀 Run `yarn dev` to start the local development server
54 | ```
55 |
56 | The app will run on http://localhost:5173.
57 |
58 | ### Expanding the ESLint configuration
59 |
60 | If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:
61 |
62 | - Configure the top-level `parserOptions` property like this:
63 |
64 | ```js
65 | export default tseslint.config({
66 | languageOptions: {
67 | // other options...
68 | parserOptions: {
69 | project: ['./tsconfig.node.json', './tsconfig.app.json'],
70 | tsconfigRootDir: import.meta.dirname,
71 | },
72 | },
73 | })
74 | ```
75 |
76 | - Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked`
77 | - Optionally add `...tseslint.configs.stylisticTypeChecked`
78 | - Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config:
79 |
80 | ```js
81 | // eslint.config.js
82 | import react from 'eslint-plugin-react'
83 |
84 | export default tseslint.config({
85 | // Set the react version
86 | settings: { react: { version: '18.3' } },
87 | plugins: {
88 | // Add the react plugin
89 | react,
90 | },
91 | rules: {
92 | // other rules...
93 | // Enable its recommended rules
94 | ...react.configs.recommended.rules,
95 | ...react.configs['jsx-runtime'].rules,
96 | },
97 | })
98 | ```
99 |
100 | ### 👾 How can I contribute?
101 |
102 | - ⭐ Star the repository
103 | - 🛠️ Submit pull requests, report bugs, or suggest features
104 |
105 | ### 📬 Get in Touch
106 |
107 | Feel free to reach out if you have any questions or need help:
108 |
109 | - **GitHub:** https://github.com/voretexory/https://github.com/vortexory/react_threejs_drawing-app
110 |
111 | Made with ❤️ in 📍 Istanbul, using React ⚛️, Three.js 🌐, EaselJS 🎨, TypeScript 🔧, Vite ⚡, and Lodash 🛠️!
112 |
--------------------------------------------------------------------------------
/eslint.config.js:
--------------------------------------------------------------------------------
1 | import js from '@eslint/js'
2 | import globals from 'globals'
3 | import reactHooks from 'eslint-plugin-react-hooks'
4 | import reactRefresh from 'eslint-plugin-react-refresh'
5 | import tseslint from 'typescript-eslint'
6 |
7 | export default tseslint.config(
8 | { ignores: ['dist'] },
9 | {
10 | extends: [js.configs.recommended, ...tseslint.configs.recommended],
11 | files: ['**/*.{ts,tsx}'],
12 | languageOptions: {
13 | ecmaVersion: 2020,
14 | globals: globals.browser,
15 | },
16 | plugins: {
17 | 'react-hooks': reactHooks,
18 | 'react-refresh': reactRefresh,
19 | },
20 | rules: {
21 | ...reactHooks.configs.recommended.rules,
22 | 'react-refresh/only-export-components': ['warn', { allowConstantExport: true }],
23 | },
24 | }
25 | )
26 |
--------------------------------------------------------------------------------
/firebase.json:
--------------------------------------------------------------------------------
1 | {
2 | "hosting": {
3 | "public": "dist",
4 | "ignore": [
5 | "firebase.json",
6 | "**/.*",
7 | "**/node_modules/**"
8 | ],
9 | "rewrites": [
10 | {
11 | "source": "**",
12 | "destination": "/index.html"
13 | }
14 | ]
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
14 | Drawing APP With React + ThreeJS + EaselJS
15 |
16 |
20 |
21 |
22 |
23 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-threejs-easeljs-drawing-app",
3 | "private": true,
4 | "version": "0.0.0",
5 | "type": "module",
6 | "scripts": {
7 | "dev": "vite",
8 | "build": "tsc -b && vite build",
9 | "lint": "eslint .",
10 | "preview": "vite preview"
11 | },
12 | "dependencies": {
13 | "@createjs/easeljs": "^2.0.0-beta.4",
14 | "lodash": "^4.17.21",
15 | "react": "^18.3.1",
16 | "react-dom": "^18.3.1",
17 | "three": "^0.169.0"
18 | },
19 | "devDependencies": {
20 | "@eslint/js": "^9.11.1",
21 | "@types/easeljs": "^1",
22 | "@types/lodash": "^4.17.10",
23 | "@types/react": "^18.3.11",
24 | "@types/react-dom": "^18.3.1",
25 | "@types/three": "^0.169.0",
26 | "@vitejs/plugin-react": "^4.3.2",
27 | "eslint": "^9.11.1",
28 | "eslint-plugin-react-hooks": "^5.1.0-rc.0",
29 | "eslint-plugin-react-refresh": "^0.4.12",
30 | "globals": "^15.9.0",
31 | "typescript": "^5.5.3",
32 | "typescript-eslint": "^8.7.0",
33 | "vite": "^5.4.8"
34 | },
35 | "packageManager": "yarn@4.4.0+sha512.91d93b445d9284e7ed52931369bc89a663414e5582d00eea45c67ddc459a2582919eece27c412d6ffd1bd0793ff35399381cb229326b961798ce4f4cc60ddfdb"
36 | }
37 |
--------------------------------------------------------------------------------
/public/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/@types/easeljs.d.ts:
--------------------------------------------------------------------------------
1 | // src/@types/easeljs.d.ts
2 | import { Shape as CustomShape } from '../interfaces'
3 |
4 | declare module '@createjs/easeljs' {
5 | export class Stage {
6 | constructor(canvas: HTMLCanvasElement)
7 | addChild(shape: CustomShape | Shape): void
8 | enableMouseOver(): void
9 | removeAllChildren(): void
10 | clear(): void
11 | removeChild(selectedShape: CustomShape | Shape): void
12 | update(): void
13 | children: Shape[]
14 | getObjectsUnderPoint(x: number, y: number, mode?: number): Shape[]
15 | }
16 |
17 | export class Shape {
18 | x: number
19 | y: number
20 | offset: { x: number; y: number }
21 | id: number
22 | graphics: Graphics
23 | constructor()
24 | on(event: string, handler: (this: Shape, evt: { stageX: number; stageY: number }) => void): void
25 | }
26 |
27 | export class Graphics {
28 | beginFill(color: string): Graphics
29 | beginStroke(color: string): Graphics
30 | setStrokeStyle(thickness: number): Graphics
31 | drawRect(x: number, y: number, width: number, height: number): Graphics
32 | drawCircle(x: number, y: number, radius: number): Graphics
33 | moveTo(x: number, y: number): Graphics
34 | lineTo(x: number, y: number): Graphics
35 | clear(): Graphics
36 | }
37 |
38 | export class Ticker {
39 | static framerate: number
40 | static addEventListener(event: string, listener: (event: Event) => void): void
41 | static removeEventListener(event: string, listener: (event: Event) => void): void
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/@types/orbitControls.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'three/examples/jsm/controls/OrbitControls' {
2 | import { EventDispatcher } from 'three'
3 | import { Camera } from 'three'
4 | import { HTMLElement } from 'three'
5 |
6 | export class OrbitControls extends EventDispatcher {
7 | constructor(camera: Camera, domElement?: HTMLElement)
8 |
9 | enableDamping: boolean // Add damping option
10 | dampingFactor: number // Damping factor for smooth movement
11 | enableZoom: boolean // Enable or disable zooming
12 |
13 | update(): void
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/App.css:
--------------------------------------------------------------------------------
1 | #root {
2 | width: 100%;
3 | }
4 |
--------------------------------------------------------------------------------
/src/App.tsx:
--------------------------------------------------------------------------------
1 | import './App.css'
2 |
3 | import React, { useRef, useEffect, useState, useCallback } from 'react'
4 | import { getRandomColor } from './utils'
5 | // @ts-expect-error -> no support for EaselJS in TypeScript -> https://github.com/CreateJS/EaselJS/issues/796
6 | import { Stage, Shape, Ticker } from '@createjs/easeljs'
7 | import { Shape as ShapeInterface } from './interfaces'
8 | import { defaultPathThickness, ShapeType } from './utils/constants'
9 | import Sidebar from './components/Sidebar'
10 | import ThreeJSViewer from './components/ThreeJSViewer'
11 | import { isEmpty } from 'lodash'
12 |
13 | const Canvas: React.FC = () => {
14 | const [pathThickness, setPathThickness] = useState(defaultPathThickness)
15 | const canvasRef = useRef(null)
16 | const stageRef = useRef(null)
17 | const [shapes, setShapes] = useState([])
18 | const [selectedShape, setSelectedShape] = useState(null)
19 | const [shapeType, setShapeType] = useState('rectangle')
20 | const [isDrawing, setIsDrawing] = useState(false)
21 | const [startPoint, setStartPoint] = useState<{ x: number; y: number } | null>(null)
22 | const [currentShape, setCurrentShape] = useState(null)
23 | const [is3DMode, setIs3DMode] = useState(false)
24 | const pathColor = useRef(getRandomColor())
25 |
26 | const selectedIdRef = useRef(undefined)
27 | const pathPointsRef = useRef<{ x: number; y: number }[]>([])
28 |
29 | const toggleViewMode = () => setIs3DMode(!is3DMode)
30 |
31 | const getStrokeThickness = (thickness?: number) => thickness ?? pathThickness
32 |
33 | // Function to handle shape creation
34 | const createShape = useCallback(
35 | (props: ShapeInterface) => {
36 | const stage = stageRef.current
37 | if (!stage) return
38 |
39 | const shape = new Shape()
40 | const g = shape.graphics
41 |
42 | switch (props.type) {
43 | case 'rectangle':
44 | g.beginFill(props.fillColor).beginStroke(props.strokeColor).drawRect(0, 0, props.width, props.height)
45 | break
46 | case 'circle':
47 | g.beginFill(props.fillColor).beginStroke(props.strokeColor).drawCircle(0, 0, props.radius)
48 | break
49 | case 'line':
50 | if (props.endX === undefined || props.endY === undefined) return
51 |
52 | g.beginStroke(props.strokeColor)
53 | .setStrokeStyle(getStrokeThickness(props?.thickness))
54 | .moveTo(0, 0)
55 | .lineTo(props.endX - props.x, props.endY - props.y)
56 | break
57 | case 'path':
58 | if (props?.points && props.points?.length > 1) {
59 | g.beginStroke(props.strokeColor).setStrokeStyle(getStrokeThickness(props?.thickness))
60 | g.moveTo(props.points[0].x, props.points[0].y)
61 |
62 | props.points.forEach((point: { x: number; y: number }, index: number) => {
63 | if (index > 0) g.lineTo(point.x, point.y)
64 | })
65 | }
66 | break
67 | default:
68 | return
69 | }
70 |
71 | shape.x = props.x
72 | shape.y = props.y
73 |
74 | // Handle mousedown event
75 | shape.on('mousedown', function (this: Shape, evt: { stageX: number; stageY: number }) {
76 | const { stageX, stageY } = evt
77 | const { x, y } = this
78 |
79 | // Calculate the offset for dragging
80 | this.offset = { x: x - stageX, y: y - stageY }
81 | })
82 |
83 | // Handle pressmove event (dragging)
84 | shape.on('pressmove', function (this: Shape, evt: { stageX: number; stageY: number }) {
85 | const { stageX, stageY } = evt
86 | const { offset } = this
87 |
88 | // Update position based on the drag event
89 | this.x = stageX + offset.x
90 | this.y = stageY + offset.y
91 |
92 | if (props.type === 'line') {
93 | if (props.endX === undefined || props.endY === undefined) return
94 |
95 | const dx = this.x - props.x
96 | const dy = this.y - props.y
97 |
98 | props.endX &&= props.endX + dx
99 | props.endY &&= props.endY + dy
100 |
101 | props.x = this.x
102 | props.y = this.y
103 |
104 | const g = this.graphics
105 | g.clear()
106 | .beginStroke(props.strokeColor)
107 | .setStrokeStyle(getStrokeThickness(props?.thickness))
108 | .moveTo(0, 0)
109 | .lineTo(props.endX - props.x, props.endY - props.y)
110 | } else if (props.type === 'path' && props.points) {
111 | // Update path points relative to new position
112 | const { x, y } = props
113 |
114 | props.points = props.points.map((point: { x: number; y: number }) => ({
115 | x: point.x + (this.x - x),
116 | y: point.y + (this.y - y),
117 | }))
118 |
119 | // Update path origin
120 | props.x = this.x
121 | props.y = this.y
122 | }
123 |
124 | // Only update the stage once per movement
125 | stage.update()
126 | })
127 |
128 | shape.on('pressup', function (this: Shape) {
129 | const { id, x, y } = this
130 |
131 | // Update only if the coordinates have changed
132 | setShapes(prevShapes =>
133 | prevShapes.map(shape => {
134 | if (shape.id === id) {
135 | if (shape.type === 'line') return { ...shape, x, y, endX: props.endX, endY: props.endY }
136 | return { ...shape, x, y, points: props?.points }
137 | }
138 | return shape
139 | })
140 | )
141 | })
142 |
143 | props.id = shape?.id || shapes.length + 1
144 |
145 | stage.addChild(shape)
146 | setShapes(prevShapes => [...prevShapes, { ...props, instance: shape }])
147 | stage.update()
148 |
149 | return shape
150 | },
151 | [shapes]
152 | )
153 |
154 | const startDrawing = (x: number, y: number) => {
155 | setStartPoint({ x, y })
156 | setIsDrawing(true)
157 |
158 | const newShape = new Shape()
159 | stageRef.current?.addChild(newShape)
160 | setCurrentShape(newShape)
161 | }
162 |
163 | const draw = (x: number, y: number) => {
164 | if (!isDrawing || !startPoint || !currentShape) return
165 |
166 | const g = currentShape.graphics
167 | g.clear()
168 |
169 | const { x: startX, y: startY } = startPoint
170 | let thickness = pathThickness
171 |
172 | if (['line', 'path'].includes(shapeType) && currentShape?.graphics?._strokeStyle?.width) {
173 | thickness = currentShape?.graphics?._strokeStyle?.width
174 | }
175 |
176 | switch (shapeType) {
177 | case 'rectangle':
178 | g.beginFill(pathColor.current)
179 | .beginStroke(pathColor.current)
180 | .drawRect(startX, startY, x - startX, y - startY)
181 | break
182 | case 'circle': {
183 | const radius = Math.sqrt(Math.pow(x - startX, 2) + Math.pow(y - startY, 2))
184 | g.beginFill(pathColor.current).beginStroke(pathColor.current).drawCircle(startX, startY, radius)
185 | break
186 | }
187 | case 'line':
188 | g.beginStroke(pathColor.current).setStrokeStyle(thickness).moveTo(startX, startY).lineTo(x, y)
189 | break
190 | case 'path': {
191 | const newPoints = g.beginStroke(pathColor.current).setStrokeStyle(thickness)
192 |
193 | if (isEmpty(pathPointsRef.current)) {
194 | newPoints.moveTo(startX, startY)
195 | } else {
196 | pathPointsRef.current.forEach(point => newPoints.lineTo(point.x, point.y))
197 | }
198 |
199 | newPoints.lineTo(x, y)
200 | }
201 | }
202 |
203 | stageRef.current?.update()
204 | }
205 |
206 | const endDrawing = (x: number, y: number) => {
207 | if (!isDrawing || !startPoint || !currentShape) return
208 |
209 | let shapeProps: Shape
210 | const radius = Math.sqrt(Math.pow(x - startPoint.x, 2) + Math.pow(y - startPoint.y, 2))
211 |
212 | switch (shapeType) {
213 | case 'rectangle':
214 | shapeProps = {
215 | type: 'rectangle',
216 | fillColor: pathColor.current,
217 | strokeColor: getRandomColor(),
218 | x: Math.min(startPoint.x, x),
219 | y: Math.min(startPoint.y, y),
220 | width: Math.abs(x - startPoint.x),
221 | height: Math.abs(y - startPoint.y),
222 | }
223 | break
224 | case 'circle':
225 | shapeProps = {
226 | type: 'circle',
227 | fillColor: pathColor.current,
228 | strokeColor: getRandomColor(),
229 | x: startPoint.x,
230 | y: startPoint.y,
231 | radius,
232 | }
233 | break
234 | case 'line':
235 | shapeProps = {
236 | type: 'line',
237 | fillColor: 'transparent',
238 | strokeColor: pathColor.current,
239 | x: startPoint.x,
240 | y: startPoint.y,
241 | endX: x,
242 | endY: y,
243 | thickness: pathThickness,
244 | }
245 | break
246 | default:
247 | return
248 | }
249 |
250 | createShape(shapeProps)
251 | stageRef.current?.removeChild(currentShape)
252 | setIsDrawing(false)
253 | setStartPoint(null)
254 | setCurrentShape(null)
255 | stageRef.current?.update()
256 | }
257 |
258 | // Mouse event handlers
259 | const handleCanvasMouseDown = useCallback(
260 | (event: React.MouseEvent) => {
261 | if (!isDrawing) pathColor.current = getRandomColor()
262 | const { offsetX, offsetY } = event.nativeEvent
263 |
264 | if (shapeType === 'path') {
265 | pathPointsRef.current.push({ x: offsetX, y: offsetY })
266 | }
267 |
268 | const clickedShape = stageRef.current?.getObjectsUnderPoint(offsetX, offsetY, 1)?.[0] as ShapeInterface
269 |
270 | if (clickedShape) {
271 | selectedIdRef.current = clickedShape?.id as number
272 | setSelectedShape(clickedShape)
273 | } else {
274 | startDrawing(offsetX, offsetY)
275 | }
276 | },
277 | [shapeType, isDrawing]
278 | )
279 |
280 | const handleCanvasMouseMove = useCallback(
281 | (event: React.MouseEvent) => {
282 | const { offsetX, offsetY } = event.nativeEvent
283 |
284 | if (isDrawing) {
285 | draw(offsetX, offsetY)
286 | }
287 | },
288 | [isDrawing, shapeType]
289 | )
290 |
291 | const handleCanvasMouseUp = useCallback(
292 | (event: React.MouseEvent) => {
293 | const { offsetX, offsetY } = event.nativeEvent
294 |
295 | if (isDrawing) {
296 | if (shapeType === 'path') {
297 | pathPointsRef.current = [...pathPointsRef.current, { x: offsetX, y: offsetY }]
298 | } else {
299 | endDrawing(offsetX, offsetY)
300 | }
301 | } else if (shapeType === 'line') {
302 | // Find the shape with the corresponding id
303 | const foundLine = stageRef.current?.children.find((shape: Shape) => shape.id === selectedIdRef.current)
304 |
305 | // Extract coordinates with fallback to avoid undefined values
306 | const coordinates = {
307 | x: startPoint?.x ?? 0,
308 | y: startPoint?.y ?? 0,
309 | endX: foundLine?.x ?? 0,
310 | endY: foundLine?.y ?? 0,
311 | }
312 |
313 | // Update shapes, ensuring we don't spread undefined values
314 | setShapes(prevShapes =>
315 | prevShapes.map(shape =>
316 | shape.id === selectedIdRef.current ? { ...shape, ...coordinates, instance: foundLine } : shape
317 | )
318 | )
319 | }
320 | },
321 | [isDrawing, shapeType]
322 | )
323 |
324 | // Initialize canvas and attach event handlers
325 | useEffect(() => {
326 | if (canvasRef.current) {
327 | const stage = new Stage(canvasRef.current)
328 | stageRef.current = stage
329 |
330 | stage.enableMouseOver()
331 |
332 | Ticker.framerate = 60
333 | Ticker.addEventListener('tick', stage)
334 |
335 | return () => {
336 | Ticker.removeEventListener('tick', stage)
337 | stage.removeAllChildren()
338 | stage.clear()
339 | }
340 | }
341 | }, [])
342 |
343 | // Clear all shapes
344 | const clearShapes = useCallback(() => {
345 | const stage = stageRef.current
346 |
347 | if (stage) {
348 | stage.removeAllChildren()
349 | stage.clear()
350 | stage.update()
351 | }
352 |
353 | setShapes([])
354 | setSelectedShape(null)
355 | setIsDrawing(false)
356 | pathPointsRef.current = []
357 | }, [])
358 |
359 | // Keyboard delete, backspace handlers
360 | useEffect(() => {
361 | const handleKeyDown = (event: KeyboardEvent) => {
362 | if (['Delete', 'Backspace'].includes(event.key) && selectedShape) {
363 | const stage = stageRef.current
364 |
365 | if (stage) {
366 | stage.removeChild(selectedShape)
367 | setSelectedShape(null)
368 | setShapes(prevShapes => prevShapes.filter(shape => shape.id !== selectedShape?.id))
369 | stage.update()
370 | }
371 | }
372 | }
373 |
374 | window.addEventListener('keydown', handleKeyDown)
375 |
376 | return () => window.removeEventListener('keydown', handleKeyDown)
377 | }, [selectedShape])
378 |
379 | useEffect(() => {
380 | // With this effect, we can finalize the path if the user right clicks
381 | const handleRightClick = (event: MouseEvent) => {
382 | event.preventDefault()
383 |
384 | if (isDrawing) {
385 | if (shapeType === 'path' && Array.isArray(pathPointsRef.current) && pathPointsRef.current.length > 1) {
386 | const current = {
387 | type: 'path',
388 | fillColor: pathColor.current,
389 | strokeColor: pathColor.current,
390 | x: 0,
391 | y: 0,
392 | points: pathPointsRef.current,
393 | instance: stageRef.current?.children[stageRef.current?.children.length - 1] as Shape,
394 | thickness: pathThickness,
395 | }
396 |
397 | stageRef.current?.removeChild(currentShape)
398 | stageRef.current?.update()
399 |
400 | createShape({
401 | ...current,
402 | })
403 |
404 | pathPointsRef.current = []
405 | setStartPoint(null)
406 | }
407 |
408 | setIsDrawing(false)
409 | }
410 | }
411 |
412 | window.addEventListener('contextmenu', handleRightClick)
413 |
414 | return () => {
415 | window.removeEventListener('contextmenu', handleRightClick)
416 | }
417 | }, [isDrawing])
418 |
419 | useEffect(() => {
420 | setIsDrawing(false)
421 | }, [shapeType])
422 |
423 | return (
424 |
425 |
426 |
437 |
441 |
446 |
447 |
448 |
449 |
455 |
463 |
464 |
465 |
466 |
467 | )
468 | }
469 |
470 | export default Canvas
471 |
--------------------------------------------------------------------------------
/src/components/Sidebar.tsx:
--------------------------------------------------------------------------------
1 | import { importShapes, exportShapes } from '../utils/exportimport'
2 | import { isEmpty } from 'lodash'
3 | import { defaultPathThickness, shapeList } from '../utils/constants'
4 | import { SidebarProps } from '../interfaces'
5 | import Button from './ui/Button'
6 |
7 | export default function Sidebar({
8 | clearShapes,
9 | createShape,
10 | setShapeType,
11 | shapes,
12 | shapeType,
13 | toggleViewMode,
14 | is3DMode,
15 | pathThickness,
16 | setPathThickness,
17 | }: Readonly) {
18 | const importFunc = (event: React.ChangeEvent) => {
19 | importShapes({ event, createShape, clearShapes })
20 | }
21 |
22 | const setThickness = (thickness: number) => {
23 | if (thickness < 1 || isNaN(thickness)) thickness = defaultPathThickness
24 |
25 | setPathThickness(thickness)
26 | }
27 | const iconList = ['rectangle', 'circle', 'horizontal_rule', 'route']
28 |
29 | return (
30 |
31 | {!is3DMode && (
32 |
61 | )}
62 |
63 |
ACTIONS
64 |
65 | {!is3DMode && (
66 | <>
67 |
70 |
71 | {!isEmpty(shapes) && (
72 |
78 | )}
79 |
80 |
87 |
93 | >
94 | )}
95 |
96 |
103 |
104 |
105 | )
106 | }
107 |
--------------------------------------------------------------------------------
/src/components/ThreeJSViewer.tsx:
--------------------------------------------------------------------------------
1 | import React, { useRef, useEffect } from 'react'
2 | import * as THREE from 'three'
3 | import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'
4 | import { Shape as ShapeInterface } from '../interfaces'
5 | import { defaultPathThickness } from '../utils/constants'
6 |
7 | interface ThreeJSViewerProps {
8 | shapes: ShapeInterface[]
9 | }
10 |
11 | const ThreeJSViewer: React.FC = ({ shapes }) => {
12 | const containerRef = useRef(null)
13 | const sceneRef = useRef(null)
14 |
15 | useEffect(() => {
16 | const container = containerRef.current
17 | if (!container) return
18 |
19 | const scene = new THREE.Scene()
20 | scene.background = new THREE.Color(0xffffff)
21 |
22 | const camera = new THREE.PerspectiveCamera(75, 800 / 800, 0.01, 2000)
23 | camera.position.set(0, 0, 500)
24 | camera.lookAt(0, 0, 0)
25 |
26 | const renderer = new THREE.WebGLRenderer()
27 | renderer.setSize(800, 800)
28 | containerRef.current.appendChild(renderer.domElement)
29 |
30 | const controls = new OrbitControls(camera, renderer.domElement)
31 | controls.enableDamping = true
32 | controls.dampingFactor = 0.25
33 | controls.enableZoom = true
34 |
35 | const light = new THREE.AmbientLight(0xffffff, 0.5)
36 | scene.add(light)
37 |
38 | const directionalLight = new THREE.DirectionalLight(0xffffff, 0.5)
39 | directionalLight.position.set(0, 1, 0)
40 | scene.add(directionalLight)
41 |
42 | const convertTo3DCoords = (x: number, y: number): THREE.Vector3 => {
43 | const halfWidth = 400
44 | const halfHeight = 400
45 | return new THREE.Vector3(x - halfWidth, halfHeight - y, 0)
46 | }
47 |
48 | const create3DShape = (shape: ShapeInterface) => {
49 | let geometry: THREE.BufferGeometry
50 | let material: THREE.Material
51 | let mesh: THREE.Mesh
52 |
53 | const thickness = shape?.thickness ?? shape?.instance?._strokeStyle?.width ?? defaultPathThickness
54 |
55 | switch (shape.type) {
56 | case 'rectangle': {
57 | if (shape.width === undefined || shape.height === undefined) {
58 | return // Invalid rectangle, skip
59 | }
60 |
61 | const position = convertTo3DCoords(shape.x + shape.width / 2, shape.y + shape.height / 2)
62 | geometry = new THREE.BoxGeometry(shape.width, shape.height, 20)
63 | material = new THREE.MeshPhongMaterial({ color: shape.fillColor || 0xffffff })
64 | mesh = new THREE.Mesh(geometry, material)
65 | mesh.position.copy(position)
66 | break
67 | }
68 | case 'circle': {
69 | const position = convertTo3DCoords(shape.x, shape.y)
70 | geometry = new THREE.CylinderGeometry(shape.radius, shape.radius, 20, 32)
71 | material = new THREE.MeshPhongMaterial({ color: shape.fillColor || 0xffffff })
72 | mesh = new THREE.Mesh(geometry, material)
73 | mesh.rotation.x = Math.PI / 2
74 | mesh.position.copy(position)
75 | break
76 | }
77 | case 'line': {
78 | const startPosition = convertTo3DCoords(shape.x, shape.y)
79 | const endPosition = convertTo3DCoords(shape.endX!, shape.endY!)
80 | const lineCurve = new THREE.LineCurve3(startPosition, endPosition)
81 | geometry = new THREE.TubeGeometry(lineCurve, 10, thickness, 8, false)
82 | material = new THREE.MeshPhongMaterial({ color: shape?.strokeColor ?? 0x000000 })
83 | mesh = new THREE.Mesh(geometry, material)
84 | break
85 | }
86 | case 'path': {
87 | if (shape.points && shape.points.length > 1) {
88 | const pathPoints = shape.points.map(point => convertTo3DCoords(point.x, point.y))
89 | const curve = new THREE.CatmullRomCurve3(pathPoints)
90 | geometry = new THREE.TubeGeometry(curve, 64, thickness, 8, false)
91 | material = new THREE.MeshPhongMaterial({ color: shape.strokeColor || 0x000000 })
92 | mesh = new THREE.Mesh(geometry, material)
93 | } else {
94 | return // Invalid path, skip
95 | }
96 | break
97 | }
98 | default:
99 | return // Unknown shape type, skip
100 | }
101 |
102 | scene.add(mesh)
103 | }
104 |
105 | shapes.forEach(create3DShape)
106 |
107 | sceneRef.current = scene
108 |
109 | const animate = () => {
110 | requestAnimationFrame(animate)
111 | controls.update()
112 | renderer.render(scene, camera)
113 | }
114 |
115 | animate()
116 |
117 | return () => {
118 | if (container) {
119 | container.removeChild(renderer.domElement)
120 | }
121 | renderer.dispose()
122 | }
123 | }, [shapes])
124 |
125 | return
126 | }
127 |
128 | export default ThreeJSViewer
129 |
--------------------------------------------------------------------------------
/src/components/ui/Button.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 |
3 | interface ButtonProps {
4 | children: React.ReactNode
5 | onClick: React.MouseEventHandler
6 | className?: string
7 | isActive?: boolean
8 | }
9 |
10 | const Button: React.FC = ({ children, onClick, className = '', isActive = false }) => {
11 | return (
12 |
24 | )
25 | }
26 |
27 | export default Button
28 |
--------------------------------------------------------------------------------
/src/index.css:
--------------------------------------------------------------------------------
1 | :root {
2 | font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
3 | line-height: 1.5;
4 | font-weight: 400;
5 |
6 | color-scheme: light dark;
7 | color: rgba(255, 255, 255, 0.87);
8 | background-color: #242424;
9 |
10 | font-synthesis: none;
11 | text-rendering: optimizeLegibility;
12 | -webkit-font-smoothing: antialiased;
13 | -moz-osx-font-smoothing: grayscale;
14 | }
15 |
16 | a {
17 | font-weight: 500;
18 | color: #646cff;
19 | text-decoration: inherit;
20 | }
21 | a:hover {
22 | color: #535bf2;
23 | }
24 |
25 | body {
26 | margin: 0;
27 | display: flex;
28 | place-items: center;
29 | min-width: 320px;
30 | min-height: 100vh;
31 | }
32 |
33 | h1 {
34 | font-size: 3.2em;
35 | line-height: 1.1;
36 | }
37 |
38 | button {
39 | border-radius: 8px;
40 | border: 1px solid transparent;
41 | padding: 0.6em 1.2em;
42 | font-size: 1em;
43 | font-weight: 500;
44 | font-family: inherit;
45 | background-color: #1a1a1a;
46 | cursor: pointer;
47 | transition: border-color 0.25s;
48 | }
49 | button:hover {
50 | border-color: #646cff;
51 | }
52 | button:focus,
53 | button:focus-visible {
54 | outline: 4px auto -webkit-focus-ring-color;
55 | }
56 |
57 | @media (prefers-color-scheme: light) {
58 | :root {
59 | color: #213547;
60 | background-color: #ffffff;
61 | }
62 | a:hover {
63 | color: #747bff;
64 | }
65 | button {
66 | background-color: #f9f9f9;
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/src/interfaces/index.ts:
--------------------------------------------------------------------------------
1 | import { ShapeType } from '../utils/constants'
2 |
3 | export interface Shape {
4 | id?: number
5 | color?: string
6 | type?: ShapeType
7 | fillColor: string
8 | strokeColor: string
9 | x: number
10 | y: number
11 | points?: { x: number; y: number }[]
12 | width?: number
13 | height?: number
14 | radius?: number
15 | endX?: number
16 | endY?: number
17 | graphics?: any
18 | instance?: any
19 | thickness?: number
20 | }
21 |
22 | export interface SidebarProps {
23 | clearShapes: () => void
24 | createShape: (props: Shape) => void
25 | setShapeType: (type: string) => void
26 | shapes: Shape[]
27 | shapeType: string
28 | toggleViewMode: () => void
29 | is3DMode: boolean
30 | pathThickness: number
31 | setPathThickness: (thickness: number) => void
32 | }
33 |
--------------------------------------------------------------------------------
/src/main.tsx:
--------------------------------------------------------------------------------
1 | import { StrictMode } from 'react'
2 | import { createRoot } from 'react-dom/client'
3 | import App from './App.tsx'
4 | import './index.css'
5 |
6 | createRoot(document.getElementById('root')!).render(
7 |
8 |
9 | ,
10 | )
11 |
--------------------------------------------------------------------------------
/src/utils/color.ts:
--------------------------------------------------------------------------------
1 | export const getRandomColor = () => '#' + Math.floor(Math.random() * 16777215).toString(16)
2 |
--------------------------------------------------------------------------------
/src/utils/constants.ts:
--------------------------------------------------------------------------------
1 | export const shapeList = ['rectangle', 'circle', 'line', 'path']
2 | export type ShapeType = (typeof shapeList)[number]
3 | export const defaultPathThickness = 25
4 |
--------------------------------------------------------------------------------
/src/utils/exportimport.ts:
--------------------------------------------------------------------------------
1 | import { Shape } from '../interfaces'
2 | import { defaultPathThickness } from './constants'
3 |
4 | const getUpdatedShapeData = (shape: Shape) => {
5 | const instance = shape.instance
6 | const updatedShape: Shape = {
7 | type: shape.type,
8 | fillColor: shape.fillColor,
9 | strokeColor: shape.strokeColor,
10 | x: instance ? instance.x : shape.x,
11 | y: instance ? instance.y : shape.y,
12 | width: shape.width,
13 | height: shape.height,
14 | radius: shape.radius,
15 | points: shape.points ? [...shape.points] : undefined,
16 | endX: shape.endX,
17 | endY: shape.endY,
18 | thickness: shape.thickness,
19 | }
20 |
21 | switch (shape.type) {
22 | case 'line':
23 | if (instance) {
24 | const dx = instance.x - shape.x
25 | const dy = instance.y - shape.y
26 | updatedShape.endX = (shape.endX ?? 0) + dx
27 | updatedShape.endY = (shape.endY ?? 0) + dy
28 | updatedShape.thickness ??= shape?.instance?._strokeStyle?.width || defaultPathThickness
29 | }
30 |
31 | break
32 | case 'path':
33 | if (instance && updatedShape.points) {
34 | updatedShape.x = 0
35 | updatedShape.y = 0
36 | updatedShape.thickness ??= shape?.instance?._strokeStyle?.width || defaultPathThickness
37 |
38 | const dx = instance.x - shape.x
39 | const dy = instance.y - shape.y
40 |
41 | updatedShape.points = updatedShape.points.map(point => ({
42 | x: point.x + dx,
43 | y: point.y + dy,
44 | }))
45 | }
46 | break
47 | }
48 |
49 | return updatedShape
50 | }
51 |
52 | export const exportShapes = (shapes: Shape[]) => {
53 | // Only export active shapes (not deleted)
54 | const activeShapes = shapes.filter(shape => !shape.instance?.isDeleted)
55 | const exportedData = activeShapes.map(getUpdatedShapeData)
56 |
57 | try {
58 | const jsonString = JSON.stringify(exportedData, null, 2)
59 | const blob = new Blob([jsonString], { type: 'application/json' })
60 | const url = URL.createObjectURL(blob)
61 | const a = document.createElement('a')
62 | a.href = url
63 | a.download = 'shapes.json'
64 | a.click()
65 | URL.revokeObjectURL(url)
66 | } catch (error) {
67 | console.error('Error during export:', error)
68 | }
69 | }
70 |
71 | export const importShapes = ({
72 | event,
73 | createShape,
74 | clearShapes,
75 | }: Readonly<{ event: React.ChangeEvent; createShape: any; clearShapes: any }>) => {
76 | const file = event.target.files?.[0]
77 | if (file) {
78 | const reader = new FileReader()
79 | reader.onload = e => {
80 | const result = e.target?.result
81 | if (result) {
82 | try {
83 | const importedShapes: Shape[] = JSON.parse(result as string)
84 |
85 | // Clear all existing shapes before importing
86 | clearShapes()
87 |
88 | importedShapes.forEach(shapeProps => {
89 | createShape(shapeProps)
90 | })
91 | } catch (error) {
92 | console.error('Failed to parse JSON:', error)
93 | }
94 | }
95 | }
96 | reader.readAsText(file)
97 | }
98 | }
99 |
--------------------------------------------------------------------------------
/src/utils/index.ts:
--------------------------------------------------------------------------------
1 | export { getRandomColor } from './color'
2 |
--------------------------------------------------------------------------------
/src/utils/keyboard.ts:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vortexory/react_threejs_drawing-app/ee888075d87d4d2333784dcce8d0d918a7b4c985/src/utils/keyboard.ts
--------------------------------------------------------------------------------
/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2020",
4 | "useDefineForClassFields": true,
5 | "lib": ["ES2020", "DOM", "DOM.Iterable"],
6 | "module": "ESNext",
7 | "skipLibCheck": true,
8 |
9 | /* Bundler mode */
10 | "moduleResolution": "bundler",
11 | "allowImportingTsExtensions": true,
12 | "isolatedModules": true,
13 | "moduleDetection": "force",
14 | "noEmit": true,
15 | "jsx": "react-jsx",
16 |
17 | /* Linting */
18 | "strict": true,
19 | "noUnusedLocals": true,
20 | "noUnusedParameters": true,
21 | "noFallthroughCasesInSwitch": true
22 | },
23 | "include": ["src"]
24 | }
25 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "jsx": "react-jsx",
4 | "moduleResolution": "node",
5 | "esModuleInterop": true,
6 | "skipLibCheck": true
7 | },
8 | "files": [],
9 | "references": [
10 | { "path": "./tsconfig.app.json" },
11 | { "path": "./tsconfig.node.json" }
12 | ]
13 | }
14 |
--------------------------------------------------------------------------------
/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2022",
4 | "lib": ["ES2023"],
5 | "module": "ESNext",
6 | "skipLibCheck": true,
7 |
8 | /* Bundler mode */
9 | "moduleResolution": "bundler",
10 | "allowImportingTsExtensions": true,
11 | "isolatedModules": true,
12 | "moduleDetection": "force",
13 | "noEmit": true,
14 |
15 | /* Linting */
16 | "strict": true,
17 | "noUnusedLocals": true,
18 | "noUnusedParameters": true,
19 | "noFallthroughCasesInSwitch": true
20 | },
21 | "include": ["vite.config.ts"]
22 | }
23 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "vite";
2 | import react from "@vitejs/plugin-react";
3 |
4 | // https://vitejs.dev/config/
5 | export default defineConfig({
6 | plugins: [react()],
7 | optimizeDeps: {
8 | include: ["@createjs/easeljs"],
9 | },
10 | });
11 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # This file is generated by running "yarn install" inside your project.
2 | # Manual changes might be lost - proceed with caution!
3 |
4 | __metadata:
5 | version: 8
6 | cacheKey: 10c0
7 |
8 | "@ampproject/remapping@npm:^2.2.0":
9 | version: 2.3.0
10 | resolution: "@ampproject/remapping@npm:2.3.0"
11 | dependencies:
12 | "@jridgewell/gen-mapping": "npm:^0.3.5"
13 | "@jridgewell/trace-mapping": "npm:^0.3.24"
14 | checksum: 10c0/81d63cca5443e0f0c72ae18b544cc28c7c0ec2cea46e7cb888bb0e0f411a1191d0d6b7af798d54e30777d8d1488b2ec0732aac2be342d3d7d3ffd271c6f489ed
15 | languageName: node
16 | linkType: hard
17 |
18 | "@babel/code-frame@npm:^7.25.7":
19 | version: 7.25.7
20 | resolution: "@babel/code-frame@npm:7.25.7"
21 | dependencies:
22 | "@babel/highlight": "npm:^7.25.7"
23 | picocolors: "npm:^1.0.0"
24 | checksum: 10c0/14825c298bdec914caf3d24d1383b6d4cd6b030714686004992f4fc251831ecf432236652896f99d5d341f17170ae9a07b58d8d7b15aa0df8cfa1c5a7d5474bc
25 | languageName: node
26 | linkType: hard
27 |
28 | "@babel/compat-data@npm:^7.25.7":
29 | version: 7.25.8
30 | resolution: "@babel/compat-data@npm:7.25.8"
31 | checksum: 10c0/8b81c17580e5fb4cbb6a3c52079f8c283fc59c0c6bd2fe14cfcf9c44b32d2eaab71b02c5633e2c679f5896f73f8ac4036ba2e67a4c806e8f428e4b11f526d7f4
32 | languageName: node
33 | linkType: hard
34 |
35 | "@babel/core@npm:^7.25.2":
36 | version: 7.25.8
37 | resolution: "@babel/core@npm:7.25.8"
38 | dependencies:
39 | "@ampproject/remapping": "npm:^2.2.0"
40 | "@babel/code-frame": "npm:^7.25.7"
41 | "@babel/generator": "npm:^7.25.7"
42 | "@babel/helper-compilation-targets": "npm:^7.25.7"
43 | "@babel/helper-module-transforms": "npm:^7.25.7"
44 | "@babel/helpers": "npm:^7.25.7"
45 | "@babel/parser": "npm:^7.25.8"
46 | "@babel/template": "npm:^7.25.7"
47 | "@babel/traverse": "npm:^7.25.7"
48 | "@babel/types": "npm:^7.25.8"
49 | convert-source-map: "npm:^2.0.0"
50 | debug: "npm:^4.1.0"
51 | gensync: "npm:^1.0.0-beta.2"
52 | json5: "npm:^2.2.3"
53 | semver: "npm:^6.3.1"
54 | checksum: 10c0/8411ea506e6f7c8a39ab5c1524b00589fa3b087edb47389708f7fe07170929192171734666e3ea10b95a951643a531a6d09eedfe071572c9ea28516646265086
55 | languageName: node
56 | linkType: hard
57 |
58 | "@babel/generator@npm:^7.25.7":
59 | version: 7.25.7
60 | resolution: "@babel/generator@npm:7.25.7"
61 | dependencies:
62 | "@babel/types": "npm:^7.25.7"
63 | "@jridgewell/gen-mapping": "npm:^0.3.5"
64 | "@jridgewell/trace-mapping": "npm:^0.3.25"
65 | jsesc: "npm:^3.0.2"
66 | checksum: 10c0/c03a26c79864d60d04ce36b649c3fa0d6fd7b2bf6a22e22854a0457aa09206508392dd73ee40e7bc8d50b3602f9ff068afa47770cda091d332e7db1ca382ee96
67 | languageName: node
68 | linkType: hard
69 |
70 | "@babel/helper-compilation-targets@npm:^7.25.7":
71 | version: 7.25.7
72 | resolution: "@babel/helper-compilation-targets@npm:7.25.7"
73 | dependencies:
74 | "@babel/compat-data": "npm:^7.25.7"
75 | "@babel/helper-validator-option": "npm:^7.25.7"
76 | browserslist: "npm:^4.24.0"
77 | lru-cache: "npm:^5.1.1"
78 | semver: "npm:^6.3.1"
79 | checksum: 10c0/705be7e5274a3fdade68e3e2cf42e2b600316ab52794e13b91299a16f16c926f15886b6e9d6df20eb943ccc1cdba5a363d4766f8d01e47b8e6f4e01175f5e66c
80 | languageName: node
81 | linkType: hard
82 |
83 | "@babel/helper-module-imports@npm:^7.25.7":
84 | version: 7.25.7
85 | resolution: "@babel/helper-module-imports@npm:7.25.7"
86 | dependencies:
87 | "@babel/traverse": "npm:^7.25.7"
88 | "@babel/types": "npm:^7.25.7"
89 | checksum: 10c0/0fd0c3673835e5bf75558e184bcadc47c1f6dd2fe2016d53ebe1e5a6ae931a44e093015c2f9a6651c1a89f25c76d9246710c2b0b460b95ee069c464f2837fa2c
90 | languageName: node
91 | linkType: hard
92 |
93 | "@babel/helper-module-transforms@npm:^7.25.7":
94 | version: 7.25.7
95 | resolution: "@babel/helper-module-transforms@npm:7.25.7"
96 | dependencies:
97 | "@babel/helper-module-imports": "npm:^7.25.7"
98 | "@babel/helper-simple-access": "npm:^7.25.7"
99 | "@babel/helper-validator-identifier": "npm:^7.25.7"
100 | "@babel/traverse": "npm:^7.25.7"
101 | peerDependencies:
102 | "@babel/core": ^7.0.0
103 | checksum: 10c0/f37fa7d1d4df21690535b278468cbd5faf0133a3080f282000cfa4f3ffc9462a1458f866b04b6a2f2d1eec4691236cba9a867da61270dab3ab19846e62f05090
104 | languageName: node
105 | linkType: hard
106 |
107 | "@babel/helper-plugin-utils@npm:^7.25.7":
108 | version: 7.25.7
109 | resolution: "@babel/helper-plugin-utils@npm:7.25.7"
110 | checksum: 10c0/241f8cf3c5b7700e91cab7cfe5b432a3c710ae3cd5bb96dc554da536a6d25f5b9f000cc0c0917501ceb4f76ba92599ee3beb25e10adaf96be59f8df89a842faf
111 | languageName: node
112 | linkType: hard
113 |
114 | "@babel/helper-simple-access@npm:^7.25.7":
115 | version: 7.25.7
116 | resolution: "@babel/helper-simple-access@npm:7.25.7"
117 | dependencies:
118 | "@babel/traverse": "npm:^7.25.7"
119 | "@babel/types": "npm:^7.25.7"
120 | checksum: 10c0/eed1b499bfb4f613c18debd61517e3de77b6da2727ca025aa05ac81599e0269f1dddb5237db04e8bb598115d015874752e0a7f11ff38672d74a4976097417059
121 | languageName: node
122 | linkType: hard
123 |
124 | "@babel/helper-string-parser@npm:^7.25.7":
125 | version: 7.25.7
126 | resolution: "@babel/helper-string-parser@npm:7.25.7"
127 | checksum: 10c0/73ef2ceb81f8294678a0afe8ab0103729c0370cac2e830e0d5128b03be5f6a2635838af31d391d763e3c5a4460ed96f42fd7c9b552130670d525be665913bc4c
128 | languageName: node
129 | linkType: hard
130 |
131 | "@babel/helper-validator-identifier@npm:^7.25.7":
132 | version: 7.25.7
133 | resolution: "@babel/helper-validator-identifier@npm:7.25.7"
134 | checksum: 10c0/07438e5bf01ab2882a15027fdf39ac3b0ba1b251774a5130917907014684e2f70fef8fd620137ca062c4c4eedc388508d2ea7a3a7d9936a32785f4fe116c68c0
135 | languageName: node
136 | linkType: hard
137 |
138 | "@babel/helper-validator-option@npm:^7.25.7":
139 | version: 7.25.7
140 | resolution: "@babel/helper-validator-option@npm:7.25.7"
141 | checksum: 10c0/12ed418c8e3ed9ed44c8c80d823f4e42d399b5eb2e423adccb975e31a31a008cd3b5d8eab688b31f740caff4a1bb28fe06ea2fa7d635aee34cc0ad6995d50f0a
142 | languageName: node
143 | linkType: hard
144 |
145 | "@babel/helpers@npm:^7.25.7":
146 | version: 7.25.7
147 | resolution: "@babel/helpers@npm:7.25.7"
148 | dependencies:
149 | "@babel/template": "npm:^7.25.7"
150 | "@babel/types": "npm:^7.25.7"
151 | checksum: 10c0/3b3ae9e373bd785414195ef8f59976a69d5a6ebe0ef2165fdcc5165e5c3ee09e0fcee94bb457df2ddb8c0532e4146d0a9b7a96b3497399a4bff4ffe196b30228
152 | languageName: node
153 | linkType: hard
154 |
155 | "@babel/highlight@npm:^7.25.7":
156 | version: 7.25.7
157 | resolution: "@babel/highlight@npm:7.25.7"
158 | dependencies:
159 | "@babel/helper-validator-identifier": "npm:^7.25.7"
160 | chalk: "npm:^2.4.2"
161 | js-tokens: "npm:^4.0.0"
162 | picocolors: "npm:^1.0.0"
163 | checksum: 10c0/1f5894fdb0a0af6101fb2822369b2eeeae32cbeae2ef73ff73fc6a0a4a20471565cd9cfa589f54ed69df66adeca7c57266031ca9134b7bd244d023a488d419aa
164 | languageName: node
165 | linkType: hard
166 |
167 | "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.25.7, @babel/parser@npm:^7.25.8":
168 | version: 7.25.8
169 | resolution: "@babel/parser@npm:7.25.8"
170 | dependencies:
171 | "@babel/types": "npm:^7.25.8"
172 | bin:
173 | parser: ./bin/babel-parser.js
174 | checksum: 10c0/a1a13845b7e8dda4c970791814a4bbf60004969882f18f470e260ad822d2e1f8941948f851e9335895563610f240fa6c98481ce8019865e469502bbf21daafa4
175 | languageName: node
176 | linkType: hard
177 |
178 | "@babel/plugin-transform-react-jsx-self@npm:^7.24.7":
179 | version: 7.25.7
180 | resolution: "@babel/plugin-transform-react-jsx-self@npm:7.25.7"
181 | dependencies:
182 | "@babel/helper-plugin-utils": "npm:^7.25.7"
183 | peerDependencies:
184 | "@babel/core": ^7.0.0-0
185 | checksum: 10c0/51ab0302f808186b671722db40ef25d6f691f969aeaa8f7ef8565c5ca227c8b4dbd1002997478414d3f6984b1fd80a01303e98853fd8bd9606c35bcd72c94065
186 | languageName: node
187 | linkType: hard
188 |
189 | "@babel/plugin-transform-react-jsx-source@npm:^7.24.7":
190 | version: 7.25.7
191 | resolution: "@babel/plugin-transform-react-jsx-source@npm:7.25.7"
192 | dependencies:
193 | "@babel/helper-plugin-utils": "npm:^7.25.7"
194 | peerDependencies:
195 | "@babel/core": ^7.0.0-0
196 | checksum: 10c0/c014de49a466c18ab77bea409542f40409a6a561afc8879ecbeca6a4618161b5aa71ab0825b733c5c87bebe09a19455a79bc1bed86488a84ef712e42e1ed2875
197 | languageName: node
198 | linkType: hard
199 |
200 | "@babel/template@npm:^7.25.7":
201 | version: 7.25.7
202 | resolution: "@babel/template@npm:7.25.7"
203 | dependencies:
204 | "@babel/code-frame": "npm:^7.25.7"
205 | "@babel/parser": "npm:^7.25.7"
206 | "@babel/types": "npm:^7.25.7"
207 | checksum: 10c0/8ae9e36e4330ee83d4832531d1d9bec7dc2ef6a2a8afa1ef1229506fd60667abcb17f306d1c3d7e582251270597022990c845d5d69e7add70a5aea66720decb9
208 | languageName: node
209 | linkType: hard
210 |
211 | "@babel/traverse@npm:^7.25.7":
212 | version: 7.25.7
213 | resolution: "@babel/traverse@npm:7.25.7"
214 | dependencies:
215 | "@babel/code-frame": "npm:^7.25.7"
216 | "@babel/generator": "npm:^7.25.7"
217 | "@babel/parser": "npm:^7.25.7"
218 | "@babel/template": "npm:^7.25.7"
219 | "@babel/types": "npm:^7.25.7"
220 | debug: "npm:^4.3.1"
221 | globals: "npm:^11.1.0"
222 | checksum: 10c0/75d73e52c507a7a7a4c7971d6bf4f8f26fdd094e0d3a0193d77edf6a5efa36fc3db91ec5cc48e8b94e6eb5d5ad21af0a1040e71309172851209415fd105efb1a
223 | languageName: node
224 | linkType: hard
225 |
226 | "@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.7, @babel/types@npm:^7.25.8":
227 | version: 7.25.8
228 | resolution: "@babel/types@npm:7.25.8"
229 | dependencies:
230 | "@babel/helper-string-parser": "npm:^7.25.7"
231 | "@babel/helper-validator-identifier": "npm:^7.25.7"
232 | to-fast-properties: "npm:^2.0.0"
233 | checksum: 10c0/55ca2d6df6426c98db2769ce884ce5e9de83a512ea2dd7bcf56c811984dc14351cacf42932a723630c5afcff2455809323decd645820762182f10b7b5252b59f
234 | languageName: node
235 | linkType: hard
236 |
237 | "@createjs/core@npm:^2.0.0-beta.4":
238 | version: 2.0.0-beta.4
239 | resolution: "@createjs/core@npm:2.0.0-beta.4"
240 | checksum: 10c0/275d76e816ebf76fcefce87443530465dd9c5e3481824977051bd78f8e65b6a194af0ab18800cf5cb1484da8c6b53f9fd22bee03f48743807caa4ae2a4fcd28c
241 | languageName: node
242 | linkType: hard
243 |
244 | "@createjs/easeljs@npm:^2.0.0-beta.4":
245 | version: 2.0.0-beta.4
246 | resolution: "@createjs/easeljs@npm:2.0.0-beta.4"
247 | dependencies:
248 | "@createjs/core": "npm:^2.0.0-beta.4"
249 | "@createjs/tweenjs": "npm:^2.0.0-beta.4"
250 | checksum: 10c0/d0a904b7267a9a781c9d24751707846d7b8be09069e5d46bca629f94a8a54d982473166bf7e43c5973f6e0ce26a45a5c2c8604110ce9ce898b57294fd6a6d408
251 | languageName: node
252 | linkType: hard
253 |
254 | "@createjs/tweenjs@npm:^2.0.0-beta.4":
255 | version: 2.0.0-beta.4
256 | resolution: "@createjs/tweenjs@npm:2.0.0-beta.4"
257 | dependencies:
258 | "@createjs/core": "npm:^2.0.0-beta.4"
259 | checksum: 10c0/6ce5b1364b94ec278479a286988dcfe4dd1ad225ec2f69ef3dc7fed86b2d9d6adf0e2163bdc9972659838a914d7c35f778745193f4fa2f31cefe97dec26ff354
260 | languageName: node
261 | linkType: hard
262 |
263 | "@esbuild/aix-ppc64@npm:0.21.5":
264 | version: 0.21.5
265 | resolution: "@esbuild/aix-ppc64@npm:0.21.5"
266 | conditions: os=aix & cpu=ppc64
267 | languageName: node
268 | linkType: hard
269 |
270 | "@esbuild/android-arm64@npm:0.21.5":
271 | version: 0.21.5
272 | resolution: "@esbuild/android-arm64@npm:0.21.5"
273 | conditions: os=android & cpu=arm64
274 | languageName: node
275 | linkType: hard
276 |
277 | "@esbuild/android-arm@npm:0.21.5":
278 | version: 0.21.5
279 | resolution: "@esbuild/android-arm@npm:0.21.5"
280 | conditions: os=android & cpu=arm
281 | languageName: node
282 | linkType: hard
283 |
284 | "@esbuild/android-x64@npm:0.21.5":
285 | version: 0.21.5
286 | resolution: "@esbuild/android-x64@npm:0.21.5"
287 | conditions: os=android & cpu=x64
288 | languageName: node
289 | linkType: hard
290 |
291 | "@esbuild/darwin-arm64@npm:0.21.5":
292 | version: 0.21.5
293 | resolution: "@esbuild/darwin-arm64@npm:0.21.5"
294 | conditions: os=darwin & cpu=arm64
295 | languageName: node
296 | linkType: hard
297 |
298 | "@esbuild/darwin-x64@npm:0.21.5":
299 | version: 0.21.5
300 | resolution: "@esbuild/darwin-x64@npm:0.21.5"
301 | conditions: os=darwin & cpu=x64
302 | languageName: node
303 | linkType: hard
304 |
305 | "@esbuild/freebsd-arm64@npm:0.21.5":
306 | version: 0.21.5
307 | resolution: "@esbuild/freebsd-arm64@npm:0.21.5"
308 | conditions: os=freebsd & cpu=arm64
309 | languageName: node
310 | linkType: hard
311 |
312 | "@esbuild/freebsd-x64@npm:0.21.5":
313 | version: 0.21.5
314 | resolution: "@esbuild/freebsd-x64@npm:0.21.5"
315 | conditions: os=freebsd & cpu=x64
316 | languageName: node
317 | linkType: hard
318 |
319 | "@esbuild/linux-arm64@npm:0.21.5":
320 | version: 0.21.5
321 | resolution: "@esbuild/linux-arm64@npm:0.21.5"
322 | conditions: os=linux & cpu=arm64
323 | languageName: node
324 | linkType: hard
325 |
326 | "@esbuild/linux-arm@npm:0.21.5":
327 | version: 0.21.5
328 | resolution: "@esbuild/linux-arm@npm:0.21.5"
329 | conditions: os=linux & cpu=arm
330 | languageName: node
331 | linkType: hard
332 |
333 | "@esbuild/linux-ia32@npm:0.21.5":
334 | version: 0.21.5
335 | resolution: "@esbuild/linux-ia32@npm:0.21.5"
336 | conditions: os=linux & cpu=ia32
337 | languageName: node
338 | linkType: hard
339 |
340 | "@esbuild/linux-loong64@npm:0.21.5":
341 | version: 0.21.5
342 | resolution: "@esbuild/linux-loong64@npm:0.21.5"
343 | conditions: os=linux & cpu=loong64
344 | languageName: node
345 | linkType: hard
346 |
347 | "@esbuild/linux-mips64el@npm:0.21.5":
348 | version: 0.21.5
349 | resolution: "@esbuild/linux-mips64el@npm:0.21.5"
350 | conditions: os=linux & cpu=mips64el
351 | languageName: node
352 | linkType: hard
353 |
354 | "@esbuild/linux-ppc64@npm:0.21.5":
355 | version: 0.21.5
356 | resolution: "@esbuild/linux-ppc64@npm:0.21.5"
357 | conditions: os=linux & cpu=ppc64
358 | languageName: node
359 | linkType: hard
360 |
361 | "@esbuild/linux-riscv64@npm:0.21.5":
362 | version: 0.21.5
363 | resolution: "@esbuild/linux-riscv64@npm:0.21.5"
364 | conditions: os=linux & cpu=riscv64
365 | languageName: node
366 | linkType: hard
367 |
368 | "@esbuild/linux-s390x@npm:0.21.5":
369 | version: 0.21.5
370 | resolution: "@esbuild/linux-s390x@npm:0.21.5"
371 | conditions: os=linux & cpu=s390x
372 | languageName: node
373 | linkType: hard
374 |
375 | "@esbuild/linux-x64@npm:0.21.5":
376 | version: 0.21.5
377 | resolution: "@esbuild/linux-x64@npm:0.21.5"
378 | conditions: os=linux & cpu=x64
379 | languageName: node
380 | linkType: hard
381 |
382 | "@esbuild/netbsd-x64@npm:0.21.5":
383 | version: 0.21.5
384 | resolution: "@esbuild/netbsd-x64@npm:0.21.5"
385 | conditions: os=netbsd & cpu=x64
386 | languageName: node
387 | linkType: hard
388 |
389 | "@esbuild/openbsd-x64@npm:0.21.5":
390 | version: 0.21.5
391 | resolution: "@esbuild/openbsd-x64@npm:0.21.5"
392 | conditions: os=openbsd & cpu=x64
393 | languageName: node
394 | linkType: hard
395 |
396 | "@esbuild/sunos-x64@npm:0.21.5":
397 | version: 0.21.5
398 | resolution: "@esbuild/sunos-x64@npm:0.21.5"
399 | conditions: os=sunos & cpu=x64
400 | languageName: node
401 | linkType: hard
402 |
403 | "@esbuild/win32-arm64@npm:0.21.5":
404 | version: 0.21.5
405 | resolution: "@esbuild/win32-arm64@npm:0.21.5"
406 | conditions: os=win32 & cpu=arm64
407 | languageName: node
408 | linkType: hard
409 |
410 | "@esbuild/win32-ia32@npm:0.21.5":
411 | version: 0.21.5
412 | resolution: "@esbuild/win32-ia32@npm:0.21.5"
413 | conditions: os=win32 & cpu=ia32
414 | languageName: node
415 | linkType: hard
416 |
417 | "@esbuild/win32-x64@npm:0.21.5":
418 | version: 0.21.5
419 | resolution: "@esbuild/win32-x64@npm:0.21.5"
420 | conditions: os=win32 & cpu=x64
421 | languageName: node
422 | linkType: hard
423 |
424 | "@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0":
425 | version: 4.4.0
426 | resolution: "@eslint-community/eslint-utils@npm:4.4.0"
427 | dependencies:
428 | eslint-visitor-keys: "npm:^3.3.0"
429 | peerDependencies:
430 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
431 | checksum: 10c0/7e559c4ce59cd3a06b1b5a517b593912e680a7f981ae7affab0d01d709e99cd5647019be8fafa38c350305bc32f1f7d42c7073edde2ab536c745e365f37b607e
432 | languageName: node
433 | linkType: hard
434 |
435 | "@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.11.0":
436 | version: 4.11.1
437 | resolution: "@eslint-community/regexpp@npm:4.11.1"
438 | checksum: 10c0/fbcc1cb65ef5ed5b92faa8dc542e035269065e7ebcc0b39c81a4fe98ad35cfff20b3c8df048641de15a7757e07d69f85e2579c1a5055f993413ba18c055654f8
439 | languageName: node
440 | linkType: hard
441 |
442 | "@eslint/config-array@npm:^0.18.0":
443 | version: 0.18.0
444 | resolution: "@eslint/config-array@npm:0.18.0"
445 | dependencies:
446 | "@eslint/object-schema": "npm:^2.1.4"
447 | debug: "npm:^4.3.1"
448 | minimatch: "npm:^3.1.2"
449 | checksum: 10c0/0234aeb3e6b052ad2402a647d0b4f8a6aa71524bafe1adad0b8db1dfe94d7f5f26d67c80f79bb37ac61361a1d4b14bb8fb475efe501de37263cf55eabb79868f
450 | languageName: node
451 | linkType: hard
452 |
453 | "@eslint/core@npm:^0.6.0":
454 | version: 0.6.0
455 | resolution: "@eslint/core@npm:0.6.0"
456 | checksum: 10c0/fffdb3046ad6420f8cb9204b6466fdd8632a9baeebdaf2a97d458a4eac0e16653ba50d82d61835d7d771f6ced0ec942ec482b2fbccc300e45f2cbf784537f240
457 | languageName: node
458 | linkType: hard
459 |
460 | "@eslint/eslintrc@npm:^3.1.0":
461 | version: 3.1.0
462 | resolution: "@eslint/eslintrc@npm:3.1.0"
463 | dependencies:
464 | ajv: "npm:^6.12.4"
465 | debug: "npm:^4.3.2"
466 | espree: "npm:^10.0.1"
467 | globals: "npm:^14.0.0"
468 | ignore: "npm:^5.2.0"
469 | import-fresh: "npm:^3.2.1"
470 | js-yaml: "npm:^4.1.0"
471 | minimatch: "npm:^3.1.2"
472 | strip-json-comments: "npm:^3.1.1"
473 | checksum: 10c0/5b7332ed781edcfc98caa8dedbbb843abfb9bda2e86538529c843473f580e40c69eb894410eddc6702f487e9ee8f8cfa8df83213d43a8fdb549f23ce06699167
474 | languageName: node
475 | linkType: hard
476 |
477 | "@eslint/js@npm:9.12.0, @eslint/js@npm:^9.11.1":
478 | version: 9.12.0
479 | resolution: "@eslint/js@npm:9.12.0"
480 | checksum: 10c0/325650a59a1ce3d97c69441501ebaf415607248bacbe8c8ca35adc7cb73b524f592f266a75772f496b06f3239e3ee1996722a242148085f0ee5fb3dd7065897c
481 | languageName: node
482 | linkType: hard
483 |
484 | "@eslint/object-schema@npm:^2.1.4":
485 | version: 2.1.4
486 | resolution: "@eslint/object-schema@npm:2.1.4"
487 | checksum: 10c0/e9885532ea70e483fb007bf1275968b05bb15ebaa506d98560c41a41220d33d342e19023d5f2939fed6eb59676c1bda5c847c284b4b55fce521d282004da4dda
488 | languageName: node
489 | linkType: hard
490 |
491 | "@eslint/plugin-kit@npm:^0.2.0":
492 | version: 0.2.0
493 | resolution: "@eslint/plugin-kit@npm:0.2.0"
494 | dependencies:
495 | levn: "npm:^0.4.1"
496 | checksum: 10c0/00b92bc52ad09b0e2bbbb30591c02a895f0bec3376759562590e8a57a13d096b22f8c8773b6bf791a7cf2ea614123b3d592fd006c51ac5fd0edbb90ea6d8760c
497 | languageName: node
498 | linkType: hard
499 |
500 | "@humanfs/core@npm:^0.19.0":
501 | version: 0.19.0
502 | resolution: "@humanfs/core@npm:0.19.0"
503 | checksum: 10c0/f87952d5caba6ae427a620eff783c5d0b6cef0cfc256dec359cdaa636c5f161edb8d8dad576742b3de7f0b2f222b34aad6870248e4b7d2177f013426cbcda232
504 | languageName: node
505 | linkType: hard
506 |
507 | "@humanfs/node@npm:^0.16.5":
508 | version: 0.16.5
509 | resolution: "@humanfs/node@npm:0.16.5"
510 | dependencies:
511 | "@humanfs/core": "npm:^0.19.0"
512 | "@humanwhocodes/retry": "npm:^0.3.0"
513 | checksum: 10c0/41c365ab09e7c9eaeed373d09243195aef616d6745608a36fc3e44506148c28843872f85e69e2bf5f1e992e194286155a1c1cecfcece6a2f43875e37cd243935
514 | languageName: node
515 | linkType: hard
516 |
517 | "@humanwhocodes/module-importer@npm:^1.0.1":
518 | version: 1.0.1
519 | resolution: "@humanwhocodes/module-importer@npm:1.0.1"
520 | checksum: 10c0/909b69c3b86d482c26b3359db16e46a32e0fb30bd306a3c176b8313b9e7313dba0f37f519de6aa8b0a1921349e505f259d19475e123182416a506d7f87e7f529
521 | languageName: node
522 | linkType: hard
523 |
524 | "@humanwhocodes/retry@npm:^0.3.0, @humanwhocodes/retry@npm:^0.3.1":
525 | version: 0.3.1
526 | resolution: "@humanwhocodes/retry@npm:0.3.1"
527 | checksum: 10c0/f0da1282dfb45e8120480b9e2e275e2ac9bbe1cf016d046fdad8e27cc1285c45bb9e711681237944445157b430093412b4446c1ab3fc4bb037861b5904101d3b
528 | languageName: node
529 | linkType: hard
530 |
531 | "@isaacs/cliui@npm:^8.0.2":
532 | version: 8.0.2
533 | resolution: "@isaacs/cliui@npm:8.0.2"
534 | dependencies:
535 | string-width: "npm:^5.1.2"
536 | string-width-cjs: "npm:string-width@^4.2.0"
537 | strip-ansi: "npm:^7.0.1"
538 | strip-ansi-cjs: "npm:strip-ansi@^6.0.1"
539 | wrap-ansi: "npm:^8.1.0"
540 | wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0"
541 | checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e
542 | languageName: node
543 | linkType: hard
544 |
545 | "@jridgewell/gen-mapping@npm:^0.3.5":
546 | version: 0.3.5
547 | resolution: "@jridgewell/gen-mapping@npm:0.3.5"
548 | dependencies:
549 | "@jridgewell/set-array": "npm:^1.2.1"
550 | "@jridgewell/sourcemap-codec": "npm:^1.4.10"
551 | "@jridgewell/trace-mapping": "npm:^0.3.24"
552 | checksum: 10c0/1be4fd4a6b0f41337c4f5fdf4afc3bd19e39c3691924817108b82ffcb9c9e609c273f936932b9fba4b3a298ce2eb06d9bff4eb1cc3bd81c4f4ee1b4917e25feb
553 | languageName: node
554 | linkType: hard
555 |
556 | "@jridgewell/resolve-uri@npm:^3.1.0":
557 | version: 3.1.2
558 | resolution: "@jridgewell/resolve-uri@npm:3.1.2"
559 | checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e
560 | languageName: node
561 | linkType: hard
562 |
563 | "@jridgewell/set-array@npm:^1.2.1":
564 | version: 1.2.1
565 | resolution: "@jridgewell/set-array@npm:1.2.1"
566 | checksum: 10c0/2a5aa7b4b5c3464c895c802d8ae3f3d2b92fcbe84ad12f8d0bfbb1f5ad006717e7577ee1fd2eac00c088abe486c7adb27976f45d2941ff6b0b92b2c3302c60f4
567 | languageName: node
568 | linkType: hard
569 |
570 | "@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14":
571 | version: 1.5.0
572 | resolution: "@jridgewell/sourcemap-codec@npm:1.5.0"
573 | checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18
574 | languageName: node
575 | linkType: hard
576 |
577 | "@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25":
578 | version: 0.3.25
579 | resolution: "@jridgewell/trace-mapping@npm:0.3.25"
580 | dependencies:
581 | "@jridgewell/resolve-uri": "npm:^3.1.0"
582 | "@jridgewell/sourcemap-codec": "npm:^1.4.14"
583 | checksum: 10c0/3d1ce6ebc69df9682a5a8896b414c6537e428a1d68b02fcc8363b04284a8ca0df04d0ee3013132252ab14f2527bc13bea6526a912ecb5658f0e39fd2860b4df4
584 | languageName: node
585 | linkType: hard
586 |
587 | "@nodelib/fs.scandir@npm:2.1.5":
588 | version: 2.1.5
589 | resolution: "@nodelib/fs.scandir@npm:2.1.5"
590 | dependencies:
591 | "@nodelib/fs.stat": "npm:2.0.5"
592 | run-parallel: "npm:^1.1.9"
593 | checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb
594 | languageName: node
595 | linkType: hard
596 |
597 | "@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2":
598 | version: 2.0.5
599 | resolution: "@nodelib/fs.stat@npm:2.0.5"
600 | checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d
601 | languageName: node
602 | linkType: hard
603 |
604 | "@nodelib/fs.walk@npm:^1.2.3":
605 | version: 1.2.8
606 | resolution: "@nodelib/fs.walk@npm:1.2.8"
607 | dependencies:
608 | "@nodelib/fs.scandir": "npm:2.1.5"
609 | fastq: "npm:^1.6.0"
610 | checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1
611 | languageName: node
612 | linkType: hard
613 |
614 | "@npmcli/agent@npm:^2.0.0":
615 | version: 2.2.2
616 | resolution: "@npmcli/agent@npm:2.2.2"
617 | dependencies:
618 | agent-base: "npm:^7.1.0"
619 | http-proxy-agent: "npm:^7.0.0"
620 | https-proxy-agent: "npm:^7.0.1"
621 | lru-cache: "npm:^10.0.1"
622 | socks-proxy-agent: "npm:^8.0.3"
623 | checksum: 10c0/325e0db7b287d4154ecd164c0815c08007abfb07653cc57bceded17bb7fd240998a3cbdbe87d700e30bef494885eccc725ab73b668020811d56623d145b524ae
624 | languageName: node
625 | linkType: hard
626 |
627 | "@npmcli/fs@npm:^3.1.0":
628 | version: 3.1.1
629 | resolution: "@npmcli/fs@npm:3.1.1"
630 | dependencies:
631 | semver: "npm:^7.3.5"
632 | checksum: 10c0/c37a5b4842bfdece3d14dfdb054f73fe15ed2d3da61b34ff76629fb5b1731647c49166fd2a8bf8b56fcfa51200382385ea8909a3cbecdad612310c114d3f6c99
633 | languageName: node
634 | linkType: hard
635 |
636 | "@pkgjs/parseargs@npm:^0.11.0":
637 | version: 0.11.0
638 | resolution: "@pkgjs/parseargs@npm:0.11.0"
639 | checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd
640 | languageName: node
641 | linkType: hard
642 |
643 | "@rollup/rollup-android-arm-eabi@npm:4.24.0":
644 | version: 4.24.0
645 | resolution: "@rollup/rollup-android-arm-eabi@npm:4.24.0"
646 | conditions: os=android & cpu=arm
647 | languageName: node
648 | linkType: hard
649 |
650 | "@rollup/rollup-android-arm64@npm:4.24.0":
651 | version: 4.24.0
652 | resolution: "@rollup/rollup-android-arm64@npm:4.24.0"
653 | conditions: os=android & cpu=arm64
654 | languageName: node
655 | linkType: hard
656 |
657 | "@rollup/rollup-darwin-arm64@npm:4.24.0":
658 | version: 4.24.0
659 | resolution: "@rollup/rollup-darwin-arm64@npm:4.24.0"
660 | conditions: os=darwin & cpu=arm64
661 | languageName: node
662 | linkType: hard
663 |
664 | "@rollup/rollup-darwin-x64@npm:4.24.0":
665 | version: 4.24.0
666 | resolution: "@rollup/rollup-darwin-x64@npm:4.24.0"
667 | conditions: os=darwin & cpu=x64
668 | languageName: node
669 | linkType: hard
670 |
671 | "@rollup/rollup-linux-arm-gnueabihf@npm:4.24.0":
672 | version: 4.24.0
673 | resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.24.0"
674 | conditions: os=linux & cpu=arm & libc=glibc
675 | languageName: node
676 | linkType: hard
677 |
678 | "@rollup/rollup-linux-arm-musleabihf@npm:4.24.0":
679 | version: 4.24.0
680 | resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.24.0"
681 | conditions: os=linux & cpu=arm & libc=musl
682 | languageName: node
683 | linkType: hard
684 |
685 | "@rollup/rollup-linux-arm64-gnu@npm:4.24.0":
686 | version: 4.24.0
687 | resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.24.0"
688 | conditions: os=linux & cpu=arm64 & libc=glibc
689 | languageName: node
690 | linkType: hard
691 |
692 | "@rollup/rollup-linux-arm64-musl@npm:4.24.0":
693 | version: 4.24.0
694 | resolution: "@rollup/rollup-linux-arm64-musl@npm:4.24.0"
695 | conditions: os=linux & cpu=arm64 & libc=musl
696 | languageName: node
697 | linkType: hard
698 |
699 | "@rollup/rollup-linux-powerpc64le-gnu@npm:4.24.0":
700 | version: 4.24.0
701 | resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.24.0"
702 | conditions: os=linux & cpu=ppc64 & libc=glibc
703 | languageName: node
704 | linkType: hard
705 |
706 | "@rollup/rollup-linux-riscv64-gnu@npm:4.24.0":
707 | version: 4.24.0
708 | resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.24.0"
709 | conditions: os=linux & cpu=riscv64 & libc=glibc
710 | languageName: node
711 | linkType: hard
712 |
713 | "@rollup/rollup-linux-s390x-gnu@npm:4.24.0":
714 | version: 4.24.0
715 | resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.24.0"
716 | conditions: os=linux & cpu=s390x & libc=glibc
717 | languageName: node
718 | linkType: hard
719 |
720 | "@rollup/rollup-linux-x64-gnu@npm:4.24.0":
721 | version: 4.24.0
722 | resolution: "@rollup/rollup-linux-x64-gnu@npm:4.24.0"
723 | conditions: os=linux & cpu=x64 & libc=glibc
724 | languageName: node
725 | linkType: hard
726 |
727 | "@rollup/rollup-linux-x64-musl@npm:4.24.0":
728 | version: 4.24.0
729 | resolution: "@rollup/rollup-linux-x64-musl@npm:4.24.0"
730 | conditions: os=linux & cpu=x64 & libc=musl
731 | languageName: node
732 | linkType: hard
733 |
734 | "@rollup/rollup-win32-arm64-msvc@npm:4.24.0":
735 | version: 4.24.0
736 | resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.24.0"
737 | conditions: os=win32 & cpu=arm64
738 | languageName: node
739 | linkType: hard
740 |
741 | "@rollup/rollup-win32-ia32-msvc@npm:4.24.0":
742 | version: 4.24.0
743 | resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.24.0"
744 | conditions: os=win32 & cpu=ia32
745 | languageName: node
746 | linkType: hard
747 |
748 | "@rollup/rollup-win32-x64-msvc@npm:4.24.0":
749 | version: 4.24.0
750 | resolution: "@rollup/rollup-win32-x64-msvc@npm:4.24.0"
751 | conditions: os=win32 & cpu=x64
752 | languageName: node
753 | linkType: hard
754 |
755 | "@tweenjs/tween.js@npm:~23.1.3":
756 | version: 23.1.3
757 | resolution: "@tweenjs/tween.js@npm:23.1.3"
758 | checksum: 10c0/811b30f5f0e7409fb41833401c501c2d6f600eb5f43039dd9067a7f70aff6dad5f5ce1233848e13f0b33a269a160d9c133f344d986cbff4f1f6b72ddecd06c89
759 | languageName: node
760 | linkType: hard
761 |
762 | "@types/babel__core@npm:^7.20.5":
763 | version: 7.20.5
764 | resolution: "@types/babel__core@npm:7.20.5"
765 | dependencies:
766 | "@babel/parser": "npm:^7.20.7"
767 | "@babel/types": "npm:^7.20.7"
768 | "@types/babel__generator": "npm:*"
769 | "@types/babel__template": "npm:*"
770 | "@types/babel__traverse": "npm:*"
771 | checksum: 10c0/bdee3bb69951e833a4b811b8ee9356b69a61ed5b7a23e1a081ec9249769117fa83aaaf023bb06562a038eb5845155ff663e2d5c75dd95c1d5ccc91db012868ff
772 | languageName: node
773 | linkType: hard
774 |
775 | "@types/babel__generator@npm:*":
776 | version: 7.6.8
777 | resolution: "@types/babel__generator@npm:7.6.8"
778 | dependencies:
779 | "@babel/types": "npm:^7.0.0"
780 | checksum: 10c0/f0ba105e7d2296bf367d6e055bb22996886c114261e2cb70bf9359556d0076c7a57239d019dee42bb063f565bade5ccb46009bce2044b2952d964bf9a454d6d2
781 | languageName: node
782 | linkType: hard
783 |
784 | "@types/babel__template@npm:*":
785 | version: 7.4.4
786 | resolution: "@types/babel__template@npm:7.4.4"
787 | dependencies:
788 | "@babel/parser": "npm:^7.1.0"
789 | "@babel/types": "npm:^7.0.0"
790 | checksum: 10c0/cc84f6c6ab1eab1427e90dd2b76ccee65ce940b778a9a67be2c8c39e1994e6f5bbc8efa309f6cea8dc6754994524cd4d2896558df76d92e7a1f46ecffee7112b
791 | languageName: node
792 | linkType: hard
793 |
794 | "@types/babel__traverse@npm:*":
795 | version: 7.20.6
796 | resolution: "@types/babel__traverse@npm:7.20.6"
797 | dependencies:
798 | "@babel/types": "npm:^7.20.7"
799 | checksum: 10c0/7ba7db61a53e28cac955aa99af280d2600f15a8c056619c05b6fc911cbe02c61aa4f2823299221b23ce0cce00b294c0e5f618ec772aa3f247523c2e48cf7b888
800 | languageName: node
801 | linkType: hard
802 |
803 | "@types/createjs-lib@npm:*":
804 | version: 0.0.33
805 | resolution: "@types/createjs-lib@npm:0.0.33"
806 | checksum: 10c0/d76306a6df0d13dfc2a3079ba353d784107489dd7c6a1819c857b8a726a6ef5a31e75efd3646566c99bc155f3e0ef6d5b54c0f4f5e0740d4d0c0b2ed327967ea
807 | languageName: node
808 | linkType: hard
809 |
810 | "@types/easeljs@npm:^1":
811 | version: 1.0.5
812 | resolution: "@types/easeljs@npm:1.0.5"
813 | dependencies:
814 | "@types/createjs-lib": "npm:*"
815 | "@types/tweenjs": "npm:*"
816 | checksum: 10c0/0736b0d90c36cf4c8cdb58a5660454337efae0dab1bd40e43e8eb6f439b00b3bb475ccbcc9788a51fefd7da73ec1d23be26ad3cd4966d42f7121622385f4132b
817 | languageName: node
818 | linkType: hard
819 |
820 | "@types/estree@npm:1.0.6, @types/estree@npm:^1.0.6":
821 | version: 1.0.6
822 | resolution: "@types/estree@npm:1.0.6"
823 | checksum: 10c0/cdfd751f6f9065442cd40957c07fd80361c962869aa853c1c2fd03e101af8b9389d8ff4955a43a6fcfa223dd387a089937f95be0f3eec21ca527039fd2d9859a
824 | languageName: node
825 | linkType: hard
826 |
827 | "@types/json-schema@npm:^7.0.15":
828 | version: 7.0.15
829 | resolution: "@types/json-schema@npm:7.0.15"
830 | checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db
831 | languageName: node
832 | linkType: hard
833 |
834 | "@types/lodash@npm:^4.17.10":
835 | version: 4.17.10
836 | resolution: "@types/lodash@npm:4.17.10"
837 | checksum: 10c0/149b2b9fcc277204393423ed14df28894980c2322ec522fc23f2c6f7edef6ee8d876ee09ed4520f45d128adc0a7a6e618bb0017668349716cd99c6ef54a21621
838 | languageName: node
839 | linkType: hard
840 |
841 | "@types/prop-types@npm:*":
842 | version: 15.7.13
843 | resolution: "@types/prop-types@npm:15.7.13"
844 | checksum: 10c0/1b20fc67281902c6743379960247bc161f3f0406ffc0df8e7058745a85ea1538612109db0406290512947f9632fe9e10e7337bf0ce6338a91d6c948df16a7c61
845 | languageName: node
846 | linkType: hard
847 |
848 | "@types/react-dom@npm:^18.3.1":
849 | version: 18.3.1
850 | resolution: "@types/react-dom@npm:18.3.1"
851 | dependencies:
852 | "@types/react": "npm:*"
853 | checksum: 10c0/8b416551c60bb6bd8ec10e198c957910cfb271bc3922463040b0d57cf4739cdcd24b13224f8d68f10318926e1ec3cd69af0af79f0291b599a992f8c80d47f1eb
854 | languageName: node
855 | linkType: hard
856 |
857 | "@types/react@npm:*, @types/react@npm:^18.3.11":
858 | version: 18.3.11
859 | resolution: "@types/react@npm:18.3.11"
860 | dependencies:
861 | "@types/prop-types": "npm:*"
862 | csstype: "npm:^3.0.2"
863 | checksum: 10c0/ce80512246ca5bda69db85b9f4f1835189334acfb6b2c4f3eda8cabff1ff1a3ea9ce4f3b895bdbc18c94140aa45592331aa3fdeb557f525c1b048de7ce84fc0e
864 | languageName: node
865 | linkType: hard
866 |
867 | "@types/stats.js@npm:*":
868 | version: 0.17.3
869 | resolution: "@types/stats.js@npm:0.17.3"
870 | checksum: 10c0/ccccc992c6dfe08fb85049aa3ce44ca7e428db8da4a3edd20298f1c8b72768021fa8bacdfbe8e9735a7552ee5d57f667c6f557050ad2d9a87b699b3566a6177a
871 | languageName: node
872 | linkType: hard
873 |
874 | "@types/three@npm:^0.169.0":
875 | version: 0.169.0
876 | resolution: "@types/three@npm:0.169.0"
877 | dependencies:
878 | "@tweenjs/tween.js": "npm:~23.1.3"
879 | "@types/stats.js": "npm:*"
880 | "@types/webxr": "npm:*"
881 | "@webgpu/types": "npm:*"
882 | fflate: "npm:~0.8.2"
883 | meshoptimizer: "npm:~0.18.1"
884 | checksum: 10c0/d5f588dcc9df02875d46e5e6ea8ea6dc346cd1e4c0fbe7bcca4c8d9584f82ac39a951788a79fc2ffae3d5e232f99e66046adec8f93fdf51d30561a4a00c52b40
885 | languageName: node
886 | linkType: hard
887 |
888 | "@types/tweenjs@npm:*":
889 | version: 1.0.8
890 | resolution: "@types/tweenjs@npm:1.0.8"
891 | dependencies:
892 | "@types/createjs-lib": "npm:*"
893 | checksum: 10c0/6aa83fe937e8f435a9e9d594286231a83abe0dcfe32a5c47358ca3081123faa9bef75bf9f6d0a4e0194df8e7695d2a6ea6e6655ca8decdbba2e40bd1c5914a25
894 | languageName: node
895 | linkType: hard
896 |
897 | "@types/webxr@npm:*":
898 | version: 0.5.20
899 | resolution: "@types/webxr@npm:0.5.20"
900 | checksum: 10c0/f8bddda79a43bfc31ce92d9c4b6d324390c40382e4981262b6217199636b5b7cb77228dea35ce18a054a2d2e9c19d1c59e3f7b14f450527b72764db786c8c7b9
901 | languageName: node
902 | linkType: hard
903 |
904 | "@typescript-eslint/eslint-plugin@npm:8.9.0":
905 | version: 8.9.0
906 | resolution: "@typescript-eslint/eslint-plugin@npm:8.9.0"
907 | dependencies:
908 | "@eslint-community/regexpp": "npm:^4.10.0"
909 | "@typescript-eslint/scope-manager": "npm:8.9.0"
910 | "@typescript-eslint/type-utils": "npm:8.9.0"
911 | "@typescript-eslint/utils": "npm:8.9.0"
912 | "@typescript-eslint/visitor-keys": "npm:8.9.0"
913 | graphemer: "npm:^1.4.0"
914 | ignore: "npm:^5.3.1"
915 | natural-compare: "npm:^1.4.0"
916 | ts-api-utils: "npm:^1.3.0"
917 | peerDependencies:
918 | "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0
919 | eslint: ^8.57.0 || ^9.0.0
920 | peerDependenciesMeta:
921 | typescript:
922 | optional: true
923 | checksum: 10c0/07f273dc270268980bbf65ea5e0c69d05377e42dbdb2dd3f4a1293a3536c049ddfb548eb9ec6e60394c2361c4a15b62b8246951f83e16a9d16799578a74dc691
924 | languageName: node
925 | linkType: hard
926 |
927 | "@typescript-eslint/parser@npm:8.9.0":
928 | version: 8.9.0
929 | resolution: "@typescript-eslint/parser@npm:8.9.0"
930 | dependencies:
931 | "@typescript-eslint/scope-manager": "npm:8.9.0"
932 | "@typescript-eslint/types": "npm:8.9.0"
933 | "@typescript-eslint/typescript-estree": "npm:8.9.0"
934 | "@typescript-eslint/visitor-keys": "npm:8.9.0"
935 | debug: "npm:^4.3.4"
936 | peerDependencies:
937 | eslint: ^8.57.0 || ^9.0.0
938 | peerDependenciesMeta:
939 | typescript:
940 | optional: true
941 | checksum: 10c0/aca7c838de85fb700ecf5682dc6f8f90a0fbfe09a3044a176c0dc3ffd9c5e7105beb0919a30824f46b02223a74119b4f5a9834a0663328987f066cb359b5dbed
942 | languageName: node
943 | linkType: hard
944 |
945 | "@typescript-eslint/scope-manager@npm:8.9.0":
946 | version: 8.9.0
947 | resolution: "@typescript-eslint/scope-manager@npm:8.9.0"
948 | dependencies:
949 | "@typescript-eslint/types": "npm:8.9.0"
950 | "@typescript-eslint/visitor-keys": "npm:8.9.0"
951 | checksum: 10c0/1fb77a982e3384d8cabd64678ea8f9de328708080ff9324bf24a44da4e8d7b7692ae4820efc3ef36027bf0fd6a061680d3c30ce63d661fb31e18970fca5e86c5
952 | languageName: node
953 | linkType: hard
954 |
955 | "@typescript-eslint/type-utils@npm:8.9.0":
956 | version: 8.9.0
957 | resolution: "@typescript-eslint/type-utils@npm:8.9.0"
958 | dependencies:
959 | "@typescript-eslint/typescript-estree": "npm:8.9.0"
960 | "@typescript-eslint/utils": "npm:8.9.0"
961 | debug: "npm:^4.3.4"
962 | ts-api-utils: "npm:^1.3.0"
963 | peerDependenciesMeta:
964 | typescript:
965 | optional: true
966 | checksum: 10c0/aff06afda9ac7d12f750e76c8f91ed8b56eefd3f3f4fbaa93a64411ec9e0bd2c2972f3407e439320d98062b16f508dce7604b8bb2b803fded9d3148e5ee721b1
967 | languageName: node
968 | linkType: hard
969 |
970 | "@typescript-eslint/types@npm:8.9.0":
971 | version: 8.9.0
972 | resolution: "@typescript-eslint/types@npm:8.9.0"
973 | checksum: 10c0/8d901b7ed2f943624c24f7fa67f7be9d49a92554d54c4f27397c05b329ceff59a9ea246810b53ff36fca08760c14305dd4ce78fbac7ca0474311b0575bf49010
974 | languageName: node
975 | linkType: hard
976 |
977 | "@typescript-eslint/typescript-estree@npm:8.9.0":
978 | version: 8.9.0
979 | resolution: "@typescript-eslint/typescript-estree@npm:8.9.0"
980 | dependencies:
981 | "@typescript-eslint/types": "npm:8.9.0"
982 | "@typescript-eslint/visitor-keys": "npm:8.9.0"
983 | debug: "npm:^4.3.4"
984 | fast-glob: "npm:^3.3.2"
985 | is-glob: "npm:^4.0.3"
986 | minimatch: "npm:^9.0.4"
987 | semver: "npm:^7.6.0"
988 | ts-api-utils: "npm:^1.3.0"
989 | peerDependenciesMeta:
990 | typescript:
991 | optional: true
992 | checksum: 10c0/bb5ec70727f07d1575e95f9d117762636209e1ab073a26c4e873e1e5b4617b000d300a23d294ad81693f7e99abe3e519725452c30b235a253edcd85b6ae052b0
993 | languageName: node
994 | linkType: hard
995 |
996 | "@typescript-eslint/utils@npm:8.9.0":
997 | version: 8.9.0
998 | resolution: "@typescript-eslint/utils@npm:8.9.0"
999 | dependencies:
1000 | "@eslint-community/eslint-utils": "npm:^4.4.0"
1001 | "@typescript-eslint/scope-manager": "npm:8.9.0"
1002 | "@typescript-eslint/types": "npm:8.9.0"
1003 | "@typescript-eslint/typescript-estree": "npm:8.9.0"
1004 | peerDependencies:
1005 | eslint: ^8.57.0 || ^9.0.0
1006 | checksum: 10c0/af13e3d501060bdc5fa04b131b3f9a90604e5c1d4845d1f8bd94b703a3c146a76debfc21fe65a7f3a0459ed6c57cf2aa3f0a052469bb23b6f35ff853fe9495b1
1007 | languageName: node
1008 | linkType: hard
1009 |
1010 | "@typescript-eslint/visitor-keys@npm:8.9.0":
1011 | version: 8.9.0
1012 | resolution: "@typescript-eslint/visitor-keys@npm:8.9.0"
1013 | dependencies:
1014 | "@typescript-eslint/types": "npm:8.9.0"
1015 | eslint-visitor-keys: "npm:^3.4.3"
1016 | checksum: 10c0/e33208b946841f1838d87d64f4ee230f798e68bdce8c181d3ac0abb567f758cb9c4bdccc919d493167869f413ca4c400e7db0f7dd7e8fc84ab6a8344076a7458
1017 | languageName: node
1018 | linkType: hard
1019 |
1020 | "@vitejs/plugin-react@npm:^4.3.2":
1021 | version: 4.3.2
1022 | resolution: "@vitejs/plugin-react@npm:4.3.2"
1023 | dependencies:
1024 | "@babel/core": "npm:^7.25.2"
1025 | "@babel/plugin-transform-react-jsx-self": "npm:^7.24.7"
1026 | "@babel/plugin-transform-react-jsx-source": "npm:^7.24.7"
1027 | "@types/babel__core": "npm:^7.20.5"
1028 | react-refresh: "npm:^0.14.2"
1029 | peerDependencies:
1030 | vite: ^4.2.0 || ^5.0.0
1031 | checksum: 10c0/945f357175bea45031dc98d379e63cd34cd60a51b3dd394b66138696625ac8b55bc913a23481f78bbe15ca558c21ea4699b936abbd8242003d7c0ad51d298727
1032 | languageName: node
1033 | linkType: hard
1034 |
1035 | "@webgpu/types@npm:*":
1036 | version: 0.1.49
1037 | resolution: "@webgpu/types@npm:0.1.49"
1038 | checksum: 10c0/96437fd51e1d45e1d8f1b2d534bcf7bc5d40c05acc22205d3ce30ddc91bb5888b3f33c84459cad226dfe67495114902fb8243225c737c618c495a9a54fbfdcb6
1039 | languageName: node
1040 | linkType: hard
1041 |
1042 | "abbrev@npm:^2.0.0":
1043 | version: 2.0.0
1044 | resolution: "abbrev@npm:2.0.0"
1045 | checksum: 10c0/f742a5a107473946f426c691c08daba61a1d15942616f300b5d32fd735be88fef5cba24201757b6c407fd564555fb48c751cfa33519b2605c8a7aadd22baf372
1046 | languageName: node
1047 | linkType: hard
1048 |
1049 | "acorn-jsx@npm:^5.3.2":
1050 | version: 5.3.2
1051 | resolution: "acorn-jsx@npm:5.3.2"
1052 | peerDependencies:
1053 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
1054 | checksum: 10c0/4c54868fbef3b8d58927d5e33f0a4de35f59012fe7b12cf9dfbb345fb8f46607709e1c4431be869a23fb63c151033d84c4198fa9f79385cec34fcb1dd53974c1
1055 | languageName: node
1056 | linkType: hard
1057 |
1058 | "acorn@npm:^8.12.0":
1059 | version: 8.12.1
1060 | resolution: "acorn@npm:8.12.1"
1061 | bin:
1062 | acorn: bin/acorn
1063 | checksum: 10c0/51fb26cd678f914e13287e886da2d7021f8c2bc0ccc95e03d3e0447ee278dd3b40b9c57dc222acd5881adcf26f3edc40901a4953403232129e3876793cd17386
1064 | languageName: node
1065 | linkType: hard
1066 |
1067 | "agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1":
1068 | version: 7.1.1
1069 | resolution: "agent-base@npm:7.1.1"
1070 | dependencies:
1071 | debug: "npm:^4.3.4"
1072 | checksum: 10c0/e59ce7bed9c63bf071a30cc471f2933862044c97fd9958967bfe22521d7a0f601ce4ed5a8c011799d0c726ca70312142ae193bbebb60f576b52be19d4a363b50
1073 | languageName: node
1074 | linkType: hard
1075 |
1076 | "aggregate-error@npm:^3.0.0":
1077 | version: 3.1.0
1078 | resolution: "aggregate-error@npm:3.1.0"
1079 | dependencies:
1080 | clean-stack: "npm:^2.0.0"
1081 | indent-string: "npm:^4.0.0"
1082 | checksum: 10c0/a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039
1083 | languageName: node
1084 | linkType: hard
1085 |
1086 | "ajv@npm:^6.12.4":
1087 | version: 6.12.6
1088 | resolution: "ajv@npm:6.12.6"
1089 | dependencies:
1090 | fast-deep-equal: "npm:^3.1.1"
1091 | fast-json-stable-stringify: "npm:^2.0.0"
1092 | json-schema-traverse: "npm:^0.4.1"
1093 | uri-js: "npm:^4.2.2"
1094 | checksum: 10c0/41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71
1095 | languageName: node
1096 | linkType: hard
1097 |
1098 | "ansi-regex@npm:^5.0.1":
1099 | version: 5.0.1
1100 | resolution: "ansi-regex@npm:5.0.1"
1101 | checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737
1102 | languageName: node
1103 | linkType: hard
1104 |
1105 | "ansi-regex@npm:^6.0.1":
1106 | version: 6.1.0
1107 | resolution: "ansi-regex@npm:6.1.0"
1108 | checksum: 10c0/a91daeddd54746338478eef88af3439a7edf30f8e23196e2d6ed182da9add559c601266dbef01c2efa46a958ad6f1f8b176799657616c702b5b02e799e7fd8dc
1109 | languageName: node
1110 | linkType: hard
1111 |
1112 | "ansi-styles@npm:^3.2.1":
1113 | version: 3.2.1
1114 | resolution: "ansi-styles@npm:3.2.1"
1115 | dependencies:
1116 | color-convert: "npm:^1.9.0"
1117 | checksum: 10c0/ece5a8ef069fcc5298f67e3f4771a663129abd174ea2dfa87923a2be2abf6cd367ef72ac87942da00ce85bd1d651d4cd8595aebdb1b385889b89b205860e977b
1118 | languageName: node
1119 | linkType: hard
1120 |
1121 | "ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0":
1122 | version: 4.3.0
1123 | resolution: "ansi-styles@npm:4.3.0"
1124 | dependencies:
1125 | color-convert: "npm:^2.0.1"
1126 | checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041
1127 | languageName: node
1128 | linkType: hard
1129 |
1130 | "ansi-styles@npm:^6.1.0":
1131 | version: 6.2.1
1132 | resolution: "ansi-styles@npm:6.2.1"
1133 | checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c
1134 | languageName: node
1135 | linkType: hard
1136 |
1137 | "argparse@npm:^2.0.1":
1138 | version: 2.0.1
1139 | resolution: "argparse@npm:2.0.1"
1140 | checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e
1141 | languageName: node
1142 | linkType: hard
1143 |
1144 | "balanced-match@npm:^1.0.0":
1145 | version: 1.0.2
1146 | resolution: "balanced-match@npm:1.0.2"
1147 | checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee
1148 | languageName: node
1149 | linkType: hard
1150 |
1151 | "brace-expansion@npm:^1.1.7":
1152 | version: 1.1.11
1153 | resolution: "brace-expansion@npm:1.1.11"
1154 | dependencies:
1155 | balanced-match: "npm:^1.0.0"
1156 | concat-map: "npm:0.0.1"
1157 | checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668
1158 | languageName: node
1159 | linkType: hard
1160 |
1161 | "brace-expansion@npm:^2.0.1":
1162 | version: 2.0.1
1163 | resolution: "brace-expansion@npm:2.0.1"
1164 | dependencies:
1165 | balanced-match: "npm:^1.0.0"
1166 | checksum: 10c0/b358f2fe060e2d7a87aa015979ecea07f3c37d4018f8d6deb5bd4c229ad3a0384fe6029bb76cd8be63c81e516ee52d1a0673edbe2023d53a5191732ae3c3e49f
1167 | languageName: node
1168 | linkType: hard
1169 |
1170 | "braces@npm:^3.0.3":
1171 | version: 3.0.3
1172 | resolution: "braces@npm:3.0.3"
1173 | dependencies:
1174 | fill-range: "npm:^7.1.1"
1175 | checksum: 10c0/7c6dfd30c338d2997ba77500539227b9d1f85e388a5f43220865201e407e076783d0881f2d297b9f80951b4c957fcf0b51c1d2d24227631643c3f7c284b0aa04
1176 | languageName: node
1177 | linkType: hard
1178 |
1179 | "browserslist@npm:^4.24.0":
1180 | version: 4.24.0
1181 | resolution: "browserslist@npm:4.24.0"
1182 | dependencies:
1183 | caniuse-lite: "npm:^1.0.30001663"
1184 | electron-to-chromium: "npm:^1.5.28"
1185 | node-releases: "npm:^2.0.18"
1186 | update-browserslist-db: "npm:^1.1.0"
1187 | bin:
1188 | browserslist: cli.js
1189 | checksum: 10c0/95e76ad522753c4c470427f6e3c8a4bb5478ff448841e22b3d3e53f89ecaf17b6984666d6c7e715c370f1e7fa0cf684f42e34e554236a8b2fab38ea76b9e4c52
1190 | languageName: node
1191 | linkType: hard
1192 |
1193 | "cacache@npm:^18.0.0":
1194 | version: 18.0.4
1195 | resolution: "cacache@npm:18.0.4"
1196 | dependencies:
1197 | "@npmcli/fs": "npm:^3.1.0"
1198 | fs-minipass: "npm:^3.0.0"
1199 | glob: "npm:^10.2.2"
1200 | lru-cache: "npm:^10.0.1"
1201 | minipass: "npm:^7.0.3"
1202 | minipass-collect: "npm:^2.0.1"
1203 | minipass-flush: "npm:^1.0.5"
1204 | minipass-pipeline: "npm:^1.2.4"
1205 | p-map: "npm:^4.0.0"
1206 | ssri: "npm:^10.0.0"
1207 | tar: "npm:^6.1.11"
1208 | unique-filename: "npm:^3.0.0"
1209 | checksum: 10c0/6c055bafed9de4f3dcc64ac3dc7dd24e863210902b7c470eb9ce55a806309b3efff78033e3d8b4f7dcc5d467f2db43c6a2857aaaf26f0094b8a351d44c42179f
1210 | languageName: node
1211 | linkType: hard
1212 |
1213 | "callsites@npm:^3.0.0":
1214 | version: 3.1.0
1215 | resolution: "callsites@npm:3.1.0"
1216 | checksum: 10c0/fff92277400eb06c3079f9e74f3af120db9f8ea03bad0e84d9aede54bbe2d44a56cccb5f6cf12211f93f52306df87077ecec5b712794c5a9b5dac6d615a3f301
1217 | languageName: node
1218 | linkType: hard
1219 |
1220 | "caniuse-lite@npm:^1.0.30001663":
1221 | version: 1.0.30001668
1222 | resolution: "caniuse-lite@npm:1.0.30001668"
1223 | checksum: 10c0/247b3200aeec55038f3a11f3e6ab66f656c54d30df7b01d8d447efaba9af96ad3e17128da2ddd42ddc9cb6c286bac65b634a20955b3cc6619be7ca4601fddc8e
1224 | languageName: node
1225 | linkType: hard
1226 |
1227 | "chalk@npm:^2.4.2":
1228 | version: 2.4.2
1229 | resolution: "chalk@npm:2.4.2"
1230 | dependencies:
1231 | ansi-styles: "npm:^3.2.1"
1232 | escape-string-regexp: "npm:^1.0.5"
1233 | supports-color: "npm:^5.3.0"
1234 | checksum: 10c0/e6543f02ec877732e3a2d1c3c3323ddb4d39fbab687c23f526e25bd4c6a9bf3b83a696e8c769d078e04e5754921648f7821b2a2acfd16c550435fd630026e073
1235 | languageName: node
1236 | linkType: hard
1237 |
1238 | "chalk@npm:^4.0.0":
1239 | version: 4.1.2
1240 | resolution: "chalk@npm:4.1.2"
1241 | dependencies:
1242 | ansi-styles: "npm:^4.1.0"
1243 | supports-color: "npm:^7.1.0"
1244 | checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880
1245 | languageName: node
1246 | linkType: hard
1247 |
1248 | "chownr@npm:^2.0.0":
1249 | version: 2.0.0
1250 | resolution: "chownr@npm:2.0.0"
1251 | checksum: 10c0/594754e1303672171cc04e50f6c398ae16128eb134a88f801bf5354fd96f205320f23536a045d9abd8b51024a149696e51231565891d4efdab8846021ecf88e6
1252 | languageName: node
1253 | linkType: hard
1254 |
1255 | "clean-stack@npm:^2.0.0":
1256 | version: 2.2.0
1257 | resolution: "clean-stack@npm:2.2.0"
1258 | checksum: 10c0/1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1
1259 | languageName: node
1260 | linkType: hard
1261 |
1262 | "color-convert@npm:^1.9.0":
1263 | version: 1.9.3
1264 | resolution: "color-convert@npm:1.9.3"
1265 | dependencies:
1266 | color-name: "npm:1.1.3"
1267 | checksum: 10c0/5ad3c534949a8c68fca8fbc6f09068f435f0ad290ab8b2f76841b9e6af7e0bb57b98cb05b0e19fe33f5d91e5a8611ad457e5f69e0a484caad1f7487fd0e8253c
1268 | languageName: node
1269 | linkType: hard
1270 |
1271 | "color-convert@npm:^2.0.1":
1272 | version: 2.0.1
1273 | resolution: "color-convert@npm:2.0.1"
1274 | dependencies:
1275 | color-name: "npm:~1.1.4"
1276 | checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7
1277 | languageName: node
1278 | linkType: hard
1279 |
1280 | "color-name@npm:1.1.3":
1281 | version: 1.1.3
1282 | resolution: "color-name@npm:1.1.3"
1283 | checksum: 10c0/566a3d42cca25b9b3cd5528cd7754b8e89c0eb646b7f214e8e2eaddb69994ac5f0557d9c175eb5d8f0ad73531140d9c47525085ee752a91a2ab15ab459caf6d6
1284 | languageName: node
1285 | linkType: hard
1286 |
1287 | "color-name@npm:~1.1.4":
1288 | version: 1.1.4
1289 | resolution: "color-name@npm:1.1.4"
1290 | checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95
1291 | languageName: node
1292 | linkType: hard
1293 |
1294 | "concat-map@npm:0.0.1":
1295 | version: 0.0.1
1296 | resolution: "concat-map@npm:0.0.1"
1297 | checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f
1298 | languageName: node
1299 | linkType: hard
1300 |
1301 | "convert-source-map@npm:^2.0.0":
1302 | version: 2.0.0
1303 | resolution: "convert-source-map@npm:2.0.0"
1304 | checksum: 10c0/8f2f7a27a1a011cc6cc88cc4da2d7d0cfa5ee0369508baae3d98c260bb3ac520691464e5bbe4ae7cdf09860c1d69ecc6f70c63c6e7c7f7e3f18ec08484dc7d9b
1305 | languageName: node
1306 | linkType: hard
1307 |
1308 | "cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2":
1309 | version: 7.0.3
1310 | resolution: "cross-spawn@npm:7.0.3"
1311 | dependencies:
1312 | path-key: "npm:^3.1.0"
1313 | shebang-command: "npm:^2.0.0"
1314 | which: "npm:^2.0.1"
1315 | checksum: 10c0/5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750
1316 | languageName: node
1317 | linkType: hard
1318 |
1319 | "csstype@npm:^3.0.2":
1320 | version: 3.1.3
1321 | resolution: "csstype@npm:3.1.3"
1322 | checksum: 10c0/80c089d6f7e0c5b2bd83cf0539ab41474198579584fa10d86d0cafe0642202343cbc119e076a0b1aece191989477081415d66c9fefbf3c957fc2fc4b7009f248
1323 | languageName: node
1324 | linkType: hard
1325 |
1326 | "debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4":
1327 | version: 4.3.7
1328 | resolution: "debug@npm:4.3.7"
1329 | dependencies:
1330 | ms: "npm:^2.1.3"
1331 | peerDependenciesMeta:
1332 | supports-color:
1333 | optional: true
1334 | checksum: 10c0/1471db19c3b06d485a622d62f65947a19a23fbd0dd73f7fd3eafb697eec5360cde447fb075919987899b1a2096e85d35d4eb5a4de09a57600ac9cf7e6c8e768b
1335 | languageName: node
1336 | linkType: hard
1337 |
1338 | "deep-is@npm:^0.1.3":
1339 | version: 0.1.4
1340 | resolution: "deep-is@npm:0.1.4"
1341 | checksum: 10c0/7f0ee496e0dff14a573dc6127f14c95061b448b87b995fc96c017ce0a1e66af1675e73f1d6064407975bc4ea6ab679497a29fff7b5b9c4e99cb10797c1ad0b4c
1342 | languageName: node
1343 | linkType: hard
1344 |
1345 | "eastasianwidth@npm:^0.2.0":
1346 | version: 0.2.0
1347 | resolution: "eastasianwidth@npm:0.2.0"
1348 | checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39
1349 | languageName: node
1350 | linkType: hard
1351 |
1352 | "electron-to-chromium@npm:^1.5.28":
1353 | version: 1.5.38
1354 | resolution: "electron-to-chromium@npm:1.5.38"
1355 | checksum: 10c0/f44715632fce33ac2444e5f0ac54684640b95bbfcdde47153e727645c33f5d18110d5af5348120a8345707c6c219d6109573b6acba56d819ca607010b75931ef
1356 | languageName: node
1357 | linkType: hard
1358 |
1359 | "emoji-regex@npm:^8.0.0":
1360 | version: 8.0.0
1361 | resolution: "emoji-regex@npm:8.0.0"
1362 | checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010
1363 | languageName: node
1364 | linkType: hard
1365 |
1366 | "emoji-regex@npm:^9.2.2":
1367 | version: 9.2.2
1368 | resolution: "emoji-regex@npm:9.2.2"
1369 | checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639
1370 | languageName: node
1371 | linkType: hard
1372 |
1373 | "encoding@npm:^0.1.13":
1374 | version: 0.1.13
1375 | resolution: "encoding@npm:0.1.13"
1376 | dependencies:
1377 | iconv-lite: "npm:^0.6.2"
1378 | checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039
1379 | languageName: node
1380 | linkType: hard
1381 |
1382 | "env-paths@npm:^2.2.0":
1383 | version: 2.2.1
1384 | resolution: "env-paths@npm:2.2.1"
1385 | checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4
1386 | languageName: node
1387 | linkType: hard
1388 |
1389 | "err-code@npm:^2.0.2":
1390 | version: 2.0.3
1391 | resolution: "err-code@npm:2.0.3"
1392 | checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66
1393 | languageName: node
1394 | linkType: hard
1395 |
1396 | "esbuild@npm:^0.21.3":
1397 | version: 0.21.5
1398 | resolution: "esbuild@npm:0.21.5"
1399 | dependencies:
1400 | "@esbuild/aix-ppc64": "npm:0.21.5"
1401 | "@esbuild/android-arm": "npm:0.21.5"
1402 | "@esbuild/android-arm64": "npm:0.21.5"
1403 | "@esbuild/android-x64": "npm:0.21.5"
1404 | "@esbuild/darwin-arm64": "npm:0.21.5"
1405 | "@esbuild/darwin-x64": "npm:0.21.5"
1406 | "@esbuild/freebsd-arm64": "npm:0.21.5"
1407 | "@esbuild/freebsd-x64": "npm:0.21.5"
1408 | "@esbuild/linux-arm": "npm:0.21.5"
1409 | "@esbuild/linux-arm64": "npm:0.21.5"
1410 | "@esbuild/linux-ia32": "npm:0.21.5"
1411 | "@esbuild/linux-loong64": "npm:0.21.5"
1412 | "@esbuild/linux-mips64el": "npm:0.21.5"
1413 | "@esbuild/linux-ppc64": "npm:0.21.5"
1414 | "@esbuild/linux-riscv64": "npm:0.21.5"
1415 | "@esbuild/linux-s390x": "npm:0.21.5"
1416 | "@esbuild/linux-x64": "npm:0.21.5"
1417 | "@esbuild/netbsd-x64": "npm:0.21.5"
1418 | "@esbuild/openbsd-x64": "npm:0.21.5"
1419 | "@esbuild/sunos-x64": "npm:0.21.5"
1420 | "@esbuild/win32-arm64": "npm:0.21.5"
1421 | "@esbuild/win32-ia32": "npm:0.21.5"
1422 | "@esbuild/win32-x64": "npm:0.21.5"
1423 | dependenciesMeta:
1424 | "@esbuild/aix-ppc64":
1425 | optional: true
1426 | "@esbuild/android-arm":
1427 | optional: true
1428 | "@esbuild/android-arm64":
1429 | optional: true
1430 | "@esbuild/android-x64":
1431 | optional: true
1432 | "@esbuild/darwin-arm64":
1433 | optional: true
1434 | "@esbuild/darwin-x64":
1435 | optional: true
1436 | "@esbuild/freebsd-arm64":
1437 | optional: true
1438 | "@esbuild/freebsd-x64":
1439 | optional: true
1440 | "@esbuild/linux-arm":
1441 | optional: true
1442 | "@esbuild/linux-arm64":
1443 | optional: true
1444 | "@esbuild/linux-ia32":
1445 | optional: true
1446 | "@esbuild/linux-loong64":
1447 | optional: true
1448 | "@esbuild/linux-mips64el":
1449 | optional: true
1450 | "@esbuild/linux-ppc64":
1451 | optional: true
1452 | "@esbuild/linux-riscv64":
1453 | optional: true
1454 | "@esbuild/linux-s390x":
1455 | optional: true
1456 | "@esbuild/linux-x64":
1457 | optional: true
1458 | "@esbuild/netbsd-x64":
1459 | optional: true
1460 | "@esbuild/openbsd-x64":
1461 | optional: true
1462 | "@esbuild/sunos-x64":
1463 | optional: true
1464 | "@esbuild/win32-arm64":
1465 | optional: true
1466 | "@esbuild/win32-ia32":
1467 | optional: true
1468 | "@esbuild/win32-x64":
1469 | optional: true
1470 | bin:
1471 | esbuild: bin/esbuild
1472 | checksum: 10c0/fa08508adf683c3f399e8a014a6382a6b65542213431e26206c0720e536b31c09b50798747c2a105a4bbba1d9767b8d3615a74c2f7bf1ddf6d836cd11eb672de
1473 | languageName: node
1474 | linkType: hard
1475 |
1476 | "escalade@npm:^3.2.0":
1477 | version: 3.2.0
1478 | resolution: "escalade@npm:3.2.0"
1479 | checksum: 10c0/ced4dd3a78e15897ed3be74e635110bbf3b08877b0a41be50dcb325ee0e0b5f65fc2d50e9845194d7c4633f327e2e1c6cce00a71b617c5673df0374201d67f65
1480 | languageName: node
1481 | linkType: hard
1482 |
1483 | "escape-string-regexp@npm:^1.0.5":
1484 | version: 1.0.5
1485 | resolution: "escape-string-regexp@npm:1.0.5"
1486 | checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371
1487 | languageName: node
1488 | linkType: hard
1489 |
1490 | "escape-string-regexp@npm:^4.0.0":
1491 | version: 4.0.0
1492 | resolution: "escape-string-regexp@npm:4.0.0"
1493 | checksum: 10c0/9497d4dd307d845bd7f75180d8188bb17ea8c151c1edbf6b6717c100e104d629dc2dfb687686181b0f4b7d732c7dfdc4d5e7a8ff72de1b0ca283a75bbb3a9cd9
1494 | languageName: node
1495 | linkType: hard
1496 |
1497 | "eslint-plugin-react-hooks@npm:^5.1.0-rc.0":
1498 | version: 5.1.0-rc-fb9a90fa48-20240614
1499 | resolution: "eslint-plugin-react-hooks@npm:5.1.0-rc-fb9a90fa48-20240614"
1500 | peerDependencies:
1501 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
1502 | checksum: 10c0/e27a8073a19d8411cb1cbbd2a935d0f5ec824efb7fd17d907df5c71df47ace9faa9c08c0e8f6db627b62db202a146ff111e6b3067e31773af0b41d15a34ba956
1503 | languageName: node
1504 | linkType: hard
1505 |
1506 | "eslint-plugin-react-refresh@npm:^0.4.12":
1507 | version: 0.4.12
1508 | resolution: "eslint-plugin-react-refresh@npm:0.4.12"
1509 | peerDependencies:
1510 | eslint: ">=7"
1511 | checksum: 10c0/33dd82450f7c5fa884c5c84ffaf9d9a8b363bc155432807dc09904c7db6ba724888fac4562b058268259aa7c9270b622ef411488011b3469a2add275ed5c2273
1512 | languageName: node
1513 | linkType: hard
1514 |
1515 | "eslint-scope@npm:^8.1.0":
1516 | version: 8.1.0
1517 | resolution: "eslint-scope@npm:8.1.0"
1518 | dependencies:
1519 | esrecurse: "npm:^4.3.0"
1520 | estraverse: "npm:^5.2.0"
1521 | checksum: 10c0/ae1df7accae9ea90465c2ded70f7064d6d1f2962ef4cc87398855c4f0b3a5ab01063e0258d954bb94b184f6759febe04c3118195cab5c51978a7229948ba2875
1522 | languageName: node
1523 | linkType: hard
1524 |
1525 | "eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.3":
1526 | version: 3.4.3
1527 | resolution: "eslint-visitor-keys@npm:3.4.3"
1528 | checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820
1529 | languageName: node
1530 | linkType: hard
1531 |
1532 | "eslint-visitor-keys@npm:^4.1.0":
1533 | version: 4.1.0
1534 | resolution: "eslint-visitor-keys@npm:4.1.0"
1535 | checksum: 10c0/5483ef114c93a136aa234140d7aa3bd259488dae866d35cb0d0b52e6a158f614760a57256ac8d549acc590a87042cb40f6951815caa821e55dc4fd6ef4c722eb
1536 | languageName: node
1537 | linkType: hard
1538 |
1539 | "eslint@npm:^9.11.1":
1540 | version: 9.12.0
1541 | resolution: "eslint@npm:9.12.0"
1542 | dependencies:
1543 | "@eslint-community/eslint-utils": "npm:^4.2.0"
1544 | "@eslint-community/regexpp": "npm:^4.11.0"
1545 | "@eslint/config-array": "npm:^0.18.0"
1546 | "@eslint/core": "npm:^0.6.0"
1547 | "@eslint/eslintrc": "npm:^3.1.0"
1548 | "@eslint/js": "npm:9.12.0"
1549 | "@eslint/plugin-kit": "npm:^0.2.0"
1550 | "@humanfs/node": "npm:^0.16.5"
1551 | "@humanwhocodes/module-importer": "npm:^1.0.1"
1552 | "@humanwhocodes/retry": "npm:^0.3.1"
1553 | "@types/estree": "npm:^1.0.6"
1554 | "@types/json-schema": "npm:^7.0.15"
1555 | ajv: "npm:^6.12.4"
1556 | chalk: "npm:^4.0.0"
1557 | cross-spawn: "npm:^7.0.2"
1558 | debug: "npm:^4.3.2"
1559 | escape-string-regexp: "npm:^4.0.0"
1560 | eslint-scope: "npm:^8.1.0"
1561 | eslint-visitor-keys: "npm:^4.1.0"
1562 | espree: "npm:^10.2.0"
1563 | esquery: "npm:^1.5.0"
1564 | esutils: "npm:^2.0.2"
1565 | fast-deep-equal: "npm:^3.1.3"
1566 | file-entry-cache: "npm:^8.0.0"
1567 | find-up: "npm:^5.0.0"
1568 | glob-parent: "npm:^6.0.2"
1569 | ignore: "npm:^5.2.0"
1570 | imurmurhash: "npm:^0.1.4"
1571 | is-glob: "npm:^4.0.0"
1572 | json-stable-stringify-without-jsonify: "npm:^1.0.1"
1573 | lodash.merge: "npm:^4.6.2"
1574 | minimatch: "npm:^3.1.2"
1575 | natural-compare: "npm:^1.4.0"
1576 | optionator: "npm:^0.9.3"
1577 | text-table: "npm:^0.2.0"
1578 | peerDependencies:
1579 | jiti: "*"
1580 | peerDependenciesMeta:
1581 | jiti:
1582 | optional: true
1583 | bin:
1584 | eslint: bin/eslint.js
1585 | checksum: 10c0/67cf6ea3ea28dcda7dd54aac33e2d4028eb36991d13defb0d2339c3eaa877d5dddd12cd4416ddc701a68bcde9e0bb9e65524c2e4e9914992c724f5b51e949dda
1586 | languageName: node
1587 | linkType: hard
1588 |
1589 | "espree@npm:^10.0.1, espree@npm:^10.2.0":
1590 | version: 10.2.0
1591 | resolution: "espree@npm:10.2.0"
1592 | dependencies:
1593 | acorn: "npm:^8.12.0"
1594 | acorn-jsx: "npm:^5.3.2"
1595 | eslint-visitor-keys: "npm:^4.1.0"
1596 | checksum: 10c0/2b6bfb683e7e5ab2e9513949879140898d80a2d9867ea1db6ff5b0256df81722633b60a7523a7c614f05a39aeea159dd09ad2a0e90c0e218732fc016f9086215
1597 | languageName: node
1598 | linkType: hard
1599 |
1600 | "esquery@npm:^1.5.0":
1601 | version: 1.6.0
1602 | resolution: "esquery@npm:1.6.0"
1603 | dependencies:
1604 | estraverse: "npm:^5.1.0"
1605 | checksum: 10c0/cb9065ec605f9da7a76ca6dadb0619dfb611e37a81e318732977d90fab50a256b95fee2d925fba7c2f3f0523aa16f91587246693bc09bc34d5a59575fe6e93d2
1606 | languageName: node
1607 | linkType: hard
1608 |
1609 | "esrecurse@npm:^4.3.0":
1610 | version: 4.3.0
1611 | resolution: "esrecurse@npm:4.3.0"
1612 | dependencies:
1613 | estraverse: "npm:^5.2.0"
1614 | checksum: 10c0/81a37116d1408ded88ada45b9fb16dbd26fba3aadc369ce50fcaf82a0bac12772ebd7b24cd7b91fc66786bf2c1ac7b5f196bc990a473efff972f5cb338877cf5
1615 | languageName: node
1616 | linkType: hard
1617 |
1618 | "estraverse@npm:^5.1.0, estraverse@npm:^5.2.0":
1619 | version: 5.3.0
1620 | resolution: "estraverse@npm:5.3.0"
1621 | checksum: 10c0/1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107
1622 | languageName: node
1623 | linkType: hard
1624 |
1625 | "esutils@npm:^2.0.2":
1626 | version: 2.0.3
1627 | resolution: "esutils@npm:2.0.3"
1628 | checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7
1629 | languageName: node
1630 | linkType: hard
1631 |
1632 | "exponential-backoff@npm:^3.1.1":
1633 | version: 3.1.1
1634 | resolution: "exponential-backoff@npm:3.1.1"
1635 | checksum: 10c0/160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579
1636 | languageName: node
1637 | linkType: hard
1638 |
1639 | "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3":
1640 | version: 3.1.3
1641 | resolution: "fast-deep-equal@npm:3.1.3"
1642 | checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0
1643 | languageName: node
1644 | linkType: hard
1645 |
1646 | "fast-glob@npm:^3.3.2":
1647 | version: 3.3.2
1648 | resolution: "fast-glob@npm:3.3.2"
1649 | dependencies:
1650 | "@nodelib/fs.stat": "npm:^2.0.2"
1651 | "@nodelib/fs.walk": "npm:^1.2.3"
1652 | glob-parent: "npm:^5.1.2"
1653 | merge2: "npm:^1.3.0"
1654 | micromatch: "npm:^4.0.4"
1655 | checksum: 10c0/42baad7b9cd40b63e42039132bde27ca2cb3a4950d0a0f9abe4639ea1aa9d3e3b40f98b1fe31cbc0cc17b664c9ea7447d911a152fa34ec5b72977b125a6fc845
1656 | languageName: node
1657 | linkType: hard
1658 |
1659 | "fast-json-stable-stringify@npm:^2.0.0":
1660 | version: 2.1.0
1661 | resolution: "fast-json-stable-stringify@npm:2.1.0"
1662 | checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b
1663 | languageName: node
1664 | linkType: hard
1665 |
1666 | "fast-levenshtein@npm:^2.0.6":
1667 | version: 2.0.6
1668 | resolution: "fast-levenshtein@npm:2.0.6"
1669 | checksum: 10c0/111972b37338bcb88f7d9e2c5907862c280ebf4234433b95bc611e518d192ccb2d38119c4ac86e26b668d75f7f3894f4ff5c4982899afced7ca78633b08287c4
1670 | languageName: node
1671 | linkType: hard
1672 |
1673 | "fastq@npm:^1.6.0":
1674 | version: 1.17.1
1675 | resolution: "fastq@npm:1.17.1"
1676 | dependencies:
1677 | reusify: "npm:^1.0.4"
1678 | checksum: 10c0/1095f16cea45fb3beff558bb3afa74ca7a9250f5a670b65db7ed585f92b4b48381445cd328b3d87323da81e43232b5d5978a8201bde84e0cd514310f1ea6da34
1679 | languageName: node
1680 | linkType: hard
1681 |
1682 | "fflate@npm:~0.8.2":
1683 | version: 0.8.2
1684 | resolution: "fflate@npm:0.8.2"
1685 | checksum: 10c0/03448d630c0a583abea594835a9fdb2aaf7d67787055a761515bf4ed862913cfd693b4c4ffd5c3f3b355a70cf1e19033e9ae5aedcca103188aaff91b8bd6e293
1686 | languageName: node
1687 | linkType: hard
1688 |
1689 | "file-entry-cache@npm:^8.0.0":
1690 | version: 8.0.0
1691 | resolution: "file-entry-cache@npm:8.0.0"
1692 | dependencies:
1693 | flat-cache: "npm:^4.0.0"
1694 | checksum: 10c0/9e2b5938b1cd9b6d7e3612bdc533afd4ac17b2fc646569e9a8abbf2eb48e5eb8e316bc38815a3ef6a1b456f4107f0d0f055a614ca613e75db6bf9ff4d72c1638
1695 | languageName: node
1696 | linkType: hard
1697 |
1698 | "fill-range@npm:^7.1.1":
1699 | version: 7.1.1
1700 | resolution: "fill-range@npm:7.1.1"
1701 | dependencies:
1702 | to-regex-range: "npm:^5.0.1"
1703 | checksum: 10c0/b75b691bbe065472f38824f694c2f7449d7f5004aa950426a2c28f0306c60db9b880c0b0e4ed819997ffb882d1da02cfcfc819bddc94d71627f5269682edf018
1704 | languageName: node
1705 | linkType: hard
1706 |
1707 | "find-up@npm:^5.0.0":
1708 | version: 5.0.0
1709 | resolution: "find-up@npm:5.0.0"
1710 | dependencies:
1711 | locate-path: "npm:^6.0.0"
1712 | path-exists: "npm:^4.0.0"
1713 | checksum: 10c0/062c5a83a9c02f53cdd6d175a37ecf8f87ea5bbff1fdfb828f04bfa021441bc7583e8ebc0872a4c1baab96221fb8a8a275a19809fb93fbc40bd69ec35634069a
1714 | languageName: node
1715 | linkType: hard
1716 |
1717 | "flat-cache@npm:^4.0.0":
1718 | version: 4.0.1
1719 | resolution: "flat-cache@npm:4.0.1"
1720 | dependencies:
1721 | flatted: "npm:^3.2.9"
1722 | keyv: "npm:^4.5.4"
1723 | checksum: 10c0/2c59d93e9faa2523e4fda6b4ada749bed432cfa28c8e251f33b25795e426a1c6dbada777afb1f74fcfff33934fdbdea921ee738fcc33e71adc9d6eca984a1cfc
1724 | languageName: node
1725 | linkType: hard
1726 |
1727 | "flatted@npm:^3.2.9":
1728 | version: 3.3.1
1729 | resolution: "flatted@npm:3.3.1"
1730 | checksum: 10c0/324166b125ee07d4ca9bcf3a5f98d915d5db4f39d711fba640a3178b959919aae1f7cfd8aabcfef5826ed8aa8a2aa14cc85b2d7d18ff638ddf4ae3df39573eaf
1731 | languageName: node
1732 | linkType: hard
1733 |
1734 | "foreground-child@npm:^3.1.0":
1735 | version: 3.3.0
1736 | resolution: "foreground-child@npm:3.3.0"
1737 | dependencies:
1738 | cross-spawn: "npm:^7.0.0"
1739 | signal-exit: "npm:^4.0.1"
1740 | checksum: 10c0/028f1d41000553fcfa6c4bb5c372963bf3d9bf0b1f25a87d1a6253014343fb69dfb1b42d9625d7cf44c8ba429940f3d0ff718b62105d4d4a4f6ef8ca0a53faa2
1741 | languageName: node
1742 | linkType: hard
1743 |
1744 | "fs-minipass@npm:^2.0.0":
1745 | version: 2.1.0
1746 | resolution: "fs-minipass@npm:2.1.0"
1747 | dependencies:
1748 | minipass: "npm:^3.0.0"
1749 | checksum: 10c0/703d16522b8282d7299337539c3ed6edddd1afe82435e4f5b76e34a79cd74e488a8a0e26a636afc2440e1a23b03878e2122e3a2cfe375a5cf63c37d92b86a004
1750 | languageName: node
1751 | linkType: hard
1752 |
1753 | "fs-minipass@npm:^3.0.0":
1754 | version: 3.0.3
1755 | resolution: "fs-minipass@npm:3.0.3"
1756 | dependencies:
1757 | minipass: "npm:^7.0.3"
1758 | checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94
1759 | languageName: node
1760 | linkType: hard
1761 |
1762 | "fsevents@npm:~2.3.2, fsevents@npm:~2.3.3":
1763 | version: 2.3.3
1764 | resolution: "fsevents@npm:2.3.3"
1765 | dependencies:
1766 | node-gyp: "npm:latest"
1767 | checksum: 10c0/a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60
1768 | conditions: os=darwin
1769 | languageName: node
1770 | linkType: hard
1771 |
1772 | "fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin":
1773 | version: 2.3.3
1774 | resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1"
1775 | dependencies:
1776 | node-gyp: "npm:latest"
1777 | conditions: os=darwin
1778 | languageName: node
1779 | linkType: hard
1780 |
1781 | "gensync@npm:^1.0.0-beta.2":
1782 | version: 1.0.0-beta.2
1783 | resolution: "gensync@npm:1.0.0-beta.2"
1784 | checksum: 10c0/782aba6cba65b1bb5af3b095d96249d20edbe8df32dbf4696fd49be2583faf676173bf4809386588828e4dd76a3354fcbeb577bab1c833ccd9fc4577f26103f8
1785 | languageName: node
1786 | linkType: hard
1787 |
1788 | "glob-parent@npm:^5.1.2":
1789 | version: 5.1.2
1790 | resolution: "glob-parent@npm:5.1.2"
1791 | dependencies:
1792 | is-glob: "npm:^4.0.1"
1793 | checksum: 10c0/cab87638e2112bee3f839ef5f6e0765057163d39c66be8ec1602f3823da4692297ad4e972de876ea17c44d652978638d2fd583c6713d0eb6591706825020c9ee
1794 | languageName: node
1795 | linkType: hard
1796 |
1797 | "glob-parent@npm:^6.0.2":
1798 | version: 6.0.2
1799 | resolution: "glob-parent@npm:6.0.2"
1800 | dependencies:
1801 | is-glob: "npm:^4.0.3"
1802 | checksum: 10c0/317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8
1803 | languageName: node
1804 | linkType: hard
1805 |
1806 | "glob@npm:^10.2.2, glob@npm:^10.3.10":
1807 | version: 10.4.5
1808 | resolution: "glob@npm:10.4.5"
1809 | dependencies:
1810 | foreground-child: "npm:^3.1.0"
1811 | jackspeak: "npm:^3.1.2"
1812 | minimatch: "npm:^9.0.4"
1813 | minipass: "npm:^7.1.2"
1814 | package-json-from-dist: "npm:^1.0.0"
1815 | path-scurry: "npm:^1.11.1"
1816 | bin:
1817 | glob: dist/esm/bin.mjs
1818 | checksum: 10c0/19a9759ea77b8e3ca0a43c2f07ecddc2ad46216b786bb8f993c445aee80d345925a21e5280c7b7c6c59e860a0154b84e4b2b60321fea92cd3c56b4a7489f160e
1819 | languageName: node
1820 | linkType: hard
1821 |
1822 | "globals@npm:^11.1.0":
1823 | version: 11.12.0
1824 | resolution: "globals@npm:11.12.0"
1825 | checksum: 10c0/758f9f258e7b19226bd8d4af5d3b0dcf7038780fb23d82e6f98932c44e239f884847f1766e8fa9cc5635ccb3204f7fa7314d4408dd4002a5e8ea827b4018f0a1
1826 | languageName: node
1827 | linkType: hard
1828 |
1829 | "globals@npm:^14.0.0":
1830 | version: 14.0.0
1831 | resolution: "globals@npm:14.0.0"
1832 | checksum: 10c0/b96ff42620c9231ad468d4c58ff42afee7777ee1c963013ff8aabe095a451d0ceeb8dcd8ef4cbd64d2538cef45f787a78ba3a9574f4a634438963e334471302d
1833 | languageName: node
1834 | linkType: hard
1835 |
1836 | "globals@npm:^15.9.0":
1837 | version: 15.11.0
1838 | resolution: "globals@npm:15.11.0"
1839 | checksum: 10c0/861e39bb6bd9bd1b9f355c25c962e5eb4b3f0e1567cf60fa6c06e8c502b0ec8706b1cce055d69d84d0b7b8e028bec5418cf629a54e7047e116538d1c1c1a375c
1840 | languageName: node
1841 | linkType: hard
1842 |
1843 | "graceful-fs@npm:^4.2.6":
1844 | version: 4.2.11
1845 | resolution: "graceful-fs@npm:4.2.11"
1846 | checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2
1847 | languageName: node
1848 | linkType: hard
1849 |
1850 | "graphemer@npm:^1.4.0":
1851 | version: 1.4.0
1852 | resolution: "graphemer@npm:1.4.0"
1853 | checksum: 10c0/e951259d8cd2e0d196c72ec711add7115d42eb9a8146c8eeda5b8d3ac91e5dd816b9cd68920726d9fd4490368e7ed86e9c423f40db87e2d8dfafa00fa17c3a31
1854 | languageName: node
1855 | linkType: hard
1856 |
1857 | "has-flag@npm:^3.0.0":
1858 | version: 3.0.0
1859 | resolution: "has-flag@npm:3.0.0"
1860 | checksum: 10c0/1c6c83b14b8b1b3c25b0727b8ba3e3b647f99e9e6e13eb7322107261de07a4c1be56fc0d45678fc376e09772a3a1642ccdaf8fc69bdf123b6c086598397ce473
1861 | languageName: node
1862 | linkType: hard
1863 |
1864 | "has-flag@npm:^4.0.0":
1865 | version: 4.0.0
1866 | resolution: "has-flag@npm:4.0.0"
1867 | checksum: 10c0/2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1
1868 | languageName: node
1869 | linkType: hard
1870 |
1871 | "http-cache-semantics@npm:^4.1.1":
1872 | version: 4.1.1
1873 | resolution: "http-cache-semantics@npm:4.1.1"
1874 | checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc
1875 | languageName: node
1876 | linkType: hard
1877 |
1878 | "http-proxy-agent@npm:^7.0.0":
1879 | version: 7.0.2
1880 | resolution: "http-proxy-agent@npm:7.0.2"
1881 | dependencies:
1882 | agent-base: "npm:^7.1.0"
1883 | debug: "npm:^4.3.4"
1884 | checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921
1885 | languageName: node
1886 | linkType: hard
1887 |
1888 | "https-proxy-agent@npm:^7.0.1":
1889 | version: 7.0.5
1890 | resolution: "https-proxy-agent@npm:7.0.5"
1891 | dependencies:
1892 | agent-base: "npm:^7.0.2"
1893 | debug: "npm:4"
1894 | checksum: 10c0/2490e3acec397abeb88807db52cac59102d5ed758feee6df6112ab3ccd8325e8a1ce8bce6f4b66e5470eca102d31e425ace904242e4fa28dbe0c59c4bafa7b2c
1895 | languageName: node
1896 | linkType: hard
1897 |
1898 | "iconv-lite@npm:^0.6.2":
1899 | version: 0.6.3
1900 | resolution: "iconv-lite@npm:0.6.3"
1901 | dependencies:
1902 | safer-buffer: "npm:>= 2.1.2 < 3.0.0"
1903 | checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1
1904 | languageName: node
1905 | linkType: hard
1906 |
1907 | "ignore@npm:^5.2.0, ignore@npm:^5.3.1":
1908 | version: 5.3.2
1909 | resolution: "ignore@npm:5.3.2"
1910 | checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337
1911 | languageName: node
1912 | linkType: hard
1913 |
1914 | "import-fresh@npm:^3.2.1":
1915 | version: 3.3.0
1916 | resolution: "import-fresh@npm:3.3.0"
1917 | dependencies:
1918 | parent-module: "npm:^1.0.0"
1919 | resolve-from: "npm:^4.0.0"
1920 | checksum: 10c0/7f882953aa6b740d1f0e384d0547158bc86efbf2eea0f1483b8900a6f65c5a5123c2cf09b0d542cc419d0b98a759ecaeb394237e97ea427f2da221dc3cd80cc3
1921 | languageName: node
1922 | linkType: hard
1923 |
1924 | "imurmurhash@npm:^0.1.4":
1925 | version: 0.1.4
1926 | resolution: "imurmurhash@npm:0.1.4"
1927 | checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6
1928 | languageName: node
1929 | linkType: hard
1930 |
1931 | "indent-string@npm:^4.0.0":
1932 | version: 4.0.0
1933 | resolution: "indent-string@npm:4.0.0"
1934 | checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f
1935 | languageName: node
1936 | linkType: hard
1937 |
1938 | "ip-address@npm:^9.0.5":
1939 | version: 9.0.5
1940 | resolution: "ip-address@npm:9.0.5"
1941 | dependencies:
1942 | jsbn: "npm:1.1.0"
1943 | sprintf-js: "npm:^1.1.3"
1944 | checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc
1945 | languageName: node
1946 | linkType: hard
1947 |
1948 | "is-extglob@npm:^2.1.1":
1949 | version: 2.1.1
1950 | resolution: "is-extglob@npm:2.1.1"
1951 | checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912
1952 | languageName: node
1953 | linkType: hard
1954 |
1955 | "is-fullwidth-code-point@npm:^3.0.0":
1956 | version: 3.0.0
1957 | resolution: "is-fullwidth-code-point@npm:3.0.0"
1958 | checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc
1959 | languageName: node
1960 | linkType: hard
1961 |
1962 | "is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3":
1963 | version: 4.0.3
1964 | resolution: "is-glob@npm:4.0.3"
1965 | dependencies:
1966 | is-extglob: "npm:^2.1.1"
1967 | checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a
1968 | languageName: node
1969 | linkType: hard
1970 |
1971 | "is-lambda@npm:^1.0.1":
1972 | version: 1.0.1
1973 | resolution: "is-lambda@npm:1.0.1"
1974 | checksum: 10c0/85fee098ae62ba6f1e24cf22678805473c7afd0fb3978a3aa260e354cb7bcb3a5806cf0a98403188465efedec41ab4348e8e4e79305d409601323855b3839d4d
1975 | languageName: node
1976 | linkType: hard
1977 |
1978 | "is-number@npm:^7.0.0":
1979 | version: 7.0.0
1980 | resolution: "is-number@npm:7.0.0"
1981 | checksum: 10c0/b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811
1982 | languageName: node
1983 | linkType: hard
1984 |
1985 | "isexe@npm:^2.0.0":
1986 | version: 2.0.0
1987 | resolution: "isexe@npm:2.0.0"
1988 | checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d
1989 | languageName: node
1990 | linkType: hard
1991 |
1992 | "isexe@npm:^3.1.1":
1993 | version: 3.1.1
1994 | resolution: "isexe@npm:3.1.1"
1995 | checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7
1996 | languageName: node
1997 | linkType: hard
1998 |
1999 | "jackspeak@npm:^3.1.2":
2000 | version: 3.4.3
2001 | resolution: "jackspeak@npm:3.4.3"
2002 | dependencies:
2003 | "@isaacs/cliui": "npm:^8.0.2"
2004 | "@pkgjs/parseargs": "npm:^0.11.0"
2005 | dependenciesMeta:
2006 | "@pkgjs/parseargs":
2007 | optional: true
2008 | checksum: 10c0/6acc10d139eaefdbe04d2f679e6191b3abf073f111edf10b1de5302c97ec93fffeb2fdd8681ed17f16268aa9dd4f8c588ed9d1d3bffbbfa6e8bf897cbb3149b9
2009 | languageName: node
2010 | linkType: hard
2011 |
2012 | "js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0":
2013 | version: 4.0.0
2014 | resolution: "js-tokens@npm:4.0.0"
2015 | checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed
2016 | languageName: node
2017 | linkType: hard
2018 |
2019 | "js-yaml@npm:^4.1.0":
2020 | version: 4.1.0
2021 | resolution: "js-yaml@npm:4.1.0"
2022 | dependencies:
2023 | argparse: "npm:^2.0.1"
2024 | bin:
2025 | js-yaml: bin/js-yaml.js
2026 | checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f
2027 | languageName: node
2028 | linkType: hard
2029 |
2030 | "jsbn@npm:1.1.0":
2031 | version: 1.1.0
2032 | resolution: "jsbn@npm:1.1.0"
2033 | checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96
2034 | languageName: node
2035 | linkType: hard
2036 |
2037 | "jsesc@npm:^3.0.2":
2038 | version: 3.0.2
2039 | resolution: "jsesc@npm:3.0.2"
2040 | bin:
2041 | jsesc: bin/jsesc
2042 | checksum: 10c0/ef22148f9e793180b14d8a145ee6f9f60f301abf443288117b4b6c53d0ecd58354898dc506ccbb553a5f7827965cd38bc5fb726575aae93c5e8915e2de8290e1
2043 | languageName: node
2044 | linkType: hard
2045 |
2046 | "json-buffer@npm:3.0.1":
2047 | version: 3.0.1
2048 | resolution: "json-buffer@npm:3.0.1"
2049 | checksum: 10c0/0d1c91569d9588e7eef2b49b59851f297f3ab93c7b35c7c221e288099322be6b562767d11e4821da500f3219542b9afd2e54c5dc573107c1126ed1080f8e96d7
2050 | languageName: node
2051 | linkType: hard
2052 |
2053 | "json-schema-traverse@npm:^0.4.1":
2054 | version: 0.4.1
2055 | resolution: "json-schema-traverse@npm:0.4.1"
2056 | checksum: 10c0/108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce
2057 | languageName: node
2058 | linkType: hard
2059 |
2060 | "json-stable-stringify-without-jsonify@npm:^1.0.1":
2061 | version: 1.0.1
2062 | resolution: "json-stable-stringify-without-jsonify@npm:1.0.1"
2063 | checksum: 10c0/cb168b61fd4de83e58d09aaa6425ef71001bae30d260e2c57e7d09a5fd82223e2f22a042dedaab8db23b7d9ae46854b08bb1f91675a8be11c5cffebef5fb66a5
2064 | languageName: node
2065 | linkType: hard
2066 |
2067 | "json5@npm:^2.2.3":
2068 | version: 2.2.3
2069 | resolution: "json5@npm:2.2.3"
2070 | bin:
2071 | json5: lib/cli.js
2072 | checksum: 10c0/5a04eed94810fa55c5ea138b2f7a5c12b97c3750bc63d11e511dcecbfef758003861522a070c2272764ee0f4e3e323862f386945aeb5b85b87ee43f084ba586c
2073 | languageName: node
2074 | linkType: hard
2075 |
2076 | "keyv@npm:^4.5.4":
2077 | version: 4.5.4
2078 | resolution: "keyv@npm:4.5.4"
2079 | dependencies:
2080 | json-buffer: "npm:3.0.1"
2081 | checksum: 10c0/aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e
2082 | languageName: node
2083 | linkType: hard
2084 |
2085 | "levn@npm:^0.4.1":
2086 | version: 0.4.1
2087 | resolution: "levn@npm:0.4.1"
2088 | dependencies:
2089 | prelude-ls: "npm:^1.2.1"
2090 | type-check: "npm:~0.4.0"
2091 | checksum: 10c0/effb03cad7c89dfa5bd4f6989364bfc79994c2042ec5966cb9b95990e2edee5cd8969ddf42616a0373ac49fac1403437deaf6e9050fbbaa3546093a59b9ac94e
2092 | languageName: node
2093 | linkType: hard
2094 |
2095 | "locate-path@npm:^6.0.0":
2096 | version: 6.0.0
2097 | resolution: "locate-path@npm:6.0.0"
2098 | dependencies:
2099 | p-locate: "npm:^5.0.0"
2100 | checksum: 10c0/d3972ab70dfe58ce620e64265f90162d247e87159b6126b01314dd67be43d50e96a50b517bce2d9452a79409c7614054c277b5232377de50416564a77ac7aad3
2101 | languageName: node
2102 | linkType: hard
2103 |
2104 | "lodash.merge@npm:^4.6.2":
2105 | version: 4.6.2
2106 | resolution: "lodash.merge@npm:4.6.2"
2107 | checksum: 10c0/402fa16a1edd7538de5b5903a90228aa48eb5533986ba7fa26606a49db2572bf414ff73a2c9f5d5fd36b31c46a5d5c7e1527749c07cbcf965ccff5fbdf32c506
2108 | languageName: node
2109 | linkType: hard
2110 |
2111 | "lodash@npm:^4.17.21":
2112 | version: 4.17.21
2113 | resolution: "lodash@npm:4.17.21"
2114 | checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c
2115 | languageName: node
2116 | linkType: hard
2117 |
2118 | "loose-envify@npm:^1.1.0":
2119 | version: 1.4.0
2120 | resolution: "loose-envify@npm:1.4.0"
2121 | dependencies:
2122 | js-tokens: "npm:^3.0.0 || ^4.0.0"
2123 | bin:
2124 | loose-envify: cli.js
2125 | checksum: 10c0/655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e
2126 | languageName: node
2127 | linkType: hard
2128 |
2129 | "lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0":
2130 | version: 10.4.3
2131 | resolution: "lru-cache@npm:10.4.3"
2132 | checksum: 10c0/ebd04fbca961e6c1d6c0af3799adcc966a1babe798f685bb84e6599266599cd95d94630b10262f5424539bc4640107e8a33aa28585374abf561d30d16f4b39fb
2133 | languageName: node
2134 | linkType: hard
2135 |
2136 | "lru-cache@npm:^5.1.1":
2137 | version: 5.1.1
2138 | resolution: "lru-cache@npm:5.1.1"
2139 | dependencies:
2140 | yallist: "npm:^3.0.2"
2141 | checksum: 10c0/89b2ef2ef45f543011e38737b8a8622a2f8998cddf0e5437174ef8f1f70a8b9d14a918ab3e232cb3ba343b7abddffa667f0b59075b2b80e6b4d63c3de6127482
2142 | languageName: node
2143 | linkType: hard
2144 |
2145 | "make-fetch-happen@npm:^13.0.0":
2146 | version: 13.0.1
2147 | resolution: "make-fetch-happen@npm:13.0.1"
2148 | dependencies:
2149 | "@npmcli/agent": "npm:^2.0.0"
2150 | cacache: "npm:^18.0.0"
2151 | http-cache-semantics: "npm:^4.1.1"
2152 | is-lambda: "npm:^1.0.1"
2153 | minipass: "npm:^7.0.2"
2154 | minipass-fetch: "npm:^3.0.0"
2155 | minipass-flush: "npm:^1.0.5"
2156 | minipass-pipeline: "npm:^1.2.4"
2157 | negotiator: "npm:^0.6.3"
2158 | proc-log: "npm:^4.2.0"
2159 | promise-retry: "npm:^2.0.1"
2160 | ssri: "npm:^10.0.0"
2161 | checksum: 10c0/df5f4dbb6d98153b751bccf4dc4cc500de85a96a9331db9805596c46aa9f99d9555983954e6c1266d9f981ae37a9e4647f42b9a4bb5466f867f4012e582c9e7e
2162 | languageName: node
2163 | linkType: hard
2164 |
2165 | "merge2@npm:^1.3.0":
2166 | version: 1.4.1
2167 | resolution: "merge2@npm:1.4.1"
2168 | checksum: 10c0/254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb
2169 | languageName: node
2170 | linkType: hard
2171 |
2172 | "meshoptimizer@npm:~0.18.1":
2173 | version: 0.18.1
2174 | resolution: "meshoptimizer@npm:0.18.1"
2175 | checksum: 10c0/8a825c58b20b65585e8d00788843929b60c66ba4297e89afaa49f7c51ab9a0f7b9130f90cc9ad1b9b48b3d1bee3beb1bc93608acba0d73e78995c3e6e5ca436b
2176 | languageName: node
2177 | linkType: hard
2178 |
2179 | "micromatch@npm:^4.0.4":
2180 | version: 4.0.8
2181 | resolution: "micromatch@npm:4.0.8"
2182 | dependencies:
2183 | braces: "npm:^3.0.3"
2184 | picomatch: "npm:^2.3.1"
2185 | checksum: 10c0/166fa6eb926b9553f32ef81f5f531d27b4ce7da60e5baf8c021d043b27a388fb95e46a8038d5045877881e673f8134122b59624d5cecbd16eb50a42e7a6b5ca8
2186 | languageName: node
2187 | linkType: hard
2188 |
2189 | "minimatch@npm:^3.1.2":
2190 | version: 3.1.2
2191 | resolution: "minimatch@npm:3.1.2"
2192 | dependencies:
2193 | brace-expansion: "npm:^1.1.7"
2194 | checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311
2195 | languageName: node
2196 | linkType: hard
2197 |
2198 | "minimatch@npm:^9.0.4":
2199 | version: 9.0.5
2200 | resolution: "minimatch@npm:9.0.5"
2201 | dependencies:
2202 | brace-expansion: "npm:^2.0.1"
2203 | checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed
2204 | languageName: node
2205 | linkType: hard
2206 |
2207 | "minipass-collect@npm:^2.0.1":
2208 | version: 2.0.1
2209 | resolution: "minipass-collect@npm:2.0.1"
2210 | dependencies:
2211 | minipass: "npm:^7.0.3"
2212 | checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e
2213 | languageName: node
2214 | linkType: hard
2215 |
2216 | "minipass-fetch@npm:^3.0.0":
2217 | version: 3.0.5
2218 | resolution: "minipass-fetch@npm:3.0.5"
2219 | dependencies:
2220 | encoding: "npm:^0.1.13"
2221 | minipass: "npm:^7.0.3"
2222 | minipass-sized: "npm:^1.0.3"
2223 | minizlib: "npm:^2.1.2"
2224 | dependenciesMeta:
2225 | encoding:
2226 | optional: true
2227 | checksum: 10c0/9d702d57f556274286fdd97e406fc38a2f5c8d15e158b498d7393b1105974b21249289ec571fa2b51e038a4872bfc82710111cf75fae98c662f3d6f95e72152b
2228 | languageName: node
2229 | linkType: hard
2230 |
2231 | "minipass-flush@npm:^1.0.5":
2232 | version: 1.0.5
2233 | resolution: "minipass-flush@npm:1.0.5"
2234 | dependencies:
2235 | minipass: "npm:^3.0.0"
2236 | checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd
2237 | languageName: node
2238 | linkType: hard
2239 |
2240 | "minipass-pipeline@npm:^1.2.4":
2241 | version: 1.2.4
2242 | resolution: "minipass-pipeline@npm:1.2.4"
2243 | dependencies:
2244 | minipass: "npm:^3.0.0"
2245 | checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2
2246 | languageName: node
2247 | linkType: hard
2248 |
2249 | "minipass-sized@npm:^1.0.3":
2250 | version: 1.0.3
2251 | resolution: "minipass-sized@npm:1.0.3"
2252 | dependencies:
2253 | minipass: "npm:^3.0.0"
2254 | checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb
2255 | languageName: node
2256 | linkType: hard
2257 |
2258 | "minipass@npm:^3.0.0":
2259 | version: 3.3.6
2260 | resolution: "minipass@npm:3.3.6"
2261 | dependencies:
2262 | yallist: "npm:^4.0.0"
2263 | checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c
2264 | languageName: node
2265 | linkType: hard
2266 |
2267 | "minipass@npm:^5.0.0":
2268 | version: 5.0.0
2269 | resolution: "minipass@npm:5.0.0"
2270 | checksum: 10c0/a91d8043f691796a8ac88df039da19933ef0f633e3d7f0d35dcd5373af49131cf2399bfc355f41515dc495e3990369c3858cd319e5c2722b4753c90bf3152462
2271 | languageName: node
2272 | linkType: hard
2273 |
2274 | "minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2":
2275 | version: 7.1.2
2276 | resolution: "minipass@npm:7.1.2"
2277 | checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557
2278 | languageName: node
2279 | linkType: hard
2280 |
2281 | "minizlib@npm:^2.1.1, minizlib@npm:^2.1.2":
2282 | version: 2.1.2
2283 | resolution: "minizlib@npm:2.1.2"
2284 | dependencies:
2285 | minipass: "npm:^3.0.0"
2286 | yallist: "npm:^4.0.0"
2287 | checksum: 10c0/64fae024e1a7d0346a1102bb670085b17b7f95bf6cfdf5b128772ec8faf9ea211464ea4add406a3a6384a7d87a0cd1a96263692134323477b4fb43659a6cab78
2288 | languageName: node
2289 | linkType: hard
2290 |
2291 | "mkdirp@npm:^1.0.3":
2292 | version: 1.0.4
2293 | resolution: "mkdirp@npm:1.0.4"
2294 | bin:
2295 | mkdirp: bin/cmd.js
2296 | checksum: 10c0/46ea0f3ffa8bc6a5bc0c7081ffc3907777f0ed6516888d40a518c5111f8366d97d2678911ad1a6882bf592fa9de6c784fea32e1687bb94e1f4944170af48a5cf
2297 | languageName: node
2298 | linkType: hard
2299 |
2300 | "ms@npm:^2.1.3":
2301 | version: 2.1.3
2302 | resolution: "ms@npm:2.1.3"
2303 | checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48
2304 | languageName: node
2305 | linkType: hard
2306 |
2307 | "nanoid@npm:^3.3.7":
2308 | version: 3.3.7
2309 | resolution: "nanoid@npm:3.3.7"
2310 | bin:
2311 | nanoid: bin/nanoid.cjs
2312 | checksum: 10c0/e3fb661aa083454f40500473bb69eedb85dc160e763150b9a2c567c7e9ff560ce028a9f833123b618a6ea742e311138b591910e795614a629029e86e180660f3
2313 | languageName: node
2314 | linkType: hard
2315 |
2316 | "natural-compare@npm:^1.4.0":
2317 | version: 1.4.0
2318 | resolution: "natural-compare@npm:1.4.0"
2319 | checksum: 10c0/f5f9a7974bfb28a91afafa254b197f0f22c684d4a1731763dda960d2c8e375b36c7d690e0d9dc8fba774c537af14a7e979129bca23d88d052fbeb9466955e447
2320 | languageName: node
2321 | linkType: hard
2322 |
2323 | "negotiator@npm:^0.6.3":
2324 | version: 0.6.3
2325 | resolution: "negotiator@npm:0.6.3"
2326 | checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2
2327 | languageName: node
2328 | linkType: hard
2329 |
2330 | "node-gyp@npm:latest":
2331 | version: 10.2.0
2332 | resolution: "node-gyp@npm:10.2.0"
2333 | dependencies:
2334 | env-paths: "npm:^2.2.0"
2335 | exponential-backoff: "npm:^3.1.1"
2336 | glob: "npm:^10.3.10"
2337 | graceful-fs: "npm:^4.2.6"
2338 | make-fetch-happen: "npm:^13.0.0"
2339 | nopt: "npm:^7.0.0"
2340 | proc-log: "npm:^4.1.0"
2341 | semver: "npm:^7.3.5"
2342 | tar: "npm:^6.2.1"
2343 | which: "npm:^4.0.0"
2344 | bin:
2345 | node-gyp: bin/node-gyp.js
2346 | checksum: 10c0/00630d67dbd09a45aee0a5d55c05e3916ca9e6d427ee4f7bc392d2d3dc5fad7449b21fc098dd38260a53d9dcc9c879b36704a1994235d4707e7271af7e9a835b
2347 | languageName: node
2348 | linkType: hard
2349 |
2350 | "node-releases@npm:^2.0.18":
2351 | version: 2.0.18
2352 | resolution: "node-releases@npm:2.0.18"
2353 | checksum: 10c0/786ac9db9d7226339e1dc84bbb42007cb054a346bd9257e6aa154d294f01bc6a6cddb1348fa099f079be6580acbb470e3c048effd5f719325abd0179e566fd27
2354 | languageName: node
2355 | linkType: hard
2356 |
2357 | "nopt@npm:^7.0.0":
2358 | version: 7.2.1
2359 | resolution: "nopt@npm:7.2.1"
2360 | dependencies:
2361 | abbrev: "npm:^2.0.0"
2362 | bin:
2363 | nopt: bin/nopt.js
2364 | checksum: 10c0/a069c7c736767121242037a22a788863accfa932ab285a1eb569eb8cd534b09d17206f68c37f096ae785647435e0c5a5a0a67b42ec743e481a455e5ae6a6df81
2365 | languageName: node
2366 | linkType: hard
2367 |
2368 | "optionator@npm:^0.9.3":
2369 | version: 0.9.4
2370 | resolution: "optionator@npm:0.9.4"
2371 | dependencies:
2372 | deep-is: "npm:^0.1.3"
2373 | fast-levenshtein: "npm:^2.0.6"
2374 | levn: "npm:^0.4.1"
2375 | prelude-ls: "npm:^1.2.1"
2376 | type-check: "npm:^0.4.0"
2377 | word-wrap: "npm:^1.2.5"
2378 | checksum: 10c0/4afb687a059ee65b61df74dfe87d8d6815cd6883cb8b3d5883a910df72d0f5d029821f37025e4bccf4048873dbdb09acc6d303d27b8f76b1a80dd5a7d5334675
2379 | languageName: node
2380 | linkType: hard
2381 |
2382 | "p-limit@npm:^3.0.2":
2383 | version: 3.1.0
2384 | resolution: "p-limit@npm:3.1.0"
2385 | dependencies:
2386 | yocto-queue: "npm:^0.1.0"
2387 | checksum: 10c0/9db675949dbdc9c3763c89e748d0ef8bdad0afbb24d49ceaf4c46c02c77d30db4e0652ed36d0a0a7a95154335fab810d95c86153105bb73b3a90448e2bb14e1a
2388 | languageName: node
2389 | linkType: hard
2390 |
2391 | "p-locate@npm:^5.0.0":
2392 | version: 5.0.0
2393 | resolution: "p-locate@npm:5.0.0"
2394 | dependencies:
2395 | p-limit: "npm:^3.0.2"
2396 | checksum: 10c0/2290d627ab7903b8b70d11d384fee714b797f6040d9278932754a6860845c4d3190603a0772a663c8cb5a7b21d1b16acb3a6487ebcafa9773094edc3dfe6009a
2397 | languageName: node
2398 | linkType: hard
2399 |
2400 | "p-map@npm:^4.0.0":
2401 | version: 4.0.0
2402 | resolution: "p-map@npm:4.0.0"
2403 | dependencies:
2404 | aggregate-error: "npm:^3.0.0"
2405 | checksum: 10c0/592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75
2406 | languageName: node
2407 | linkType: hard
2408 |
2409 | "package-json-from-dist@npm:^1.0.0":
2410 | version: 1.0.1
2411 | resolution: "package-json-from-dist@npm:1.0.1"
2412 | checksum: 10c0/62ba2785eb655fec084a257af34dbe24292ab74516d6aecef97ef72d4897310bc6898f6c85b5cd22770eaa1ce60d55a0230e150fb6a966e3ecd6c511e23d164b
2413 | languageName: node
2414 | linkType: hard
2415 |
2416 | "parent-module@npm:^1.0.0":
2417 | version: 1.0.1
2418 | resolution: "parent-module@npm:1.0.1"
2419 | dependencies:
2420 | callsites: "npm:^3.0.0"
2421 | checksum: 10c0/c63d6e80000d4babd11978e0d3fee386ca7752a02b035fd2435960ffaa7219dc42146f07069fb65e6e8bf1caef89daf9af7535a39bddf354d78bf50d8294f556
2422 | languageName: node
2423 | linkType: hard
2424 |
2425 | "path-exists@npm:^4.0.0":
2426 | version: 4.0.0
2427 | resolution: "path-exists@npm:4.0.0"
2428 | checksum: 10c0/8c0bd3f5238188197dc78dced15207a4716c51cc4e3624c44fc97acf69558f5ebb9a2afff486fe1b4ee148e0c133e96c5e11a9aa5c48a3006e3467da070e5e1b
2429 | languageName: node
2430 | linkType: hard
2431 |
2432 | "path-key@npm:^3.1.0":
2433 | version: 3.1.1
2434 | resolution: "path-key@npm:3.1.1"
2435 | checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c
2436 | languageName: node
2437 | linkType: hard
2438 |
2439 | "path-scurry@npm:^1.11.1":
2440 | version: 1.11.1
2441 | resolution: "path-scurry@npm:1.11.1"
2442 | dependencies:
2443 | lru-cache: "npm:^10.2.0"
2444 | minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0"
2445 | checksum: 10c0/32a13711a2a505616ae1cc1b5076801e453e7aae6ac40ab55b388bb91b9d0547a52f5aaceff710ea400205f18691120d4431e520afbe4266b836fadede15872d
2446 | languageName: node
2447 | linkType: hard
2448 |
2449 | "picocolors@npm:^1.0.0, picocolors@npm:^1.1.0":
2450 | version: 1.1.0
2451 | resolution: "picocolors@npm:1.1.0"
2452 | checksum: 10c0/86946f6032148801ef09c051c6fb13b5cf942eaf147e30ea79edb91dd32d700934edebe782a1078ff859fb2b816792e97ef4dab03d7f0b804f6b01a0df35e023
2453 | languageName: node
2454 | linkType: hard
2455 |
2456 | "picomatch@npm:^2.3.1":
2457 | version: 2.3.1
2458 | resolution: "picomatch@npm:2.3.1"
2459 | checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be
2460 | languageName: node
2461 | linkType: hard
2462 |
2463 | "postcss@npm:^8.4.43":
2464 | version: 8.4.47
2465 | resolution: "postcss@npm:8.4.47"
2466 | dependencies:
2467 | nanoid: "npm:^3.3.7"
2468 | picocolors: "npm:^1.1.0"
2469 | source-map-js: "npm:^1.2.1"
2470 | checksum: 10c0/929f68b5081b7202709456532cee2a145c1843d391508c5a09de2517e8c4791638f71dd63b1898dba6712f8839d7a6da046c72a5e44c162e908f5911f57b5f44
2471 | languageName: node
2472 | linkType: hard
2473 |
2474 | "prelude-ls@npm:^1.2.1":
2475 | version: 1.2.1
2476 | resolution: "prelude-ls@npm:1.2.1"
2477 | checksum: 10c0/b00d617431e7886c520a6f498a2e14c75ec58f6d93ba48c3b639cf241b54232d90daa05d83a9e9b9fef6baa63cb7e1e4602c2372fea5bc169668401eb127d0cd
2478 | languageName: node
2479 | linkType: hard
2480 |
2481 | "proc-log@npm:^4.1.0, proc-log@npm:^4.2.0":
2482 | version: 4.2.0
2483 | resolution: "proc-log@npm:4.2.0"
2484 | checksum: 10c0/17db4757c2a5c44c1e545170e6c70a26f7de58feb985091fb1763f5081cab3d01b181fb2dd240c9f4a4255a1d9227d163d5771b7e69c9e49a561692db865efb9
2485 | languageName: node
2486 | linkType: hard
2487 |
2488 | "promise-retry@npm:^2.0.1":
2489 | version: 2.0.1
2490 | resolution: "promise-retry@npm:2.0.1"
2491 | dependencies:
2492 | err-code: "npm:^2.0.2"
2493 | retry: "npm:^0.12.0"
2494 | checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96
2495 | languageName: node
2496 | linkType: hard
2497 |
2498 | "punycode@npm:^2.1.0":
2499 | version: 2.3.1
2500 | resolution: "punycode@npm:2.3.1"
2501 | checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9
2502 | languageName: node
2503 | linkType: hard
2504 |
2505 | "queue-microtask@npm:^1.2.2":
2506 | version: 1.2.3
2507 | resolution: "queue-microtask@npm:1.2.3"
2508 | checksum: 10c0/900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102
2509 | languageName: node
2510 | linkType: hard
2511 |
2512 | "react-dom@npm:^18.3.1":
2513 | version: 18.3.1
2514 | resolution: "react-dom@npm:18.3.1"
2515 | dependencies:
2516 | loose-envify: "npm:^1.1.0"
2517 | scheduler: "npm:^0.23.2"
2518 | peerDependencies:
2519 | react: ^18.3.1
2520 | checksum: 10c0/a752496c1941f958f2e8ac56239172296fcddce1365ce45222d04a1947e0cc5547df3e8447f855a81d6d39f008d7c32eab43db3712077f09e3f67c4874973e85
2521 | languageName: node
2522 | linkType: hard
2523 |
2524 | "react-refresh@npm:^0.14.2":
2525 | version: 0.14.2
2526 | resolution: "react-refresh@npm:0.14.2"
2527 | checksum: 10c0/875b72ef56b147a131e33f2abd6ec059d1989854b3ff438898e4f9310bfcc73acff709445b7ba843318a953cb9424bcc2c05af2b3d80011cee28f25aef3e2ebb
2528 | languageName: node
2529 | linkType: hard
2530 |
2531 | "react-threejs-easeljs-drawing-app@workspace:.":
2532 | version: 0.0.0-use.local
2533 | resolution: "react-threejs-easeljs-drawing-app@workspace:."
2534 | dependencies:
2535 | "@createjs/easeljs": "npm:^2.0.0-beta.4"
2536 | "@eslint/js": "npm:^9.11.1"
2537 | "@types/easeljs": "npm:^1"
2538 | "@types/lodash": "npm:^4.17.10"
2539 | "@types/react": "npm:^18.3.11"
2540 | "@types/react-dom": "npm:^18.3.1"
2541 | "@types/three": "npm:^0.169.0"
2542 | "@vitejs/plugin-react": "npm:^4.3.2"
2543 | eslint: "npm:^9.11.1"
2544 | eslint-plugin-react-hooks: "npm:^5.1.0-rc.0"
2545 | eslint-plugin-react-refresh: "npm:^0.4.12"
2546 | globals: "npm:^15.9.0"
2547 | lodash: "npm:^4.17.21"
2548 | react: "npm:^18.3.1"
2549 | react-dom: "npm:^18.3.1"
2550 | three: "npm:^0.169.0"
2551 | typescript: "npm:^5.5.3"
2552 | typescript-eslint: "npm:^8.7.0"
2553 | vite: "npm:^5.4.8"
2554 | languageName: unknown
2555 | linkType: soft
2556 |
2557 | "react@npm:^18.3.1":
2558 | version: 18.3.1
2559 | resolution: "react@npm:18.3.1"
2560 | dependencies:
2561 | loose-envify: "npm:^1.1.0"
2562 | checksum: 10c0/283e8c5efcf37802c9d1ce767f302dd569dd97a70d9bb8c7be79a789b9902451e0d16334b05d73299b20f048cbc3c7d288bbbde10b701fa194e2089c237dbea3
2563 | languageName: node
2564 | linkType: hard
2565 |
2566 | "resolve-from@npm:^4.0.0":
2567 | version: 4.0.0
2568 | resolution: "resolve-from@npm:4.0.0"
2569 | checksum: 10c0/8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190
2570 | languageName: node
2571 | linkType: hard
2572 |
2573 | "retry@npm:^0.12.0":
2574 | version: 0.12.0
2575 | resolution: "retry@npm:0.12.0"
2576 | checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe
2577 | languageName: node
2578 | linkType: hard
2579 |
2580 | "reusify@npm:^1.0.4":
2581 | version: 1.0.4
2582 | resolution: "reusify@npm:1.0.4"
2583 | checksum: 10c0/c19ef26e4e188f408922c46f7ff480d38e8dfc55d448310dfb518736b23ed2c4f547fb64a6ed5bdba92cd7e7ddc889d36ff78f794816d5e71498d645ef476107
2584 | languageName: node
2585 | linkType: hard
2586 |
2587 | "rollup@npm:^4.20.0":
2588 | version: 4.24.0
2589 | resolution: "rollup@npm:4.24.0"
2590 | dependencies:
2591 | "@rollup/rollup-android-arm-eabi": "npm:4.24.0"
2592 | "@rollup/rollup-android-arm64": "npm:4.24.0"
2593 | "@rollup/rollup-darwin-arm64": "npm:4.24.0"
2594 | "@rollup/rollup-darwin-x64": "npm:4.24.0"
2595 | "@rollup/rollup-linux-arm-gnueabihf": "npm:4.24.0"
2596 | "@rollup/rollup-linux-arm-musleabihf": "npm:4.24.0"
2597 | "@rollup/rollup-linux-arm64-gnu": "npm:4.24.0"
2598 | "@rollup/rollup-linux-arm64-musl": "npm:4.24.0"
2599 | "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.24.0"
2600 | "@rollup/rollup-linux-riscv64-gnu": "npm:4.24.0"
2601 | "@rollup/rollup-linux-s390x-gnu": "npm:4.24.0"
2602 | "@rollup/rollup-linux-x64-gnu": "npm:4.24.0"
2603 | "@rollup/rollup-linux-x64-musl": "npm:4.24.0"
2604 | "@rollup/rollup-win32-arm64-msvc": "npm:4.24.0"
2605 | "@rollup/rollup-win32-ia32-msvc": "npm:4.24.0"
2606 | "@rollup/rollup-win32-x64-msvc": "npm:4.24.0"
2607 | "@types/estree": "npm:1.0.6"
2608 | fsevents: "npm:~2.3.2"
2609 | dependenciesMeta:
2610 | "@rollup/rollup-android-arm-eabi":
2611 | optional: true
2612 | "@rollup/rollup-android-arm64":
2613 | optional: true
2614 | "@rollup/rollup-darwin-arm64":
2615 | optional: true
2616 | "@rollup/rollup-darwin-x64":
2617 | optional: true
2618 | "@rollup/rollup-linux-arm-gnueabihf":
2619 | optional: true
2620 | "@rollup/rollup-linux-arm-musleabihf":
2621 | optional: true
2622 | "@rollup/rollup-linux-arm64-gnu":
2623 | optional: true
2624 | "@rollup/rollup-linux-arm64-musl":
2625 | optional: true
2626 | "@rollup/rollup-linux-powerpc64le-gnu":
2627 | optional: true
2628 | "@rollup/rollup-linux-riscv64-gnu":
2629 | optional: true
2630 | "@rollup/rollup-linux-s390x-gnu":
2631 | optional: true
2632 | "@rollup/rollup-linux-x64-gnu":
2633 | optional: true
2634 | "@rollup/rollup-linux-x64-musl":
2635 | optional: true
2636 | "@rollup/rollup-win32-arm64-msvc":
2637 | optional: true
2638 | "@rollup/rollup-win32-ia32-msvc":
2639 | optional: true
2640 | "@rollup/rollup-win32-x64-msvc":
2641 | optional: true
2642 | fsevents:
2643 | optional: true
2644 | bin:
2645 | rollup: dist/bin/rollup
2646 | checksum: 10c0/77fb549c1de8afd1142d2da765adbb0cdab9f13c47df5217f00b5cf40b74219caa48c6ba2157f6249313ee81b6fa4c4fa8b3d2a0347ad6220739e00e580a808d
2647 | languageName: node
2648 | linkType: hard
2649 |
2650 | "run-parallel@npm:^1.1.9":
2651 | version: 1.2.0
2652 | resolution: "run-parallel@npm:1.2.0"
2653 | dependencies:
2654 | queue-microtask: "npm:^1.2.2"
2655 | checksum: 10c0/200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39
2656 | languageName: node
2657 | linkType: hard
2658 |
2659 | "safer-buffer@npm:>= 2.1.2 < 3.0.0":
2660 | version: 2.1.2
2661 | resolution: "safer-buffer@npm:2.1.2"
2662 | checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4
2663 | languageName: node
2664 | linkType: hard
2665 |
2666 | "scheduler@npm:^0.23.2":
2667 | version: 0.23.2
2668 | resolution: "scheduler@npm:0.23.2"
2669 | dependencies:
2670 | loose-envify: "npm:^1.1.0"
2671 | checksum: 10c0/26383305e249651d4c58e6705d5f8425f153211aef95f15161c151f7b8de885f24751b377e4a0b3dd42cce09aad3f87a61dab7636859c0d89b7daf1a1e2a5c78
2672 | languageName: node
2673 | linkType: hard
2674 |
2675 | "semver@npm:^6.3.1":
2676 | version: 6.3.1
2677 | resolution: "semver@npm:6.3.1"
2678 | bin:
2679 | semver: bin/semver.js
2680 | checksum: 10c0/e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d
2681 | languageName: node
2682 | linkType: hard
2683 |
2684 | "semver@npm:^7.3.5, semver@npm:^7.6.0":
2685 | version: 7.6.3
2686 | resolution: "semver@npm:7.6.3"
2687 | bin:
2688 | semver: bin/semver.js
2689 | checksum: 10c0/88f33e148b210c153873cb08cfe1e281d518aaa9a666d4d148add6560db5cd3c582f3a08ccb91f38d5f379ead256da9931234ed122057f40bb5766e65e58adaf
2690 | languageName: node
2691 | linkType: hard
2692 |
2693 | "shebang-command@npm:^2.0.0":
2694 | version: 2.0.0
2695 | resolution: "shebang-command@npm:2.0.0"
2696 | dependencies:
2697 | shebang-regex: "npm:^3.0.0"
2698 | checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e
2699 | languageName: node
2700 | linkType: hard
2701 |
2702 | "shebang-regex@npm:^3.0.0":
2703 | version: 3.0.0
2704 | resolution: "shebang-regex@npm:3.0.0"
2705 | checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690
2706 | languageName: node
2707 | linkType: hard
2708 |
2709 | "signal-exit@npm:^4.0.1":
2710 | version: 4.1.0
2711 | resolution: "signal-exit@npm:4.1.0"
2712 | checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83
2713 | languageName: node
2714 | linkType: hard
2715 |
2716 | "smart-buffer@npm:^4.2.0":
2717 | version: 4.2.0
2718 | resolution: "smart-buffer@npm:4.2.0"
2719 | checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539
2720 | languageName: node
2721 | linkType: hard
2722 |
2723 | "socks-proxy-agent@npm:^8.0.3":
2724 | version: 8.0.4
2725 | resolution: "socks-proxy-agent@npm:8.0.4"
2726 | dependencies:
2727 | agent-base: "npm:^7.1.1"
2728 | debug: "npm:^4.3.4"
2729 | socks: "npm:^2.8.3"
2730 | checksum: 10c0/345593bb21b95b0508e63e703c84da11549f0a2657d6b4e3ee3612c312cb3a907eac10e53b23ede3557c6601d63252103494caa306b66560f43af7b98f53957a
2731 | languageName: node
2732 | linkType: hard
2733 |
2734 | "socks@npm:^2.8.3":
2735 | version: 2.8.3
2736 | resolution: "socks@npm:2.8.3"
2737 | dependencies:
2738 | ip-address: "npm:^9.0.5"
2739 | smart-buffer: "npm:^4.2.0"
2740 | checksum: 10c0/d54a52bf9325165770b674a67241143a3d8b4e4c8884560c4e0e078aace2a728dffc7f70150660f51b85797c4e1a3b82f9b7aa25e0a0ceae1a243365da5c51a7
2741 | languageName: node
2742 | linkType: hard
2743 |
2744 | "source-map-js@npm:^1.2.1":
2745 | version: 1.2.1
2746 | resolution: "source-map-js@npm:1.2.1"
2747 | checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf
2748 | languageName: node
2749 | linkType: hard
2750 |
2751 | "sprintf-js@npm:^1.1.3":
2752 | version: 1.1.3
2753 | resolution: "sprintf-js@npm:1.1.3"
2754 | checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec
2755 | languageName: node
2756 | linkType: hard
2757 |
2758 | "ssri@npm:^10.0.0":
2759 | version: 10.0.6
2760 | resolution: "ssri@npm:10.0.6"
2761 | dependencies:
2762 | minipass: "npm:^7.0.3"
2763 | checksum: 10c0/e5a1e23a4057a86a97971465418f22ea89bd439ac36ade88812dd920e4e61873e8abd6a9b72a03a67ef50faa00a2daf1ab745c5a15b46d03e0544a0296354227
2764 | languageName: node
2765 | linkType: hard
2766 |
2767 | "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0":
2768 | version: 4.2.3
2769 | resolution: "string-width@npm:4.2.3"
2770 | dependencies:
2771 | emoji-regex: "npm:^8.0.0"
2772 | is-fullwidth-code-point: "npm:^3.0.0"
2773 | strip-ansi: "npm:^6.0.1"
2774 | checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b
2775 | languageName: node
2776 | linkType: hard
2777 |
2778 | "string-width@npm:^5.0.1, string-width@npm:^5.1.2":
2779 | version: 5.1.2
2780 | resolution: "string-width@npm:5.1.2"
2781 | dependencies:
2782 | eastasianwidth: "npm:^0.2.0"
2783 | emoji-regex: "npm:^9.2.2"
2784 | strip-ansi: "npm:^7.0.1"
2785 | checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca
2786 | languageName: node
2787 | linkType: hard
2788 |
2789 | "strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1":
2790 | version: 6.0.1
2791 | resolution: "strip-ansi@npm:6.0.1"
2792 | dependencies:
2793 | ansi-regex: "npm:^5.0.1"
2794 | checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952
2795 | languageName: node
2796 | linkType: hard
2797 |
2798 | "strip-ansi@npm:^7.0.1":
2799 | version: 7.1.0
2800 | resolution: "strip-ansi@npm:7.1.0"
2801 | dependencies:
2802 | ansi-regex: "npm:^6.0.1"
2803 | checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4
2804 | languageName: node
2805 | linkType: hard
2806 |
2807 | "strip-json-comments@npm:^3.1.1":
2808 | version: 3.1.1
2809 | resolution: "strip-json-comments@npm:3.1.1"
2810 | checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd
2811 | languageName: node
2812 | linkType: hard
2813 |
2814 | "supports-color@npm:^5.3.0":
2815 | version: 5.5.0
2816 | resolution: "supports-color@npm:5.5.0"
2817 | dependencies:
2818 | has-flag: "npm:^3.0.0"
2819 | checksum: 10c0/6ae5ff319bfbb021f8a86da8ea1f8db52fac8bd4d499492e30ec17095b58af11f0c55f8577390a749b1c4dde691b6a0315dab78f5f54c9b3d83f8fb5905c1c05
2820 | languageName: node
2821 | linkType: hard
2822 |
2823 | "supports-color@npm:^7.1.0":
2824 | version: 7.2.0
2825 | resolution: "supports-color@npm:7.2.0"
2826 | dependencies:
2827 | has-flag: "npm:^4.0.0"
2828 | checksum: 10c0/afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124
2829 | languageName: node
2830 | linkType: hard
2831 |
2832 | "tar@npm:^6.1.11, tar@npm:^6.2.1":
2833 | version: 6.2.1
2834 | resolution: "tar@npm:6.2.1"
2835 | dependencies:
2836 | chownr: "npm:^2.0.0"
2837 | fs-minipass: "npm:^2.0.0"
2838 | minipass: "npm:^5.0.0"
2839 | minizlib: "npm:^2.1.1"
2840 | mkdirp: "npm:^1.0.3"
2841 | yallist: "npm:^4.0.0"
2842 | checksum: 10c0/a5eca3eb50bc11552d453488344e6507156b9193efd7635e98e867fab275d527af53d8866e2370cd09dfe74378a18111622ace35af6a608e5223a7d27fe99537
2843 | languageName: node
2844 | linkType: hard
2845 |
2846 | "text-table@npm:^0.2.0":
2847 | version: 0.2.0
2848 | resolution: "text-table@npm:0.2.0"
2849 | checksum: 10c0/02805740c12851ea5982686810702e2f14369a5f4c5c40a836821e3eefc65ffeec3131ba324692a37608294b0fd8c1e55a2dd571ffed4909822787668ddbee5c
2850 | languageName: node
2851 | linkType: hard
2852 |
2853 | "three@npm:^0.169.0":
2854 | version: 0.169.0
2855 | resolution: "three@npm:0.169.0"
2856 | checksum: 10c0/be2e20f45eaa50489cd22d366c41fa14528f00b873078f52fc6ef37140fa8e541e9805630bbe696ab9b027530c74e5cd341705266eb268b5219402fb9fa78ed4
2857 | languageName: node
2858 | linkType: hard
2859 |
2860 | "to-fast-properties@npm:^2.0.0":
2861 | version: 2.0.0
2862 | resolution: "to-fast-properties@npm:2.0.0"
2863 | checksum: 10c0/b214d21dbfb4bce3452b6244b336806ffea9c05297148d32ebb428d5c43ce7545bdfc65a1ceb58c9ef4376a65c0cb2854d645f33961658b3e3b4f84910ddcdd7
2864 | languageName: node
2865 | linkType: hard
2866 |
2867 | "to-regex-range@npm:^5.0.1":
2868 | version: 5.0.1
2869 | resolution: "to-regex-range@npm:5.0.1"
2870 | dependencies:
2871 | is-number: "npm:^7.0.0"
2872 | checksum: 10c0/487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892
2873 | languageName: node
2874 | linkType: hard
2875 |
2876 | "ts-api-utils@npm:^1.3.0":
2877 | version: 1.3.0
2878 | resolution: "ts-api-utils@npm:1.3.0"
2879 | peerDependencies:
2880 | typescript: ">=4.2.0"
2881 | checksum: 10c0/f54a0ba9ed56ce66baea90a3fa087a484002e807f28a8ccb2d070c75e76bde64bd0f6dce98b3802834156306050871b67eec325cb4e918015a360a3f0868c77c
2882 | languageName: node
2883 | linkType: hard
2884 |
2885 | "type-check@npm:^0.4.0, type-check@npm:~0.4.0":
2886 | version: 0.4.0
2887 | resolution: "type-check@npm:0.4.0"
2888 | dependencies:
2889 | prelude-ls: "npm:^1.2.1"
2890 | checksum: 10c0/7b3fd0ed43891e2080bf0c5c504b418fbb3e5c7b9708d3d015037ba2e6323a28152ec163bcb65212741fa5d2022e3075ac3c76440dbd344c9035f818e8ecee58
2891 | languageName: node
2892 | linkType: hard
2893 |
2894 | "typescript-eslint@npm:^8.7.0":
2895 | version: 8.9.0
2896 | resolution: "typescript-eslint@npm:8.9.0"
2897 | dependencies:
2898 | "@typescript-eslint/eslint-plugin": "npm:8.9.0"
2899 | "@typescript-eslint/parser": "npm:8.9.0"
2900 | "@typescript-eslint/utils": "npm:8.9.0"
2901 | peerDependenciesMeta:
2902 | typescript:
2903 | optional: true
2904 | checksum: 10c0/96bef4f5d1da9561078fa234642cfa2d024979917b8282b82f63956789bc566bdd5806ff2b414697f3dfdee314e9c9fec05911a7502550d763a496e2ef3af2fd
2905 | languageName: node
2906 | linkType: hard
2907 |
2908 | "typescript@npm:^5.5.3":
2909 | version: 5.6.3
2910 | resolution: "typescript@npm:5.6.3"
2911 | bin:
2912 | tsc: bin/tsc
2913 | tsserver: bin/tsserver
2914 | checksum: 10c0/44f61d3fb15c35359bc60399cb8127c30bae554cd555b8e2b46d68fa79d680354b83320ad419ff1b81a0bdf324197b29affe6cc28988cd6a74d4ac60c94f9799
2915 | languageName: node
2916 | linkType: hard
2917 |
2918 | "typescript@patch:typescript@npm%3A^5.5.3#optional!builtin":
2919 | version: 5.6.3
2920 | resolution: "typescript@patch:typescript@npm%3A5.6.3#optional!builtin::version=5.6.3&hash=74658d"
2921 | bin:
2922 | tsc: bin/tsc
2923 | tsserver: bin/tsserver
2924 | checksum: 10c0/ac8307bb06bbfd08ae7137da740769b7d8c3ee5943188743bb622c621f8ad61d244767480f90fbd840277fbf152d8932aa20c33f867dea1bb5e79b187ca1a92f
2925 | languageName: node
2926 | linkType: hard
2927 |
2928 | "unique-filename@npm:^3.0.0":
2929 | version: 3.0.0
2930 | resolution: "unique-filename@npm:3.0.0"
2931 | dependencies:
2932 | unique-slug: "npm:^4.0.0"
2933 | checksum: 10c0/6363e40b2fa758eb5ec5e21b3c7fb83e5da8dcfbd866cc0c199d5534c42f03b9ea9ab069769cc388e1d7ab93b4eeef28ef506ab5f18d910ef29617715101884f
2934 | languageName: node
2935 | linkType: hard
2936 |
2937 | "unique-slug@npm:^4.0.0":
2938 | version: 4.0.0
2939 | resolution: "unique-slug@npm:4.0.0"
2940 | dependencies:
2941 | imurmurhash: "npm:^0.1.4"
2942 | checksum: 10c0/cb811d9d54eb5821b81b18205750be84cb015c20a4a44280794e915f5a0a70223ce39066781a354e872df3572e8155c228f43ff0cce94c7cbf4da2cc7cbdd635
2943 | languageName: node
2944 | linkType: hard
2945 |
2946 | "update-browserslist-db@npm:^1.1.0":
2947 | version: 1.1.1
2948 | resolution: "update-browserslist-db@npm:1.1.1"
2949 | dependencies:
2950 | escalade: "npm:^3.2.0"
2951 | picocolors: "npm:^1.1.0"
2952 | peerDependencies:
2953 | browserslist: ">= 4.21.0"
2954 | bin:
2955 | update-browserslist-db: cli.js
2956 | checksum: 10c0/536a2979adda2b4be81b07e311bd2f3ad5e978690987956bc5f514130ad50cac87cd22c710b686d79731e00fbee8ef43efe5fcd72baa241045209195d43dcc80
2957 | languageName: node
2958 | linkType: hard
2959 |
2960 | "uri-js@npm:^4.2.2":
2961 | version: 4.4.1
2962 | resolution: "uri-js@npm:4.4.1"
2963 | dependencies:
2964 | punycode: "npm:^2.1.0"
2965 | checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c
2966 | languageName: node
2967 | linkType: hard
2968 |
2969 | "vite@npm:^5.4.8":
2970 | version: 5.4.9
2971 | resolution: "vite@npm:5.4.9"
2972 | dependencies:
2973 | esbuild: "npm:^0.21.3"
2974 | fsevents: "npm:~2.3.3"
2975 | postcss: "npm:^8.4.43"
2976 | rollup: "npm:^4.20.0"
2977 | peerDependencies:
2978 | "@types/node": ^18.0.0 || >=20.0.0
2979 | less: "*"
2980 | lightningcss: ^1.21.0
2981 | sass: "*"
2982 | sass-embedded: "*"
2983 | stylus: "*"
2984 | sugarss: "*"
2985 | terser: ^5.4.0
2986 | dependenciesMeta:
2987 | fsevents:
2988 | optional: true
2989 | peerDependenciesMeta:
2990 | "@types/node":
2991 | optional: true
2992 | less:
2993 | optional: true
2994 | lightningcss:
2995 | optional: true
2996 | sass:
2997 | optional: true
2998 | sass-embedded:
2999 | optional: true
3000 | stylus:
3001 | optional: true
3002 | sugarss:
3003 | optional: true
3004 | terser:
3005 | optional: true
3006 | bin:
3007 | vite: bin/vite.js
3008 | checksum: 10c0/e9c59f2c639047e37c79bbbb151c7a55a3dc27932957cf4cf0447ee0bdcc1ddfd9b1fb3ba0465371c01ba3616d62561327855794c2d652213c3a10a32e6d369d
3009 | languageName: node
3010 | linkType: hard
3011 |
3012 | "which@npm:^2.0.1":
3013 | version: 2.0.2
3014 | resolution: "which@npm:2.0.2"
3015 | dependencies:
3016 | isexe: "npm:^2.0.0"
3017 | bin:
3018 | node-which: ./bin/node-which
3019 | checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f
3020 | languageName: node
3021 | linkType: hard
3022 |
3023 | "which@npm:^4.0.0":
3024 | version: 4.0.0
3025 | resolution: "which@npm:4.0.0"
3026 | dependencies:
3027 | isexe: "npm:^3.1.1"
3028 | bin:
3029 | node-which: bin/which.js
3030 | checksum: 10c0/449fa5c44ed120ccecfe18c433296a4978a7583bf2391c50abce13f76878d2476defde04d0f79db8165bdf432853c1f8389d0485ca6e8ebce3bbcded513d5e6a
3031 | languageName: node
3032 | linkType: hard
3033 |
3034 | "word-wrap@npm:^1.2.5":
3035 | version: 1.2.5
3036 | resolution: "word-wrap@npm:1.2.5"
3037 | checksum: 10c0/e0e4a1ca27599c92a6ca4c32260e8a92e8a44f4ef6ef93f803f8ed823f486e0889fc0b93be4db59c8d51b3064951d25e43d434e95dc8c960cc3a63d65d00ba20
3038 | languageName: node
3039 | linkType: hard
3040 |
3041 | "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
3042 | version: 7.0.0
3043 | resolution: "wrap-ansi@npm:7.0.0"
3044 | dependencies:
3045 | ansi-styles: "npm:^4.0.0"
3046 | string-width: "npm:^4.1.0"
3047 | strip-ansi: "npm:^6.0.0"
3048 | checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da
3049 | languageName: node
3050 | linkType: hard
3051 |
3052 | "wrap-ansi@npm:^8.1.0":
3053 | version: 8.1.0
3054 | resolution: "wrap-ansi@npm:8.1.0"
3055 | dependencies:
3056 | ansi-styles: "npm:^6.1.0"
3057 | string-width: "npm:^5.0.1"
3058 | strip-ansi: "npm:^7.0.1"
3059 | checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60
3060 | languageName: node
3061 | linkType: hard
3062 |
3063 | "yallist@npm:^3.0.2":
3064 | version: 3.1.1
3065 | resolution: "yallist@npm:3.1.1"
3066 | checksum: 10c0/c66a5c46bc89af1625476f7f0f2ec3653c1a1791d2f9407cfb4c2ba812a1e1c9941416d71ba9719876530e3340a99925f697142989371b72d93b9ee628afd8c1
3067 | languageName: node
3068 | linkType: hard
3069 |
3070 | "yallist@npm:^4.0.0":
3071 | version: 4.0.0
3072 | resolution: "yallist@npm:4.0.0"
3073 | checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a
3074 | languageName: node
3075 | linkType: hard
3076 |
3077 | "yocto-queue@npm:^0.1.0":
3078 | version: 0.1.0
3079 | resolution: "yocto-queue@npm:0.1.0"
3080 | checksum: 10c0/dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f
3081 | languageName: node
3082 | linkType: hard
3083 |
--------------------------------------------------------------------------------