├── .gitignore
├── README.md
├── tsconfig.json
├── src
├── index.html
├── target.ts
├── main.css
├── main.ts
├── viewport.ts
└── line.ts
├── package.json
├── .github
└── workflows
│ └── ci.yml
├── LICENSE
├── rollup.config.js
└── pnpm-lock.yaml
/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 | node_modules
3 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [fabrik](https://fabrik.gatunes.com)
2 | ==
3 |
4 | > Forward and backward reaching inverse kinematics
5 |
6 | ```bash
7 | # clone repo:
8 | git clone https://github.com/danielesteban/fabrik.git
9 | cd fabrik
10 | # install dependencies:
11 | pnpm install
12 | # start environment:
13 | pnpm start
14 | # open http://localhost:8080/ in your browser
15 | ```
16 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "baseUrl": "./src",
4 | "moduleResolution": "node",
5 | "noFallthroughCasesInSwitch": true,
6 | "noImplicitReturns": true,
7 | "noImplicitOverride": true,
8 | "noUnusedLocals": true,
9 | "noUnusedParameters": true,
10 | "strict": true,
11 | "target": "esnext"
12 | },
13 | "exclude": ["dist", "node_modules"],
14 | "include": ["src"]
15 | }
16 |
--------------------------------------------------------------------------------
/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | fabrik
6 |
7 |
8 |
9 |
10 |
11 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/src/target.ts:
--------------------------------------------------------------------------------
1 | import { CircleGeometry, Mesh, MeshBasicMaterial } from 'three';
2 |
3 | class Target extends Mesh {
4 | private static readonly geometry = (() => {
5 | const geometry = new CircleGeometry(0.1);
6 | geometry.translate(0, 0, -0.001);
7 | return geometry;
8 | })();
9 | private static readonly material = new MeshBasicMaterial({ color: 0xFF0000 });
10 |
11 | constructor() {
12 | super(Target.geometry, Target.material);
13 | }
14 | }
15 |
16 | export { Target };
17 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "fabrik",
3 | "scripts": {
4 | "build": "rollup -c rollup.config.js",
5 | "start": "pnpm build -w"
6 | },
7 | "type": "module",
8 | "dependencies": {
9 | "three": "^0.165.0"
10 | },
11 | "devDependencies": {
12 | "@rollup/plugin-html": "^1.0.3",
13 | "@rollup/plugin-node-resolve": "^15.2.3",
14 | "@rollup/plugin-terser": "^0.4.4",
15 | "@rollup/plugin-typescript": "^11.1.6",
16 | "@types/three": "^0.165.0",
17 | "postcss": "^8.4.38",
18 | "rollup": "^4.18.0",
19 | "rollup-plugin-livereload": "^2.0.5",
20 | "rollup-plugin-postcss": "^4.0.2",
21 | "rollup-plugin-serve": "^3.0.0",
22 | "tslib": "^2.6.2",
23 | "typescript": "^5.4.5"
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/main.css:
--------------------------------------------------------------------------------
1 | :root {
2 | font-size: 16px;
3 | }
4 |
5 | body {
6 | margin: 0;
7 | background: #000;
8 | color: #eee;
9 | cursor: crosshair;
10 | font-family: monospace;
11 | font-size: 0.75rem;
12 | font-weight: 400;
13 | font-style: normal;
14 | line-height: 1.125rem;
15 | touch-action: none;
16 | overflow: hidden;
17 | overscroll-behavior: none;
18 | user-select: none;
19 | -webkit-tap-highlight-color: transparent;
20 | -webkit-text-size-adjust: none;
21 | -webkit-touch-callout: none;
22 | -webkit-user-select: none;
23 | -webkit-overflow-scrolling: auto;
24 | }
25 |
26 | :root, body, #viewport {
27 | width: 100vw;
28 | height: 100%;
29 | }
30 |
31 | a {
32 | color: inherit;
33 | }
34 |
35 | canvas {
36 | vertical-align: middle;
37 | }
38 |
39 | #info {
40 | position: absolute;
41 | bottom: 1rem;
42 | right: 1rem;
43 | text-align: right;
44 | }
45 |
--------------------------------------------------------------------------------
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: CI
2 |
3 | on:
4 | push:
5 | branches:
6 | - master
7 |
8 | jobs:
9 | client:
10 | environment:
11 | name: github-pages
12 | url: ${{ steps.deployment.outputs.page_url }}
13 | permissions:
14 | contents: read
15 | pages: write
16 | packages: read
17 | id-token: write
18 | runs-on: ubuntu-latest
19 | steps:
20 | - uses: actions/checkout@v3
21 | - uses: pnpm/action-setup@v2
22 | with:
23 | version: 9
24 | - uses: actions/setup-node@v3
25 | with:
26 | node-version: 20
27 | cache: 'pnpm'
28 | - name: Install
29 | run: pnpm install
30 | - name: Build
31 | run: pnpm build
32 | - uses: actions/configure-pages@v3
33 | - uses: actions/upload-pages-artifact@v2
34 | with:
35 | path: 'dist'
36 | - id: deployment
37 | uses: actions/deploy-pages@v2
38 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License
2 |
3 | Copyright © 2024 Daniel Esteban Nombela
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 | import { Color, Mesh, PlaneGeometry, Raycaster, Vector2, Vector3 } from 'three';
2 | import { Line } from 'line';
3 | import { Target } from 'target';
4 | import { camera, clock, renderer, scene } from 'viewport';
5 | import './main.css';
6 |
7 | const { searchParams: params } = new URL(location.href);
8 | const length = parseInt(params.get('length')!, 10) || 10;
9 | const count = parseInt(params.get('count')!, 10) || 100;
10 | const size = length / count;
11 |
12 | const line = new Line(Array.from({ length: count + 1 }, (_v, i) => ({
13 | position: new Vector3(i * size, 0, 0),
14 | color: (new Color()).setHSL(i / count, 0.5, 0.5),
15 | })));
16 | scene.add(line);
17 |
18 | const target = new Target();
19 | target.position.set(length, 0, 0);
20 | scene.add(target);
21 |
22 | const plane = new Mesh(new PlaneGeometry(10000, 10000));
23 | const pointer = new Vector2();
24 | const raycaster = new Raycaster();
25 | const worldPointer = target.position.clone();
26 | document.body.addEventListener('pointermove', ({ clientX, clientY }) => {
27 | raycaster.setFromCamera(pointer.set((clientX / window.innerWidth) * 2 - 1, -(clientY / window.innerHeight) * 2 + 1), camera);
28 | worldPointer.copy(raycaster.intersectObject(plane)[0].point);
29 | });
30 |
31 | renderer.setAnimationLoop(() => {
32 | const delta = Math.min(clock.getDelta(), 0.2);
33 | target.position.lerp(worldPointer, 1 - Math.exp(-10 * delta));
34 | line.solve(target.position);
35 | renderer.render(scene, camera);
36 | });
37 |
--------------------------------------------------------------------------------
/src/viewport.ts:
--------------------------------------------------------------------------------
1 | import {
2 | Clock,
3 | PerspectiveCamera,
4 | Scene,
5 | WebGLRenderer,
6 | } from 'three';
7 |
8 | const viewport = document.createElement('div');
9 | viewport.id = 'viewport';
10 | document.body.appendChild(viewport);
11 |
12 | export const camera = new PerspectiveCamera(60, 1, 0.1, 1000);
13 | camera.position.z = 10;
14 | export const clock = new Clock();
15 | export const renderer = new WebGLRenderer({ antialias: true });
16 | renderer.setPixelRatio(window.devicePixelRatio || 1);
17 | viewport.appendChild(renderer.domElement);
18 | export const scene = new Scene();
19 |
20 | const resize = () => {
21 | const { innerWidth: width, innerHeight: height } = window;
22 | const aspect = width / height;
23 | renderer.setSize(width, height);
24 | camera.aspect = aspect;
25 | camera.updateProjectionMatrix();
26 | };
27 | resize();
28 |
29 | window.addEventListener('resize', resize);
30 | document.addEventListener('visibilitychange', () => (
31 | document.visibilityState === 'visible' && clock.start()
32 | ));
33 |
34 | const prevent = (e: Event) => e.preventDefault();
35 | window.addEventListener('contextmenu', prevent);
36 | window.addEventListener('keydown', (e) => (
37 | e.key === ' '
38 | && !['input', 'textarea', 'select'].includes((e.target as HTMLElement).tagName.toLowerCase())
39 | && prevent(e)
40 | ));
41 | window.addEventListener('touchstart', prevent, { passive: false });
42 | window.addEventListener('wheel', (e) => e.ctrlKey && prevent(e), { passive: false });
43 |
--------------------------------------------------------------------------------
/rollup.config.js:
--------------------------------------------------------------------------------
1 | import fs from 'fs';
2 | import path from 'path';
3 | import { fileURLToPath } from 'url';
4 | import html from '@rollup/plugin-html';
5 | import livereload from 'rollup-plugin-livereload';
6 | import { nodeResolve } from '@rollup/plugin-node-resolve';
7 | import postcss from 'rollup-plugin-postcss';
8 | import serve from 'rollup-plugin-serve';
9 | import terser from '@rollup/plugin-terser';
10 | import typescript from '@rollup/plugin-typescript';
11 |
12 | const __dirname = path.dirname(fileURLToPath(import.meta.url));
13 | const production = !process.env.ROLLUP_WATCH;
14 | const outputPath = path.resolve(__dirname, 'dist');
15 |
16 | export default {
17 | input: path.join(__dirname, 'src', 'main.ts'),
18 | output: {
19 | dir: outputPath,
20 | entryFileNames: `[name]${production ? '-[hash]' : ''}.js`,
21 | format: 'iife',
22 | sourcemap: !production,
23 | },
24 | plugins: [
25 | nodeResolve({ browser: true, extensions: ['.js', '.ts'] }),
26 | typescript({ sourceMap: !production, inlineSources: !production }),
27 | postcss({ extract: true, minimize: production }),
28 | html({
29 | template: ({ files }) => (
30 | fs.readFileSync(path.join(__dirname, 'src', 'index.html'), 'utf8')
31 | .replace(
32 | '',
33 | (files.css || [])
34 | .map(({ fileName }) => ``)
35 | .join('')
36 | )
37 | .replace(
38 | '',
39 | (files.js || [])
40 | .map(({ fileName }) => ``)
41 | .join('')
42 | )
43 | .replace(/( |\n)/g, '')
44 | ),
45 | }),
46 | ...(production ? [
47 | terser({ format: { comments: false } }),
48 | ] : [
49 | serve({
50 | contentBase: outputPath,
51 | port: 8080,
52 | }),
53 | livereload({
54 | watch: outputPath,
55 | }),
56 | ]),
57 | ],
58 | watch: { clearScreen: false },
59 | };
60 |
--------------------------------------------------------------------------------
/src/line.ts:
--------------------------------------------------------------------------------
1 | import { Color, Vector2, Vector3 } from 'three';
2 | import { LineSegments2 } from 'three/examples/jsm/lines/LineSegments2.js';
3 | import { LineMaterial } from 'three/examples/jsm/lines/LineMaterial.js';
4 | import { LineSegmentsGeometry } from 'three/examples/jsm/lines/LineSegmentsGeometry.js';
5 |
6 | class Line extends LineSegments2 {
7 | static readonly material = new LineMaterial({
8 | alphaToCoverage: true,
9 | linewidth: 0.1,
10 | resolution: new Vector2(window.innerWidth, window.innerHeight),
11 | vertexColors: true,
12 | worldUnits: true,
13 | });
14 |
15 | private readonly colors: Float32Array;
16 | private readonly positions: Float32Array;
17 | private readonly points: { position: Vector3; color: Color; length: number; }[];
18 |
19 | constructor(points: { position: Vector3; color: Color }[]) {
20 | super(new LineSegmentsGeometry(), Line.material);
21 | this.colors = new Float32Array((points.length - 1) * 3 * 2);
22 | this.positions = new Float32Array((points.length - 1) * 3 * 2);
23 | this.points = points.map((point, i) => ({
24 | position: point.position,
25 | color: point.color,
26 | length: i === (points.length - 1) ? 0 : point.position.distanceTo(points[i + 1].position),
27 | }));
28 | this.updateColors();
29 | this.updatePositions();
30 | }
31 |
32 | solve(target: Vector3) {
33 | const { points } = this;
34 | points[points.length - 1].position.copy(target);
35 | for (let i = points.length - 1; i > 1; i--) {
36 | points[i - 1].position.sub(points[i].position).normalize().multiplyScalar(points[i - 1].length).add(points[i].position);
37 | }
38 | for (let i = 0, l = points.length - 1; i < l; i++) {
39 | points[i + 1].position.sub(points[i].position).normalize().multiplyScalar(points[i].length).add(points[i].position);
40 | }
41 | this.updatePositions();
42 | }
43 |
44 | private updateColors() {
45 | const { colors, geometry, points } = this;
46 | for (let i = 0, l = points.length - 1; i < l; i++) {
47 | const start = points[i];
48 | colors[2 * i * 3] = colors[2 * i * 3 + 3] = start.color.r;
49 | colors[2 * i * 3 + 1] = colors[2 * i * 3 + 4] = start.color.g;
50 | colors[2 * i * 3 + 2] = colors[2 * i * 3 + 5] = start.color.b;
51 | }
52 | geometry.setColors(colors);
53 | }
54 |
55 | private updatePositions() {
56 | const { geometry, points, positions } = this;
57 | for (let i = 0, l = points.length - 1; i < l; i++) {
58 | const start = points[i];
59 | const end = points[i + 1];
60 | positions[2 * i * 3] = start.position.x;
61 | positions[2 * i * 3 + 1] = start.position.y;
62 | positions[2 * i * 3 + 2] = start.position.z;
63 | positions[2 * i * 3 + 3] = end.position.x;
64 | positions[2 * i * 3 + 4] = end.position.y;
65 | positions[2 * i * 3 + 5] = end.position.z;
66 | }
67 | geometry.setPositions(positions);
68 | }
69 | }
70 |
71 | window.addEventListener('resize', () => (
72 | Line.material.resolution.set(window.innerWidth, window.innerHeight)
73 | ));
74 |
75 | export { Line };
76 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '9.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 |
9 | .:
10 | dependencies:
11 | three:
12 | specifier: ^0.165.0
13 | version: 0.165.0
14 | devDependencies:
15 | '@rollup/plugin-html':
16 | specifier: ^1.0.3
17 | version: 1.0.3(rollup@4.18.0)
18 | '@rollup/plugin-node-resolve':
19 | specifier: ^15.2.3
20 | version: 15.2.3(rollup@4.18.0)
21 | '@rollup/plugin-terser':
22 | specifier: ^0.4.4
23 | version: 0.4.4(rollup@4.18.0)
24 | '@rollup/plugin-typescript':
25 | specifier: ^11.1.6
26 | version: 11.1.6(rollup@4.18.0)(tslib@2.6.2)(typescript@5.4.5)
27 | '@types/three':
28 | specifier: ^0.165.0
29 | version: 0.165.0
30 | postcss:
31 | specifier: ^8.4.38
32 | version: 8.4.38
33 | rollup:
34 | specifier: ^4.18.0
35 | version: 4.18.0
36 | rollup-plugin-livereload:
37 | specifier: ^2.0.5
38 | version: 2.0.5
39 | rollup-plugin-postcss:
40 | specifier: ^4.0.2
41 | version: 4.0.2(postcss@8.4.38)
42 | rollup-plugin-serve:
43 | specifier: ^3.0.0
44 | version: 3.0.0
45 | tslib:
46 | specifier: ^2.6.2
47 | version: 2.6.2
48 | typescript:
49 | specifier: ^5.4.5
50 | version: 5.4.5
51 |
52 | packages:
53 |
54 | '@jridgewell/gen-mapping@0.3.5':
55 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
56 | engines: {node: '>=6.0.0'}
57 |
58 | '@jridgewell/resolve-uri@3.1.2':
59 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
60 | engines: {node: '>=6.0.0'}
61 |
62 | '@jridgewell/set-array@1.2.1':
63 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
64 | engines: {node: '>=6.0.0'}
65 |
66 | '@jridgewell/source-map@0.3.6':
67 | resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
68 |
69 | '@jridgewell/sourcemap-codec@1.4.15':
70 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
71 |
72 | '@jridgewell/trace-mapping@0.3.25':
73 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
74 |
75 | '@rollup/plugin-html@1.0.3':
76 | resolution: {integrity: sha512-bbjQciNXitHX+Bgk0xsW3/0wFWih/356/r7/kvmdz4wzWhAU/a0zYBWTczihrlzz/6Qpw/kZ0yXqOJwsETgg7A==}
77 | engines: {node: '>=14.0.0'}
78 | peerDependencies:
79 | rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
80 | peerDependenciesMeta:
81 | rollup:
82 | optional: true
83 |
84 | '@rollup/plugin-node-resolve@15.2.3':
85 | resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==}
86 | engines: {node: '>=14.0.0'}
87 | peerDependencies:
88 | rollup: ^2.78.0||^3.0.0||^4.0.0
89 | peerDependenciesMeta:
90 | rollup:
91 | optional: true
92 |
93 | '@rollup/plugin-terser@0.4.4':
94 | resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==}
95 | engines: {node: '>=14.0.0'}
96 | peerDependencies:
97 | rollup: ^2.0.0||^3.0.0||^4.0.0
98 | peerDependenciesMeta:
99 | rollup:
100 | optional: true
101 |
102 | '@rollup/plugin-typescript@11.1.6':
103 | resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==}
104 | engines: {node: '>=14.0.0'}
105 | peerDependencies:
106 | rollup: ^2.14.0||^3.0.0||^4.0.0
107 | tslib: '*'
108 | typescript: '>=3.7.0'
109 | peerDependenciesMeta:
110 | rollup:
111 | optional: true
112 | tslib:
113 | optional: true
114 |
115 | '@rollup/pluginutils@5.1.0':
116 | resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==}
117 | engines: {node: '>=14.0.0'}
118 | peerDependencies:
119 | rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
120 | peerDependenciesMeta:
121 | rollup:
122 | optional: true
123 |
124 | '@rollup/rollup-android-arm-eabi@4.18.0':
125 | resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==}
126 | cpu: [arm]
127 | os: [android]
128 |
129 | '@rollup/rollup-android-arm64@4.18.0':
130 | resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==}
131 | cpu: [arm64]
132 | os: [android]
133 |
134 | '@rollup/rollup-darwin-arm64@4.18.0':
135 | resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==}
136 | cpu: [arm64]
137 | os: [darwin]
138 |
139 | '@rollup/rollup-darwin-x64@4.18.0':
140 | resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==}
141 | cpu: [x64]
142 | os: [darwin]
143 |
144 | '@rollup/rollup-linux-arm-gnueabihf@4.18.0':
145 | resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==}
146 | cpu: [arm]
147 | os: [linux]
148 |
149 | '@rollup/rollup-linux-arm-musleabihf@4.18.0':
150 | resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==}
151 | cpu: [arm]
152 | os: [linux]
153 |
154 | '@rollup/rollup-linux-arm64-gnu@4.18.0':
155 | resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==}
156 | cpu: [arm64]
157 | os: [linux]
158 |
159 | '@rollup/rollup-linux-arm64-musl@4.18.0':
160 | resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==}
161 | cpu: [arm64]
162 | os: [linux]
163 |
164 | '@rollup/rollup-linux-powerpc64le-gnu@4.18.0':
165 | resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==}
166 | cpu: [ppc64]
167 | os: [linux]
168 |
169 | '@rollup/rollup-linux-riscv64-gnu@4.18.0':
170 | resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==}
171 | cpu: [riscv64]
172 | os: [linux]
173 |
174 | '@rollup/rollup-linux-s390x-gnu@4.18.0':
175 | resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==}
176 | cpu: [s390x]
177 | os: [linux]
178 |
179 | '@rollup/rollup-linux-x64-gnu@4.18.0':
180 | resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==}
181 | cpu: [x64]
182 | os: [linux]
183 |
184 | '@rollup/rollup-linux-x64-musl@4.18.0':
185 | resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==}
186 | cpu: [x64]
187 | os: [linux]
188 |
189 | '@rollup/rollup-win32-arm64-msvc@4.18.0':
190 | resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==}
191 | cpu: [arm64]
192 | os: [win32]
193 |
194 | '@rollup/rollup-win32-ia32-msvc@4.18.0':
195 | resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==}
196 | cpu: [ia32]
197 | os: [win32]
198 |
199 | '@rollup/rollup-win32-x64-msvc@4.18.0':
200 | resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==}
201 | cpu: [x64]
202 | os: [win32]
203 |
204 | '@trysound/sax@0.2.0':
205 | resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
206 | engines: {node: '>=10.13.0'}
207 |
208 | '@tweenjs/tween.js@23.1.2':
209 | resolution: {integrity: sha512-kMCNaZCJugWI86xiEHaY338CU5JpD0B97p1j1IKNn/Zto8PgACjQx0UxbHjmOcLl/dDOBnItwD07KmCs75pxtQ==}
210 |
211 | '@types/estree@1.0.5':
212 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
213 |
214 | '@types/resolve@1.20.2':
215 | resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
216 |
217 | '@types/stats.js@0.17.3':
218 | resolution: {integrity: sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==}
219 |
220 | '@types/three@0.165.0':
221 | resolution: {integrity: sha512-AJK8JZAFNBF0kBXiAIl5pggYlzAGGA8geVYQXAcPCEDRbyA+oEjkpUBcJJrtNz6IiALwzGexFJGZG2yV3WsYBw==}
222 |
223 | '@types/webxr@0.5.16':
224 | resolution: {integrity: sha512-0E0Cl84FECtzrB4qG19TNTqpunw0F1YF0QZZnFMF6pDw1kNKJtrlTKlVB34stGIsHbZsYQ7H0tNjPfZftkHHoA==}
225 |
226 | acorn@8.11.3:
227 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==}
228 | engines: {node: '>=0.4.0'}
229 | hasBin: true
230 |
231 | ansi-styles@4.3.0:
232 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
233 | engines: {node: '>=8'}
234 |
235 | anymatch@3.1.3:
236 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
237 | engines: {node: '>= 8'}
238 |
239 | binary-extensions@2.3.0:
240 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
241 | engines: {node: '>=8'}
242 |
243 | boolbase@1.0.0:
244 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
245 |
246 | braces@3.0.3:
247 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
248 | engines: {node: '>=8'}
249 |
250 | browserslist@4.23.0:
251 | resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
252 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
253 | hasBin: true
254 |
255 | buffer-from@1.1.2:
256 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
257 |
258 | builtin-modules@3.3.0:
259 | resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
260 | engines: {node: '>=6'}
261 |
262 | caniuse-api@3.0.0:
263 | resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
264 |
265 | caniuse-lite@1.0.30001625:
266 | resolution: {integrity: sha512-4KE9N2gcRH+HQhpeiRZXd+1niLB/XNLAhSy4z7fI8EzcbcPoAqjNInxVHTiTwWfTIV4w096XG8OtCOCQQKPv3w==}
267 |
268 | chalk@4.1.2:
269 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
270 | engines: {node: '>=10'}
271 |
272 | chokidar@3.6.0:
273 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
274 | engines: {node: '>= 8.10.0'}
275 |
276 | color-convert@2.0.1:
277 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
278 | engines: {node: '>=7.0.0'}
279 |
280 | color-name@1.1.4:
281 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
282 |
283 | colord@2.9.3:
284 | resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
285 |
286 | commander@2.20.3:
287 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
288 |
289 | commander@7.2.0:
290 | resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
291 | engines: {node: '>= 10'}
292 |
293 | concat-with-sourcemaps@1.1.0:
294 | resolution: {integrity: sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==}
295 |
296 | css-declaration-sorter@6.4.1:
297 | resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==}
298 | engines: {node: ^10 || ^12 || >=14}
299 | peerDependencies:
300 | postcss: ^8.0.9
301 |
302 | css-select@4.3.0:
303 | resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==}
304 |
305 | css-tree@1.1.3:
306 | resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==}
307 | engines: {node: '>=8.0.0'}
308 |
309 | css-what@6.1.0:
310 | resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
311 | engines: {node: '>= 6'}
312 |
313 | cssesc@3.0.0:
314 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
315 | engines: {node: '>=4'}
316 | hasBin: true
317 |
318 | cssnano-preset-default@5.2.14:
319 | resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==}
320 | engines: {node: ^10 || ^12 || >=14.0}
321 | peerDependencies:
322 | postcss: ^8.2.15
323 |
324 | cssnano-utils@3.1.0:
325 | resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==}
326 | engines: {node: ^10 || ^12 || >=14.0}
327 | peerDependencies:
328 | postcss: ^8.2.15
329 |
330 | cssnano@5.1.15:
331 | resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==}
332 | engines: {node: ^10 || ^12 || >=14.0}
333 | peerDependencies:
334 | postcss: ^8.2.15
335 |
336 | csso@4.2.0:
337 | resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==}
338 | engines: {node: '>=8.0.0'}
339 |
340 | deepmerge@4.3.1:
341 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
342 | engines: {node: '>=0.10.0'}
343 |
344 | dom-serializer@1.4.1:
345 | resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
346 |
347 | domelementtype@2.3.0:
348 | resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
349 |
350 | domhandler@4.3.1:
351 | resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==}
352 | engines: {node: '>= 4'}
353 |
354 | domutils@2.8.0:
355 | resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
356 |
357 | electron-to-chromium@1.4.788:
358 | resolution: {integrity: sha512-ubp5+Ev/VV8KuRoWnfP2QF2Bg+O2ZFdb49DiiNbz2VmgkIqrnyYaqIOqj8A6K/3p1xV0QcU5hBQ1+BmB6ot1OA==}
359 |
360 | entities@2.2.0:
361 | resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
362 |
363 | escalade@3.1.2:
364 | resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
365 | engines: {node: '>=6'}
366 |
367 | estree-walker@0.6.1:
368 | resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==}
369 |
370 | estree-walker@2.0.2:
371 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
372 |
373 | eventemitter3@4.0.7:
374 | resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
375 |
376 | fflate@0.8.2:
377 | resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==}
378 |
379 | fill-range@7.1.1:
380 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
381 | engines: {node: '>=8'}
382 |
383 | fsevents@2.3.3:
384 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
385 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
386 | os: [darwin]
387 |
388 | function-bind@1.1.2:
389 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
390 |
391 | generic-names@4.0.0:
392 | resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==}
393 |
394 | glob-parent@5.1.2:
395 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
396 | engines: {node: '>= 6'}
397 |
398 | has-flag@4.0.0:
399 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
400 | engines: {node: '>=8'}
401 |
402 | hasown@2.0.2:
403 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
404 | engines: {node: '>= 0.4'}
405 |
406 | icss-replace-symbols@1.1.0:
407 | resolution: {integrity: sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==}
408 |
409 | icss-utils@5.1.0:
410 | resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==}
411 | engines: {node: ^10 || ^12 || >= 14}
412 | peerDependencies:
413 | postcss: ^8.1.0
414 |
415 | import-cwd@3.0.0:
416 | resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==}
417 | engines: {node: '>=8'}
418 |
419 | import-from@3.0.0:
420 | resolution: {integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==}
421 | engines: {node: '>=8'}
422 |
423 | is-binary-path@2.1.0:
424 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
425 | engines: {node: '>=8'}
426 |
427 | is-builtin-module@3.2.1:
428 | resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
429 | engines: {node: '>=6'}
430 |
431 | is-core-module@2.13.1:
432 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
433 |
434 | is-extglob@2.1.1:
435 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
436 | engines: {node: '>=0.10.0'}
437 |
438 | is-glob@4.0.3:
439 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
440 | engines: {node: '>=0.10.0'}
441 |
442 | is-module@1.0.0:
443 | resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
444 |
445 | is-number@7.0.0:
446 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
447 | engines: {node: '>=0.12.0'}
448 |
449 | lilconfig@2.1.0:
450 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
451 | engines: {node: '>=10'}
452 |
453 | livereload-js@3.4.1:
454 | resolution: {integrity: sha512-5MP0uUeVCec89ZbNOT/i97Mc+q3SxXmiUGhRFOTmhrGPn//uWVQdCvcLJDy64MSBR5MidFdOR7B9viumoavy6g==}
455 |
456 | livereload@0.9.3:
457 | resolution: {integrity: sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw==}
458 | engines: {node: '>=8.0.0'}
459 | hasBin: true
460 |
461 | loader-utils@3.2.2:
462 | resolution: {integrity: sha512-vjJi4vQDasD8t0kMpxe+9URAcgbSuASqoj/Wuk3MawTk97LYa2KfdHreAkd1G/pmPLMvzZEw7/OsydADNemerQ==}
463 | engines: {node: '>= 12.13.0'}
464 |
465 | lodash.camelcase@4.3.0:
466 | resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
467 |
468 | lodash.memoize@4.1.2:
469 | resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
470 |
471 | lodash.uniq@4.5.0:
472 | resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
473 |
474 | mdn-data@2.0.14:
475 | resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==}
476 |
477 | meshoptimizer@0.18.1:
478 | resolution: {integrity: sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==}
479 |
480 | mime@4.0.3:
481 | resolution: {integrity: sha512-KgUb15Oorc0NEKPbvfa0wRU+PItIEZmiv+pyAO2i0oTIVTJhlzMclU7w4RXWQrSOVH5ax/p/CkIO7KI4OyFJTQ==}
482 | engines: {node: '>=16'}
483 | hasBin: true
484 |
485 | nanoid@3.3.7:
486 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
487 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
488 | hasBin: true
489 |
490 | node-releases@2.0.14:
491 | resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
492 |
493 | normalize-path@3.0.0:
494 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
495 | engines: {node: '>=0.10.0'}
496 |
497 | normalize-url@6.1.0:
498 | resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
499 | engines: {node: '>=10'}
500 |
501 | nth-check@2.1.1:
502 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
503 |
504 | opener@1.5.2:
505 | resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
506 | hasBin: true
507 |
508 | opts@2.0.2:
509 | resolution: {integrity: sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==}
510 |
511 | p-finally@1.0.0:
512 | resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
513 | engines: {node: '>=4'}
514 |
515 | p-queue@6.6.2:
516 | resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==}
517 | engines: {node: '>=8'}
518 |
519 | p-timeout@3.2.0:
520 | resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
521 | engines: {node: '>=8'}
522 |
523 | path-parse@1.0.7:
524 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
525 |
526 | picocolors@1.0.1:
527 | resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==}
528 |
529 | picomatch@2.3.1:
530 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
531 | engines: {node: '>=8.6'}
532 |
533 | pify@5.0.0:
534 | resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==}
535 | engines: {node: '>=10'}
536 |
537 | postcss-calc@8.2.4:
538 | resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==}
539 | peerDependencies:
540 | postcss: ^8.2.2
541 |
542 | postcss-colormin@5.3.1:
543 | resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==}
544 | engines: {node: ^10 || ^12 || >=14.0}
545 | peerDependencies:
546 | postcss: ^8.2.15
547 |
548 | postcss-convert-values@5.1.3:
549 | resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==}
550 | engines: {node: ^10 || ^12 || >=14.0}
551 | peerDependencies:
552 | postcss: ^8.2.15
553 |
554 | postcss-discard-comments@5.1.2:
555 | resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==}
556 | engines: {node: ^10 || ^12 || >=14.0}
557 | peerDependencies:
558 | postcss: ^8.2.15
559 |
560 | postcss-discard-duplicates@5.1.0:
561 | resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==}
562 | engines: {node: ^10 || ^12 || >=14.0}
563 | peerDependencies:
564 | postcss: ^8.2.15
565 |
566 | postcss-discard-empty@5.1.1:
567 | resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==}
568 | engines: {node: ^10 || ^12 || >=14.0}
569 | peerDependencies:
570 | postcss: ^8.2.15
571 |
572 | postcss-discard-overridden@5.1.0:
573 | resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==}
574 | engines: {node: ^10 || ^12 || >=14.0}
575 | peerDependencies:
576 | postcss: ^8.2.15
577 |
578 | postcss-load-config@3.1.4:
579 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
580 | engines: {node: '>= 10'}
581 | peerDependencies:
582 | postcss: '>=8.0.9'
583 | ts-node: '>=9.0.0'
584 | peerDependenciesMeta:
585 | postcss:
586 | optional: true
587 | ts-node:
588 | optional: true
589 |
590 | postcss-merge-longhand@5.1.7:
591 | resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==}
592 | engines: {node: ^10 || ^12 || >=14.0}
593 | peerDependencies:
594 | postcss: ^8.2.15
595 |
596 | postcss-merge-rules@5.1.4:
597 | resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==}
598 | engines: {node: ^10 || ^12 || >=14.0}
599 | peerDependencies:
600 | postcss: ^8.2.15
601 |
602 | postcss-minify-font-values@5.1.0:
603 | resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==}
604 | engines: {node: ^10 || ^12 || >=14.0}
605 | peerDependencies:
606 | postcss: ^8.2.15
607 |
608 | postcss-minify-gradients@5.1.1:
609 | resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==}
610 | engines: {node: ^10 || ^12 || >=14.0}
611 | peerDependencies:
612 | postcss: ^8.2.15
613 |
614 | postcss-minify-params@5.1.4:
615 | resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==}
616 | engines: {node: ^10 || ^12 || >=14.0}
617 | peerDependencies:
618 | postcss: ^8.2.15
619 |
620 | postcss-minify-selectors@5.2.1:
621 | resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==}
622 | engines: {node: ^10 || ^12 || >=14.0}
623 | peerDependencies:
624 | postcss: ^8.2.15
625 |
626 | postcss-modules-extract-imports@3.1.0:
627 | resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==}
628 | engines: {node: ^10 || ^12 || >= 14}
629 | peerDependencies:
630 | postcss: ^8.1.0
631 |
632 | postcss-modules-local-by-default@4.0.5:
633 | resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==}
634 | engines: {node: ^10 || ^12 || >= 14}
635 | peerDependencies:
636 | postcss: ^8.1.0
637 |
638 | postcss-modules-scope@3.2.0:
639 | resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==}
640 | engines: {node: ^10 || ^12 || >= 14}
641 | peerDependencies:
642 | postcss: ^8.1.0
643 |
644 | postcss-modules-values@4.0.0:
645 | resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==}
646 | engines: {node: ^10 || ^12 || >= 14}
647 | peerDependencies:
648 | postcss: ^8.1.0
649 |
650 | postcss-modules@4.3.1:
651 | resolution: {integrity: sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==}
652 | peerDependencies:
653 | postcss: ^8.0.0
654 |
655 | postcss-normalize-charset@5.1.0:
656 | resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==}
657 | engines: {node: ^10 || ^12 || >=14.0}
658 | peerDependencies:
659 | postcss: ^8.2.15
660 |
661 | postcss-normalize-display-values@5.1.0:
662 | resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==}
663 | engines: {node: ^10 || ^12 || >=14.0}
664 | peerDependencies:
665 | postcss: ^8.2.15
666 |
667 | postcss-normalize-positions@5.1.1:
668 | resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==}
669 | engines: {node: ^10 || ^12 || >=14.0}
670 | peerDependencies:
671 | postcss: ^8.2.15
672 |
673 | postcss-normalize-repeat-style@5.1.1:
674 | resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==}
675 | engines: {node: ^10 || ^12 || >=14.0}
676 | peerDependencies:
677 | postcss: ^8.2.15
678 |
679 | postcss-normalize-string@5.1.0:
680 | resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==}
681 | engines: {node: ^10 || ^12 || >=14.0}
682 | peerDependencies:
683 | postcss: ^8.2.15
684 |
685 | postcss-normalize-timing-functions@5.1.0:
686 | resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==}
687 | engines: {node: ^10 || ^12 || >=14.0}
688 | peerDependencies:
689 | postcss: ^8.2.15
690 |
691 | postcss-normalize-unicode@5.1.1:
692 | resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==}
693 | engines: {node: ^10 || ^12 || >=14.0}
694 | peerDependencies:
695 | postcss: ^8.2.15
696 |
697 | postcss-normalize-url@5.1.0:
698 | resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==}
699 | engines: {node: ^10 || ^12 || >=14.0}
700 | peerDependencies:
701 | postcss: ^8.2.15
702 |
703 | postcss-normalize-whitespace@5.1.1:
704 | resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==}
705 | engines: {node: ^10 || ^12 || >=14.0}
706 | peerDependencies:
707 | postcss: ^8.2.15
708 |
709 | postcss-ordered-values@5.1.3:
710 | resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==}
711 | engines: {node: ^10 || ^12 || >=14.0}
712 | peerDependencies:
713 | postcss: ^8.2.15
714 |
715 | postcss-reduce-initial@5.1.2:
716 | resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==}
717 | engines: {node: ^10 || ^12 || >=14.0}
718 | peerDependencies:
719 | postcss: ^8.2.15
720 |
721 | postcss-reduce-transforms@5.1.0:
722 | resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==}
723 | engines: {node: ^10 || ^12 || >=14.0}
724 | peerDependencies:
725 | postcss: ^8.2.15
726 |
727 | postcss-selector-parser@6.1.0:
728 | resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==}
729 | engines: {node: '>=4'}
730 |
731 | postcss-svgo@5.1.0:
732 | resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==}
733 | engines: {node: ^10 || ^12 || >=14.0}
734 | peerDependencies:
735 | postcss: ^8.2.15
736 |
737 | postcss-unique-selectors@5.1.1:
738 | resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==}
739 | engines: {node: ^10 || ^12 || >=14.0}
740 | peerDependencies:
741 | postcss: ^8.2.15
742 |
743 | postcss-value-parser@4.2.0:
744 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
745 |
746 | postcss@8.4.38:
747 | resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
748 | engines: {node: ^10 || ^12 || >=14}
749 |
750 | promise.series@0.2.0:
751 | resolution: {integrity: sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ==}
752 | engines: {node: '>=0.12'}
753 |
754 | randombytes@2.1.0:
755 | resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
756 |
757 | readdirp@3.6.0:
758 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
759 | engines: {node: '>=8.10.0'}
760 |
761 | resolve-from@5.0.0:
762 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
763 | engines: {node: '>=8'}
764 |
765 | resolve@1.22.8:
766 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
767 | hasBin: true
768 |
769 | rollup-plugin-livereload@2.0.5:
770 | resolution: {integrity: sha512-vqQZ/UQowTW7VoiKEM5ouNW90wE5/GZLfdWuR0ELxyKOJUIaj+uismPZZaICU4DnWPVjnpCDDxEqwU7pcKY/PA==}
771 | engines: {node: '>=8.3'}
772 |
773 | rollup-plugin-postcss@4.0.2:
774 | resolution: {integrity: sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w==}
775 | engines: {node: '>=10'}
776 | peerDependencies:
777 | postcss: 8.x
778 |
779 | rollup-plugin-serve@3.0.0:
780 | resolution: {integrity: sha512-DjVRhbwC0OgP1Q1sj8Lvx12ee60UTZM767kkjT61sYKHw/wLpANAw3VZN5ZMa5NlvO8bYpfTaqiUrW+icAjXFg==}
781 |
782 | rollup-pluginutils@2.8.2:
783 | resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==}
784 |
785 | rollup@4.18.0:
786 | resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==}
787 | engines: {node: '>=18.0.0', npm: '>=8.0.0'}
788 | hasBin: true
789 |
790 | safe-buffer@5.2.1:
791 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
792 |
793 | safe-identifier@0.4.2:
794 | resolution: {integrity: sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==}
795 |
796 | serialize-javascript@6.0.2:
797 | resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
798 |
799 | smob@1.5.0:
800 | resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==}
801 |
802 | source-map-js@1.2.0:
803 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
804 | engines: {node: '>=0.10.0'}
805 |
806 | source-map-support@0.5.21:
807 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
808 |
809 | source-map@0.6.1:
810 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
811 | engines: {node: '>=0.10.0'}
812 |
813 | stable@0.1.8:
814 | resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==}
815 | deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
816 |
817 | string-hash@1.1.3:
818 | resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==}
819 |
820 | style-inject@0.3.0:
821 | resolution: {integrity: sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==}
822 |
823 | stylehacks@5.1.1:
824 | resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==}
825 | engines: {node: ^10 || ^12 || >=14.0}
826 | peerDependencies:
827 | postcss: ^8.2.15
828 |
829 | supports-color@7.2.0:
830 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
831 | engines: {node: '>=8'}
832 |
833 | supports-preserve-symlinks-flag@1.0.0:
834 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
835 | engines: {node: '>= 0.4'}
836 |
837 | svgo@2.8.0:
838 | resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==}
839 | engines: {node: '>=10.13.0'}
840 | hasBin: true
841 |
842 | terser@5.31.0:
843 | resolution: {integrity: sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==}
844 | engines: {node: '>=10'}
845 | hasBin: true
846 |
847 | three@0.165.0:
848 | resolution: {integrity: sha512-cc96IlVYGydeceu0e5xq70H8/yoVT/tXBxV/W8A/U6uOq7DXc4/s1Mkmnu6SqoYGhSRWWYFOhVwvq6V0VtbplA==}
849 |
850 | to-regex-range@5.0.1:
851 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
852 | engines: {node: '>=8.0'}
853 |
854 | tslib@2.6.2:
855 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
856 |
857 | typescript@5.4.5:
858 | resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==}
859 | engines: {node: '>=14.17'}
860 | hasBin: true
861 |
862 | update-browserslist-db@1.0.16:
863 | resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==}
864 | hasBin: true
865 | peerDependencies:
866 | browserslist: '>= 4.21.0'
867 |
868 | util-deprecate@1.0.2:
869 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
870 |
871 | ws@7.5.9:
872 | resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==}
873 | engines: {node: '>=8.3.0'}
874 | peerDependencies:
875 | bufferutil: ^4.0.1
876 | utf-8-validate: ^5.0.2
877 | peerDependenciesMeta:
878 | bufferutil:
879 | optional: true
880 | utf-8-validate:
881 | optional: true
882 |
883 | yaml@1.10.2:
884 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
885 | engines: {node: '>= 6'}
886 |
887 | snapshots:
888 |
889 | '@jridgewell/gen-mapping@0.3.5':
890 | dependencies:
891 | '@jridgewell/set-array': 1.2.1
892 | '@jridgewell/sourcemap-codec': 1.4.15
893 | '@jridgewell/trace-mapping': 0.3.25
894 |
895 | '@jridgewell/resolve-uri@3.1.2': {}
896 |
897 | '@jridgewell/set-array@1.2.1': {}
898 |
899 | '@jridgewell/source-map@0.3.6':
900 | dependencies:
901 | '@jridgewell/gen-mapping': 0.3.5
902 | '@jridgewell/trace-mapping': 0.3.25
903 |
904 | '@jridgewell/sourcemap-codec@1.4.15': {}
905 |
906 | '@jridgewell/trace-mapping@0.3.25':
907 | dependencies:
908 | '@jridgewell/resolve-uri': 3.1.2
909 | '@jridgewell/sourcemap-codec': 1.4.15
910 |
911 | '@rollup/plugin-html@1.0.3(rollup@4.18.0)':
912 | optionalDependencies:
913 | rollup: 4.18.0
914 |
915 | '@rollup/plugin-node-resolve@15.2.3(rollup@4.18.0)':
916 | dependencies:
917 | '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
918 | '@types/resolve': 1.20.2
919 | deepmerge: 4.3.1
920 | is-builtin-module: 3.2.1
921 | is-module: 1.0.0
922 | resolve: 1.22.8
923 | optionalDependencies:
924 | rollup: 4.18.0
925 |
926 | '@rollup/plugin-terser@0.4.4(rollup@4.18.0)':
927 | dependencies:
928 | serialize-javascript: 6.0.2
929 | smob: 1.5.0
930 | terser: 5.31.0
931 | optionalDependencies:
932 | rollup: 4.18.0
933 |
934 | '@rollup/plugin-typescript@11.1.6(rollup@4.18.0)(tslib@2.6.2)(typescript@5.4.5)':
935 | dependencies:
936 | '@rollup/pluginutils': 5.1.0(rollup@4.18.0)
937 | resolve: 1.22.8
938 | typescript: 5.4.5
939 | optionalDependencies:
940 | rollup: 4.18.0
941 | tslib: 2.6.2
942 |
943 | '@rollup/pluginutils@5.1.0(rollup@4.18.0)':
944 | dependencies:
945 | '@types/estree': 1.0.5
946 | estree-walker: 2.0.2
947 | picomatch: 2.3.1
948 | optionalDependencies:
949 | rollup: 4.18.0
950 |
951 | '@rollup/rollup-android-arm-eabi@4.18.0':
952 | optional: true
953 |
954 | '@rollup/rollup-android-arm64@4.18.0':
955 | optional: true
956 |
957 | '@rollup/rollup-darwin-arm64@4.18.0':
958 | optional: true
959 |
960 | '@rollup/rollup-darwin-x64@4.18.0':
961 | optional: true
962 |
963 | '@rollup/rollup-linux-arm-gnueabihf@4.18.0':
964 | optional: true
965 |
966 | '@rollup/rollup-linux-arm-musleabihf@4.18.0':
967 | optional: true
968 |
969 | '@rollup/rollup-linux-arm64-gnu@4.18.0':
970 | optional: true
971 |
972 | '@rollup/rollup-linux-arm64-musl@4.18.0':
973 | optional: true
974 |
975 | '@rollup/rollup-linux-powerpc64le-gnu@4.18.0':
976 | optional: true
977 |
978 | '@rollup/rollup-linux-riscv64-gnu@4.18.0':
979 | optional: true
980 |
981 | '@rollup/rollup-linux-s390x-gnu@4.18.0':
982 | optional: true
983 |
984 | '@rollup/rollup-linux-x64-gnu@4.18.0':
985 | optional: true
986 |
987 | '@rollup/rollup-linux-x64-musl@4.18.0':
988 | optional: true
989 |
990 | '@rollup/rollup-win32-arm64-msvc@4.18.0':
991 | optional: true
992 |
993 | '@rollup/rollup-win32-ia32-msvc@4.18.0':
994 | optional: true
995 |
996 | '@rollup/rollup-win32-x64-msvc@4.18.0':
997 | optional: true
998 |
999 | '@trysound/sax@0.2.0': {}
1000 |
1001 | '@tweenjs/tween.js@23.1.2': {}
1002 |
1003 | '@types/estree@1.0.5': {}
1004 |
1005 | '@types/resolve@1.20.2': {}
1006 |
1007 | '@types/stats.js@0.17.3': {}
1008 |
1009 | '@types/three@0.165.0':
1010 | dependencies:
1011 | '@tweenjs/tween.js': 23.1.2
1012 | '@types/stats.js': 0.17.3
1013 | '@types/webxr': 0.5.16
1014 | fflate: 0.8.2
1015 | meshoptimizer: 0.18.1
1016 |
1017 | '@types/webxr@0.5.16': {}
1018 |
1019 | acorn@8.11.3: {}
1020 |
1021 | ansi-styles@4.3.0:
1022 | dependencies:
1023 | color-convert: 2.0.1
1024 |
1025 | anymatch@3.1.3:
1026 | dependencies:
1027 | normalize-path: 3.0.0
1028 | picomatch: 2.3.1
1029 |
1030 | binary-extensions@2.3.0: {}
1031 |
1032 | boolbase@1.0.0: {}
1033 |
1034 | braces@3.0.3:
1035 | dependencies:
1036 | fill-range: 7.1.1
1037 |
1038 | browserslist@4.23.0:
1039 | dependencies:
1040 | caniuse-lite: 1.0.30001625
1041 | electron-to-chromium: 1.4.788
1042 | node-releases: 2.0.14
1043 | update-browserslist-db: 1.0.16(browserslist@4.23.0)
1044 |
1045 | buffer-from@1.1.2: {}
1046 |
1047 | builtin-modules@3.3.0: {}
1048 |
1049 | caniuse-api@3.0.0:
1050 | dependencies:
1051 | browserslist: 4.23.0
1052 | caniuse-lite: 1.0.30001625
1053 | lodash.memoize: 4.1.2
1054 | lodash.uniq: 4.5.0
1055 |
1056 | caniuse-lite@1.0.30001625: {}
1057 |
1058 | chalk@4.1.2:
1059 | dependencies:
1060 | ansi-styles: 4.3.0
1061 | supports-color: 7.2.0
1062 |
1063 | chokidar@3.6.0:
1064 | dependencies:
1065 | anymatch: 3.1.3
1066 | braces: 3.0.3
1067 | glob-parent: 5.1.2
1068 | is-binary-path: 2.1.0
1069 | is-glob: 4.0.3
1070 | normalize-path: 3.0.0
1071 | readdirp: 3.6.0
1072 | optionalDependencies:
1073 | fsevents: 2.3.3
1074 |
1075 | color-convert@2.0.1:
1076 | dependencies:
1077 | color-name: 1.1.4
1078 |
1079 | color-name@1.1.4: {}
1080 |
1081 | colord@2.9.3: {}
1082 |
1083 | commander@2.20.3: {}
1084 |
1085 | commander@7.2.0: {}
1086 |
1087 | concat-with-sourcemaps@1.1.0:
1088 | dependencies:
1089 | source-map: 0.6.1
1090 |
1091 | css-declaration-sorter@6.4.1(postcss@8.4.38):
1092 | dependencies:
1093 | postcss: 8.4.38
1094 |
1095 | css-select@4.3.0:
1096 | dependencies:
1097 | boolbase: 1.0.0
1098 | css-what: 6.1.0
1099 | domhandler: 4.3.1
1100 | domutils: 2.8.0
1101 | nth-check: 2.1.1
1102 |
1103 | css-tree@1.1.3:
1104 | dependencies:
1105 | mdn-data: 2.0.14
1106 | source-map: 0.6.1
1107 |
1108 | css-what@6.1.0: {}
1109 |
1110 | cssesc@3.0.0: {}
1111 |
1112 | cssnano-preset-default@5.2.14(postcss@8.4.38):
1113 | dependencies:
1114 | css-declaration-sorter: 6.4.1(postcss@8.4.38)
1115 | cssnano-utils: 3.1.0(postcss@8.4.38)
1116 | postcss: 8.4.38
1117 | postcss-calc: 8.2.4(postcss@8.4.38)
1118 | postcss-colormin: 5.3.1(postcss@8.4.38)
1119 | postcss-convert-values: 5.1.3(postcss@8.4.38)
1120 | postcss-discard-comments: 5.1.2(postcss@8.4.38)
1121 | postcss-discard-duplicates: 5.1.0(postcss@8.4.38)
1122 | postcss-discard-empty: 5.1.1(postcss@8.4.38)
1123 | postcss-discard-overridden: 5.1.0(postcss@8.4.38)
1124 | postcss-merge-longhand: 5.1.7(postcss@8.4.38)
1125 | postcss-merge-rules: 5.1.4(postcss@8.4.38)
1126 | postcss-minify-font-values: 5.1.0(postcss@8.4.38)
1127 | postcss-minify-gradients: 5.1.1(postcss@8.4.38)
1128 | postcss-minify-params: 5.1.4(postcss@8.4.38)
1129 | postcss-minify-selectors: 5.2.1(postcss@8.4.38)
1130 | postcss-normalize-charset: 5.1.0(postcss@8.4.38)
1131 | postcss-normalize-display-values: 5.1.0(postcss@8.4.38)
1132 | postcss-normalize-positions: 5.1.1(postcss@8.4.38)
1133 | postcss-normalize-repeat-style: 5.1.1(postcss@8.4.38)
1134 | postcss-normalize-string: 5.1.0(postcss@8.4.38)
1135 | postcss-normalize-timing-functions: 5.1.0(postcss@8.4.38)
1136 | postcss-normalize-unicode: 5.1.1(postcss@8.4.38)
1137 | postcss-normalize-url: 5.1.0(postcss@8.4.38)
1138 | postcss-normalize-whitespace: 5.1.1(postcss@8.4.38)
1139 | postcss-ordered-values: 5.1.3(postcss@8.4.38)
1140 | postcss-reduce-initial: 5.1.2(postcss@8.4.38)
1141 | postcss-reduce-transforms: 5.1.0(postcss@8.4.38)
1142 | postcss-svgo: 5.1.0(postcss@8.4.38)
1143 | postcss-unique-selectors: 5.1.1(postcss@8.4.38)
1144 |
1145 | cssnano-utils@3.1.0(postcss@8.4.38):
1146 | dependencies:
1147 | postcss: 8.4.38
1148 |
1149 | cssnano@5.1.15(postcss@8.4.38):
1150 | dependencies:
1151 | cssnano-preset-default: 5.2.14(postcss@8.4.38)
1152 | lilconfig: 2.1.0
1153 | postcss: 8.4.38
1154 | yaml: 1.10.2
1155 |
1156 | csso@4.2.0:
1157 | dependencies:
1158 | css-tree: 1.1.3
1159 |
1160 | deepmerge@4.3.1: {}
1161 |
1162 | dom-serializer@1.4.1:
1163 | dependencies:
1164 | domelementtype: 2.3.0
1165 | domhandler: 4.3.1
1166 | entities: 2.2.0
1167 |
1168 | domelementtype@2.3.0: {}
1169 |
1170 | domhandler@4.3.1:
1171 | dependencies:
1172 | domelementtype: 2.3.0
1173 |
1174 | domutils@2.8.0:
1175 | dependencies:
1176 | dom-serializer: 1.4.1
1177 | domelementtype: 2.3.0
1178 | domhandler: 4.3.1
1179 |
1180 | electron-to-chromium@1.4.788: {}
1181 |
1182 | entities@2.2.0: {}
1183 |
1184 | escalade@3.1.2: {}
1185 |
1186 | estree-walker@0.6.1: {}
1187 |
1188 | estree-walker@2.0.2: {}
1189 |
1190 | eventemitter3@4.0.7: {}
1191 |
1192 | fflate@0.8.2: {}
1193 |
1194 | fill-range@7.1.1:
1195 | dependencies:
1196 | to-regex-range: 5.0.1
1197 |
1198 | fsevents@2.3.3:
1199 | optional: true
1200 |
1201 | function-bind@1.1.2: {}
1202 |
1203 | generic-names@4.0.0:
1204 | dependencies:
1205 | loader-utils: 3.2.2
1206 |
1207 | glob-parent@5.1.2:
1208 | dependencies:
1209 | is-glob: 4.0.3
1210 |
1211 | has-flag@4.0.0: {}
1212 |
1213 | hasown@2.0.2:
1214 | dependencies:
1215 | function-bind: 1.1.2
1216 |
1217 | icss-replace-symbols@1.1.0: {}
1218 |
1219 | icss-utils@5.1.0(postcss@8.4.38):
1220 | dependencies:
1221 | postcss: 8.4.38
1222 |
1223 | import-cwd@3.0.0:
1224 | dependencies:
1225 | import-from: 3.0.0
1226 |
1227 | import-from@3.0.0:
1228 | dependencies:
1229 | resolve-from: 5.0.0
1230 |
1231 | is-binary-path@2.1.0:
1232 | dependencies:
1233 | binary-extensions: 2.3.0
1234 |
1235 | is-builtin-module@3.2.1:
1236 | dependencies:
1237 | builtin-modules: 3.3.0
1238 |
1239 | is-core-module@2.13.1:
1240 | dependencies:
1241 | hasown: 2.0.2
1242 |
1243 | is-extglob@2.1.1: {}
1244 |
1245 | is-glob@4.0.3:
1246 | dependencies:
1247 | is-extglob: 2.1.1
1248 |
1249 | is-module@1.0.0: {}
1250 |
1251 | is-number@7.0.0: {}
1252 |
1253 | lilconfig@2.1.0: {}
1254 |
1255 | livereload-js@3.4.1: {}
1256 |
1257 | livereload@0.9.3:
1258 | dependencies:
1259 | chokidar: 3.6.0
1260 | livereload-js: 3.4.1
1261 | opts: 2.0.2
1262 | ws: 7.5.9
1263 | transitivePeerDependencies:
1264 | - bufferutil
1265 | - utf-8-validate
1266 |
1267 | loader-utils@3.2.2: {}
1268 |
1269 | lodash.camelcase@4.3.0: {}
1270 |
1271 | lodash.memoize@4.1.2: {}
1272 |
1273 | lodash.uniq@4.5.0: {}
1274 |
1275 | mdn-data@2.0.14: {}
1276 |
1277 | meshoptimizer@0.18.1: {}
1278 |
1279 | mime@4.0.3: {}
1280 |
1281 | nanoid@3.3.7: {}
1282 |
1283 | node-releases@2.0.14: {}
1284 |
1285 | normalize-path@3.0.0: {}
1286 |
1287 | normalize-url@6.1.0: {}
1288 |
1289 | nth-check@2.1.1:
1290 | dependencies:
1291 | boolbase: 1.0.0
1292 |
1293 | opener@1.5.2: {}
1294 |
1295 | opts@2.0.2: {}
1296 |
1297 | p-finally@1.0.0: {}
1298 |
1299 | p-queue@6.6.2:
1300 | dependencies:
1301 | eventemitter3: 4.0.7
1302 | p-timeout: 3.2.0
1303 |
1304 | p-timeout@3.2.0:
1305 | dependencies:
1306 | p-finally: 1.0.0
1307 |
1308 | path-parse@1.0.7: {}
1309 |
1310 | picocolors@1.0.1: {}
1311 |
1312 | picomatch@2.3.1: {}
1313 |
1314 | pify@5.0.0: {}
1315 |
1316 | postcss-calc@8.2.4(postcss@8.4.38):
1317 | dependencies:
1318 | postcss: 8.4.38
1319 | postcss-selector-parser: 6.1.0
1320 | postcss-value-parser: 4.2.0
1321 |
1322 | postcss-colormin@5.3.1(postcss@8.4.38):
1323 | dependencies:
1324 | browserslist: 4.23.0
1325 | caniuse-api: 3.0.0
1326 | colord: 2.9.3
1327 | postcss: 8.4.38
1328 | postcss-value-parser: 4.2.0
1329 |
1330 | postcss-convert-values@5.1.3(postcss@8.4.38):
1331 | dependencies:
1332 | browserslist: 4.23.0
1333 | postcss: 8.4.38
1334 | postcss-value-parser: 4.2.0
1335 |
1336 | postcss-discard-comments@5.1.2(postcss@8.4.38):
1337 | dependencies:
1338 | postcss: 8.4.38
1339 |
1340 | postcss-discard-duplicates@5.1.0(postcss@8.4.38):
1341 | dependencies:
1342 | postcss: 8.4.38
1343 |
1344 | postcss-discard-empty@5.1.1(postcss@8.4.38):
1345 | dependencies:
1346 | postcss: 8.4.38
1347 |
1348 | postcss-discard-overridden@5.1.0(postcss@8.4.38):
1349 | dependencies:
1350 | postcss: 8.4.38
1351 |
1352 | postcss-load-config@3.1.4(postcss@8.4.38):
1353 | dependencies:
1354 | lilconfig: 2.1.0
1355 | yaml: 1.10.2
1356 | optionalDependencies:
1357 | postcss: 8.4.38
1358 |
1359 | postcss-merge-longhand@5.1.7(postcss@8.4.38):
1360 | dependencies:
1361 | postcss: 8.4.38
1362 | postcss-value-parser: 4.2.0
1363 | stylehacks: 5.1.1(postcss@8.4.38)
1364 |
1365 | postcss-merge-rules@5.1.4(postcss@8.4.38):
1366 | dependencies:
1367 | browserslist: 4.23.0
1368 | caniuse-api: 3.0.0
1369 | cssnano-utils: 3.1.0(postcss@8.4.38)
1370 | postcss: 8.4.38
1371 | postcss-selector-parser: 6.1.0
1372 |
1373 | postcss-minify-font-values@5.1.0(postcss@8.4.38):
1374 | dependencies:
1375 | postcss: 8.4.38
1376 | postcss-value-parser: 4.2.0
1377 |
1378 | postcss-minify-gradients@5.1.1(postcss@8.4.38):
1379 | dependencies:
1380 | colord: 2.9.3
1381 | cssnano-utils: 3.1.0(postcss@8.4.38)
1382 | postcss: 8.4.38
1383 | postcss-value-parser: 4.2.0
1384 |
1385 | postcss-minify-params@5.1.4(postcss@8.4.38):
1386 | dependencies:
1387 | browserslist: 4.23.0
1388 | cssnano-utils: 3.1.0(postcss@8.4.38)
1389 | postcss: 8.4.38
1390 | postcss-value-parser: 4.2.0
1391 |
1392 | postcss-minify-selectors@5.2.1(postcss@8.4.38):
1393 | dependencies:
1394 | postcss: 8.4.38
1395 | postcss-selector-parser: 6.1.0
1396 |
1397 | postcss-modules-extract-imports@3.1.0(postcss@8.4.38):
1398 | dependencies:
1399 | postcss: 8.4.38
1400 |
1401 | postcss-modules-local-by-default@4.0.5(postcss@8.4.38):
1402 | dependencies:
1403 | icss-utils: 5.1.0(postcss@8.4.38)
1404 | postcss: 8.4.38
1405 | postcss-selector-parser: 6.1.0
1406 | postcss-value-parser: 4.2.0
1407 |
1408 | postcss-modules-scope@3.2.0(postcss@8.4.38):
1409 | dependencies:
1410 | postcss: 8.4.38
1411 | postcss-selector-parser: 6.1.0
1412 |
1413 | postcss-modules-values@4.0.0(postcss@8.4.38):
1414 | dependencies:
1415 | icss-utils: 5.1.0(postcss@8.4.38)
1416 | postcss: 8.4.38
1417 |
1418 | postcss-modules@4.3.1(postcss@8.4.38):
1419 | dependencies:
1420 | generic-names: 4.0.0
1421 | icss-replace-symbols: 1.1.0
1422 | lodash.camelcase: 4.3.0
1423 | postcss: 8.4.38
1424 | postcss-modules-extract-imports: 3.1.0(postcss@8.4.38)
1425 | postcss-modules-local-by-default: 4.0.5(postcss@8.4.38)
1426 | postcss-modules-scope: 3.2.0(postcss@8.4.38)
1427 | postcss-modules-values: 4.0.0(postcss@8.4.38)
1428 | string-hash: 1.1.3
1429 |
1430 | postcss-normalize-charset@5.1.0(postcss@8.4.38):
1431 | dependencies:
1432 | postcss: 8.4.38
1433 |
1434 | postcss-normalize-display-values@5.1.0(postcss@8.4.38):
1435 | dependencies:
1436 | postcss: 8.4.38
1437 | postcss-value-parser: 4.2.0
1438 |
1439 | postcss-normalize-positions@5.1.1(postcss@8.4.38):
1440 | dependencies:
1441 | postcss: 8.4.38
1442 | postcss-value-parser: 4.2.0
1443 |
1444 | postcss-normalize-repeat-style@5.1.1(postcss@8.4.38):
1445 | dependencies:
1446 | postcss: 8.4.38
1447 | postcss-value-parser: 4.2.0
1448 |
1449 | postcss-normalize-string@5.1.0(postcss@8.4.38):
1450 | dependencies:
1451 | postcss: 8.4.38
1452 | postcss-value-parser: 4.2.0
1453 |
1454 | postcss-normalize-timing-functions@5.1.0(postcss@8.4.38):
1455 | dependencies:
1456 | postcss: 8.4.38
1457 | postcss-value-parser: 4.2.0
1458 |
1459 | postcss-normalize-unicode@5.1.1(postcss@8.4.38):
1460 | dependencies:
1461 | browserslist: 4.23.0
1462 | postcss: 8.4.38
1463 | postcss-value-parser: 4.2.0
1464 |
1465 | postcss-normalize-url@5.1.0(postcss@8.4.38):
1466 | dependencies:
1467 | normalize-url: 6.1.0
1468 | postcss: 8.4.38
1469 | postcss-value-parser: 4.2.0
1470 |
1471 | postcss-normalize-whitespace@5.1.1(postcss@8.4.38):
1472 | dependencies:
1473 | postcss: 8.4.38
1474 | postcss-value-parser: 4.2.0
1475 |
1476 | postcss-ordered-values@5.1.3(postcss@8.4.38):
1477 | dependencies:
1478 | cssnano-utils: 3.1.0(postcss@8.4.38)
1479 | postcss: 8.4.38
1480 | postcss-value-parser: 4.2.0
1481 |
1482 | postcss-reduce-initial@5.1.2(postcss@8.4.38):
1483 | dependencies:
1484 | browserslist: 4.23.0
1485 | caniuse-api: 3.0.0
1486 | postcss: 8.4.38
1487 |
1488 | postcss-reduce-transforms@5.1.0(postcss@8.4.38):
1489 | dependencies:
1490 | postcss: 8.4.38
1491 | postcss-value-parser: 4.2.0
1492 |
1493 | postcss-selector-parser@6.1.0:
1494 | dependencies:
1495 | cssesc: 3.0.0
1496 | util-deprecate: 1.0.2
1497 |
1498 | postcss-svgo@5.1.0(postcss@8.4.38):
1499 | dependencies:
1500 | postcss: 8.4.38
1501 | postcss-value-parser: 4.2.0
1502 | svgo: 2.8.0
1503 |
1504 | postcss-unique-selectors@5.1.1(postcss@8.4.38):
1505 | dependencies:
1506 | postcss: 8.4.38
1507 | postcss-selector-parser: 6.1.0
1508 |
1509 | postcss-value-parser@4.2.0: {}
1510 |
1511 | postcss@8.4.38:
1512 | dependencies:
1513 | nanoid: 3.3.7
1514 | picocolors: 1.0.1
1515 | source-map-js: 1.2.0
1516 |
1517 | promise.series@0.2.0: {}
1518 |
1519 | randombytes@2.1.0:
1520 | dependencies:
1521 | safe-buffer: 5.2.1
1522 |
1523 | readdirp@3.6.0:
1524 | dependencies:
1525 | picomatch: 2.3.1
1526 |
1527 | resolve-from@5.0.0: {}
1528 |
1529 | resolve@1.22.8:
1530 | dependencies:
1531 | is-core-module: 2.13.1
1532 | path-parse: 1.0.7
1533 | supports-preserve-symlinks-flag: 1.0.0
1534 |
1535 | rollup-plugin-livereload@2.0.5:
1536 | dependencies:
1537 | livereload: 0.9.3
1538 | transitivePeerDependencies:
1539 | - bufferutil
1540 | - utf-8-validate
1541 |
1542 | rollup-plugin-postcss@4.0.2(postcss@8.4.38):
1543 | dependencies:
1544 | chalk: 4.1.2
1545 | concat-with-sourcemaps: 1.1.0
1546 | cssnano: 5.1.15(postcss@8.4.38)
1547 | import-cwd: 3.0.0
1548 | p-queue: 6.6.2
1549 | pify: 5.0.0
1550 | postcss: 8.4.38
1551 | postcss-load-config: 3.1.4(postcss@8.4.38)
1552 | postcss-modules: 4.3.1(postcss@8.4.38)
1553 | promise.series: 0.2.0
1554 | resolve: 1.22.8
1555 | rollup-pluginutils: 2.8.2
1556 | safe-identifier: 0.4.2
1557 | style-inject: 0.3.0
1558 | transitivePeerDependencies:
1559 | - ts-node
1560 |
1561 | rollup-plugin-serve@3.0.0:
1562 | dependencies:
1563 | mime: 4.0.3
1564 | opener: 1.5.2
1565 |
1566 | rollup-pluginutils@2.8.2:
1567 | dependencies:
1568 | estree-walker: 0.6.1
1569 |
1570 | rollup@4.18.0:
1571 | dependencies:
1572 | '@types/estree': 1.0.5
1573 | optionalDependencies:
1574 | '@rollup/rollup-android-arm-eabi': 4.18.0
1575 | '@rollup/rollup-android-arm64': 4.18.0
1576 | '@rollup/rollup-darwin-arm64': 4.18.0
1577 | '@rollup/rollup-darwin-x64': 4.18.0
1578 | '@rollup/rollup-linux-arm-gnueabihf': 4.18.0
1579 | '@rollup/rollup-linux-arm-musleabihf': 4.18.0
1580 | '@rollup/rollup-linux-arm64-gnu': 4.18.0
1581 | '@rollup/rollup-linux-arm64-musl': 4.18.0
1582 | '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0
1583 | '@rollup/rollup-linux-riscv64-gnu': 4.18.0
1584 | '@rollup/rollup-linux-s390x-gnu': 4.18.0
1585 | '@rollup/rollup-linux-x64-gnu': 4.18.0
1586 | '@rollup/rollup-linux-x64-musl': 4.18.0
1587 | '@rollup/rollup-win32-arm64-msvc': 4.18.0
1588 | '@rollup/rollup-win32-ia32-msvc': 4.18.0
1589 | '@rollup/rollup-win32-x64-msvc': 4.18.0
1590 | fsevents: 2.3.3
1591 |
1592 | safe-buffer@5.2.1: {}
1593 |
1594 | safe-identifier@0.4.2: {}
1595 |
1596 | serialize-javascript@6.0.2:
1597 | dependencies:
1598 | randombytes: 2.1.0
1599 |
1600 | smob@1.5.0: {}
1601 |
1602 | source-map-js@1.2.0: {}
1603 |
1604 | source-map-support@0.5.21:
1605 | dependencies:
1606 | buffer-from: 1.1.2
1607 | source-map: 0.6.1
1608 |
1609 | source-map@0.6.1: {}
1610 |
1611 | stable@0.1.8: {}
1612 |
1613 | string-hash@1.1.3: {}
1614 |
1615 | style-inject@0.3.0: {}
1616 |
1617 | stylehacks@5.1.1(postcss@8.4.38):
1618 | dependencies:
1619 | browserslist: 4.23.0
1620 | postcss: 8.4.38
1621 | postcss-selector-parser: 6.1.0
1622 |
1623 | supports-color@7.2.0:
1624 | dependencies:
1625 | has-flag: 4.0.0
1626 |
1627 | supports-preserve-symlinks-flag@1.0.0: {}
1628 |
1629 | svgo@2.8.0:
1630 | dependencies:
1631 | '@trysound/sax': 0.2.0
1632 | commander: 7.2.0
1633 | css-select: 4.3.0
1634 | css-tree: 1.1.3
1635 | csso: 4.2.0
1636 | picocolors: 1.0.1
1637 | stable: 0.1.8
1638 |
1639 | terser@5.31.0:
1640 | dependencies:
1641 | '@jridgewell/source-map': 0.3.6
1642 | acorn: 8.11.3
1643 | commander: 2.20.3
1644 | source-map-support: 0.5.21
1645 |
1646 | three@0.165.0: {}
1647 |
1648 | to-regex-range@5.0.1:
1649 | dependencies:
1650 | is-number: 7.0.0
1651 |
1652 | tslib@2.6.2: {}
1653 |
1654 | typescript@5.4.5: {}
1655 |
1656 | update-browserslist-db@1.0.16(browserslist@4.23.0):
1657 | dependencies:
1658 | browserslist: 4.23.0
1659 | escalade: 3.1.2
1660 | picocolors: 1.0.1
1661 |
1662 | util-deprecate@1.0.2: {}
1663 |
1664 | ws@7.5.9: {}
1665 |
1666 | yaml@1.10.2: {}
1667 |
--------------------------------------------------------------------------------