Spaces:
Sleeping
Sleeping
Update
Browse files- Dockerfile +4 -0
- client/js/src/robotics/consumer.ts +2 -2
- client/js/src/robotics/core.ts +1 -1
- client/js/src/robotics/factory.ts +3 -3
- client/js/src/robotics/producer.ts +2 -2
- client/js/src/video/consumer.ts +2 -2
- client/js/src/video/core.ts +1 -1
- client/js/src/video/factory.ts +3 -3
- client/js/src/video/producer.ts +2 -2
- client/js/tests/factory.test.ts +6 -6
- client/python/src/transport_server_client/__pycache__/client.cpython-312.pyc +0 -0
- client/python/src/transport_server_client/client.py +6 -6
- client/python/src/transport_server_client/video/__pycache__/consumer.cpython-312.pyc +0 -0
- client/python/src/transport_server_client/video/__pycache__/core.cpython-312.pyc +0 -0
- client/python/src/transport_server_client/video/__pycache__/factory.cpython-312.pyc +0 -0
- client/python/src/transport_server_client/video/__pycache__/producer.cpython-312.pyc +0 -0
- client/python/src/transport_server_client/video/consumer.py +2 -2
- client/python/src/transport_server_client/video/core.py +1 -1
- client/python/src/transport_server_client/video/factory.py +3 -3
- client/python/src/transport_server_client/video/producer.py +2 -2
- demo/.env.example +1 -0
- demo/bun.lock +597 -0
- demo/src/lib/settings.svelte.ts +9 -0
- demo/src/routes/+page.svelte +5 -1
- demo/src/routes/[workspaceId]/+page.svelte +3 -2
- demo/src/routes/[workspaceId]/robotics/+page.svelte +2 -1
- demo/src/routes/[workspaceId]/robotics/consumer/+page.svelte +2 -1
- demo/src/routes/[workspaceId]/robotics/producer/+page.svelte +3 -2
- demo/src/routes/[workspaceId]/video/+page.svelte +2 -1
- demo/src/routes/[workspaceId]/video/consumer/+page.svelte +2 -1
- demo/src/routes/[workspaceId]/video/producer/+page.svelte +3 -2
- server/launch_with_ui.py +1 -1
- test-docker.sh +3 -3
Dockerfile
CHANGED
|
@@ -1,6 +1,10 @@
|
|
| 1 |
# Stage 1: Build frontend with Bun (client library + demo)
|
| 2 |
FROM oven/bun:1-alpine AS frontend-builder
|
| 3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
WORKDIR /app
|
| 5 |
|
| 6 |
# Install git for dependencies that might need it
|
|
|
|
| 1 |
# Stage 1: Build frontend with Bun (client library + demo)
|
| 2 |
FROM oven/bun:1-alpine AS frontend-builder
|
| 3 |
|
| 4 |
+
# Build argument for transport server URL
|
| 5 |
+
ARG PUBLIC_TRANSPORT_SERVER_URL=https://blanchon-robothub-transportserver.hf.space/api
|
| 6 |
+
ENV PUBLIC_TRANSPORT_SERVER_URL=${PUBLIC_TRANSPORT_SERVER_URL}
|
| 7 |
+
|
| 8 |
WORKDIR /app
|
| 9 |
|
| 10 |
# Install git for dependencies that might need it
|
client/js/src/robotics/consumer.ts
CHANGED
|
@@ -17,7 +17,7 @@ export class RoboticsConsumer extends RoboticsClientCore {
|
|
| 17 |
private onStateSyncCallback: StateSyncCallback | null = null;
|
| 18 |
private onJointUpdateCallback: JointUpdateCallback | null = null;
|
| 19 |
|
| 20 |
-
constructor(baseUrl
|
| 21 |
super(baseUrl, options);
|
| 22 |
}
|
| 23 |
|
|
@@ -93,7 +93,7 @@ export class RoboticsConsumer extends RoboticsClientCore {
|
|
| 93 |
static async createAndConnect(
|
| 94 |
workspaceId: string,
|
| 95 |
roomId: string,
|
| 96 |
-
baseUrl
|
| 97 |
participantId?: string
|
| 98 |
): Promise<RoboticsConsumer> {
|
| 99 |
const consumer = new RoboticsConsumer(baseUrl);
|
|
|
|
| 17 |
private onStateSyncCallback: StateSyncCallback | null = null;
|
| 18 |
private onJointUpdateCallback: JointUpdateCallback | null = null;
|
| 19 |
|
| 20 |
+
constructor(baseUrl: string, options: ClientOptions = {}) {
|
| 21 |
super(baseUrl, options);
|
| 22 |
}
|
| 23 |
|
|
|
|
| 93 |
static async createAndConnect(
|
| 94 |
workspaceId: string,
|
| 95 |
roomId: string,
|
| 96 |
+
baseUrl: string,
|
| 97 |
participantId?: string
|
| 98 |
): Promise<RoboticsConsumer> {
|
| 99 |
const consumer = new RoboticsConsumer(baseUrl);
|
client/js/src/robotics/core.ts
CHANGED
|
@@ -38,7 +38,7 @@ export class RoboticsClientCore extends EventEmitter {
|
|
| 38 |
protected onConnectedCallback: ConnectedCallback | null = null;
|
| 39 |
protected onDisconnectedCallback: DisconnectedCallback | null = null;
|
| 40 |
|
| 41 |
-
constructor(baseUrl
|
| 42 |
super();
|
| 43 |
this.baseUrl = baseUrl.replace(/\/$/, '');
|
| 44 |
this.apiBase = `${this.baseUrl}/robotics`;
|
|
|
|
| 38 |
protected onConnectedCallback: ConnectedCallback | null = null;
|
| 39 |
protected onDisconnectedCallback: DisconnectedCallback | null = null;
|
| 40 |
|
| 41 |
+
constructor(baseUrl: string, options: ClientOptions = {}) {
|
| 42 |
super();
|
| 43 |
this.baseUrl = baseUrl.replace(/\/$/, '');
|
| 44 |
this.apiBase = `${this.baseUrl}/robotics`;
|
client/js/src/robotics/factory.ts
CHANGED
|
@@ -11,7 +11,7 @@ import type { ParticipantRole, ClientOptions } from './types.js';
|
|
| 11 |
*/
|
| 12 |
export function createClient(
|
| 13 |
role: ParticipantRole,
|
| 14 |
-
baseUrl
|
| 15 |
options: ClientOptions = {}
|
| 16 |
): RoboticsProducer | RoboticsConsumer {
|
| 17 |
if (role === 'producer') {
|
|
@@ -27,7 +27,7 @@ export function createClient(
|
|
| 27 |
* Create and connect a producer client
|
| 28 |
*/
|
| 29 |
export async function createProducerClient(
|
| 30 |
-
baseUrl
|
| 31 |
workspaceId?: string,
|
| 32 |
roomId?: string,
|
| 33 |
participantId?: string,
|
|
@@ -51,7 +51,7 @@ export async function createProducerClient(
|
|
| 51 |
export async function createConsumerClient(
|
| 52 |
workspaceId: string,
|
| 53 |
roomId: string,
|
| 54 |
-
baseUrl
|
| 55 |
participantId?: string,
|
| 56 |
options: ClientOptions = {}
|
| 57 |
): Promise<RoboticsConsumer> {
|
|
|
|
| 11 |
*/
|
| 12 |
export function createClient(
|
| 13 |
role: ParticipantRole,
|
| 14 |
+
baseUrl: string,
|
| 15 |
options: ClientOptions = {}
|
| 16 |
): RoboticsProducer | RoboticsConsumer {
|
| 17 |
if (role === 'producer') {
|
|
|
|
| 27 |
* Create and connect a producer client
|
| 28 |
*/
|
| 29 |
export async function createProducerClient(
|
| 30 |
+
baseUrl: string,
|
| 31 |
workspaceId?: string,
|
| 32 |
roomId?: string,
|
| 33 |
participantId?: string,
|
|
|
|
| 51 |
export async function createConsumerClient(
|
| 52 |
workspaceId: string,
|
| 53 |
roomId: string,
|
| 54 |
+
baseUrl: string,
|
| 55 |
participantId?: string,
|
| 56 |
options: ClientOptions = {}
|
| 57 |
): Promise<RoboticsConsumer> {
|
client/js/src/robotics/producer.ts
CHANGED
|
@@ -11,7 +11,7 @@ import type {
|
|
| 11 |
} from './types.js';
|
| 12 |
|
| 13 |
export class RoboticsProducer extends RoboticsClientCore {
|
| 14 |
-
constructor(baseUrl
|
| 15 |
super(baseUrl, options);
|
| 16 |
}
|
| 17 |
|
|
@@ -88,7 +88,7 @@ export class RoboticsProducer extends RoboticsClientCore {
|
|
| 88 |
* Create a room and automatically connect as producer
|
| 89 |
*/
|
| 90 |
static async createAndConnect(
|
| 91 |
-
baseUrl
|
| 92 |
workspaceId?: string,
|
| 93 |
roomId?: string,
|
| 94 |
participantId?: string
|
|
|
|
| 11 |
} from './types.js';
|
| 12 |
|
| 13 |
export class RoboticsProducer extends RoboticsClientCore {
|
| 14 |
+
constructor(baseUrl: string, options: ClientOptions = {}) {
|
| 15 |
super(baseUrl, options);
|
| 16 |
}
|
| 17 |
|
|
|
|
| 88 |
* Create a room and automatically connect as producer
|
| 89 |
*/
|
| 90 |
static async createAndConnect(
|
| 91 |
+
baseUrl: string,
|
| 92 |
workspaceId?: string,
|
| 93 |
roomId?: string,
|
| 94 |
participantId?: string
|
client/js/src/video/consumer.ts
CHANGED
|
@@ -39,7 +39,7 @@ export class VideoConsumer extends VideoClientCore {
|
|
| 39 |
private iceCandidateQueue: { candidate: RTCIceCandidate; fromProducer: string }[] = [];
|
| 40 |
private hasRemoteDescription = false;
|
| 41 |
|
| 42 |
-
constructor(baseUrl
|
| 43 |
super(baseUrl, options);
|
| 44 |
}
|
| 45 |
|
|
@@ -393,7 +393,7 @@ export class VideoConsumer extends VideoClientCore {
|
|
| 393 |
static async createAndConnect(
|
| 394 |
workspaceId: string,
|
| 395 |
roomId: string,
|
| 396 |
-
baseUrl
|
| 397 |
participantId?: string
|
| 398 |
): Promise<VideoConsumer> {
|
| 399 |
const consumer = new VideoConsumer(baseUrl);
|
|
|
|
| 39 |
private iceCandidateQueue: { candidate: RTCIceCandidate; fromProducer: string }[] = [];
|
| 40 |
private hasRemoteDescription = false;
|
| 41 |
|
| 42 |
+
constructor(baseUrl: string, options: ClientOptions = {}) {
|
| 43 |
super(baseUrl, options);
|
| 44 |
}
|
| 45 |
|
|
|
|
| 393 |
static async createAndConnect(
|
| 394 |
workspaceId: string,
|
| 395 |
roomId: string,
|
| 396 |
+
baseUrl: string,
|
| 397 |
participantId?: string
|
| 398 |
): Promise<VideoConsumer> {
|
| 399 |
const consumer = new VideoConsumer(baseUrl);
|
client/js/src/video/core.ts
CHANGED
|
@@ -48,7 +48,7 @@ export class VideoClientCore extends EventEmitter {
|
|
| 48 |
protected onConnectedCallback: ConnectedCallback | null = null;
|
| 49 |
protected onDisconnectedCallback: DisconnectedCallback | null = null;
|
| 50 |
|
| 51 |
-
constructor(baseUrl
|
| 52 |
super();
|
| 53 |
this.baseUrl = baseUrl.replace(/\/$/, '');
|
| 54 |
this.apiBase = `${this.baseUrl}/video`;
|
|
|
|
| 48 |
protected onConnectedCallback: ConnectedCallback | null = null;
|
| 49 |
protected onDisconnectedCallback: DisconnectedCallback | null = null;
|
| 50 |
|
| 51 |
+
constructor(baseUrl: string, options: ClientOptions = {}) {
|
| 52 |
super();
|
| 53 |
this.baseUrl = baseUrl.replace(/\/$/, '');
|
| 54 |
this.apiBase = `${this.baseUrl}/video`;
|
client/js/src/video/factory.ts
CHANGED
|
@@ -11,7 +11,7 @@ import type { ParticipantRole, ClientOptions } from './types.js';
|
|
| 11 |
*/
|
| 12 |
export function createClient(
|
| 13 |
role: ParticipantRole,
|
| 14 |
-
baseUrl
|
| 15 |
options: ClientOptions = {}
|
| 16 |
): VideoProducer | VideoConsumer {
|
| 17 |
if (role === 'producer') {
|
|
@@ -27,7 +27,7 @@ export function createClient(
|
|
| 27 |
* Create and connect a producer client
|
| 28 |
*/
|
| 29 |
export async function createProducerClient(
|
| 30 |
-
baseUrl
|
| 31 |
workspaceId?: string,
|
| 32 |
roomId?: string,
|
| 33 |
participantId?: string,
|
|
@@ -51,7 +51,7 @@ export async function createProducerClient(
|
|
| 51 |
export async function createConsumerClient(
|
| 52 |
workspaceId: string,
|
| 53 |
roomId: string,
|
| 54 |
-
baseUrl
|
| 55 |
participantId?: string,
|
| 56 |
options: ClientOptions = {}
|
| 57 |
): Promise<VideoConsumer> {
|
|
|
|
| 11 |
*/
|
| 12 |
export function createClient(
|
| 13 |
role: ParticipantRole,
|
| 14 |
+
baseUrl: string,
|
| 15 |
options: ClientOptions = {}
|
| 16 |
): VideoProducer | VideoConsumer {
|
| 17 |
if (role === 'producer') {
|
|
|
|
| 27 |
* Create and connect a producer client
|
| 28 |
*/
|
| 29 |
export async function createProducerClient(
|
| 30 |
+
baseUrl: string,
|
| 31 |
workspaceId?: string,
|
| 32 |
roomId?: string,
|
| 33 |
participantId?: string,
|
|
|
|
| 51 |
export async function createConsumerClient(
|
| 52 |
workspaceId: string,
|
| 53 |
roomId: string,
|
| 54 |
+
baseUrl: string,
|
| 55 |
participantId?: string,
|
| 56 |
options: ClientOptions = {}
|
| 57 |
): Promise<VideoConsumer> {
|
client/js/src/video/producer.ts
CHANGED
|
@@ -20,7 +20,7 @@ export class VideoProducer extends VideoClientCore {
|
|
| 20 |
// Multiple peer connections - one per consumer
|
| 21 |
private consumerConnections: Map<string, RTCPeerConnection> = new Map();
|
| 22 |
|
| 23 |
-
constructor(baseUrl
|
| 24 |
super(baseUrl, options);
|
| 25 |
}
|
| 26 |
|
|
@@ -413,7 +413,7 @@ export class VideoProducer extends VideoClientCore {
|
|
| 413 |
* Create a room and automatically connect as producer
|
| 414 |
*/
|
| 415 |
static async createAndConnect(
|
| 416 |
-
baseUrl
|
| 417 |
workspaceId?: string,
|
| 418 |
roomId?: string,
|
| 419 |
participantId?: string
|
|
|
|
| 20 |
// Multiple peer connections - one per consumer
|
| 21 |
private consumerConnections: Map<string, RTCPeerConnection> = new Map();
|
| 22 |
|
| 23 |
+
constructor(baseUrl: string, options: ClientOptions = {}) {
|
| 24 |
super(baseUrl, options);
|
| 25 |
}
|
| 26 |
|
|
|
|
| 413 |
* Create a room and automatically connect as producer
|
| 414 |
*/
|
| 415 |
static async createAndConnect(
|
| 416 |
+
baseUrl: string,
|
| 417 |
workspaceId?: string,
|
| 418 |
roomId?: string,
|
| 419 |
participantId?: string
|
client/js/tests/factory.test.ts
CHANGED
|
@@ -19,25 +19,25 @@ describe("Factory Functions", () => {
|
|
| 19 |
});
|
| 20 |
|
| 21 |
test("create client producer", () => {
|
| 22 |
-
const client = createClient("producer");
|
| 23 |
expect(client).toBeInstanceOf(RoboticsProducer);
|
| 24 |
expect(client.isConnected()).toBe(false);
|
| 25 |
expect(client.getConnectionInfo().base_url).toBe("http://localhost:8000");
|
| 26 |
});
|
| 27 |
|
| 28 |
test("create client consumer", () => {
|
| 29 |
-
const client = createClient("consumer");
|
| 30 |
expect(client).toBeInstanceOf(RoboticsConsumer);
|
| 31 |
expect(client.isConnected()).toBe(false);
|
| 32 |
expect(client.getConnectionInfo().base_url).toBe("http://localhost:8000");
|
| 33 |
});
|
| 34 |
|
| 35 |
test("create client invalid role", () => {
|
| 36 |
-
expect(() => createClient("invalid_role" as any)).toThrow("Invalid role");
|
| 37 |
});
|
| 38 |
|
| 39 |
test("create client default url", () => {
|
| 40 |
-
const client = createClient("producer");
|
| 41 |
expect(client.getConnectionInfo().base_url).toBe("http://localhost:8000");
|
| 42 |
});
|
| 43 |
|
|
@@ -152,7 +152,7 @@ describe("Factory Functions", () => {
|
|
| 152 |
});
|
| 153 |
|
| 154 |
test("convenience functions with default url", async () => {
|
| 155 |
-
const producer = await createProducerClient();
|
| 156 |
const producerInfo = producer.getConnectionInfo();
|
| 157 |
const workspaceId = producerInfo.workspace_id!;
|
| 158 |
const roomId = producerInfo.room_id!;
|
|
@@ -162,7 +162,7 @@ describe("Factory Functions", () => {
|
|
| 162 |
expect(producerInfo.base_url).toBe("http://localhost:8000");
|
| 163 |
expect(producer.isConnected()).toBe(true);
|
| 164 |
|
| 165 |
-
const consumer = await createConsumerClient(workspaceId, roomId);
|
| 166 |
|
| 167 |
try {
|
| 168 |
const consumerInfo = consumer.getConnectionInfo();
|
|
|
|
| 19 |
});
|
| 20 |
|
| 21 |
test("create client producer", () => {
|
| 22 |
+
const client = createClient("producer", TEST_SERVER_URL);
|
| 23 |
expect(client).toBeInstanceOf(RoboticsProducer);
|
| 24 |
expect(client.isConnected()).toBe(false);
|
| 25 |
expect(client.getConnectionInfo().base_url).toBe("http://localhost:8000");
|
| 26 |
});
|
| 27 |
|
| 28 |
test("create client consumer", () => {
|
| 29 |
+
const client = createClient("consumer", TEST_SERVER_URL);
|
| 30 |
expect(client).toBeInstanceOf(RoboticsConsumer);
|
| 31 |
expect(client.isConnected()).toBe(false);
|
| 32 |
expect(client.getConnectionInfo().base_url).toBe("http://localhost:8000");
|
| 33 |
});
|
| 34 |
|
| 35 |
test("create client invalid role", () => {
|
| 36 |
+
expect(() => createClient("invalid_role" as any, TEST_SERVER_URL)).toThrow("Invalid role");
|
| 37 |
});
|
| 38 |
|
| 39 |
test("create client default url", () => {
|
| 40 |
+
const client = createClient("producer", TEST_SERVER_URL);
|
| 41 |
expect(client.getConnectionInfo().base_url).toBe("http://localhost:8000");
|
| 42 |
});
|
| 43 |
|
|
|
|
| 152 |
});
|
| 153 |
|
| 154 |
test("convenience functions with default url", async () => {
|
| 155 |
+
const producer = await createProducerClient(TEST_SERVER_URL);
|
| 156 |
const producerInfo = producer.getConnectionInfo();
|
| 157 |
const workspaceId = producerInfo.workspace_id!;
|
| 158 |
const roomId = producerInfo.room_id!;
|
|
|
|
| 162 |
expect(producerInfo.base_url).toBe("http://localhost:8000");
|
| 163 |
expect(producer.isConnected()).toBe(true);
|
| 164 |
|
| 165 |
+
const consumer = await createConsumerClient(workspaceId, roomId, TEST_SERVER_URL);
|
| 166 |
|
| 167 |
try {
|
| 168 |
const consumerInfo = consumer.getConnectionInfo();
|
client/python/src/transport_server_client/__pycache__/client.cpython-312.pyc
CHANGED
|
Binary files a/client/python/src/transport_server_client/__pycache__/client.cpython-312.pyc and b/client/python/src/transport_server_client/__pycache__/client.cpython-312.pyc differ
|
|
|
client/python/src/transport_server_client/client.py
CHANGED
|
@@ -14,7 +14,7 @@ logger = logging.getLogger(__name__)
|
|
| 14 |
class RoboticsClientCore:
|
| 15 |
"""Base client for RobotHub TransportServer robotics API"""
|
| 16 |
|
| 17 |
-
def __init__(self, base_url: str
|
| 18 |
self.base_url = base_url.rstrip("/")
|
| 19 |
self.api_base = f"{self.base_url}/robotics"
|
| 20 |
|
|
@@ -314,7 +314,7 @@ class RoboticsClientCore:
|
|
| 314 |
class RoboticsProducer(RoboticsClientCore):
|
| 315 |
"""Producer client for controlling robots"""
|
| 316 |
|
| 317 |
-
def __init__(self, base_url: str
|
| 318 |
super().__init__(base_url)
|
| 319 |
self._on_error_callback: Callable[[str], None] | None = None
|
| 320 |
self._on_connected_callback: Callable[[], None] | None = None
|
|
@@ -401,7 +401,7 @@ class RoboticsProducer(RoboticsClientCore):
|
|
| 401 |
class RoboticsConsumer(RoboticsClientCore):
|
| 402 |
"""Consumer client for receiving robot commands"""
|
| 403 |
|
| 404 |
-
def __init__(self, base_url: str
|
| 405 |
super().__init__(base_url)
|
| 406 |
self._on_state_sync_callback: Callable[[dict], None] | None = None
|
| 407 |
self._on_joint_update_callback: Callable[[list], None] | None = None
|
|
@@ -492,7 +492,7 @@ class RoboticsConsumer(RoboticsClientCore):
|
|
| 492 |
# ============= FACTORY FUNCTIONS =============
|
| 493 |
|
| 494 |
|
| 495 |
-
def create_client(role: str, base_url: str
|
| 496 |
"""Factory function to create the appropriate client based on role"""
|
| 497 |
if role == "producer":
|
| 498 |
return RoboticsProducer(base_url)
|
|
@@ -503,7 +503,7 @@ def create_client(role: str, base_url: str = "http://localhost:8000"):
|
|
| 503 |
|
| 504 |
|
| 505 |
async def create_producer_client(
|
| 506 |
-
base_url: str
|
| 507 |
workspace_id: str | None = None,
|
| 508 |
room_id: str | None = None,
|
| 509 |
) -> RoboticsProducer:
|
|
@@ -516,7 +516,7 @@ async def create_producer_client(
|
|
| 516 |
|
| 517 |
|
| 518 |
async def create_consumer_client(
|
| 519 |
-
workspace_id: str, room_id: str, base_url: str
|
| 520 |
) -> RoboticsConsumer:
|
| 521 |
"""Create and connect a consumer client"""
|
| 522 |
client = RoboticsConsumer(base_url)
|
|
|
|
| 14 |
class RoboticsClientCore:
|
| 15 |
"""Base client for RobotHub TransportServer robotics API"""
|
| 16 |
|
| 17 |
+
def __init__(self, base_url: str):
|
| 18 |
self.base_url = base_url.rstrip("/")
|
| 19 |
self.api_base = f"{self.base_url}/robotics"
|
| 20 |
|
|
|
|
| 314 |
class RoboticsProducer(RoboticsClientCore):
|
| 315 |
"""Producer client for controlling robots"""
|
| 316 |
|
| 317 |
+
def __init__(self, base_url: str):
|
| 318 |
super().__init__(base_url)
|
| 319 |
self._on_error_callback: Callable[[str], None] | None = None
|
| 320 |
self._on_connected_callback: Callable[[], None] | None = None
|
|
|
|
| 401 |
class RoboticsConsumer(RoboticsClientCore):
|
| 402 |
"""Consumer client for receiving robot commands"""
|
| 403 |
|
| 404 |
+
def __init__(self, base_url: str):
|
| 405 |
super().__init__(base_url)
|
| 406 |
self._on_state_sync_callback: Callable[[dict], None] | None = None
|
| 407 |
self._on_joint_update_callback: Callable[[list], None] | None = None
|
|
|
|
| 492 |
# ============= FACTORY FUNCTIONS =============
|
| 493 |
|
| 494 |
|
| 495 |
+
def create_client(role: str, base_url: str):
|
| 496 |
"""Factory function to create the appropriate client based on role"""
|
| 497 |
if role == "producer":
|
| 498 |
return RoboticsProducer(base_url)
|
|
|
|
| 503 |
|
| 504 |
|
| 505 |
async def create_producer_client(
|
| 506 |
+
base_url: str,
|
| 507 |
workspace_id: str | None = None,
|
| 508 |
room_id: str | None = None,
|
| 509 |
) -> RoboticsProducer:
|
|
|
|
| 516 |
|
| 517 |
|
| 518 |
async def create_consumer_client(
|
| 519 |
+
workspace_id: str, room_id: str, base_url: str
|
| 520 |
) -> RoboticsConsumer:
|
| 521 |
"""Create and connect a consumer client"""
|
| 522 |
client = RoboticsConsumer(base_url)
|
client/python/src/transport_server_client/video/__pycache__/consumer.cpython-312.pyc
CHANGED
|
Binary files a/client/python/src/transport_server_client/video/__pycache__/consumer.cpython-312.pyc and b/client/python/src/transport_server_client/video/__pycache__/consumer.cpython-312.pyc differ
|
|
|
client/python/src/transport_server_client/video/__pycache__/core.cpython-312.pyc
CHANGED
|
Binary files a/client/python/src/transport_server_client/video/__pycache__/core.cpython-312.pyc and b/client/python/src/transport_server_client/video/__pycache__/core.cpython-312.pyc differ
|
|
|
client/python/src/transport_server_client/video/__pycache__/factory.cpython-312.pyc
CHANGED
|
Binary files a/client/python/src/transport_server_client/video/__pycache__/factory.cpython-312.pyc and b/client/python/src/transport_server_client/video/__pycache__/factory.cpython-312.pyc differ
|
|
|
client/python/src/transport_server_client/video/__pycache__/producer.cpython-312.pyc
CHANGED
|
Binary files a/client/python/src/transport_server_client/video/__pycache__/producer.cpython-312.pyc and b/client/python/src/transport_server_client/video/__pycache__/producer.cpython-312.pyc differ
|
|
|
client/python/src/transport_server_client/video/consumer.py
CHANGED
|
@@ -32,7 +32,7 @@ class VideoConsumer(VideoClientCore):
|
|
| 32 |
|
| 33 |
def __init__(
|
| 34 |
self,
|
| 35 |
-
base_url: str
|
| 36 |
options: ClientOptions | None = None,
|
| 37 |
):
|
| 38 |
super().__init__(base_url, options)
|
|
@@ -588,7 +588,7 @@ class VideoConsumer(VideoClientCore):
|
|
| 588 |
async def create_and_connect(
|
| 589 |
workspace_id: str,
|
| 590 |
room_id: str,
|
| 591 |
-
base_url: str
|
| 592 |
participant_id: str | None = None,
|
| 593 |
) -> "VideoConsumer":
|
| 594 |
"""Create a consumer and automatically connect to a room"""
|
|
|
|
| 32 |
|
| 33 |
def __init__(
|
| 34 |
self,
|
| 35 |
+
base_url: str,
|
| 36 |
options: ClientOptions | None = None,
|
| 37 |
):
|
| 38 |
super().__init__(base_url, options)
|
|
|
|
| 588 |
async def create_and_connect(
|
| 589 |
workspace_id: str,
|
| 590 |
room_id: str,
|
| 591 |
+
base_url: str,
|
| 592 |
participant_id: str | None = None,
|
| 593 |
) -> "VideoConsumer":
|
| 594 |
"""Create a consumer and automatically connect to a room"""
|
client/python/src/transport_server_client/video/core.py
CHANGED
|
@@ -52,7 +52,7 @@ class VideoClientCore:
|
|
| 52 |
|
| 53 |
def __init__(
|
| 54 |
self,
|
| 55 |
-
base_url: str
|
| 56 |
options: ClientOptions | None = None,
|
| 57 |
):
|
| 58 |
self.base_url = base_url.rstrip("/")
|
|
|
|
| 52 |
|
| 53 |
def __init__(
|
| 54 |
self,
|
| 55 |
+
base_url: str,
|
| 56 |
options: ClientOptions | None = None,
|
| 57 |
):
|
| 58 |
self.base_url = base_url.rstrip("/")
|
client/python/src/transport_server_client/video/factory.py
CHANGED
|
@@ -9,7 +9,7 @@ from .types import ClientOptions, ParticipantRole
|
|
| 9 |
|
| 10 |
def create_client(
|
| 11 |
role: ParticipantRole,
|
| 12 |
-
base_url: str
|
| 13 |
options: ClientOptions | None = None,
|
| 14 |
) -> "VideoProducer | VideoConsumer":
|
| 15 |
"""Factory function to create the appropriate client based on role"""
|
|
@@ -22,7 +22,7 @@ def create_client(
|
|
| 22 |
|
| 23 |
|
| 24 |
async def create_producer_client(
|
| 25 |
-
base_url: str
|
| 26 |
workspace_id: str | None = None,
|
| 27 |
room_id: str | None = None,
|
| 28 |
participant_id: str | None = None,
|
|
@@ -44,7 +44,7 @@ async def create_producer_client(
|
|
| 44 |
async def create_consumer_client(
|
| 45 |
workspace_id: str,
|
| 46 |
room_id: str,
|
| 47 |
-
base_url: str
|
| 48 |
participant_id: str | None = None,
|
| 49 |
options: ClientOptions | None = None,
|
| 50 |
) -> VideoConsumer:
|
|
|
|
| 9 |
|
| 10 |
def create_client(
|
| 11 |
role: ParticipantRole,
|
| 12 |
+
base_url: str,
|
| 13 |
options: ClientOptions | None = None,
|
| 14 |
) -> "VideoProducer | VideoConsumer":
|
| 15 |
"""Factory function to create the appropriate client based on role"""
|
|
|
|
| 22 |
|
| 23 |
|
| 24 |
async def create_producer_client(
|
| 25 |
+
base_url: str,
|
| 26 |
workspace_id: str | None = None,
|
| 27 |
room_id: str | None = None,
|
| 28 |
participant_id: str | None = None,
|
|
|
|
| 44 |
async def create_consumer_client(
|
| 45 |
workspace_id: str,
|
| 46 |
room_id: str,
|
| 47 |
+
base_url: str,
|
| 48 |
participant_id: str | None = None,
|
| 49 |
options: ClientOptions | None = None,
|
| 50 |
) -> VideoConsumer:
|
client/python/src/transport_server_client/video/producer.py
CHANGED
|
@@ -188,7 +188,7 @@ class VideoProducer(VideoClientCore):
|
|
| 188 |
|
| 189 |
def __init__(
|
| 190 |
self,
|
| 191 |
-
base_url: str
|
| 192 |
options: ClientOptions | None = None,
|
| 193 |
):
|
| 194 |
super().__init__(base_url, options)
|
|
@@ -699,7 +699,7 @@ class VideoProducer(VideoClientCore):
|
|
| 699 |
|
| 700 |
@staticmethod
|
| 701 |
async def create_and_connect(
|
| 702 |
-
base_url: str
|
| 703 |
workspace_id: str | None = None,
|
| 704 |
room_id: str | None = None,
|
| 705 |
participant_id: str | None = None,
|
|
|
|
| 188 |
|
| 189 |
def __init__(
|
| 190 |
self,
|
| 191 |
+
base_url: str,
|
| 192 |
options: ClientOptions | None = None,
|
| 193 |
):
|
| 194 |
super().__init__(base_url, options)
|
|
|
|
| 699 |
|
| 700 |
@staticmethod
|
| 701 |
async def create_and_connect(
|
| 702 |
+
base_url: str,
|
| 703 |
workspace_id: str | None = None,
|
| 704 |
room_id: str | None = None,
|
| 705 |
participant_id: str | None = None,
|
demo/.env.example
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
PUBLIC_TRANSPORT_SERVER_URL=...
|
demo/bun.lock
ADDED
|
@@ -0,0 +1,597 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"lockfileVersion": 1,
|
| 3 |
+
"workspaces": {
|
| 4 |
+
"": {
|
| 5 |
+
"name": "demo",
|
| 6 |
+
"dependencies": {
|
| 7 |
+
"@robothub/transport-server-client": "file:../client/js",
|
| 8 |
+
},
|
| 9 |
+
"devDependencies": {
|
| 10 |
+
"@eslint/compat": "^1.2.5",
|
| 11 |
+
"@eslint/js": "^9.18.0",
|
| 12 |
+
"@sveltejs/adapter-static": "^3.0.0",
|
| 13 |
+
"@sveltejs/kit": "^2.16.0",
|
| 14 |
+
"@sveltejs/vite-plugin-svelte": "^5.0.0",
|
| 15 |
+
"@tailwindcss/vite": "^4.0.0",
|
| 16 |
+
"eslint": "^9.18.0",
|
| 17 |
+
"eslint-config-prettier": "^10.0.1",
|
| 18 |
+
"eslint-plugin-svelte": "^3.0.0",
|
| 19 |
+
"globals": "^16.0.0",
|
| 20 |
+
"prettier": "^3.4.2",
|
| 21 |
+
"prettier-plugin-svelte": "^3.3.3",
|
| 22 |
+
"prettier-plugin-tailwindcss": "^0.6.11",
|
| 23 |
+
"svelte": "^5.0.0",
|
| 24 |
+
"svelte-check": "^4.0.0",
|
| 25 |
+
"tailwindcss": "^4.0.0",
|
| 26 |
+
"typescript": "^5.0.0",
|
| 27 |
+
"typescript-eslint": "^8.20.0",
|
| 28 |
+
"vite": "^6.2.6",
|
| 29 |
+
},
|
| 30 |
+
},
|
| 31 |
+
},
|
| 32 |
+
"packages": {
|
| 33 |
+
"@ampproject/remapping": ["@ampproject/remapping@2.3.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="],
|
| 34 |
+
|
| 35 |
+
"@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.5", "", { "os": "aix", "cpu": "ppc64" }, "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA=="],
|
| 36 |
+
|
| 37 |
+
"@esbuild/android-arm": ["@esbuild/android-arm@0.25.5", "", { "os": "android", "cpu": "arm" }, "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA=="],
|
| 38 |
+
|
| 39 |
+
"@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.5", "", { "os": "android", "cpu": "arm64" }, "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg=="],
|
| 40 |
+
|
| 41 |
+
"@esbuild/android-x64": ["@esbuild/android-x64@0.25.5", "", { "os": "android", "cpu": "x64" }, "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw=="],
|
| 42 |
+
|
| 43 |
+
"@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ=="],
|
| 44 |
+
|
| 45 |
+
"@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ=="],
|
| 46 |
+
|
| 47 |
+
"@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.5", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw=="],
|
| 48 |
+
|
| 49 |
+
"@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.5", "", { "os": "freebsd", "cpu": "x64" }, "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw=="],
|
| 50 |
+
|
| 51 |
+
"@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.5", "", { "os": "linux", "cpu": "arm" }, "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw=="],
|
| 52 |
+
|
| 53 |
+
"@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg=="],
|
| 54 |
+
|
| 55 |
+
"@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.5", "", { "os": "linux", "cpu": "ia32" }, "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA=="],
|
| 56 |
+
|
| 57 |
+
"@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.5", "", { "os": "linux", "cpu": "none" }, "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg=="],
|
| 58 |
+
|
| 59 |
+
"@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.5", "", { "os": "linux", "cpu": "none" }, "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg=="],
|
| 60 |
+
|
| 61 |
+
"@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.5", "", { "os": "linux", "cpu": "ppc64" }, "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ=="],
|
| 62 |
+
|
| 63 |
+
"@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.5", "", { "os": "linux", "cpu": "none" }, "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA=="],
|
| 64 |
+
|
| 65 |
+
"@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.5", "", { "os": "linux", "cpu": "s390x" }, "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ=="],
|
| 66 |
+
|
| 67 |
+
"@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.5", "", { "os": "linux", "cpu": "x64" }, "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw=="],
|
| 68 |
+
|
| 69 |
+
"@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.5", "", { "os": "none", "cpu": "arm64" }, "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw=="],
|
| 70 |
+
|
| 71 |
+
"@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.5", "", { "os": "none", "cpu": "x64" }, "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ=="],
|
| 72 |
+
|
| 73 |
+
"@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.5", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw=="],
|
| 74 |
+
|
| 75 |
+
"@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.5", "", { "os": "openbsd", "cpu": "x64" }, "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg=="],
|
| 76 |
+
|
| 77 |
+
"@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.5", "", { "os": "sunos", "cpu": "x64" }, "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA=="],
|
| 78 |
+
|
| 79 |
+
"@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw=="],
|
| 80 |
+
|
| 81 |
+
"@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ=="],
|
| 82 |
+
|
| 83 |
+
"@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.5", "", { "os": "win32", "cpu": "x64" }, "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g=="],
|
| 84 |
+
|
| 85 |
+
"@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.7.0", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw=="],
|
| 86 |
+
|
| 87 |
+
"@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.1", "", {}, "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ=="],
|
| 88 |
+
|
| 89 |
+
"@eslint/compat": ["@eslint/compat@1.3.0", "", { "peerDependencies": { "eslint": "^9.10.0" }, "optionalPeers": ["eslint"] }, "sha512-ZBygRBqpDYiIHsN+d1WyHn3TYgzgpzLEcgJUxTATyiInQbKZz6wZb6+ljwdg8xeeOe4v03z6Uh6lELiw0/mVhQ=="],
|
| 90 |
+
|
| 91 |
+
"@eslint/config-array": ["@eslint/config-array@0.20.1", "", { "dependencies": { "@eslint/object-schema": "^2.1.6", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, "sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw=="],
|
| 92 |
+
|
| 93 |
+
"@eslint/config-helpers": ["@eslint/config-helpers@0.2.3", "", {}, "sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg=="],
|
| 94 |
+
|
| 95 |
+
"@eslint/core": ["@eslint/core@0.14.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg=="],
|
| 96 |
+
|
| 97 |
+
"@eslint/eslintrc": ["@eslint/eslintrc@3.3.1", "", { "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ=="],
|
| 98 |
+
|
| 99 |
+
"@eslint/js": ["@eslint/js@9.29.0", "", {}, "sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ=="],
|
| 100 |
+
|
| 101 |
+
"@eslint/object-schema": ["@eslint/object-schema@2.1.6", "", {}, "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA=="],
|
| 102 |
+
|
| 103 |
+
"@eslint/plugin-kit": ["@eslint/plugin-kit@0.3.2", "", { "dependencies": { "@eslint/core": "^0.15.0", "levn": "^0.4.1" } }, "sha512-4SaFZCNfJqvk/kenHpI8xvN42DMaoycy4PzKc5otHxRswww1kAt82OlBuwRVLofCACCTZEcla2Ydxv8scMXaTg=="],
|
| 104 |
+
|
| 105 |
+
"@humanfs/core": ["@humanfs/core@0.19.1", "", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="],
|
| 106 |
+
|
| 107 |
+
"@humanfs/node": ["@humanfs/node@0.16.6", "", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.3.0" } }, "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw=="],
|
| 108 |
+
|
| 109 |
+
"@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="],
|
| 110 |
+
|
| 111 |
+
"@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="],
|
| 112 |
+
|
| 113 |
+
"@isaacs/fs-minipass": ["@isaacs/fs-minipass@4.0.1", "", { "dependencies": { "minipass": "^7.0.4" } }, "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w=="],
|
| 114 |
+
|
| 115 |
+
"@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.8", "", { "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA=="],
|
| 116 |
+
|
| 117 |
+
"@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="],
|
| 118 |
+
|
| 119 |
+
"@jridgewell/set-array": ["@jridgewell/set-array@1.2.1", "", {}, "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A=="],
|
| 120 |
+
|
| 121 |
+
"@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.0", "", {}, "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="],
|
| 122 |
+
|
| 123 |
+
"@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.25", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ=="],
|
| 124 |
+
|
| 125 |
+
"@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="],
|
| 126 |
+
|
| 127 |
+
"@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="],
|
| 128 |
+
|
| 129 |
+
"@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="],
|
| 130 |
+
|
| 131 |
+
"@polka/url": ["@polka/url@1.0.0-next.29", "", {}, "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww=="],
|
| 132 |
+
|
| 133 |
+
"@robothub/transport-server-client": ["@robothub/transport-server-client@file:../client/js", { "dependencies": { "eventemitter3": "^5.0.1" }, "devDependencies": { "@types/bun": "^1.2.15", "typescript": "^5.3.3" }, "peerDependencies": { "typescript": ">=5.0.0" } }],
|
| 134 |
+
|
| 135 |
+
"@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.44.0", "", { "os": "android", "cpu": "arm" }, "sha512-xEiEE5oDW6tK4jXCAyliuntGR+amEMO7HLtdSshVuhFnKTYoeYMyXQK7pLouAJJj5KHdwdn87bfHAR2nSdNAUA=="],
|
| 136 |
+
|
| 137 |
+
"@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.44.0", "", { "os": "android", "cpu": "arm64" }, "sha512-uNSk/TgvMbskcHxXYHzqwiyBlJ/lGcv8DaUfcnNwict8ba9GTTNxfn3/FAoFZYgkaXXAdrAA+SLyKplyi349Jw=="],
|
| 138 |
+
|
| 139 |
+
"@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.44.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-VGF3wy0Eq1gcEIkSCr8Ke03CWT+Pm2yveKLaDvq51pPpZza3JX/ClxXOCmTYYq3us5MvEuNRTaeyFThCKRQhOA=="],
|
| 140 |
+
|
| 141 |
+
"@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.44.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-fBkyrDhwquRvrTxSGH/qqt3/T0w5Rg0L7ZIDypvBPc1/gzjJle6acCpZ36blwuwcKD/u6oCE/sRWlUAcxLWQbQ=="],
|
| 142 |
+
|
| 143 |
+
"@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.44.0", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-u5AZzdQJYJXByB8giQ+r4VyfZP+walV+xHWdaFx/1VxsOn6eWJhK2Vl2eElvDJFKQBo/hcYIBg/jaKS8ZmKeNQ=="],
|
| 144 |
+
|
| 145 |
+
"@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.44.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-qC0kS48c/s3EtdArkimctY7h3nHicQeEUdjJzYVJYR3ct3kWSafmn6jkNCA8InbUdge6PVx6keqjk5lVGJf99g=="],
|
| 146 |
+
|
| 147 |
+
"@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.44.0", "", { "os": "linux", "cpu": "arm" }, "sha512-x+e/Z9H0RAWckn4V2OZZl6EmV0L2diuX3QB0uM1r6BvhUIv6xBPL5mrAX2E3e8N8rEHVPwFfz/ETUbV4oW9+lQ=="],
|
| 148 |
+
|
| 149 |
+
"@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.44.0", "", { "os": "linux", "cpu": "arm" }, "sha512-1exwiBFf4PU/8HvI8s80icyCcnAIB86MCBdst51fwFmH5dyeoWVPVgmQPcKrMtBQ0W5pAs7jBCWuRXgEpRzSCg=="],
|
| 150 |
+
|
| 151 |
+
"@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.44.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ=="],
|
| 152 |
+
|
| 153 |
+
"@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.44.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q=="],
|
| 154 |
+
|
| 155 |
+
"@rollup/rollup-linux-loongarch64-gnu": ["@rollup/rollup-linux-loongarch64-gnu@4.44.0", "", { "os": "linux", "cpu": "none" }, "sha512-xw+FTGcov/ejdusVOqKgMGW3c4+AgqrfvzWEVXcNP6zq2ue+lsYUgJ+5Rtn/OTJf7e2CbgTFvzLW2j0YAtj0Gg=="],
|
| 156 |
+
|
| 157 |
+
"@rollup/rollup-linux-powerpc64le-gnu": ["@rollup/rollup-linux-powerpc64le-gnu@4.44.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-bKGibTr9IdF0zr21kMvkZT4K6NV+jjRnBoVMt2uNMG0BYWm3qOVmYnXKzx7UhwrviKnmK46IKMByMgvpdQlyJQ=="],
|
| 158 |
+
|
| 159 |
+
"@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.44.0", "", { "os": "linux", "cpu": "none" }, "sha512-vV3cL48U5kDaKZtXrti12YRa7TyxgKAIDoYdqSIOMOFBXqFj2XbChHAtXquEn2+n78ciFgr4KIqEbydEGPxXgA=="],
|
| 160 |
+
|
| 161 |
+
"@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.44.0", "", { "os": "linux", "cpu": "none" }, "sha512-TDKO8KlHJuvTEdfw5YYFBjhFts2TR0VpZsnLLSYmB7AaohJhM8ctDSdDnUGq77hUh4m/djRafw+9zQpkOanE2Q=="],
|
| 162 |
+
|
| 163 |
+
"@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.44.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-8541GEyktXaw4lvnGp9m84KENcxInhAt6vPWJ9RodsB/iGjHoMB2Pp5MVBCiKIRxrxzJhGCxmNzdu+oDQ7kwRA=="],
|
| 164 |
+
|
| 165 |
+
"@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.44.0", "", { "os": "linux", "cpu": "x64" }, "sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw=="],
|
| 166 |
+
|
| 167 |
+
"@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.44.0", "", { "os": "linux", "cpu": "x64" }, "sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA=="],
|
| 168 |
+
|
| 169 |
+
"@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.44.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-M0CpcHf8TWn+4oTxJfh7LQuTuaYeXGbk0eageVjQCKzYLsajWS/lFC94qlRqOlyC2KvRT90ZrfXULYmukeIy7w=="],
|
| 170 |
+
|
| 171 |
+
"@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.44.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-3XJ0NQtMAXTWFW8FqZKcw3gOQwBtVWP/u8TpHP3CRPXD7Pd6s8lLdH3sHWh8vqKCyyiI8xW5ltJScQmBU9j7WA=="],
|
| 172 |
+
|
| 173 |
+
"@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.44.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ=="],
|
| 174 |
+
|
| 175 |
+
"@sveltejs/acorn-typescript": ["@sveltejs/acorn-typescript@1.0.5", "", { "peerDependencies": { "acorn": "^8.9.0" } }, "sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ=="],
|
| 176 |
+
|
| 177 |
+
"@sveltejs/adapter-static": ["@sveltejs/adapter-static@3.0.8", "", { "peerDependencies": { "@sveltejs/kit": "^2.0.0" } }, "sha512-YaDrquRpZwfcXbnlDsSrBQNCChVOT9MGuSg+dMAyfsAa1SmiAhrA5jUYUiIMC59G92kIbY/AaQOWcBdq+lh+zg=="],
|
| 178 |
+
|
| 179 |
+
"@sveltejs/kit": ["@sveltejs/kit@2.22.0", "", { "dependencies": { "@sveltejs/acorn-typescript": "^1.0.5", "@types/cookie": "^0.6.0", "acorn": "^8.14.1", "cookie": "^0.6.0", "devalue": "^5.1.0", "esm-env": "^1.2.2", "kleur": "^4.1.5", "magic-string": "^0.30.5", "mrmime": "^2.0.0", "sade": "^1.8.1", "set-cookie-parser": "^2.6.0", "sirv": "^3.0.0", "vitefu": "^1.0.6" }, "peerDependencies": { "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0", "svelte": "^4.0.0 || ^5.0.0-next.0", "vite": "^5.0.3 || ^6.0.0 || ^7.0.0-beta.0" }, "bin": { "svelte-kit": "svelte-kit.js" } }, "sha512-DJm0UxVgzXq+1MUfiJK4Ridk7oIQsIets6JwHiEl97sI6nXScfXe+BeqNhzB7jQIVBb3BM51U4hNk8qQxRXBAA=="],
|
| 180 |
+
|
| 181 |
+
"@sveltejs/vite-plugin-svelte": ["@sveltejs/vite-plugin-svelte@5.1.0", "", { "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1", "debug": "^4.4.1", "deepmerge": "^4.3.1", "kleur": "^4.1.5", "magic-string": "^0.30.17", "vitefu": "^1.0.6" }, "peerDependencies": { "svelte": "^5.0.0", "vite": "^6.0.0" } }, "sha512-wojIS/7GYnJDYIg1higWj2ROA6sSRWvcR1PO/bqEyFr/5UZah26c8Cz4u0NaqjPeVltzsVpt2Tm8d2io0V+4Tw=="],
|
| 182 |
+
|
| 183 |
+
"@sveltejs/vite-plugin-svelte-inspector": ["@sveltejs/vite-plugin-svelte-inspector@4.0.1", "", { "dependencies": { "debug": "^4.3.7" }, "peerDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.0", "svelte": "^5.0.0", "vite": "^6.0.0" } }, "sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw=="],
|
| 184 |
+
|
| 185 |
+
"@tailwindcss/node": ["@tailwindcss/node@4.1.10", "", { "dependencies": { "@ampproject/remapping": "^2.3.0", "enhanced-resolve": "^5.18.1", "jiti": "^2.4.2", "lightningcss": "1.30.1", "magic-string": "^0.30.17", "source-map-js": "^1.2.1", "tailwindcss": "4.1.10" } }, "sha512-2ACf1znY5fpRBwRhMgj9ZXvb2XZW8qs+oTfotJ2C5xR0/WNL7UHZ7zXl6s+rUqedL1mNi+0O+WQr5awGowS3PQ=="],
|
| 186 |
+
|
| 187 |
+
"@tailwindcss/oxide": ["@tailwindcss/oxide@4.1.10", "", { "dependencies": { "detect-libc": "^2.0.4", "tar": "^7.4.3" }, "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.1.10", "@tailwindcss/oxide-darwin-arm64": "4.1.10", "@tailwindcss/oxide-darwin-x64": "4.1.10", "@tailwindcss/oxide-freebsd-x64": "4.1.10", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.10", "@tailwindcss/oxide-linux-arm64-gnu": "4.1.10", "@tailwindcss/oxide-linux-arm64-musl": "4.1.10", "@tailwindcss/oxide-linux-x64-gnu": "4.1.10", "@tailwindcss/oxide-linux-x64-musl": "4.1.10", "@tailwindcss/oxide-wasm32-wasi": "4.1.10", "@tailwindcss/oxide-win32-arm64-msvc": "4.1.10", "@tailwindcss/oxide-win32-x64-msvc": "4.1.10" } }, "sha512-v0C43s7Pjw+B9w21htrQwuFObSkio2aV/qPx/mhrRldbqxbWJK6KizM+q7BF1/1CmuLqZqX3CeYF7s7P9fbA8Q=="],
|
| 188 |
+
|
| 189 |
+
"@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.1.10", "", { "os": "android", "cpu": "arm64" }, "sha512-VGLazCoRQ7rtsCzThaI1UyDu/XRYVyH4/EWiaSX6tFglE+xZB5cvtC5Omt0OQ+FfiIVP98su16jDVHDEIuH4iQ=="],
|
| 190 |
+
|
| 191 |
+
"@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.1.10", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ZIFqvR1irX2yNjWJzKCqTCcHZbgkSkSkZKbRM3BPzhDL/18idA8uWCoopYA2CSDdSGFlDAxYdU2yBHwAwx8euQ=="],
|
| 192 |
+
|
| 193 |
+
"@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.1.10", "", { "os": "darwin", "cpu": "x64" }, "sha512-eCA4zbIhWUFDXoamNztmS0MjXHSEJYlvATzWnRiTqJkcUteSjO94PoRHJy1Xbwp9bptjeIxxBHh+zBWFhttbrQ=="],
|
| 194 |
+
|
| 195 |
+
"@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.1.10", "", { "os": "freebsd", "cpu": "x64" }, "sha512-8/392Xu12R0cc93DpiJvNpJ4wYVSiciUlkiOHOSOQNH3adq9Gi/dtySK7dVQjXIOzlpSHjeCL89RUUI8/GTI6g=="],
|
| 196 |
+
|
| 197 |
+
"@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.1.10", "", { "os": "linux", "cpu": "arm" }, "sha512-t9rhmLT6EqeuPT+MXhWhlRYIMSfh5LZ6kBrC4FS6/+M1yXwfCtp24UumgCWOAJVyjQwG+lYva6wWZxrfvB+NhQ=="],
|
| 198 |
+
|
| 199 |
+
"@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.1.10", "", { "os": "linux", "cpu": "arm64" }, "sha512-3oWrlNlxLRxXejQ8zImzrVLuZ/9Z2SeKoLhtCu0hpo38hTO2iL86eFOu4sVR8cZc6n3z7eRXXqtHJECa6mFOvA=="],
|
| 200 |
+
|
| 201 |
+
"@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.1.10", "", { "os": "linux", "cpu": "arm64" }, "sha512-saScU0cmWvg/Ez4gUmQWr9pvY9Kssxt+Xenfx1LG7LmqjcrvBnw4r9VjkFcqmbBb7GCBwYNcZi9X3/oMda9sqQ=="],
|
| 202 |
+
|
| 203 |
+
"@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.1.10", "", { "os": "linux", "cpu": "x64" }, "sha512-/G3ao/ybV9YEEgAXeEg28dyH6gs1QG8tvdN9c2MNZdUXYBaIY/Gx0N6RlJzfLy/7Nkdok4kaxKPHKJUlAaoTdA=="],
|
| 204 |
+
|
| 205 |
+
"@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.1.10", "", { "os": "linux", "cpu": "x64" }, "sha512-LNr7X8fTiKGRtQGOerSayc2pWJp/9ptRYAa4G+U+cjw9kJZvkopav1AQc5HHD+U364f71tZv6XamaHKgrIoVzA=="],
|
| 206 |
+
|
| 207 |
+
"@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.1.10", "", { "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", "@emnapi/wasi-threads": "^1.0.2", "@napi-rs/wasm-runtime": "^0.2.10", "@tybys/wasm-util": "^0.9.0", "tslib": "^2.8.0" }, "cpu": "none" }, "sha512-d6ekQpopFQJAcIK2i7ZzWOYGZ+A6NzzvQ3ozBvWFdeyqfOZdYHU66g5yr+/HC4ipP1ZgWsqa80+ISNILk+ae/Q=="],
|
| 208 |
+
|
| 209 |
+
"@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.1.10", "", { "os": "win32", "cpu": "arm64" }, "sha512-i1Iwg9gRbwNVOCYmnigWCCgow8nDWSFmeTUU5nbNx3rqbe4p0kRbEqLwLJbYZKmSSp23g4N6rCDmm7OuPBXhDA=="],
|
| 210 |
+
|
| 211 |
+
"@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.1.10", "", { "os": "win32", "cpu": "x64" }, "sha512-sGiJTjcBSfGq2DVRtaSljq5ZgZS2SDHSIfhOylkBvHVjwOsodBhnb3HdmiKkVuUGKD0I7G63abMOVaskj1KpOA=="],
|
| 212 |
+
|
| 213 |
+
"@tailwindcss/vite": ["@tailwindcss/vite@4.1.10", "", { "dependencies": { "@tailwindcss/node": "4.1.10", "@tailwindcss/oxide": "4.1.10", "tailwindcss": "4.1.10" }, "peerDependencies": { "vite": "^5.2.0 || ^6" } }, "sha512-QWnD5HDY2IADv+vYR82lOhqOlS1jSCUUAmfem52cXAhRTKxpDh3ARX8TTXJTCCO7Rv7cD2Nlekabv02bwP3a2A=="],
|
| 214 |
+
|
| 215 |
+
"@types/bun": ["@types/bun@1.2.17", "", { "dependencies": { "bun-types": "1.2.17" } }, "sha512-l/BYs/JYt+cXA/0+wUhulYJB6a6p//GTPiJ7nV+QHa8iiId4HZmnu/3J/SowP5g0rTiERY2kfGKXEK5Ehltx4Q=="],
|
| 216 |
+
|
| 217 |
+
"@types/cookie": ["@types/cookie@0.6.0", "", {}, "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA=="],
|
| 218 |
+
|
| 219 |
+
"@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="],
|
| 220 |
+
|
| 221 |
+
"@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="],
|
| 222 |
+
|
| 223 |
+
"@types/node": ["@types/node@24.0.4", "", { "dependencies": { "undici-types": "~7.8.0" } }, "sha512-ulyqAkrhnuNq9pB76DRBTkcS6YsmDALy6Ua63V8OhrOBgbcYt6IOdzpw5P1+dyRIyMerzLkeYWBeOXPpA9GMAA=="],
|
| 224 |
+
|
| 225 |
+
"@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.35.0", "", { "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "8.35.0", "@typescript-eslint/type-utils": "8.35.0", "@typescript-eslint/utils": "8.35.0", "@typescript-eslint/visitor-keys": "8.35.0", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.35.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } }, "sha512-ijItUYaiWuce0N1SoSMrEd0b6b6lYkYt99pqCPfybd+HKVXtEvYhICfLdwp42MhiI5mp0oq7PKEL+g1cNiz/Eg=="],
|
| 226 |
+
|
| 227 |
+
"@typescript-eslint/parser": ["@typescript-eslint/parser@8.35.0", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.35.0", "@typescript-eslint/types": "8.35.0", "@typescript-eslint/typescript-estree": "8.35.0", "@typescript-eslint/visitor-keys": "8.35.0", "debug": "^4.3.4" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } }, "sha512-6sMvZePQrnZH2/cJkwRpkT7DxoAWh+g6+GFRK6bV3YQo7ogi3SX5rgF6099r5Q53Ma5qeT7LGmOmuIutF4t3lA=="],
|
| 228 |
+
|
| 229 |
+
"@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.35.0", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.35.0", "@typescript-eslint/types": "^8.35.0", "debug": "^4.3.4" }, "peerDependencies": { "typescript": ">=4.8.4 <5.9.0" } }, "sha512-41xatqRwWZuhUMF/aZm2fcUsOFKNcG28xqRSS6ZVr9BVJtGExosLAm5A1OxTjRMagx8nJqva+P5zNIGt8RIgbQ=="],
|
| 230 |
+
|
| 231 |
+
"@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.35.0", "", { "dependencies": { "@typescript-eslint/types": "8.35.0", "@typescript-eslint/visitor-keys": "8.35.0" } }, "sha512-+AgL5+mcoLxl1vGjwNfiWq5fLDZM1TmTPYs2UkyHfFhgERxBbqHlNjRzhThJqz+ktBqTChRYY6zwbMwy0591AA=="],
|
| 232 |
+
|
| 233 |
+
"@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.35.0", "", { "peerDependencies": { "typescript": ">=4.8.4 <5.9.0" } }, "sha512-04k/7247kZzFraweuEirmvUj+W3bJLI9fX6fbo1Qm2YykuBvEhRTPl8tcxlYO8kZZW+HIXfkZNoasVb8EV4jpA=="],
|
| 234 |
+
|
| 235 |
+
"@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.35.0", "", { "dependencies": { "@typescript-eslint/typescript-estree": "8.35.0", "@typescript-eslint/utils": "8.35.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } }, "sha512-ceNNttjfmSEoM9PW87bWLDEIaLAyR+E6BoYJQ5PfaDau37UGca9Nyq3lBk8Bw2ad0AKvYabz6wxc7DMTO2jnNA=="],
|
| 236 |
+
|
| 237 |
+
"@typescript-eslint/types": ["@typescript-eslint/types@8.35.0", "", {}, "sha512-0mYH3emanku0vHw2aRLNGqe7EXh9WHEhi7kZzscrMDf6IIRUQ5Jk4wp1QrledE/36KtdZrVfKnE32eZCf/vaVQ=="],
|
| 238 |
+
|
| 239 |
+
"@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.35.0", "", { "dependencies": { "@typescript-eslint/project-service": "8.35.0", "@typescript-eslint/tsconfig-utils": "8.35.0", "@typescript-eslint/types": "8.35.0", "@typescript-eslint/visitor-keys": "8.35.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "typescript": ">=4.8.4 <5.9.0" } }, "sha512-F+BhnaBemgu1Qf8oHrxyw14wq6vbL8xwWKKMwTMwYIRmFFY/1n/9T/jpbobZL8vp7QyEUcC6xGrnAO4ua8Kp7w=="],
|
| 240 |
+
|
| 241 |
+
"@typescript-eslint/utils": ["@typescript-eslint/utils@8.35.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", "@typescript-eslint/scope-manager": "8.35.0", "@typescript-eslint/types": "8.35.0", "@typescript-eslint/typescript-estree": "8.35.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } }, "sha512-nqoMu7WWM7ki5tPgLVsmPM8CkqtoPUG6xXGeefM5t4x3XumOEKMoUZPdi+7F+/EotukN4R9OWdmDxN80fqoZeg=="],
|
| 242 |
+
|
| 243 |
+
"@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.35.0", "", { "dependencies": { "@typescript-eslint/types": "8.35.0", "eslint-visitor-keys": "^4.2.1" } }, "sha512-zTh2+1Y8ZpmeQaQVIc/ZZxsx8UzgKJyNg1PTvjzC7WMhPSVS8bfDX34k1SrwOf016qd5RU3az2UxUNue3IfQ5g=="],
|
| 244 |
+
|
| 245 |
+
"acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="],
|
| 246 |
+
|
| 247 |
+
"acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="],
|
| 248 |
+
|
| 249 |
+
"ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="],
|
| 250 |
+
|
| 251 |
+
"ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
|
| 252 |
+
|
| 253 |
+
"argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="],
|
| 254 |
+
|
| 255 |
+
"aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="],
|
| 256 |
+
|
| 257 |
+
"axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="],
|
| 258 |
+
|
| 259 |
+
"balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="],
|
| 260 |
+
|
| 261 |
+
"brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="],
|
| 262 |
+
|
| 263 |
+
"braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="],
|
| 264 |
+
|
| 265 |
+
"bun-types": ["bun-types@1.2.17", "", { "dependencies": { "@types/node": "*" } }, "sha512-ElC7ItwT3SCQwYZDYoAH+q6KT4Fxjl8DtZ6qDulUFBmXA8YB4xo+l54J9ZJN+k2pphfn9vk7kfubeSd5QfTVJQ=="],
|
| 266 |
+
|
| 267 |
+
"callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="],
|
| 268 |
+
|
| 269 |
+
"chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
|
| 270 |
+
|
| 271 |
+
"chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="],
|
| 272 |
+
|
| 273 |
+
"chownr": ["chownr@3.0.0", "", {}, "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="],
|
| 274 |
+
|
| 275 |
+
"clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="],
|
| 276 |
+
|
| 277 |
+
"color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="],
|
| 278 |
+
|
| 279 |
+
"color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="],
|
| 280 |
+
|
| 281 |
+
"concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="],
|
| 282 |
+
|
| 283 |
+
"cookie": ["cookie@0.6.0", "", {}, "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw=="],
|
| 284 |
+
|
| 285 |
+
"cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="],
|
| 286 |
+
|
| 287 |
+
"cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="],
|
| 288 |
+
|
| 289 |
+
"debug": ["debug@4.4.1", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ=="],
|
| 290 |
+
|
| 291 |
+
"deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="],
|
| 292 |
+
|
| 293 |
+
"deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="],
|
| 294 |
+
|
| 295 |
+
"detect-libc": ["detect-libc@2.0.4", "", {}, "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA=="],
|
| 296 |
+
|
| 297 |
+
"devalue": ["devalue@5.1.1", "", {}, "sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw=="],
|
| 298 |
+
|
| 299 |
+
"enhanced-resolve": ["enhanced-resolve@5.18.2", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ=="],
|
| 300 |
+
|
| 301 |
+
"esbuild": ["esbuild@0.25.5", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.5", "@esbuild/android-arm": "0.25.5", "@esbuild/android-arm64": "0.25.5", "@esbuild/android-x64": "0.25.5", "@esbuild/darwin-arm64": "0.25.5", "@esbuild/darwin-x64": "0.25.5", "@esbuild/freebsd-arm64": "0.25.5", "@esbuild/freebsd-x64": "0.25.5", "@esbuild/linux-arm": "0.25.5", "@esbuild/linux-arm64": "0.25.5", "@esbuild/linux-ia32": "0.25.5", "@esbuild/linux-loong64": "0.25.5", "@esbuild/linux-mips64el": "0.25.5", "@esbuild/linux-ppc64": "0.25.5", "@esbuild/linux-riscv64": "0.25.5", "@esbuild/linux-s390x": "0.25.5", "@esbuild/linux-x64": "0.25.5", "@esbuild/netbsd-arm64": "0.25.5", "@esbuild/netbsd-x64": "0.25.5", "@esbuild/openbsd-arm64": "0.25.5", "@esbuild/openbsd-x64": "0.25.5", "@esbuild/sunos-x64": "0.25.5", "@esbuild/win32-arm64": "0.25.5", "@esbuild/win32-ia32": "0.25.5", "@esbuild/win32-x64": "0.25.5" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ=="],
|
| 302 |
+
|
| 303 |
+
"escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="],
|
| 304 |
+
|
| 305 |
+
"eslint": ["eslint@9.29.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.20.1", "@eslint/config-helpers": "^0.2.1", "@eslint/core": "^0.14.0", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.29.0", "@eslint/plugin-kit": "^0.3.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ=="],
|
| 306 |
+
|
| 307 |
+
"eslint-config-prettier": ["eslint-config-prettier@10.1.5", "", { "peerDependencies": { "eslint": ">=7.0.0" }, "bin": { "eslint-config-prettier": "bin/cli.js" } }, "sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw=="],
|
| 308 |
+
|
| 309 |
+
"eslint-plugin-svelte": ["eslint-plugin-svelte@3.9.3", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.6.1", "@jridgewell/sourcemap-codec": "^1.5.0", "esutils": "^2.0.3", "globals": "^16.0.0", "known-css-properties": "^0.37.0", "postcss": "^8.4.49", "postcss-load-config": "^3.1.4", "postcss-safe-parser": "^7.0.0", "semver": "^7.6.3", "svelte-eslint-parser": "^1.2.0" }, "peerDependencies": { "eslint": "^8.57.1 || ^9.0.0", "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" }, "optionalPeers": ["svelte"] }, "sha512-PlcyK80sqAZ43IITeZkgl3zPFWJytx/Joup9iKGqIOsXM2m3pWfPbWuXPr5PN3loXFEypqTY/JyZwNqlSpSvRw=="],
|
| 310 |
+
|
| 311 |
+
"eslint-scope": ["eslint-scope@8.4.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="],
|
| 312 |
+
|
| 313 |
+
"eslint-visitor-keys": ["eslint-visitor-keys@4.2.1", "", {}, "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ=="],
|
| 314 |
+
|
| 315 |
+
"esm-env": ["esm-env@1.2.2", "", {}, "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA=="],
|
| 316 |
+
|
| 317 |
+
"espree": ["espree@10.4.0", "", { "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.2.1" } }, "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ=="],
|
| 318 |
+
|
| 319 |
+
"esquery": ["esquery@1.6.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg=="],
|
| 320 |
+
|
| 321 |
+
"esrap": ["esrap@1.4.9", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" } }, "sha512-3OMlcd0a03UGuZpPeUC1HxR3nA23l+HEyCiZw3b3FumJIN9KphoGzDJKMXI1S72jVS1dsenDyQC0kJlO1U9E1g=="],
|
| 322 |
+
|
| 323 |
+
"esrecurse": ["esrecurse@4.3.0", "", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="],
|
| 324 |
+
|
| 325 |
+
"estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="],
|
| 326 |
+
|
| 327 |
+
"esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="],
|
| 328 |
+
|
| 329 |
+
"eventemitter3": ["eventemitter3@5.0.1", "", {}, "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA=="],
|
| 330 |
+
|
| 331 |
+
"fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="],
|
| 332 |
+
|
| 333 |
+
"fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="],
|
| 334 |
+
|
| 335 |
+
"fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="],
|
| 336 |
+
|
| 337 |
+
"fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="],
|
| 338 |
+
|
| 339 |
+
"fastq": ["fastq@1.19.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ=="],
|
| 340 |
+
|
| 341 |
+
"fdir": ["fdir@6.4.6", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w=="],
|
| 342 |
+
|
| 343 |
+
"file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="],
|
| 344 |
+
|
| 345 |
+
"fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="],
|
| 346 |
+
|
| 347 |
+
"find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="],
|
| 348 |
+
|
| 349 |
+
"flat-cache": ["flat-cache@4.0.1", "", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="],
|
| 350 |
+
|
| 351 |
+
"flatted": ["flatted@3.3.3", "", {}, "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg=="],
|
| 352 |
+
|
| 353 |
+
"fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
|
| 354 |
+
|
| 355 |
+
"glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="],
|
| 356 |
+
|
| 357 |
+
"globals": ["globals@16.2.0", "", {}, "sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg=="],
|
| 358 |
+
|
| 359 |
+
"graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="],
|
| 360 |
+
|
| 361 |
+
"graphemer": ["graphemer@1.4.0", "", {}, "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="],
|
| 362 |
+
|
| 363 |
+
"has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="],
|
| 364 |
+
|
| 365 |
+
"ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="],
|
| 366 |
+
|
| 367 |
+
"import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="],
|
| 368 |
+
|
| 369 |
+
"imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="],
|
| 370 |
+
|
| 371 |
+
"is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="],
|
| 372 |
+
|
| 373 |
+
"is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="],
|
| 374 |
+
|
| 375 |
+
"is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="],
|
| 376 |
+
|
| 377 |
+
"is-reference": ["is-reference@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.6" } }, "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw=="],
|
| 378 |
+
|
| 379 |
+
"isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="],
|
| 380 |
+
|
| 381 |
+
"jiti": ["jiti@2.4.2", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A=="],
|
| 382 |
+
|
| 383 |
+
"js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="],
|
| 384 |
+
|
| 385 |
+
"json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="],
|
| 386 |
+
|
| 387 |
+
"json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="],
|
| 388 |
+
|
| 389 |
+
"json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="],
|
| 390 |
+
|
| 391 |
+
"keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="],
|
| 392 |
+
|
| 393 |
+
"kleur": ["kleur@4.1.5", "", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="],
|
| 394 |
+
|
| 395 |
+
"known-css-properties": ["known-css-properties@0.37.0", "", {}, "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ=="],
|
| 396 |
+
|
| 397 |
+
"levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="],
|
| 398 |
+
|
| 399 |
+
"lightningcss": ["lightningcss@1.30.1", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-darwin-arm64": "1.30.1", "lightningcss-darwin-x64": "1.30.1", "lightningcss-freebsd-x64": "1.30.1", "lightningcss-linux-arm-gnueabihf": "1.30.1", "lightningcss-linux-arm64-gnu": "1.30.1", "lightningcss-linux-arm64-musl": "1.30.1", "lightningcss-linux-x64-gnu": "1.30.1", "lightningcss-linux-x64-musl": "1.30.1", "lightningcss-win32-arm64-msvc": "1.30.1", "lightningcss-win32-x64-msvc": "1.30.1" } }, "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg=="],
|
| 400 |
+
|
| 401 |
+
"lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.30.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ=="],
|
| 402 |
+
|
| 403 |
+
"lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.30.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA=="],
|
| 404 |
+
|
| 405 |
+
"lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.30.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig=="],
|
| 406 |
+
|
| 407 |
+
"lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.30.1", "", { "os": "linux", "cpu": "arm" }, "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q=="],
|
| 408 |
+
|
| 409 |
+
"lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.30.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw=="],
|
| 410 |
+
|
| 411 |
+
"lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.30.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ=="],
|
| 412 |
+
|
| 413 |
+
"lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.30.1", "", { "os": "linux", "cpu": "x64" }, "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw=="],
|
| 414 |
+
|
| 415 |
+
"lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.30.1", "", { "os": "linux", "cpu": "x64" }, "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ=="],
|
| 416 |
+
|
| 417 |
+
"lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.30.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA=="],
|
| 418 |
+
|
| 419 |
+
"lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.30.1", "", { "os": "win32", "cpu": "x64" }, "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg=="],
|
| 420 |
+
|
| 421 |
+
"lilconfig": ["lilconfig@2.1.0", "", {}, "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ=="],
|
| 422 |
+
|
| 423 |
+
"locate-character": ["locate-character@3.0.0", "", {}, "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="],
|
| 424 |
+
|
| 425 |
+
"locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="],
|
| 426 |
+
|
| 427 |
+
"lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="],
|
| 428 |
+
|
| 429 |
+
"magic-string": ["magic-string@0.30.17", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA=="],
|
| 430 |
+
|
| 431 |
+
"merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="],
|
| 432 |
+
|
| 433 |
+
"micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="],
|
| 434 |
+
|
| 435 |
+
"minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="],
|
| 436 |
+
|
| 437 |
+
"minipass": ["minipass@7.1.2", "", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="],
|
| 438 |
+
|
| 439 |
+
"minizlib": ["minizlib@3.0.2", "", { "dependencies": { "minipass": "^7.1.2" } }, "sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA=="],
|
| 440 |
+
|
| 441 |
+
"mkdirp": ["mkdirp@3.0.1", "", { "bin": { "mkdirp": "dist/cjs/src/bin.js" } }, "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg=="],
|
| 442 |
+
|
| 443 |
+
"mri": ["mri@1.2.0", "", {}, "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="],
|
| 444 |
+
|
| 445 |
+
"mrmime": ["mrmime@2.0.1", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="],
|
| 446 |
+
|
| 447 |
+
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
|
| 448 |
+
|
| 449 |
+
"nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="],
|
| 450 |
+
|
| 451 |
+
"natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="],
|
| 452 |
+
|
| 453 |
+
"optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="],
|
| 454 |
+
|
| 455 |
+
"p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="],
|
| 456 |
+
|
| 457 |
+
"p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="],
|
| 458 |
+
|
| 459 |
+
"parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="],
|
| 460 |
+
|
| 461 |
+
"path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="],
|
| 462 |
+
|
| 463 |
+
"path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="],
|
| 464 |
+
|
| 465 |
+
"picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
|
| 466 |
+
|
| 467 |
+
"picomatch": ["picomatch@4.0.2", "", {}, "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg=="],
|
| 468 |
+
|
| 469 |
+
"postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="],
|
| 470 |
+
|
| 471 |
+
"postcss-load-config": ["postcss-load-config@3.1.4", "", { "dependencies": { "lilconfig": "^2.0.5", "yaml": "^1.10.2" }, "peerDependencies": { "postcss": ">=8.0.9", "ts-node": ">=9.0.0" }, "optionalPeers": ["postcss", "ts-node"] }, "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg=="],
|
| 472 |
+
|
| 473 |
+
"postcss-safe-parser": ["postcss-safe-parser@7.0.1", "", { "peerDependencies": { "postcss": "^8.4.31" } }, "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A=="],
|
| 474 |
+
|
| 475 |
+
"postcss-scss": ["postcss-scss@4.0.9", "", { "peerDependencies": { "postcss": "^8.4.29" } }, "sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A=="],
|
| 476 |
+
|
| 477 |
+
"postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="],
|
| 478 |
+
|
| 479 |
+
"prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="],
|
| 480 |
+
|
| 481 |
+
"prettier": ["prettier@3.6.1", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-5xGWRa90Sp2+x1dQtNpIpeOQpTDBs9cZDmA/qs2vDNN2i18PdapqY7CmBeyLlMuGqXJRIOPaCaVZTLNQRWUH/A=="],
|
| 482 |
+
|
| 483 |
+
"prettier-plugin-svelte": ["prettier-plugin-svelte@3.4.0", "", { "peerDependencies": { "prettier": "^3.0.0", "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" } }, "sha512-pn1ra/0mPObzqoIQn/vUTR3ZZI6UuZ0sHqMK5x2jMLGrs53h0sXhkVuDcrlssHwIMk7FYrMjHBPoUSyyEEDlBQ=="],
|
| 484 |
+
|
| 485 |
+
"prettier-plugin-tailwindcss": ["prettier-plugin-tailwindcss@0.6.13", "", { "peerDependencies": { "@ianvs/prettier-plugin-sort-imports": "*", "@prettier/plugin-pug": "*", "@shopify/prettier-plugin-liquid": "*", "@trivago/prettier-plugin-sort-imports": "*", "@zackad/prettier-plugin-twig": "*", "prettier": "^3.0", "prettier-plugin-astro": "*", "prettier-plugin-css-order": "*", "prettier-plugin-import-sort": "*", "prettier-plugin-jsdoc": "*", "prettier-plugin-marko": "*", "prettier-plugin-multiline-arrays": "*", "prettier-plugin-organize-attributes": "*", "prettier-plugin-organize-imports": "*", "prettier-plugin-sort-imports": "*", "prettier-plugin-style-order": "*", "prettier-plugin-svelte": "*" }, "optionalPeers": ["@ianvs/prettier-plugin-sort-imports", "@prettier/plugin-pug", "@shopify/prettier-plugin-liquid", "@trivago/prettier-plugin-sort-imports", "@zackad/prettier-plugin-twig", "prettier-plugin-astro", "prettier-plugin-css-order", "prettier-plugin-import-sort", "prettier-plugin-jsdoc", "prettier-plugin-marko", "prettier-plugin-multiline-arrays", "prettier-plugin-organize-attributes", "prettier-plugin-organize-imports", "prettier-plugin-sort-imports", "prettier-plugin-style-order", "prettier-plugin-svelte"] }, "sha512-uQ0asli1+ic8xrrSmIOaElDu0FacR4x69GynTh2oZjFY10JUt6EEumTQl5tB4fMeD6I1naKd+4rXQQ7esT2i1g=="],
|
| 486 |
+
|
| 487 |
+
"punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="],
|
| 488 |
+
|
| 489 |
+
"queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="],
|
| 490 |
+
|
| 491 |
+
"readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="],
|
| 492 |
+
|
| 493 |
+
"resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="],
|
| 494 |
+
|
| 495 |
+
"reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="],
|
| 496 |
+
|
| 497 |
+
"rollup": ["rollup@4.44.0", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.44.0", "@rollup/rollup-android-arm64": "4.44.0", "@rollup/rollup-darwin-arm64": "4.44.0", "@rollup/rollup-darwin-x64": "4.44.0", "@rollup/rollup-freebsd-arm64": "4.44.0", "@rollup/rollup-freebsd-x64": "4.44.0", "@rollup/rollup-linux-arm-gnueabihf": "4.44.0", "@rollup/rollup-linux-arm-musleabihf": "4.44.0", "@rollup/rollup-linux-arm64-gnu": "4.44.0", "@rollup/rollup-linux-arm64-musl": "4.44.0", "@rollup/rollup-linux-loongarch64-gnu": "4.44.0", "@rollup/rollup-linux-powerpc64le-gnu": "4.44.0", "@rollup/rollup-linux-riscv64-gnu": "4.44.0", "@rollup/rollup-linux-riscv64-musl": "4.44.0", "@rollup/rollup-linux-s390x-gnu": "4.44.0", "@rollup/rollup-linux-x64-gnu": "4.44.0", "@rollup/rollup-linux-x64-musl": "4.44.0", "@rollup/rollup-win32-arm64-msvc": "4.44.0", "@rollup/rollup-win32-ia32-msvc": "4.44.0", "@rollup/rollup-win32-x64-msvc": "4.44.0", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-qHcdEzLCiktQIfwBq420pn2dP+30uzqYxv9ETm91wdt2R9AFcWfjNAmje4NWlnCIQ5RMTzVf0ZyisOKqHR6RwA=="],
|
| 498 |
+
|
| 499 |
+
"run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="],
|
| 500 |
+
|
| 501 |
+
"sade": ["sade@1.8.1", "", { "dependencies": { "mri": "^1.1.0" } }, "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A=="],
|
| 502 |
+
|
| 503 |
+
"semver": ["semver@7.7.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="],
|
| 504 |
+
|
| 505 |
+
"set-cookie-parser": ["set-cookie-parser@2.7.1", "", {}, "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ=="],
|
| 506 |
+
|
| 507 |
+
"shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="],
|
| 508 |
+
|
| 509 |
+
"shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="],
|
| 510 |
+
|
| 511 |
+
"sirv": ["sirv@3.0.1", "", { "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", "totalist": "^3.0.0" } }, "sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A=="],
|
| 512 |
+
|
| 513 |
+
"source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
|
| 514 |
+
|
| 515 |
+
"strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="],
|
| 516 |
+
|
| 517 |
+
"supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="],
|
| 518 |
+
|
| 519 |
+
"svelte": ["svelte@5.34.8", "", { "dependencies": { "@ampproject/remapping": "^2.3.0", "@jridgewell/sourcemap-codec": "^1.5.0", "@sveltejs/acorn-typescript": "^1.0.5", "@types/estree": "^1.0.5", "acorn": "^8.12.1", "aria-query": "^5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", "esm-env": "^1.2.1", "esrap": "^1.4.8", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", "zimmerframe": "^1.1.2" } }, "sha512-TF+8irl7rpj3+fpaLuPRX5BqReTAqckp0Fumxa/mCeK3fo0/MnBb9W/Z2bLwtqj3C3r5Lm6NKIAw7YrgIv1Fwg=="],
|
| 520 |
+
|
| 521 |
+
"svelte-check": ["svelte-check@4.2.2", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "chokidar": "^4.0.1", "fdir": "^6.2.0", "picocolors": "^1.0.0", "sade": "^1.7.4" }, "peerDependencies": { "svelte": "^4.0.0 || ^5.0.0-next.0", "typescript": ">=5.0.0" }, "bin": { "svelte-check": "bin/svelte-check" } }, "sha512-1+31EOYZ7NKN0YDMKusav2hhEoA51GD9Ws6o//0SphMT0ve9mBTsTUEX7OmDMadUP3KjNHsSKtJrqdSaD8CrGQ=="],
|
| 522 |
+
|
| 523 |
+
"svelte-eslint-parser": ["svelte-eslint-parser@1.2.0", "", { "dependencies": { "eslint-scope": "^8.2.0", "eslint-visitor-keys": "^4.0.0", "espree": "^10.0.0", "postcss": "^8.4.49", "postcss-scss": "^4.0.9", "postcss-selector-parser": "^7.0.0" }, "peerDependencies": { "svelte": "^3.37.0 || ^4.0.0 || ^5.0.0" }, "optionalPeers": ["svelte"] }, "sha512-mbPtajIeuiyU80BEyGvwAktBeTX7KCr5/0l+uRGLq1dafwRNrjfM5kHGJScEBlPG3ipu6dJqfW/k0/fujvIEVw=="],
|
| 524 |
+
|
| 525 |
+
"tailwindcss": ["tailwindcss@4.1.10", "", {}, "sha512-P3nr6WkvKV/ONsTzj6Gb57sWPMX29EPNPopo7+FcpkQaNsrNpZ1pv8QmrYI2RqEKD7mlGqLnGovlcYnBK0IqUA=="],
|
| 526 |
+
|
| 527 |
+
"tapable": ["tapable@2.2.2", "", {}, "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg=="],
|
| 528 |
+
|
| 529 |
+
"tar": ["tar@7.4.3", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.0.1", "mkdirp": "^3.0.1", "yallist": "^5.0.0" } }, "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw=="],
|
| 530 |
+
|
| 531 |
+
"tinyglobby": ["tinyglobby@0.2.14", "", { "dependencies": { "fdir": "^6.4.4", "picomatch": "^4.0.2" } }, "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ=="],
|
| 532 |
+
|
| 533 |
+
"to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="],
|
| 534 |
+
|
| 535 |
+
"totalist": ["totalist@3.0.1", "", {}, "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ=="],
|
| 536 |
+
|
| 537 |
+
"ts-api-utils": ["ts-api-utils@2.1.0", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ=="],
|
| 538 |
+
|
| 539 |
+
"type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="],
|
| 540 |
+
|
| 541 |
+
"typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="],
|
| 542 |
+
|
| 543 |
+
"typescript-eslint": ["typescript-eslint@8.35.0", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.35.0", "@typescript-eslint/parser": "8.35.0", "@typescript-eslint/utils": "8.35.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <5.9.0" } }, "sha512-uEnz70b7kBz6eg/j0Czy6K5NivaYopgxRjsnAJ2Fx5oTLo3wefTHIbL7AkQr1+7tJCRVpTs/wiM8JR/11Loq9A=="],
|
| 544 |
+
|
| 545 |
+
"undici-types": ["undici-types@7.8.0", "", {}, "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw=="],
|
| 546 |
+
|
| 547 |
+
"uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="],
|
| 548 |
+
|
| 549 |
+
"util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="],
|
| 550 |
+
|
| 551 |
+
"vite": ["vite@6.3.5", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ=="],
|
| 552 |
+
|
| 553 |
+
"vitefu": ["vitefu@1.0.7", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" }, "optionalPeers": ["vite"] }, "sha512-eRWXLBbJjW3X5z5P5IHcSm2yYbYRPb2kQuc+oqsbAl99WB5kVsPbiiox+cymo8twTzifA6itvhr2CmjnaZZp0Q=="],
|
| 554 |
+
|
| 555 |
+
"which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="],
|
| 556 |
+
|
| 557 |
+
"word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="],
|
| 558 |
+
|
| 559 |
+
"yallist": ["yallist@5.0.0", "", {}, "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="],
|
| 560 |
+
|
| 561 |
+
"yaml": ["yaml@1.10.2", "", {}, "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="],
|
| 562 |
+
|
| 563 |
+
"yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="],
|
| 564 |
+
|
| 565 |
+
"zimmerframe": ["zimmerframe@1.1.2", "", {}, "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w=="],
|
| 566 |
+
|
| 567 |
+
"@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="],
|
| 568 |
+
|
| 569 |
+
"@eslint/eslintrc/globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="],
|
| 570 |
+
|
| 571 |
+
"@eslint/plugin-kit/@eslint/core": ["@eslint/core@0.15.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-b7ePw78tEWWkpgZCDYkbqDOP8dmM6qe+AOC6iuJqlq1R/0ahMAeH3qynpnqKFGkMltrp44ohV4ubGyvLX28tzw=="],
|
| 572 |
+
|
| 573 |
+
"@humanfs/node/@humanwhocodes/retry": ["@humanwhocodes/retry@0.3.1", "", {}, "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA=="],
|
| 574 |
+
|
| 575 |
+
"@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.4.3", "", { "dependencies": { "@emnapi/wasi-threads": "1.0.2", "tslib": "^2.4.0" }, "bundled": true }, "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g=="],
|
| 576 |
+
|
| 577 |
+
"@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.4.3", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ=="],
|
| 578 |
+
|
| 579 |
+
"@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.0.2", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA=="],
|
| 580 |
+
|
| 581 |
+
"@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@0.2.11", "", { "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", "@tybys/wasm-util": "^0.9.0" }, "bundled": true }, "sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA=="],
|
| 582 |
+
|
| 583 |
+
"@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.9.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw=="],
|
| 584 |
+
|
| 585 |
+
"@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
| 586 |
+
|
| 587 |
+
"@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="],
|
| 588 |
+
|
| 589 |
+
"@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="],
|
| 590 |
+
|
| 591 |
+
"fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
|
| 592 |
+
|
| 593 |
+
"micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
|
| 594 |
+
|
| 595 |
+
"@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="],
|
| 596 |
+
}
|
| 597 |
+
}
|
demo/src/lib/settings.svelte.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import { PUBLIC_TRANSPORT_SERVER_URL } from '$env/static/public';
|
| 2 |
+
|
| 3 |
+
interface Settings {
|
| 4 |
+
transportServerUrl: string;
|
| 5 |
+
}
|
| 6 |
+
|
| 7 |
+
export const settings: Settings = $state({
|
| 8 |
+
transportServerUrl: PUBLIC_TRANSPORT_SERVER_URL ?? 'http://localhost:8000'
|
| 9 |
+
});
|
demo/src/routes/+page.svelte
CHANGED
|
@@ -3,6 +3,7 @@
|
|
| 3 |
import { robotics } from '@robothub/transport-server-client';
|
| 4 |
import type { robotics as roboticsTypes } from '@robothub/transport-server-client';
|
| 5 |
import { goto } from '$app/navigation';
|
|
|
|
| 6 |
|
| 7 |
// Server status
|
| 8 |
let serverStatus = $state<'checking' | 'connected' | 'error'>('checking');
|
|
@@ -30,7 +31,7 @@
|
|
| 30 |
|
| 31 |
try {
|
| 32 |
// Use the configured server URL
|
| 33 |
-
const client = new robotics.RoboticsClientCore(
|
| 34 |
const roomList = await client.listRooms('');
|
| 35 |
rooms = roomList;
|
| 36 |
serverInfo = { rooms: roomList.length, version: '1.0.0' };
|
|
@@ -137,6 +138,9 @@
|
|
| 137 |
<p class="mt-1 font-mono text-sm text-gray-500">
|
| 138 |
Select or create a workspace to get started
|
| 139 |
</p>
|
|
|
|
|
|
|
|
|
|
| 140 |
</div>
|
| 141 |
|
| 142 |
<!-- Workspace Selection -->
|
|
|
|
| 3 |
import { robotics } from '@robothub/transport-server-client';
|
| 4 |
import type { robotics as roboticsTypes } from '@robothub/transport-server-client';
|
| 5 |
import { goto } from '$app/navigation';
|
| 6 |
+
import { settings } from '$lib/settings.svelte';
|
| 7 |
|
| 8 |
// Server status
|
| 9 |
let serverStatus = $state<'checking' | 'connected' | 'error'>('checking');
|
|
|
|
| 31 |
|
| 32 |
try {
|
| 33 |
// Use the configured server URL
|
| 34 |
+
const client = new robotics.RoboticsClientCore(settings.transportServerUrl);
|
| 35 |
const roomList = await client.listRooms('');
|
| 36 |
rooms = roomList;
|
| 37 |
serverInfo = { rooms: roomList.length, version: '1.0.0' };
|
|
|
|
| 138 |
<p class="mt-1 font-mono text-sm text-gray-500">
|
| 139 |
Select or create a workspace to get started
|
| 140 |
</p>
|
| 141 |
+
<p class="mt-1 font-mono text-sm text-gray-500">
|
| 142 |
+
Transport server URL: {settings.transportServerUrl}
|
| 143 |
+
</p>
|
| 144 |
</div>
|
| 145 |
|
| 146 |
<!-- Workspace Selection -->
|
demo/src/routes/[workspaceId]/+page.svelte
CHANGED
|
@@ -2,6 +2,7 @@
|
|
| 2 |
import { onMount } from 'svelte';
|
| 3 |
import { robotics, video } from '@robothub/transport-server-client';
|
| 4 |
import type { robotics as roboticsTypes, video as videoTypes } from '@robothub/transport-server-client';
|
|
|
|
| 5 |
|
| 6 |
|
| 7 |
// Get data from load function
|
|
@@ -42,7 +43,7 @@
|
|
| 42 |
|
| 43 |
// Load robotics rooms
|
| 44 |
try {
|
| 45 |
-
roboticsClient = new robotics.RoboticsClientCore(
|
| 46 |
roboticsRooms = await roboticsClient.listRooms(workspaceId);
|
| 47 |
} catch (err) {
|
| 48 |
roboticsError = 'Failed to load robotics rooms';
|
|
@@ -51,7 +52,7 @@
|
|
| 51 |
|
| 52 |
// Load video rooms
|
| 53 |
try {
|
| 54 |
-
videoClient = new video.VideoClientCore(
|
| 55 |
videoRooms = await videoClient.listRooms(workspaceId);
|
| 56 |
} catch (err) {
|
| 57 |
videoError = 'Failed to load video rooms';
|
|
|
|
| 2 |
import { onMount } from 'svelte';
|
| 3 |
import { robotics, video } from '@robothub/transport-server-client';
|
| 4 |
import type { robotics as roboticsTypes, video as videoTypes } from '@robothub/transport-server-client';
|
| 5 |
+
import { settings } from '$lib/settings.svelte.js';
|
| 6 |
|
| 7 |
|
| 8 |
// Get data from load function
|
|
|
|
| 43 |
|
| 44 |
// Load robotics rooms
|
| 45 |
try {
|
| 46 |
+
roboticsClient = new robotics.RoboticsClientCore(settings.transportServerUrl);
|
| 47 |
roboticsRooms = await roboticsClient.listRooms(workspaceId);
|
| 48 |
} catch (err) {
|
| 49 |
roboticsError = 'Failed to load robotics rooms';
|
|
|
|
| 52 |
|
| 53 |
// Load video rooms
|
| 54 |
try {
|
| 55 |
+
videoClient = new video.VideoClientCore(settings.transportServerUrl);
|
| 56 |
videoRooms = await videoClient.listRooms(workspaceId);
|
| 57 |
} catch (err) {
|
| 58 |
videoError = 'Failed to load video rooms';
|
demo/src/routes/[workspaceId]/robotics/+page.svelte
CHANGED
|
@@ -2,6 +2,7 @@
|
|
| 2 |
import { onMount } from 'svelte';
|
| 3 |
import { robotics } from '@robothub/transport-server-client';
|
| 4 |
import type { robotics as roboticsTypes } from '@robothub/transport-server-client';
|
|
|
|
| 5 |
|
| 6 |
|
| 7 |
// Get data from load function
|
|
@@ -43,7 +44,7 @@
|
|
| 43 |
try {
|
| 44 |
loading = true;
|
| 45 |
error = '';
|
| 46 |
-
client = new robotics.RoboticsClientCore(
|
| 47 |
rooms = await client.listRooms(workspaceId);
|
| 48 |
debugInfo.responseTime = Date.now() - startTime;
|
| 49 |
} catch (err) {
|
|
|
|
| 2 |
import { onMount } from 'svelte';
|
| 3 |
import { robotics } from '@robothub/transport-server-client';
|
| 4 |
import type { robotics as roboticsTypes } from '@robothub/transport-server-client';
|
| 5 |
+
import { settings } from '$lib/settings.svelte.js';
|
| 6 |
|
| 7 |
|
| 8 |
// Get data from load function
|
|
|
|
| 44 |
try {
|
| 45 |
loading = true;
|
| 46 |
error = '';
|
| 47 |
+
client = new robotics.RoboticsClientCore(settings.transportServerUrl);
|
| 48 |
rooms = await client.listRooms(workspaceId);
|
| 49 |
debugInfo.responseTime = Date.now() - startTime;
|
| 50 |
} catch (err) {
|
demo/src/routes/[workspaceId]/robotics/consumer/+page.svelte
CHANGED
|
@@ -2,6 +2,7 @@
|
|
| 2 |
import { onMount } from 'svelte';
|
| 3 |
import { robotics } from '@robothub/transport-server-client';
|
| 4 |
import type { robotics as roboticsTypes } from '@robothub/transport-server-client';
|
|
|
|
| 5 |
|
| 6 |
|
| 7 |
// Get data from load function
|
|
@@ -71,7 +72,7 @@
|
|
| 71 |
connecting = true;
|
| 72 |
error = '';
|
| 73 |
|
| 74 |
-
consumer = new robotics.RoboticsConsumer(
|
| 75 |
|
| 76 |
// Set up event handlers
|
| 77 |
consumer.onConnected(() => {
|
|
|
|
| 2 |
import { onMount } from 'svelte';
|
| 3 |
import { robotics } from '@robothub/transport-server-client';
|
| 4 |
import type { robotics as roboticsTypes } from '@robothub/transport-server-client';
|
| 5 |
+
import { settings } from '$lib/settings.svelte.js';
|
| 6 |
|
| 7 |
|
| 8 |
// Get data from load function
|
|
|
|
| 72 |
connecting = true;
|
| 73 |
error = '';
|
| 74 |
|
| 75 |
+
consumer = new robotics.RoboticsConsumer(settings.transportServerUrl);
|
| 76 |
|
| 77 |
// Set up event handlers
|
| 78 |
consumer.onConnected(() => {
|
demo/src/routes/[workspaceId]/robotics/producer/+page.svelte
CHANGED
|
@@ -1,6 +1,7 @@
|
|
| 1 |
<script lang="ts">
|
| 2 |
import { onMount } from 'svelte';
|
| 3 |
import { robotics } from '@robothub/transport-server-client';
|
|
|
|
| 4 |
|
| 5 |
|
| 6 |
// Get data from load function
|
|
@@ -99,7 +100,7 @@
|
|
| 99 |
connecting = true;
|
| 100 |
error = '';
|
| 101 |
|
| 102 |
-
producer = new robotics.RoboticsProducer(
|
| 103 |
|
| 104 |
producer.onConnected(() => {
|
| 105 |
connected = true;
|
|
@@ -139,7 +140,7 @@
|
|
| 139 |
connecting = true;
|
| 140 |
error = '';
|
| 141 |
|
| 142 |
-
producer = new robotics.RoboticsProducer(
|
| 143 |
|
| 144 |
producer.onConnected(() => {
|
| 145 |
connected = true;
|
|
|
|
| 1 |
<script lang="ts">
|
| 2 |
import { onMount } from 'svelte';
|
| 3 |
import { robotics } from '@robothub/transport-server-client';
|
| 4 |
+
import { settings } from '$lib/settings.svelte.js';
|
| 5 |
|
| 6 |
|
| 7 |
// Get data from load function
|
|
|
|
| 100 |
connecting = true;
|
| 101 |
error = '';
|
| 102 |
|
| 103 |
+
producer = new robotics.RoboticsProducer(settings.transportServerUrl);
|
| 104 |
|
| 105 |
producer.onConnected(() => {
|
| 106 |
connected = true;
|
|
|
|
| 140 |
connecting = true;
|
| 141 |
error = '';
|
| 142 |
|
| 143 |
+
producer = new robotics.RoboticsProducer(settings.transportServerUrl);
|
| 144 |
|
| 145 |
producer.onConnected(() => {
|
| 146 |
connected = true;
|
demo/src/routes/[workspaceId]/video/+page.svelte
CHANGED
|
@@ -2,6 +2,7 @@
|
|
| 2 |
import { onMount } from 'svelte';
|
| 3 |
import { video } from '@robothub/transport-server-client';
|
| 4 |
import type { video as videoTypes } from '@robothub/transport-server-client';
|
|
|
|
| 5 |
|
| 6 |
|
| 7 |
// Get data from load function
|
|
@@ -43,7 +44,7 @@
|
|
| 43 |
try {
|
| 44 |
loading = true;
|
| 45 |
error = '';
|
| 46 |
-
client = new video.VideoClientCore(
|
| 47 |
rooms = await client.listRooms(workspaceId);
|
| 48 |
debugInfo.responseTime = Date.now() - startTime;
|
| 49 |
} catch (err) {
|
|
|
|
| 2 |
import { onMount } from 'svelte';
|
| 3 |
import { video } from '@robothub/transport-server-client';
|
| 4 |
import type { video as videoTypes } from '@robothub/transport-server-client';
|
| 5 |
+
import { settings } from '$lib/settings.svelte.js';
|
| 6 |
|
| 7 |
|
| 8 |
// Get data from load function
|
|
|
|
| 44 |
try {
|
| 45 |
loading = true;
|
| 46 |
error = '';
|
| 47 |
+
client = new video.VideoClientCore(settings.transportServerUrl);
|
| 48 |
rooms = await client.listRooms(workspaceId);
|
| 49 |
debugInfo.responseTime = Date.now() - startTime;
|
| 50 |
} catch (err) {
|
demo/src/routes/[workspaceId]/video/consumer/+page.svelte
CHANGED
|
@@ -1,6 +1,7 @@
|
|
| 1 |
<script lang="ts">
|
| 2 |
import { onMount } from 'svelte';
|
| 3 |
import { video } from '@robothub/transport-server-client';
|
|
|
|
| 4 |
|
| 5 |
|
| 6 |
// Get data from load function
|
|
@@ -79,7 +80,7 @@
|
|
| 79 |
connecting = true;
|
| 80 |
error = '';
|
| 81 |
|
| 82 |
-
consumer = new video.VideoConsumer(
|
| 83 |
|
| 84 |
// Set up event handlers
|
| 85 |
consumer.onConnected(() => {
|
|
|
|
| 1 |
<script lang="ts">
|
| 2 |
import { onMount } from 'svelte';
|
| 3 |
import { video } from '@robothub/transport-server-client';
|
| 4 |
+
import { settings } from '$lib/settings.svelte.js';
|
| 5 |
|
| 6 |
|
| 7 |
// Get data from load function
|
|
|
|
| 80 |
connecting = true;
|
| 81 |
error = '';
|
| 82 |
|
| 83 |
+
consumer = new video.VideoConsumer(settings.transportServerUrl);
|
| 84 |
|
| 85 |
// Set up event handlers
|
| 86 |
consumer.onConnected(() => {
|
demo/src/routes/[workspaceId]/video/producer/+page.svelte
CHANGED
|
@@ -1,6 +1,7 @@
|
|
| 1 |
<script lang="ts">
|
| 2 |
import { onMount } from 'svelte';
|
| 3 |
import { video } from '@robothub/transport-server-client';
|
|
|
|
| 4 |
|
| 5 |
|
| 6 |
// Get data from load function
|
|
@@ -31,7 +32,7 @@
|
|
| 31 |
|
| 32 |
// Media stream
|
| 33 |
let localVideoStream = $state<MediaStream | null>(null);
|
| 34 |
-
let localVideoRef: HTMLVideoElement;
|
| 35 |
|
| 36 |
// Available video devices
|
| 37 |
let videoDevices = $state<MediaDeviceInfo[]>([]);
|
|
@@ -194,7 +195,7 @@
|
|
| 194 |
connecting = true;
|
| 195 |
error = '';
|
| 196 |
|
| 197 |
-
producer = new video.VideoProducer(
|
| 198 |
|
| 199 |
producer.onConnected(() => {
|
| 200 |
connected = true;
|
|
|
|
| 1 |
<script lang="ts">
|
| 2 |
import { onMount } from 'svelte';
|
| 3 |
import { video } from '@robothub/transport-server-client';
|
| 4 |
+
import { settings } from '$lib/settings.svelte.js';
|
| 5 |
|
| 6 |
|
| 7 |
// Get data from load function
|
|
|
|
| 32 |
|
| 33 |
// Media stream
|
| 34 |
let localVideoStream = $state<MediaStream | null>(null);
|
| 35 |
+
let localVideoRef: HTMLVideoElement | null = $state(null);
|
| 36 |
|
| 37 |
// Available video devices
|
| 38 |
let videoDevices = $state<MediaDeviceInfo[]>([]);
|
|
|
|
| 195 |
connecting = true;
|
| 196 |
error = '';
|
| 197 |
|
| 198 |
+
producer = new video.VideoProducer(settings.transportServerUrl);
|
| 199 |
|
| 200 |
producer.onConnected(() => {
|
| 201 |
connected = true;
|
server/launch_with_ui.py
CHANGED
|
@@ -106,7 +106,7 @@ else:
|
|
| 106 |
|
| 107 |
|
| 108 |
if __name__ == "__main__":
|
| 109 |
-
port = int(os.getenv("PORT",
|
| 110 |
host = os.getenv("HOST", "localhost")
|
| 111 |
|
| 112 |
logger.info("π€ Starting RobotHub TransportServer Combined Server...")
|
|
|
|
| 106 |
|
| 107 |
|
| 108 |
if __name__ == "__main__":
|
| 109 |
+
port = int(os.getenv("PORT", 8000))
|
| 110 |
host = os.getenv("HOST", "localhost")
|
| 111 |
|
| 112 |
logger.info("π€ Starting RobotHub TransportServer Combined Server...")
|
test-docker.sh
CHANGED
|
@@ -14,7 +14,7 @@ NC='\033[0m' # No Color
|
|
| 14 |
|
| 15 |
# Configuration
|
| 16 |
CONTAINER_NAME="robothub-transport-server-test"
|
| 17 |
-
PORT=
|
| 18 |
MAX_WAIT=60
|
| 19 |
|
| 20 |
# Cleanup function
|
|
@@ -39,7 +39,7 @@ echo -e "${GREEN}β
Docker image built successfully${NC}"
|
|
| 39 |
echo -e "\n${YELLOW}Step 2: Starting container...${NC}"
|
| 40 |
docker run -d \
|
| 41 |
--name $CONTAINER_NAME \
|
| 42 |
-
-p $PORT:
|
| 43 |
-e SERVE_FRONTEND=true \
|
| 44 |
robothub-transport-server || {
|
| 45 |
echo -e "${RED}β Failed to start container${NC}"
|
|
@@ -156,6 +156,6 @@ echo "π Access the application at: http://localhost:$PORT"
|
|
| 156 |
echo "π API docs available at: http://localhost:$PORT/api/docs"
|
| 157 |
echo ""
|
| 158 |
echo "To manually test:"
|
| 159 |
-
echo " docker run -p
|
| 160 |
echo ""
|
| 161 |
echo -e "${YELLOW}Container will be cleaned up automatically.${NC}"
|
|
|
|
| 14 |
|
| 15 |
# Configuration
|
| 16 |
CONTAINER_NAME="robothub-transport-server-test"
|
| 17 |
+
PORT=8000
|
| 18 |
MAX_WAIT=60
|
| 19 |
|
| 20 |
# Cleanup function
|
|
|
|
| 39 |
echo -e "\n${YELLOW}Step 2: Starting container...${NC}"
|
| 40 |
docker run -d \
|
| 41 |
--name $CONTAINER_NAME \
|
| 42 |
+
-p $PORT:8000 \
|
| 43 |
-e SERVE_FRONTEND=true \
|
| 44 |
robothub-transport-server || {
|
| 45 |
echo -e "${RED}β Failed to start container${NC}"
|
|
|
|
| 156 |
echo "π API docs available at: http://localhost:$PORT/api/docs"
|
| 157 |
echo ""
|
| 158 |
echo "To manually test:"
|
| 159 |
+
echo " docker run -p 8000:8000 -e SERVE_FRONTEND=true robothub-transport-server"
|
| 160 |
echo ""
|
| 161 |
echo -e "${YELLOW}Container will be cleaned up automatically.${NC}"
|