From 60ade98d4f1821b04ad7fbe181bdb9c44a57608c Mon Sep 17 00:00:00 2001
From: chen <23054115+cwkang1998@users.noreply.github.com>
Date: Thu, 7 Nov 2024 16:05:31 +0700
Subject: [PATCH] feat: add grid collision example
Add a new example with grid 2d where collision is implemented.
This utilizes the `resolveConflicts` CRO function for conflict resolution
on the user position.
This also reveals an issue with the `this` context within the `object`
package when `resolveConflicts` is callback from `TopologyObject`.
---
examples/grid-collision/README.md | 18 +
examples/grid-collision/index.html | 42 +
examples/grid-collision/package.json | 35 +
examples/grid-collision/src/index.ts | 269 ++++
examples/grid-collision/src/objects/grid.ts | 165 +++
examples/grid-collision/src/util/color.ts | 70 +
examples/grid-collision/tsconfig.json | 14 +
examples/grid-collision/vite.config.mts | 20 +
pnpm-lock.yaml | 1402 ++++++++++++++++++-
9 files changed, 2034 insertions(+), 1 deletion(-)
create mode 100644 examples/grid-collision/README.md
create mode 100644 examples/grid-collision/index.html
create mode 100644 examples/grid-collision/package.json
create mode 100644 examples/grid-collision/src/index.ts
create mode 100644 examples/grid-collision/src/objects/grid.ts
create mode 100644 examples/grid-collision/src/util/color.ts
create mode 100644 examples/grid-collision/tsconfig.json
create mode 100644 examples/grid-collision/vite.config.mts
diff --git a/examples/grid-collision/README.md b/examples/grid-collision/README.md
new file mode 100644
index 00000000..6b2d3766
--- /dev/null
+++ b/examples/grid-collision/README.md
@@ -0,0 +1,18 @@
+# Topology Protocol Collision Example
+
+This is an example that uses Topology Protocol to implement a 2D grid space where users appear to be circles and can move around the integer grid one grid at a time. We additionally implement collision logic into this example so that no 2 circles can be on one grid at a time.
+
+## Specifics
+
+The Grid CRO has a mapping from user id (node id concacenated with a randomly assigned color string) to the user's position on the grid. The CRO leverages the underlying hash graph for conflict-free consistency. The mergeCallback function receives the linearised operations returned from the underlying hash graph, and recomputes the user-position mapping from those operations.
+
+The `resolveConflict` function is additionally used to implement compensation techniques in order to ensure no 2 node can be on the same circle at a time.
+
+## How to run locally
+
+After cloning the repository, run the following commands:
+
+```bash
+cd ts-topology/examples/grid-collision
+pnpm dev
+```
diff --git a/examples/grid-collision/index.html b/examples/grid-collision/index.html
new file mode 100644
index 00000000..c43df353
--- /dev/null
+++ b/examples/grid-collision/index.html
@@ -0,0 +1,42 @@
+
+
+
+
+
+ Topology - Grid
+
+
+
+
A 2D grid made with CRO
+
Your Peer ID:
+
Peers on dRAM:
+
Discovery Peers:
+
+
Spawn a new Grid CRO
+
|
+
+
Connect to existing Grid CRO
+
+ Connected to Grid CRO ID:
+
+ Copy
+
+
Peers in CRO:
+
+
+
+
+
+
+
+
+
diff --git a/examples/grid-collision/package.json b/examples/grid-collision/package.json
new file mode 100644
index 00000000..7c2c59b9
--- /dev/null
+++ b/examples/grid-collision/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "topology-example-grid-collision",
+ "version": "0.2.1-0",
+ "description": "Topology Protocol Grid Example",
+ "main": "src/index.ts",
+ "repository": "https://github.com/topology-foundation/ts-topology.git",
+ "license": "MIT",
+ "scripts": {
+ "build": "vite build",
+ "clean": "rm -rf dist/ node_modules/",
+ "dev": "vite serve",
+ "start": "ts-node ./src/index.ts"
+ },
+ "dependencies": {
+ "@topology-foundation/network": "0.3.0",
+ "@topology-foundation/node": "0.3.0",
+ "@topology-foundation/object": "0.3.0",
+ "assemblyscript": "^0.27.29",
+ "crypto-browserify": "^3.12.0",
+ "memfs": "^4.11.1",
+ "process": "^0.11.10",
+ "react-spring": "^9.7.4",
+ "stream-browserify": "^3.0.0",
+ "ts-node": "^10.9.2",
+ "uint8arrays": "^5.1.0",
+ "vm-browserify": "^1.1.2"
+ },
+ "devDependencies": {
+ "@types/node": "^22.5.4",
+ "ts-loader": "^9.5.1",
+ "typescript": "^5.5.4",
+ "vite": "^5.4.9",
+ "vite-plugin-node-polyfills": "^0.22.0"
+ }
+}
diff --git a/examples/grid-collision/src/index.ts b/examples/grid-collision/src/index.ts
new file mode 100644
index 00000000..d8c84e69
--- /dev/null
+++ b/examples/grid-collision/src/index.ts
@@ -0,0 +1,269 @@
+import { TopologyNode } from "@topology-foundation/node";
+import type { TopologyObject } from "@topology-foundation/object";
+import { Grid } from "./objects/grid";
+import { hslToRgb, rgbToHex, rgbToHsl } from "./util/color";
+
+const node = new TopologyNode();
+let topologyObject: TopologyObject;
+let gridCRO: Grid;
+let peers: string[] = [];
+let discoveryPeers: string[] = [];
+let objectPeers: string[] = [];
+
+const formatNodeId = (id: string): string => {
+ return `${id.slice(0, 4)}...${id.slice(-4)}`;
+};
+
+const colorMap: Map = new Map();
+
+const hashCode = (str: string): number => {
+ let hash = 0;
+ for (let i = 0; i < str.length; i++) {
+ hash = (hash << 5) - hash + str.charCodeAt(i);
+ hash |= 0; // Convert to 32bit integer
+ }
+ return hash;
+};
+
+const getColorForNodeId = (id: string): string => {
+ if (!colorMap.has(id)) {
+ const hash = hashCode(id);
+ let r = (hash & 0xff0000) >> 16;
+ let g = (hash & 0x00ff00) >> 8;
+ let b = hash & 0x0000ff;
+
+ // Convert to HSL and adjust lightness to be below 50%
+ let [h, s, l] = rgbToHsl(r, g, b);
+ l = l * 0.5; // Set lightness to below 50%
+
+ // Convert back to RGB
+ [r, g, b] = hslToRgb(h, s, l);
+ const color = rgbToHex(r, g, b); // Convert RGB to hex
+ colorMap.set(id, color);
+ }
+ return colorMap.get(id) || "#000000";
+};
+
+const render = () => {
+ if (topologyObject) {
+ const gridIdElement = document.getElementById("gridId");
+ gridIdElement.innerText = topologyObject.id;
+ const copyGridIdButton = document.getElementById("copyGridId");
+ if (copyGridIdButton) {
+ copyGridIdButton.style.display = "inline"; // Show the button
+ }
+ } else {
+ const copyGridIdButton = document.getElementById("copyGridId");
+ if (copyGridIdButton) {
+ copyGridIdButton.style.display = "none"; // Hide the button
+ }
+ }
+
+ const element_peerId = document.getElementById("peerId");
+ element_peerId.innerHTML = `${formatNodeId(node.networkNode.peerId)} `;
+
+ const element_peers = document.getElementById("peers");
+ element_peers.innerHTML = `[${peers.map((peer) => `${formatNodeId(peer)} `).join(", ")}]`;
+
+ const element_discoveryPeers = (
+ document.getElementById("discoveryPeers")
+ );
+ element_discoveryPeers.innerHTML = `[${discoveryPeers.map((peer) => `${formatNodeId(peer)} `).join(", ")}]`;
+
+ const element_objectPeers = (
+ document.getElementById("objectPeers")
+ );
+ element_objectPeers.innerHTML = `[${objectPeers.map((peer) => `${formatNodeId(peer)} `).join(", ")}]`;
+
+ if (!gridCRO) return;
+ const users = gridCRO.getUsers();
+ const element_grid = document.getElementById("grid");
+ element_grid.innerHTML = "";
+
+ const gridWidth = element_grid.clientWidth;
+ const gridHeight = element_grid.clientHeight;
+ const centerX = Math.floor(gridWidth / 2);
+ const centerY = Math.floor(gridHeight / 2);
+
+ // Draw grid lines
+ const numLinesX = Math.floor(gridWidth / 50);
+ const numLinesY = Math.floor(gridHeight / 50);
+
+ for (let i = -numLinesX; i <= numLinesX; i++) {
+ const line = document.createElement("div");
+ line.style.position = "absolute";
+ line.style.left = `${centerX + i * 50}px`;
+ line.style.top = "0";
+ line.style.width = "1px";
+ line.style.height = "100%";
+ line.style.backgroundColor = "lightgray";
+ element_grid.appendChild(line);
+ }
+
+ for (let i = -numLinesY; i <= numLinesY; i++) {
+ const line = document.createElement("div");
+ line.style.position = "absolute";
+ line.style.left = "0";
+ line.style.top = `${centerY + i * 50}px`;
+ line.style.width = "100%";
+ line.style.height = "1px";
+ line.style.backgroundColor = "lightgray";
+ element_grid.appendChild(line);
+ }
+
+ for (const userColorString of users) {
+ const [id, color] = userColorString.split(":");
+ const position = gridCRO.getUserPosition(userColorString);
+
+ if (position) {
+ const div = document.createElement("div");
+ div.style.position = "absolute";
+ div.style.left = `${centerX + position.x * 50 + 5}px`; // Center the circle
+ div.style.top = `${centerY - position.y * 50 + 5}px`; // Center the circle
+ if (id === node.networkNode.peerId) {
+ div.style.width = `${34}px`;
+ div.style.height = `${34}px`;
+ } else {
+ div.style.width = `${34 + 6}px`;
+ div.style.height = `${34 + 6}px`;
+ }
+ div.style.backgroundColor = color;
+ div.style.borderRadius = "50%";
+ div.style.transition = "background-color 1s ease-in-out";
+ div.style.animation = `glow-${id} 0.5s infinite alternate`;
+
+ // Add black border for the current user's circle
+ if (id === node.networkNode.peerId) {
+ div.style.border = "3px solid black";
+ }
+
+ // Create dynamic keyframes for the glow effect
+ const style = document.createElement("style");
+ style.innerHTML = `
+ @keyframes glow-${id} {
+ 0% {
+ background-color: ${hexToRgba(color, 0.5)};
+ }
+ 100% {
+ background-color: ${hexToRgba(color, 1)};
+ }
+ }`;
+ document.head.appendChild(style);
+
+ element_grid.appendChild(div);
+ }
+ }
+};
+
+// Helper function to convert hex color to rgba
+function hexToRgba(hex: string, alpha: number) {
+ const bigint = Number.parseInt(hex.slice(1), 16);
+ const r = (bigint >> 16) & 255;
+ const g = (bigint >> 8) & 255;
+ const b = bigint & 255;
+ return `rgba(${r}, ${g}, ${b}, ${alpha})`;
+}
+
+async function addUser() {
+ if (!gridCRO) {
+ console.error("Grid CRO not initialized");
+ alert("Please create or join a grid first");
+ return;
+ }
+
+ gridCRO.addUser(
+ node.networkNode.peerId,
+ getColorForNodeId(node.networkNode.peerId),
+ );
+ render();
+}
+
+async function moveUser(direction: string) {
+ if (!gridCRO) {
+ console.error("Grid CRO not initialized");
+ alert("Please create or join a grid first");
+ return;
+ }
+
+ gridCRO.moveUser(node.networkNode.peerId, direction);
+ render();
+}
+
+async function createConnectHandlers() {
+ node.addCustomGroupMessageHandler(topologyObject.id, (e) => {
+ if (topologyObject)
+ objectPeers = node.networkNode.getGroupPeers(topologyObject.id);
+ render();
+ });
+
+ node.objectStore.subscribe(topologyObject.id, (_, obj) => {
+ render();
+ });
+}
+
+async function main() {
+ await node.start();
+ render();
+
+ node.addCustomGroupMessageHandler("", (e) => {
+ peers = node.networkNode.getAllPeers();
+ discoveryPeers = node.networkNode.getGroupPeers("topology::discovery");
+ render();
+ });
+
+ const button_create = (
+ document.getElementById("createGrid")
+ );
+ button_create.addEventListener("click", async () => {
+ topologyObject = await node.createObject(new Grid());
+ gridCRO = topologyObject.cro as Grid;
+ createConnectHandlers();
+ await addUser();
+ render();
+ });
+
+ const button_connect = document.getElementById("joinGrid");
+ button_connect.addEventListener("click", async () => {
+ const croId = (document.getElementById("gridInput"))
+ .value;
+ try {
+ topologyObject = await node.createObject(
+ new Grid(),
+ croId,
+ undefined,
+ true,
+ );
+ gridCRO = topologyObject.cro as Grid;
+ createConnectHandlers();
+ await addUser();
+ render();
+ console.log("Succeeded in connecting with CRO", croId);
+ } catch (e) {
+ console.error("Error while connecting with CRO", croId, e);
+ }
+ });
+
+ document.addEventListener("keydown", (event) => {
+ if (event.key === "w") moveUser("U");
+ if (event.key === "a") moveUser("L");
+ if (event.key === "s") moveUser("D");
+ if (event.key === "d") moveUser("R");
+ });
+
+ const copyButton = document.getElementById("copyGridId");
+ copyButton.addEventListener("click", () => {
+ const gridIdText = (document.getElementById("gridId"))
+ .innerText;
+ navigator.clipboard
+ .writeText(gridIdText)
+ .then(() => {
+ // alert("Grid CRO ID copied to clipboard!");
+ console.log("Grid CRO ID copied to clipboard");
+ })
+ .catch((err) => {
+ console.error("Failed to copy: ", err);
+ });
+ });
+}
+
+main();
diff --git a/examples/grid-collision/src/objects/grid.ts b/examples/grid-collision/src/objects/grid.ts
new file mode 100644
index 00000000..aa9fba56
--- /dev/null
+++ b/examples/grid-collision/src/objects/grid.ts
@@ -0,0 +1,165 @@
+import {
+ ActionType,
+ type CRO,
+ type Operation,
+ type ResolveConflictsType,
+ SemanticsType,
+ type Vertex,
+} from "@topology-foundation/object";
+
+export class Grid implements CRO {
+ operations: string[] = ["addUser", "moveUser"];
+ semanticsType: SemanticsType = SemanticsType.pair;
+ positions: Map;
+
+ constructor() {
+ this.positions = new Map();
+ }
+
+ addUser(userId: string, color: string): void {
+ this._addUser(userId, color);
+ }
+
+ private _addUser(userId: string, color: string): void {
+ const userColorString = `${userId}:${color}`;
+ this.positions.set(userColorString, { x: 0, y: 0 });
+ }
+
+ moveUser(userId: string, direction: string): void {
+ this._moveUser(userId, direction);
+ }
+
+ private _computeNewPosition(
+ pos: { x: number; y: number },
+ direction: string,
+ ): { x: number; y: number } {
+ let deltaY = 0;
+ let deltaX = 0;
+ switch (direction) {
+ case "U":
+ deltaY += 1;
+ break;
+ case "D":
+ deltaY -= 1;
+ break;
+ case "L":
+ deltaX -= 1;
+ break;
+ case "R":
+ deltaX += 1;
+ break;
+ }
+
+ return { x: pos.x + deltaX, y: pos.y + deltaY };
+ }
+
+ private _moveUser(userId: string, direction: string): void {
+ const userColorString = [...this.positions.keys()].find((u) =>
+ u.startsWith(`${userId}:`),
+ );
+ if (userColorString) {
+ const position = this.positions.get(userColorString);
+ if (position) {
+ const newPos = this._computeNewPosition(position, direction);
+ this.positions.set(userColorString, newPos);
+ }
+ }
+ }
+
+ getUsers(): string[] {
+ return [...this.positions.keys()];
+ }
+
+ getUserPosition(
+ userColorString: string,
+ ): { x: number; y: number } | undefined {
+ const position = this.positions.get(userColorString);
+ if (position) {
+ return position;
+ }
+ return undefined;
+ }
+
+ resolveConflicts(vertices: Vertex[]): ResolveConflictsType {
+ // Here we implement compensation for the location.
+ // As we operate based on pairwise comparison, there's always only 2 elements.
+ // First the vertices must be available, and also not of the same node.
+ if (vertices.length === 2 && vertices[0].nodeId !== vertices[1].nodeId) {
+ const leftVertex = vertices[0];
+ const rightVertex = vertices[1];
+ const leftVertexPosition = leftVertex.operation
+ ? this.getUserPosition(":".concat(leftVertex.operation.value))
+ : undefined;
+ const rightVertexPosition = rightVertex.operation
+ ? this.getUserPosition(":".concat(rightVertex.operation.value))
+ : undefined;
+ console.log(vertices);
+ // Let's first handle adding a new user
+ if (
+ leftVertex.operation?.type === "addUser" &&
+ rightVertex.operation?.type === "addUser"
+ ) {
+ // This basically tells the cro to accept only the ones that comes first.
+ if (leftVertexPosition) {
+ return { action: ActionType.DropRight };
+ }
+ return { action: ActionType.DropLeft };
+ }
+
+ // Now handle moving the user
+ if (
+ leftVertex.operation?.type === "moveUser" &&
+ rightVertex.operation?.type === "moveUser" &&
+ leftVertexPosition &&
+ rightVertexPosition
+ ) {
+ const leftVertexNextPosition = this._computeNewPosition(
+ leftVertexPosition,
+ leftVertex.operation.value[1],
+ );
+ const rightVertexNextPosition = this._computeNewPosition(
+ rightVertexPosition,
+ rightVertex.operation.value[1],
+ );
+
+ // If they are going to colide, do nothing so they don't move and thus do not colide.
+ if (
+ leftVertexNextPosition.x === rightVertexNextPosition.x &&
+ leftVertexNextPosition.y === rightVertexNextPosition.y
+ ) {
+ return { action: ActionType.Drop };
+ }
+ }
+ }
+
+ // If none of the operations match our criteria, they are concurrent
+ // safe, and thus we don't need to do anything.
+ return { action: ActionType.Nop };
+ }
+
+ mergeCallback(operations: Operation[]): void {
+ // reset this.positions
+ this.positions = new Map();
+
+ // apply operations to this.positions
+ for (const op of operations) {
+ if (!op.value) continue;
+ switch (op.type) {
+ case "addUser": {
+ const [userId, color] = op.value;
+ this._addUser(userId, color);
+ break;
+ }
+ case "moveUser": {
+ const [userId, direction] = op.value;
+ this._moveUser(userId, direction);
+ break;
+ }
+ }
+ }
+ }
+}
+
+export function createGrid(): Grid {
+ return new Grid();
+}
diff --git a/examples/grid-collision/src/util/color.ts b/examples/grid-collision/src/util/color.ts
new file mode 100644
index 00000000..a5243339
--- /dev/null
+++ b/examples/grid-collision/src/util/color.ts
@@ -0,0 +1,70 @@
+export const rgbToHsl = (
+ rInt: number,
+ gInt: number,
+ bInt: number,
+): [number, number, number] => {
+ const r = rInt / 255;
+ const g = gInt / 255;
+ const b = bInt / 255;
+ const max = Math.max(r, g, b);
+ const min = Math.min(r, g, b);
+ let h = 0;
+ let s: number;
+ const l = (max + min) / 2; // Initialize h with a default value
+
+ if (max === min) {
+ h = s = 0; // achromatic
+ } else {
+ const chromaticity = max - min;
+ s = l > 0.5 ? chromaticity / (2 - max - min) : chromaticity / (max + min);
+ switch (max) {
+ case r:
+ h = (g - b) / chromaticity + (g < b ? 6 : 0);
+ break;
+ case g:
+ h = (b - r) / chromaticity + 2;
+ break;
+ case b:
+ h = (r - g) / chromaticity + 4;
+ break;
+ }
+ h /= 6;
+ }
+ return [h * 360, s, l];
+};
+
+export const hslToRgb = (
+ h: number,
+ s: number,
+ l: number,
+): [number, number, number] => {
+ let r: number;
+ let g: number;
+ let b: number;
+
+ if (s === 0) {
+ r = g = b = l; // achromatic
+ } else {
+ const hue2rgb = (p: number, q: number, t_: number) => {
+ let t = t_;
+ if (t < 0) t += 1;
+ if (t > 1) t -= 1;
+ if (t < 1 / 6) return p + (q - p) * 6 * t;
+ if (t < 1 / 2) return q;
+ if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;
+ return p;
+ };
+
+ const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
+ const p = 2 * l - q;
+ r = hue2rgb(p, q, h / 360 + 1 / 3);
+ g = hue2rgb(p, q, h / 360);
+ b = hue2rgb(p, q, h / 360 - 1 / 3);
+ }
+
+ return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];
+};
+
+export const rgbToHex = (r: number, g: number, b: number): string => {
+ return `#${((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)}`;
+};
diff --git a/examples/grid-collision/tsconfig.json b/examples/grid-collision/tsconfig.json
new file mode 100644
index 00000000..23d99aec
--- /dev/null
+++ b/examples/grid-collision/tsconfig.json
@@ -0,0 +1,14 @@
+{
+ "compilerOptions": {
+ "target": "ESNext",
+ "module": "ESNext",
+ "rootDir": ".",
+ "strict": true,
+ "moduleResolution": "node",
+ "allowSyntheticDefaultImports": true,
+ "allowJs": true,
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+ "forceConsistentCasingInFileNames": true
+ }
+}
diff --git a/examples/grid-collision/vite.config.mts b/examples/grid-collision/vite.config.mts
new file mode 100644
index 00000000..e3518486
--- /dev/null
+++ b/examples/grid-collision/vite.config.mts
@@ -0,0 +1,20 @@
+import path from "node:path";
+import { defineConfig } from "vite";
+import { nodePolyfills } from "vite-plugin-node-polyfills";
+
+export default defineConfig({
+ build: {
+ target: "esnext",
+ },
+ plugins: [nodePolyfills()],
+ optimizeDeps: {
+ esbuildOptions: {
+ target: "esnext",
+ },
+ },
+ resolve: {
+ alias: {
+ "@topology-foundation": path.resolve(__dirname, "../../packages"),
+ },
+ },
+});
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index a7039d2c..8604138b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -108,6 +108,61 @@ importers:
specifier: ^0.22.0
version: 0.22.0(rollup@4.28.1)(vite@6.0.3(@types/node@22.10.1)(terser@5.37.0)(tsx@4.19.1)(yaml@2.6.1))
+ examples/grid-collision:
+ dependencies:
+ '@topology-foundation/network':
+ specifier: 0.3.0
+ version: 0.3.0(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1))
+ '@topology-foundation/node':
+ specifier: 0.3.0
+ version: 0.3.0(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1))
+ '@topology-foundation/object':
+ specifier: 0.3.0
+ version: 0.3.0
+ assemblyscript:
+ specifier: ^0.27.29
+ version: 0.27.31
+ crypto-browserify:
+ specifier: ^3.12.0
+ version: 3.12.1
+ memfs:
+ specifier: ^4.11.1
+ version: 4.15.0
+ process:
+ specifier: ^0.11.10
+ version: 0.11.10
+ react-spring:
+ specifier: ^9.7.4
+ version: 9.7.5(@react-three/fiber@8.17.10(@types/react@19.0.1)(react-dom@18.3.1(react@18.3.1))(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1))(react@18.3.1)(three@0.171.0))(konva@9.3.16)(react-dom@18.3.1(react@18.3.1))(react-konva@18.2.10(@types/react@19.0.1)(konva@9.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1))(react-zdog@1.2.2)(react@18.3.1)(three@0.171.0)(zdog@1.1.3)
+ stream-browserify:
+ specifier: ^3.0.0
+ version: 3.0.0
+ ts-node:
+ specifier: ^10.9.2
+ version: 10.9.2(@types/node@22.10.1)(typescript@5.7.2)
+ uint8arrays:
+ specifier: ^5.1.0
+ version: 5.1.0
+ vm-browserify:
+ specifier: ^1.1.2
+ version: 1.1.2
+ devDependencies:
+ '@types/node':
+ specifier: ^22.5.4
+ version: 22.10.1
+ ts-loader:
+ specifier: ^9.5.1
+ version: 9.5.1(typescript@5.7.2)(webpack@5.97.1)
+ typescript:
+ specifier: ^5.5.4
+ version: 5.7.2
+ vite:
+ specifier: ^5.4.9
+ version: 5.4.11(@types/node@22.10.1)(terser@5.37.0)
+ vite-plugin-node-polyfills:
+ specifier: ^0.22.0
+ version: 0.22.0(rollup@4.28.1)(vite@5.4.11(@types/node@22.10.1)(terser@5.37.0))
+
examples/local-bootstrap:
dependencies:
'@ts-drp/node':
@@ -1039,6 +1094,10 @@ packages:
'@chainsafe/netmask@2.0.0':
resolution: {integrity: sha512-I3Z+6SWUoaljh3TBzCnCxjlUyN8tA+NAk5L6m9IxvCf1BENQTePzPMis97CoN/iMW1St3WN+AWCCRp+TTBRiDg==}
+ '@cspotcode/source-map-support@0.8.1':
+ resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
+ engines: {node: '>=12'}
+
'@esbuild/aix-ppc64@0.21.5':
resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
engines: {node: '>=12'}
@@ -1538,9 +1597,30 @@ packages:
'@jridgewell/trace-mapping@0.3.25':
resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
+ '@jridgewell/trace-mapping@0.3.9':
+ resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
+
'@js-sdsl/ordered-map@4.4.2':
resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==}
+ '@jsonjoy.com/base64@1.1.2':
+ resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==}
+ engines: {node: '>=10.0'}
+ peerDependencies:
+ tslib: '2'
+
+ '@jsonjoy.com/json-pack@1.1.1':
+ resolution: {integrity: sha512-osjeBqMJ2lb/j/M8NCPjs1ylqWIcTRTycIhVB5pt6LgzgeRSb0YRZ7j9RfA8wIUrsr/medIuhVyonXRZWLyfdw==}
+ engines: {node: '>=10.0'}
+ peerDependencies:
+ tslib: '2'
+
+ '@jsonjoy.com/util@1.5.0':
+ resolution: {integrity: sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==}
+ engines: {node: '>=10.0'}
+ peerDependencies:
+ tslib: '2'
+
'@leichtgewicht/ip-codec@2.0.5':
resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==}
@@ -1550,12 +1630,18 @@ packages:
'@libp2p/bootstrap@11.0.13':
resolution: {integrity: sha512-zfZdqR4pVvsSWRBYNYjJD6hCzsgRRNLy8NAcLOf+H4+xDQg2pdGY7RhbeLetqnEaifHFV1INdIuCkdOI8cSMsQ==}
+ '@libp2p/circuit-relay-v2@2.1.5':
+ resolution: {integrity: sha512-7uJicxChosVPcj7r9xmeI2Z318sgOk2VclagPWjTFCZSMdSHPtou8G4i0CJEoWAI+Afpxuz0h8aPb90MpVbWCA==}
+
'@libp2p/circuit-relay-v2@3.1.3':
resolution: {integrity: sha512-tdPaNK4ut9FU5uwABf+lj01eul3uVDUyAdlcpnIRgkRTOMZ02C06nyaIFSeHD5ykpyZpDIbLPHHBLd5kRYRfYg==}
'@libp2p/crypto@5.0.7':
resolution: {integrity: sha512-hv0rv/BPBsmSV5GBtaLZpOEv1LsA+Ub0BEDnEvSdB0ZbZ3Fcdlt5HTaJ2jYz4lx2T7KWTFQa9i1elmlGxwuJNg==}
+ '@libp2p/crypto@5.0.8':
+ resolution: {integrity: sha512-3ZxuzqMvyLXhRnjT3sjvzCCW4zkO9UKgv75KfqExP3k1Yk/Zbb+oM2z7OgnDycvLGxnRZgGwizrgnWpZvXlDEA==}
+
'@libp2p/dcutr@2.0.12':
resolution: {integrity: sha512-BtUtNQW+AmZDr3waEuQn4TzEleMljxXlojnUBAseysnJH5nHPjLyQfkfqKEIFdswghlZOJLX0YhiR+otzKXCCQ==}
@@ -1568,21 +1654,39 @@ packages:
'@libp2p/interface-internal@2.1.1':
resolution: {integrity: sha512-7rw7p5wZry9ZPfdhYi4zXRjsgrJ8y/X5M7iWIzUBSJdJP2Zd0ZVStlgyqYm1YAbb8V0mwo5BI/kxd2o9R/9TJQ==}
+ '@libp2p/interface-internal@2.2.1':
+ resolution: {integrity: sha512-GGxQnTgQ891bpOcHQAG9Dy/KXo1OoKnCaV2e02yWNhW8TkqlFJnwdny6tX8O6BN8Od56yuEIS89ZoNn2SK4F5g==}
+
'@libp2p/interface@2.2.1':
resolution: {integrity: sha512-5dvsnf9+S5DoXCk5H3HNpe8lKzuXTi0k2On8Cdqr6YrkmrhCimow63AxtaUOVkH7GVBTTi8Q1jSx3aleX7KcEA==}
+ '@libp2p/interface@2.3.0':
+ resolution: {integrity: sha512-lodc8jxw32fkY2m2bsS6yzzozua6EDr5rJvahJaJVC36jZWFW5sBmOW8jBoKfoZyRwgD6uoOXP39miWQhEaUcg==}
+
'@libp2p/logger@5.1.4':
resolution: {integrity: sha512-pVQ2odi6rcOR412wM0dg7eZ1+wPHPo5D7W8vIn3YyB2FLodQD7CZXXfg7Z9Yaqlc4BVbkNXDWL/jlUss9wL2Ow==}
+ '@libp2p/logger@5.1.5':
+ resolution: {integrity: sha512-Qe8B/Mja0myaArPvuI5iKVi3o2Z55Rir+RDkkEU/m9TkKDkHVFmGKnPlWDzHehi18GALjLxOsTE9TJASxjDTCA==}
+
+ '@libp2p/mdns@11.0.16':
+ resolution: {integrity: sha512-FJLJywEFCm5r61b7IZ+KGvxUPEGuGx5VGXyTSE10y7lSxizn50ZUAmnN76OsBdLz/Uj3/iyzTOOmY17mzBjN3g==}
+
'@libp2p/multistream-select@6.0.9':
resolution: {integrity: sha512-yU+K4/jtXwt1WXMXSJTuhGnn6F97v/P0IOdMALMQlgmvSeGICDBNllX/i0r9y/DDwI/Hh61phB15aUgc/6pX8Q==}
'@libp2p/peer-collections@6.0.12':
resolution: {integrity: sha512-JQvnCZ5rUiFkznQTOblNF+xE0ddmETn1f3FyYP9vHALOPrgdQkoZeY1b1W3Gz7gA8CXZ//cluHE+ZBiavDbNIg==}
+ '@libp2p/peer-collections@6.0.13':
+ resolution: {integrity: sha512-BjpXs3kWegnNay2CApntOkL9tPyzTxC2lKUt0Mj9qntmOp1BF/zWY982U1X4ScjCE/M9Nh9x/w4Z/GKCT+K5lQ==}
+
'@libp2p/peer-id@5.0.8':
resolution: {integrity: sha512-vil9cch+qtqchSlrgG0Zw82uCW8XsyeOJc6DaIiS2hI01cMOIChT4CKjTn0iV5k2yw/niycQPjLrYQzy7tBIYg==}
+ '@libp2p/peer-id@5.0.9':
+ resolution: {integrity: sha512-TgWOPbU7AcUdSiHomL2wcg9eJqjoMCvCmU5eq/3fyBygTaG4BiQA/tYKuTEfeB5YPMdG1cJLmxgpk/a+ZRkY1g==}
+
'@libp2p/peer-record@8.0.12':
resolution: {integrity: sha512-N8OyAAgQwBCUB7AtSlI0AQun45SeBS5UWMnhO9JLAzzNUOZiMk+IfBwEu8dpJ0E311QK2vGY1suoxTsauqMSjg==}
@@ -1601,6 +1705,9 @@ packages:
'@libp2p/utils@6.2.1':
resolution: {integrity: sha512-uORuQLB75MgbrDA6i0rCw/fqNFgCs1dO3c21Z5WNdRCA4Lcvhgi6wnUf45DwgNCqtljDAnBR0FYI+UbEp5yAuA==}
+ '@libp2p/utils@6.3.0':
+ resolution: {integrity: sha512-1zF9xwxtAjg7N54deR3l45d0awLsuO8cacfp9J4vE+4RjrtKSa40IxhunLOp52ctm9H17wixlXUhoP85Ki8F3w==}
+
'@libp2p/webrtc@5.0.19':
resolution: {integrity: sha512-WicT2mraZf4ZKqt73MYvfAUvOQehZDPT673GThA3yK02eR6B/c9MenMuUbNb3qGsE4b5yhMjioYjZPahWpxcBw==}
@@ -1811,6 +1918,86 @@ packages:
'@types/react':
optional: true
+ '@react-spring/animated@9.7.5':
+ resolution: {integrity: sha512-Tqrwz7pIlsSDITzxoLS3n/v/YCUHQdOIKtOJf4yL6kYVSDTSmVK1LI1Q3M/uu2Sx4X3pIWF3xLUhlsA6SPNTNg==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+
+ '@react-spring/core@9.7.5':
+ resolution: {integrity: sha512-rmEqcxRcu7dWh7MnCcMXLvrf6/SDlSokLaLTxiPlAYi11nN3B5oiCUAblO72o+9z/87j2uzxa2Inm8UbLjXA+w==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+
+ '@react-spring/konva@9.7.5':
+ resolution: {integrity: sha512-BelrmyY6w0FGoNSEfSJltjQDUoW0Prxf+FzGjyLuLs+V9M9OM/aHnYqOlvQEfQsZx6C/ZiDOn5BZl8iH8SDf+Q==}
+ peerDependencies:
+ konva: '>=2.6'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-konva: ^16.8.0 || ^16.8.7-0 || ^16.9.0-0 || ^16.10.1-0 || ^16.12.0-0 || ^16.13.0-0 || ^17.0.0-0 || ^17.0.1-0 || ^17.0.2-0 || ^18.0.0-0
+
+ '@react-spring/native@9.7.5':
+ resolution: {integrity: sha512-C1S500BNP1I05MftElyLv2nIqaWQ0MAByOAK/p4vuXcUK3XcjFaAJ385gVLgV2rgKfvkqRoz97PSwbh+ZCETEg==}
+ peerDependencies:
+ react: 16.8.0 || >=17.0.0 || >=18.0.0
+ react-native: '>=0.58'
+
+ '@react-spring/rafz@9.7.5':
+ resolution: {integrity: sha512-5ZenDQMC48wjUzPAm1EtwQ5Ot3bLIAwwqP2w2owG5KoNdNHpEJV263nGhCeKKmuA3vG2zLLOdu3or6kuDjA6Aw==}
+
+ '@react-spring/shared@9.7.5':
+ resolution: {integrity: sha512-wdtoJrhUeeyD/PP/zo+np2s1Z820Ohr/BbuVYv+3dVLW7WctoiN7std8rISoYoHpUXtbkpesSKuPIw/6U1w1Pw==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+
+ '@react-spring/three@9.7.5':
+ resolution: {integrity: sha512-RxIsCoQfUqOS3POmhVHa1wdWS0wyHAUway73uRLp3GAL5U2iYVNdnzQsep6M2NZ994BlW8TcKuMtQHUqOsy6WA==}
+ peerDependencies:
+ '@react-three/fiber': '>=6.0'
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ three: '>=0.126'
+
+ '@react-spring/types@9.7.5':
+ resolution: {integrity: sha512-HVj7LrZ4ReHWBimBvu2SKND3cDVUPWKLqRTmWe/fNY6o1owGOX0cAHbdPDTMelgBlVbrTKrre6lFkhqGZErK/g==}
+
+ '@react-spring/web@9.7.5':
+ resolution: {integrity: sha512-lmvqGwpe+CSttsWNZVr+Dg62adtKhauGwLyGE/RRyZ8AAMLgb9x3NDMA5RMElXo+IMyTkPp7nxTB8ZQlmhb6JQ==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+
+ '@react-spring/zdog@9.7.5':
+ resolution: {integrity: sha512-VV7vmb52wGHgDA1ry6hv+QgxTs78fqjKEQnj+M8hiBg+dwOsTtqqM24ADtc4cMAhPW+eZhVps8ZNKtjt8ouHFA==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-zdog: '>=1.0'
+ zdog: '>=1.0'
+
+ '@react-three/fiber@8.17.10':
+ resolution: {integrity: sha512-S6bqa4DqUooEkInYv/W+Jklv2zjSYCXAhm6qKpAQyOXhTEt5gBXnA7W6aoJ0bjmp9pAeaSj/AZUoz1HCSof/uA==}
+ peerDependencies:
+ expo: '>=43.0'
+ expo-asset: '>=8.4'
+ expo-file-system: '>=11.0'
+ expo-gl: '>=11.0'
+ react: '>=18.0'
+ react-dom: '>=18.0'
+ react-native: '>=0.64'
+ three: '>=0.133'
+ peerDependenciesMeta:
+ expo:
+ optional: true
+ expo-asset:
+ optional: true
+ expo-file-system:
+ optional: true
+ expo-gl:
+ optional: true
+ react-dom:
+ optional: true
+ react-native:
+ optional: true
+
'@release-it-plugins/workspaces@4.2.0':
resolution: {integrity: sha512-hzQMdYWFnLBS/7dfasIWyeD2LUKeL7LT8ldxZgpzon90lW1cEU4Kpad78KmpZl1L188YHAbwVnboE+6i14jlEQ==}
engines: {node: '>= 16'}
@@ -1977,6 +2164,36 @@ packages:
'@tootallnate/quickjs-emscripten@0.23.0':
resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==}
+ '@topology-foundation/blueprints@0.3.0':
+ resolution: {integrity: sha512-Wa3s1jSB2g1qiNc1pcV8nA/MpkmVsgSVayoDYQe9rDysDhza8MLv6sdIGx3GAnYM+8oCgYfpA1mDtWabgGbU3Q==}
+
+ '@topology-foundation/logger@0.3.0':
+ resolution: {integrity: sha512-7TAcFn20ccxx1QvDneOBk+ScZZTQ/Z8BfVY7RBeB76lQPPvPYRh33mrZzi5k+o7fyXhdHJq5Xlxd1ebEloyNnQ==}
+
+ '@topology-foundation/logger@0.3.1':
+ resolution: {integrity: sha512-ABYUFg71dGTvdFmrITv4ZJHY/P9SZzXJqYeIB6jEeVSWrp1oAIdbhKBrqo1GLuKSod0u/YG2a2VDcyuREQWTSA==}
+
+ '@topology-foundation/network@0.3.0':
+ resolution: {integrity: sha512-5+drJJIoMTeFrEarOMbJEmkTt2ET9MCKiVyVbJv8moXLcA6Xr3ZQWSpHMezI9oNiLoe1fmDFEjtDdRgPELFsZw==}
+
+ '@topology-foundation/node@0.3.0':
+ resolution: {integrity: sha512-kXTnErmc65eGJN9slS8912GwOoXUx4GXA2nCz99GGMIhGAP8DV1LzQyFSHBTssGCqkQZTfS7zO0ek3c0XyKb6g==}
+
+ '@topology-foundation/object@0.3.0':
+ resolution: {integrity: sha512-TVIqY9hMHxEWldhzTGmttUmYnThO5YNAtCYT923rXTnsF0x02qcXv6S6yBxdusH1RubXf//7IhLta0kYWk0VXg==}
+
+ '@tsconfig/node10@1.0.11':
+ resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==}
+
+ '@tsconfig/node12@1.0.11':
+ resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
+
+ '@tsconfig/node14@1.0.3':
+ resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
+
+ '@tsconfig/node16@1.0.4':
+ resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
+
'@types/babel__core@7.20.5':
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
@@ -1989,9 +2206,18 @@ packages:
'@types/babel__traverse@7.20.6':
resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==}
+ '@types/debounce@1.2.4':
+ resolution: {integrity: sha512-jBqiORIzKDOToaF63Fm//haOCHuwQuLa2202RK4MozpA6lh93eCBc+/8+wZn5OzjJt3ySdc+74SXWXB55Ewtyw==}
+
'@types/dns-packet@5.6.5':
resolution: {integrity: sha512-qXOC7XLOEe43ehtWJCMnQXvgcIpv6rPmQ1jXT98Ad8A3TB1Ue50jsCbSSSyuazScEuZ/Q026vHbrOTVkmwA+7Q==}
+ '@types/eslint-scope@3.7.7':
+ resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
+
+ '@types/eslint@9.6.1':
+ resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==}
+
'@types/estree@1.0.6':
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
@@ -2010,12 +2236,18 @@ packages:
'@types/istanbul-reports@3.0.4':
resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
+ '@types/json-schema@7.0.15':
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+
'@types/mdast@4.0.4':
resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
'@types/minimatch@3.0.5':
resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
+ '@types/multicast-dns@7.2.4':
+ resolution: {integrity: sha512-ib5K4cIDR4Ro5SR3Sx/LROkMDa0BHz0OPaCBL/OSPDsAXEGZ3/KQeS6poBKYVN7BfjXDL9lWNwzyHVgt/wkyCw==}
+
'@types/murmurhash3js-revisited@3.0.3':
resolution: {integrity: sha512-QvlqvYtGBYIDeO8dFdY4djkRubcrc+yTJtBc7n8VZPlJDUS/00A+PssbvERM8f9bYRmcaSEHPZgZojeQj7kzAA==}
@@ -2025,6 +2257,17 @@ packages:
'@types/node@22.10.1':
resolution: {integrity: sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==}
+ '@types/react-reconciler@0.26.7':
+ resolution: {integrity: sha512-mBDYl8x+oyPX/VBb3E638N0B7xG+SPk/EAMcVPeexqus/5aTpTphQi0curhhshOqRrc9t6OPoJfEUkbymse/lQ==}
+
+ '@types/react-reconciler@0.28.9':
+ resolution: {integrity: sha512-HHM3nxyUZ3zAylX8ZEyrDNd2XZOnQ0D5XfunJF5FLQnZbHHYq4UWvW1QfelQNXv1ICNkwYhfxjwfnqivYB6bFg==}
+ peerDependencies:
+ '@types/react': '*'
+
+ '@types/react@19.0.1':
+ resolution: {integrity: sha512-YW6614BDhqbpR5KtUYzTA+zlA7nayzJRA9ljz9CQoxthR0sDisYZLuvSMsil36t4EH/uAt8T52Xb4sVw17G+SQ==}
+
'@types/retry@0.12.2':
resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==}
@@ -2034,6 +2277,9 @@ packages:
'@types/unist@3.0.3':
resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
+ '@types/webxr@0.5.20':
+ resolution: {integrity: sha512-JGpU6qiIJQKUuVSKx1GtQnHJGxRjtfGIhzO2ilq43VZZS//f1h1Sgexbdk+Lq+7569a6EYhOWrUpIruR/1Enmg==}
+
'@types/ws@8.5.13':
resolution: {integrity: sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==}
@@ -2075,6 +2321,57 @@ packages:
'@vitest/utils@2.1.8':
resolution: {integrity: sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==}
+ '@webassemblyjs/ast@1.14.1':
+ resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==}
+
+ '@webassemblyjs/floating-point-hex-parser@1.13.2':
+ resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==}
+
+ '@webassemblyjs/helper-api-error@1.13.2':
+ resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==}
+
+ '@webassemblyjs/helper-buffer@1.14.1':
+ resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==}
+
+ '@webassemblyjs/helper-numbers@1.13.2':
+ resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==}
+
+ '@webassemblyjs/helper-wasm-bytecode@1.13.2':
+ resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==}
+
+ '@webassemblyjs/helper-wasm-section@1.14.1':
+ resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==}
+
+ '@webassemblyjs/ieee754@1.13.2':
+ resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==}
+
+ '@webassemblyjs/leb128@1.13.2':
+ resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==}
+
+ '@webassemblyjs/utf8@1.13.2':
+ resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==}
+
+ '@webassemblyjs/wasm-edit@1.14.1':
+ resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==}
+
+ '@webassemblyjs/wasm-gen@1.14.1':
+ resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==}
+
+ '@webassemblyjs/wasm-opt@1.14.1':
+ resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==}
+
+ '@webassemblyjs/wasm-parser@1.14.1':
+ resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==}
+
+ '@webassemblyjs/wast-printer@1.14.1':
+ resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==}
+
+ '@xtuc/ieee754@1.2.0':
+ resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==}
+
+ '@xtuc/long@4.2.2':
+ resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
+
abort-controller@3.0.0:
resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
engines: {node: '>=6.5'}
@@ -2083,6 +2380,10 @@ packages:
resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
engines: {node: '>= 0.6'}
+ acorn-walk@8.3.4:
+ resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==}
+ engines: {node: '>=0.4.0'}
+
acorn@8.14.0:
resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
engines: {node: '>=0.4.0'}
@@ -2092,6 +2393,30 @@ packages:
resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==}
engines: {node: '>= 14'}
+ ajv-formats@2.1.1:
+ resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
+ peerDependencies:
+ ajv: ^8.0.0
+ peerDependenciesMeta:
+ ajv:
+ optional: true
+
+ ajv-keywords@3.5.2:
+ resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
+ peerDependencies:
+ ajv: ^6.9.1
+
+ ajv-keywords@5.1.0:
+ resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==}
+ peerDependencies:
+ ajv: ^8.8.2
+
+ ajv@6.12.6:
+ resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+
+ ajv@8.17.1:
+ resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
+
anser@1.4.10:
resolution: {integrity: sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==}
@@ -2130,6 +2455,9 @@ packages:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
+ arg@4.1.3:
+ resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
+
argparse@1.0.10:
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
@@ -2419,6 +2747,10 @@ packages:
engines: {node: '>=12.13.0'}
hasBin: true
+ chrome-trace-event@1.0.4:
+ resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==}
+ engines: {node: '>=6.0'}
+
chromium-edge-launcher@0.2.0:
resolution: {integrity: sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==}
@@ -2551,6 +2883,9 @@ packages:
resolution: {integrity: sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==}
engines: {node: '>= 0.10'}
+ csstype@3.1.3:
+ resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
+
data-uri-to-buffer@6.0.2:
resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==}
engines: {node: '>= 14'}
@@ -2558,6 +2893,9 @@ packages:
datastore-core@10.0.2:
resolution: {integrity: sha512-B3WXxI54VxJkpXxnYibiF17si3bLXE1XOjrJB7wM5co9fx2KOEkiePDGiCCEtnapFHTnmAnYCPdA7WZTIpdn/A==}
+ debounce@1.2.1:
+ resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==}
+
debug@2.6.9:
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
peerDependencies:
@@ -2675,6 +3013,10 @@ packages:
devlop@1.1.0:
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
+ diff@4.0.2:
+ resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
+ engines: {node: '>=0.3.1'}
+
diffie-hellman@5.0.3:
resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==}
@@ -2730,6 +3072,10 @@ packages:
end-of-stream@1.4.4:
resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
+ enhanced-resolve@5.17.1:
+ resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==}
+ engines: {node: '>=10.13.0'}
+
ensure-posix-path@1.1.1:
resolution: {integrity: sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw==}
@@ -2797,11 +3143,23 @@ packages:
engines: {node: '>=6.0'}
hasBin: true
+ eslint-scope@5.1.1:
+ resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
+ engines: {node: '>=8.0.0'}
+
esprima@4.0.1:
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
engines: {node: '>=4'}
hasBin: true
+ esrecurse@4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+
+ estraverse@4.3.0:
+ resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
+ engines: {node: '>=4.0'}
+
estraverse@5.3.0:
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
engines: {node: '>=4.0'}
@@ -2864,6 +3222,9 @@ packages:
resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
engines: {node: '>=4'}
+ fast-deep-equal@3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+
fast-glob@3.3.2:
resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
engines: {node: '>=8.6.0'}
@@ -2871,6 +3232,9 @@ packages:
fast-json-stable-stringify@2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+ fast-uri@3.0.3:
+ resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==}
+
fastq@1.17.1:
resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
@@ -2980,6 +3344,9 @@ packages:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
+ glob-to-regexp@0.4.1:
+ resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
+
glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
deprecated: Glob versions prior to v9 are no longer supported
@@ -2999,6 +3366,9 @@ packages:
globrex@0.1.2:
resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
+ google-protobuf@3.21.4:
+ resolution: {integrity: sha512-MnG7N936zcKTco4Jd2PX2U96Kf9PxygAPKBug+74LHzmHXmceN16MmRcdgZv+DGef/S9YvQAfRsNCn4cjf9yyQ==}
+
gopd@1.2.0:
resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
engines: {node: '>= 0.4'}
@@ -3091,6 +3461,10 @@ packages:
resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
engines: {node: '>=16.17.0'}
+ hyperdyperid@1.2.0:
+ resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==}
+ engines: {node: '>=10.18'}
+
iconv-lite@0.4.24:
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
engines: {node: '>=0.10.0'}
@@ -3390,6 +3764,11 @@ packages:
resolution: {integrity: sha512-uWjMtpy5HqhSd/LlrlP3fhYrr7rUfJFFMABv0F5d6n13Q+0glhZthwUKpEAVhDrXY95Tb1RB5lLqqef+QbVNaw==}
engines: {node: '>=16.0.0', npm: '>=7.0.0'}
+ its-fine@1.2.5:
+ resolution: {integrity: sha512-fXtDA0X0t0eBYAGLVM5YsgJGsJ5jEmqZEPrGbzdf5awjv0xE7nqv3TVnvtUF060Tkes15DbDAKW/I48vsb6SyA==}
+ peerDependencies:
+ react: '>=18.0'
+
jest-environment-node@29.7.0:
resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -3422,6 +3801,10 @@ packages:
resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ jest-worker@27.5.1:
+ resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
+ engines: {node: '>= 10.13.0'}
+
jest-worker@29.7.0:
resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -3463,6 +3846,12 @@ packages:
json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+ json-schema-traverse@0.4.1:
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+
+ json-schema-traverse@1.0.0:
+ resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
+
json5@2.2.3:
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
engines: {node: '>=6'}
@@ -3472,6 +3861,9 @@ packages:
resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
engines: {node: '>=0.10.0'}
+ konva@9.3.16:
+ resolution: {integrity: sha512-qa47cefGDDHzkToGRGDsy24f/Njrz7EHP56jQ8mlDcjAPO7vkfTDeoBDIfmF7PZtpfzDdooafQmEUJMDU2F7FQ==}
+
ky@1.7.2:
resolution: {integrity: sha512-OzIvbHKKDpi60TnF9t7UUVAF1B4mcqc02z5PIvrm08Wyb+yOcz63GRvEuVxNT18a9E1SrNouhB4W2NNLeD7Ykg==}
engines: {node: '>=18'}
@@ -3496,6 +3888,10 @@ packages:
linkify-it@5.0.0:
resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
+ loader-runner@4.3.0:
+ resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
+ engines: {node: '>=6.11.5'}
+
locate-path@3.0.0:
resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
engines: {node: '>=6'}
@@ -3581,6 +3977,9 @@ packages:
resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
engines: {node: '>=6'}
+ make-error@1.3.6:
+ resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
+
makeerror@1.0.12:
resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
@@ -3604,6 +4003,10 @@ packages:
mdurl@2.0.0:
resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
+ memfs@4.15.0:
+ resolution: {integrity: sha512-q9MmZXd2rRWHS6GU3WEm3HyiXZyyoA1DqdOhEq0lxPBmKb5S7IAOwX0RgUCwJfqjelDCySa5h8ujOy24LqsWcw==}
+ engines: {node: '>= 4.0.0'}
+
memoize-one@5.2.1:
resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==}
@@ -3772,6 +4175,10 @@ packages:
resolution: {integrity: sha512-kh8ARjh8rMN7Du2igDRO9QJnqCb2xYTJxyQYK7vJJS4TvLLmsbyhiKpSW+t+y26gyOyMd0riphX0GeWKU3ky5g==}
engines: {node: '>=12.13'}
+ multicast-dns@7.2.5:
+ resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==}
+ hasBin: true
+
multiformats@13.3.1:
resolution: {integrity: sha512-QxowxTNwJ3r5RMctoGA5p13w5RbRT2QDkoM+yFlqfLiioBp78nhDjnRLvmSBI9+KAqN4VdgOVWM9c0CHd86m3g==}
@@ -4175,6 +4582,10 @@ packages:
punycode@1.4.1:
resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==}
+ punycode@2.3.1:
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
+ engines: {node: '>=6'}
+
pupa@3.1.0:
resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==}
engines: {node: '>=12.20'}
@@ -4223,9 +4634,21 @@ packages:
react-devtools-core@5.3.2:
resolution: {integrity: sha512-crr9HkVrDiJ0A4zot89oS0Cgv0Oa4OG1Em4jit3P3ZxZSKPMYyMjfwMqgcJna9o625g8oN87rBm8SWWrSTBZxg==}
+ react-dom@18.3.1:
+ resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
+ peerDependencies:
+ react: ^18.3.1
+
react-is@18.3.1:
resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
+ react-konva@18.2.10:
+ resolution: {integrity: sha512-ohcX1BJINL43m4ynjZ24MxFI1syjBdrXhqVxYVDw2rKgr3yuS0x/6m1Y2Z4sl4T/gKhfreBx8KHisd0XC6OT1g==}
+ peerDependencies:
+ konva: ^8.0.1 || ^7.2.5 || ^9.0.0
+ react: '>=18.0.0'
+ react-dom: '>=18.0.0'
+
react-native-webrtc@124.0.4:
resolution: {integrity: sha512-ZbhSz1f+kc1v5VE0B84+v6ujIWTHa2fIuocrYzGUIFab7E5izmct7PNHb9dzzs0xhBGqh4c2rUa49jbL+P/e2w==}
peerDependencies:
@@ -4242,10 +4665,31 @@ packages:
'@types/react':
optional: true
+ react-reconciler@0.27.0:
+ resolution: {integrity: sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA==}
+ engines: {node: '>=0.10.0'}
+ peerDependencies:
+ react: ^18.0.0
+
+ react-reconciler@0.29.2:
+ resolution: {integrity: sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==}
+ engines: {node: '>=0.10.0'}
+ peerDependencies:
+ react: ^18.3.1
+
react-refresh@0.14.2:
resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
engines: {node: '>=0.10.0'}
+ react-spring@9.7.5:
+ resolution: {integrity: sha512-oG6DkDZIASHzPiGYw5KwrCvoFZqsaO3t2R7KE37U6S/+8qWSph/UjRQalPpZxlbgheqV9LT62H6H9IyoopHdug==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
+
+ react-zdog@1.2.2:
+ resolution: {integrity: sha512-Ix7ALha91aOEwiHuxumCeYbARS5XNpc/w0v145oGkM6poF/CvhKJwzLhM5sEZbtrghMA+psAhOJkCTzJoseicA==}
+
react@18.3.1:
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
engines: {node: '>=0.10.0'}
@@ -4321,6 +4765,13 @@ packages:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
+ require-from-string@2.0.2:
+ resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
+ engines: {node: '>=0.10.0'}
+
+ resize-observer-polyfill@1.5.1:
+ resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
+
resolve-from@3.0.0:
resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==}
engines: {node: '>=4'}
@@ -4404,9 +4855,23 @@ packages:
safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+ scheduler@0.21.0:
+ resolution: {integrity: sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==}
+
+ scheduler@0.23.2:
+ resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
+
scheduler@0.24.0-canary-efb381bbf-20230505:
resolution: {integrity: sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==}
+ schema-utils@3.3.0:
+ resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
+ engines: {node: '>= 10.13.0'}
+
+ schema-utils@4.3.0:
+ resolution: {integrity: sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==}
+ engines: {node: '>= 10.13.0'}
+
selfsigned@2.4.1:
resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==}
engines: {node: '>=10'}
@@ -4432,6 +4897,9 @@ packages:
resolution: {integrity: sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==}
engines: {node: '>=0.10.0'}
+ serialize-javascript@6.0.2:
+ resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
+
serve-static@1.16.2:
resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==}
engines: {node: '>= 0.8.0'}
@@ -4529,6 +4997,10 @@ packages:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
+ source-map@0.7.4:
+ resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
+ engines: {node: '>= 8'}
+
space-separated-tokens@2.0.2:
resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
@@ -4629,6 +5101,15 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
+ suspend-react@0.1.3:
+ resolution: {integrity: sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==}
+ peerDependencies:
+ react: '>=17.0'
+
+ tapable@2.2.1:
+ resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
+ engines: {node: '>=6'}
+
tar-fs@2.1.1:
resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==}
@@ -4643,6 +5124,22 @@ packages:
resolution: {integrity: sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==}
engines: {node: '>=6.0.0'}
+ terser-webpack-plugin@5.3.11:
+ resolution: {integrity: sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==}
+ engines: {node: '>= 10.13.0'}
+ peerDependencies:
+ '@swc/core': '*'
+ esbuild: '*'
+ uglify-js: '*'
+ webpack: ^5.1.0
+ peerDependenciesMeta:
+ '@swc/core':
+ optional: true
+ esbuild:
+ optional: true
+ uglify-js:
+ optional: true
+
terser@5.37.0:
resolution: {integrity: sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==}
engines: {node: '>=10'}
@@ -4652,12 +5149,24 @@ packages:
resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
engines: {node: '>=8'}
+ thingies@1.21.0:
+ resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==}
+ engines: {node: '>=10.18'}
+ peerDependencies:
+ tslib: ^2
+
+ three@0.171.0:
+ resolution: {integrity: sha512-Y/lAXPaKZPcEdkKjh0JOAHVv8OOnv/NDJqm0wjfCzyQmfKxV7zvkwsnBgPBKTzJHToSOhRGQAGbPJObT59B/PQ==}
+
throat@5.0.0:
resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==}
through2@2.0.5:
resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==}
+ thunky@1.1.0:
+ resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==}
+
timers-browserify@2.0.12:
resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==}
engines: {node: '>=0.6.0'}
@@ -4698,9 +5207,36 @@ packages:
tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+ tree-dump@1.0.2:
+ resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==}
+ engines: {node: '>=10.0'}
+ peerDependencies:
+ tslib: '2'
+
trim-lines@3.0.1:
resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
+ ts-loader@9.5.1:
+ resolution: {integrity: sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ typescript: '*'
+ webpack: ^5.0.0
+
+ ts-node@10.9.2:
+ resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
+ hasBin: true
+ peerDependencies:
+ '@swc/core': '>=1.2.50'
+ '@swc/wasm': '>=1.2.50'
+ '@types/node': '*'
+ typescript: '>=2.7'
+ peerDependenciesMeta:
+ '@swc/core':
+ optional: true
+ '@swc/wasm':
+ optional: true
+
ts-poet@6.9.0:
resolution: {integrity: sha512-roe6W6MeZmCjRmppyfOURklO5tQFQ6Sg7swURKkwYJvV7dbGCrK28um5+51iW3twdPRKtwarqFAVMU6G1mvnuQ==}
@@ -4834,6 +5370,9 @@ packages:
resolution: {integrity: sha512-+dwUY4L35XFYEzE+OAL3sarJdUioVovq+8f7lcIJ7wnmnYQV5UD1Y/lcwaMSyaQ6Bj3JMj1XSTjZbNLHn/19yA==}
engines: {node: '>=18'}
+ uri-js@4.4.1:
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+
url-join@4.0.1:
resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==}
@@ -4855,6 +5394,9 @@ packages:
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
engines: {node: '>= 0.4.0'}
+ v8-compile-cache-lib@3.0.1:
+ resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
+
validate-peer-dependencies@1.2.0:
resolution: {integrity: sha512-nd2HUpKc6RWblPZQ2GDuI65sxJ2n/UqZwSBVtj64xlWjMx0m7ZB2m9b2JS3v1f+n9VWH/dd1CMhkHfP6pIdckA==}
@@ -4991,6 +5533,10 @@ packages:
walker@1.0.8:
resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
+ watchpack@2.4.2:
+ resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==}
+ engines: {node: '>=10.13.0'}
+
wcwidth@1.0.1:
resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
@@ -5000,6 +5546,20 @@ packages:
webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+ webpack-sources@3.2.3:
+ resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
+ engines: {node: '>=10.13.0'}
+
+ webpack@5.97.1:
+ resolution: {integrity: sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+ peerDependencies:
+ webpack-cli: '*'
+ peerDependenciesMeta:
+ webpack-cli:
+ optional: true
+
whatwg-fetch@3.6.20:
resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==}
@@ -5123,6 +5683,10 @@ packages:
resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
engines: {node: '>=12'}
+ yn@3.1.1:
+ resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
+ engines: {node: '>=6'}
+
yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
@@ -5131,6 +5695,18 @@ packages:
resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==}
engines: {node: '>=18'}
+ zdog@1.1.3:
+ resolution: {integrity: sha512-raRj6r0gPzopFm5XWBJZr/NuV4EEnT4iE+U3dp5FV5pCb588Gmm3zLIp/j9yqqcMiHH8VNQlerLTgOqL7krh6w==}
+
+ zustand@3.7.2:
+ resolution: {integrity: sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==}
+ engines: {node: '>=12.7.0'}
+ peerDependencies:
+ react: '>=16.8'
+ peerDependenciesMeta:
+ react:
+ optional: true
+
zwitch@2.0.4:
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
@@ -6079,6 +6655,10 @@ snapshots:
dependencies:
'@chainsafe/is-ip': 2.0.2
+ '@cspotcode/source-map-support@0.8.1':
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.9
+
'@esbuild/aix-ppc64@0.21.5':
optional: true
@@ -6395,8 +6975,29 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.0
+ '@jridgewell/trace-mapping@0.3.9':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.0
+
'@js-sdsl/ordered-map@4.4.2': {}
+ '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)':
+ dependencies:
+ tslib: 2.8.1
+
+ '@jsonjoy.com/json-pack@1.1.1(tslib@2.8.1)':
+ dependencies:
+ '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1)
+ '@jsonjoy.com/util': 1.5.0(tslib@2.8.1)
+ hyperdyperid: 1.2.0
+ thingies: 1.21.0(tslib@2.8.1)
+ tslib: 2.8.1
+
+ '@jsonjoy.com/util@1.5.0(tslib@2.8.1)':
+ dependencies:
+ tslib: 2.8.1
+
'@leichtgewicht/ip-codec@2.0.5': {}
'@libp2p/autonat@2.0.12':
@@ -6423,6 +7024,28 @@ snapshots:
'@multiformats/mafmt': 12.1.6
'@multiformats/multiaddr': 12.3.4
+ '@libp2p/circuit-relay-v2@2.1.5':
+ dependencies:
+ '@libp2p/crypto': 5.0.7
+ '@libp2p/interface': 2.2.1
+ '@libp2p/interface-internal': 2.1.1
+ '@libp2p/peer-collections': 6.0.12
+ '@libp2p/peer-id': 5.0.8
+ '@libp2p/peer-record': 8.0.12
+ '@libp2p/utils': 6.2.1
+ '@multiformats/multiaddr': 12.3.4
+ '@multiformats/multiaddr-matcher': 1.6.0
+ any-signal: 4.1.1
+ it-protobuf-stream: 1.1.5
+ it-stream-types: 2.0.2
+ multiformats: 13.3.1
+ progress-events: 1.0.1
+ protons-runtime: 5.5.0
+ race-signal: 1.1.0
+ retimeable-signal: 0.0.0
+ uint8arraylist: 2.4.8
+ uint8arrays: 5.1.0
+
'@libp2p/circuit-relay-v2@3.1.3':
dependencies:
'@libp2p/crypto': 5.0.7
@@ -6456,6 +7079,17 @@ snapshots:
uint8arraylist: 2.4.8
uint8arrays: 5.1.0
+ '@libp2p/crypto@5.0.8':
+ dependencies:
+ '@libp2p/interface': 2.3.0
+ '@noble/curves': 1.7.0
+ '@noble/hashes': 1.6.1
+ asn1js: 3.0.5
+ multiformats: 13.3.1
+ protons-runtime: 5.5.0
+ uint8arraylist: 2.4.8
+ uint8arrays: 5.1.0
+
'@libp2p/dcutr@2.0.12':
dependencies:
'@libp2p/interface': 2.2.1
@@ -6509,7 +7143,24 @@ snapshots:
progress-events: 1.0.1
uint8arraylist: 2.4.8
- '@libp2p/interface@2.2.1':
+ '@libp2p/interface-internal@2.2.1':
+ dependencies:
+ '@libp2p/interface': 2.3.0
+ '@libp2p/peer-collections': 6.0.13
+ '@multiformats/multiaddr': 12.3.4
+ progress-events: 1.0.1
+ uint8arraylist: 2.4.8
+
+ '@libp2p/interface@2.2.1':
+ dependencies:
+ '@multiformats/multiaddr': 12.3.4
+ it-pushable: 3.2.3
+ it-stream-types: 2.0.2
+ multiformats: 13.3.1
+ progress-events: 1.0.1
+ uint8arraylist: 2.4.8
+
+ '@libp2p/interface@2.3.0':
dependencies:
'@multiformats/multiaddr': 12.3.4
it-pushable: 3.2.3
@@ -6526,6 +7177,25 @@ snapshots:
multiformats: 13.3.1
weald: 1.0.4
+ '@libp2p/logger@5.1.5':
+ dependencies:
+ '@libp2p/interface': 2.3.0
+ '@multiformats/multiaddr': 12.3.4
+ interface-datastore: 8.3.1
+ multiformats: 13.3.1
+ weald: 1.0.4
+
+ '@libp2p/mdns@11.0.16':
+ dependencies:
+ '@libp2p/interface': 2.3.0
+ '@libp2p/interface-internal': 2.2.1
+ '@libp2p/peer-id': 5.0.9
+ '@libp2p/utils': 6.3.0
+ '@multiformats/multiaddr': 12.3.4
+ '@types/multicast-dns': 7.2.4
+ dns-packet: 5.6.1
+ multicast-dns: 7.2.5
+
'@libp2p/multistream-select@6.0.9':
dependencies:
'@libp2p/interface': 2.2.1
@@ -6545,6 +7215,13 @@ snapshots:
'@libp2p/utils': 6.2.1
multiformats: 13.3.1
+ '@libp2p/peer-collections@6.0.13':
+ dependencies:
+ '@libp2p/interface': 2.3.0
+ '@libp2p/peer-id': 5.0.9
+ '@libp2p/utils': 6.3.0
+ multiformats: 13.3.1
+
'@libp2p/peer-id@5.0.8':
dependencies:
'@libp2p/crypto': 5.0.7
@@ -6552,6 +7229,13 @@ snapshots:
multiformats: 13.3.1
uint8arrays: 5.1.0
+ '@libp2p/peer-id@5.0.9':
+ dependencies:
+ '@libp2p/crypto': 5.0.8
+ '@libp2p/interface': 2.3.0
+ multiformats: 13.3.1
+ uint8arrays: 5.1.0
+
'@libp2p/peer-record@8.0.12':
dependencies:
'@libp2p/crypto': 5.0.7
@@ -6640,6 +7324,62 @@ snapshots:
uint8arraylist: 2.4.8
uint8arrays: 5.1.0
+ '@libp2p/utils@6.3.0':
+ dependencies:
+ '@chainsafe/is-ip': 2.0.2
+ '@chainsafe/netmask': 2.0.0
+ '@libp2p/crypto': 5.0.8
+ '@libp2p/interface': 2.3.0
+ '@libp2p/logger': 5.1.5
+ '@multiformats/multiaddr': 12.3.4
+ '@sindresorhus/fnv1a': 3.1.0
+ '@types/murmurhash3js-revisited': 3.0.3
+ any-signal: 4.1.1
+ delay: 6.0.0
+ get-iterator: 2.0.1
+ is-loopback-addr: 2.0.2
+ it-foreach: 2.1.1
+ it-pipe: 3.0.1
+ it-pushable: 3.2.3
+ it-stream-types: 2.0.2
+ murmurhash3js-revisited: 3.0.0
+ netmask: 2.0.2
+ p-defer: 4.0.1
+ race-event: 1.3.0
+ race-signal: 1.1.0
+ uint8arraylist: 2.4.8
+ uint8arrays: 5.1.0
+
+ '@libp2p/webrtc@5.0.19(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1))':
+ dependencies:
+ '@chainsafe/libp2p-noise': 16.0.0
+ '@libp2p/interface': 2.2.1
+ '@libp2p/interface-internal': 2.1.1
+ '@libp2p/peer-id': 5.0.8
+ '@libp2p/utils': 6.2.1
+ '@multiformats/multiaddr': 12.3.4
+ '@multiformats/multiaddr-matcher': 1.6.0
+ detect-browser: 5.3.0
+ it-length-prefixed: 9.1.0
+ it-protobuf-stream: 1.1.5
+ it-pushable: 3.2.3
+ it-stream-types: 2.0.2
+ multiformats: 13.3.1
+ node-datachannel: 0.11.0
+ p-defer: 4.0.1
+ p-event: 6.0.1
+ p-timeout: 6.1.3
+ progress-events: 1.0.1
+ protons-runtime: 5.5.0
+ race-signal: 1.1.0
+ react-native-webrtc: 124.0.4(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1))
+ uint8-varint: 2.0.4
+ uint8arraylist: 2.4.8
+ uint8arrays: 5.1.0
+ transitivePeerDependencies:
+ - react-native
+ - supports-color
+
'@libp2p/webrtc@5.0.19(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(react@18.3.1))':
dependencies:
'@chainsafe/libp2p-noise': 16.0.0
@@ -6987,6 +7727,15 @@ snapshots:
'@react-native/normalize-colors@0.76.4': {}
+ '@react-native/virtualized-lists@0.76.4(@types/react@19.0.1)(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ invariant: 2.2.4
+ nullthrows: 1.1.1
+ react: 18.3.1
+ react-native: 0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1)
+ optionalDependencies:
+ '@types/react': 19.0.1
+
'@react-native/virtualized-lists@0.76.4(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(react@18.3.1))(react@18.3.1)':
dependencies:
invariant: 2.2.4
@@ -6994,6 +7743,100 @@ snapshots:
react: 18.3.1
react-native: 0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(react@18.3.1)
+ '@react-spring/animated@9.7.5(react@18.3.1)':
+ dependencies:
+ '@react-spring/shared': 9.7.5(react@18.3.1)
+ '@react-spring/types': 9.7.5
+ react: 18.3.1
+
+ '@react-spring/core@9.7.5(react@18.3.1)':
+ dependencies:
+ '@react-spring/animated': 9.7.5(react@18.3.1)
+ '@react-spring/shared': 9.7.5(react@18.3.1)
+ '@react-spring/types': 9.7.5
+ react: 18.3.1
+
+ '@react-spring/konva@9.7.5(konva@9.3.16)(react-konva@18.2.10(@types/react@19.0.1)(konva@9.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@react-spring/animated': 9.7.5(react@18.3.1)
+ '@react-spring/core': 9.7.5(react@18.3.1)
+ '@react-spring/shared': 9.7.5(react@18.3.1)
+ '@react-spring/types': 9.7.5
+ konva: 9.3.16
+ react: 18.3.1
+ react-konva: 18.2.10(@types/react@19.0.1)(konva@9.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+
+ '@react-spring/native@9.7.5(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@react-spring/animated': 9.7.5(react@18.3.1)
+ '@react-spring/core': 9.7.5(react@18.3.1)
+ '@react-spring/shared': 9.7.5(react@18.3.1)
+ '@react-spring/types': 9.7.5
+ react: 18.3.1
+ react-native: 0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1)
+
+ '@react-spring/rafz@9.7.5': {}
+
+ '@react-spring/shared@9.7.5(react@18.3.1)':
+ dependencies:
+ '@react-spring/rafz': 9.7.5
+ '@react-spring/types': 9.7.5
+ react: 18.3.1
+
+ '@react-spring/three@9.7.5(@react-three/fiber@8.17.10(@types/react@19.0.1)(react-dom@18.3.1(react@18.3.1))(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1))(react@18.3.1)(three@0.171.0))(react@18.3.1)(three@0.171.0)':
+ dependencies:
+ '@react-spring/animated': 9.7.5(react@18.3.1)
+ '@react-spring/core': 9.7.5(react@18.3.1)
+ '@react-spring/shared': 9.7.5(react@18.3.1)
+ '@react-spring/types': 9.7.5
+ '@react-three/fiber': 8.17.10(@types/react@19.0.1)(react-dom@18.3.1(react@18.3.1))(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1))(react@18.3.1)(three@0.171.0)
+ react: 18.3.1
+ three: 0.171.0
+
+ '@react-spring/types@9.7.5': {}
+
+ '@react-spring/web@9.7.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@react-spring/animated': 9.7.5(react@18.3.1)
+ '@react-spring/core': 9.7.5(react@18.3.1)
+ '@react-spring/shared': 9.7.5(react@18.3.1)
+ '@react-spring/types': 9.7.5
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ '@react-spring/zdog@9.7.5(react-dom@18.3.1(react@18.3.1))(react-zdog@1.2.2)(react@18.3.1)(zdog@1.1.3)':
+ dependencies:
+ '@react-spring/animated': 9.7.5(react@18.3.1)
+ '@react-spring/core': 9.7.5(react@18.3.1)
+ '@react-spring/shared': 9.7.5(react@18.3.1)
+ '@react-spring/types': 9.7.5
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-zdog: 1.2.2
+ zdog: 1.1.3
+
+ '@react-three/fiber@8.17.10(@types/react@19.0.1)(react-dom@18.3.1(react@18.3.1))(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1))(react@18.3.1)(three@0.171.0)':
+ dependencies:
+ '@babel/runtime': 7.26.0
+ '@types/debounce': 1.2.4
+ '@types/react-reconciler': 0.26.7
+ '@types/webxr': 0.5.20
+ base64-js: 1.5.1
+ buffer: 6.0.3
+ debounce: 1.2.1
+ its-fine: 1.2.5(@types/react@19.0.1)(react@18.3.1)
+ react: 18.3.1
+ react-reconciler: 0.27.0(react@18.3.1)
+ scheduler: 0.21.0
+ suspend-react: 0.1.3(react@18.3.1)
+ three: 0.171.0
+ zustand: 3.7.2(react@18.3.1)
+ optionalDependencies:
+ react-dom: 18.3.1(react@18.3.1)
+ react-native: 0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1)
+ transitivePeerDependencies:
+ - '@types/react'
+
'@release-it-plugins/workspaces@4.2.0(release-it@17.10.0(typescript@5.7.2))':
dependencies:
detect-indent: 6.1.0
@@ -7130,6 +7973,85 @@ snapshots:
'@tootallnate/quickjs-emscripten@0.23.0': {}
+ '@topology-foundation/blueprints@0.3.0':
+ dependencies:
+ '@thi.ng/random': 4.1.4
+
+ '@topology-foundation/logger@0.3.0':
+ dependencies:
+ loglevel: 1.9.2
+ loglevel-plugin-prefix: 0.8.4
+
+ '@topology-foundation/logger@0.3.1':
+ dependencies:
+ loglevel: 1.9.2
+ loglevel-plugin-prefix: 0.8.4
+
+ '@topology-foundation/network@0.3.0(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1))':
+ dependencies:
+ '@bufbuild/protobuf': 2.2.2
+ '@chainsafe/libp2p-gossipsub': 14.1.0
+ '@chainsafe/libp2p-noise': 16.0.0
+ '@chainsafe/libp2p-yamux': 7.0.1
+ '@libp2p/autonat': 2.0.12
+ '@libp2p/bootstrap': 11.0.13
+ '@libp2p/circuit-relay-v2': 2.1.5
+ '@libp2p/crypto': 5.0.7
+ '@libp2p/dcutr': 2.0.12
+ '@libp2p/devtools-metrics': 1.1.10
+ '@libp2p/identify': 3.0.12
+ '@libp2p/mdns': 11.0.16
+ '@libp2p/peer-id': 5.0.8
+ '@libp2p/pubsub-peer-discovery': 11.0.1
+ '@libp2p/webrtc': 5.0.19(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1))
+ '@libp2p/websockets': 9.0.13
+ '@libp2p/webtransport': 5.0.18
+ '@multiformats/multiaddr': 12.3.4
+ '@topology-foundation/logger': 0.3.1
+ it-length-prefixed: 9.1.0
+ it-map: 3.1.1
+ it-pipe: 3.0.1
+ libp2p: 2.3.1
+ ts-proto: 2.5.0
+ uint8arrays: 5.1.0
+ transitivePeerDependencies:
+ - bufferutil
+ - react-native
+ - supports-color
+ - utf-8-validate
+
+ '@topology-foundation/node@0.3.0(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1))':
+ dependencies:
+ '@chainsafe/libp2p-gossipsub': 14.1.0
+ '@grpc/grpc-js': 1.12.4
+ '@libp2p/interface': 2.2.1
+ '@topology-foundation/blueprints': 0.3.0
+ '@topology-foundation/logger': 0.3.0
+ '@topology-foundation/network': 0.3.0(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1))
+ '@topology-foundation/object': 0.3.0
+ commander: 12.1.0
+ dotenv: 16.4.7
+ google-protobuf: 3.21.4
+ transitivePeerDependencies:
+ - bufferutil
+ - react-native
+ - supports-color
+ - utf-8-validate
+
+ '@topology-foundation/object@0.3.0':
+ dependencies:
+ '@bufbuild/protobuf': 2.2.2
+ '@topology-foundation/logger': 0.3.1
+ ts-proto: 2.5.0
+
+ '@tsconfig/node10@1.0.11': {}
+
+ '@tsconfig/node12@1.0.11': {}
+
+ '@tsconfig/node14@1.0.3': {}
+
+ '@tsconfig/node16@1.0.4': {}
+
'@types/babel__core@7.20.5':
dependencies:
'@babel/parser': 7.26.3
@@ -7151,10 +8073,22 @@ snapshots:
dependencies:
'@babel/types': 7.26.3
+ '@types/debounce@1.2.4': {}
+
'@types/dns-packet@5.6.5':
dependencies:
'@types/node': 22.10.1
+ '@types/eslint-scope@3.7.7':
+ dependencies:
+ '@types/eslint': 9.6.1
+ '@types/estree': 1.0.6
+
+ '@types/eslint@9.6.1':
+ dependencies:
+ '@types/estree': 1.0.6
+ '@types/json-schema': 7.0.15
+
'@types/estree@1.0.6': {}
'@types/graceful-fs@4.1.9':
@@ -7175,12 +8109,19 @@ snapshots:
dependencies:
'@types/istanbul-lib-report': 3.0.3
+ '@types/json-schema@7.0.15': {}
+
'@types/mdast@4.0.4':
dependencies:
'@types/unist': 3.0.3
'@types/minimatch@3.0.5': {}
+ '@types/multicast-dns@7.2.4':
+ dependencies:
+ '@types/dns-packet': 5.6.5
+ '@types/node': 22.10.1
+
'@types/murmurhash3js-revisited@3.0.3': {}
'@types/node-forge@1.3.11':
@@ -7191,12 +8132,26 @@ snapshots:
dependencies:
undici-types: 6.20.0
+ '@types/react-reconciler@0.26.7':
+ dependencies:
+ '@types/react': 19.0.1
+
+ '@types/react-reconciler@0.28.9(@types/react@19.0.1)':
+ dependencies:
+ '@types/react': 19.0.1
+
+ '@types/react@19.0.1':
+ dependencies:
+ csstype: 3.1.3
+
'@types/retry@0.12.2': {}
'@types/stack-utils@2.0.3': {}
'@types/unist@3.0.3': {}
+ '@types/webxr@0.5.20': {}
+
'@types/ws@8.5.13':
dependencies:
'@types/node': 22.10.1
@@ -7249,6 +8204,86 @@ snapshots:
loupe: 3.1.2
tinyrainbow: 1.2.0
+ '@webassemblyjs/ast@1.14.1':
+ dependencies:
+ '@webassemblyjs/helper-numbers': 1.13.2
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+
+ '@webassemblyjs/floating-point-hex-parser@1.13.2': {}
+
+ '@webassemblyjs/helper-api-error@1.13.2': {}
+
+ '@webassemblyjs/helper-buffer@1.14.1': {}
+
+ '@webassemblyjs/helper-numbers@1.13.2':
+ dependencies:
+ '@webassemblyjs/floating-point-hex-parser': 1.13.2
+ '@webassemblyjs/helper-api-error': 1.13.2
+ '@xtuc/long': 4.2.2
+
+ '@webassemblyjs/helper-wasm-bytecode@1.13.2': {}
+
+ '@webassemblyjs/helper-wasm-section@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-buffer': 1.14.1
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+ '@webassemblyjs/wasm-gen': 1.14.1
+
+ '@webassemblyjs/ieee754@1.13.2':
+ dependencies:
+ '@xtuc/ieee754': 1.2.0
+
+ '@webassemblyjs/leb128@1.13.2':
+ dependencies:
+ '@xtuc/long': 4.2.2
+
+ '@webassemblyjs/utf8@1.13.2': {}
+
+ '@webassemblyjs/wasm-edit@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-buffer': 1.14.1
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+ '@webassemblyjs/helper-wasm-section': 1.14.1
+ '@webassemblyjs/wasm-gen': 1.14.1
+ '@webassemblyjs/wasm-opt': 1.14.1
+ '@webassemblyjs/wasm-parser': 1.14.1
+ '@webassemblyjs/wast-printer': 1.14.1
+
+ '@webassemblyjs/wasm-gen@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+ '@webassemblyjs/ieee754': 1.13.2
+ '@webassemblyjs/leb128': 1.13.2
+ '@webassemblyjs/utf8': 1.13.2
+
+ '@webassemblyjs/wasm-opt@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-buffer': 1.14.1
+ '@webassemblyjs/wasm-gen': 1.14.1
+ '@webassemblyjs/wasm-parser': 1.14.1
+
+ '@webassemblyjs/wasm-parser@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/helper-api-error': 1.13.2
+ '@webassemblyjs/helper-wasm-bytecode': 1.13.2
+ '@webassemblyjs/ieee754': 1.13.2
+ '@webassemblyjs/leb128': 1.13.2
+ '@webassemblyjs/utf8': 1.13.2
+
+ '@webassemblyjs/wast-printer@1.14.1':
+ dependencies:
+ '@webassemblyjs/ast': 1.14.1
+ '@xtuc/long': 4.2.2
+
+ '@xtuc/ieee754@1.2.0': {}
+
+ '@xtuc/long@4.2.2': {}
+
abort-controller@3.0.0:
dependencies:
event-target-shim: 5.0.1
@@ -7258,10 +8293,41 @@ snapshots:
mime-types: 2.1.35
negotiator: 0.6.3
+ acorn-walk@8.3.4:
+ dependencies:
+ acorn: 8.14.0
+
acorn@8.14.0: {}
agent-base@7.1.3: {}
+ ajv-formats@2.1.1(ajv@8.17.1):
+ optionalDependencies:
+ ajv: 8.17.1
+
+ ajv-keywords@3.5.2(ajv@6.12.6):
+ dependencies:
+ ajv: 6.12.6
+
+ ajv-keywords@5.1.0(ajv@8.17.1):
+ dependencies:
+ ajv: 8.17.1
+ fast-deep-equal: 3.1.3
+
+ ajv@6.12.6:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+
+ ajv@8.17.1:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-uri: 3.0.3
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+
anser@1.4.10: {}
ansi-align@3.0.1:
@@ -7291,6 +8357,8 @@ snapshots:
normalize-path: 3.0.0
picomatch: 2.3.1
+ arg@4.1.3: {}
+
argparse@1.0.10:
dependencies:
sprintf-js: 1.0.3
@@ -7653,6 +8721,8 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ chrome-trace-event@1.0.4: {}
+
chromium-edge-launcher@0.2.0:
dependencies:
'@types/node': 22.10.1
@@ -7813,6 +8883,8 @@ snapshots:
randombytes: 2.1.0
randomfill: 1.0.4
+ csstype@3.1.3: {}
+
data-uri-to-buffer@6.0.2: {}
datastore-core@10.0.2:
@@ -7829,6 +8901,8 @@ snapshots:
it-sort: 3.0.6
it-take: 3.0.6
+ debounce@1.2.1: {}
+
debug@2.6.9:
dependencies:
ms: 2.0.0
@@ -7913,6 +8987,8 @@ snapshots:
dependencies:
dequal: 2.0.3
+ diff@4.0.2: {}
+
diffie-hellman@5.0.3:
dependencies:
bn.js: 4.12.1
@@ -7969,6 +9045,11 @@ snapshots:
dependencies:
once: 1.4.0
+ enhanced-resolve@5.17.1:
+ dependencies:
+ graceful-fs: 4.2.11
+ tapable: 2.2.1
+
ensure-posix-path@1.1.1: {}
entities@4.5.0: {}
@@ -8087,8 +9168,19 @@ snapshots:
optionalDependencies:
source-map: 0.6.1
+ eslint-scope@5.1.1:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 4.3.0
+
esprima@4.0.1: {}
+ esrecurse@4.3.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ estraverse@4.3.0: {}
+
estraverse@5.3.0: {}
estree-walker@2.0.2: {}
@@ -8152,6 +9244,8 @@ snapshots:
iconv-lite: 0.4.24
tmp: 0.0.33
+ fast-deep-equal@3.1.3: {}
+
fast-glob@3.3.2:
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -8162,6 +9256,8 @@ snapshots:
fast-json-stable-stringify@2.1.0: {}
+ fast-uri@3.0.3: {}
+
fastq@1.17.1:
dependencies:
reusify: 1.0.4
@@ -8277,6 +9373,8 @@ snapshots:
dependencies:
is-glob: 4.0.3
+ glob-to-regexp@0.4.1: {}
+
glob@7.2.3:
dependencies:
fs.realpath: 1.0.0
@@ -8303,6 +9401,8 @@ snapshots:
globrex@0.1.2: {}
+ google-protobuf@3.21.4: {}
+
gopd@1.2.0: {}
graceful-fs@4.2.10: {}
@@ -8409,6 +9509,8 @@ snapshots:
human-signals@5.0.0: {}
+ hyperdyperid@1.2.0: {}
+
iconv-lite@0.4.24:
dependencies:
safer-buffer: 2.1.2
@@ -8712,6 +9814,13 @@ snapshots:
- bufferutil
- utf-8-validate
+ its-fine@1.2.5(@types/react@19.0.1)(react@18.3.1):
+ dependencies:
+ '@types/react-reconciler': 0.28.9(@types/react@19.0.1)
+ react: 18.3.1
+ transitivePeerDependencies:
+ - '@types/react'
+
jest-environment-node@29.7.0:
dependencies:
'@jest/environment': 29.7.0
@@ -8777,6 +9886,12 @@ snapshots:
leven: 3.1.0
pretty-format: 29.7.0
+ jest-worker@27.5.1:
+ dependencies:
+ '@types/node': 22.10.1
+ merge-stream: 2.0.0
+ supports-color: 8.1.1
+
jest-worker@29.7.0:
dependencies:
'@types/node': 22.10.1
@@ -8832,10 +9947,16 @@ snapshots:
json-parse-even-better-errors@2.3.1: {}
+ json-schema-traverse@0.4.1: {}
+
+ json-schema-traverse@1.0.0: {}
+
json5@2.2.3: {}
kind-of@6.0.3: {}
+ konva@9.3.16: {}
+
ky@1.7.2: {}
latest-version@9.0.0:
@@ -8886,6 +10007,8 @@ snapshots:
dependencies:
uc.micro: 2.1.0
+ loader-runner@4.3.0: {}
+
locate-path@3.0.0:
dependencies:
p-locate: 3.0.0
@@ -8958,6 +10081,8 @@ snapshots:
pify: 4.0.1
semver: 5.7.2
+ make-error@1.3.6: {}
+
makeerror@1.0.12:
dependencies:
tmpl: 1.0.5
@@ -8998,6 +10123,13 @@ snapshots:
mdurl@2.0.0: {}
+ memfs@4.15.0:
+ dependencies:
+ '@jsonjoy.com/json-pack': 1.1.1(tslib@2.8.1)
+ '@jsonjoy.com/util': 1.5.0(tslib@2.8.1)
+ tree-dump: 1.0.2(tslib@2.8.1)
+ tslib: 2.8.1
+
memoize-one@5.2.1: {}
merge-options@3.0.4:
@@ -9266,6 +10398,11 @@ snapshots:
ms@3.0.0-canary.1: {}
+ multicast-dns@7.2.5:
+ dependencies:
+ dns-packet: 5.6.1
+ thunky: 1.1.0
+
multiformats@13.3.1: {}
murmurhash3js-revisited@3.0.0: {}
@@ -9710,6 +10847,8 @@ snapshots:
punycode@1.4.1: {}
+ punycode@2.3.1: {}
+
pupa@3.1.0:
dependencies:
escape-goat: 4.0.0
@@ -9762,8 +10901,35 @@ snapshots:
- bufferutil
- utf-8-validate
+ react-dom@18.3.1(react@18.3.1):
+ dependencies:
+ loose-envify: 1.4.0
+ react: 18.3.1
+ scheduler: 0.23.2
+
react-is@18.3.1: {}
+ react-konva@18.2.10(@types/react@19.0.1)(konva@9.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@types/react-reconciler': 0.28.9(@types/react@19.0.1)
+ its-fine: 1.2.5(@types/react@19.0.1)(react@18.3.1)
+ konva: 9.3.16
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-reconciler: 0.29.2(react@18.3.1)
+ scheduler: 0.23.2
+ transitivePeerDependencies:
+ - '@types/react'
+
+ react-native-webrtc@124.0.4(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1)):
+ dependencies:
+ base64-js: 1.5.1
+ debug: 4.3.4
+ event-target-shim: 6.0.2
+ react-native: 0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1)
+ transitivePeerDependencies:
+ - supports-color
+
react-native-webrtc@124.0.4(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(react@18.3.1)):
dependencies:
base64-js: 1.5.1
@@ -9773,6 +10939,58 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1):
+ dependencies:
+ '@jest/create-cache-key-function': 29.7.0
+ '@react-native/assets-registry': 0.76.4
+ '@react-native/codegen': 0.76.4(@babel/preset-env@7.26.0(@babel/core@7.26.0))
+ '@react-native/community-cli-plugin': 0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))
+ '@react-native/gradle-plugin': 0.76.4
+ '@react-native/js-polyfills': 0.76.4
+ '@react-native/normalize-colors': 0.76.4
+ '@react-native/virtualized-lists': 0.76.4(@types/react@19.0.1)(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1))(react@18.3.1)
+ abort-controller: 3.0.0
+ anser: 1.4.10
+ ansi-regex: 5.0.1
+ babel-jest: 29.7.0(@babel/core@7.26.0)
+ babel-plugin-syntax-hermes-parser: 0.23.1
+ base64-js: 1.5.1
+ chalk: 4.1.2
+ commander: 12.1.0
+ event-target-shim: 5.0.1
+ flow-enums-runtime: 0.0.6
+ glob: 7.2.3
+ invariant: 2.2.4
+ jest-environment-node: 29.7.0
+ jsc-android: 250231.0.0
+ memoize-one: 5.2.1
+ metro-runtime: 0.81.0
+ metro-source-map: 0.81.0
+ mkdirp: 0.5.6
+ nullthrows: 1.1.1
+ pretty-format: 29.7.0
+ promise: 8.3.0
+ react: 18.3.1
+ react-devtools-core: 5.3.2
+ react-refresh: 0.14.2
+ regenerator-runtime: 0.13.11
+ scheduler: 0.24.0-canary-efb381bbf-20230505
+ semver: 7.6.3
+ stacktrace-parser: 0.1.10
+ whatwg-fetch: 3.6.20
+ ws: 6.2.3
+ yargs: 17.7.2
+ optionalDependencies:
+ '@types/react': 19.0.1
+ transitivePeerDependencies:
+ - '@babel/core'
+ - '@babel/preset-env'
+ - '@react-native-community/cli-server-api'
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(react@18.3.1):
dependencies:
'@jest/create-cache-key-function': 29.7.0
@@ -9823,8 +11041,45 @@ snapshots:
- supports-color
- utf-8-validate
+ react-reconciler@0.27.0(react@18.3.1):
+ dependencies:
+ loose-envify: 1.4.0
+ react: 18.3.1
+ scheduler: 0.21.0
+
+ react-reconciler@0.29.2(react@18.3.1):
+ dependencies:
+ loose-envify: 1.4.0
+ react: 18.3.1
+ scheduler: 0.23.2
+
react-refresh@0.14.2: {}
+ react-spring@9.7.5(@react-three/fiber@8.17.10(@types/react@19.0.1)(react-dom@18.3.1(react@18.3.1))(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1))(react@18.3.1)(three@0.171.0))(konva@9.3.16)(react-dom@18.3.1(react@18.3.1))(react-konva@18.2.10(@types/react@19.0.1)(konva@9.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1))(react-zdog@1.2.2)(react@18.3.1)(three@0.171.0)(zdog@1.1.3):
+ dependencies:
+ '@react-spring/core': 9.7.5(react@18.3.1)
+ '@react-spring/konva': 9.7.5(konva@9.3.16)(react-konva@18.2.10(@types/react@19.0.1)(konva@9.3.16)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
+ '@react-spring/native': 9.7.5(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1))(react@18.3.1)
+ '@react-spring/three': 9.7.5(@react-three/fiber@8.17.10(@types/react@19.0.1)(react-dom@18.3.1(react@18.3.1))(react-native@0.76.4(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@19.0.1)(react@18.3.1))(react@18.3.1)(three@0.171.0))(react@18.3.1)(three@0.171.0)
+ '@react-spring/web': 9.7.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@react-spring/zdog': 9.7.5(react-dom@18.3.1(react@18.3.1))(react-zdog@1.2.2)(react@18.3.1)(zdog@1.1.3)
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ transitivePeerDependencies:
+ - '@react-three/fiber'
+ - konva
+ - react-konva
+ - react-native
+ - react-zdog
+ - three
+ - zdog
+
+ react-zdog@1.2.2:
+ dependencies:
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ resize-observer-polyfill: 1.5.1
+
react@18.3.1:
dependencies:
loose-envify: 1.4.0
@@ -9937,6 +11192,10 @@ snapshots:
require-directory@2.1.1: {}
+ require-from-string@2.0.2: {}
+
+ resize-observer-polyfill@1.5.1: {}
+
resolve-from@3.0.0: {}
resolve-from@4.0.0: {}
@@ -10028,10 +11287,31 @@ snapshots:
safer-buffer@2.1.2: {}
+ scheduler@0.21.0:
+ dependencies:
+ loose-envify: 1.4.0
+
+ scheduler@0.23.2:
+ dependencies:
+ loose-envify: 1.4.0
+
scheduler@0.24.0-canary-efb381bbf-20230505:
dependencies:
loose-envify: 1.4.0
+ schema-utils@3.3.0:
+ dependencies:
+ '@types/json-schema': 7.0.15
+ ajv: 6.12.6
+ ajv-keywords: 3.5.2(ajv@6.12.6)
+
+ schema-utils@4.3.0:
+ dependencies:
+ '@types/json-schema': 7.0.15
+ ajv: 8.17.1
+ ajv-formats: 2.1.1(ajv@8.17.1)
+ ajv-keywords: 5.1.0(ajv@8.17.1)
+
selfsigned@2.4.1:
dependencies:
'@types/node-forge': 1.3.11
@@ -10063,6 +11343,10 @@ snapshots:
serialize-error@2.1.0: {}
+ serialize-javascript@6.0.2:
+ dependencies:
+ randombytes: 2.1.0
+
serve-static@1.16.2:
dependencies:
encodeurl: 2.0.0
@@ -10168,6 +11452,8 @@ snapshots:
source-map@0.6.1: {}
+ source-map@0.7.4: {}
+
space-separated-tokens@2.0.2: {}
sprintf-js@1.0.3: {}
@@ -10259,6 +11545,12 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
+ suspend-react@0.1.3(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+
+ tapable@2.2.1: {}
+
tar-fs@2.1.1:
dependencies:
chownr: 1.1.4
@@ -10282,6 +11574,15 @@ snapshots:
dependencies:
rimraf: 2.6.3
+ terser-webpack-plugin@5.3.11(webpack@5.97.1):
+ dependencies:
+ '@jridgewell/trace-mapping': 0.3.25
+ jest-worker: 27.5.1
+ schema-utils: 4.3.0
+ serialize-javascript: 6.0.2
+ terser: 5.37.0
+ webpack: 5.97.1
+
terser@5.37.0:
dependencies:
'@jridgewell/source-map': 0.3.6
@@ -10295,6 +11596,12 @@ snapshots:
glob: 7.2.3
minimatch: 3.1.2
+ thingies@1.21.0(tslib@2.8.1):
+ dependencies:
+ tslib: 2.8.1
+
+ three@0.171.0: {}
+
throat@5.0.0: {}
through2@2.0.5:
@@ -10302,6 +11609,8 @@ snapshots:
readable-stream: 2.3.8
xtend: 4.0.2
+ thunky@1.1.0: {}
+
timers-browserify@2.0.12:
dependencies:
setimmediate: 1.0.5
@@ -10330,8 +11639,40 @@ snapshots:
tr46@0.0.3: {}
+ tree-dump@1.0.2(tslib@2.8.1):
+ dependencies:
+ tslib: 2.8.1
+
trim-lines@3.0.1: {}
+ ts-loader@9.5.1(typescript@5.7.2)(webpack@5.97.1):
+ dependencies:
+ chalk: 4.1.2
+ enhanced-resolve: 5.17.1
+ micromatch: 4.0.8
+ semver: 7.6.3
+ source-map: 0.7.4
+ typescript: 5.7.2
+ webpack: 5.97.1
+
+ ts-node@10.9.2(@types/node@22.10.1)(typescript@5.7.2):
+ dependencies:
+ '@cspotcode/source-map-support': 0.8.1
+ '@tsconfig/node10': 1.0.11
+ '@tsconfig/node12': 1.0.11
+ '@tsconfig/node14': 1.0.3
+ '@tsconfig/node16': 1.0.4
+ '@types/node': 22.10.1
+ acorn: 8.14.0
+ acorn-walk: 8.3.4
+ arg: 4.1.3
+ create-require: 1.1.1
+ diff: 4.0.2
+ make-error: 1.3.6
+ typescript: 5.7.2
+ v8-compile-cache-lib: 3.0.1
+ yn: 3.1.1
+
ts-poet@6.9.0:
dependencies:
dprint-node: 1.0.8
@@ -10463,6 +11804,10 @@ snapshots:
semver: 7.6.3
xdg-basedir: 5.1.0
+ uri-js@4.4.1:
+ dependencies:
+ punycode: 2.3.1
+
url-join@4.0.1: {}
url-join@5.0.0: {}
@@ -10484,6 +11829,8 @@ snapshots:
utils-merge@1.0.1: {}
+ v8-compile-cache-lib@3.0.1: {}
+
validate-peer-dependencies@1.2.0:
dependencies:
resolve-package-path: 3.1.0
@@ -10517,6 +11864,14 @@ snapshots:
- supports-color
- terser
+ vite-plugin-node-polyfills@0.22.0(rollup@4.28.1)(vite@5.4.11(@types/node@22.10.1)(terser@5.37.0)):
+ dependencies:
+ '@rollup/plugin-inject': 5.0.5(rollup@4.28.1)
+ node-stdlib-browser: 1.3.0
+ vite: 5.4.11(@types/node@22.10.1)(terser@5.37.0)
+ transitivePeerDependencies:
+ - rollup
+
vite-plugin-node-polyfills@0.22.0(rollup@4.28.1)(vite@6.0.3(@types/node@22.10.1)(terser@5.37.0)(tsx@4.19.1)(yaml@2.6.1)):
dependencies:
'@rollup/plugin-inject': 5.0.5(rollup@4.28.1)
@@ -10608,6 +11963,11 @@ snapshots:
dependencies:
makeerror: 1.0.12
+ watchpack@2.4.2:
+ dependencies:
+ glob-to-regexp: 0.4.1
+ graceful-fs: 4.2.11
+
wcwidth@1.0.1:
dependencies:
defaults: 1.0.4
@@ -10619,6 +11979,38 @@ snapshots:
webidl-conversions@3.0.1: {}
+ webpack-sources@3.2.3: {}
+
+ webpack@5.97.1:
+ dependencies:
+ '@types/eslint-scope': 3.7.7
+ '@types/estree': 1.0.6
+ '@webassemblyjs/ast': 1.14.1
+ '@webassemblyjs/wasm-edit': 1.14.1
+ '@webassemblyjs/wasm-parser': 1.14.1
+ acorn: 8.14.0
+ browserslist: 4.24.2
+ chrome-trace-event: 1.0.4
+ enhanced-resolve: 5.17.1
+ es-module-lexer: 1.5.4
+ eslint-scope: 5.1.1
+ events: 3.3.0
+ glob-to-regexp: 0.4.1
+ graceful-fs: 4.2.11
+ json-parse-even-better-errors: 2.3.1
+ loader-runner: 4.3.0
+ mime-types: 2.1.35
+ neo-async: 2.6.2
+ schema-utils: 3.3.0
+ tapable: 2.2.1
+ terser-webpack-plugin: 5.3.11(webpack@5.97.1)
+ watchpack: 2.4.2
+ webpack-sources: 3.2.3
+ transitivePeerDependencies:
+ - '@swc/core'
+ - esbuild
+ - uglify-js
+
whatwg-fetch@3.6.20: {}
whatwg-url@5.0.0:
@@ -10720,8 +12112,16 @@ snapshots:
y18n: 5.0.8
yargs-parser: 21.1.1
+ yn@3.1.1: {}
+
yocto-queue@0.1.0: {}
yoctocolors-cjs@2.1.2: {}
+ zdog@1.1.3: {}
+
+ zustand@3.7.2(react@18.3.1):
+ optionalDependencies:
+ react: 18.3.1
+
zwitch@2.0.4: {}