diff --git a/site/public/llms-full.txt b/site/public/llms-full.txt index 497ad55e80..4731b1169c 100644 --- a/site/public/llms-full.txt +++ b/site/public/llms-full.txt @@ -2751,7 +2751,7 @@ console.log("Actor metadata:", metadata); Get started with Rivet Actors in Node.js and Bun ```sh -npm install @rivetkit/actor +npm install rivetkit ``` Create a simple counter actor: @@ -3001,7 +3001,7 @@ For more examples how to connect to your actors using React, check the [RivetKit Build real-time React applications with Rivet Actors ```sh -npm install @rivetkit/actor @rivetkit/react +npm install rivetkit @rivetkit/react ``` Create your actor registry on the backend: @@ -3908,10 +3908,10 @@ The File System driver is ideal for development and single-node deployments. For ## Setup -The File System driver is included with `@rivetkit/actor` - no additional packages needed: +The File System driver is included with `rivetkit` - no additional packages needed: ```bash -npm install @rivetkit/actor +npm install rivetkit ``` Use the default configuration with automatic path based on your current working directory: @@ -3967,10 +3967,10 @@ The Memory driver does not persist data between server restarts. For production ## Setup -The Memory driver is included with `@rivetkit/actor` - no additional packages needed: +The Memory driver is included with `rivetkit` - no additional packages needed: ```bash -npm install @rivetkit/actor +npm install rivetkit ``` Create and use the Memory driver: @@ -4383,100 +4383,91 @@ See [Create Manage Actors](/actors/communicating-with-actors) for more informat Actors provide a built-in way to log complex data to the console. -When dealing with lots of data, `console.log` often doesn't cut it. Using the context's log object (`c.log`) allows you to log complex data using structured logging. +Using the context's log object (`c.log`) allows you to log complex data using structured logging. Using the actor logging API is completely optional. ## Log levels -There are 5 log levels: +There are 7 log levels: -| Level | Call | Description | -| -------- | ------------------------------- | ---------------------------------------------------------------- | -| Critical | `c.log.critical(message, ...args);` | Severe errors that prevent core functionality | -| Error | `c.log.error(message, ...args);` | Errors that affect functionality but allow continued operation | -| Warning | `c.log.warn(message, ...args);` | Potentially harmful situations that should be addressed | -| Info | `c.log.info(message, ...args);` | General information about significant events & state changes | -| Debug | `c.log.debug(message, ...args);` | Detailed debugging information, usually used only in development | +| Level | Call | Description | +| ------ | ------------------------------- | ---------------------------------------------------------------- | +| Fatal | `c.log.fatal(message, ...args);` | Critical errors that prevent core functionality | +| Error | `c.log.error(message, ...args);` | Errors that affect functionality but allow continued operation | +| Warn | `c.log.warn(message, ...args);` | Potentially harmful situations that should be addressed | +| Info | `c.log.info(message, ...args);` | General information about significant events & state changes | +| Debug | `c.log.debug(message, ...args);` | Detailed debugging information, usually used in development | +| Trace | `c.log.trace(message, ...args);` | Very detailed debugging information, usually for tracing flow | +| Silent | N/A | Disables all logging output | ## Structured logging The built-in logging API (using `c.log`) provides structured logging to let you log key-value -pairs instead of raw strings. Structures logs are readable by both machines & +pairs instead of raw strings. Structured logs are readable by both machines & humans to make them easier to parse & search. -Passing an object to a log will print as structured data. For example: +When using `c.log`, the actor's name, key, and actor ID are automatically included in every log output. This makes it easy to filter and trace logs by specific actors in production environments. + +### Examples ```typescript -c.log.info('increment', ); -// Prints: level=INFO msg=increment connection=123 count=456 -``` +// Just a message +c.log.info('server started'); +// Prints: level=INFO actor=myActor key=foo actorId=44096d46632fd087 msg="server started" -The first parameter in each log method is the message. The rest of the arguments are used for structured logging. +// Message with an object +c.log.info('user connected', ); +// Prints: level=INFO actor=myActor key=foo actorId=44096d46632fd087 msg="user connected" userId=123 ip="192.168.1.1" -## `c.log` vs `console.log` logging +// Just an object (no message) +c.log.info(); +// Prints: level=INFO actor=myActor key=foo actorId=44096d46632fd087 action="purchase" amount=99.99 currency="USD" +``` -`c.log` makes it easier to manage complex logs, while `console.log` can -become unmaintainable at scale. +The logging system is built on [Pino](https://getpino.io/#/docs/api?id=logger), a high-performance structured logger for Node.js. -Consider this example: +## Configuration -```typescript structured_logging.ts -const counter = actor(, - - actions: ); +### Environment Variables - c.state.count += count; - return c.state.count; - } - } -}); -``` +You can configure logging behavior using environment variables: -```typescript unstructured_logging.ts -const counter = actor(, - - actions: with count $`); +| Variable | Description | Values | Default | +| -------- | ----------- | ------ | ------- | +| `LOG_LEVEL` | Sets the minimum log level to display | `trace`, `debug`, `info`, `warn`, `error`, `fatal`, `silent` | `warn` | +| `LOG_TARGET` | Include the module name that logged the message | `1` to enable, `0` to disable | `0` | +| `LOG_TIMESTAMP` | Include timestamp in log output | `1` to enable, `0` to disable | `0` | - c.state.count += count; - return c.state.count; - } - } -}); +Example: +```bash +LOG_LEVEL=debug LOG_TARGET=1 LOG_TIMESTAMP=1 node server.js ``` -If you need to search through a lot of logs, it's easier to read the structured logs. To find increments for a single connection, you can search `connection=123`. +### Log Level + +You can configure the log level programmatically when running your server: -Additionally, structured logs can be parsed and queried at scale using tools like Elasticsearch, Loki, or Datadog. For example, you can parse the log `level=INFO msg=increment connection=123 count=456` in to the JSON object `` and then query it as you would any other structured data. +```typescript +registry.runServer( +}) +``` -## Usage in lifecycle hooks +### Custom Pino Logger -The logger is available in all lifecycle hooks: +You can also provide a custom Pino base logger for more advanced logging configurations: ```typescript -const loggingExample = actor(, - - onStart: (c) => ); - }, - - onBeforeConnect: (c, ) => ); - - return ; - }, - - onConnect: (c) => ); - - c.state.events.push(); - }, - - onDisconnect: (c) => ); - - c.state.events.push(); - }, - - actions: +const customLogger = pino( }); + +registry.runServer( +}) ``` + +If using a custom base logger, you must manually configure your own log level in the Pino logger. + +For more advanced Pino configuration options, see the [Pino API documentation](https://getpino.io/#/docs/api?id=export). ## Registry # Registry @@ -5447,6 +5438,18 @@ const = toNextHandler(server); #### Returns - An object containing Next.js-compatible handlers for the HTTP methods. +## Pino + +# Pino + +Rivet's actor system uses [Pino](https://getpino.io/), a high-performance structured logging library for Node.js, to power its logging infrastructure. + +For detailed information on how to use and configure logging in your actors, see the [Logging documentation](/docs/general/logging). + +## Learn More + +- [Logging in RivetKit](/docs/general/logging) - Complete guide to using logs in your actors +- [Pino Documentation](https://getpino.io/#/docs/api) - Official Pino API documentation ## tRPC # tRPC diff --git a/site/public/llms.txt b/site/public/llms.txt index 28919f183f..a5943c98bf 100644 --- a/site/public/llms.txt +++ b/site/public/llms.txt @@ -88,6 +88,7 @@ https://rivet.gg/docs/integrations/elysia https://rivet.gg/docs/integrations/express https://rivet.gg/docs/integrations/hono https://rivet.gg/docs/integrations/next-js +https://rivet.gg/docs/integrations/pino https://rivet.gg/docs/integrations/trpc https://rivet.gg/docs/integrations/vitest https://rivet.gg/docs/self-hosting diff --git a/site/src/app/(v2)/(marketing)/(index)/sections/HeroSection.tsx b/site/src/app/(v2)/(marketing)/(index)/sections/HeroSection.tsx index 58eb69db15..c59eb83ba5 100644 --- a/site/src/app/(v2)/(marketing)/(index)/sections/HeroSection.tsx +++ b/site/src/app/(v2)/(marketing)/(index)/sections/HeroSection.tsx @@ -61,7 +61,7 @@ export function HeroSection() { {/*
```typescript {{"title":"server.ts"}}
-import { setup } from "@rivetkit/actor";
+import { setup } from "rivetkit";
const registry = setup({
use: { counter }
@@ -101,7 +101,7 @@ The actor client includes type safety out of the box. When you use `createClient
```typescript {{"title":"registry.ts"}}
-import { setup } from "@rivetkit/actor";
+import { setup } from "rivetkit";
// Create simple counter
const counter = actor({
@@ -152,7 +152,7 @@ For example:
```typescript {{"title":"actor.ts"}}
-import { actor, UserError } from "@rivetkit/actor";
+import { actor, UserError } from "rivetkit";
const user = actor({
state: { users: [] },
@@ -200,7 +200,7 @@ If passing data to an actor from the frontend, use a library like [Zod](https://
For example, to validate action parameters:
```typescript {{"title":"actor.ts"}}
-import { actor, UserError } from "@rivetkit/actor";
+import { actor, UserError } from "rivetkit";
import { z } from "zod";
// Define schema for action parameters
@@ -246,7 +246,7 @@ When writing complex logic for actions, you may want to extract parts of your im
Rivet provides the `ActionContextOf` utility type for exactly this purpose:
```typescript
-import { actor, ActionContextOf } from "@rivetkit/actor";
+import { actor, ActionContextOf } from "rivetkit";
const counter = actor({
state: { count: 0 },
diff --git a/site/src/content/docs/actors/authentication.mdx b/site/src/content/docs/actors/authentication.mdx
index 6980946796..9158e2099c 100644
--- a/site/src/content/docs/actors/authentication.mdx
+++ b/site/src/content/docs/actors/authentication.mdx
@@ -11,7 +11,7 @@ Rivet provides multiple authentication methods to secure your actors. Use `onAut
The `onAuth` hook runs on the HTTP server before clients can access actors. This is the preferred method for most authentication scenarios.
```typescript
-import { actor, UserError } from "@rivetkit/actor";
+import { actor, UserError } from "rivetkit";
const chatRoom = actor({
onAuth: async (params: { authToken?: string }, { request, intents }) => {
@@ -156,7 +156,7 @@ const secureActor = actor({
Use specific error types for different authentication failures:
```typescript
-import { UserError, Unauthorized, Forbidden } from "@rivetkit/actor/errors";
+import { UserError, Unauthorized, Forbidden } from "rivetkit/errors";
const protectedActor = actor({
onAuth: async (params: { authToken?: string }) => {
@@ -219,7 +219,7 @@ try {
### JWT Authentication
```typescript
-import { actor, UserError } from "@rivetkit/actor";
+import { actor, UserError } from "rivetkit";
import jwt from "jsonwebtoken";
const jwtActor = actor({
diff --git a/site/src/content/docs/actors/clients.mdx b/site/src/content/docs/actors/clients.mdx
index 5ab0434e50..d767ae4ad4 100644
--- a/site/src/content/docs/actors/clients.mdx
+++ b/site/src/content/docs/actors/clients.mdx
@@ -47,7 +47,7 @@ There are several ways to create a client for communicating with actors:
For frontend applications or external services connecting to your Rivet backend:
```typescript {{"title":"client.ts"}}
- import { createClient } from "@rivetkit/actor/client";
+ import { createClient } from "rivetkit/client";
import type { registry } from "./registry"; // IMPORTANT: Must use `type`
const client = createClient("http://localhost:8080");
@@ -393,7 +393,7 @@ const result = await chat.sendMessage("Hello world!");
Actors can validate authentication using the `onAuth` hook:
```typescript
-import { actor, UserError } from "@rivetkit/actor";
+import { actor, UserError } from "rivetkit";
const protectedActor = actor({
onAuth: async (opts) => {
diff --git a/site/src/content/docs/actors/communicating-between-actors.mdx b/site/src/content/docs/actors/communicating-between-actors.mdx
index 7b3ce4428e..e98b2b8b65 100644
--- a/site/src/content/docs/actors/communicating-between-actors.mdx
+++ b/site/src/content/docs/actors/communicating-between-actors.mdx
@@ -13,7 +13,7 @@ We recommend reading the [clients documentation](/docs/actors/clients) first. Th
The server-side actor client allows actors to call other actors within the same registry. Access it via `c.client()` in your actor context:
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const orderProcessor = actor({
state: { orders: [] },
@@ -46,7 +46,7 @@ const orderProcessor = actor({
Use a coordinator actor to manage complex workflows:
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const workflowActor = actor({
state: { workflows: [] },
@@ -79,7 +79,7 @@ const workflowActor = actor({
Collect data from multiple actors:
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const analyticsActor = actor({
state: { reports: [] },
@@ -118,7 +118,7 @@ const analyticsActor = actor({
Use connections to listen for events from other actors:
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const auditLogActor = actor({
state: { logs: [] },
diff --git a/site/src/content/docs/actors/connections.mdx b/site/src/content/docs/actors/connections.mdx
index 3bbbba255d..682213a59c 100644
--- a/site/src/content/docs/actors/connections.mdx
+++ b/site/src/content/docs/actors/connections.mdx
@@ -21,7 +21,7 @@ const gameRoom = await client.gameRoom.get({
```
```typescript {{"title":"actor.ts"}}
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const gameRoom = actor({
state: {},
@@ -57,7 +57,7 @@ There are two ways to define an actor's connection state:
Define connection state as a constant value:
```typescript
- import { actor } from "@rivetkit/actor";
+ import { actor } from "rivetkit";
const chatRoom = actor({
state: { messages: [] },
@@ -86,7 +86,7 @@ There are two ways to define an actor's connection state:
Create connection state dynamically with a function called for each connection:
```typescript
- import { actor } from "@rivetkit/actor";
+ import { actor } from "rivetkit";
const chatRoom = actor({
state: { messages: [] },
@@ -135,7 +135,7 @@ This is frequently used with `conn.send(name, event)` to send messages directly
For example:
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const chatRoom = actor({
state: { users: {} },
@@ -162,7 +162,7 @@ const chatRoom = actor({
Connections can be disconnected from within an action:
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const secureRoom = actor({
state: {},
diff --git a/site/src/content/docs/actors/ephemeral-variables.mdx b/site/src/content/docs/actors/ephemeral-variables.mdx
index 20f9506a53..9e31f7bb1b 100644
--- a/site/src/content/docs/actors/ephemeral-variables.mdx
+++ b/site/src/content/docs/actors/ephemeral-variables.mdx
@@ -15,7 +15,7 @@ There are two ways to define an actor's initial vars:
Define an actor vars as a constant value:
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
// Define vars as a constant
const counter = actor({
@@ -42,7 +42,7 @@ This value will be cloned for every new actor using `structuredClone`.
Create actor state dynamically on each actors' start:
```typescript
-import { actor, ActorInitContext } from "@rivetkit/actor";
+import { actor, ActorInitContext } from "rivetkit";
// Define vars with initialization logic
const counter = actor({
@@ -77,7 +77,7 @@ Otherwise, the return type will not be inferred and `c.vars` will be of type `un
Vars can be accessed and modified through the context object with `c.vars`:
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
import { createNanoEvents } from "nanoevents";
const counter = actor({
@@ -134,7 +134,7 @@ The `createVars` function receives a second parameter that provides access to dr
For example, the Redis driver exposes access to the Redis instance:
```typescript
-import { actor, ActorInitContext } from "@rivetkit/actor";
+import { actor, ActorInitContext } from "rivetkit";
import { DriverContext } from "@rivetkit/redis";
const myActor = actor({
diff --git a/site/src/content/docs/actors/events.mdx b/site/src/content/docs/actors/events.mdx
index ed5b3a5335..597b556fc8 100644
--- a/site/src/content/docs/actors/events.mdx
+++ b/site/src/content/docs/actors/events.mdx
@@ -11,7 +11,7 @@ Events work through persistent connections such as WebSocket or SSE.
Use `c.broadcast(eventName, data)` to send events to all connected clients:
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const chatRoom = actor({
state: {
@@ -43,7 +43,7 @@ const chatRoom = actor({
Send events to individual connections using `conn.send(eventName, data)`:
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const gameRoom = actor({
state: {
@@ -79,7 +79,7 @@ const gameRoom = actor({
Send events to all connections except the sender:
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const gameRoom = actor({
state: {
@@ -121,7 +121,7 @@ Use `connection.on(eventName, callback)` to listen for events:
```typescript {{"title":"TypeScript"}}
-import { createClient } from "@rivetkit/actor/client";
+import { createClient } from "rivetkit/client";
import type { registry } from "./registry";
const client = createClient("http://localhost:8080");
diff --git a/site/src/content/docs/actors/external-sql.mdx b/site/src/content/docs/actors/external-sql.mdx
index 56c8d5b16a..9cf36b027c 100644
--- a/site/src/content/docs/actors/external-sql.mdx
+++ b/site/src/content/docs/actors/external-sql.mdx
@@ -36,7 +36,7 @@ Here's a basic example of a user actor that creates a database record on start a
```typescript {{ "title": "registry.ts" }}
-import { actor, setup, ActorInitContext } from "@rivetkit/actor";
+import { actor, setup, ActorInitContext } from "rivetkit";
import { Pool } from "pg";
interface ActorInput {
@@ -106,7 +106,7 @@ export const registry = setup({
```
```typescript {{ "title": "client.ts" }}
-import { createClient } from "@rivetkit/actor/client";
+import { createClient } from "rivetkit/client";
import type { registry } from "./registry";
const client = createClient("http://localhost:8080");
@@ -140,7 +140,7 @@ Here's the same user actor pattern using Drizzle ORM for more type-safe database
```typescript {{ "title": "registry.ts" }}
-import { actor, setup, ActorInitContext } from "@rivetkit/actor";
+import { actor, setup, ActorInitContext } from "rivetkit";
import { drizzle } from "drizzle-orm/node-postgres";
import { pgTable, text, timestamp } from "drizzle-orm/pg-core";
import { eq } from "drizzle-orm";
@@ -222,7 +222,7 @@ export const registry = setup({
```
```typescript {{ "title": "client.ts" }}
-import { createClient } from "@rivetkit/actor/client";
+import { createClient } from "rivetkit/client";
import type { registry } from "./registry";
const client = createClient("http://localhost:8080");
diff --git a/site/src/content/docs/actors/helper-types.mdx b/site/src/content/docs/actors/helper-types.mdx
index 3e53f37588..e6fa5729a0 100644
--- a/site/src/content/docs/actors/helper-types.mdx
+++ b/site/src/content/docs/actors/helper-types.mdx
@@ -12,7 +12,7 @@ When working with actors, you often need to access the context object outside of
Extracts the full actor context type from an actor definition. This is the type of the context object (`c`) available in [lifecycle hooks](/docs/actors/lifecycle) and in [actions](/docs/actors/actions).
```typescript
-import { actor, ActorContextOf } from "@rivetkit/actor";
+import { actor, ActorContextOf } from "rivetkit";
const chatRoom = actor({
state: { messages: [] },
@@ -41,7 +41,7 @@ function logMessage(context: ActorContextOf, message: string) {
Extracts the action context type from an actor definition. This is the type of the context object (`c`) available in [actions](/docs/actors/actions). This cannot be used in [lifecycle hooks](/docs/actors/lifecycle).
```typescript
-import { actor, ActionContextOf } from "@rivetkit/actor";
+import { actor, ActionContextOf } from "rivetkit";
const counterWithProcessing = actor({
state: { count: 0 },
diff --git a/site/src/content/docs/actors/index.mdx b/site/src/content/docs/actors/index.mdx
index 9a7cf256d7..99cb18e52c 100644
--- a/site/src/content/docs/actors/index.mdx
+++ b/site/src/content/docs/actors/index.mdx
@@ -62,7 +62,7 @@ Actors are perfect for applications that need persistent state and real-time upd
Actors maintain persistent state that survives restarts, crashes, and deployments. State can be defined as a constant or created dynamically:
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const counter = actor({
state: { count: 0 },
@@ -85,7 +85,7 @@ Learn more about [state management](/docs/actors/state).
Actions are the primary way to interact with actors. They're type-safe functions that can modify state and communicate with clients:
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const chatRoom = actor({
state: { messages: [] as Array<{text: string, userId: string}> },
@@ -119,7 +119,7 @@ Actors support real-time bidirectional communication through WebSocket and SSE c
For example, to send events to all connected clients:
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const liveAuction = actor({
state: { currentBid: 0 },
@@ -154,7 +154,7 @@ Learn more about [events](/docs/actors/events) and [client communication](/docs/
Actors support scheduled tasks and lifecycle management:
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const reminder = actor({
state: { message: "" },
diff --git a/site/src/content/docs/actors/keys.mdx b/site/src/content/docs/actors/keys.mdx
index 86c4db13c7..c21fc06091 100644
--- a/site/src/content/docs/actors/keys.mdx
+++ b/site/src/content/docs/actors/keys.mdx
@@ -79,7 +79,7 @@ export const registry = setup({
```
```typescript {{"title":"client.ts"}}
-import { createClient } from "@rivetkit/actor/client";
+import { createClient } from "rivetkit/client";
import type { registry } from "./registry";
const client = createClient("http://localhost:8080");
@@ -128,7 +128,7 @@ export const registry = setup({
```
```typescript {{"title":"client.ts"}}
-import { createClient } from "@rivetkit/actor/client";
+import { createClient } from "rivetkit/client";
import type { registry } from "./registry";
const client = createClient("http://localhost:8080");
@@ -144,7 +144,7 @@ const userSession = client.userSession.getOrCreate([userId]);
For more complex configuration, use [input parameters](/docs/actors/input):
```typescript {{"title":"client.ts"}}
-import { createClient } from "@rivetkit/actor/client";
+import { createClient } from "rivetkit/client";
import type { registry } from "./registry";
const client = createClient("http://localhost:8080");
diff --git a/site/src/content/docs/actors/lifecycle.mdx b/site/src/content/docs/actors/lifecycle.mdx
index e0babd2b24..dbc65d1743 100644
--- a/site/src/content/docs/actors/lifecycle.mdx
+++ b/site/src/content/docs/actors/lifecycle.mdx
@@ -22,7 +22,7 @@ The `createVars` function or `vars` constant defines ephemeral variables for the
The `createVars` function can also receive driver-specific context as its second parameter, allowing access to driver capabilities like Rivet KV or Cloudflare Durable Object storage.
```typescript
-import { actor, ActorInitContext } from "@rivetkit/actor";
+import { actor, ActorInitContext } from "rivetkit";
// In this example, assume we're using Redis
import type { DriverContext } from "@rivetkit/redis";
@@ -67,7 +67,7 @@ const exampleActor = actor({
The `onCreate` hook is called at the same time as `createState`, but unlike `createState`, it doesn't return any value. Use this hook for initialization logic that doesn't affect the initial state.
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
// Using state constant
const counter1 = actor({
@@ -112,7 +112,7 @@ This is called after the actor has been initialized but before any connections a
Use this hook to set up any resources or start any background tasks, such as `setInterval`.
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const counter = actor({
state: { count: 0 },
@@ -150,7 +150,7 @@ const counter = actor({
Called whenever the actor's state changes. This is often used to broadcast state updates.
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const counter = actor({
state: { count: 0 },
@@ -188,7 +188,7 @@ The `onBeforeConnect` hook is called whenever a new client connects to the actor
The `onBeforeConnect` hook does NOT return connection state - it's used solely for validation.
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const chatRoom = actor({
state: { messages: [] },
@@ -233,7 +233,7 @@ Connections cannot interact with the actor until this method completes successfu
Executed after the client has successfully connected.
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const chatRoom = actor({
state: { users: {}, messages: [] },
@@ -265,7 +265,7 @@ Messages will not be processed for this actor until this hook succeeds. Errors t
Called when a client disconnects from the actor. Use this to clean up any connection-specific resources.
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const chatRoom = actor({
state: { users: {}, messages: [] },
@@ -293,7 +293,7 @@ const chatRoom = actor({
The `onFetch` hook handles HTTP requests sent to your actor. It receives the actor context and a standard `Request` object, and should return a `Response` object or `void` to continue default routing.
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const apiActor = actor({
state: { requestCount: 0 },
@@ -324,7 +324,7 @@ const apiActor = actor({
The `onWebSocket` hook handles WebSocket connections to your actor. It receives the actor context, a `WebSocket` object, and the initial `Request`. Use this to set up WebSocket event listeners and handle real-time communication.
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const realtimeActor = actor({
state: { connectionCount: 0 },
@@ -367,7 +367,7 @@ The `onAuth` hook is called on the HTTP server before clients can interact with
This hook runs on the HTTP server (not the actor) to reduce load and prevent denial of service attacks against individual actors. Only called for public endpoints - calls to actors from within the backend do not trigger this handler.
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const secureActor = actor({
// Authentication handler - runs on HTTP server
@@ -426,7 +426,7 @@ const secureActor = actor({
The `onBeforeActionResponse` hook is called before sending an action response to the client. Use this hook to modify or transform the output of an action before it's sent to the client. This is useful for formatting responses, adding metadata, or applying transformations to the output.
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const loggingActor = actor({
state: { requestCount: 0 },
@@ -486,7 +486,7 @@ Common use cases:
- **State sync**: Populate external databases or APIs with updates to actor state in the background
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const gameRoom = actor({
state: { players: {}, scores: {} },
@@ -519,7 +519,7 @@ const gameRoom = actor({
When extracting logic from lifecycle hooks or actions into external functions, you'll often need to define the type of the context parameter. Rivet provides helper types that make it easy to extract and pass these context types to external functions.
```typescript
-import { actor, ActorContextOf } from "@rivetkit/actor";
+import { actor, ActorContextOf } from "rivetkit";
const myActor = actor({
state: { count: 0 },
@@ -539,7 +539,7 @@ See [Helper Types](/docs/actors/helper-types) for more details on using `ActorCo
## Full Example
```typescript
-import { actor, ActorInitContext } from "@rivetkit/actor";
+import { actor, ActorInitContext } from "rivetkit";
import { z } from "zod";
interface CounterInput {
diff --git a/site/src/content/docs/actors/metadata.mdx b/site/src/content/docs/actors/metadata.mdx
index ef7317f784..63962742d5 100644
--- a/site/src/content/docs/actors/metadata.mdx
+++ b/site/src/content/docs/actors/metadata.mdx
@@ -47,7 +47,7 @@ const region = c.region;
```typescript {{"title":"registry.ts"}}
-import { actor, setup } from "@rivetkit/actor";
+import { actor, setup } from "rivetkit";
const chatRoom = actor({
state: {
@@ -73,7 +73,7 @@ export const registry = setup({
```
```typescript {{"title":"client.ts"}}
-import { createClient } from "@rivetkit/actor/client";
+import { createClient } from "rivetkit/client";
import type { registry } from "./registry";
const client = createClient("http://localhost:8080");
diff --git a/site/src/content/docs/actors/quickstart/backend.mdx b/site/src/content/docs/actors/quickstart/backend.mdx
index 02954bae8e..5056d4870b 100644
--- a/site/src/content/docs/actors/quickstart/backend.mdx
+++ b/site/src/content/docs/actors/quickstart/backend.mdx
@@ -8,7 +8,7 @@ Get started with Rivet Actors in Node.js and Bun
```sh
-npm install @rivetkit/actor
+npm install rivetkit
```
@@ -18,7 +18,7 @@ npm install @rivetkit/actor
Create a simple counter actor:
```ts {{"title":"registry.ts"}}
-import { actor, setup } from "@rivetkit/actor";
+import { actor, setup } from "rivetkit";
export const counter = actor({
state: { count: 0 },
@@ -192,7 +192,7 @@ Create a type-safe client to connect from your frontend:
```ts {{"title":"client.ts"}}
-import { createClient } from "@rivetkit/actor/client";
+import { createClient } from "rivetkit/client";
import type { registry } from "./registry";
// Create typed client
diff --git a/site/src/content/docs/actors/quickstart/next-js.mdx b/site/src/content/docs/actors/quickstart/next-js.mdx
index a67df4c7ae..20bc905fab 100644
--- a/site/src/content/docs/actors/quickstart/next-js.mdx
+++ b/site/src/content/docs/actors/quickstart/next-js.mdx
@@ -17,7 +17,7 @@ cd my-app
-
+
@@ -26,7 +26,7 @@ cd my-app
Create a simple counter actor:
```ts {{"title":"src/rivet/registry.ts"}}
-import { actor, setup } from "@rivetkit/actor";
+import { actor, setup } from "rivetkit";
export const counter = actor({
state: { count: 0 },
diff --git a/site/src/content/docs/actors/quickstart/react.mdx b/site/src/content/docs/actors/quickstart/react.mdx
index f845c4cf13..e3dccc971d 100644
--- a/site/src/content/docs/actors/quickstart/react.mdx
+++ b/site/src/content/docs/actors/quickstart/react.mdx
@@ -8,7 +8,7 @@ Build real-time React applications with Rivet Actors
```sh
-npm install @rivetkit/actor @rivetkit/react
+npm install rivetkit @rivetkit/react
```
@@ -18,7 +18,7 @@ npm install @rivetkit/actor @rivetkit/react
Create your actor registry on the backend:
```ts {{"title":"backend/registry.ts"}}
-import { actor, setup } from "@rivetkit/actor";
+import { actor, setup } from "rivetkit";
export const counter = actor({
onAuth: () => {}, // Skip authentication (can be configured later)
diff --git a/site/src/content/docs/actors/schedule.mdx b/site/src/content/docs/actors/schedule.mdx
index 9e36603c4b..d5181eae39 100644
--- a/site/src/content/docs/actors/schedule.mdx
+++ b/site/src/content/docs/actors/schedule.mdx
@@ -37,7 +37,7 @@ Parameters:
## Full Example
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const reminderService = actor({
state: {
diff --git a/site/src/content/docs/actors/state.mdx b/site/src/content/docs/actors/state.mdx
index 33eac8b92c..baa1414342 100644
--- a/site/src/content/docs/actors/state.mdx
+++ b/site/src/content/docs/actors/state.mdx
@@ -18,7 +18,7 @@ There are two ways to define an actor's initial state:
Define an actor state as a constant value:
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
// Simple state with a constant
const counter = actor({
@@ -40,7 +40,7 @@ This value will be cloned for every new actor using `structuredClone`.
Create actor state dynamically on each actors' creation:
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
// State with initialization logic
const counter = actor({
@@ -58,7 +58,7 @@ const counter = actor({
To accept a custom input parameters for the initial state, use:
```typescript
-import { actor, ActorInitContext } from "@rivetkit/actor";
+import { actor, ActorInitContext } from "rivetkit";
interface CounterInput {
startingCount: number;
@@ -96,7 +96,7 @@ The `createState` function is called once when the actor is first created. See [
To update state, modify the `state` property on the context object (`c.state`) in your actions:
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const counter = actor({
state: { count: 0 },
@@ -128,7 +128,7 @@ For `onWebSocket` handlers specifically, you'll need to manually save state usin
In other cases where you need to force a state change mid-action, you can use `c.saveState()`. This should only be used if your action makes an important state change that needs to be persisted before the action completes.
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const criticalProcess = actor({
state: {
diff --git a/site/src/content/docs/actors/testing.mdx b/site/src/content/docs/actors/testing.mdx
index d018decdad..50fee27160 100644
--- a/site/src/content/docs/actors/testing.mdx
+++ b/site/src/content/docs/actors/testing.mdx
@@ -40,7 +40,7 @@ test("my actor test", async (test) => {
```
```ts src/index.ts
-import { actor, setup } from "@rivetkit/actor";
+import { actor, setup } from "rivetkit";
const myActor = actor({
state: { value: "initial" },
@@ -87,7 +87,7 @@ test("actor should persist state", async (test) => {
```
```ts src/index.ts
-import { setup } from "@rivetkit/actor";
+import { setup } from "rivetkit";
const counter = actor({
state: { count: 0 },
@@ -138,7 +138,7 @@ test("actor should emit events", async (test) => {
```
```ts src/index.ts
-import { actor, setup } from "@rivetkit/actor";
+import { actor, setup } from "rivetkit";
export const chatRoom = actor({
state: {
@@ -189,7 +189,7 @@ test("scheduled tasks should execute", async (test) => {
```
```ts src/index.ts
-import { actor, setup } from "@rivetkit/actor";
+import { actor, setup } from "rivetkit";
const scheduler = actor({
state: {
diff --git a/site/src/content/docs/clients/javascript.mdx b/site/src/content/docs/clients/javascript.mdx
index 8ccd0d1171..ecf9b183b1 100644
--- a/site/src/content/docs/clients/javascript.mdx
+++ b/site/src/content/docs/clients/javascript.mdx
@@ -10,7 +10,7 @@ The Rivet JavaScript client allows you to connect to and interact with actors fr
Install the RivetKit package:
-
+
@@ -22,7 +22,7 @@ Install the RivetKit package:
Create client and connect to actors and listen for real-time updates:
```tsx {{"title":"index.ts"}}
-import { createClient } from "@rivetkit/actor/client";
+import { createClient } from "rivetkit/client";
import type { Registry } from "../src/registry";
async function main() {
diff --git a/site/src/content/docs/clients/next-js.mdx b/site/src/content/docs/clients/next-js.mdx
index b6607241e3..8cba0282b9 100644
--- a/site/src/content/docs/clients/next-js.mdx
+++ b/site/src/content/docs/clients/next-js.mdx
@@ -21,7 +21,7 @@ The Rivet Next.js client allows you to connect to and interact with actors in Ne
Install the RivetKit React package:
-
+
diff --git a/site/src/content/docs/clients/react.mdx b/site/src/content/docs/clients/react.mdx
index fe9c755910..ca16582fc4 100644
--- a/site/src/content/docs/clients/react.mdx
+++ b/site/src/content/docs/clients/react.mdx
@@ -11,7 +11,7 @@ Learn how to create real-time, stateful React applications with Rivet's actor mo
Install the RivetKit React package:
-
+
diff --git a/site/src/content/docs/drivers/file-system.mdx b/site/src/content/docs/drivers/file-system.mdx
index b555377a23..4b2c7b31ea 100644
--- a/site/src/content/docs/drivers/file-system.mdx
+++ b/site/src/content/docs/drivers/file-system.mdx
@@ -21,10 +21,10 @@ The File System driver is ideal for development and single-node deployments. For
-The File System driver is included with `@rivetkit/actor` - no additional packages needed:
+The File System driver is included with `rivetkit` - no additional packages needed:
```bash
-npm install @rivetkit/actor
+npm install rivetkit
```
@@ -37,7 +37,7 @@ npm install @rivetkit/actor
Use the default configuration with automatic path based on your current working directory:
```typescript {{"title":"server.ts"}}
-import { createFileSystemDriver } from "@rivetkit/actor";
+import { createFileSystemDriver } from "rivetkit";
import { registry } from "./registry";
const driver = createFileSystemDriver();
@@ -55,7 +55,7 @@ The default path is stored in your system's data path. The path is unique to the
Specify a custom path for actor storage:
```typescript {{"title":"server.ts"}}
-import { createFileSystemDriver } from "@rivetkit/actor";
+import { createFileSystemDriver } from "rivetkit";
import { registry } from "./registry";
const driver = createFileSystemDriver({
diff --git a/site/src/content/docs/drivers/memory.mdx b/site/src/content/docs/drivers/memory.mdx
index 4eb4e6fa65..dca058817d 100644
--- a/site/src/content/docs/drivers/memory.mdx
+++ b/site/src/content/docs/drivers/memory.mdx
@@ -21,10 +21,10 @@ The Memory driver does not persist data between server restarts. For production
-The Memory driver is included with `@rivetkit/actor` - no additional packages needed:
+The Memory driver is included with `rivetkit` - no additional packages needed:
```bash
-npm install @rivetkit/actor
+npm install rivetkit
```
@@ -34,7 +34,7 @@ npm install @rivetkit/actor
Create and use the Memory driver:
```typescript {{"title":"server.ts"}}
-import { createMemoryDriver } from "@rivetkit/actor";
+import { createMemoryDriver } from "rivetkit";
import { registry } from "./registry";
const driver = createMemoryDriver();
diff --git a/site/src/content/docs/drivers/redis.mdx b/site/src/content/docs/drivers/redis.mdx
index 5523e9b65f..647e81ba1d 100644
--- a/site/src/content/docs/drivers/redis.mdx
+++ b/site/src/content/docs/drivers/redis.mdx
@@ -137,7 +137,7 @@ Basic Redis driver setup and configuration example.
The Redis driver provides access to the underlying Redis connection through the driver context in `createVars`.
```typescript
-import { actor, ActorInitContext } from "@rivetkit/actor";
+import { actor, ActorInitContext } from "rivetkit";
import type { DriverContext } from "@rivetkit/redis";
const myActor = actor({
diff --git a/site/src/content/docs/general/cors.mdx b/site/src/content/docs/general/cors.mdx
index 82d1936726..db88c38d91 100644
--- a/site/src/content/docs/general/cors.mdx
+++ b/site/src/content/docs/general/cors.mdx
@@ -116,7 +116,7 @@ For applications that need to expose their own routes, configure CORS at the rou
import { registry } from "./registry";
import { Hono } from "hono";
import { cors } from "hono/cors";
-import { ALLOWED_PUBLIC_HEADERS } from "@rivetkit/actor";
+import { ALLOWED_PUBLIC_HEADERS } from "rivetkit";
const { serve } = registry.createServer();
const app = new Hono();
@@ -136,7 +136,7 @@ serve(app);
```typescript {{"title":"Express"}}
import express from "express";
import cors from "cors";
-import { ALLOWED_PUBLIC_HEADERS } from "@rivetkit/actor";
+import { ALLOWED_PUBLIC_HEADERS } from "rivetkit";
import { registry } from "./registry";
const { handler } = registry.createServer();
@@ -163,7 +163,7 @@ app.listen(8080);
Rivet requires specific headers for communication. Always include `ALLOWED_PUBLIC_HEADERS`:
```typescript {{"title":"server.ts"}}
-import { ALLOWED_PUBLIC_HEADERS } from "@rivetkit/actor";
+import { ALLOWED_PUBLIC_HEADERS } from "rivetkit";
const corsConfig = {
allowHeaders: [
diff --git a/site/src/content/docs/general/edge.mdx b/site/src/content/docs/general/edge.mdx
index aa7258c1ff..f3baa161cd 100644
--- a/site/src/content/docs/general/edge.mdx
+++ b/site/src/content/docs/general/edge.mdx
@@ -19,7 +19,7 @@ Under the hood, Rivet and Cloudflare use [Anycast routing](https://en.wikipedia.
The region an actor is created in can be overridden using region options:
```typescript client.ts
-import { createClient } from "@rivetkit/actors/client";
+import { createClient } from "rivetkits/client";
import type { registry } from "./src/index";
const client = createClient(/* endpoint */);
diff --git a/site/src/content/docs/general/registry.mdx b/site/src/content/docs/general/registry.mdx
index a7ea1f84e3..605490ae71 100644
--- a/site/src/content/docs/general/registry.mdx
+++ b/site/src/content/docs/general/registry.mdx
@@ -9,7 +9,7 @@ The registry is the central configuration hub for your Rivet application. It def
Create a registry by importing your actors and using the `setup` function:
```typescript
-import { setup } from "@rivetkit/actor";
+import { setup } from "rivetkit";
import { counterActor } from "./actors/counter";
import { chatRoomActor } from "./actors/chat-room";
@@ -232,7 +232,7 @@ export { chatRoomActor } from "./chat-room";
export { gameActor } from "./game";
// registry.ts - Import and configure
-import { setup } from "@rivetkit/actor";
+import { setup } from "rivetkit";
import * as actors from "./actors";
export const registry = setup({
diff --git a/site/src/content/docs/hosting-providers/cloudflare-workers.mdx b/site/src/content/docs/hosting-providers/cloudflare-workers.mdx
index 8f1c7834b1..03b6549bb4 100644
--- a/site/src/content/docs/hosting-providers/cloudflare-workers.mdx
+++ b/site/src/content/docs/hosting-providers/cloudflare-workers.mdx
@@ -176,7 +176,7 @@ const myActor = actor({
The Cloudflare Workers driver provides access to the Durable Object state and environment through the driver context in `createVars`.
```typescript
-import { actor, ActorInitContext } from "@rivetkit/actor";
+import { actor, ActorInitContext } from "rivetkit";
import type { DriverContext } from "@rivetkit/cloudflare-workers";
const myActor = actor({
diff --git a/site/src/content/docs/integrations/better-auth.mdx b/site/src/content/docs/integrations/better-auth.mdx
index 64c48bc3bb..d61451c159 100644
--- a/site/src/content/docs/integrations/better-auth.mdx
+++ b/site/src/content/docs/integrations/better-auth.mdx
@@ -62,8 +62,8 @@ pnpm dlx @better-auth/cli@latest migrate --config auth.ts -y
Use the `onAuth` hook to validate sessions:
```typescript registry.ts
-import { actor, setup } from "@rivetkit/actor";
-import { Unauthorized } from "@rivetkit/actor/errors";
+import { actor, setup } from "rivetkit";
+import { Unauthorized } from "rivetkit/errors";
import { auth } from "./auth";
export const chatRoom = actor({
@@ -132,7 +132,7 @@ import { registry } from "./registry";
import { auth } from "./auth";
import { Hono } from "hono";
import { cors } from "hono/cors";
-import { ALLOWED_PUBLIC_HEADERS } from "@rivetkit/actor";
+import { ALLOWED_PUBLIC_HEADERS } from "rivetkit";
const { serve } = registry.createServer();
const app = new Hono();
diff --git a/site/src/content/docs/integrations/elysia.mdx b/site/src/content/docs/integrations/elysia.mdx
index 9c0d59a404..bf4bc576c4 100644
--- a/site/src/content/docs/integrations/elysia.mdx
+++ b/site/src/content/docs/integrations/elysia.mdx
@@ -28,7 +28,7 @@ Set up your Rivet Actors:
```typescript
// registry.ts
-import { actor, setup } from "@rivetkit/actor";
+import { actor, setup } from "rivetkit";
export const counter = actor({
state: { count: 0 },
diff --git a/site/src/content/docs/integrations/express.mdx b/site/src/content/docs/integrations/express.mdx
index 13a76ec056..d6fee07691 100644
--- a/site/src/content/docs/integrations/express.mdx
+++ b/site/src/content/docs/integrations/express.mdx
@@ -27,7 +27,7 @@ Set up your Rivet Actor:
```typescript
// registry.ts
-import { actor, setup } from "@rivetkit/actor";
+import { actor, setup } from "rivetkit";
export const counter = actor({
state: { count: 0 },
diff --git a/site/src/content/docs/integrations/hono.mdx b/site/src/content/docs/integrations/hono.mdx
index c99d7ffa22..ee387fa9c1 100644
--- a/site/src/content/docs/integrations/hono.mdx
+++ b/site/src/content/docs/integrations/hono.mdx
@@ -26,7 +26,7 @@ Set up your Rivet Actor:
```typescript
// registry.ts
-import { actor, setup } from "@rivetkit/actor";
+import { actor, setup } from "rivetkit";
export const counter = actor({
state: { count: 0 },
diff --git a/site/src/content/docs/integrations/next-js.mdx b/site/src/content/docs/integrations/next-js.mdx
index fc427c4076..e99655e825 100644
--- a/site/src/content/docs/integrations/next-js.mdx
+++ b/site/src/content/docs/integrations/next-js.mdx
@@ -21,7 +21,7 @@ Next.js is a powerful React framework that allows you to build server-rendered a
Install the RivetKit Next.js package:
-
+
@@ -30,7 +30,7 @@ Install the RivetKit Next.js package:
Create a simple counter actor:
```ts {{"title":"src/rivet/registry.ts"}}
-import { actor, setup } from "@rivetkit/actor";
+import { actor, setup } from "rivetkit";
export const counter = actor({
state: { count: 0 },
@@ -80,7 +80,7 @@ export const { GET, POST, HEAD, PATCH, OPTIONS } = toNextHandler(server);
Converts a RivetKit server to a Next.js handler for API routes.
```ts
-import { actor, setup } from "@rivetkit/actor";
+import { actor, setup } from "rivetkit";
import { toNextHandler } from "@rivetkit/next-js";
const counter = actor({
diff --git a/site/src/content/docs/integrations/trpc.mdx b/site/src/content/docs/integrations/trpc.mdx
index 21a7ab8612..0a7d0696bb 100644
--- a/site/src/content/docs/integrations/trpc.mdx
+++ b/site/src/content/docs/integrations/trpc.mdx
@@ -27,7 +27,7 @@ Set up your Rivet Actors:
```typescript
// registry.ts
-import { actor, setup } from "@rivetkit/actor";
+import { actor, setup } from "rivetkit";
export const counter = actor({
state: { count: 0 },
diff --git a/site/src/data/examples/examples.ts b/site/src/data/examples/examples.ts
index 5aae9e7013..ebfb8cc136 100644
--- a/site/src/data/examples/examples.ts
+++ b/site/src/data/examples/examples.ts
@@ -23,17 +23,17 @@ export const examples: ExampleData[] = [
],
"tab": "memory",
"files": {
- "tests/ai-agent.test.ts": "import { setupTest } from \"@rivetkit/actor/test\";\nimport { expect, test, vi } from \"vitest\";\nimport { registry } from \"../src/backend/registry\";\n\n// Mock the AI SDK and OpenAI\nvi.mock(\"@ai-sdk/openai\", () => ({\n\topenai: () => \"mock-model\",\n}));\n\nvi.mock(\"ai\", () => ({\n\tgenerateText: vi.fn().mockImplementation(async ({ prompt }) => ({\n\t\ttext: `AI response to: ${prompt}`,\n\t})),\n\ttool: vi.fn().mockImplementation(({ execute }) => ({ execute })),\n}));\n\nvi.mock(\"../src/backend/my-utils\", () => ({\n\tgetWeather: vi.fn().mockResolvedValue({\n\t\tlocation: \"San Francisco\",\n\t\ttemperature: 72,\n\t\tcondition: \"sunny\",\n\t}),\n}));\n\ntest(\"AI Agent can handle basic actions without connection\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst agent = client.aiAgent.getOrCreate([\"test-basic\"]);\n\n\t// Test initial state\n\tconst initialMessages = await agent.getMessages();\n\texpect(initialMessages).toEqual([]);\n\n\t// Send a message\n\tconst userMessage = \"Hello, how are you?\";\n\tconst response = await agent.sendMessage(userMessage);\n\n\t// Verify response structure\n\texpect(response).toMatchObject({\n\t\trole: \"assistant\",\n\t\tcontent: expect.stringContaining(\"AI response to: Hello, how are you?\"),\n\t\ttimestamp: expect.any(Number),\n\t});\n\n\t// Verify messages are stored\n\tconst messages = await agent.getMessages();\n\texpect(messages).toHaveLength(2);\n\texpect(messages[0]).toMatchObject({\n\t\trole: \"user\",\n\t\tcontent: userMessage,\n\t\ttimestamp: expect.any(Number),\n\t});\n\texpect(messages[1]).toEqual(response);\n});\n\ntest(\"AI Agent maintains conversation history\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst agent = client.aiAgent.getOrCreate([\"test-history\"]);\n\n\t// Send multiple messages\n\tawait agent.sendMessage(\"First message\");\n\tawait agent.sendMessage(\"Second message\");\n\tawait agent.sendMessage(\"Third message\");\n\n\tconst messages = await agent.getMessages();\n\texpect(messages).toHaveLength(6); // 3 user + 3 assistant messages\n\n\t// Verify message ordering and roles\n\texpect(messages[0].role).toBe(\"user\");\n\texpect(messages[0].content).toBe(\"First message\");\n\texpect(messages[1].role).toBe(\"assistant\");\n\texpect(messages[2].role).toBe(\"user\");\n\texpect(messages[2].content).toBe(\"Second message\");\n\texpect(messages[3].role).toBe(\"assistant\");\n\texpect(messages[4].role).toBe(\"user\");\n\texpect(messages[4].content).toBe(\"Third message\");\n\texpect(messages[5].role).toBe(\"assistant\");\n});\n\ntest(\"AI Agent handles weather tool usage\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst agent = client.aiAgent.getOrCreate([\"test-weather\"]);\n\n\t// Send a weather-related message\n\tconst response = await agent.sendMessage(\n\t\t\"What's the weather in San Francisco?\",\n\t);\n\n\t// Verify response was generated\n\texpect(response.role).toBe(\"assistant\");\n\texpect(response.content).toContain(\n\t\t\"AI response to: What's the weather in San Francisco?\",\n\t);\n\texpect(response.timestamp).toBeGreaterThan(0);\n\n\t// Verify message history includes both user and assistant messages\n\tconst messages = await agent.getMessages();\n\texpect(messages).toHaveLength(2);\n\texpect(messages[0].content).toBe(\"What's the weather in San Francisco?\");\n\texpect(messages[1]).toEqual(response);\n});\n\ntest(\"AI Agent timestamps are sequential\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst agent = client.aiAgent.getOrCreate([\"test-timestamps\"]);\n\n\tconst response1 = await agent.sendMessage(\"First\");\n\tconst response2 = await agent.sendMessage(\"Second\");\n\n\texpect(response2.timestamp).toBeGreaterThanOrEqual(response1.timestamp);\n\n\tconst messages = await agent.getMessages();\n\tfor (let i = 1; i < messages.length; i++) {\n\t\texpect(messages[i].timestamp).toBeGreaterThanOrEqual(\n\t\t\tmessages[i - 1].timestamp,\n\t\t);\n\t}\n});\n",
+ "tests/ai-agent.test.ts": "import { setupTest } from \"rivetkit/test\";\nimport { expect, test, vi } from \"vitest\";\nimport { registry } from \"../src/backend/registry\";\n\n// Mock the AI SDK and OpenAI\nvi.mock(\"@ai-sdk/openai\", () => ({\n\topenai: () => \"mock-model\",\n}));\n\nvi.mock(\"ai\", () => ({\n\tgenerateText: vi.fn().mockImplementation(async ({ prompt }) => ({\n\t\ttext: `AI response to: ${prompt}`,\n\t})),\n\ttool: vi.fn().mockImplementation(({ execute }) => ({ execute })),\n}));\n\nvi.mock(\"../src/backend/my-utils\", () => ({\n\tgetWeather: vi.fn().mockResolvedValue({\n\t\tlocation: \"San Francisco\",\n\t\ttemperature: 72,\n\t\tcondition: \"sunny\",\n\t}),\n}));\n\ntest(\"AI Agent can handle basic actions without connection\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst agent = client.aiAgent.getOrCreate([\"test-basic\"]);\n\n\t// Test initial state\n\tconst initialMessages = await agent.getMessages();\n\texpect(initialMessages).toEqual([]);\n\n\t// Send a message\n\tconst userMessage = \"Hello, how are you?\";\n\tconst response = await agent.sendMessage(userMessage);\n\n\t// Verify response structure\n\texpect(response).toMatchObject({\n\t\trole: \"assistant\",\n\t\tcontent: expect.stringContaining(\"AI response to: Hello, how are you?\"),\n\t\ttimestamp: expect.any(Number),\n\t});\n\n\t// Verify messages are stored\n\tconst messages = await agent.getMessages();\n\texpect(messages).toHaveLength(2);\n\texpect(messages[0]).toMatchObject({\n\t\trole: \"user\",\n\t\tcontent: userMessage,\n\t\ttimestamp: expect.any(Number),\n\t});\n\texpect(messages[1]).toEqual(response);\n});\n\ntest(\"AI Agent maintains conversation history\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst agent = client.aiAgent.getOrCreate([\"test-history\"]);\n\n\t// Send multiple messages\n\tawait agent.sendMessage(\"First message\");\n\tawait agent.sendMessage(\"Second message\");\n\tawait agent.sendMessage(\"Third message\");\n\n\tconst messages = await agent.getMessages();\n\texpect(messages).toHaveLength(6); // 3 user + 3 assistant messages\n\n\t// Verify message ordering and roles\n\texpect(messages[0].role).toBe(\"user\");\n\texpect(messages[0].content).toBe(\"First message\");\n\texpect(messages[1].role).toBe(\"assistant\");\n\texpect(messages[2].role).toBe(\"user\");\n\texpect(messages[2].content).toBe(\"Second message\");\n\texpect(messages[3].role).toBe(\"assistant\");\n\texpect(messages[4].role).toBe(\"user\");\n\texpect(messages[4].content).toBe(\"Third message\");\n\texpect(messages[5].role).toBe(\"assistant\");\n});\n\ntest(\"AI Agent handles weather tool usage\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst agent = client.aiAgent.getOrCreate([\"test-weather\"]);\n\n\t// Send a weather-related message\n\tconst response = await agent.sendMessage(\n\t\t\"What's the weather in San Francisco?\",\n\t);\n\n\t// Verify response was generated\n\texpect(response.role).toBe(\"assistant\");\n\texpect(response.content).toContain(\n\t\t\"AI response to: What's the weather in San Francisco?\",\n\t);\n\texpect(response.timestamp).toBeGreaterThan(0);\n\n\t// Verify message history includes both user and assistant messages\n\tconst messages = await agent.getMessages();\n\texpect(messages).toHaveLength(2);\n\texpect(messages[0].content).toBe(\"What's the weather in San Francisco?\");\n\texpect(messages[1]).toEqual(response);\n});\n\ntest(\"AI Agent timestamps are sequential\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst agent = client.aiAgent.getOrCreate([\"test-timestamps\"]);\n\n\tconst response1 = await agent.sendMessage(\"First\");\n\tconst response2 = await agent.sendMessage(\"Second\");\n\n\texpect(response2.timestamp).toBeGreaterThanOrEqual(response1.timestamp);\n\n\tconst messages = await agent.getMessages();\n\tfor (let i = 1; i < messages.length; i++) {\n\t\texpect(messages[i].timestamp).toBeGreaterThanOrEqual(\n\t\t\tmessages[i - 1].timestamp,\n\t\t);\n\t}\n});\n",
"README.md": "# AI Agent Chat for RivetKit\n\nExample project demonstrating AI agent integration with [RivetKit](https://rivetkit.org).\n\n[Learn More →](https://github.com/rivet-gg/rivetkit)\n\n[Discord](https://rivet.gg/discord) — [Documentation](https://rivetkit.org) — [Issues](https://github.com/rivet-gg/rivetkit/issues)\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 18+\n- OpenAI API key\n\n### Installation\n\n```sh\ngit clone https://github.com/rivet-gg/rivetkit\ncd rivetkit/examples/ai-agent\nnpm install\n```\n\n### Development\n\n1. Set your OpenAI API key:\n```sh\nexport OPENAI_API_KEY=your-api-key-here\n```\n\n2. Start the development server:\n```sh\nnpm run dev\n```\n\n3. Open your browser to `http://localhost:3000`\n\n## License\n\nApache 2.0",
- "package-lock.json": "{\n \"name\": \"example-ai-agent\",\n \"version\": \"0.9.1\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n \"name\": \"example-ai-agent\",\n \"version\": \"0.9.1\",\n \"dependencies\": {\n \"@ai-sdk/openai\": \"^0.0.66\",\n \"@rivetkit/react\": \"^0.9.1\",\n \"ai\": \"^4.0.38\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\",\n \"zod\": \"^3.25.69\"\n },\n \"devDependencies\": {\n \"@rivetkit/actor\": \"^0.9.1\",\n \"@types/node\": \"^22.13.9\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"concurrently\": \"^8.2.2\",\n \"tsx\": \"^3.12.7\",\n \"typescript\": \"^5.5.2\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^3.1.1\"\n }\n },\n \"node_modules/@ai-sdk/openai\": {\n \"version\": \"0.0.66\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/openai/-/openai-0.0.66.tgz\",\n \"integrity\": \"sha512-V4XeDnlNl5/AY3GB3ozJUjqnBLU5pK3DacKTbCNH3zH8/MggJoH6B8wRGdLUPVFMcsMz60mtvh4DC9JsIVFrKw==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@ai-sdk/provider\": \"0.0.24\",\n \"@ai-sdk/provider-utils\": \"1.0.20\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"peerDependencies\": {\n \"zod\": \"^3.0.0\"\n }\n },\n \"node_modules/@ai-sdk/provider\": {\n \"version\": \"0.0.24\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/provider/-/provider-0.0.24.tgz\",\n \"integrity\": \"sha512-XMsNGJdGO+L0cxhhegtqZ8+T6nn4EoShS819OvCgI2kLbYTIvk0GWFGD0AXJmxkxs3DrpsJxKAFukFR7bvTkgQ==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"json-schema\": \"0.4.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@ai-sdk/provider-utils\": {\n \"version\": \"1.0.20\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-1.0.20.tgz\",\n \"integrity\": \"sha512-ngg/RGpnA00eNOWEtXHenpX1MsM2QshQh4QJFjUfwcqHpM5kTfG7je7Rc3HcEDP+OkRVv2GF+X4fC1Vfcnl8Ow==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@ai-sdk/provider\": \"0.0.24\",\n \"eventsource-parser\": \"1.1.2\",\n \"nanoid\": \"3.3.6\",\n \"secure-json-parse\": \"2.7.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"peerDependencies\": {\n \"zod\": \"^3.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"zod\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@ai-sdk/react\": {\n \"version\": \"1.2.12\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/react/-/react-1.2.12.tgz\",\n \"integrity\": \"sha512-jK1IZZ22evPZoQW3vlkZ7wvjYGYF+tRBKXtrcolduIkQ/m/sOAVcVeVDUDvh1T91xCnWCdUGCPZg2avZ90mv3g==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@ai-sdk/provider-utils\": \"2.2.8\",\n \"@ai-sdk/ui-utils\": \"1.2.11\",\n \"swr\": \"^2.2.5\",\n \"throttleit\": \"2.1.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"peerDependencies\": {\n \"react\": \"^18 || ^19 || ^19.0.0-rc\",\n \"zod\": \"^3.23.8\"\n },\n \"peerDependenciesMeta\": {\n \"zod\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@ai-sdk/react/node_modules/@ai-sdk/provider\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/provider/-/provider-1.1.3.tgz\",\n \"integrity\": \"sha512-qZMxYJ0qqX/RfnuIaab+zp8UAeJn/ygXXAffR5I4N0n1IrvA6qBsjc8hXLmBiMV2zoXlifkacF7sEFnYnjBcqg==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"json-schema\": \"^0.4.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@ai-sdk/react/node_modules/@ai-sdk/provider-utils\": {\n \"version\": \"2.2.8\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-2.2.8.tgz\",\n \"integrity\": \"sha512-fqhG+4sCVv8x7nFzYnFo19ryhAa3w096Kmc3hWxMQfW/TubPOmt3A6tYZhl4mUfQWWQMsuSkLrtjlWuXBVSGQA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@ai-sdk/provider\": \"1.1.3\",\n \"nanoid\": \"^3.3.8\",\n \"secure-json-parse\": \"^2.7.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"peerDependencies\": {\n \"zod\": \"^3.23.8\"\n }\n },\n \"node_modules/@ai-sdk/react/node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/@ai-sdk/ui-utils\": {\n \"version\": \"1.2.11\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/ui-utils/-/ui-utils-1.2.11.tgz\",\n \"integrity\": \"sha512-3zcwCc8ezzFlwp3ZD15wAPjf2Au4s3vAbKsXQVyhxODHcmu0iyPO2Eua6D/vicq/AUm/BAo60r97O6HU+EI0+w==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@ai-sdk/provider\": \"1.1.3\",\n \"@ai-sdk/provider-utils\": \"2.2.8\",\n \"zod-to-json-schema\": \"^3.24.1\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"peerDependencies\": {\n \"zod\": \"^3.23.8\"\n }\n },\n \"node_modules/@ai-sdk/ui-utils/node_modules/@ai-sdk/provider\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/provider/-/provider-1.1.3.tgz\",\n \"integrity\": \"sha512-qZMxYJ0qqX/RfnuIaab+zp8UAeJn/ygXXAffR5I4N0n1IrvA6qBsjc8hXLmBiMV2zoXlifkacF7sEFnYnjBcqg==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"json-schema\": \"^0.4.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@ai-sdk/ui-utils/node_modules/@ai-sdk/provider-utils\": {\n \"version\": \"2.2.8\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-2.2.8.tgz\",\n \"integrity\": \"sha512-fqhG+4sCVv8x7nFzYnFo19ryhAa3w096Kmc3hWxMQfW/TubPOmt3A6tYZhl4mUfQWWQMsuSkLrtjlWuXBVSGQA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@ai-sdk/provider\": \"1.1.3\",\n \"nanoid\": \"^3.3.8\",\n \"secure-json-parse\": \"^2.7.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"peerDependencies\": {\n \"zod\": \"^3.23.8\"\n }\n },\n \"node_modules/@ai-sdk/ui-utils/node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/@ampproject/remapping\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz\",\n \"integrity\": \"sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@jridgewell/gen-mapping\": \"^0.3.5\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/code-frame\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz\",\n \"integrity\": \"sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"js-tokens\": \"^4.0.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/compat-data\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz\",\n \"integrity\": \"sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/core\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz\",\n \"integrity\": \"sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@ampproject/remapping\": \"^2.2.0\",\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-compilation-targets\": \"^7.27.2\",\n \"@babel/helper-module-transforms\": \"^7.27.3\",\n \"@babel/helpers\": \"^7.27.6\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/traverse\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"convert-source-map\": \"^2.0.0\",\n \"debug\": \"^4.1.0\",\n \"gensync\": \"^1.0.0-beta.2\",\n \"json5\": \"^2.2.3\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/babel\"\n }\n },\n \"node_modules/@babel/generator\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz\",\n \"integrity\": \"sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"@jridgewell/gen-mapping\": \"^0.3.12\",\n \"@jridgewell/trace-mapping\": \"^0.3.28\",\n \"jsesc\": \"^3.0.2\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-compilation-targets\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz\",\n \"integrity\": \"sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/compat-data\": \"^7.27.2\",\n \"@babel/helper-validator-option\": \"^7.27.1\",\n \"browserslist\": \"^4.24.0\",\n \"lru-cache\": \"^5.1.1\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-globals\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz\",\n \"integrity\": \"sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-imports\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz\",\n \"integrity\": \"sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/traverse\": \"^7.27.1\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-transforms\": {\n \"version\": \"7.27.3\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz\",\n \"integrity\": \"sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-module-imports\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"@babel/traverse\": \"^7.27.3\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0\"\n }\n },\n \"node_modules/@babel/helper-plugin-utils\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz\",\n \"integrity\": \"sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-string-parser\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz\",\n \"integrity\": \"sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-identifier\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz\",\n \"integrity\": \"sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-option\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz\",\n \"integrity\": \"sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helpers\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz\",\n \"integrity\": \"sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.6\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/parser\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz\",\n \"integrity\": \"sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.28.0\"\n },\n \"bin\": {\n \"parser\": \"bin/babel-parser.js\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-self\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz\",\n \"integrity\": \"sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-source\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz\",\n \"integrity\": \"sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/runtime\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz\",\n \"integrity\": \"sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/template\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz\",\n \"integrity\": \"sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/parser\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/traverse\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz\",\n \"integrity\": \"sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-globals\": \"^7.28.0\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.28.0\",\n \"debug\": \"^4.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/types\": {\n \"version\": \"7.28.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz\",\n \"integrity\": \"sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-string-parser\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz\",\n \"integrity\": \"sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==\",\n \"cpu\": [\n \"arm\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-win32-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"peer\": true\n },\n \"node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-arm\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz\",\n \"integrity\": \"sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz\",\n \"integrity\": \"sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz\",\n \"integrity\": \"sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz\",\n \"integrity\": \"sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz\",\n \"integrity\": \"sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz\",\n \"integrity\": \"sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz\",\n \"integrity\": \"sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz\",\n \"integrity\": \"sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz\",\n \"integrity\": \"sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@jridgewell/gen-mapping\": {\n \"version\": \"0.3.12\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz\",\n \"integrity\": \"sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n }\n },\n \"node_modules/@jridgewell/resolve-uri\": {\n \"version\": \"3.1.2\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz\",\n \"integrity\": \"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@jridgewell/sourcemap-codec\": {\n \"version\": \"1.5.4\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz\",\n \"integrity\": \"sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@jridgewell/trace-mapping\": {\n \"version\": \"0.3.29\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz\",\n \"integrity\": \"sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/resolve-uri\": \"^3.1.0\",\n \"@jridgewell/sourcemap-codec\": \"^1.4.14\"\n }\n },\n \"node_modules/@opentelemetry/api\": {\n \"version\": \"1.9.0\",\n \"resolved\": \"https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz\",\n \"integrity\": \"sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==\",\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=8.0.0\"\n }\n },\n \"node_modules/@rivetkit/actor\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/actor/-/actor-0.9.1.tgz\",\n \"integrity\": \"sha512-aVoWO81JrYql6hhXX+vRor0B+aeWrnh+9zkcrxbh0EXFBbS5XM8YE4sSFxNKmZThLbGNqfZ5enm1zuA92c7I1w==\",\n \"dev\": true,\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/core\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/core/-/core-0.9.1.tgz\",\n \"integrity\": \"sha512-0zYFKo08CQ72Rm6MaVKxcJSEEfn/ypGkkxTX06Q4meCGHuDJFbPA5wopa3NdxrKBPttcGg1QAmDd+1FZnlpubA==\",\n \"license\": \"Apache-2.0\",\n \"peer\": true,\n \"dependencies\": {\n \"cbor-x\": \"^1.6.0\",\n \"invariant\": \"^2.2.4\",\n \"on-change\": \"^5.0.1\",\n \"p-retry\": \"^6.2.1\",\n \"zod\": \"^3.25.67\"\n },\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"peerDependencies\": {\n \"@hono/node-server\": \"^1.14.0\",\n \"@hono/node-ws\": \"^1.1.1\",\n \"@hono/zod-openapi\": \"^0.19.6\",\n \"eventsource\": \"^3.0.5\",\n \"hono\": \"^4.7.0\",\n \"ws\": \"^8.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"@hono/node-server\": {\n \"optional\": true\n },\n \"@hono/node-ws\": {\n \"optional\": true\n },\n \"@hono/zod-openapi\": {\n \"optional\": true\n },\n \"eventsource\": {\n \"optional\": true\n },\n \"hono\": {\n \"optional\": true\n },\n \"ws\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@rivetkit/framework-base\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/framework-base/-/framework-base-0.9.1.tgz\",\n \"integrity\": \"sha512-FxhSqGAtDsD4k7gKS2EhJ5hHsEwI1+QR0vYThUBOLcmXM7zjMZndqIjVperQO4ck/zfjRqjm3lw7znkc+k0wNQ==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@tanstack/store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/react\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/react/-/react-0.9.1.tgz\",\n \"integrity\": \"sha512-0e0gNNj3qCrXHNIxE6ggEEX+E6HjdsSt9pJbWbaQQg+1bsywupRTSdgSDguDHjBvi9qhR9mh7UbNN3A9wYqXuA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@rivetkit/framework-base\": \"0.9.1\",\n \"@tanstack/react-store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\",\n \"react\": \"^18 || ^19\",\n \"react-dom\": \"^18 || ^19\"\n }\n },\n \"node_modules/@rolldown/pluginutils\": {\n \"version\": \"1.0.0-beta.19\",\n \"resolved\": \"https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz\",\n \"integrity\": \"sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@rollup/rollup-android-arm-eabi\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.0.tgz\",\n \"integrity\": \"sha512-2o/FgACbji4tW1dzXOqAV15Eu7DdgbKsF2QKcxfG4xbh5iwU7yr5RRP5/U+0asQliSYv5M4o7BevlGIoSL0LXg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-android-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-PSZ0SvMOjEAxwZeTx32eI/j5xSYtDCRxGu5k9zvzoY77xUNssZM+WV6HYBLROpY5CkXsbQjvz40fBb7WPwDqtQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-BA4yPIPssPB2aRAWzmqzQ3y2/KotkLyZukVB7j3psK/U3nVJdceo6qr9pLM2xN6iRP/wKfxEbOb1yrlZH6sYZg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-Pr2o0lvTwsiG4HCr43Zy9xXrHspyMvsvEw4FwKYqhli4FuLE5FjcZzuQ4cfPe0iUFCvSQG6lACI0xj74FDZKRA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-lYE8LkE5h4a/+6VnnLiL14zWMPnx6wNbDG23GcYFpRW1V9hYWHAw9lBZ6ZUIrOaoK7NliF1sdwYGiVmziUF4vA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-PVQWZK9sbzpvqC9Q0GlehNNSVHR+4m7+wET+7FgSnKG3ci5nAMgGmr9mGBXzAuE5SvguCKJ6mHL6vq1JaJ/gvw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-gnueabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-hLrmRl53prCcD+YXTfNvXd776HTxNh8wPAMllusQ+amcQmtgo3V5i/nkhPN6FakW+QVLoUUr2AsbtIRPFU3xIA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-musleabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-XBKGSYcrkdiRRjl+8XvrUR3AosXU0NvF7VuqMsm7s5nRy+nt58ZMB19Jdp1RdqewLcaYnpk8zeVs/4MlLZEJxw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-fRvZZPUiBz7NztBE/2QnCS5AtqLVhXmUOPj9IHlfGEXkapgImf4W9+FSkL8cWqoAjozyUzqFmSc4zh2ooaeF6g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-Btv2WRZOcUGi8XU80XwIvzTg4U6+l6D0V6sZTrZx214nrwxw5nAi8hysaXj/mctyClWgesyuxbeLylCBNauimg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loongarch64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-Li0emNnwtUZdLwHjQPBxn4VWztcrw/h7mgLyHiEI5Z0MhpeFGlzaiBHpSNVOMB/xucjXTTcO+dhv469Djr16KA==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-powerpc64le-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-sB8+pfkYx2kvpDCfd63d5ScYT0Fz1LO6jIb2zLZvmK9ob2D8DeVqrmBDE0iDK8KlBVmsTNzrjr3G1xV4eUZhSw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-5GQ6PFhh7E6jQm70p1aW05G2cap5zMOvO0se5JMecHeAdj5ZhWEHbJ4hiKpfi1nnnEdTauDXxPgXae/mqjow9w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-N/euLsBd1rekWcuduakTo/dJw6U6sBP3eUq+RXM9RNfPuWTvG2w/WObDkIvJ2KChy6oxZmOSC08Ak2OJA0UiAA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-s390x-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-2l9sA7d7QdikL0xQwNMO3xURBUNEWyHVHfAsHsUdq+E/pgLTUcCE+gih5PCdmyHmfTDeXUWVhqL0WZzg0nua3g==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-XZdD3fEEQcwG2KrJDdEQu7NrHonPxxaV0/w2HpvINBdcqebz1aL+0vM2WFJq4DeiAVT6F5SUQas65HY5JDqoPw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-7ayfgvtmmWgKWBkCGg5+xTQ0r5V1owVm67zTrsEY1008L5ro7mCyGYORomARt/OquB9KY7LpxVBZes+oSniAAQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-arm64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-B+IJgcBnE2bm93jEW5kHisqvPITs4ddLOROAcOc/diBgrEiQJJ6Qcjby75rFSmH5eMGrqJryUgJDhrfj942apQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-ia32-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-+CXwwG66g0/FpWOnP/v1HnrGVSOygK/osUbu3wPRy8ECXjoYKjRAyfxYpDQOfghC5qPJYLPH0oN4MCOjwgdMug==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@tanstack/react-store\": {\n \"version\": \"0.7.3\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.7.3.tgz\",\n \"integrity\": \"sha512-3Dnqtbw9P2P0gw8uUM8WP2fFfg8XMDSZCTsywRPZe/XqqYW8PGkXKZTvP0AHkE4mpqP9Y43GpOg9vwO44azu6Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@tanstack/store\": \"0.7.2\",\n \"use-sync-external-store\": \"^1.5.0\"\n },\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\",\n \"react-dom\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/@tanstack/store\": {\n \"version\": \"0.7.2\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/store/-/store-0.7.2.tgz\",\n \"integrity\": \"sha512-RP80Z30BYiPX2Pyo0Nyw4s1SJFH2jyM6f9i3HfX4pA+gm5jsnYryscdq2aIQLnL4TaGuQMO+zXmN9nh1Qck+Pg==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n }\n },\n \"node_modules/@types/babel__core\": {\n \"version\": \"7.20.5\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz\",\n \"integrity\": \"sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.20.7\",\n \"@babel/types\": \"^7.20.7\",\n \"@types/babel__generator\": \"*\",\n \"@types/babel__template\": \"*\",\n \"@types/babel__traverse\": \"*\"\n }\n },\n \"node_modules/@types/babel__generator\": {\n \"version\": \"7.27.0\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz\",\n \"integrity\": \"sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__template\": {\n \"version\": \"7.4.4\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz\",\n \"integrity\": \"sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.1.0\",\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__traverse\": {\n \"version\": \"7.20.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz\",\n \"integrity\": \"sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.20.7\"\n }\n },\n \"node_modules/@types/chai\": {\n \"version\": \"5.2.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz\",\n \"integrity\": \"sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/deep-eql\": \"*\"\n }\n },\n \"node_modules/@types/deep-eql\": {\n \"version\": \"4.0.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz\",\n \"integrity\": \"sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/diff-match-patch\": {\n \"version\": \"1.0.36\",\n \"resolved\": \"https://registry.npmjs.org/@types/diff-match-patch/-/diff-match-patch-1.0.36.tgz\",\n \"integrity\": \"sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==\",\n \"license\": \"MIT\"\n },\n \"node_modules/@types/estree\": {\n \"version\": \"1.0.8\",\n \"resolved\": \"https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz\",\n \"integrity\": \"sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/node\": {\n \"version\": \"22.16.3\",\n \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-22.16.3.tgz\",\n \"integrity\": \"sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"undici-types\": \"~6.21.0\"\n }\n },\n \"node_modules/@types/prop-types\": {\n \"version\": \"15.7.15\",\n \"resolved\": \"https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz\",\n \"integrity\": \"sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/react\": {\n \"version\": \"18.3.23\",\n \"resolved\": \"https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz\",\n \"integrity\": \"sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/prop-types\": \"*\",\n \"csstype\": \"^3.0.2\"\n }\n },\n \"node_modules/@types/react-dom\": {\n \"version\": \"18.3.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz\",\n \"integrity\": \"sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"@types/react\": \"^18.0.0\"\n }\n },\n \"node_modules/@types/retry\": {\n \"version\": \"0.12.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz\",\n \"integrity\": \"sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==\",\n \"license\": \"MIT\",\n \"peer\": true\n },\n \"node_modules/@vitejs/plugin-react\": {\n \"version\": \"4.6.0\",\n \"resolved\": \"https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz\",\n \"integrity\": \"sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/core\": \"^7.27.4\",\n \"@babel/plugin-transform-react-jsx-self\": \"^7.27.1\",\n \"@babel/plugin-transform-react-jsx-source\": \"^7.27.1\",\n \"@rolldown/pluginutils\": \"1.0.0-beta.19\",\n \"@types/babel__core\": \"^7.20.5\",\n \"react-refresh\": \"^0.17.0\"\n },\n \"engines\": {\n \"node\": \"^14.18.0 || >=16.0.0\"\n },\n \"peerDependencies\": {\n \"vite\": \"^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0\"\n }\n },\n \"node_modules/@vitest/expect\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz\",\n \"integrity\": \"sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/chai\": \"^5.2.2\",\n \"@vitest/spy\": \"3.2.4\",\n \"@vitest/utils\": \"3.2.4\",\n \"chai\": \"^5.2.0\",\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/mocker\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz\",\n \"integrity\": \"sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/spy\": \"3.2.4\",\n \"estree-walker\": \"^3.0.3\",\n \"magic-string\": \"^0.30.17\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"msw\": \"^2.4.9\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\"\n },\n \"peerDependenciesMeta\": {\n \"msw\": {\n \"optional\": true\n },\n \"vite\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@vitest/pretty-format\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz\",\n \"integrity\": \"sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/runner\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz\",\n \"integrity\": \"sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/utils\": \"3.2.4\",\n \"pathe\": \"^2.0.3\",\n \"strip-literal\": \"^3.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/snapshot\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz\",\n \"integrity\": \"sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/pretty-format\": \"3.2.4\",\n \"magic-string\": \"^0.30.17\",\n \"pathe\": \"^2.0.3\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/spy\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz\",\n \"integrity\": \"sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyspy\": \"^4.0.3\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/utils\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz\",\n \"integrity\": \"sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/pretty-format\": \"3.2.4\",\n \"loupe\": \"^3.1.4\",\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/ai\": {\n \"version\": \"4.3.18\",\n \"resolved\": \"https://registry.npmjs.org/ai/-/ai-4.3.18.tgz\",\n \"integrity\": \"sha512-Mn6JdNGB56GOyrfGJ746zzK6e0f6Ozr7lwfEYkQZjhf261wj1aAJgCvUsgML5/7pSiBJq3ytNEBVcR1oUKTCZw==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@ai-sdk/provider\": \"1.1.3\",\n \"@ai-sdk/provider-utils\": \"2.2.8\",\n \"@ai-sdk/react\": \"1.2.12\",\n \"@ai-sdk/ui-utils\": \"1.2.11\",\n \"@opentelemetry/api\": \"1.9.0\",\n \"jsondiffpatch\": \"0.6.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"peerDependencies\": {\n \"react\": \"^18 || ^19 || ^19.0.0-rc\",\n \"zod\": \"^3.23.8\"\n },\n \"peerDependenciesMeta\": {\n \"react\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/ai/node_modules/@ai-sdk/provider\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/provider/-/provider-1.1.3.tgz\",\n \"integrity\": \"sha512-qZMxYJ0qqX/RfnuIaab+zp8UAeJn/ygXXAffR5I4N0n1IrvA6qBsjc8hXLmBiMV2zoXlifkacF7sEFnYnjBcqg==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"json-schema\": \"^0.4.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/ai/node_modules/@ai-sdk/provider-utils\": {\n \"version\": \"2.2.8\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-2.2.8.tgz\",\n \"integrity\": \"sha512-fqhG+4sCVv8x7nFzYnFo19ryhAa3w096Kmc3hWxMQfW/TubPOmt3A6tYZhl4mUfQWWQMsuSkLrtjlWuXBVSGQA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@ai-sdk/provider\": \"1.1.3\",\n \"nanoid\": \"^3.3.8\",\n \"secure-json-parse\": \"^2.7.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"peerDependencies\": {\n \"zod\": \"^3.23.8\"\n }\n },\n \"node_modules/ai/node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/ansi-regex\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",\n \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/ansi-styles\": {\n \"version\": \"4.3.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",\n \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-convert\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/assertion-error\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz\",\n \"integrity\": \"sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/browserslist\": {\n \"version\": \"4.25.1\",\n \"resolved\": \"https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz\",\n \"integrity\": \"sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"caniuse-lite\": \"^1.0.30001726\",\n \"electron-to-chromium\": \"^1.5.173\",\n \"node-releases\": \"^2.0.19\",\n \"update-browserslist-db\": \"^1.1.3\"\n },\n \"bin\": {\n \"browserslist\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7\"\n }\n },\n \"node_modules/buffer-from\": {\n \"version\": \"1.1.2\",\n \"resolved\": \"https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz\",\n \"integrity\": \"sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/cac\": {\n \"version\": \"6.7.14\",\n \"resolved\": \"https://registry.npmjs.org/cac/-/cac-6.7.14.tgz\",\n \"integrity\": \"sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/caniuse-lite\": {\n \"version\": \"1.0.30001727\",\n \"resolved\": \"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz\",\n \"integrity\": \"sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/caniuse-lite\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"CC-BY-4.0\"\n },\n \"node_modules/cbor-extract\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz\",\n \"integrity\": \"sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==\",\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"node-gyp-build-optional-packages\": \"5.1.1\"\n },\n \"bin\": {\n \"download-cbor-prebuilds\": \"bin/download-prebuilds.js\"\n },\n \"optionalDependencies\": {\n \"@cbor-extract/cbor-extract-darwin-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-darwin-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-win32-x64\": \"2.2.0\"\n }\n },\n \"node_modules/cbor-x\": {\n \"version\": \"1.6.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz\",\n \"integrity\": \"sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"optionalDependencies\": {\n \"cbor-extract\": \"^2.2.0\"\n }\n },\n \"node_modules/chai\": {\n \"version\": \"5.2.1\",\n \"resolved\": \"https://registry.npmjs.org/chai/-/chai-5.2.1.tgz\",\n \"integrity\": \"sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"assertion-error\": \"^2.0.1\",\n \"check-error\": \"^2.1.1\",\n \"deep-eql\": \"^5.0.1\",\n \"loupe\": \"^3.1.0\",\n \"pathval\": \"^2.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/chalk\": {\n \"version\": \"4.1.2\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",\n \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.1.0\",\n \"supports-color\": \"^7.1.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/chalk/node_modules/supports-color\": {\n \"version\": \"7.2.0\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",\n \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/check-error\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz\",\n \"integrity\": \"sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 16\"\n }\n },\n \"node_modules/cliui\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz\",\n \"integrity\": \"sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"string-width\": \"^4.2.0\",\n \"strip-ansi\": \"^6.0.1\",\n \"wrap-ansi\": \"^7.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/color-convert\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",\n \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-name\": \"~1.1.4\"\n },\n \"engines\": {\n \"node\": \">=7.0.0\"\n }\n },\n \"node_modules/color-name\": {\n \"version\": \"1.1.4\",\n \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",\n \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/concurrently\": {\n \"version\": \"8.2.2\",\n \"resolved\": \"https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz\",\n \"integrity\": \"sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"chalk\": \"^4.1.2\",\n \"date-fns\": \"^2.30.0\",\n \"lodash\": \"^4.17.21\",\n \"rxjs\": \"^7.8.1\",\n \"shell-quote\": \"^1.8.1\",\n \"spawn-command\": \"0.0.2\",\n \"supports-color\": \"^8.1.1\",\n \"tree-kill\": \"^1.2.2\",\n \"yargs\": \"^17.7.2\"\n },\n \"bin\": {\n \"conc\": \"dist/bin/concurrently.js\",\n \"concurrently\": \"dist/bin/concurrently.js\"\n },\n \"engines\": {\n \"node\": \"^14.13.0 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/open-cli-tools/concurrently?sponsor=1\"\n }\n },\n \"node_modules/convert-source-map\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz\",\n \"integrity\": \"sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/csstype\": {\n \"version\": \"3.1.3\",\n \"resolved\": \"https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz\",\n \"integrity\": \"sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/date-fns\": {\n \"version\": \"2.30.0\",\n \"resolved\": \"https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz\",\n \"integrity\": \"sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/runtime\": \"^7.21.0\"\n },\n \"engines\": {\n \"node\": \">=0.11\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/date-fns\"\n }\n },\n \"node_modules/debug\": {\n \"version\": \"4.4.1\",\n \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.4.1.tgz\",\n \"integrity\": \"sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ms\": \"^2.1.3\"\n },\n \"engines\": {\n \"node\": \">=6.0\"\n },\n \"peerDependenciesMeta\": {\n \"supports-color\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/deep-eql\": {\n \"version\": \"5.0.2\",\n \"resolved\": \"https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz\",\n \"integrity\": \"sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/dequal\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz\",\n \"integrity\": \"sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/detect-libc\": {\n \"version\": \"2.0.4\",\n \"resolved\": \"https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz\",\n \"integrity\": \"sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==\",\n \"license\": \"Apache-2.0\",\n \"optional\": true,\n \"peer\": true,\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/diff-match-patch\": {\n \"version\": \"1.0.5\",\n \"resolved\": \"https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz\",\n \"integrity\": \"sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==\",\n \"license\": \"Apache-2.0\"\n },\n \"node_modules/electron-to-chromium\": {\n \"version\": \"1.5.183\",\n \"resolved\": \"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.183.tgz\",\n \"integrity\": \"sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/emoji-regex\": {\n \"version\": \"8.0.0\",\n \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",\n \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/es-module-lexer\": {\n \"version\": \"1.7.0\",\n \"resolved\": \"https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz\",\n \"integrity\": \"sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/esbuild\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz\",\n \"integrity\": \"sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/android-arm\": \"0.18.20\",\n \"@esbuild/android-arm64\": \"0.18.20\",\n \"@esbuild/android-x64\": \"0.18.20\",\n \"@esbuild/darwin-arm64\": \"0.18.20\",\n \"@esbuild/darwin-x64\": \"0.18.20\",\n \"@esbuild/freebsd-arm64\": \"0.18.20\",\n \"@esbuild/freebsd-x64\": \"0.18.20\",\n \"@esbuild/linux-arm\": \"0.18.20\",\n \"@esbuild/linux-arm64\": \"0.18.20\",\n \"@esbuild/linux-ia32\": \"0.18.20\",\n \"@esbuild/linux-loong64\": \"0.18.20\",\n \"@esbuild/linux-mips64el\": \"0.18.20\",\n \"@esbuild/linux-ppc64\": \"0.18.20\",\n \"@esbuild/linux-riscv64\": \"0.18.20\",\n \"@esbuild/linux-s390x\": \"0.18.20\",\n \"@esbuild/linux-x64\": \"0.18.20\",\n \"@esbuild/netbsd-x64\": \"0.18.20\",\n \"@esbuild/openbsd-x64\": \"0.18.20\",\n \"@esbuild/sunos-x64\": \"0.18.20\",\n \"@esbuild/win32-arm64\": \"0.18.20\",\n \"@esbuild/win32-ia32\": \"0.18.20\",\n \"@esbuild/win32-x64\": \"0.18.20\"\n }\n },\n \"node_modules/escalade\": {\n \"version\": \"3.2.0\",\n \"resolved\": \"https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz\",\n \"integrity\": \"sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/estree-walker\": {\n \"version\": \"3.0.3\",\n \"resolved\": \"https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz\",\n \"integrity\": \"sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"^1.0.0\"\n }\n },\n \"node_modules/eventsource-parser\": {\n \"version\": \"1.1.2\",\n \"resolved\": \"https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-1.1.2.tgz\",\n \"integrity\": \"sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.18\"\n }\n },\n \"node_modules/expect-type\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz\",\n \"integrity\": \"sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=12.0.0\"\n }\n },\n \"node_modules/fdir\": {\n \"version\": \"6.4.6\",\n \"resolved\": \"https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz\",\n \"integrity\": \"sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"picomatch\": \"^3 || ^4\"\n },\n \"peerDependenciesMeta\": {\n \"picomatch\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/fsevents\": {\n \"version\": \"2.3.3\",\n \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz\",\n \"integrity\": \"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \"^8.16.0 || ^10.6.0 || >=11.0.0\"\n }\n },\n \"node_modules/gensync\": {\n \"version\": \"1.0.0-beta.2\",\n \"resolved\": \"https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz\",\n \"integrity\": \"sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/get-caller-file\": {\n \"version\": \"2.0.5\",\n \"resolved\": \"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz\",\n \"integrity\": \"sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \"6.* || 8.* || >= 10.*\"\n }\n },\n \"node_modules/get-tsconfig\": {\n \"version\": \"4.10.1\",\n \"resolved\": \"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz\",\n \"integrity\": \"sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"resolve-pkg-maps\": \"^1.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/get-tsconfig?sponsor=1\"\n }\n },\n \"node_modules/has-flag\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",\n \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/invariant\": {\n \"version\": \"2.2.4\",\n \"resolved\": \"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz\",\n \"integrity\": \"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"loose-envify\": \"^1.0.0\"\n }\n },\n \"node_modules/is-fullwidth-code-point\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",\n \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/is-network-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz\",\n \"integrity\": \"sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/js-tokens\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz\",\n \"integrity\": \"sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==\",\n \"license\": \"MIT\"\n },\n \"node_modules/jsesc\": {\n \"version\": \"3.1.0\",\n \"resolved\": \"https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz\",\n \"integrity\": \"sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"jsesc\": \"bin/jsesc\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/json-schema\": {\n \"version\": \"0.4.0\",\n \"resolved\": \"https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz\",\n \"integrity\": \"sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==\",\n \"license\": \"(AFL-2.1 OR BSD-3-Clause)\"\n },\n \"node_modules/json5\": {\n \"version\": \"2.2.3\",\n \"resolved\": \"https://registry.npmjs.org/json5/-/json5-2.2.3.tgz\",\n \"integrity\": \"sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"json5\": \"lib/cli.js\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/jsondiffpatch\": {\n \"version\": \"0.6.0\",\n \"resolved\": \"https://registry.npmjs.org/jsondiffpatch/-/jsondiffpatch-0.6.0.tgz\",\n \"integrity\": \"sha512-3QItJOXp2AP1uv7waBkao5nCvhEv+QmJAd38Ybq7wNI74Q+BBmnLn4EDKz6yI9xGAIQoUF87qHt+kc1IVxB4zQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/diff-match-patch\": \"^1.0.36\",\n \"chalk\": \"^5.3.0\",\n \"diff-match-patch\": \"^1.0.5\"\n },\n \"bin\": {\n \"jsondiffpatch\": \"bin/jsondiffpatch.js\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n }\n },\n \"node_modules/jsondiffpatch/node_modules/chalk\": {\n \"version\": \"5.4.1\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz\",\n \"integrity\": \"sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^12.17.0 || ^14.13 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/lodash\": {\n \"version\": \"4.17.21\",\n \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",\n \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/loose-envify\": {\n \"version\": \"1.4.0\",\n \"resolved\": \"https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz\",\n \"integrity\": \"sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^3.0.0 || ^4.0.0\"\n },\n \"bin\": {\n \"loose-envify\": \"cli.js\"\n }\n },\n \"node_modules/loupe\": {\n \"version\": \"3.1.4\",\n \"resolved\": \"https://registry.npmjs.org/loupe/-/loupe-3.1.4.tgz\",\n \"integrity\": \"sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/lru-cache\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz\",\n \"integrity\": \"sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"yallist\": \"^3.0.2\"\n }\n },\n \"node_modules/magic-string\": {\n \"version\": \"0.30.17\",\n \"resolved\": \"https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz\",\n \"integrity\": \"sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\"\n }\n },\n \"node_modules/ms\": {\n \"version\": \"2.1.3\",\n \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",\n \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/nanoid\": {\n \"version\": \"3.3.6\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz\",\n \"integrity\": \"sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==\",\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/node-gyp-build-optional-packages\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz\",\n \"integrity\": \"sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==\",\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"detect-libc\": \"^2.0.1\"\n },\n \"bin\": {\n \"node-gyp-build-optional-packages\": \"bin.js\",\n \"node-gyp-build-optional-packages-optional\": \"optional.js\",\n \"node-gyp-build-optional-packages-test\": \"build-test.js\"\n }\n },\n \"node_modules/node-releases\": {\n \"version\": \"2.0.19\",\n \"resolved\": \"https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz\",\n \"integrity\": \"sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/on-change\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/on-change/-/on-change-5.0.1.tgz\",\n \"integrity\": \"sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/on-change?sponsor=1\"\n }\n },\n \"node_modules/p-retry\": {\n \"version\": \"6.2.1\",\n \"resolved\": \"https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz\",\n \"integrity\": \"sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"@types/retry\": \"0.12.2\",\n \"is-network-error\": \"^1.0.0\",\n \"retry\": \"^0.13.1\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/pathval\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz\",\n \"integrity\": \"sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 14.16\"\n }\n },\n \"node_modules/picocolors\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz\",\n \"integrity\": \"sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/picomatch\": {\n \"version\": \"4.0.2\",\n \"resolved\": \"https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz\",\n \"integrity\": \"sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/jonschlinkert\"\n }\n },\n \"node_modules/postcss\": {\n \"version\": \"8.5.6\",\n \"resolved\": \"https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz\",\n \"integrity\": \"sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/postcss/\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/postcss\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"nanoid\": \"^3.3.11\",\n \"picocolors\": \"^1.1.1\",\n \"source-map-js\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || >=14\"\n }\n },\n \"node_modules/postcss/node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/react\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react/-/react-18.3.1.tgz\",\n \"integrity\": \"sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n },\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/react-dom\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz\",\n \"integrity\": \"sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\",\n \"scheduler\": \"^0.23.2\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.3.1\"\n }\n },\n \"node_modules/react-refresh\": {\n \"version\": \"0.17.0\",\n \"resolved\": \"https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz\",\n \"integrity\": \"sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/require-directory\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz\",\n \"integrity\": \"sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/resolve-pkg-maps\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz\",\n \"integrity\": \"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/resolve-pkg-maps?sponsor=1\"\n }\n },\n \"node_modules/retry\": {\n \"version\": \"0.13.1\",\n \"resolved\": \"https://registry.npmjs.org/retry/-/retry-0.13.1.tgz\",\n \"integrity\": \"sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">= 4\"\n }\n },\n \"node_modules/rollup\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/rollup/-/rollup-4.45.0.tgz\",\n \"integrity\": \"sha512-WLjEcJRIo7i3WDDgOIJqVI2d+lAC3EwvOGy+Xfq6hs+GQuAA4Di/H72xmXkOhrIWFg2PFYSKZYfH0f4vfKXN4A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"1.0.8\"\n },\n \"bin\": {\n \"rollup\": \"dist/bin/rollup\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"optionalDependencies\": {\n \"@rollup/rollup-android-arm-eabi\": \"4.45.0\",\n \"@rollup/rollup-android-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-x64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-arm64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-x64\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-gnueabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-musleabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-loongarch64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-powerpc64le-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-s390x-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-musl\": \"4.45.0\",\n \"@rollup/rollup-win32-arm64-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-ia32-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-x64-msvc\": \"4.45.0\",\n \"fsevents\": \"~2.3.2\"\n }\n },\n \"node_modules/rxjs\": {\n \"version\": \"7.8.2\",\n \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz\",\n \"integrity\": \"sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"tslib\": \"^2.1.0\"\n }\n },\n \"node_modules/scheduler\": {\n \"version\": \"0.23.2\",\n \"resolved\": \"https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz\",\n \"integrity\": \"sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n }\n },\n \"node_modules/secure-json-parse\": {\n \"version\": \"2.7.0\",\n \"resolved\": \"https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz\",\n \"integrity\": \"sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==\",\n \"license\": \"BSD-3-Clause\"\n },\n \"node_modules/semver\": {\n \"version\": \"6.3.1\",\n \"resolved\": \"https://registry.npmjs.org/semver/-/semver-6.3.1.tgz\",\n \"integrity\": \"sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"bin\": {\n \"semver\": \"bin/semver.js\"\n }\n },\n \"node_modules/shell-quote\": {\n \"version\": \"1.8.3\",\n \"resolved\": \"https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz\",\n \"integrity\": \"sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 0.4\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/ljharb\"\n }\n },\n \"node_modules/siginfo\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz\",\n \"integrity\": \"sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/source-map\": {\n \"version\": \"0.6.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz\",\n \"integrity\": \"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/source-map-js\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz\",\n \"integrity\": \"sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/source-map-support\": {\n \"version\": \"0.5.21\",\n \"resolved\": \"https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz\",\n \"integrity\": \"sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"buffer-from\": \"^1.0.0\",\n \"source-map\": \"^0.6.0\"\n }\n },\n \"node_modules/spawn-command\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz\",\n \"integrity\": \"sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==\",\n \"dev\": true\n },\n \"node_modules/stackback\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz\",\n \"integrity\": \"sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/std-env\": {\n \"version\": \"3.9.0\",\n \"resolved\": \"https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz\",\n \"integrity\": \"sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/string-width\": {\n \"version\": \"4.2.3\",\n \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",\n \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"emoji-regex\": \"^8.0.0\",\n \"is-fullwidth-code-point\": \"^3.0.0\",\n \"strip-ansi\": \"^6.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-ansi\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",\n \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-regex\": \"^5.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-literal\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz\",\n \"integrity\": \"sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^9.0.1\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/strip-literal/node_modules/js-tokens\": {\n \"version\": \"9.0.1\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz\",\n \"integrity\": \"sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/supports-color\": {\n \"version\": \"8.1.1\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",\n \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/supports-color?sponsor=1\"\n }\n },\n \"node_modules/swr\": {\n \"version\": \"2.3.4\",\n \"resolved\": \"https://registry.npmjs.org/swr/-/swr-2.3.4.tgz\",\n \"integrity\": \"sha512-bYd2lrhc+VarcpkgWclcUi92wYCpOgMws9Sd1hG1ntAu0NEy+14CbotuFjshBU2kt9rYj9TSmDcybpxpeTU1fg==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"dequal\": \"^2.0.3\",\n \"use-sync-external-store\": \"^1.4.0\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/throttleit\": {\n \"version\": \"2.1.0\",\n \"resolved\": \"https://registry.npmjs.org/throttleit/-/throttleit-2.1.0.tgz\",\n \"integrity\": \"sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/tinybench\": {\n \"version\": \"2.9.0\",\n \"resolved\": \"https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz\",\n \"integrity\": \"sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyexec\": {\n \"version\": \"0.3.2\",\n \"resolved\": \"https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz\",\n \"integrity\": \"sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyglobby\": {\n \"version\": \"0.2.14\",\n \"resolved\": \"https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz\",\n \"integrity\": \"sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"fdir\": \"^6.4.4\",\n \"picomatch\": \"^4.0.2\"\n },\n \"engines\": {\n \"node\": \">=12.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/SuperchupuDev\"\n }\n },\n \"node_modules/tinypool\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz\",\n \"integrity\": \"sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n }\n },\n \"node_modules/tinyrainbow\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz\",\n \"integrity\": \"sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tinyspy\": {\n \"version\": \"4.0.3\",\n \"resolved\": \"https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz\",\n \"integrity\": \"sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tree-kill\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz\",\n \"integrity\": \"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"tree-kill\": \"cli.js\"\n }\n },\n \"node_modules/tslib\": {\n \"version\": \"2.8.1\",\n \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz\",\n \"integrity\": \"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==\",\n \"dev\": true,\n \"license\": \"0BSD\"\n },\n \"node_modules/tsx\": {\n \"version\": \"3.14.0\",\n \"resolved\": \"https://registry.npmjs.org/tsx/-/tsx-3.14.0.tgz\",\n \"integrity\": \"sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"~0.18.20\",\n \"get-tsconfig\": \"^4.7.2\",\n \"source-map-support\": \"^0.5.21\"\n },\n \"bin\": {\n \"tsx\": \"dist/cli.mjs\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n }\n },\n \"node_modules/typescript\": {\n \"version\": \"5.8.3\",\n \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz\",\n \"integrity\": \"sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"bin\": {\n \"tsc\": \"bin/tsc\",\n \"tsserver\": \"bin/tsserver\"\n },\n \"engines\": {\n \"node\": \">=14.17\"\n }\n },\n \"node_modules/undici-types\": {\n \"version\": \"6.21.0\",\n \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/update-browserslist-db\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz\",\n \"integrity\": \"sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"escalade\": \"^3.2.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"bin\": {\n \"update-browserslist-db\": \"cli.js\"\n },\n \"peerDependencies\": {\n \"browserslist\": \">= 4.21.0\"\n }\n },\n \"node_modules/use-sync-external-store\": {\n \"version\": \"1.5.0\",\n \"resolved\": \"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz\",\n \"integrity\": \"sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==\",\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/vite\": {\n \"version\": \"5.4.19\",\n \"resolved\": \"https://registry.npmjs.org/vite/-/vite-5.4.19.tgz\",\n \"integrity\": \"sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"^0.21.3\",\n \"postcss\": \"^8.4.43\",\n \"rollup\": \"^4.20.0\"\n },\n \"bin\": {\n \"vite\": \"bin/vite.js\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/vitejs/vite?sponsor=1\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n },\n \"peerDependencies\": {\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"less\": \"*\",\n \"lightningcss\": \"^1.21.0\",\n \"sass\": \"*\",\n \"sass-embedded\": \"*\",\n \"stylus\": \"*\",\n \"sugarss\": \"*\",\n \"terser\": \"^5.4.0\"\n },\n \"peerDependenciesMeta\": {\n \"@types/node\": {\n \"optional\": true\n },\n \"less\": {\n \"optional\": true\n },\n \"lightningcss\": {\n \"optional\": true\n },\n \"sass\": {\n \"optional\": true\n },\n \"sass-embedded\": {\n \"optional\": true\n },\n \"stylus\": {\n \"optional\": true\n },\n \"sugarss\": {\n \"optional\": true\n },\n \"terser\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/vite-node\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz\",\n \"integrity\": \"sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cac\": \"^6.7.14\",\n \"debug\": \"^4.4.1\",\n \"es-module-lexer\": \"^1.7.0\",\n \"pathe\": \"^2.0.3\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\"\n },\n \"bin\": {\n \"vite-node\": \"vite-node.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz\",\n \"integrity\": \"sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz\",\n \"integrity\": \"sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz\",\n \"integrity\": \"sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz\",\n \"integrity\": \"sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/esbuild\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz\",\n \"integrity\": \"sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.21.5\",\n \"@esbuild/android-arm\": \"0.21.5\",\n \"@esbuild/android-arm64\": \"0.21.5\",\n \"@esbuild/android-x64\": \"0.21.5\",\n \"@esbuild/darwin-arm64\": \"0.21.5\",\n \"@esbuild/darwin-x64\": \"0.21.5\",\n \"@esbuild/freebsd-arm64\": \"0.21.5\",\n \"@esbuild/freebsd-x64\": \"0.21.5\",\n \"@esbuild/linux-arm\": \"0.21.5\",\n \"@esbuild/linux-arm64\": \"0.21.5\",\n \"@esbuild/linux-ia32\": \"0.21.5\",\n \"@esbuild/linux-loong64\": \"0.21.5\",\n \"@esbuild/linux-mips64el\": \"0.21.5\",\n \"@esbuild/linux-ppc64\": \"0.21.5\",\n \"@esbuild/linux-riscv64\": \"0.21.5\",\n \"@esbuild/linux-s390x\": \"0.21.5\",\n \"@esbuild/linux-x64\": \"0.21.5\",\n \"@esbuild/netbsd-x64\": \"0.21.5\",\n \"@esbuild/openbsd-x64\": \"0.21.5\",\n \"@esbuild/sunos-x64\": \"0.21.5\",\n \"@esbuild/win32-arm64\": \"0.21.5\",\n \"@esbuild/win32-ia32\": \"0.21.5\",\n \"@esbuild/win32-x64\": \"0.21.5\"\n }\n },\n \"node_modules/vitest\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz\",\n \"integrity\": \"sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/chai\": \"^5.2.2\",\n \"@vitest/expect\": \"3.2.4\",\n \"@vitest/mocker\": \"3.2.4\",\n \"@vitest/pretty-format\": \"^3.2.4\",\n \"@vitest/runner\": \"3.2.4\",\n \"@vitest/snapshot\": \"3.2.4\",\n \"@vitest/spy\": \"3.2.4\",\n \"@vitest/utils\": \"3.2.4\",\n \"chai\": \"^5.2.0\",\n \"debug\": \"^4.4.1\",\n \"expect-type\": \"^1.2.1\",\n \"magic-string\": \"^0.30.17\",\n \"pathe\": \"^2.0.3\",\n \"picomatch\": \"^4.0.2\",\n \"std-env\": \"^3.9.0\",\n \"tinybench\": \"^2.9.0\",\n \"tinyexec\": \"^0.3.2\",\n \"tinyglobby\": \"^0.2.14\",\n \"tinypool\": \"^1.1.1\",\n \"tinyrainbow\": \"^2.0.0\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\",\n \"vite-node\": \"3.2.4\",\n \"why-is-node-running\": \"^2.3.0\"\n },\n \"bin\": {\n \"vitest\": \"vitest.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"@edge-runtime/vm\": \"*\",\n \"@types/debug\": \"^4.1.12\",\n \"@types/node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\",\n \"@vitest/browser\": \"3.2.4\",\n \"@vitest/ui\": \"3.2.4\",\n \"happy-dom\": \"*\",\n \"jsdom\": \"*\"\n },\n \"peerDependenciesMeta\": {\n \"@edge-runtime/vm\": {\n \"optional\": true\n },\n \"@types/debug\": {\n \"optional\": true\n },\n \"@types/node\": {\n \"optional\": true\n },\n \"@vitest/browser\": {\n \"optional\": true\n },\n \"@vitest/ui\": {\n \"optional\": true\n },\n \"happy-dom\": {\n \"optional\": true\n },\n \"jsdom\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/why-is-node-running\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz\",\n \"integrity\": \"sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"siginfo\": \"^2.0.0\",\n \"stackback\": \"0.0.2\"\n },\n \"bin\": {\n \"why-is-node-running\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/wrap-ansi\": {\n \"version\": \"7.0.0\",\n \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",\n \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.0.0\",\n \"string-width\": \"^4.1.0\",\n \"strip-ansi\": \"^6.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/wrap-ansi?sponsor=1\"\n }\n },\n \"node_modules/y18n\": {\n \"version\": \"5.0.8\",\n \"resolved\": \"https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz\",\n \"integrity\": \"sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/yallist\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz\",\n \"integrity\": \"sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/yargs\": {\n \"version\": \"17.7.2\",\n \"resolved\": \"https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz\",\n \"integrity\": \"sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cliui\": \"^8.0.1\",\n \"escalade\": \"^3.1.1\",\n \"get-caller-file\": \"^2.0.5\",\n \"require-directory\": \"^2.1.1\",\n \"string-width\": \"^4.2.3\",\n \"y18n\": \"^5.0.5\",\n \"yargs-parser\": \"^21.1.1\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yargs-parser\": {\n \"version\": \"21.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz\",\n \"integrity\": \"sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/zod\": {\n \"version\": \"3.25.76\",\n \"resolved\": \"https://registry.npmjs.org/zod/-/zod-3.25.76.tgz\",\n \"integrity\": \"sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/sponsors/colinhacks\"\n }\n },\n \"node_modules/zod-to-json-schema\": {\n \"version\": \"3.24.6\",\n \"resolved\": \"https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.6.tgz\",\n \"integrity\": \"sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==\",\n \"license\": \"ISC\",\n \"peerDependencies\": {\n \"zod\": \"^3.24.1\"\n }\n }\n }\n}\n",
- "package.json": "{\n \"name\": \"example-ai-agent\",\n \"version\": \"0.9.1\",\n \"private\": true,\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"concurrently \\\"npm run dev:backend\\\" \\\"npm run dev:frontend\\\"\",\n \"dev:backend\": \"tsx --watch src/backend/server.ts\",\n \"dev:frontend\": \"vite\",\n \"build\": \"vite build\",\n \"check-types\": \"tsc --noEmit\",\n \"test\": \"vitest run\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^22.13.9\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"concurrently\": \"^8.2.2\",\n \"@rivetkit/actor\": \"^0.9.1\",\n \"tsx\": \"^3.12.7\",\n \"typescript\": \"^5.5.2\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^3.1.1\"\n },\n \"dependencies\": {\n \"@ai-sdk/openai\": \"^0.0.66\",\n \"@rivetkit/react\": \"^0.9.1\",\n \"ai\": \"^4.0.38\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\",\n \"zod\": \"^3.25.69\"\n },\n \"stableVersion\": \"0.8.0\"\n}\n",
+ "package-lock.json": "{\n \"name\": \"example-ai-agent\",\n \"version\": \"0.9.1\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n \"name\": \"example-ai-agent\",\n \"version\": \"0.9.1\",\n \"dependencies\": {\n \"@ai-sdk/openai\": \"^0.0.66\",\n \"@rivetkit/react\": \"^0.9.1\",\n \"ai\": \"^4.0.38\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\",\n \"zod\": \"^3.25.69\"\n },\n \"devDependencies\": {\n \"rivetkit\": \"^0.9.1\",\n \"@types/node\": \"^22.13.9\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"concurrently\": \"^8.2.2\",\n \"tsx\": \"^3.12.7\",\n \"typescript\": \"^5.5.2\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^3.1.1\"\n }\n },\n \"node_modules/@ai-sdk/openai\": {\n \"version\": \"0.0.66\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/openai/-/openai-0.0.66.tgz\",\n \"integrity\": \"sha512-V4XeDnlNl5/AY3GB3ozJUjqnBLU5pK3DacKTbCNH3zH8/MggJoH6B8wRGdLUPVFMcsMz60mtvh4DC9JsIVFrKw==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@ai-sdk/provider\": \"0.0.24\",\n \"@ai-sdk/provider-utils\": \"1.0.20\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"peerDependencies\": {\n \"zod\": \"^3.0.0\"\n }\n },\n \"node_modules/@ai-sdk/provider\": {\n \"version\": \"0.0.24\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/provider/-/provider-0.0.24.tgz\",\n \"integrity\": \"sha512-XMsNGJdGO+L0cxhhegtqZ8+T6nn4EoShS819OvCgI2kLbYTIvk0GWFGD0AXJmxkxs3DrpsJxKAFukFR7bvTkgQ==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"json-schema\": \"0.4.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@ai-sdk/provider-utils\": {\n \"version\": \"1.0.20\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-1.0.20.tgz\",\n \"integrity\": \"sha512-ngg/RGpnA00eNOWEtXHenpX1MsM2QshQh4QJFjUfwcqHpM5kTfG7je7Rc3HcEDP+OkRVv2GF+X4fC1Vfcnl8Ow==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@ai-sdk/provider\": \"0.0.24\",\n \"eventsource-parser\": \"1.1.2\",\n \"nanoid\": \"3.3.6\",\n \"secure-json-parse\": \"2.7.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"peerDependencies\": {\n \"zod\": \"^3.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"zod\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@ai-sdk/react\": {\n \"version\": \"1.2.12\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/react/-/react-1.2.12.tgz\",\n \"integrity\": \"sha512-jK1IZZ22evPZoQW3vlkZ7wvjYGYF+tRBKXtrcolduIkQ/m/sOAVcVeVDUDvh1T91xCnWCdUGCPZg2avZ90mv3g==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@ai-sdk/provider-utils\": \"2.2.8\",\n \"@ai-sdk/ui-utils\": \"1.2.11\",\n \"swr\": \"^2.2.5\",\n \"throttleit\": \"2.1.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"peerDependencies\": {\n \"react\": \"^18 || ^19 || ^19.0.0-rc\",\n \"zod\": \"^3.23.8\"\n },\n \"peerDependenciesMeta\": {\n \"zod\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@ai-sdk/react/node_modules/@ai-sdk/provider\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/provider/-/provider-1.1.3.tgz\",\n \"integrity\": \"sha512-qZMxYJ0qqX/RfnuIaab+zp8UAeJn/ygXXAffR5I4N0n1IrvA6qBsjc8hXLmBiMV2zoXlifkacF7sEFnYnjBcqg==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"json-schema\": \"^0.4.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@ai-sdk/react/node_modules/@ai-sdk/provider-utils\": {\n \"version\": \"2.2.8\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-2.2.8.tgz\",\n \"integrity\": \"sha512-fqhG+4sCVv8x7nFzYnFo19ryhAa3w096Kmc3hWxMQfW/TubPOmt3A6tYZhl4mUfQWWQMsuSkLrtjlWuXBVSGQA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@ai-sdk/provider\": \"1.1.3\",\n \"nanoid\": \"^3.3.8\",\n \"secure-json-parse\": \"^2.7.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"peerDependencies\": {\n \"zod\": \"^3.23.8\"\n }\n },\n \"node_modules/@ai-sdk/react/node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/@ai-sdk/ui-utils\": {\n \"version\": \"1.2.11\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/ui-utils/-/ui-utils-1.2.11.tgz\",\n \"integrity\": \"sha512-3zcwCc8ezzFlwp3ZD15wAPjf2Au4s3vAbKsXQVyhxODHcmu0iyPO2Eua6D/vicq/AUm/BAo60r97O6HU+EI0+w==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@ai-sdk/provider\": \"1.1.3\",\n \"@ai-sdk/provider-utils\": \"2.2.8\",\n \"zod-to-json-schema\": \"^3.24.1\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"peerDependencies\": {\n \"zod\": \"^3.23.8\"\n }\n },\n \"node_modules/@ai-sdk/ui-utils/node_modules/@ai-sdk/provider\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/provider/-/provider-1.1.3.tgz\",\n \"integrity\": \"sha512-qZMxYJ0qqX/RfnuIaab+zp8UAeJn/ygXXAffR5I4N0n1IrvA6qBsjc8hXLmBiMV2zoXlifkacF7sEFnYnjBcqg==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"json-schema\": \"^0.4.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@ai-sdk/ui-utils/node_modules/@ai-sdk/provider-utils\": {\n \"version\": \"2.2.8\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-2.2.8.tgz\",\n \"integrity\": \"sha512-fqhG+4sCVv8x7nFzYnFo19ryhAa3w096Kmc3hWxMQfW/TubPOmt3A6tYZhl4mUfQWWQMsuSkLrtjlWuXBVSGQA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@ai-sdk/provider\": \"1.1.3\",\n \"nanoid\": \"^3.3.8\",\n \"secure-json-parse\": \"^2.7.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"peerDependencies\": {\n \"zod\": \"^3.23.8\"\n }\n },\n \"node_modules/@ai-sdk/ui-utils/node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/@ampproject/remapping\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz\",\n \"integrity\": \"sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@jridgewell/gen-mapping\": \"^0.3.5\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/code-frame\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz\",\n \"integrity\": \"sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"js-tokens\": \"^4.0.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/compat-data\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz\",\n \"integrity\": \"sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/core\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz\",\n \"integrity\": \"sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@ampproject/remapping\": \"^2.2.0\",\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-compilation-targets\": \"^7.27.2\",\n \"@babel/helper-module-transforms\": \"^7.27.3\",\n \"@babel/helpers\": \"^7.27.6\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/traverse\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"convert-source-map\": \"^2.0.0\",\n \"debug\": \"^4.1.0\",\n \"gensync\": \"^1.0.0-beta.2\",\n \"json5\": \"^2.2.3\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/babel\"\n }\n },\n \"node_modules/@babel/generator\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz\",\n \"integrity\": \"sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"@jridgewell/gen-mapping\": \"^0.3.12\",\n \"@jridgewell/trace-mapping\": \"^0.3.28\",\n \"jsesc\": \"^3.0.2\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-compilation-targets\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz\",\n \"integrity\": \"sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/compat-data\": \"^7.27.2\",\n \"@babel/helper-validator-option\": \"^7.27.1\",\n \"browserslist\": \"^4.24.0\",\n \"lru-cache\": \"^5.1.1\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-globals\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz\",\n \"integrity\": \"sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-imports\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz\",\n \"integrity\": \"sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/traverse\": \"^7.27.1\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-transforms\": {\n \"version\": \"7.27.3\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz\",\n \"integrity\": \"sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-module-imports\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"@babel/traverse\": \"^7.27.3\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0\"\n }\n },\n \"node_modules/@babel/helper-plugin-utils\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz\",\n \"integrity\": \"sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-string-parser\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz\",\n \"integrity\": \"sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-identifier\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz\",\n \"integrity\": \"sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-option\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz\",\n \"integrity\": \"sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helpers\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz\",\n \"integrity\": \"sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.6\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/parser\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz\",\n \"integrity\": \"sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.28.0\"\n },\n \"bin\": {\n \"parser\": \"bin/babel-parser.js\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-self\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz\",\n \"integrity\": \"sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-source\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz\",\n \"integrity\": \"sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/runtime\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz\",\n \"integrity\": \"sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/template\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz\",\n \"integrity\": \"sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/parser\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/traverse\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz\",\n \"integrity\": \"sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-globals\": \"^7.28.0\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.28.0\",\n \"debug\": \"^4.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/types\": {\n \"version\": \"7.28.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz\",\n \"integrity\": \"sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-string-parser\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz\",\n \"integrity\": \"sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==\",\n \"cpu\": [\n \"arm\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-win32-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"peer\": true\n },\n \"node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-arm\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz\",\n \"integrity\": \"sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz\",\n \"integrity\": \"sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz\",\n \"integrity\": \"sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz\",\n \"integrity\": \"sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz\",\n \"integrity\": \"sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz\",\n \"integrity\": \"sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz\",\n \"integrity\": \"sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz\",\n \"integrity\": \"sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz\",\n \"integrity\": \"sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@jridgewell/gen-mapping\": {\n \"version\": \"0.3.12\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz\",\n \"integrity\": \"sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n }\n },\n \"node_modules/@jridgewell/resolve-uri\": {\n \"version\": \"3.1.2\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz\",\n \"integrity\": \"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@jridgewell/sourcemap-codec\": {\n \"version\": \"1.5.4\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz\",\n \"integrity\": \"sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@jridgewell/trace-mapping\": {\n \"version\": \"0.3.29\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz\",\n \"integrity\": \"sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/resolve-uri\": \"^3.1.0\",\n \"@jridgewell/sourcemap-codec\": \"^1.4.14\"\n }\n },\n \"node_modules/@opentelemetry/api\": {\n \"version\": \"1.9.0\",\n \"resolved\": \"https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz\",\n \"integrity\": \"sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==\",\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=8.0.0\"\n }\n },\n \"node_modules/rivetkit\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/rivetkit/-/actor-0.9.1.tgz\",\n \"integrity\": \"sha512-aVoWO81JrYql6hhXX+vRor0B+aeWrnh+9zkcrxbh0EXFBbS5XM8YE4sSFxNKmZThLbGNqfZ5enm1zuA92c7I1w==\",\n \"dev\": true,\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/core\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/core/-/core-0.9.1.tgz\",\n \"integrity\": \"sha512-0zYFKo08CQ72Rm6MaVKxcJSEEfn/ypGkkxTX06Q4meCGHuDJFbPA5wopa3NdxrKBPttcGg1QAmDd+1FZnlpubA==\",\n \"license\": \"Apache-2.0\",\n \"peer\": true,\n \"dependencies\": {\n \"cbor-x\": \"^1.6.0\",\n \"invariant\": \"^2.2.4\",\n \"on-change\": \"^5.0.1\",\n \"p-retry\": \"^6.2.1\",\n \"zod\": \"^3.25.67\"\n },\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"peerDependencies\": {\n \"@hono/node-server\": \"^1.14.0\",\n \"@hono/node-ws\": \"^1.1.1\",\n \"@hono/zod-openapi\": \"^0.19.6\",\n \"eventsource\": \"^3.0.5\",\n \"hono\": \"^4.7.0\",\n \"ws\": \"^8.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"@hono/node-server\": {\n \"optional\": true\n },\n \"@hono/node-ws\": {\n \"optional\": true\n },\n \"@hono/zod-openapi\": {\n \"optional\": true\n },\n \"eventsource\": {\n \"optional\": true\n },\n \"hono\": {\n \"optional\": true\n },\n \"ws\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@rivetkit/framework-base\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/framework-base/-/framework-base-0.9.1.tgz\",\n \"integrity\": \"sha512-FxhSqGAtDsD4k7gKS2EhJ5hHsEwI1+QR0vYThUBOLcmXM7zjMZndqIjVperQO4ck/zfjRqjm3lw7znkc+k0wNQ==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@tanstack/store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/react\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/react/-/react-0.9.1.tgz\",\n \"integrity\": \"sha512-0e0gNNj3qCrXHNIxE6ggEEX+E6HjdsSt9pJbWbaQQg+1bsywupRTSdgSDguDHjBvi9qhR9mh7UbNN3A9wYqXuA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@rivetkit/framework-base\": \"0.9.1\",\n \"@tanstack/react-store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\",\n \"react\": \"^18 || ^19\",\n \"react-dom\": \"^18 || ^19\"\n }\n },\n \"node_modules/@rolldown/pluginutils\": {\n \"version\": \"1.0.0-beta.19\",\n \"resolved\": \"https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz\",\n \"integrity\": \"sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@rollup/rollup-android-arm-eabi\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.0.tgz\",\n \"integrity\": \"sha512-2o/FgACbji4tW1dzXOqAV15Eu7DdgbKsF2QKcxfG4xbh5iwU7yr5RRP5/U+0asQliSYv5M4o7BevlGIoSL0LXg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-android-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-PSZ0SvMOjEAxwZeTx32eI/j5xSYtDCRxGu5k9zvzoY77xUNssZM+WV6HYBLROpY5CkXsbQjvz40fBb7WPwDqtQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-BA4yPIPssPB2aRAWzmqzQ3y2/KotkLyZukVB7j3psK/U3nVJdceo6qr9pLM2xN6iRP/wKfxEbOb1yrlZH6sYZg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-Pr2o0lvTwsiG4HCr43Zy9xXrHspyMvsvEw4FwKYqhli4FuLE5FjcZzuQ4cfPe0iUFCvSQG6lACI0xj74FDZKRA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-lYE8LkE5h4a/+6VnnLiL14zWMPnx6wNbDG23GcYFpRW1V9hYWHAw9lBZ6ZUIrOaoK7NliF1sdwYGiVmziUF4vA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-PVQWZK9sbzpvqC9Q0GlehNNSVHR+4m7+wET+7FgSnKG3ci5nAMgGmr9mGBXzAuE5SvguCKJ6mHL6vq1JaJ/gvw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-gnueabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-hLrmRl53prCcD+YXTfNvXd776HTxNh8wPAMllusQ+amcQmtgo3V5i/nkhPN6FakW+QVLoUUr2AsbtIRPFU3xIA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-musleabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-XBKGSYcrkdiRRjl+8XvrUR3AosXU0NvF7VuqMsm7s5nRy+nt58ZMB19Jdp1RdqewLcaYnpk8zeVs/4MlLZEJxw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-fRvZZPUiBz7NztBE/2QnCS5AtqLVhXmUOPj9IHlfGEXkapgImf4W9+FSkL8cWqoAjozyUzqFmSc4zh2ooaeF6g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-Btv2WRZOcUGi8XU80XwIvzTg4U6+l6D0V6sZTrZx214nrwxw5nAi8hysaXj/mctyClWgesyuxbeLylCBNauimg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loongarch64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-Li0emNnwtUZdLwHjQPBxn4VWztcrw/h7mgLyHiEI5Z0MhpeFGlzaiBHpSNVOMB/xucjXTTcO+dhv469Djr16KA==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-powerpc64le-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-sB8+pfkYx2kvpDCfd63d5ScYT0Fz1LO6jIb2zLZvmK9ob2D8DeVqrmBDE0iDK8KlBVmsTNzrjr3G1xV4eUZhSw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-5GQ6PFhh7E6jQm70p1aW05G2cap5zMOvO0se5JMecHeAdj5ZhWEHbJ4hiKpfi1nnnEdTauDXxPgXae/mqjow9w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-N/euLsBd1rekWcuduakTo/dJw6U6sBP3eUq+RXM9RNfPuWTvG2w/WObDkIvJ2KChy6oxZmOSC08Ak2OJA0UiAA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-s390x-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-2l9sA7d7QdikL0xQwNMO3xURBUNEWyHVHfAsHsUdq+E/pgLTUcCE+gih5PCdmyHmfTDeXUWVhqL0WZzg0nua3g==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-XZdD3fEEQcwG2KrJDdEQu7NrHonPxxaV0/w2HpvINBdcqebz1aL+0vM2WFJq4DeiAVT6F5SUQas65HY5JDqoPw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-7ayfgvtmmWgKWBkCGg5+xTQ0r5V1owVm67zTrsEY1008L5ro7mCyGYORomARt/OquB9KY7LpxVBZes+oSniAAQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-arm64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-B+IJgcBnE2bm93jEW5kHisqvPITs4ddLOROAcOc/diBgrEiQJJ6Qcjby75rFSmH5eMGrqJryUgJDhrfj942apQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-ia32-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-+CXwwG66g0/FpWOnP/v1HnrGVSOygK/osUbu3wPRy8ECXjoYKjRAyfxYpDQOfghC5qPJYLPH0oN4MCOjwgdMug==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@tanstack/react-store\": {\n \"version\": \"0.7.3\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.7.3.tgz\",\n \"integrity\": \"sha512-3Dnqtbw9P2P0gw8uUM8WP2fFfg8XMDSZCTsywRPZe/XqqYW8PGkXKZTvP0AHkE4mpqP9Y43GpOg9vwO44azu6Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@tanstack/store\": \"0.7.2\",\n \"use-sync-external-store\": \"^1.5.0\"\n },\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\",\n \"react-dom\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/@tanstack/store\": {\n \"version\": \"0.7.2\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/store/-/store-0.7.2.tgz\",\n \"integrity\": \"sha512-RP80Z30BYiPX2Pyo0Nyw4s1SJFH2jyM6f9i3HfX4pA+gm5jsnYryscdq2aIQLnL4TaGuQMO+zXmN9nh1Qck+Pg==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n }\n },\n \"node_modules/@types/babel__core\": {\n \"version\": \"7.20.5\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz\",\n \"integrity\": \"sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.20.7\",\n \"@babel/types\": \"^7.20.7\",\n \"@types/babel__generator\": \"*\",\n \"@types/babel__template\": \"*\",\n \"@types/babel__traverse\": \"*\"\n }\n },\n \"node_modules/@types/babel__generator\": {\n \"version\": \"7.27.0\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz\",\n \"integrity\": \"sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__template\": {\n \"version\": \"7.4.4\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz\",\n \"integrity\": \"sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.1.0\",\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__traverse\": {\n \"version\": \"7.20.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz\",\n \"integrity\": \"sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.20.7\"\n }\n },\n \"node_modules/@types/chai\": {\n \"version\": \"5.2.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz\",\n \"integrity\": \"sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/deep-eql\": \"*\"\n }\n },\n \"node_modules/@types/deep-eql\": {\n \"version\": \"4.0.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz\",\n \"integrity\": \"sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/diff-match-patch\": {\n \"version\": \"1.0.36\",\n \"resolved\": \"https://registry.npmjs.org/@types/diff-match-patch/-/diff-match-patch-1.0.36.tgz\",\n \"integrity\": \"sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==\",\n \"license\": \"MIT\"\n },\n \"node_modules/@types/estree\": {\n \"version\": \"1.0.8\",\n \"resolved\": \"https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz\",\n \"integrity\": \"sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/node\": {\n \"version\": \"22.16.3\",\n \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-22.16.3.tgz\",\n \"integrity\": \"sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"undici-types\": \"~6.21.0\"\n }\n },\n \"node_modules/@types/prop-types\": {\n \"version\": \"15.7.15\",\n \"resolved\": \"https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz\",\n \"integrity\": \"sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/react\": {\n \"version\": \"18.3.23\",\n \"resolved\": \"https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz\",\n \"integrity\": \"sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/prop-types\": \"*\",\n \"csstype\": \"^3.0.2\"\n }\n },\n \"node_modules/@types/react-dom\": {\n \"version\": \"18.3.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz\",\n \"integrity\": \"sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"@types/react\": \"^18.0.0\"\n }\n },\n \"node_modules/@types/retry\": {\n \"version\": \"0.12.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz\",\n \"integrity\": \"sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==\",\n \"license\": \"MIT\",\n \"peer\": true\n },\n \"node_modules/@vitejs/plugin-react\": {\n \"version\": \"4.6.0\",\n \"resolved\": \"https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz\",\n \"integrity\": \"sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/core\": \"^7.27.4\",\n \"@babel/plugin-transform-react-jsx-self\": \"^7.27.1\",\n \"@babel/plugin-transform-react-jsx-source\": \"^7.27.1\",\n \"@rolldown/pluginutils\": \"1.0.0-beta.19\",\n \"@types/babel__core\": \"^7.20.5\",\n \"react-refresh\": \"^0.17.0\"\n },\n \"engines\": {\n \"node\": \"^14.18.0 || >=16.0.0\"\n },\n \"peerDependencies\": {\n \"vite\": \"^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0\"\n }\n },\n \"node_modules/@vitest/expect\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz\",\n \"integrity\": \"sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/chai\": \"^5.2.2\",\n \"@vitest/spy\": \"3.2.4\",\n \"@vitest/utils\": \"3.2.4\",\n \"chai\": \"^5.2.0\",\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/mocker\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz\",\n \"integrity\": \"sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/spy\": \"3.2.4\",\n \"estree-walker\": \"^3.0.3\",\n \"magic-string\": \"^0.30.17\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"msw\": \"^2.4.9\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\"\n },\n \"peerDependenciesMeta\": {\n \"msw\": {\n \"optional\": true\n },\n \"vite\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@vitest/pretty-format\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz\",\n \"integrity\": \"sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/runner\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz\",\n \"integrity\": \"sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/utils\": \"3.2.4\",\n \"pathe\": \"^2.0.3\",\n \"strip-literal\": \"^3.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/snapshot\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz\",\n \"integrity\": \"sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/pretty-format\": \"3.2.4\",\n \"magic-string\": \"^0.30.17\",\n \"pathe\": \"^2.0.3\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/spy\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz\",\n \"integrity\": \"sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyspy\": \"^4.0.3\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/utils\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz\",\n \"integrity\": \"sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/pretty-format\": \"3.2.4\",\n \"loupe\": \"^3.1.4\",\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/ai\": {\n \"version\": \"4.3.18\",\n \"resolved\": \"https://registry.npmjs.org/ai/-/ai-4.3.18.tgz\",\n \"integrity\": \"sha512-Mn6JdNGB56GOyrfGJ746zzK6e0f6Ozr7lwfEYkQZjhf261wj1aAJgCvUsgML5/7pSiBJq3ytNEBVcR1oUKTCZw==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@ai-sdk/provider\": \"1.1.3\",\n \"@ai-sdk/provider-utils\": \"2.2.8\",\n \"@ai-sdk/react\": \"1.2.12\",\n \"@ai-sdk/ui-utils\": \"1.2.11\",\n \"@opentelemetry/api\": \"1.9.0\",\n \"jsondiffpatch\": \"0.6.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"peerDependencies\": {\n \"react\": \"^18 || ^19 || ^19.0.0-rc\",\n \"zod\": \"^3.23.8\"\n },\n \"peerDependenciesMeta\": {\n \"react\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/ai/node_modules/@ai-sdk/provider\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/provider/-/provider-1.1.3.tgz\",\n \"integrity\": \"sha512-qZMxYJ0qqX/RfnuIaab+zp8UAeJn/ygXXAffR5I4N0n1IrvA6qBsjc8hXLmBiMV2zoXlifkacF7sEFnYnjBcqg==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"json-schema\": \"^0.4.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/ai/node_modules/@ai-sdk/provider-utils\": {\n \"version\": \"2.2.8\",\n \"resolved\": \"https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-2.2.8.tgz\",\n \"integrity\": \"sha512-fqhG+4sCVv8x7nFzYnFo19ryhAa3w096Kmc3hWxMQfW/TubPOmt3A6tYZhl4mUfQWWQMsuSkLrtjlWuXBVSGQA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@ai-sdk/provider\": \"1.1.3\",\n \"nanoid\": \"^3.3.8\",\n \"secure-json-parse\": \"^2.7.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"peerDependencies\": {\n \"zod\": \"^3.23.8\"\n }\n },\n \"node_modules/ai/node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/ansi-regex\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",\n \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/ansi-styles\": {\n \"version\": \"4.3.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",\n \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-convert\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/assertion-error\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz\",\n \"integrity\": \"sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/browserslist\": {\n \"version\": \"4.25.1\",\n \"resolved\": \"https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz\",\n \"integrity\": \"sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"caniuse-lite\": \"^1.0.30001726\",\n \"electron-to-chromium\": \"^1.5.173\",\n \"node-releases\": \"^2.0.19\",\n \"update-browserslist-db\": \"^1.1.3\"\n },\n \"bin\": {\n \"browserslist\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7\"\n }\n },\n \"node_modules/buffer-from\": {\n \"version\": \"1.1.2\",\n \"resolved\": \"https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz\",\n \"integrity\": \"sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/cac\": {\n \"version\": \"6.7.14\",\n \"resolved\": \"https://registry.npmjs.org/cac/-/cac-6.7.14.tgz\",\n \"integrity\": \"sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/caniuse-lite\": {\n \"version\": \"1.0.30001727\",\n \"resolved\": \"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz\",\n \"integrity\": \"sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/caniuse-lite\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"CC-BY-4.0\"\n },\n \"node_modules/cbor-extract\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz\",\n \"integrity\": \"sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==\",\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"node-gyp-build-optional-packages\": \"5.1.1\"\n },\n \"bin\": {\n \"download-cbor-prebuilds\": \"bin/download-prebuilds.js\"\n },\n \"optionalDependencies\": {\n \"@cbor-extract/cbor-extract-darwin-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-darwin-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-win32-x64\": \"2.2.0\"\n }\n },\n \"node_modules/cbor-x\": {\n \"version\": \"1.6.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz\",\n \"integrity\": \"sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"optionalDependencies\": {\n \"cbor-extract\": \"^2.2.0\"\n }\n },\n \"node_modules/chai\": {\n \"version\": \"5.2.1\",\n \"resolved\": \"https://registry.npmjs.org/chai/-/chai-5.2.1.tgz\",\n \"integrity\": \"sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"assertion-error\": \"^2.0.1\",\n \"check-error\": \"^2.1.1\",\n \"deep-eql\": \"^5.0.1\",\n \"loupe\": \"^3.1.0\",\n \"pathval\": \"^2.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/chalk\": {\n \"version\": \"4.1.2\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",\n \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.1.0\",\n \"supports-color\": \"^7.1.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/chalk/node_modules/supports-color\": {\n \"version\": \"7.2.0\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",\n \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/check-error\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz\",\n \"integrity\": \"sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 16\"\n }\n },\n \"node_modules/cliui\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz\",\n \"integrity\": \"sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"string-width\": \"^4.2.0\",\n \"strip-ansi\": \"^6.0.1\",\n \"wrap-ansi\": \"^7.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/color-convert\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",\n \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-name\": \"~1.1.4\"\n },\n \"engines\": {\n \"node\": \">=7.0.0\"\n }\n },\n \"node_modules/color-name\": {\n \"version\": \"1.1.4\",\n \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",\n \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/concurrently\": {\n \"version\": \"8.2.2\",\n \"resolved\": \"https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz\",\n \"integrity\": \"sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"chalk\": \"^4.1.2\",\n \"date-fns\": \"^2.30.0\",\n \"lodash\": \"^4.17.21\",\n \"rxjs\": \"^7.8.1\",\n \"shell-quote\": \"^1.8.1\",\n \"spawn-command\": \"0.0.2\",\n \"supports-color\": \"^8.1.1\",\n \"tree-kill\": \"^1.2.2\",\n \"yargs\": \"^17.7.2\"\n },\n \"bin\": {\n \"conc\": \"dist/bin/concurrently.js\",\n \"concurrently\": \"dist/bin/concurrently.js\"\n },\n \"engines\": {\n \"node\": \"^14.13.0 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/open-cli-tools/concurrently?sponsor=1\"\n }\n },\n \"node_modules/convert-source-map\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz\",\n \"integrity\": \"sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/csstype\": {\n \"version\": \"3.1.3\",\n \"resolved\": \"https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz\",\n \"integrity\": \"sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/date-fns\": {\n \"version\": \"2.30.0\",\n \"resolved\": \"https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz\",\n \"integrity\": \"sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/runtime\": \"^7.21.0\"\n },\n \"engines\": {\n \"node\": \">=0.11\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/date-fns\"\n }\n },\n \"node_modules/debug\": {\n \"version\": \"4.4.1\",\n \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.4.1.tgz\",\n \"integrity\": \"sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ms\": \"^2.1.3\"\n },\n \"engines\": {\n \"node\": \">=6.0\"\n },\n \"peerDependenciesMeta\": {\n \"supports-color\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/deep-eql\": {\n \"version\": \"5.0.2\",\n \"resolved\": \"https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz\",\n \"integrity\": \"sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/dequal\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz\",\n \"integrity\": \"sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/detect-libc\": {\n \"version\": \"2.0.4\",\n \"resolved\": \"https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz\",\n \"integrity\": \"sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==\",\n \"license\": \"Apache-2.0\",\n \"optional\": true,\n \"peer\": true,\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/diff-match-patch\": {\n \"version\": \"1.0.5\",\n \"resolved\": \"https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz\",\n \"integrity\": \"sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==\",\n \"license\": \"Apache-2.0\"\n },\n \"node_modules/electron-to-chromium\": {\n \"version\": \"1.5.183\",\n \"resolved\": \"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.183.tgz\",\n \"integrity\": \"sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/emoji-regex\": {\n \"version\": \"8.0.0\",\n \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",\n \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/es-module-lexer\": {\n \"version\": \"1.7.0\",\n \"resolved\": \"https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz\",\n \"integrity\": \"sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/esbuild\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz\",\n \"integrity\": \"sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/android-arm\": \"0.18.20\",\n \"@esbuild/android-arm64\": \"0.18.20\",\n \"@esbuild/android-x64\": \"0.18.20\",\n \"@esbuild/darwin-arm64\": \"0.18.20\",\n \"@esbuild/darwin-x64\": \"0.18.20\",\n \"@esbuild/freebsd-arm64\": \"0.18.20\",\n \"@esbuild/freebsd-x64\": \"0.18.20\",\n \"@esbuild/linux-arm\": \"0.18.20\",\n \"@esbuild/linux-arm64\": \"0.18.20\",\n \"@esbuild/linux-ia32\": \"0.18.20\",\n \"@esbuild/linux-loong64\": \"0.18.20\",\n \"@esbuild/linux-mips64el\": \"0.18.20\",\n \"@esbuild/linux-ppc64\": \"0.18.20\",\n \"@esbuild/linux-riscv64\": \"0.18.20\",\n \"@esbuild/linux-s390x\": \"0.18.20\",\n \"@esbuild/linux-x64\": \"0.18.20\",\n \"@esbuild/netbsd-x64\": \"0.18.20\",\n \"@esbuild/openbsd-x64\": \"0.18.20\",\n \"@esbuild/sunos-x64\": \"0.18.20\",\n \"@esbuild/win32-arm64\": \"0.18.20\",\n \"@esbuild/win32-ia32\": \"0.18.20\",\n \"@esbuild/win32-x64\": \"0.18.20\"\n }\n },\n \"node_modules/escalade\": {\n \"version\": \"3.2.0\",\n \"resolved\": \"https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz\",\n \"integrity\": \"sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/estree-walker\": {\n \"version\": \"3.0.3\",\n \"resolved\": \"https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz\",\n \"integrity\": \"sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"^1.0.0\"\n }\n },\n \"node_modules/eventsource-parser\": {\n \"version\": \"1.1.2\",\n \"resolved\": \"https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-1.1.2.tgz\",\n \"integrity\": \"sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.18\"\n }\n },\n \"node_modules/expect-type\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz\",\n \"integrity\": \"sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=12.0.0\"\n }\n },\n \"node_modules/fdir\": {\n \"version\": \"6.4.6\",\n \"resolved\": \"https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz\",\n \"integrity\": \"sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"picomatch\": \"^3 || ^4\"\n },\n \"peerDependenciesMeta\": {\n \"picomatch\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/fsevents\": {\n \"version\": \"2.3.3\",\n \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz\",\n \"integrity\": \"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \"^8.16.0 || ^10.6.0 || >=11.0.0\"\n }\n },\n \"node_modules/gensync\": {\n \"version\": \"1.0.0-beta.2\",\n \"resolved\": \"https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz\",\n \"integrity\": \"sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/get-caller-file\": {\n \"version\": \"2.0.5\",\n \"resolved\": \"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz\",\n \"integrity\": \"sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \"6.* || 8.* || >= 10.*\"\n }\n },\n \"node_modules/get-tsconfig\": {\n \"version\": \"4.10.1\",\n \"resolved\": \"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz\",\n \"integrity\": \"sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"resolve-pkg-maps\": \"^1.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/get-tsconfig?sponsor=1\"\n }\n },\n \"node_modules/has-flag\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",\n \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/invariant\": {\n \"version\": \"2.2.4\",\n \"resolved\": \"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz\",\n \"integrity\": \"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"loose-envify\": \"^1.0.0\"\n }\n },\n \"node_modules/is-fullwidth-code-point\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",\n \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/is-network-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz\",\n \"integrity\": \"sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/js-tokens\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz\",\n \"integrity\": \"sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==\",\n \"license\": \"MIT\"\n },\n \"node_modules/jsesc\": {\n \"version\": \"3.1.0\",\n \"resolved\": \"https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz\",\n \"integrity\": \"sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"jsesc\": \"bin/jsesc\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/json-schema\": {\n \"version\": \"0.4.0\",\n \"resolved\": \"https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz\",\n \"integrity\": \"sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==\",\n \"license\": \"(AFL-2.1 OR BSD-3-Clause)\"\n },\n \"node_modules/json5\": {\n \"version\": \"2.2.3\",\n \"resolved\": \"https://registry.npmjs.org/json5/-/json5-2.2.3.tgz\",\n \"integrity\": \"sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"json5\": \"lib/cli.js\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/jsondiffpatch\": {\n \"version\": \"0.6.0\",\n \"resolved\": \"https://registry.npmjs.org/jsondiffpatch/-/jsondiffpatch-0.6.0.tgz\",\n \"integrity\": \"sha512-3QItJOXp2AP1uv7waBkao5nCvhEv+QmJAd38Ybq7wNI74Q+BBmnLn4EDKz6yI9xGAIQoUF87qHt+kc1IVxB4zQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/diff-match-patch\": \"^1.0.36\",\n \"chalk\": \"^5.3.0\",\n \"diff-match-patch\": \"^1.0.5\"\n },\n \"bin\": {\n \"jsondiffpatch\": \"bin/jsondiffpatch.js\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n }\n },\n \"node_modules/jsondiffpatch/node_modules/chalk\": {\n \"version\": \"5.4.1\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz\",\n \"integrity\": \"sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^12.17.0 || ^14.13 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/lodash\": {\n \"version\": \"4.17.21\",\n \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",\n \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/loose-envify\": {\n \"version\": \"1.4.0\",\n \"resolved\": \"https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz\",\n \"integrity\": \"sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^3.0.0 || ^4.0.0\"\n },\n \"bin\": {\n \"loose-envify\": \"cli.js\"\n }\n },\n \"node_modules/loupe\": {\n \"version\": \"3.1.4\",\n \"resolved\": \"https://registry.npmjs.org/loupe/-/loupe-3.1.4.tgz\",\n \"integrity\": \"sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/lru-cache\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz\",\n \"integrity\": \"sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"yallist\": \"^3.0.2\"\n }\n },\n \"node_modules/magic-string\": {\n \"version\": \"0.30.17\",\n \"resolved\": \"https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz\",\n \"integrity\": \"sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\"\n }\n },\n \"node_modules/ms\": {\n \"version\": \"2.1.3\",\n \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",\n \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/nanoid\": {\n \"version\": \"3.3.6\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz\",\n \"integrity\": \"sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==\",\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/node-gyp-build-optional-packages\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz\",\n \"integrity\": \"sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==\",\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"detect-libc\": \"^2.0.1\"\n },\n \"bin\": {\n \"node-gyp-build-optional-packages\": \"bin.js\",\n \"node-gyp-build-optional-packages-optional\": \"optional.js\",\n \"node-gyp-build-optional-packages-test\": \"build-test.js\"\n }\n },\n \"node_modules/node-releases\": {\n \"version\": \"2.0.19\",\n \"resolved\": \"https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz\",\n \"integrity\": \"sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/on-change\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/on-change/-/on-change-5.0.1.tgz\",\n \"integrity\": \"sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/on-change?sponsor=1\"\n }\n },\n \"node_modules/p-retry\": {\n \"version\": \"6.2.1\",\n \"resolved\": \"https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz\",\n \"integrity\": \"sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"@types/retry\": \"0.12.2\",\n \"is-network-error\": \"^1.0.0\",\n \"retry\": \"^0.13.1\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/pathval\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz\",\n \"integrity\": \"sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 14.16\"\n }\n },\n \"node_modules/picocolors\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz\",\n \"integrity\": \"sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/picomatch\": {\n \"version\": \"4.0.2\",\n \"resolved\": \"https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz\",\n \"integrity\": \"sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/jonschlinkert\"\n }\n },\n \"node_modules/postcss\": {\n \"version\": \"8.5.6\",\n \"resolved\": \"https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz\",\n \"integrity\": \"sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/postcss/\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/postcss\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"nanoid\": \"^3.3.11\",\n \"picocolors\": \"^1.1.1\",\n \"source-map-js\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || >=14\"\n }\n },\n \"node_modules/postcss/node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/react\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react/-/react-18.3.1.tgz\",\n \"integrity\": \"sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n },\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/react-dom\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz\",\n \"integrity\": \"sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\",\n \"scheduler\": \"^0.23.2\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.3.1\"\n }\n },\n \"node_modules/react-refresh\": {\n \"version\": \"0.17.0\",\n \"resolved\": \"https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz\",\n \"integrity\": \"sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/require-directory\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz\",\n \"integrity\": \"sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/resolve-pkg-maps\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz\",\n \"integrity\": \"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/resolve-pkg-maps?sponsor=1\"\n }\n },\n \"node_modules/retry\": {\n \"version\": \"0.13.1\",\n \"resolved\": \"https://registry.npmjs.org/retry/-/retry-0.13.1.tgz\",\n \"integrity\": \"sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">= 4\"\n }\n },\n \"node_modules/rollup\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/rollup/-/rollup-4.45.0.tgz\",\n \"integrity\": \"sha512-WLjEcJRIo7i3WDDgOIJqVI2d+lAC3EwvOGy+Xfq6hs+GQuAA4Di/H72xmXkOhrIWFg2PFYSKZYfH0f4vfKXN4A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"1.0.8\"\n },\n \"bin\": {\n \"rollup\": \"dist/bin/rollup\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"optionalDependencies\": {\n \"@rollup/rollup-android-arm-eabi\": \"4.45.0\",\n \"@rollup/rollup-android-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-x64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-arm64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-x64\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-gnueabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-musleabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-loongarch64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-powerpc64le-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-s390x-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-musl\": \"4.45.0\",\n \"@rollup/rollup-win32-arm64-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-ia32-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-x64-msvc\": \"4.45.0\",\n \"fsevents\": \"~2.3.2\"\n }\n },\n \"node_modules/rxjs\": {\n \"version\": \"7.8.2\",\n \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz\",\n \"integrity\": \"sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"tslib\": \"^2.1.0\"\n }\n },\n \"node_modules/scheduler\": {\n \"version\": \"0.23.2\",\n \"resolved\": \"https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz\",\n \"integrity\": \"sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n }\n },\n \"node_modules/secure-json-parse\": {\n \"version\": \"2.7.0\",\n \"resolved\": \"https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz\",\n \"integrity\": \"sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==\",\n \"license\": \"BSD-3-Clause\"\n },\n \"node_modules/semver\": {\n \"version\": \"6.3.1\",\n \"resolved\": \"https://registry.npmjs.org/semver/-/semver-6.3.1.tgz\",\n \"integrity\": \"sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"bin\": {\n \"semver\": \"bin/semver.js\"\n }\n },\n \"node_modules/shell-quote\": {\n \"version\": \"1.8.3\",\n \"resolved\": \"https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz\",\n \"integrity\": \"sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 0.4\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/ljharb\"\n }\n },\n \"node_modules/siginfo\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz\",\n \"integrity\": \"sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/source-map\": {\n \"version\": \"0.6.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz\",\n \"integrity\": \"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/source-map-js\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz\",\n \"integrity\": \"sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/source-map-support\": {\n \"version\": \"0.5.21\",\n \"resolved\": \"https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz\",\n \"integrity\": \"sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"buffer-from\": \"^1.0.0\",\n \"source-map\": \"^0.6.0\"\n }\n },\n \"node_modules/spawn-command\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz\",\n \"integrity\": \"sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==\",\n \"dev\": true\n },\n \"node_modules/stackback\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz\",\n \"integrity\": \"sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/std-env\": {\n \"version\": \"3.9.0\",\n \"resolved\": \"https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz\",\n \"integrity\": \"sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/string-width\": {\n \"version\": \"4.2.3\",\n \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",\n \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"emoji-regex\": \"^8.0.0\",\n \"is-fullwidth-code-point\": \"^3.0.0\",\n \"strip-ansi\": \"^6.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-ansi\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",\n \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-regex\": \"^5.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-literal\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz\",\n \"integrity\": \"sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^9.0.1\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/strip-literal/node_modules/js-tokens\": {\n \"version\": \"9.0.1\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz\",\n \"integrity\": \"sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/supports-color\": {\n \"version\": \"8.1.1\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",\n \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/supports-color?sponsor=1\"\n }\n },\n \"node_modules/swr\": {\n \"version\": \"2.3.4\",\n \"resolved\": \"https://registry.npmjs.org/swr/-/swr-2.3.4.tgz\",\n \"integrity\": \"sha512-bYd2lrhc+VarcpkgWclcUi92wYCpOgMws9Sd1hG1ntAu0NEy+14CbotuFjshBU2kt9rYj9TSmDcybpxpeTU1fg==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"dequal\": \"^2.0.3\",\n \"use-sync-external-store\": \"^1.4.0\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/throttleit\": {\n \"version\": \"2.1.0\",\n \"resolved\": \"https://registry.npmjs.org/throttleit/-/throttleit-2.1.0.tgz\",\n \"integrity\": \"sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/tinybench\": {\n \"version\": \"2.9.0\",\n \"resolved\": \"https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz\",\n \"integrity\": \"sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyexec\": {\n \"version\": \"0.3.2\",\n \"resolved\": \"https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz\",\n \"integrity\": \"sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyglobby\": {\n \"version\": \"0.2.14\",\n \"resolved\": \"https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz\",\n \"integrity\": \"sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"fdir\": \"^6.4.4\",\n \"picomatch\": \"^4.0.2\"\n },\n \"engines\": {\n \"node\": \">=12.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/SuperchupuDev\"\n }\n },\n \"node_modules/tinypool\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz\",\n \"integrity\": \"sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n }\n },\n \"node_modules/tinyrainbow\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz\",\n \"integrity\": \"sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tinyspy\": {\n \"version\": \"4.0.3\",\n \"resolved\": \"https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz\",\n \"integrity\": \"sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tree-kill\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz\",\n \"integrity\": \"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"tree-kill\": \"cli.js\"\n }\n },\n \"node_modules/tslib\": {\n \"version\": \"2.8.1\",\n \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz\",\n \"integrity\": \"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==\",\n \"dev\": true,\n \"license\": \"0BSD\"\n },\n \"node_modules/tsx\": {\n \"version\": \"3.14.0\",\n \"resolved\": \"https://registry.npmjs.org/tsx/-/tsx-3.14.0.tgz\",\n \"integrity\": \"sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"~0.18.20\",\n \"get-tsconfig\": \"^4.7.2\",\n \"source-map-support\": \"^0.5.21\"\n },\n \"bin\": {\n \"tsx\": \"dist/cli.mjs\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n }\n },\n \"node_modules/typescript\": {\n \"version\": \"5.8.3\",\n \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz\",\n \"integrity\": \"sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"bin\": {\n \"tsc\": \"bin/tsc\",\n \"tsserver\": \"bin/tsserver\"\n },\n \"engines\": {\n \"node\": \">=14.17\"\n }\n },\n \"node_modules/undici-types\": {\n \"version\": \"6.21.0\",\n \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/update-browserslist-db\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz\",\n \"integrity\": \"sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"escalade\": \"^3.2.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"bin\": {\n \"update-browserslist-db\": \"cli.js\"\n },\n \"peerDependencies\": {\n \"browserslist\": \">= 4.21.0\"\n }\n },\n \"node_modules/use-sync-external-store\": {\n \"version\": \"1.5.0\",\n \"resolved\": \"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz\",\n \"integrity\": \"sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==\",\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/vite\": {\n \"version\": \"5.4.19\",\n \"resolved\": \"https://registry.npmjs.org/vite/-/vite-5.4.19.tgz\",\n \"integrity\": \"sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"^0.21.3\",\n \"postcss\": \"^8.4.43\",\n \"rollup\": \"^4.20.0\"\n },\n \"bin\": {\n \"vite\": \"bin/vite.js\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/vitejs/vite?sponsor=1\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n },\n \"peerDependencies\": {\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"less\": \"*\",\n \"lightningcss\": \"^1.21.0\",\n \"sass\": \"*\",\n \"sass-embedded\": \"*\",\n \"stylus\": \"*\",\n \"sugarss\": \"*\",\n \"terser\": \"^5.4.0\"\n },\n \"peerDependenciesMeta\": {\n \"@types/node\": {\n \"optional\": true\n },\n \"less\": {\n \"optional\": true\n },\n \"lightningcss\": {\n \"optional\": true\n },\n \"sass\": {\n \"optional\": true\n },\n \"sass-embedded\": {\n \"optional\": true\n },\n \"stylus\": {\n \"optional\": true\n },\n \"sugarss\": {\n \"optional\": true\n },\n \"terser\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/vite-node\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz\",\n \"integrity\": \"sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cac\": \"^6.7.14\",\n \"debug\": \"^4.4.1\",\n \"es-module-lexer\": \"^1.7.0\",\n \"pathe\": \"^2.0.3\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\"\n },\n \"bin\": {\n \"vite-node\": \"vite-node.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz\",\n \"integrity\": \"sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz\",\n \"integrity\": \"sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz\",\n \"integrity\": \"sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz\",\n \"integrity\": \"sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/esbuild\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz\",\n \"integrity\": \"sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.21.5\",\n \"@esbuild/android-arm\": \"0.21.5\",\n \"@esbuild/android-arm64\": \"0.21.5\",\n \"@esbuild/android-x64\": \"0.21.5\",\n \"@esbuild/darwin-arm64\": \"0.21.5\",\n \"@esbuild/darwin-x64\": \"0.21.5\",\n \"@esbuild/freebsd-arm64\": \"0.21.5\",\n \"@esbuild/freebsd-x64\": \"0.21.5\",\n \"@esbuild/linux-arm\": \"0.21.5\",\n \"@esbuild/linux-arm64\": \"0.21.5\",\n \"@esbuild/linux-ia32\": \"0.21.5\",\n \"@esbuild/linux-loong64\": \"0.21.5\",\n \"@esbuild/linux-mips64el\": \"0.21.5\",\n \"@esbuild/linux-ppc64\": \"0.21.5\",\n \"@esbuild/linux-riscv64\": \"0.21.5\",\n \"@esbuild/linux-s390x\": \"0.21.5\",\n \"@esbuild/linux-x64\": \"0.21.5\",\n \"@esbuild/netbsd-x64\": \"0.21.5\",\n \"@esbuild/openbsd-x64\": \"0.21.5\",\n \"@esbuild/sunos-x64\": \"0.21.5\",\n \"@esbuild/win32-arm64\": \"0.21.5\",\n \"@esbuild/win32-ia32\": \"0.21.5\",\n \"@esbuild/win32-x64\": \"0.21.5\"\n }\n },\n \"node_modules/vitest\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz\",\n \"integrity\": \"sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/chai\": \"^5.2.2\",\n \"@vitest/expect\": \"3.2.4\",\n \"@vitest/mocker\": \"3.2.4\",\n \"@vitest/pretty-format\": \"^3.2.4\",\n \"@vitest/runner\": \"3.2.4\",\n \"@vitest/snapshot\": \"3.2.4\",\n \"@vitest/spy\": \"3.2.4\",\n \"@vitest/utils\": \"3.2.4\",\n \"chai\": \"^5.2.0\",\n \"debug\": \"^4.4.1\",\n \"expect-type\": \"^1.2.1\",\n \"magic-string\": \"^0.30.17\",\n \"pathe\": \"^2.0.3\",\n \"picomatch\": \"^4.0.2\",\n \"std-env\": \"^3.9.0\",\n \"tinybench\": \"^2.9.0\",\n \"tinyexec\": \"^0.3.2\",\n \"tinyglobby\": \"^0.2.14\",\n \"tinypool\": \"^1.1.1\",\n \"tinyrainbow\": \"^2.0.0\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\",\n \"vite-node\": \"3.2.4\",\n \"why-is-node-running\": \"^2.3.0\"\n },\n \"bin\": {\n \"vitest\": \"vitest.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"@edge-runtime/vm\": \"*\",\n \"@types/debug\": \"^4.1.12\",\n \"@types/node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\",\n \"@vitest/browser\": \"3.2.4\",\n \"@vitest/ui\": \"3.2.4\",\n \"happy-dom\": \"*\",\n \"jsdom\": \"*\"\n },\n \"peerDependenciesMeta\": {\n \"@edge-runtime/vm\": {\n \"optional\": true\n },\n \"@types/debug\": {\n \"optional\": true\n },\n \"@types/node\": {\n \"optional\": true\n },\n \"@vitest/browser\": {\n \"optional\": true\n },\n \"@vitest/ui\": {\n \"optional\": true\n },\n \"happy-dom\": {\n \"optional\": true\n },\n \"jsdom\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/why-is-node-running\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz\",\n \"integrity\": \"sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"siginfo\": \"^2.0.0\",\n \"stackback\": \"0.0.2\"\n },\n \"bin\": {\n \"why-is-node-running\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/wrap-ansi\": {\n \"version\": \"7.0.0\",\n \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",\n \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.0.0\",\n \"string-width\": \"^4.1.0\",\n \"strip-ansi\": \"^6.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/wrap-ansi?sponsor=1\"\n }\n },\n \"node_modules/y18n\": {\n \"version\": \"5.0.8\",\n \"resolved\": \"https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz\",\n \"integrity\": \"sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/yallist\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz\",\n \"integrity\": \"sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/yargs\": {\n \"version\": \"17.7.2\",\n \"resolved\": \"https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz\",\n \"integrity\": \"sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cliui\": \"^8.0.1\",\n \"escalade\": \"^3.1.1\",\n \"get-caller-file\": \"^2.0.5\",\n \"require-directory\": \"^2.1.1\",\n \"string-width\": \"^4.2.3\",\n \"y18n\": \"^5.0.5\",\n \"yargs-parser\": \"^21.1.1\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yargs-parser\": {\n \"version\": \"21.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz\",\n \"integrity\": \"sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/zod\": {\n \"version\": \"3.25.76\",\n \"resolved\": \"https://registry.npmjs.org/zod/-/zod-3.25.76.tgz\",\n \"integrity\": \"sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/sponsors/colinhacks\"\n }\n },\n \"node_modules/zod-to-json-schema\": {\n \"version\": \"3.24.6\",\n \"resolved\": \"https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.6.tgz\",\n \"integrity\": \"sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==\",\n \"license\": \"ISC\",\n \"peerDependencies\": {\n \"zod\": \"^3.24.1\"\n }\n }\n }\n}\n",
+ "package.json": "{\n \"name\": \"example-ai-agent\",\n \"version\": \"0.9.1\",\n \"private\": true,\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"concurrently \\\"npm run dev:backend\\\" \\\"npm run dev:frontend\\\"\",\n \"dev:backend\": \"tsx --watch src/backend/server.ts\",\n \"dev:frontend\": \"vite\",\n \"build\": \"vite build\",\n \"check-types\": \"tsc --noEmit\",\n \"test\": \"vitest run\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^22.13.9\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"concurrently\": \"^8.2.2\",\n \"rivetkit\": \"^0.9.1\",\n \"tsx\": \"^3.12.7\",\n \"typescript\": \"^5.5.2\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^3.1.1\"\n },\n \"dependencies\": {\n \"@ai-sdk/openai\": \"^0.0.66\",\n \"@rivetkit/react\": \"^0.9.1\",\n \"ai\": \"^4.0.38\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\",\n \"zod\": \"^3.25.69\"\n },\n \"stableVersion\": \"0.8.0\"\n}\n",
"tsconfig.json": "{\n \"compilerOptions\": {\n \"target\": \"esnext\",\n \"lib\": [\"esnext\", \"dom\"],\n \"jsx\": \"react-jsx\",\n \"module\": \"esnext\",\n \"moduleResolution\": \"bundler\",\n \"types\": [\"node\", \"vite/client\"],\n \"resolveJsonModule\": true,\n \"allowJs\": true,\n \"checkJs\": false,\n \"noEmit\": true,\n \"isolatedModules\": true,\n \"allowSyntheticDefaultImports\": true,\n \"forceConsistentCasingInFileNames\": true,\n \"strict\": true,\n \"skipLibCheck\": true\n },\n \"include\": [\"src/**/*\"],\n \"exclude\": [\"node_modules\", \"dist\"]\n}\n",
"vite.config.ts": "import react from \"@vitejs/plugin-react\";\nimport { defineConfig } from \"vite\";\n\nexport default defineConfig({\n\tplugins: [react()],\n\troot: \"src/frontend\",\n\tserver: {\n\t\tport: 3000,\n\t},\n});\n",
"vitest.config.ts": "import { defineConfig } from \"vitest/config\";\n\nexport default defineConfig({\n\ttest: {\n\t\tinclude: [\"tests/**/*.test.ts\"],\n\t\ttestTimeout: 30000,\n\t},\n});\n",
"src/frontend/App.tsx": "import { createClient, createRivetKit } from \"@rivetkit/react\";\nimport { useEffect, useState } from \"react\";\nimport type { Message, registry } from \"../backend/registry\";\n\nconst client = createClient(\"http://localhost:8080\");\nconst { useActor } = createRivetKit(client);\n\nexport function App() {\n\tconst aiAgent = useActor({\n\t\tname: \"aiAgent\",\n\t\tkey: [\"default\"],\n\t});\n\tconst [messages, setMessages] = useState([]);\n\tconst [input, setInput] = useState(\"\");\n\tconst [isLoading, setIsLoading] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (aiAgent.connection) {\n\t\t\taiAgent.connection.getMessages().then(setMessages);\n\t\t}\n\t}, [aiAgent.connection]);\n\n\taiAgent.useEvent(\"messageReceived\", (message: Message) => {\n\t\tsetMessages((prev) => [...prev, message]);\n\t\tsetIsLoading(false);\n\t});\n\n\tconst handleSendMessage = async () => {\n\t\tif (aiAgent.connection && input.trim()) {\n\t\t\tsetIsLoading(true);\n\n\t\t\tconst userMessage = { role: \"user\", content: input, timestamp: Date.now() } as Message;\n\t\t\tsetMessages((prev) => [...prev, userMessage]);\n\n\t\t\tawait aiAgent.connection.sendMessage(input);\n\t\t\tsetInput(\"\");\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{messages.length === 0 ? (\n\t\t\t\t\t\n\t\t\t\t\t\tAsk the AI assistant a question to get started\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\tmessages.map((msg, i) => (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{msg.role === \"user\" ? \"👤\" : \"🤖\"}\n\t\t\t\t\t\t\t{msg.content}\n\t\t\t\t\t\t\n\t\t\t\t\t))\n\t\t\t\t)}\n\t\t\t\t{isLoading && (\n\t\t\t\t\t\n\t\t\t\t\t\t🤖\n\t\t\t\t\t\tThinking...\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\n\t\t\t\n\t\t\t\t setInput(e.target.value)}\n\t\t\t\t\tonKeyPress={(e) => e.key === \"Enter\" && handleSendMessage()}\n\t\t\t\t\tplaceholder=\"Ask the AI assistant...\"\n\t\t\t\t\tdisabled={isLoading}\n\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}",
"src/frontend/main.tsx": "import { StrictMode } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { App } from \"./App\";\n\nconst root = document.getElementById(\"root\");\nif (!root) throw new Error(\"Root element not found\");\n\ncreateRoot(root).render(\n\t\n\t\t \n\t \n);",
"src/frontend/index.html": "\n\n\n \n \n AI Agent Example \n \n\n\n \n \n\n",
- "src/backend/registry.ts": "import { openai } from \"@ai-sdk/openai\";\nimport { actor, setup } from \"@rivetkit/actor\";\nimport { generateText, tool } from \"ai\";\nimport { z } from \"zod\";\nimport { getWeather } from \"./my-utils\";\n\nexport type Message = {\n\trole: \"user\" | \"assistant\";\n\tcontent: string;\n\ttimestamp: number;\n};\n\nexport const aiAgent = actor({\n\tonAuth: () => {},\n\t// Persistent state that survives restarts: https://rivet.gg/docs/actors/state\n\tstate: {\n\t\tmessages: [] as Message[],\n\t},\n\n\tactions: {\n\t\t// Callable functions from clients: https://rivet.gg/docs/actors/actions\n\t\tgetMessages: (c) => c.state.messages,\n\n\t\tsendMessage: async (c, userMessage: string) => {\n\t\t\tconst userMsg: Message = {\n\t\t\t\trole: \"user\",\n\t\t\t\tcontent: userMessage,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t};\n\t\t\t// State changes are automatically persisted\n\t\t\tc.state.messages.push(userMsg);\n\n\t\t\tconst { text } = await generateText({\n\t\t\t\tmodel: openai(\"gpt-4o-mini\"),\n\t\t\t\tprompt: userMessage,\n\t\t\t\tmessages: c.state.messages,\n\t\t\t\ttools: {\n\t\t\t\t\tweather: tool({\n\t\t\t\t\t\tdescription: \"Get the weather in a location\",\n\t\t\t\t\t\tparameters: z.object({\n\t\t\t\t\t\t\tlocation: z\n\t\t\t\t\t\t\t\t.string()\n\t\t\t\t\t\t\t\t.describe(\"The location to get the weather for\"),\n\t\t\t\t\t\t}),\n\t\t\t\t\t\texecute: async ({ location }) => {\n\t\t\t\t\t\t\treturn await getWeather(location);\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tconst assistantMsg: Message = {\n\t\t\t\trole: \"assistant\",\n\t\t\t\tcontent: text,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t};\n\t\t\tc.state.messages.push(assistantMsg);\n\n\t\t\t// Send events to all connected clients: https://rivet.gg/docs/actors/events\n\t\t\tc.broadcast(\"messageReceived\", assistantMsg);\n\n\t\t\treturn assistantMsg;\n\t\t},\n\t},\n});\n\n// Register actors for use: https://rivet.gg/docs/setup\nexport const registry = setup({\n\tuse: { aiAgent },\n});\n",
+ "src/backend/registry.ts": "import { openai } from \"@ai-sdk/openai\";\nimport { actor, setup } from \"rivetkit\";\nimport { generateText, tool } from \"ai\";\nimport { z } from \"zod\";\nimport { getWeather } from \"./my-utils\";\n\nexport type Message = {\n\trole: \"user\" | \"assistant\";\n\tcontent: string;\n\ttimestamp: number;\n};\n\nexport const aiAgent = actor({\n\tonAuth: () => {},\n\t// Persistent state that survives restarts: https://rivet.gg/docs/actors/state\n\tstate: {\n\t\tmessages: [] as Message[],\n\t},\n\n\tactions: {\n\t\t// Callable functions from clients: https://rivet.gg/docs/actors/actions\n\t\tgetMessages: (c) => c.state.messages,\n\n\t\tsendMessage: async (c, userMessage: string) => {\n\t\t\tconst userMsg: Message = {\n\t\t\t\trole: \"user\",\n\t\t\t\tcontent: userMessage,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t};\n\t\t\t// State changes are automatically persisted\n\t\t\tc.state.messages.push(userMsg);\n\n\t\t\tconst { text } = await generateText({\n\t\t\t\tmodel: openai(\"gpt-4o-mini\"),\n\t\t\t\tprompt: userMessage,\n\t\t\t\tmessages: c.state.messages,\n\t\t\t\ttools: {\n\t\t\t\t\tweather: tool({\n\t\t\t\t\t\tdescription: \"Get the weather in a location\",\n\t\t\t\t\t\tparameters: z.object({\n\t\t\t\t\t\t\tlocation: z\n\t\t\t\t\t\t\t\t.string()\n\t\t\t\t\t\t\t\t.describe(\"The location to get the weather for\"),\n\t\t\t\t\t\t}),\n\t\t\t\t\t\texecute: async ({ location }) => {\n\t\t\t\t\t\t\treturn await getWeather(location);\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tconst assistantMsg: Message = {\n\t\t\t\trole: \"assistant\",\n\t\t\t\tcontent: text,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t};\n\t\t\tc.state.messages.push(assistantMsg);\n\n\t\t\t// Send events to all connected clients: https://rivet.gg/docs/actors/events\n\t\t\tc.broadcast(\"messageReceived\", assistantMsg);\n\n\t\t\treturn assistantMsg;\n\t\t},\n\t},\n});\n\n// Register actors for use: https://rivet.gg/docs/setup\nexport const registry = setup({\n\tuse: { aiAgent },\n});\n",
"src/backend/my-utils.ts": "export async function getWeather(location: string) {\n\t// Mock weather API response\n\treturn {\n\t\tlocation,\n\t\ttemperature: Math.floor(Math.random() * 30) + 10,\n\t\tcondition: [\"sunny\", \"cloudy\", \"rainy\", \"snowy\"][\n\t\t\tMath.floor(Math.random() * 4)\n\t\t],\n\t\thumidity: Math.floor(Math.random() * 50) + 30,\n\t};\n}\n",
"src/backend/server.ts": "import { registry } from \"./registry\";\n\nregistry.runServer({\n\tcors: {\n\t\torigin: \"*\",\n\t},\n});\n"
}
@@ -48,21 +48,21 @@ export const examples: ExampleData[] = [
],
"tab": "memory",
"files": {
- "tests/chat-room.test.ts": "import { setupTest } from \"@rivetkit/actor/test\";\nimport { expect, test } from \"vitest\";\nimport { registry } from \"../src/backend/registry\";\n\ntest(\"Chat room can handle message sending and history\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst room = client.chatRoom.getOrCreate([\"test-room\"]);\n\n\t// Test initial state\n\tconst initialHistory = await room.getHistory();\n\texpect(initialHistory).toEqual([]);\n\n\t// Send a message\n\tconst message1 = await room.sendMessage(\"Alice\", \"Hello everyone!\");\n\n\t// Verify message structure\n\texpect(message1).toMatchObject({\n\t\tsender: \"Alice\",\n\t\ttext: \"Hello everyone!\",\n\t\ttimestamp: expect.any(Number),\n\t});\n\n\t// Send another message\n\tconst message2 = await room.sendMessage(\"Bob\", \"Hi Alice!\");\n\n\t// Verify messages are stored in order\n\tconst history = await room.getHistory();\n\texpect(history).toHaveLength(2);\n\texpect(history[0]).toEqual(message1);\n\texpect(history[1]).toEqual(message2);\n});\n\ntest(\"Chat room message timestamps are sequential\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst room = client.chatRoom.getOrCreate([\"test-timestamps\"]);\n\n\tconst message1 = await room.sendMessage(\"User1\", \"First message\");\n\tconst message2 = await room.sendMessage(\"User2\", \"Second message\");\n\tconst message3 = await room.sendMessage(\"User1\", \"Third message\");\n\n\texpect(message2.timestamp).toBeGreaterThanOrEqual(message1.timestamp);\n\texpect(message3.timestamp).toBeGreaterThanOrEqual(message2.timestamp);\n\n\tconst history = await room.getHistory();\n\tfor (let i = 1; i < history.length; i++) {\n\t\texpect(history[i].timestamp).toBeGreaterThanOrEqual(\n\t\t\thistory[i - 1].timestamp,\n\t\t);\n\t}\n});\n\ntest(\"Chat room supports multiple users\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst room = client.chatRoom.getOrCreate([\"test-multiuser\"]);\n\n\t// Multiple users sending messages\n\tawait room.sendMessage(\"Alice\", \"Hello!\");\n\tawait room.sendMessage(\"Bob\", \"Hey there!\");\n\tawait room.sendMessage(\"Charlie\", \"Good morning!\");\n\tawait room.sendMessage(\"Alice\", \"How is everyone?\");\n\n\tconst history = await room.getHistory();\n\texpect(history).toHaveLength(4);\n\n\t// Verify senders\n\texpect(history[0].sender).toBe(\"Alice\");\n\texpect(history[1].sender).toBe(\"Bob\");\n\texpect(history[2].sender).toBe(\"Charlie\");\n\texpect(history[3].sender).toBe(\"Alice\");\n\n\t// Verify message content\n\texpect(history[0].text).toBe(\"Hello!\");\n\texpect(history[1].text).toBe(\"Hey there!\");\n\texpect(history[2].text).toBe(\"Good morning!\");\n\texpect(history[3].text).toBe(\"How is everyone?\");\n});\n\ntest(\"Chat room handles empty messages\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst room = client.chatRoom.getOrCreate([\"test-empty\"]);\n\n\t// Test empty message\n\tconst emptyMessage = await room.sendMessage(\"User\", \"\");\n\texpect(emptyMessage.text).toBe(\"\");\n\texpect(emptyMessage.sender).toBe(\"User\");\n\texpect(emptyMessage.timestamp).toBeGreaterThan(0);\n\n\tconst history = await room.getHistory();\n\texpect(history).toHaveLength(1);\n\texpect(history[0]).toEqual(emptyMessage);\n});\n",
+ "tests/chat-room.test.ts": "import { setupTest } from \"rivetkit/test\";\nimport { expect, test } from \"vitest\";\nimport { registry } from \"../src/backend/registry\";\n\ntest(\"Chat room can handle message sending and history\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst room = client.chatRoom.getOrCreate([\"test-room\"]);\n\n\t// Test initial state\n\tconst initialHistory = await room.getHistory();\n\texpect(initialHistory).toEqual([]);\n\n\t// Send a message\n\tconst message1 = await room.sendMessage(\"Alice\", \"Hello everyone!\");\n\n\t// Verify message structure\n\texpect(message1).toMatchObject({\n\t\tsender: \"Alice\",\n\t\ttext: \"Hello everyone!\",\n\t\ttimestamp: expect.any(Number),\n\t});\n\n\t// Send another message\n\tconst message2 = await room.sendMessage(\"Bob\", \"Hi Alice!\");\n\n\t// Verify messages are stored in order\n\tconst history = await room.getHistory();\n\texpect(history).toHaveLength(2);\n\texpect(history[0]).toEqual(message1);\n\texpect(history[1]).toEqual(message2);\n});\n\ntest(\"Chat room message timestamps are sequential\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst room = client.chatRoom.getOrCreate([\"test-timestamps\"]);\n\n\tconst message1 = await room.sendMessage(\"User1\", \"First message\");\n\tconst message2 = await room.sendMessage(\"User2\", \"Second message\");\n\tconst message3 = await room.sendMessage(\"User1\", \"Third message\");\n\n\texpect(message2.timestamp).toBeGreaterThanOrEqual(message1.timestamp);\n\texpect(message3.timestamp).toBeGreaterThanOrEqual(message2.timestamp);\n\n\tconst history = await room.getHistory();\n\tfor (let i = 1; i < history.length; i++) {\n\t\texpect(history[i].timestamp).toBeGreaterThanOrEqual(\n\t\t\thistory[i - 1].timestamp,\n\t\t);\n\t}\n});\n\ntest(\"Chat room supports multiple users\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst room = client.chatRoom.getOrCreate([\"test-multiuser\"]);\n\n\t// Multiple users sending messages\n\tawait room.sendMessage(\"Alice\", \"Hello!\");\n\tawait room.sendMessage(\"Bob\", \"Hey there!\");\n\tawait room.sendMessage(\"Charlie\", \"Good morning!\");\n\tawait room.sendMessage(\"Alice\", \"How is everyone?\");\n\n\tconst history = await room.getHistory();\n\texpect(history).toHaveLength(4);\n\n\t// Verify senders\n\texpect(history[0].sender).toBe(\"Alice\");\n\texpect(history[1].sender).toBe(\"Bob\");\n\texpect(history[2].sender).toBe(\"Charlie\");\n\texpect(history[3].sender).toBe(\"Alice\");\n\n\t// Verify message content\n\texpect(history[0].text).toBe(\"Hello!\");\n\texpect(history[1].text).toBe(\"Hey there!\");\n\texpect(history[2].text).toBe(\"Good morning!\");\n\texpect(history[3].text).toBe(\"How is everyone?\");\n});\n\ntest(\"Chat room handles empty messages\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst room = client.chatRoom.getOrCreate([\"test-empty\"]);\n\n\t// Test empty message\n\tconst emptyMessage = await room.sendMessage(\"User\", \"\");\n\texpect(emptyMessage.text).toBe(\"\");\n\texpect(emptyMessage.sender).toBe(\"User\");\n\texpect(emptyMessage.timestamp).toBeGreaterThan(0);\n\n\tconst history = await room.getHistory();\n\texpect(history).toHaveLength(1);\n\texpect(history[0]).toEqual(emptyMessage);\n});\n",
"README.md": "# Chat Room for RivetKit\n\nExample project demonstrating real-time messaging and actor state management with [RivetKit](https://rivetkit.org).\n\n[Learn More →](https://github.com/rivet-gg/rivetkit)\n\n[Discord](https://rivet.gg/discord) — [Documentation](https://rivetkit.org) — [Issues](https://github.com/rivet-gg/rivetkit/issues)\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 18+\n\n### Installation\n\n```sh\ngit clone https://github.com/rivet-gg/rivetkit\ncd rivetkit/examples/chat-room\nnpm install\n```\n\n### Development\n\n#### Web UI\nStart the development server with both backend and React frontend:\n\n```sh\nnpm run dev\n```\n\nOpen your browser to `http://localhost:3000` to use the web chat interface.\n\n#### CLI Interface\nAlternatively, use the CLI interface:\n\n```sh\nnpm run dev:cli\n```\n\nOr connect programmatically:\n\n```sh\ntsx src/scripts/connect.ts\n```\n\n## Features\n\n- Real-time messaging with automatic persistence\n- Multiple chat rooms support\n- Both web and CLI interfaces\n- Event-driven architecture with RivetKit actors\n- TypeScript support throughout\n\n## License\n\nApache 2.0",
".gitignore": ".actorcore\nnode_modules",
- "package-lock.json": "{\n \"name\": \"chat-room\",\n \"version\": \"0.9.1\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n \"name\": \"chat-room\",\n \"version\": \"0.9.1\",\n \"dependencies\": {\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"@rivetkit/actor\": \"^0.9.1\",\n \"@types/node\": \"^22.13.9\",\n \"@types/prompts\": \"^2\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"concurrently\": \"^8.2.2\",\n \"prompts\": \"^2.4.2\",\n \"tsx\": \"^3.12.7\",\n \"typescript\": \"^5.5.2\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^3.1.1\"\n }\n },\n \"node_modules/@ampproject/remapping\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz\",\n \"integrity\": \"sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@jridgewell/gen-mapping\": \"^0.3.5\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/code-frame\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz\",\n \"integrity\": \"sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"js-tokens\": \"^4.0.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/compat-data\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz\",\n \"integrity\": \"sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/core\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz\",\n \"integrity\": \"sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@ampproject/remapping\": \"^2.2.0\",\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-compilation-targets\": \"^7.27.2\",\n \"@babel/helper-module-transforms\": \"^7.27.3\",\n \"@babel/helpers\": \"^7.27.6\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/traverse\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"convert-source-map\": \"^2.0.0\",\n \"debug\": \"^4.1.0\",\n \"gensync\": \"^1.0.0-beta.2\",\n \"json5\": \"^2.2.3\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/babel\"\n }\n },\n \"node_modules/@babel/generator\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz\",\n \"integrity\": \"sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"@jridgewell/gen-mapping\": \"^0.3.12\",\n \"@jridgewell/trace-mapping\": \"^0.3.28\",\n \"jsesc\": \"^3.0.2\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-compilation-targets\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz\",\n \"integrity\": \"sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/compat-data\": \"^7.27.2\",\n \"@babel/helper-validator-option\": \"^7.27.1\",\n \"browserslist\": \"^4.24.0\",\n \"lru-cache\": \"^5.1.1\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-globals\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz\",\n \"integrity\": \"sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-imports\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz\",\n \"integrity\": \"sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/traverse\": \"^7.27.1\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-transforms\": {\n \"version\": \"7.27.3\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz\",\n \"integrity\": \"sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-module-imports\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"@babel/traverse\": \"^7.27.3\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0\"\n }\n },\n \"node_modules/@babel/helper-plugin-utils\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz\",\n \"integrity\": \"sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-string-parser\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz\",\n \"integrity\": \"sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-identifier\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz\",\n \"integrity\": \"sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-option\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz\",\n \"integrity\": \"sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helpers\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz\",\n \"integrity\": \"sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.6\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/parser\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz\",\n \"integrity\": \"sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.28.0\"\n },\n \"bin\": {\n \"parser\": \"bin/babel-parser.js\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-self\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz\",\n \"integrity\": \"sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-source\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz\",\n \"integrity\": \"sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/runtime\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz\",\n \"integrity\": \"sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/template\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz\",\n \"integrity\": \"sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/parser\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/traverse\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz\",\n \"integrity\": \"sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-globals\": \"^7.28.0\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.28.0\",\n \"debug\": \"^4.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/types\": {\n \"version\": \"7.28.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz\",\n \"integrity\": \"sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-string-parser\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz\",\n \"integrity\": \"sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==\",\n \"cpu\": [\n \"arm\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-win32-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"peer\": true\n },\n \"node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-arm\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz\",\n \"integrity\": \"sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz\",\n \"integrity\": \"sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz\",\n \"integrity\": \"sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz\",\n \"integrity\": \"sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz\",\n \"integrity\": \"sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz\",\n \"integrity\": \"sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz\",\n \"integrity\": \"sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz\",\n \"integrity\": \"sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz\",\n \"integrity\": \"sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@jridgewell/gen-mapping\": {\n \"version\": \"0.3.12\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz\",\n \"integrity\": \"sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n }\n },\n \"node_modules/@jridgewell/resolve-uri\": {\n \"version\": \"3.1.2\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz\",\n \"integrity\": \"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@jridgewell/sourcemap-codec\": {\n \"version\": \"1.5.4\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz\",\n \"integrity\": \"sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@jridgewell/trace-mapping\": {\n \"version\": \"0.3.29\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz\",\n \"integrity\": \"sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/resolve-uri\": \"^3.1.0\",\n \"@jridgewell/sourcemap-codec\": \"^1.4.14\"\n }\n },\n \"node_modules/@rivetkit/actor\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/actor/-/actor-0.9.1.tgz\",\n \"integrity\": \"sha512-aVoWO81JrYql6hhXX+vRor0B+aeWrnh+9zkcrxbh0EXFBbS5XM8YE4sSFxNKmZThLbGNqfZ5enm1zuA92c7I1w==\",\n \"dev\": true,\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/core\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/core/-/core-0.9.1.tgz\",\n \"integrity\": \"sha512-0zYFKo08CQ72Rm6MaVKxcJSEEfn/ypGkkxTX06Q4meCGHuDJFbPA5wopa3NdxrKBPttcGg1QAmDd+1FZnlpubA==\",\n \"license\": \"Apache-2.0\",\n \"peer\": true,\n \"dependencies\": {\n \"cbor-x\": \"^1.6.0\",\n \"invariant\": \"^2.2.4\",\n \"on-change\": \"^5.0.1\",\n \"p-retry\": \"^6.2.1\",\n \"zod\": \"^3.25.67\"\n },\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"peerDependencies\": {\n \"@hono/node-server\": \"^1.14.0\",\n \"@hono/node-ws\": \"^1.1.1\",\n \"@hono/zod-openapi\": \"^0.19.6\",\n \"eventsource\": \"^3.0.5\",\n \"hono\": \"^4.7.0\",\n \"ws\": \"^8.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"@hono/node-server\": {\n \"optional\": true\n },\n \"@hono/node-ws\": {\n \"optional\": true\n },\n \"@hono/zod-openapi\": {\n \"optional\": true\n },\n \"eventsource\": {\n \"optional\": true\n },\n \"hono\": {\n \"optional\": true\n },\n \"ws\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@rivetkit/framework-base\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/framework-base/-/framework-base-0.9.1.tgz\",\n \"integrity\": \"sha512-FxhSqGAtDsD4k7gKS2EhJ5hHsEwI1+QR0vYThUBOLcmXM7zjMZndqIjVperQO4ck/zfjRqjm3lw7znkc+k0wNQ==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@tanstack/store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/react\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/react/-/react-0.9.1.tgz\",\n \"integrity\": \"sha512-0e0gNNj3qCrXHNIxE6ggEEX+E6HjdsSt9pJbWbaQQg+1bsywupRTSdgSDguDHjBvi9qhR9mh7UbNN3A9wYqXuA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@rivetkit/framework-base\": \"0.9.1\",\n \"@tanstack/react-store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\",\n \"react\": \"^18 || ^19\",\n \"react-dom\": \"^18 || ^19\"\n }\n },\n \"node_modules/@rolldown/pluginutils\": {\n \"version\": \"1.0.0-beta.19\",\n \"resolved\": \"https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz\",\n \"integrity\": \"sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@rollup/rollup-android-arm-eabi\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.0.tgz\",\n \"integrity\": \"sha512-2o/FgACbji4tW1dzXOqAV15Eu7DdgbKsF2QKcxfG4xbh5iwU7yr5RRP5/U+0asQliSYv5M4o7BevlGIoSL0LXg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-android-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-PSZ0SvMOjEAxwZeTx32eI/j5xSYtDCRxGu5k9zvzoY77xUNssZM+WV6HYBLROpY5CkXsbQjvz40fBb7WPwDqtQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-BA4yPIPssPB2aRAWzmqzQ3y2/KotkLyZukVB7j3psK/U3nVJdceo6qr9pLM2xN6iRP/wKfxEbOb1yrlZH6sYZg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-Pr2o0lvTwsiG4HCr43Zy9xXrHspyMvsvEw4FwKYqhli4FuLE5FjcZzuQ4cfPe0iUFCvSQG6lACI0xj74FDZKRA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-lYE8LkE5h4a/+6VnnLiL14zWMPnx6wNbDG23GcYFpRW1V9hYWHAw9lBZ6ZUIrOaoK7NliF1sdwYGiVmziUF4vA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-PVQWZK9sbzpvqC9Q0GlehNNSVHR+4m7+wET+7FgSnKG3ci5nAMgGmr9mGBXzAuE5SvguCKJ6mHL6vq1JaJ/gvw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-gnueabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-hLrmRl53prCcD+YXTfNvXd776HTxNh8wPAMllusQ+amcQmtgo3V5i/nkhPN6FakW+QVLoUUr2AsbtIRPFU3xIA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-musleabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-XBKGSYcrkdiRRjl+8XvrUR3AosXU0NvF7VuqMsm7s5nRy+nt58ZMB19Jdp1RdqewLcaYnpk8zeVs/4MlLZEJxw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-fRvZZPUiBz7NztBE/2QnCS5AtqLVhXmUOPj9IHlfGEXkapgImf4W9+FSkL8cWqoAjozyUzqFmSc4zh2ooaeF6g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-Btv2WRZOcUGi8XU80XwIvzTg4U6+l6D0V6sZTrZx214nrwxw5nAi8hysaXj/mctyClWgesyuxbeLylCBNauimg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loongarch64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-Li0emNnwtUZdLwHjQPBxn4VWztcrw/h7mgLyHiEI5Z0MhpeFGlzaiBHpSNVOMB/xucjXTTcO+dhv469Djr16KA==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-powerpc64le-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-sB8+pfkYx2kvpDCfd63d5ScYT0Fz1LO6jIb2zLZvmK9ob2D8DeVqrmBDE0iDK8KlBVmsTNzrjr3G1xV4eUZhSw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-5GQ6PFhh7E6jQm70p1aW05G2cap5zMOvO0se5JMecHeAdj5ZhWEHbJ4hiKpfi1nnnEdTauDXxPgXae/mqjow9w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-N/euLsBd1rekWcuduakTo/dJw6U6sBP3eUq+RXM9RNfPuWTvG2w/WObDkIvJ2KChy6oxZmOSC08Ak2OJA0UiAA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-s390x-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-2l9sA7d7QdikL0xQwNMO3xURBUNEWyHVHfAsHsUdq+E/pgLTUcCE+gih5PCdmyHmfTDeXUWVhqL0WZzg0nua3g==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-XZdD3fEEQcwG2KrJDdEQu7NrHonPxxaV0/w2HpvINBdcqebz1aL+0vM2WFJq4DeiAVT6F5SUQas65HY5JDqoPw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-7ayfgvtmmWgKWBkCGg5+xTQ0r5V1owVm67zTrsEY1008L5ro7mCyGYORomARt/OquB9KY7LpxVBZes+oSniAAQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-arm64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-B+IJgcBnE2bm93jEW5kHisqvPITs4ddLOROAcOc/diBgrEiQJJ6Qcjby75rFSmH5eMGrqJryUgJDhrfj942apQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-ia32-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-+CXwwG66g0/FpWOnP/v1HnrGVSOygK/osUbu3wPRy8ECXjoYKjRAyfxYpDQOfghC5qPJYLPH0oN4MCOjwgdMug==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@tanstack/react-store\": {\n \"version\": \"0.7.3\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.7.3.tgz\",\n \"integrity\": \"sha512-3Dnqtbw9P2P0gw8uUM8WP2fFfg8XMDSZCTsywRPZe/XqqYW8PGkXKZTvP0AHkE4mpqP9Y43GpOg9vwO44azu6Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@tanstack/store\": \"0.7.2\",\n \"use-sync-external-store\": \"^1.5.0\"\n },\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\",\n \"react-dom\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/@tanstack/store\": {\n \"version\": \"0.7.2\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/store/-/store-0.7.2.tgz\",\n \"integrity\": \"sha512-RP80Z30BYiPX2Pyo0Nyw4s1SJFH2jyM6f9i3HfX4pA+gm5jsnYryscdq2aIQLnL4TaGuQMO+zXmN9nh1Qck+Pg==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n }\n },\n \"node_modules/@types/babel__core\": {\n \"version\": \"7.20.5\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz\",\n \"integrity\": \"sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.20.7\",\n \"@babel/types\": \"^7.20.7\",\n \"@types/babel__generator\": \"*\",\n \"@types/babel__template\": \"*\",\n \"@types/babel__traverse\": \"*\"\n }\n },\n \"node_modules/@types/babel__generator\": {\n \"version\": \"7.27.0\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz\",\n \"integrity\": \"sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__template\": {\n \"version\": \"7.4.4\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz\",\n \"integrity\": \"sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.1.0\",\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__traverse\": {\n \"version\": \"7.20.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz\",\n \"integrity\": \"sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.20.7\"\n }\n },\n \"node_modules/@types/chai\": {\n \"version\": \"5.2.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz\",\n \"integrity\": \"sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/deep-eql\": \"*\"\n }\n },\n \"node_modules/@types/deep-eql\": {\n \"version\": \"4.0.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz\",\n \"integrity\": \"sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/estree\": {\n \"version\": \"1.0.8\",\n \"resolved\": \"https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz\",\n \"integrity\": \"sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/node\": {\n \"version\": \"22.16.3\",\n \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-22.16.3.tgz\",\n \"integrity\": \"sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"undici-types\": \"~6.21.0\"\n }\n },\n \"node_modules/@types/prompts\": {\n \"version\": \"2.4.9\",\n \"resolved\": \"https://registry.npmjs.org/@types/prompts/-/prompts-2.4.9.tgz\",\n \"integrity\": \"sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/node\": \"*\",\n \"kleur\": \"^3.0.3\"\n }\n },\n \"node_modules/@types/prop-types\": {\n \"version\": \"15.7.15\",\n \"resolved\": \"https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz\",\n \"integrity\": \"sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/react\": {\n \"version\": \"18.3.23\",\n \"resolved\": \"https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz\",\n \"integrity\": \"sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/prop-types\": \"*\",\n \"csstype\": \"^3.0.2\"\n }\n },\n \"node_modules/@types/react-dom\": {\n \"version\": \"18.3.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz\",\n \"integrity\": \"sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"@types/react\": \"^18.0.0\"\n }\n },\n \"node_modules/@types/retry\": {\n \"version\": \"0.12.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz\",\n \"integrity\": \"sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==\",\n \"license\": \"MIT\",\n \"peer\": true\n },\n \"node_modules/@vitejs/plugin-react\": {\n \"version\": \"4.6.0\",\n \"resolved\": \"https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz\",\n \"integrity\": \"sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/core\": \"^7.27.4\",\n \"@babel/plugin-transform-react-jsx-self\": \"^7.27.1\",\n \"@babel/plugin-transform-react-jsx-source\": \"^7.27.1\",\n \"@rolldown/pluginutils\": \"1.0.0-beta.19\",\n \"@types/babel__core\": \"^7.20.5\",\n \"react-refresh\": \"^0.17.0\"\n },\n \"engines\": {\n \"node\": \"^14.18.0 || >=16.0.0\"\n },\n \"peerDependencies\": {\n \"vite\": \"^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0\"\n }\n },\n \"node_modules/@vitest/expect\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz\",\n \"integrity\": \"sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/chai\": \"^5.2.2\",\n \"@vitest/spy\": \"3.2.4\",\n \"@vitest/utils\": \"3.2.4\",\n \"chai\": \"^5.2.0\",\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/mocker\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz\",\n \"integrity\": \"sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/spy\": \"3.2.4\",\n \"estree-walker\": \"^3.0.3\",\n \"magic-string\": \"^0.30.17\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"msw\": \"^2.4.9\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\"\n },\n \"peerDependenciesMeta\": {\n \"msw\": {\n \"optional\": true\n },\n \"vite\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@vitest/pretty-format\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz\",\n \"integrity\": \"sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/runner\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz\",\n \"integrity\": \"sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/utils\": \"3.2.4\",\n \"pathe\": \"^2.0.3\",\n \"strip-literal\": \"^3.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/snapshot\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz\",\n \"integrity\": \"sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/pretty-format\": \"3.2.4\",\n \"magic-string\": \"^0.30.17\",\n \"pathe\": \"^2.0.3\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/spy\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz\",\n \"integrity\": \"sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyspy\": \"^4.0.3\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/utils\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz\",\n \"integrity\": \"sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/pretty-format\": \"3.2.4\",\n \"loupe\": \"^3.1.4\",\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/ansi-regex\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",\n \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/ansi-styles\": {\n \"version\": \"4.3.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",\n \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-convert\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/assertion-error\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz\",\n \"integrity\": \"sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/browserslist\": {\n \"version\": \"4.25.1\",\n \"resolved\": \"https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz\",\n \"integrity\": \"sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"caniuse-lite\": \"^1.0.30001726\",\n \"electron-to-chromium\": \"^1.5.173\",\n \"node-releases\": \"^2.0.19\",\n \"update-browserslist-db\": \"^1.1.3\"\n },\n \"bin\": {\n \"browserslist\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7\"\n }\n },\n \"node_modules/buffer-from\": {\n \"version\": \"1.1.2\",\n \"resolved\": \"https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz\",\n \"integrity\": \"sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/cac\": {\n \"version\": \"6.7.14\",\n \"resolved\": \"https://registry.npmjs.org/cac/-/cac-6.7.14.tgz\",\n \"integrity\": \"sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/caniuse-lite\": {\n \"version\": \"1.0.30001727\",\n \"resolved\": \"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz\",\n \"integrity\": \"sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/caniuse-lite\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"CC-BY-4.0\"\n },\n \"node_modules/cbor-extract\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz\",\n \"integrity\": \"sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==\",\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"node-gyp-build-optional-packages\": \"5.1.1\"\n },\n \"bin\": {\n \"download-cbor-prebuilds\": \"bin/download-prebuilds.js\"\n },\n \"optionalDependencies\": {\n \"@cbor-extract/cbor-extract-darwin-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-darwin-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-win32-x64\": \"2.2.0\"\n }\n },\n \"node_modules/cbor-x\": {\n \"version\": \"1.6.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz\",\n \"integrity\": \"sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"optionalDependencies\": {\n \"cbor-extract\": \"^2.2.0\"\n }\n },\n \"node_modules/chai\": {\n \"version\": \"5.2.1\",\n \"resolved\": \"https://registry.npmjs.org/chai/-/chai-5.2.1.tgz\",\n \"integrity\": \"sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"assertion-error\": \"^2.0.1\",\n \"check-error\": \"^2.1.1\",\n \"deep-eql\": \"^5.0.1\",\n \"loupe\": \"^3.1.0\",\n \"pathval\": \"^2.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/chalk\": {\n \"version\": \"4.1.2\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",\n \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.1.0\",\n \"supports-color\": \"^7.1.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/chalk/node_modules/supports-color\": {\n \"version\": \"7.2.0\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",\n \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/check-error\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz\",\n \"integrity\": \"sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 16\"\n }\n },\n \"node_modules/cliui\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz\",\n \"integrity\": \"sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"string-width\": \"^4.2.0\",\n \"strip-ansi\": \"^6.0.1\",\n \"wrap-ansi\": \"^7.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/color-convert\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",\n \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-name\": \"~1.1.4\"\n },\n \"engines\": {\n \"node\": \">=7.0.0\"\n }\n },\n \"node_modules/color-name\": {\n \"version\": \"1.1.4\",\n \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",\n \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/concurrently\": {\n \"version\": \"8.2.2\",\n \"resolved\": \"https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz\",\n \"integrity\": \"sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"chalk\": \"^4.1.2\",\n \"date-fns\": \"^2.30.0\",\n \"lodash\": \"^4.17.21\",\n \"rxjs\": \"^7.8.1\",\n \"shell-quote\": \"^1.8.1\",\n \"spawn-command\": \"0.0.2\",\n \"supports-color\": \"^8.1.1\",\n \"tree-kill\": \"^1.2.2\",\n \"yargs\": \"^17.7.2\"\n },\n \"bin\": {\n \"conc\": \"dist/bin/concurrently.js\",\n \"concurrently\": \"dist/bin/concurrently.js\"\n },\n \"engines\": {\n \"node\": \"^14.13.0 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/open-cli-tools/concurrently?sponsor=1\"\n }\n },\n \"node_modules/convert-source-map\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz\",\n \"integrity\": \"sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/csstype\": {\n \"version\": \"3.1.3\",\n \"resolved\": \"https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz\",\n \"integrity\": \"sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/date-fns\": {\n \"version\": \"2.30.0\",\n \"resolved\": \"https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz\",\n \"integrity\": \"sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/runtime\": \"^7.21.0\"\n },\n \"engines\": {\n \"node\": \">=0.11\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/date-fns\"\n }\n },\n \"node_modules/debug\": {\n \"version\": \"4.4.1\",\n \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.4.1.tgz\",\n \"integrity\": \"sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ms\": \"^2.1.3\"\n },\n \"engines\": {\n \"node\": \">=6.0\"\n },\n \"peerDependenciesMeta\": {\n \"supports-color\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/deep-eql\": {\n \"version\": \"5.0.2\",\n \"resolved\": \"https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz\",\n \"integrity\": \"sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/detect-libc\": {\n \"version\": \"2.0.4\",\n \"resolved\": \"https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz\",\n \"integrity\": \"sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==\",\n \"license\": \"Apache-2.0\",\n \"optional\": true,\n \"peer\": true,\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/electron-to-chromium\": {\n \"version\": \"1.5.183\",\n \"resolved\": \"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.183.tgz\",\n \"integrity\": \"sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/emoji-regex\": {\n \"version\": \"8.0.0\",\n \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",\n \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/es-module-lexer\": {\n \"version\": \"1.7.0\",\n \"resolved\": \"https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz\",\n \"integrity\": \"sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/esbuild\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz\",\n \"integrity\": \"sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/android-arm\": \"0.18.20\",\n \"@esbuild/android-arm64\": \"0.18.20\",\n \"@esbuild/android-x64\": \"0.18.20\",\n \"@esbuild/darwin-arm64\": \"0.18.20\",\n \"@esbuild/darwin-x64\": \"0.18.20\",\n \"@esbuild/freebsd-arm64\": \"0.18.20\",\n \"@esbuild/freebsd-x64\": \"0.18.20\",\n \"@esbuild/linux-arm\": \"0.18.20\",\n \"@esbuild/linux-arm64\": \"0.18.20\",\n \"@esbuild/linux-ia32\": \"0.18.20\",\n \"@esbuild/linux-loong64\": \"0.18.20\",\n \"@esbuild/linux-mips64el\": \"0.18.20\",\n \"@esbuild/linux-ppc64\": \"0.18.20\",\n \"@esbuild/linux-riscv64\": \"0.18.20\",\n \"@esbuild/linux-s390x\": \"0.18.20\",\n \"@esbuild/linux-x64\": \"0.18.20\",\n \"@esbuild/netbsd-x64\": \"0.18.20\",\n \"@esbuild/openbsd-x64\": \"0.18.20\",\n \"@esbuild/sunos-x64\": \"0.18.20\",\n \"@esbuild/win32-arm64\": \"0.18.20\",\n \"@esbuild/win32-ia32\": \"0.18.20\",\n \"@esbuild/win32-x64\": \"0.18.20\"\n }\n },\n \"node_modules/escalade\": {\n \"version\": \"3.2.0\",\n \"resolved\": \"https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz\",\n \"integrity\": \"sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/estree-walker\": {\n \"version\": \"3.0.3\",\n \"resolved\": \"https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz\",\n \"integrity\": \"sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"^1.0.0\"\n }\n },\n \"node_modules/expect-type\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz\",\n \"integrity\": \"sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=12.0.0\"\n }\n },\n \"node_modules/fdir\": {\n \"version\": \"6.4.6\",\n \"resolved\": \"https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz\",\n \"integrity\": \"sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"picomatch\": \"^3 || ^4\"\n },\n \"peerDependenciesMeta\": {\n \"picomatch\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/fsevents\": {\n \"version\": \"2.3.3\",\n \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz\",\n \"integrity\": \"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \"^8.16.0 || ^10.6.0 || >=11.0.0\"\n }\n },\n \"node_modules/gensync\": {\n \"version\": \"1.0.0-beta.2\",\n \"resolved\": \"https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz\",\n \"integrity\": \"sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/get-caller-file\": {\n \"version\": \"2.0.5\",\n \"resolved\": \"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz\",\n \"integrity\": \"sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \"6.* || 8.* || >= 10.*\"\n }\n },\n \"node_modules/get-tsconfig\": {\n \"version\": \"4.10.1\",\n \"resolved\": \"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz\",\n \"integrity\": \"sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"resolve-pkg-maps\": \"^1.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/get-tsconfig?sponsor=1\"\n }\n },\n \"node_modules/has-flag\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",\n \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/invariant\": {\n \"version\": \"2.2.4\",\n \"resolved\": \"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz\",\n \"integrity\": \"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"loose-envify\": \"^1.0.0\"\n }\n },\n \"node_modules/is-fullwidth-code-point\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",\n \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/is-network-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz\",\n \"integrity\": \"sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/js-tokens\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz\",\n \"integrity\": \"sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==\",\n \"license\": \"MIT\"\n },\n \"node_modules/jsesc\": {\n \"version\": \"3.1.0\",\n \"resolved\": \"https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz\",\n \"integrity\": \"sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"jsesc\": \"bin/jsesc\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/json5\": {\n \"version\": \"2.2.3\",\n \"resolved\": \"https://registry.npmjs.org/json5/-/json5-2.2.3.tgz\",\n \"integrity\": \"sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"json5\": \"lib/cli.js\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/kleur\": {\n \"version\": \"3.0.3\",\n \"resolved\": \"https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz\",\n \"integrity\": \"sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/lodash\": {\n \"version\": \"4.17.21\",\n \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",\n \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/loose-envify\": {\n \"version\": \"1.4.0\",\n \"resolved\": \"https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz\",\n \"integrity\": \"sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^3.0.0 || ^4.0.0\"\n },\n \"bin\": {\n \"loose-envify\": \"cli.js\"\n }\n },\n \"node_modules/loupe\": {\n \"version\": \"3.1.4\",\n \"resolved\": \"https://registry.npmjs.org/loupe/-/loupe-3.1.4.tgz\",\n \"integrity\": \"sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/lru-cache\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz\",\n \"integrity\": \"sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"yallist\": \"^3.0.2\"\n }\n },\n \"node_modules/magic-string\": {\n \"version\": \"0.30.17\",\n \"resolved\": \"https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz\",\n \"integrity\": \"sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\"\n }\n },\n \"node_modules/ms\": {\n \"version\": \"2.1.3\",\n \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",\n \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/node-gyp-build-optional-packages\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz\",\n \"integrity\": \"sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==\",\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"detect-libc\": \"^2.0.1\"\n },\n \"bin\": {\n \"node-gyp-build-optional-packages\": \"bin.js\",\n \"node-gyp-build-optional-packages-optional\": \"optional.js\",\n \"node-gyp-build-optional-packages-test\": \"build-test.js\"\n }\n },\n \"node_modules/node-releases\": {\n \"version\": \"2.0.19\",\n \"resolved\": \"https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz\",\n \"integrity\": \"sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/on-change\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/on-change/-/on-change-5.0.1.tgz\",\n \"integrity\": \"sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/on-change?sponsor=1\"\n }\n },\n \"node_modules/p-retry\": {\n \"version\": \"6.2.1\",\n \"resolved\": \"https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz\",\n \"integrity\": \"sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"@types/retry\": \"0.12.2\",\n \"is-network-error\": \"^1.0.0\",\n \"retry\": \"^0.13.1\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/pathval\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz\",\n \"integrity\": \"sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 14.16\"\n }\n },\n \"node_modules/picocolors\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz\",\n \"integrity\": \"sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/picomatch\": {\n \"version\": \"4.0.2\",\n \"resolved\": \"https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz\",\n \"integrity\": \"sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/jonschlinkert\"\n }\n },\n \"node_modules/postcss\": {\n \"version\": \"8.5.6\",\n \"resolved\": \"https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz\",\n \"integrity\": \"sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/postcss/\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/postcss\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"nanoid\": \"^3.3.11\",\n \"picocolors\": \"^1.1.1\",\n \"source-map-js\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || >=14\"\n }\n },\n \"node_modules/prompts\": {\n \"version\": \"2.4.2\",\n \"resolved\": \"https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz\",\n \"integrity\": \"sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"kleur\": \"^3.0.3\",\n \"sisteransi\": \"^1.0.5\"\n },\n \"engines\": {\n \"node\": \">= 6\"\n }\n },\n \"node_modules/react\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react/-/react-18.3.1.tgz\",\n \"integrity\": \"sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n },\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/react-dom\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz\",\n \"integrity\": \"sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\",\n \"scheduler\": \"^0.23.2\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.3.1\"\n }\n },\n \"node_modules/react-refresh\": {\n \"version\": \"0.17.0\",\n \"resolved\": \"https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz\",\n \"integrity\": \"sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/require-directory\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz\",\n \"integrity\": \"sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/resolve-pkg-maps\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz\",\n \"integrity\": \"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/resolve-pkg-maps?sponsor=1\"\n }\n },\n \"node_modules/retry\": {\n \"version\": \"0.13.1\",\n \"resolved\": \"https://registry.npmjs.org/retry/-/retry-0.13.1.tgz\",\n \"integrity\": \"sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">= 4\"\n }\n },\n \"node_modules/rollup\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/rollup/-/rollup-4.45.0.tgz\",\n \"integrity\": \"sha512-WLjEcJRIo7i3WDDgOIJqVI2d+lAC3EwvOGy+Xfq6hs+GQuAA4Di/H72xmXkOhrIWFg2PFYSKZYfH0f4vfKXN4A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"1.0.8\"\n },\n \"bin\": {\n \"rollup\": \"dist/bin/rollup\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"optionalDependencies\": {\n \"@rollup/rollup-android-arm-eabi\": \"4.45.0\",\n \"@rollup/rollup-android-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-x64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-arm64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-x64\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-gnueabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-musleabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-loongarch64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-powerpc64le-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-s390x-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-musl\": \"4.45.0\",\n \"@rollup/rollup-win32-arm64-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-ia32-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-x64-msvc\": \"4.45.0\",\n \"fsevents\": \"~2.3.2\"\n }\n },\n \"node_modules/rxjs\": {\n \"version\": \"7.8.2\",\n \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz\",\n \"integrity\": \"sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"tslib\": \"^2.1.0\"\n }\n },\n \"node_modules/scheduler\": {\n \"version\": \"0.23.2\",\n \"resolved\": \"https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz\",\n \"integrity\": \"sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n }\n },\n \"node_modules/semver\": {\n \"version\": \"6.3.1\",\n \"resolved\": \"https://registry.npmjs.org/semver/-/semver-6.3.1.tgz\",\n \"integrity\": \"sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"bin\": {\n \"semver\": \"bin/semver.js\"\n }\n },\n \"node_modules/shell-quote\": {\n \"version\": \"1.8.3\",\n \"resolved\": \"https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz\",\n \"integrity\": \"sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 0.4\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/ljharb\"\n }\n },\n \"node_modules/siginfo\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz\",\n \"integrity\": \"sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/sisteransi\": {\n \"version\": \"1.0.5\",\n \"resolved\": \"https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz\",\n \"integrity\": \"sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/source-map\": {\n \"version\": \"0.6.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz\",\n \"integrity\": \"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/source-map-js\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz\",\n \"integrity\": \"sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/source-map-support\": {\n \"version\": \"0.5.21\",\n \"resolved\": \"https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz\",\n \"integrity\": \"sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"buffer-from\": \"^1.0.0\",\n \"source-map\": \"^0.6.0\"\n }\n },\n \"node_modules/spawn-command\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz\",\n \"integrity\": \"sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==\",\n \"dev\": true\n },\n \"node_modules/stackback\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz\",\n \"integrity\": \"sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/std-env\": {\n \"version\": \"3.9.0\",\n \"resolved\": \"https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz\",\n \"integrity\": \"sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/string-width\": {\n \"version\": \"4.2.3\",\n \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",\n \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"emoji-regex\": \"^8.0.0\",\n \"is-fullwidth-code-point\": \"^3.0.0\",\n \"strip-ansi\": \"^6.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-ansi\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",\n \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-regex\": \"^5.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-literal\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz\",\n \"integrity\": \"sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^9.0.1\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/strip-literal/node_modules/js-tokens\": {\n \"version\": \"9.0.1\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz\",\n \"integrity\": \"sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/supports-color\": {\n \"version\": \"8.1.1\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",\n \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/supports-color?sponsor=1\"\n }\n },\n \"node_modules/tinybench\": {\n \"version\": \"2.9.0\",\n \"resolved\": \"https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz\",\n \"integrity\": \"sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyexec\": {\n \"version\": \"0.3.2\",\n \"resolved\": \"https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz\",\n \"integrity\": \"sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyglobby\": {\n \"version\": \"0.2.14\",\n \"resolved\": \"https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz\",\n \"integrity\": \"sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"fdir\": \"^6.4.4\",\n \"picomatch\": \"^4.0.2\"\n },\n \"engines\": {\n \"node\": \">=12.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/SuperchupuDev\"\n }\n },\n \"node_modules/tinypool\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz\",\n \"integrity\": \"sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n }\n },\n \"node_modules/tinyrainbow\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz\",\n \"integrity\": \"sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tinyspy\": {\n \"version\": \"4.0.3\",\n \"resolved\": \"https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz\",\n \"integrity\": \"sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tree-kill\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz\",\n \"integrity\": \"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"tree-kill\": \"cli.js\"\n }\n },\n \"node_modules/tslib\": {\n \"version\": \"2.8.1\",\n \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz\",\n \"integrity\": \"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==\",\n \"dev\": true,\n \"license\": \"0BSD\"\n },\n \"node_modules/tsx\": {\n \"version\": \"3.14.0\",\n \"resolved\": \"https://registry.npmjs.org/tsx/-/tsx-3.14.0.tgz\",\n \"integrity\": \"sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"~0.18.20\",\n \"get-tsconfig\": \"^4.7.2\",\n \"source-map-support\": \"^0.5.21\"\n },\n \"bin\": {\n \"tsx\": \"dist/cli.mjs\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n }\n },\n \"node_modules/typescript\": {\n \"version\": \"5.8.3\",\n \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz\",\n \"integrity\": \"sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"bin\": {\n \"tsc\": \"bin/tsc\",\n \"tsserver\": \"bin/tsserver\"\n },\n \"engines\": {\n \"node\": \">=14.17\"\n }\n },\n \"node_modules/undici-types\": {\n \"version\": \"6.21.0\",\n \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/update-browserslist-db\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz\",\n \"integrity\": \"sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"escalade\": \"^3.2.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"bin\": {\n \"update-browserslist-db\": \"cli.js\"\n },\n \"peerDependencies\": {\n \"browserslist\": \">= 4.21.0\"\n }\n },\n \"node_modules/use-sync-external-store\": {\n \"version\": \"1.5.0\",\n \"resolved\": \"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz\",\n \"integrity\": \"sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==\",\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/vite\": {\n \"version\": \"5.4.19\",\n \"resolved\": \"https://registry.npmjs.org/vite/-/vite-5.4.19.tgz\",\n \"integrity\": \"sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"^0.21.3\",\n \"postcss\": \"^8.4.43\",\n \"rollup\": \"^4.20.0\"\n },\n \"bin\": {\n \"vite\": \"bin/vite.js\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/vitejs/vite?sponsor=1\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n },\n \"peerDependencies\": {\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"less\": \"*\",\n \"lightningcss\": \"^1.21.0\",\n \"sass\": \"*\",\n \"sass-embedded\": \"*\",\n \"stylus\": \"*\",\n \"sugarss\": \"*\",\n \"terser\": \"^5.4.0\"\n },\n \"peerDependenciesMeta\": {\n \"@types/node\": {\n \"optional\": true\n },\n \"less\": {\n \"optional\": true\n },\n \"lightningcss\": {\n \"optional\": true\n },\n \"sass\": {\n \"optional\": true\n },\n \"sass-embedded\": {\n \"optional\": true\n },\n \"stylus\": {\n \"optional\": true\n },\n \"sugarss\": {\n \"optional\": true\n },\n \"terser\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/vite-node\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz\",\n \"integrity\": \"sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cac\": \"^6.7.14\",\n \"debug\": \"^4.4.1\",\n \"es-module-lexer\": \"^1.7.0\",\n \"pathe\": \"^2.0.3\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\"\n },\n \"bin\": {\n \"vite-node\": \"vite-node.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz\",\n \"integrity\": \"sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz\",\n \"integrity\": \"sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz\",\n \"integrity\": \"sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz\",\n \"integrity\": \"sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/esbuild\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz\",\n \"integrity\": \"sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.21.5\",\n \"@esbuild/android-arm\": \"0.21.5\",\n \"@esbuild/android-arm64\": \"0.21.5\",\n \"@esbuild/android-x64\": \"0.21.5\",\n \"@esbuild/darwin-arm64\": \"0.21.5\",\n \"@esbuild/darwin-x64\": \"0.21.5\",\n \"@esbuild/freebsd-arm64\": \"0.21.5\",\n \"@esbuild/freebsd-x64\": \"0.21.5\",\n \"@esbuild/linux-arm\": \"0.21.5\",\n \"@esbuild/linux-arm64\": \"0.21.5\",\n \"@esbuild/linux-ia32\": \"0.21.5\",\n \"@esbuild/linux-loong64\": \"0.21.5\",\n \"@esbuild/linux-mips64el\": \"0.21.5\",\n \"@esbuild/linux-ppc64\": \"0.21.5\",\n \"@esbuild/linux-riscv64\": \"0.21.5\",\n \"@esbuild/linux-s390x\": \"0.21.5\",\n \"@esbuild/linux-x64\": \"0.21.5\",\n \"@esbuild/netbsd-x64\": \"0.21.5\",\n \"@esbuild/openbsd-x64\": \"0.21.5\",\n \"@esbuild/sunos-x64\": \"0.21.5\",\n \"@esbuild/win32-arm64\": \"0.21.5\",\n \"@esbuild/win32-ia32\": \"0.21.5\",\n \"@esbuild/win32-x64\": \"0.21.5\"\n }\n },\n \"node_modules/vitest\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz\",\n \"integrity\": \"sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/chai\": \"^5.2.2\",\n \"@vitest/expect\": \"3.2.4\",\n \"@vitest/mocker\": \"3.2.4\",\n \"@vitest/pretty-format\": \"^3.2.4\",\n \"@vitest/runner\": \"3.2.4\",\n \"@vitest/snapshot\": \"3.2.4\",\n \"@vitest/spy\": \"3.2.4\",\n \"@vitest/utils\": \"3.2.4\",\n \"chai\": \"^5.2.0\",\n \"debug\": \"^4.4.1\",\n \"expect-type\": \"^1.2.1\",\n \"magic-string\": \"^0.30.17\",\n \"pathe\": \"^2.0.3\",\n \"picomatch\": \"^4.0.2\",\n \"std-env\": \"^3.9.0\",\n \"tinybench\": \"^2.9.0\",\n \"tinyexec\": \"^0.3.2\",\n \"tinyglobby\": \"^0.2.14\",\n \"tinypool\": \"^1.1.1\",\n \"tinyrainbow\": \"^2.0.0\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\",\n \"vite-node\": \"3.2.4\",\n \"why-is-node-running\": \"^2.3.0\"\n },\n \"bin\": {\n \"vitest\": \"vitest.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"@edge-runtime/vm\": \"*\",\n \"@types/debug\": \"^4.1.12\",\n \"@types/node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\",\n \"@vitest/browser\": \"3.2.4\",\n \"@vitest/ui\": \"3.2.4\",\n \"happy-dom\": \"*\",\n \"jsdom\": \"*\"\n },\n \"peerDependenciesMeta\": {\n \"@edge-runtime/vm\": {\n \"optional\": true\n },\n \"@types/debug\": {\n \"optional\": true\n },\n \"@types/node\": {\n \"optional\": true\n },\n \"@vitest/browser\": {\n \"optional\": true\n },\n \"@vitest/ui\": {\n \"optional\": true\n },\n \"happy-dom\": {\n \"optional\": true\n },\n \"jsdom\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/why-is-node-running\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz\",\n \"integrity\": \"sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"siginfo\": \"^2.0.0\",\n \"stackback\": \"0.0.2\"\n },\n \"bin\": {\n \"why-is-node-running\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/wrap-ansi\": {\n \"version\": \"7.0.0\",\n \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",\n \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.0.0\",\n \"string-width\": \"^4.1.0\",\n \"strip-ansi\": \"^6.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/wrap-ansi?sponsor=1\"\n }\n },\n \"node_modules/y18n\": {\n \"version\": \"5.0.8\",\n \"resolved\": \"https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz\",\n \"integrity\": \"sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/yallist\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz\",\n \"integrity\": \"sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/yargs\": {\n \"version\": \"17.7.2\",\n \"resolved\": \"https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz\",\n \"integrity\": \"sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cliui\": \"^8.0.1\",\n \"escalade\": \"^3.1.1\",\n \"get-caller-file\": \"^2.0.5\",\n \"require-directory\": \"^2.1.1\",\n \"string-width\": \"^4.2.3\",\n \"y18n\": \"^5.0.5\",\n \"yargs-parser\": \"^21.1.1\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yargs-parser\": {\n \"version\": \"21.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz\",\n \"integrity\": \"sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/zod\": {\n \"version\": \"3.25.76\",\n \"resolved\": \"https://registry.npmjs.org/zod/-/zod-3.25.76.tgz\",\n \"integrity\": \"sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"funding\": {\n \"url\": \"https://github.com/sponsors/colinhacks\"\n }\n }\n }\n}\n",
- "package.json": "{\n \"name\": \"chat-room\",\n \"version\": \"0.9.1\",\n \"private\": true,\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"concurrently \\\"npm run dev:backend\\\" \\\"npm run dev:frontend\\\"\",\n \"dev:backend\": \"tsx --watch src/backend/server.ts\",\n \"dev:frontend\": \"vite\",\n \"dev:cli\": \"tsx src/scripts/cli.ts\",\n \"check-types\": \"tsc --noEmit\",\n \"test\": \"vitest run\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^22.13.9\",\n \"@types/prompts\": \"^2\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"concurrently\": \"^8.2.2\",\n \"prompts\": \"^2.4.2\",\n \"@rivetkit/actor\": \"^0.9.1\",\n \"tsx\": \"^3.12.7\",\n \"typescript\": \"^5.5.2\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^3.1.1\"\n },\n \"dependencies\": {\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"stableVersion\": \"0.8.0\"\n}\n",
+ "package-lock.json": "{\n \"name\": \"chat-room\",\n \"version\": \"0.9.1\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n \"name\": \"chat-room\",\n \"version\": \"0.9.1\",\n \"dependencies\": {\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"rivetkit\": \"^0.9.1\",\n \"@types/node\": \"^22.13.9\",\n \"@types/prompts\": \"^2\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"concurrently\": \"^8.2.2\",\n \"prompts\": \"^2.4.2\",\n \"tsx\": \"^3.12.7\",\n \"typescript\": \"^5.5.2\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^3.1.1\"\n }\n },\n \"node_modules/@ampproject/remapping\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz\",\n \"integrity\": \"sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@jridgewell/gen-mapping\": \"^0.3.5\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/code-frame\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz\",\n \"integrity\": \"sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"js-tokens\": \"^4.0.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/compat-data\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz\",\n \"integrity\": \"sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/core\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz\",\n \"integrity\": \"sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@ampproject/remapping\": \"^2.2.0\",\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-compilation-targets\": \"^7.27.2\",\n \"@babel/helper-module-transforms\": \"^7.27.3\",\n \"@babel/helpers\": \"^7.27.6\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/traverse\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"convert-source-map\": \"^2.0.0\",\n \"debug\": \"^4.1.0\",\n \"gensync\": \"^1.0.0-beta.2\",\n \"json5\": \"^2.2.3\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/babel\"\n }\n },\n \"node_modules/@babel/generator\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz\",\n \"integrity\": \"sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"@jridgewell/gen-mapping\": \"^0.3.12\",\n \"@jridgewell/trace-mapping\": \"^0.3.28\",\n \"jsesc\": \"^3.0.2\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-compilation-targets\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz\",\n \"integrity\": \"sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/compat-data\": \"^7.27.2\",\n \"@babel/helper-validator-option\": \"^7.27.1\",\n \"browserslist\": \"^4.24.0\",\n \"lru-cache\": \"^5.1.1\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-globals\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz\",\n \"integrity\": \"sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-imports\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz\",\n \"integrity\": \"sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/traverse\": \"^7.27.1\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-transforms\": {\n \"version\": \"7.27.3\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz\",\n \"integrity\": \"sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-module-imports\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"@babel/traverse\": \"^7.27.3\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0\"\n }\n },\n \"node_modules/@babel/helper-plugin-utils\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz\",\n \"integrity\": \"sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-string-parser\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz\",\n \"integrity\": \"sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-identifier\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz\",\n \"integrity\": \"sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-option\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz\",\n \"integrity\": \"sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helpers\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz\",\n \"integrity\": \"sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.6\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/parser\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz\",\n \"integrity\": \"sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.28.0\"\n },\n \"bin\": {\n \"parser\": \"bin/babel-parser.js\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-self\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz\",\n \"integrity\": \"sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-source\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz\",\n \"integrity\": \"sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/runtime\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz\",\n \"integrity\": \"sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/template\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz\",\n \"integrity\": \"sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/parser\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/traverse\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz\",\n \"integrity\": \"sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-globals\": \"^7.28.0\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.28.0\",\n \"debug\": \"^4.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/types\": {\n \"version\": \"7.28.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz\",\n \"integrity\": \"sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-string-parser\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz\",\n \"integrity\": \"sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==\",\n \"cpu\": [\n \"arm\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-win32-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"peer\": true\n },\n \"node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-arm\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz\",\n \"integrity\": \"sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz\",\n \"integrity\": \"sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz\",\n \"integrity\": \"sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz\",\n \"integrity\": \"sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz\",\n \"integrity\": \"sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz\",\n \"integrity\": \"sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz\",\n \"integrity\": \"sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz\",\n \"integrity\": \"sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz\",\n \"integrity\": \"sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@jridgewell/gen-mapping\": {\n \"version\": \"0.3.12\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz\",\n \"integrity\": \"sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n }\n },\n \"node_modules/@jridgewell/resolve-uri\": {\n \"version\": \"3.1.2\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz\",\n \"integrity\": \"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@jridgewell/sourcemap-codec\": {\n \"version\": \"1.5.4\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz\",\n \"integrity\": \"sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@jridgewell/trace-mapping\": {\n \"version\": \"0.3.29\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz\",\n \"integrity\": \"sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/resolve-uri\": \"^3.1.0\",\n \"@jridgewell/sourcemap-codec\": \"^1.4.14\"\n }\n },\n \"node_modules/rivetkit\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/rivetkit/-/actor-0.9.1.tgz\",\n \"integrity\": \"sha512-aVoWO81JrYql6hhXX+vRor0B+aeWrnh+9zkcrxbh0EXFBbS5XM8YE4sSFxNKmZThLbGNqfZ5enm1zuA92c7I1w==\",\n \"dev\": true,\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/core\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/core/-/core-0.9.1.tgz\",\n \"integrity\": \"sha512-0zYFKo08CQ72Rm6MaVKxcJSEEfn/ypGkkxTX06Q4meCGHuDJFbPA5wopa3NdxrKBPttcGg1QAmDd+1FZnlpubA==\",\n \"license\": \"Apache-2.0\",\n \"peer\": true,\n \"dependencies\": {\n \"cbor-x\": \"^1.6.0\",\n \"invariant\": \"^2.2.4\",\n \"on-change\": \"^5.0.1\",\n \"p-retry\": \"^6.2.1\",\n \"zod\": \"^3.25.67\"\n },\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"peerDependencies\": {\n \"@hono/node-server\": \"^1.14.0\",\n \"@hono/node-ws\": \"^1.1.1\",\n \"@hono/zod-openapi\": \"^0.19.6\",\n \"eventsource\": \"^3.0.5\",\n \"hono\": \"^4.7.0\",\n \"ws\": \"^8.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"@hono/node-server\": {\n \"optional\": true\n },\n \"@hono/node-ws\": {\n \"optional\": true\n },\n \"@hono/zod-openapi\": {\n \"optional\": true\n },\n \"eventsource\": {\n \"optional\": true\n },\n \"hono\": {\n \"optional\": true\n },\n \"ws\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@rivetkit/framework-base\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/framework-base/-/framework-base-0.9.1.tgz\",\n \"integrity\": \"sha512-FxhSqGAtDsD4k7gKS2EhJ5hHsEwI1+QR0vYThUBOLcmXM7zjMZndqIjVperQO4ck/zfjRqjm3lw7znkc+k0wNQ==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@tanstack/store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/react\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/react/-/react-0.9.1.tgz\",\n \"integrity\": \"sha512-0e0gNNj3qCrXHNIxE6ggEEX+E6HjdsSt9pJbWbaQQg+1bsywupRTSdgSDguDHjBvi9qhR9mh7UbNN3A9wYqXuA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@rivetkit/framework-base\": \"0.9.1\",\n \"@tanstack/react-store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\",\n \"react\": \"^18 || ^19\",\n \"react-dom\": \"^18 || ^19\"\n }\n },\n \"node_modules/@rolldown/pluginutils\": {\n \"version\": \"1.0.0-beta.19\",\n \"resolved\": \"https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz\",\n \"integrity\": \"sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@rollup/rollup-android-arm-eabi\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.0.tgz\",\n \"integrity\": \"sha512-2o/FgACbji4tW1dzXOqAV15Eu7DdgbKsF2QKcxfG4xbh5iwU7yr5RRP5/U+0asQliSYv5M4o7BevlGIoSL0LXg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-android-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-PSZ0SvMOjEAxwZeTx32eI/j5xSYtDCRxGu5k9zvzoY77xUNssZM+WV6HYBLROpY5CkXsbQjvz40fBb7WPwDqtQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-BA4yPIPssPB2aRAWzmqzQ3y2/KotkLyZukVB7j3psK/U3nVJdceo6qr9pLM2xN6iRP/wKfxEbOb1yrlZH6sYZg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-Pr2o0lvTwsiG4HCr43Zy9xXrHspyMvsvEw4FwKYqhli4FuLE5FjcZzuQ4cfPe0iUFCvSQG6lACI0xj74FDZKRA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-lYE8LkE5h4a/+6VnnLiL14zWMPnx6wNbDG23GcYFpRW1V9hYWHAw9lBZ6ZUIrOaoK7NliF1sdwYGiVmziUF4vA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-PVQWZK9sbzpvqC9Q0GlehNNSVHR+4m7+wET+7FgSnKG3ci5nAMgGmr9mGBXzAuE5SvguCKJ6mHL6vq1JaJ/gvw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-gnueabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-hLrmRl53prCcD+YXTfNvXd776HTxNh8wPAMllusQ+amcQmtgo3V5i/nkhPN6FakW+QVLoUUr2AsbtIRPFU3xIA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-musleabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-XBKGSYcrkdiRRjl+8XvrUR3AosXU0NvF7VuqMsm7s5nRy+nt58ZMB19Jdp1RdqewLcaYnpk8zeVs/4MlLZEJxw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-fRvZZPUiBz7NztBE/2QnCS5AtqLVhXmUOPj9IHlfGEXkapgImf4W9+FSkL8cWqoAjozyUzqFmSc4zh2ooaeF6g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-Btv2WRZOcUGi8XU80XwIvzTg4U6+l6D0V6sZTrZx214nrwxw5nAi8hysaXj/mctyClWgesyuxbeLylCBNauimg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loongarch64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-Li0emNnwtUZdLwHjQPBxn4VWztcrw/h7mgLyHiEI5Z0MhpeFGlzaiBHpSNVOMB/xucjXTTcO+dhv469Djr16KA==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-powerpc64le-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-sB8+pfkYx2kvpDCfd63d5ScYT0Fz1LO6jIb2zLZvmK9ob2D8DeVqrmBDE0iDK8KlBVmsTNzrjr3G1xV4eUZhSw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-5GQ6PFhh7E6jQm70p1aW05G2cap5zMOvO0se5JMecHeAdj5ZhWEHbJ4hiKpfi1nnnEdTauDXxPgXae/mqjow9w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-N/euLsBd1rekWcuduakTo/dJw6U6sBP3eUq+RXM9RNfPuWTvG2w/WObDkIvJ2KChy6oxZmOSC08Ak2OJA0UiAA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-s390x-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-2l9sA7d7QdikL0xQwNMO3xURBUNEWyHVHfAsHsUdq+E/pgLTUcCE+gih5PCdmyHmfTDeXUWVhqL0WZzg0nua3g==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-XZdD3fEEQcwG2KrJDdEQu7NrHonPxxaV0/w2HpvINBdcqebz1aL+0vM2WFJq4DeiAVT6F5SUQas65HY5JDqoPw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-7ayfgvtmmWgKWBkCGg5+xTQ0r5V1owVm67zTrsEY1008L5ro7mCyGYORomARt/OquB9KY7LpxVBZes+oSniAAQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-arm64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-B+IJgcBnE2bm93jEW5kHisqvPITs4ddLOROAcOc/diBgrEiQJJ6Qcjby75rFSmH5eMGrqJryUgJDhrfj942apQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-ia32-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-+CXwwG66g0/FpWOnP/v1HnrGVSOygK/osUbu3wPRy8ECXjoYKjRAyfxYpDQOfghC5qPJYLPH0oN4MCOjwgdMug==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@tanstack/react-store\": {\n \"version\": \"0.7.3\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.7.3.tgz\",\n \"integrity\": \"sha512-3Dnqtbw9P2P0gw8uUM8WP2fFfg8XMDSZCTsywRPZe/XqqYW8PGkXKZTvP0AHkE4mpqP9Y43GpOg9vwO44azu6Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@tanstack/store\": \"0.7.2\",\n \"use-sync-external-store\": \"^1.5.0\"\n },\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\",\n \"react-dom\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/@tanstack/store\": {\n \"version\": \"0.7.2\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/store/-/store-0.7.2.tgz\",\n \"integrity\": \"sha512-RP80Z30BYiPX2Pyo0Nyw4s1SJFH2jyM6f9i3HfX4pA+gm5jsnYryscdq2aIQLnL4TaGuQMO+zXmN9nh1Qck+Pg==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n }\n },\n \"node_modules/@types/babel__core\": {\n \"version\": \"7.20.5\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz\",\n \"integrity\": \"sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.20.7\",\n \"@babel/types\": \"^7.20.7\",\n \"@types/babel__generator\": \"*\",\n \"@types/babel__template\": \"*\",\n \"@types/babel__traverse\": \"*\"\n }\n },\n \"node_modules/@types/babel__generator\": {\n \"version\": \"7.27.0\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz\",\n \"integrity\": \"sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__template\": {\n \"version\": \"7.4.4\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz\",\n \"integrity\": \"sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.1.0\",\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__traverse\": {\n \"version\": \"7.20.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz\",\n \"integrity\": \"sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.20.7\"\n }\n },\n \"node_modules/@types/chai\": {\n \"version\": \"5.2.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz\",\n \"integrity\": \"sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/deep-eql\": \"*\"\n }\n },\n \"node_modules/@types/deep-eql\": {\n \"version\": \"4.0.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz\",\n \"integrity\": \"sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/estree\": {\n \"version\": \"1.0.8\",\n \"resolved\": \"https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz\",\n \"integrity\": \"sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/node\": {\n \"version\": \"22.16.3\",\n \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-22.16.3.tgz\",\n \"integrity\": \"sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"undici-types\": \"~6.21.0\"\n }\n },\n \"node_modules/@types/prompts\": {\n \"version\": \"2.4.9\",\n \"resolved\": \"https://registry.npmjs.org/@types/prompts/-/prompts-2.4.9.tgz\",\n \"integrity\": \"sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/node\": \"*\",\n \"kleur\": \"^3.0.3\"\n }\n },\n \"node_modules/@types/prop-types\": {\n \"version\": \"15.7.15\",\n \"resolved\": \"https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz\",\n \"integrity\": \"sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/react\": {\n \"version\": \"18.3.23\",\n \"resolved\": \"https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz\",\n \"integrity\": \"sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/prop-types\": \"*\",\n \"csstype\": \"^3.0.2\"\n }\n },\n \"node_modules/@types/react-dom\": {\n \"version\": \"18.3.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz\",\n \"integrity\": \"sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"@types/react\": \"^18.0.0\"\n }\n },\n \"node_modules/@types/retry\": {\n \"version\": \"0.12.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz\",\n \"integrity\": \"sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==\",\n \"license\": \"MIT\",\n \"peer\": true\n },\n \"node_modules/@vitejs/plugin-react\": {\n \"version\": \"4.6.0\",\n \"resolved\": \"https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz\",\n \"integrity\": \"sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/core\": \"^7.27.4\",\n \"@babel/plugin-transform-react-jsx-self\": \"^7.27.1\",\n \"@babel/plugin-transform-react-jsx-source\": \"^7.27.1\",\n \"@rolldown/pluginutils\": \"1.0.0-beta.19\",\n \"@types/babel__core\": \"^7.20.5\",\n \"react-refresh\": \"^0.17.0\"\n },\n \"engines\": {\n \"node\": \"^14.18.0 || >=16.0.0\"\n },\n \"peerDependencies\": {\n \"vite\": \"^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0\"\n }\n },\n \"node_modules/@vitest/expect\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz\",\n \"integrity\": \"sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/chai\": \"^5.2.2\",\n \"@vitest/spy\": \"3.2.4\",\n \"@vitest/utils\": \"3.2.4\",\n \"chai\": \"^5.2.0\",\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/mocker\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz\",\n \"integrity\": \"sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/spy\": \"3.2.4\",\n \"estree-walker\": \"^3.0.3\",\n \"magic-string\": \"^0.30.17\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"msw\": \"^2.4.9\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\"\n },\n \"peerDependenciesMeta\": {\n \"msw\": {\n \"optional\": true\n },\n \"vite\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@vitest/pretty-format\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz\",\n \"integrity\": \"sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/runner\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz\",\n \"integrity\": \"sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/utils\": \"3.2.4\",\n \"pathe\": \"^2.0.3\",\n \"strip-literal\": \"^3.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/snapshot\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz\",\n \"integrity\": \"sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/pretty-format\": \"3.2.4\",\n \"magic-string\": \"^0.30.17\",\n \"pathe\": \"^2.0.3\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/spy\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz\",\n \"integrity\": \"sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyspy\": \"^4.0.3\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/utils\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz\",\n \"integrity\": \"sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/pretty-format\": \"3.2.4\",\n \"loupe\": \"^3.1.4\",\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/ansi-regex\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",\n \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/ansi-styles\": {\n \"version\": \"4.3.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",\n \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-convert\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/assertion-error\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz\",\n \"integrity\": \"sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/browserslist\": {\n \"version\": \"4.25.1\",\n \"resolved\": \"https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz\",\n \"integrity\": \"sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"caniuse-lite\": \"^1.0.30001726\",\n \"electron-to-chromium\": \"^1.5.173\",\n \"node-releases\": \"^2.0.19\",\n \"update-browserslist-db\": \"^1.1.3\"\n },\n \"bin\": {\n \"browserslist\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7\"\n }\n },\n \"node_modules/buffer-from\": {\n \"version\": \"1.1.2\",\n \"resolved\": \"https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz\",\n \"integrity\": \"sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/cac\": {\n \"version\": \"6.7.14\",\n \"resolved\": \"https://registry.npmjs.org/cac/-/cac-6.7.14.tgz\",\n \"integrity\": \"sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/caniuse-lite\": {\n \"version\": \"1.0.30001727\",\n \"resolved\": \"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz\",\n \"integrity\": \"sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/caniuse-lite\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"CC-BY-4.0\"\n },\n \"node_modules/cbor-extract\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz\",\n \"integrity\": \"sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==\",\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"node-gyp-build-optional-packages\": \"5.1.1\"\n },\n \"bin\": {\n \"download-cbor-prebuilds\": \"bin/download-prebuilds.js\"\n },\n \"optionalDependencies\": {\n \"@cbor-extract/cbor-extract-darwin-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-darwin-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-win32-x64\": \"2.2.0\"\n }\n },\n \"node_modules/cbor-x\": {\n \"version\": \"1.6.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz\",\n \"integrity\": \"sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"optionalDependencies\": {\n \"cbor-extract\": \"^2.2.0\"\n }\n },\n \"node_modules/chai\": {\n \"version\": \"5.2.1\",\n \"resolved\": \"https://registry.npmjs.org/chai/-/chai-5.2.1.tgz\",\n \"integrity\": \"sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"assertion-error\": \"^2.0.1\",\n \"check-error\": \"^2.1.1\",\n \"deep-eql\": \"^5.0.1\",\n \"loupe\": \"^3.1.0\",\n \"pathval\": \"^2.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/chalk\": {\n \"version\": \"4.1.2\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",\n \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.1.0\",\n \"supports-color\": \"^7.1.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/chalk/node_modules/supports-color\": {\n \"version\": \"7.2.0\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",\n \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/check-error\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz\",\n \"integrity\": \"sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 16\"\n }\n },\n \"node_modules/cliui\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz\",\n \"integrity\": \"sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"string-width\": \"^4.2.0\",\n \"strip-ansi\": \"^6.0.1\",\n \"wrap-ansi\": \"^7.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/color-convert\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",\n \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-name\": \"~1.1.4\"\n },\n \"engines\": {\n \"node\": \">=7.0.0\"\n }\n },\n \"node_modules/color-name\": {\n \"version\": \"1.1.4\",\n \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",\n \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/concurrently\": {\n \"version\": \"8.2.2\",\n \"resolved\": \"https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz\",\n \"integrity\": \"sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"chalk\": \"^4.1.2\",\n \"date-fns\": \"^2.30.0\",\n \"lodash\": \"^4.17.21\",\n \"rxjs\": \"^7.8.1\",\n \"shell-quote\": \"^1.8.1\",\n \"spawn-command\": \"0.0.2\",\n \"supports-color\": \"^8.1.1\",\n \"tree-kill\": \"^1.2.2\",\n \"yargs\": \"^17.7.2\"\n },\n \"bin\": {\n \"conc\": \"dist/bin/concurrently.js\",\n \"concurrently\": \"dist/bin/concurrently.js\"\n },\n \"engines\": {\n \"node\": \"^14.13.0 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/open-cli-tools/concurrently?sponsor=1\"\n }\n },\n \"node_modules/convert-source-map\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz\",\n \"integrity\": \"sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/csstype\": {\n \"version\": \"3.1.3\",\n \"resolved\": \"https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz\",\n \"integrity\": \"sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/date-fns\": {\n \"version\": \"2.30.0\",\n \"resolved\": \"https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz\",\n \"integrity\": \"sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/runtime\": \"^7.21.0\"\n },\n \"engines\": {\n \"node\": \">=0.11\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/date-fns\"\n }\n },\n \"node_modules/debug\": {\n \"version\": \"4.4.1\",\n \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.4.1.tgz\",\n \"integrity\": \"sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ms\": \"^2.1.3\"\n },\n \"engines\": {\n \"node\": \">=6.0\"\n },\n \"peerDependenciesMeta\": {\n \"supports-color\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/deep-eql\": {\n \"version\": \"5.0.2\",\n \"resolved\": \"https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz\",\n \"integrity\": \"sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/detect-libc\": {\n \"version\": \"2.0.4\",\n \"resolved\": \"https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz\",\n \"integrity\": \"sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==\",\n \"license\": \"Apache-2.0\",\n \"optional\": true,\n \"peer\": true,\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/electron-to-chromium\": {\n \"version\": \"1.5.183\",\n \"resolved\": \"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.183.tgz\",\n \"integrity\": \"sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/emoji-regex\": {\n \"version\": \"8.0.0\",\n \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",\n \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/es-module-lexer\": {\n \"version\": \"1.7.0\",\n \"resolved\": \"https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz\",\n \"integrity\": \"sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/esbuild\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz\",\n \"integrity\": \"sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/android-arm\": \"0.18.20\",\n \"@esbuild/android-arm64\": \"0.18.20\",\n \"@esbuild/android-x64\": \"0.18.20\",\n \"@esbuild/darwin-arm64\": \"0.18.20\",\n \"@esbuild/darwin-x64\": \"0.18.20\",\n \"@esbuild/freebsd-arm64\": \"0.18.20\",\n \"@esbuild/freebsd-x64\": \"0.18.20\",\n \"@esbuild/linux-arm\": \"0.18.20\",\n \"@esbuild/linux-arm64\": \"0.18.20\",\n \"@esbuild/linux-ia32\": \"0.18.20\",\n \"@esbuild/linux-loong64\": \"0.18.20\",\n \"@esbuild/linux-mips64el\": \"0.18.20\",\n \"@esbuild/linux-ppc64\": \"0.18.20\",\n \"@esbuild/linux-riscv64\": \"0.18.20\",\n \"@esbuild/linux-s390x\": \"0.18.20\",\n \"@esbuild/linux-x64\": \"0.18.20\",\n \"@esbuild/netbsd-x64\": \"0.18.20\",\n \"@esbuild/openbsd-x64\": \"0.18.20\",\n \"@esbuild/sunos-x64\": \"0.18.20\",\n \"@esbuild/win32-arm64\": \"0.18.20\",\n \"@esbuild/win32-ia32\": \"0.18.20\",\n \"@esbuild/win32-x64\": \"0.18.20\"\n }\n },\n \"node_modules/escalade\": {\n \"version\": \"3.2.0\",\n \"resolved\": \"https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz\",\n \"integrity\": \"sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/estree-walker\": {\n \"version\": \"3.0.3\",\n \"resolved\": \"https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz\",\n \"integrity\": \"sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"^1.0.0\"\n }\n },\n \"node_modules/expect-type\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz\",\n \"integrity\": \"sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=12.0.0\"\n }\n },\n \"node_modules/fdir\": {\n \"version\": \"6.4.6\",\n \"resolved\": \"https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz\",\n \"integrity\": \"sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"picomatch\": \"^3 || ^4\"\n },\n \"peerDependenciesMeta\": {\n \"picomatch\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/fsevents\": {\n \"version\": \"2.3.3\",\n \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz\",\n \"integrity\": \"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \"^8.16.0 || ^10.6.0 || >=11.0.0\"\n }\n },\n \"node_modules/gensync\": {\n \"version\": \"1.0.0-beta.2\",\n \"resolved\": \"https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz\",\n \"integrity\": \"sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/get-caller-file\": {\n \"version\": \"2.0.5\",\n \"resolved\": \"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz\",\n \"integrity\": \"sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \"6.* || 8.* || >= 10.*\"\n }\n },\n \"node_modules/get-tsconfig\": {\n \"version\": \"4.10.1\",\n \"resolved\": \"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz\",\n \"integrity\": \"sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"resolve-pkg-maps\": \"^1.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/get-tsconfig?sponsor=1\"\n }\n },\n \"node_modules/has-flag\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",\n \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/invariant\": {\n \"version\": \"2.2.4\",\n \"resolved\": \"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz\",\n \"integrity\": \"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"loose-envify\": \"^1.0.0\"\n }\n },\n \"node_modules/is-fullwidth-code-point\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",\n \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/is-network-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz\",\n \"integrity\": \"sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/js-tokens\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz\",\n \"integrity\": \"sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==\",\n \"license\": \"MIT\"\n },\n \"node_modules/jsesc\": {\n \"version\": \"3.1.0\",\n \"resolved\": \"https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz\",\n \"integrity\": \"sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"jsesc\": \"bin/jsesc\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/json5\": {\n \"version\": \"2.2.3\",\n \"resolved\": \"https://registry.npmjs.org/json5/-/json5-2.2.3.tgz\",\n \"integrity\": \"sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"json5\": \"lib/cli.js\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/kleur\": {\n \"version\": \"3.0.3\",\n \"resolved\": \"https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz\",\n \"integrity\": \"sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/lodash\": {\n \"version\": \"4.17.21\",\n \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",\n \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/loose-envify\": {\n \"version\": \"1.4.0\",\n \"resolved\": \"https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz\",\n \"integrity\": \"sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^3.0.0 || ^4.0.0\"\n },\n \"bin\": {\n \"loose-envify\": \"cli.js\"\n }\n },\n \"node_modules/loupe\": {\n \"version\": \"3.1.4\",\n \"resolved\": \"https://registry.npmjs.org/loupe/-/loupe-3.1.4.tgz\",\n \"integrity\": \"sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/lru-cache\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz\",\n \"integrity\": \"sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"yallist\": \"^3.0.2\"\n }\n },\n \"node_modules/magic-string\": {\n \"version\": \"0.30.17\",\n \"resolved\": \"https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz\",\n \"integrity\": \"sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\"\n }\n },\n \"node_modules/ms\": {\n \"version\": \"2.1.3\",\n \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",\n \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/node-gyp-build-optional-packages\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz\",\n \"integrity\": \"sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==\",\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"detect-libc\": \"^2.0.1\"\n },\n \"bin\": {\n \"node-gyp-build-optional-packages\": \"bin.js\",\n \"node-gyp-build-optional-packages-optional\": \"optional.js\",\n \"node-gyp-build-optional-packages-test\": \"build-test.js\"\n }\n },\n \"node_modules/node-releases\": {\n \"version\": \"2.0.19\",\n \"resolved\": \"https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz\",\n \"integrity\": \"sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/on-change\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/on-change/-/on-change-5.0.1.tgz\",\n \"integrity\": \"sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/on-change?sponsor=1\"\n }\n },\n \"node_modules/p-retry\": {\n \"version\": \"6.2.1\",\n \"resolved\": \"https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz\",\n \"integrity\": \"sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"@types/retry\": \"0.12.2\",\n \"is-network-error\": \"^1.0.0\",\n \"retry\": \"^0.13.1\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/pathval\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz\",\n \"integrity\": \"sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 14.16\"\n }\n },\n \"node_modules/picocolors\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz\",\n \"integrity\": \"sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/picomatch\": {\n \"version\": \"4.0.2\",\n \"resolved\": \"https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz\",\n \"integrity\": \"sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/jonschlinkert\"\n }\n },\n \"node_modules/postcss\": {\n \"version\": \"8.5.6\",\n \"resolved\": \"https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz\",\n \"integrity\": \"sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/postcss/\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/postcss\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"nanoid\": \"^3.3.11\",\n \"picocolors\": \"^1.1.1\",\n \"source-map-js\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || >=14\"\n }\n },\n \"node_modules/prompts\": {\n \"version\": \"2.4.2\",\n \"resolved\": \"https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz\",\n \"integrity\": \"sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"kleur\": \"^3.0.3\",\n \"sisteransi\": \"^1.0.5\"\n },\n \"engines\": {\n \"node\": \">= 6\"\n }\n },\n \"node_modules/react\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react/-/react-18.3.1.tgz\",\n \"integrity\": \"sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n },\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/react-dom\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz\",\n \"integrity\": \"sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\",\n \"scheduler\": \"^0.23.2\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.3.1\"\n }\n },\n \"node_modules/react-refresh\": {\n \"version\": \"0.17.0\",\n \"resolved\": \"https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz\",\n \"integrity\": \"sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/require-directory\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz\",\n \"integrity\": \"sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/resolve-pkg-maps\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz\",\n \"integrity\": \"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/resolve-pkg-maps?sponsor=1\"\n }\n },\n \"node_modules/retry\": {\n \"version\": \"0.13.1\",\n \"resolved\": \"https://registry.npmjs.org/retry/-/retry-0.13.1.tgz\",\n \"integrity\": \"sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">= 4\"\n }\n },\n \"node_modules/rollup\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/rollup/-/rollup-4.45.0.tgz\",\n \"integrity\": \"sha512-WLjEcJRIo7i3WDDgOIJqVI2d+lAC3EwvOGy+Xfq6hs+GQuAA4Di/H72xmXkOhrIWFg2PFYSKZYfH0f4vfKXN4A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"1.0.8\"\n },\n \"bin\": {\n \"rollup\": \"dist/bin/rollup\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"optionalDependencies\": {\n \"@rollup/rollup-android-arm-eabi\": \"4.45.0\",\n \"@rollup/rollup-android-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-x64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-arm64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-x64\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-gnueabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-musleabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-loongarch64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-powerpc64le-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-s390x-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-musl\": \"4.45.0\",\n \"@rollup/rollup-win32-arm64-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-ia32-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-x64-msvc\": \"4.45.0\",\n \"fsevents\": \"~2.3.2\"\n }\n },\n \"node_modules/rxjs\": {\n \"version\": \"7.8.2\",\n \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz\",\n \"integrity\": \"sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"tslib\": \"^2.1.0\"\n }\n },\n \"node_modules/scheduler\": {\n \"version\": \"0.23.2\",\n \"resolved\": \"https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz\",\n \"integrity\": \"sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n }\n },\n \"node_modules/semver\": {\n \"version\": \"6.3.1\",\n \"resolved\": \"https://registry.npmjs.org/semver/-/semver-6.3.1.tgz\",\n \"integrity\": \"sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"bin\": {\n \"semver\": \"bin/semver.js\"\n }\n },\n \"node_modules/shell-quote\": {\n \"version\": \"1.8.3\",\n \"resolved\": \"https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz\",\n \"integrity\": \"sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 0.4\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/ljharb\"\n }\n },\n \"node_modules/siginfo\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz\",\n \"integrity\": \"sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/sisteransi\": {\n \"version\": \"1.0.5\",\n \"resolved\": \"https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz\",\n \"integrity\": \"sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/source-map\": {\n \"version\": \"0.6.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz\",\n \"integrity\": \"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/source-map-js\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz\",\n \"integrity\": \"sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/source-map-support\": {\n \"version\": \"0.5.21\",\n \"resolved\": \"https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz\",\n \"integrity\": \"sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"buffer-from\": \"^1.0.0\",\n \"source-map\": \"^0.6.0\"\n }\n },\n \"node_modules/spawn-command\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz\",\n \"integrity\": \"sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==\",\n \"dev\": true\n },\n \"node_modules/stackback\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz\",\n \"integrity\": \"sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/std-env\": {\n \"version\": \"3.9.0\",\n \"resolved\": \"https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz\",\n \"integrity\": \"sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/string-width\": {\n \"version\": \"4.2.3\",\n \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",\n \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"emoji-regex\": \"^8.0.0\",\n \"is-fullwidth-code-point\": \"^3.0.0\",\n \"strip-ansi\": \"^6.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-ansi\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",\n \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-regex\": \"^5.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-literal\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz\",\n \"integrity\": \"sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^9.0.1\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/strip-literal/node_modules/js-tokens\": {\n \"version\": \"9.0.1\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz\",\n \"integrity\": \"sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/supports-color\": {\n \"version\": \"8.1.1\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",\n \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/supports-color?sponsor=1\"\n }\n },\n \"node_modules/tinybench\": {\n \"version\": \"2.9.0\",\n \"resolved\": \"https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz\",\n \"integrity\": \"sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyexec\": {\n \"version\": \"0.3.2\",\n \"resolved\": \"https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz\",\n \"integrity\": \"sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyglobby\": {\n \"version\": \"0.2.14\",\n \"resolved\": \"https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz\",\n \"integrity\": \"sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"fdir\": \"^6.4.4\",\n \"picomatch\": \"^4.0.2\"\n },\n \"engines\": {\n \"node\": \">=12.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/SuperchupuDev\"\n }\n },\n \"node_modules/tinypool\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz\",\n \"integrity\": \"sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n }\n },\n \"node_modules/tinyrainbow\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz\",\n \"integrity\": \"sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tinyspy\": {\n \"version\": \"4.0.3\",\n \"resolved\": \"https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz\",\n \"integrity\": \"sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tree-kill\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz\",\n \"integrity\": \"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"tree-kill\": \"cli.js\"\n }\n },\n \"node_modules/tslib\": {\n \"version\": \"2.8.1\",\n \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz\",\n \"integrity\": \"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==\",\n \"dev\": true,\n \"license\": \"0BSD\"\n },\n \"node_modules/tsx\": {\n \"version\": \"3.14.0\",\n \"resolved\": \"https://registry.npmjs.org/tsx/-/tsx-3.14.0.tgz\",\n \"integrity\": \"sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"~0.18.20\",\n \"get-tsconfig\": \"^4.7.2\",\n \"source-map-support\": \"^0.5.21\"\n },\n \"bin\": {\n \"tsx\": \"dist/cli.mjs\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n }\n },\n \"node_modules/typescript\": {\n \"version\": \"5.8.3\",\n \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz\",\n \"integrity\": \"sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"bin\": {\n \"tsc\": \"bin/tsc\",\n \"tsserver\": \"bin/tsserver\"\n },\n \"engines\": {\n \"node\": \">=14.17\"\n }\n },\n \"node_modules/undici-types\": {\n \"version\": \"6.21.0\",\n \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/update-browserslist-db\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz\",\n \"integrity\": \"sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"escalade\": \"^3.2.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"bin\": {\n \"update-browserslist-db\": \"cli.js\"\n },\n \"peerDependencies\": {\n \"browserslist\": \">= 4.21.0\"\n }\n },\n \"node_modules/use-sync-external-store\": {\n \"version\": \"1.5.0\",\n \"resolved\": \"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz\",\n \"integrity\": \"sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==\",\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/vite\": {\n \"version\": \"5.4.19\",\n \"resolved\": \"https://registry.npmjs.org/vite/-/vite-5.4.19.tgz\",\n \"integrity\": \"sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"^0.21.3\",\n \"postcss\": \"^8.4.43\",\n \"rollup\": \"^4.20.0\"\n },\n \"bin\": {\n \"vite\": \"bin/vite.js\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/vitejs/vite?sponsor=1\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n },\n \"peerDependencies\": {\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"less\": \"*\",\n \"lightningcss\": \"^1.21.0\",\n \"sass\": \"*\",\n \"sass-embedded\": \"*\",\n \"stylus\": \"*\",\n \"sugarss\": \"*\",\n \"terser\": \"^5.4.0\"\n },\n \"peerDependenciesMeta\": {\n \"@types/node\": {\n \"optional\": true\n },\n \"less\": {\n \"optional\": true\n },\n \"lightningcss\": {\n \"optional\": true\n },\n \"sass\": {\n \"optional\": true\n },\n \"sass-embedded\": {\n \"optional\": true\n },\n \"stylus\": {\n \"optional\": true\n },\n \"sugarss\": {\n \"optional\": true\n },\n \"terser\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/vite-node\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz\",\n \"integrity\": \"sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cac\": \"^6.7.14\",\n \"debug\": \"^4.4.1\",\n \"es-module-lexer\": \"^1.7.0\",\n \"pathe\": \"^2.0.3\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\"\n },\n \"bin\": {\n \"vite-node\": \"vite-node.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz\",\n \"integrity\": \"sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz\",\n \"integrity\": \"sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz\",\n \"integrity\": \"sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz\",\n \"integrity\": \"sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/esbuild\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz\",\n \"integrity\": \"sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.21.5\",\n \"@esbuild/android-arm\": \"0.21.5\",\n \"@esbuild/android-arm64\": \"0.21.5\",\n \"@esbuild/android-x64\": \"0.21.5\",\n \"@esbuild/darwin-arm64\": \"0.21.5\",\n \"@esbuild/darwin-x64\": \"0.21.5\",\n \"@esbuild/freebsd-arm64\": \"0.21.5\",\n \"@esbuild/freebsd-x64\": \"0.21.5\",\n \"@esbuild/linux-arm\": \"0.21.5\",\n \"@esbuild/linux-arm64\": \"0.21.5\",\n \"@esbuild/linux-ia32\": \"0.21.5\",\n \"@esbuild/linux-loong64\": \"0.21.5\",\n \"@esbuild/linux-mips64el\": \"0.21.5\",\n \"@esbuild/linux-ppc64\": \"0.21.5\",\n \"@esbuild/linux-riscv64\": \"0.21.5\",\n \"@esbuild/linux-s390x\": \"0.21.5\",\n \"@esbuild/linux-x64\": \"0.21.5\",\n \"@esbuild/netbsd-x64\": \"0.21.5\",\n \"@esbuild/openbsd-x64\": \"0.21.5\",\n \"@esbuild/sunos-x64\": \"0.21.5\",\n \"@esbuild/win32-arm64\": \"0.21.5\",\n \"@esbuild/win32-ia32\": \"0.21.5\",\n \"@esbuild/win32-x64\": \"0.21.5\"\n }\n },\n \"node_modules/vitest\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz\",\n \"integrity\": \"sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/chai\": \"^5.2.2\",\n \"@vitest/expect\": \"3.2.4\",\n \"@vitest/mocker\": \"3.2.4\",\n \"@vitest/pretty-format\": \"^3.2.4\",\n \"@vitest/runner\": \"3.2.4\",\n \"@vitest/snapshot\": \"3.2.4\",\n \"@vitest/spy\": \"3.2.4\",\n \"@vitest/utils\": \"3.2.4\",\n \"chai\": \"^5.2.0\",\n \"debug\": \"^4.4.1\",\n \"expect-type\": \"^1.2.1\",\n \"magic-string\": \"^0.30.17\",\n \"pathe\": \"^2.0.3\",\n \"picomatch\": \"^4.0.2\",\n \"std-env\": \"^3.9.0\",\n \"tinybench\": \"^2.9.0\",\n \"tinyexec\": \"^0.3.2\",\n \"tinyglobby\": \"^0.2.14\",\n \"tinypool\": \"^1.1.1\",\n \"tinyrainbow\": \"^2.0.0\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\",\n \"vite-node\": \"3.2.4\",\n \"why-is-node-running\": \"^2.3.0\"\n },\n \"bin\": {\n \"vitest\": \"vitest.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"@edge-runtime/vm\": \"*\",\n \"@types/debug\": \"^4.1.12\",\n \"@types/node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\",\n \"@vitest/browser\": \"3.2.4\",\n \"@vitest/ui\": \"3.2.4\",\n \"happy-dom\": \"*\",\n \"jsdom\": \"*\"\n },\n \"peerDependenciesMeta\": {\n \"@edge-runtime/vm\": {\n \"optional\": true\n },\n \"@types/debug\": {\n \"optional\": true\n },\n \"@types/node\": {\n \"optional\": true\n },\n \"@vitest/browser\": {\n \"optional\": true\n },\n \"@vitest/ui\": {\n \"optional\": true\n },\n \"happy-dom\": {\n \"optional\": true\n },\n \"jsdom\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/why-is-node-running\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz\",\n \"integrity\": \"sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"siginfo\": \"^2.0.0\",\n \"stackback\": \"0.0.2\"\n },\n \"bin\": {\n \"why-is-node-running\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/wrap-ansi\": {\n \"version\": \"7.0.0\",\n \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",\n \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.0.0\",\n \"string-width\": \"^4.1.0\",\n \"strip-ansi\": \"^6.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/wrap-ansi?sponsor=1\"\n }\n },\n \"node_modules/y18n\": {\n \"version\": \"5.0.8\",\n \"resolved\": \"https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz\",\n \"integrity\": \"sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/yallist\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz\",\n \"integrity\": \"sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/yargs\": {\n \"version\": \"17.7.2\",\n \"resolved\": \"https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz\",\n \"integrity\": \"sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cliui\": \"^8.0.1\",\n \"escalade\": \"^3.1.1\",\n \"get-caller-file\": \"^2.0.5\",\n \"require-directory\": \"^2.1.1\",\n \"string-width\": \"^4.2.3\",\n \"y18n\": \"^5.0.5\",\n \"yargs-parser\": \"^21.1.1\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yargs-parser\": {\n \"version\": \"21.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz\",\n \"integrity\": \"sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/zod\": {\n \"version\": \"3.25.76\",\n \"resolved\": \"https://registry.npmjs.org/zod/-/zod-3.25.76.tgz\",\n \"integrity\": \"sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"funding\": {\n \"url\": \"https://github.com/sponsors/colinhacks\"\n }\n }\n }\n}\n",
+ "package.json": "{\n \"name\": \"chat-room\",\n \"version\": \"0.9.1\",\n \"private\": true,\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"concurrently \\\"npm run dev:backend\\\" \\\"npm run dev:frontend\\\"\",\n \"dev:backend\": \"tsx --watch src/backend/server.ts\",\n \"dev:frontend\": \"vite\",\n \"dev:cli\": \"tsx src/scripts/cli.ts\",\n \"check-types\": \"tsc --noEmit\",\n \"test\": \"vitest run\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^22.13.9\",\n \"@types/prompts\": \"^2\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"concurrently\": \"^8.2.2\",\n \"prompts\": \"^2.4.2\",\n \"rivetkit\": \"^0.9.1\",\n \"tsx\": \"^3.12.7\",\n \"typescript\": \"^5.5.2\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^3.1.1\"\n },\n \"dependencies\": {\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"stableVersion\": \"0.8.0\"\n}\n",
"tsconfig.json": "{\n \"compilerOptions\": {\n /* Visit https://aka.ms/tsconfig.json to read more about this file */\n\n /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */\n \"target\": \"esnext\",\n /* Specify a set of bundled library declaration files that describe the target runtime environment. */\n \"lib\": [\"esnext\", \"dom\"],\n /* Specify what JSX code is generated. */\n \"jsx\": \"react-jsx\",\n\n /* Specify what module code is generated. */\n \"module\": \"esnext\",\n /* Specify how TypeScript looks up a file from a given module specifier. */\n \"moduleResolution\": \"bundler\",\n /* Specify type package names to be included without being referenced in a source file. */\n \"types\": [\"node\", \"vite/client\"],\n /* Enable importing .json files */\n \"resolveJsonModule\": true,\n\n /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */\n \"allowJs\": true,\n /* Enable error reporting in type-checked JavaScript files. */\n \"checkJs\": false,\n\n /* Disable emitting files from a compilation. */\n \"noEmit\": true,\n\n /* Ensure that each file can be safely transpiled without relying on other imports. */\n \"isolatedModules\": true,\n /* Allow 'import x from y' when a module doesn't have a default export. */\n \"allowSyntheticDefaultImports\": true,\n /* Ensure that casing is correct in imports. */\n \"forceConsistentCasingInFileNames\": true,\n\n /* Enable all strict type-checking options. */\n \"strict\": true,\n\n /* Skip type checking all .d.ts files. */\n \"skipLibCheck\": true\n },\n \"include\": [\"src/**/*\", \"actors/**/*\", \"tests/**/*\"]\n}\n",
"vite.config.ts": "import react from \"@vitejs/plugin-react\";\nimport { defineConfig } from \"vite\";\n\nexport default defineConfig({\n\tplugins: [react()],\n\troot: \"src/frontend\",\n\tserver: {\n\t\tport: 3000,\n\t},\n});\n",
"vitest.config.ts": "import { defineConfig } from \"vitest/config\";\n\nexport default defineConfig({\n\ttest: {\n\t\tinclude: [\"tests/**/*.test.ts\"],\n\t},\n});\n",
"src/frontend/App.tsx": "import { createClient, createRivetKit } from \"@rivetkit/react\";\nimport { useEffect, useState } from \"react\";\nimport type { Message, registry } from \"../backend/registry\";\n\nconst client = createClient(\"http://localhost:8080\");\nconst { useActor } = createRivetKit(client);\n\nexport function App() {\n\tconst [roomId, setRoomId] = useState(\"general\");\n\tconst [username, setUsername] = useState(\"User\");\n\tconst [input, setInput] = useState(\"\");\n\tconst [messages, setMessages] = useState([]);\n\n\tconst chatRoom = useActor({\n\t\tname: \"chatRoom\",\n\t\tkey: [roomId],\n\t});\n\n\tuseEffect(() => {\n\t\tif (chatRoom.connection) {\n\t\t\tchatRoom.connection.getHistory().then(setMessages);\n\t\t}\n\t}, [chatRoom.connection]);\n\n\tchatRoom.useEvent(\"newMessage\", (message: Message) => {\n\t\tsetMessages((prev) => [...prev, message]);\n\t});\n\n\tconst sendMessage = async () => {\n\t\tif (chatRoom.connection && input.trim()) {\n\t\t\tawait chatRoom.connection.sendMessage(username, input);\n\t\t\tsetInput(\"\");\n\t\t}\n\t};\n\n\tconst handleKeyPress = (e: React.KeyboardEvent) => {\n\t\tif (e.key === \"Enter\") {\n\t\t\tsendMessage();\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tChat Room: {roomId}
\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t setRoomId(e.target.value)}\n\t\t\t\t\tplaceholder=\"Enter room name\"\n\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t setUsername(e.target.value)}\n\t\t\t\t\tplaceholder=\"Enter your username\"\n\t\t\t\t/>\n\t\t\t\n\n\t\t\t\n\t\t\t\t{messages.length === 0 ? (\n\t\t\t\t\t\n\t\t\t\t\t\tNo messages yet. Start the conversation!\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\tmessages.map((msg, i) => (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{msg.sender}\n\t\t\t\t\t\t\t{msg.text}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{new Date(msg.timestamp).toLocaleTimeString()}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t))\n\t\t\t\t)}\n\t\t\t\n\n\t\t\t\n\t\t\t\t setInput(e.target.value)}\n\t\t\t\t\tonKeyPress={handleKeyPress}\n\t\t\t\t\tplaceholder=\"Type a message...\"\n\t\t\t\t\tdisabled={!chatRoom.connection}\n\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}",
"src/frontend/main.tsx": "import { StrictMode } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { App } from \"./App\";\n\nconst root = document.getElementById(\"root\");\nif (!root) throw new Error(\"Root element not found\");\n\ncreateRoot(root).render(\n\t\n\t\t \n\t \n);",
"src/frontend/index.html": "\n\n\n \n \n Chat Room Example \n \n\n\n \n \n\n",
- "src/backend/registry.ts": "import { actor, setup } from \"@rivetkit/actor\";\n\nexport type Message = { sender: string; text: string; timestamp: number };\n\nexport const chatRoom = actor({\n\tonAuth: () => {},\n\t// Persistent state that survives restarts: https://rivet.gg/docs/actors/state\n\tstate: {\n\t\tmessages: [] as Message[],\n\t},\n\n\tactions: {\n\t\t// Callable functions from clients: https://rivet.gg/docs/actors/actions\n\t\tsendMessage: (c, sender: string, text: string) => {\n\t\t\tconst message = { sender, text, timestamp: Date.now() };\n\t\t\t// State changes are automatically persisted\n\t\t\tc.state.messages.push(message);\n\t\t\t// Send events to all connected clients: https://rivet.gg/docs/actors/events\n\t\t\tc.broadcast(\"newMessage\", message);\n\t\t\treturn message;\n\t\t},\n\n\t\tgetHistory: (c) => c.state.messages,\n\t},\n});\n\n// Register actors for use: https://rivet.gg/docs/setup\nexport const registry = setup({\n\tuse: { chatRoom },\n});\n",
+ "src/backend/registry.ts": "import { actor, setup } from \"rivetkit\";\n\nexport type Message = { sender: string; text: string; timestamp: number };\n\nexport const chatRoom = actor({\n\tonAuth: () => {},\n\t// Persistent state that survives restarts: https://rivet.gg/docs/actors/state\n\tstate: {\n\t\tmessages: [] as Message[],\n\t},\n\n\tactions: {\n\t\t// Callable functions from clients: https://rivet.gg/docs/actors/actions\n\t\tsendMessage: (c, sender: string, text: string) => {\n\t\t\tconst message = { sender, text, timestamp: Date.now() };\n\t\t\t// State changes are automatically persisted\n\t\t\tc.state.messages.push(message);\n\t\t\t// Send events to all connected clients: https://rivet.gg/docs/actors/events\n\t\t\tc.broadcast(\"newMessage\", message);\n\t\t\treturn message;\n\t\t},\n\n\t\tgetHistory: (c) => c.state.messages,\n\t},\n});\n\n// Register actors for use: https://rivet.gg/docs/setup\nexport const registry = setup({\n\tuse: { chatRoom },\n});\n",
"src/backend/server.ts": "import { registry } from \"./registry\";\n\nregistry.runServer({\n\tcors: {\n\t\torigin: \"*\",\n\t},\n});\n",
- "src/scripts/cli.ts": "import { createClient } from \"@rivetkit/actor/client\";\nimport prompts from \"prompts\";\nimport type { registry } from \"../backend/registry\";\n\nasync function main() {\n\tconst { username, room } = await initPrompt();\n\n\t// Create type-aware client\n\tconst client = createClient(\"http://localhost:8080\");\n\n\t// connect to chat room\n\tconst chatRoom = client.chatRoom.getOrCreate([room]).connect();\n\n\t// fetch history\n\tconst history = await chatRoom.getHistory();\n\tconsole.log(\n\t\t`History:\\n${history.map((m) => `[${m.sender}] ${m.text}`).join(\"\\n\")}`,\n\t);\n\n\t// listen for new messages\n\tlet needsNewLine = false;\n\tchatRoom.on(\"newMessage\", (message: any) => {\n\t\tif (needsNewLine) {\n\t\t\tneedsNewLine = false;\n\t\t\tconsole.log();\n\t\t}\n\t\tconsole.log(`[${message.sender}] ${message.text}`);\n\t});\n\n\t// loop to send messages\n\twhile (true) {\n\t\tneedsNewLine = true;\n\t\tconst message = await textPrompt(\"Message\");\n\t\tif (!message) break;\n\t\tneedsNewLine = false;\n\t\tawait chatRoom.sendMessage(username, message);\n\t}\n\n\tawait chatRoom.dispose();\n}\n\nasync function initPrompt(): Promise<{\n\troom: string;\n\tusername: string;\n}> {\n\treturn await prompts([\n\t\t{\n\t\t\ttype: \"text\",\n\t\t\tname: \"username\",\n\t\t\tmessage: \"Username\",\n\t\t},\n\t\t{\n\t\t\ttype: \"text\",\n\t\t\tname: \"room\",\n\t\t\tmessage: \"Room\",\n\t\t},\n\t]);\n}\n\nasync function textPrompt(message: string): Promise {\n\tconst { x } = await prompts({\n\t\ttype: \"text\",\n\t\tname: \"x\",\n\t\tmessage,\n\t});\n\treturn x;\n}\n\nmain();\n",
- "src/scripts/connect.ts": "/// \nimport { createClient } from \"@rivetkit/actor/client\";\nimport type { registry } from \"../backend/registry\";\n\nasync function main() {\n\t// Create type-aware client\n\tconst client = createClient(\n\t\tprocess.env.ENDPOINT ?? \"http://localhost:8080\",\n\t);\n\n\t// connect to chat room\n\tconst chatRoom = client.chatRoom.getOrCreate().connect();\n\n\t// call action to get existing messages\n\tconst messages = await chatRoom.getHistory();\n\tconsole.log(\"Messages:\", messages);\n\n\t// listen for new messages\n\tchatRoom.on(\"newMessage\", (message: any) =>\n\t\tconsole.log(`Message from ${message.sender}: ${message.text}`),\n\t);\n\n\t// send message to room\n\tawait chatRoom.sendMessage(\"william\", \"All the world's a stage.\");\n\n\t// disconnect from actor when finished\n\tawait chatRoom.dispose();\n}\n\nmain();\n"
+ "src/scripts/cli.ts": "import { createClient } from \"rivetkit/client\";\nimport prompts from \"prompts\";\nimport type { registry } from \"../backend/registry\";\n\nasync function main() {\n\tconst { username, room } = await initPrompt();\n\n\t// Create type-aware client\n\tconst client = createClient(\"http://localhost:8080\");\n\n\t// connect to chat room\n\tconst chatRoom = client.chatRoom.getOrCreate([room]).connect();\n\n\t// fetch history\n\tconst history = await chatRoom.getHistory();\n\tconsole.log(\n\t\t`History:\\n${history.map((m) => `[${m.sender}] ${m.text}`).join(\"\\n\")}`,\n\t);\n\n\t// listen for new messages\n\tlet needsNewLine = false;\n\tchatRoom.on(\"newMessage\", (message: any) => {\n\t\tif (needsNewLine) {\n\t\t\tneedsNewLine = false;\n\t\t\tconsole.log();\n\t\t}\n\t\tconsole.log(`[${message.sender}] ${message.text}`);\n\t});\n\n\t// loop to send messages\n\twhile (true) {\n\t\tneedsNewLine = true;\n\t\tconst message = await textPrompt(\"Message\");\n\t\tif (!message) break;\n\t\tneedsNewLine = false;\n\t\tawait chatRoom.sendMessage(username, message);\n\t}\n\n\tawait chatRoom.dispose();\n}\n\nasync function initPrompt(): Promise<{\n\troom: string;\n\tusername: string;\n}> {\n\treturn await prompts([\n\t\t{\n\t\t\ttype: \"text\",\n\t\t\tname: \"username\",\n\t\t\tmessage: \"Username\",\n\t\t},\n\t\t{\n\t\t\ttype: \"text\",\n\t\t\tname: \"room\",\n\t\t\tmessage: \"Room\",\n\t\t},\n\t]);\n}\n\nasync function textPrompt(message: string): Promise {\n\tconst { x } = await prompts({\n\t\ttype: \"text\",\n\t\tname: \"x\",\n\t\tmessage,\n\t});\n\treturn x;\n}\n\nmain();\n",
+ "src/scripts/connect.ts": "/// \nimport { createClient } from \"rivetkit/client\";\nimport type { registry } from \"../backend/registry\";\n\nasync function main() {\n\t// Create type-aware client\n\tconst client = createClient(\n\t\tprocess.env.ENDPOINT ?? \"http://localhost:8080\",\n\t);\n\n\t// connect to chat room\n\tconst chatRoom = client.chatRoom.getOrCreate().connect();\n\n\t// call action to get existing messages\n\tconst messages = await chatRoom.getHistory();\n\tconsole.log(\"Messages:\", messages);\n\n\t// listen for new messages\n\tchatRoom.on(\"newMessage\", (message: any) =>\n\t\tconsole.log(`Message from ${message.sender}: ${message.text}`),\n\t);\n\n\t// send message to room\n\tawait chatRoom.sendMessage(\"william\", \"All the world's a stage.\");\n\n\t// disconnect from actor when finished\n\tawait chatRoom.dispose();\n}\n\nmain();\n"
}
},
{
@@ -75,17 +75,17 @@ export const examples: ExampleData[] = [
],
"tab": "memory",
"files": {
- "tests/crdt.test.ts": "import { setupTest } from \"@rivetkit/actor/test\";\nimport { expect, test, vi } from \"vitest\";\nimport { registry } from \"../src/backend/registry\";\n\n// Mock Yjs to avoid complex binary operations in tests\nvi.mock(\"yjs\", () => ({\n\tDoc: vi.fn().mockImplementation(() => ({\n\t\tgetText: vi.fn().mockReturnValue({\n\t\t\ttoString: vi.fn().mockReturnValue(\"\"),\n\t\t\tobserve: vi.fn(),\n\t\t\tdelete: vi.fn(),\n\t\t\tinsert: vi.fn(),\n\t\t}),\n\t\ttransact: vi.fn((fn) => fn()),\n\t\tdestroy: vi.fn(),\n\t})),\n\tapplyUpdate: vi.fn(),\n\tencodeStateAsUpdate: vi.fn().mockReturnValue(new Uint8Array([1, 2, 3, 4])),\n}));\n\ntest(\"CRDT document can handle initial state\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst doc = client.yjsDocument.getOrCreate([\"test-doc\"]);\n\n\t// Test initial state\n\tconst state = await doc.getState();\n\texpect(state).toMatchObject({\n\t\tdocData: \"\",\n\t\tlastModified: 0,\n\t});\n});\n\ntest(\"CRDT document can apply updates\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst doc = client.yjsDocument.getOrCreate([\"test-updates\"]);\n\n\t// Mock update data (Base64 encoded)\n\tconst updateBase64 = btoa(\"mock-update-data\");\n\n\t// Apply an update\n\tawait doc.applyUpdate(updateBase64);\n\n\t// Verify state was updated\n\tconst state = await doc.getState();\n\texpect(state.docData).not.toBe(\"\");\n\texpect(state.lastModified).toBeGreaterThan(0);\n});\n\ntest(\"CRDT document handles multiple updates\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst doc = client.yjsDocument.getOrCreate([\"test-multiple\"]);\n\n\tconst update1 = btoa(\"update-1\");\n\tconst update2 = btoa(\"update-2\");\n\tconst update3 = btoa(\"update-3\");\n\n\t// Apply multiple updates\n\tawait doc.applyUpdate(update1);\n\tconst state1 = await doc.getState();\n\tconst firstModified = state1.lastModified;\n\n\tawait doc.applyUpdate(update2);\n\tconst state2 = await doc.getState();\n\tconst secondModified = state2.lastModified;\n\n\tawait doc.applyUpdate(update3);\n\tconst state3 = await doc.getState();\n\tconst thirdModified = state3.lastModified;\n\n\t// Verify timestamps are increasing\n\texpect(secondModified).toBeGreaterThanOrEqual(firstModified);\n\texpect(thirdModified).toBeGreaterThanOrEqual(secondModified);\n\n\t// Verify state is updated\n\texpect(state3.docData).not.toBe(\"\");\n\texpect(state3.lastModified).toBe(thirdModified);\n});\n\ntest(\"CRDT document handles Base64 encoding correctly\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst doc = client.yjsDocument.getOrCreate([\"test-encoding\"]);\n\n\t// Test with specific Base64 data\n\tconst testData = \"Hello, collaborative world!\";\n\tconst updateBase64 = btoa(testData);\n\n\tawait doc.applyUpdate(updateBase64);\n\n\tconst state = await doc.getState();\n\texpect(state.docData).toBeTruthy();\n\texpect(state.lastModified).toBeGreaterThan(0);\n});\n",
+ "tests/crdt.test.ts": "import { setupTest } from \"rivetkit/test\";\nimport { expect, test, vi } from \"vitest\";\nimport { registry } from \"../src/backend/registry\";\n\n// Mock Yjs to avoid complex binary operations in tests\nvi.mock(\"yjs\", () => ({\n\tDoc: vi.fn().mockImplementation(() => ({\n\t\tgetText: vi.fn().mockReturnValue({\n\t\t\ttoString: vi.fn().mockReturnValue(\"\"),\n\t\t\tobserve: vi.fn(),\n\t\t\tdelete: vi.fn(),\n\t\t\tinsert: vi.fn(),\n\t\t}),\n\t\ttransact: vi.fn((fn) => fn()),\n\t\tdestroy: vi.fn(),\n\t})),\n\tapplyUpdate: vi.fn(),\n\tencodeStateAsUpdate: vi.fn().mockReturnValue(new Uint8Array([1, 2, 3, 4])),\n}));\n\ntest(\"CRDT document can handle initial state\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst doc = client.yjsDocument.getOrCreate([\"test-doc\"]);\n\n\t// Test initial state\n\tconst state = await doc.getState();\n\texpect(state).toMatchObject({\n\t\tdocData: \"\",\n\t\tlastModified: 0,\n\t});\n});\n\ntest(\"CRDT document can apply updates\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst doc = client.yjsDocument.getOrCreate([\"test-updates\"]);\n\n\t// Mock update data (Base64 encoded)\n\tconst updateBase64 = btoa(\"mock-update-data\");\n\n\t// Apply an update\n\tawait doc.applyUpdate(updateBase64);\n\n\t// Verify state was updated\n\tconst state = await doc.getState();\n\texpect(state.docData).not.toBe(\"\");\n\texpect(state.lastModified).toBeGreaterThan(0);\n});\n\ntest(\"CRDT document handles multiple updates\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst doc = client.yjsDocument.getOrCreate([\"test-multiple\"]);\n\n\tconst update1 = btoa(\"update-1\");\n\tconst update2 = btoa(\"update-2\");\n\tconst update3 = btoa(\"update-3\");\n\n\t// Apply multiple updates\n\tawait doc.applyUpdate(update1);\n\tconst state1 = await doc.getState();\n\tconst firstModified = state1.lastModified;\n\n\tawait doc.applyUpdate(update2);\n\tconst state2 = await doc.getState();\n\tconst secondModified = state2.lastModified;\n\n\tawait doc.applyUpdate(update3);\n\tconst state3 = await doc.getState();\n\tconst thirdModified = state3.lastModified;\n\n\t// Verify timestamps are increasing\n\texpect(secondModified).toBeGreaterThanOrEqual(firstModified);\n\texpect(thirdModified).toBeGreaterThanOrEqual(secondModified);\n\n\t// Verify state is updated\n\texpect(state3.docData).not.toBe(\"\");\n\texpect(state3.lastModified).toBe(thirdModified);\n});\n\ntest(\"CRDT document handles Base64 encoding correctly\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst doc = client.yjsDocument.getOrCreate([\"test-encoding\"]);\n\n\t// Test with specific Base64 data\n\tconst testData = \"Hello, collaborative world!\";\n\tconst updateBase64 = btoa(testData);\n\n\tawait doc.applyUpdate(updateBase64);\n\n\tconst state = await doc.getState();\n\texpect(state.docData).toBeTruthy();\n\texpect(state.lastModified).toBeGreaterThan(0);\n});\n",
"README.md": "# CRDT Collaborative Editor for RivetKit\n\nExample project demonstrating real-time collaborative editing using Conflict-free Replicated Data Types (CRDTs) with [RivetKit](https://rivetkit.org).\n\n[Learn More →](https://github.com/rivet-gg/rivetkit)\n\n[Discord](https://rivet.gg/discord) — [Documentation](https://rivetkit.org) — [Issues](https://github.com/rivet-gg/rivetkit/issues)\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 18+\n\n### Installation\n\n```sh\ngit clone https://github.com/rivet-gg/rivetkit\ncd rivetkit/examples/crdt\nnpm install\n```\n\n### Development\n\n```sh\nnpm run dev\n```\n\nOpen your browser to `http://localhost:3000`\n\n## Features\n\n- **Real-time Collaborative Editing**: Multiple users can edit the same document simultaneously\n- **Conflict Resolution**: Uses Yjs CRDTs to automatically resolve editing conflicts\n- **Persistent State**: Document changes are automatically persisted\n- **Multiple Documents**: Switch between different collaborative documents\n- **Live Connection Status**: See when you're connected to the collaboration server\n\n## How it works\n\nThis example demonstrates how to build a collaborative editor using:\n\n1. **Yjs**: A high-performance CRDT implementation for building collaborative applications\n2. **RivetKit Actors**: Manage document state and synchronize changes between clients\n3. **Real-time Updates**: Use RivetKit's event system for instant synchronization\n4. **Conflict-free Merging**: Yjs automatically handles concurrent edits without conflicts\n\n## Usage\n\n1. Start the development server\n2. Open multiple browser tabs to `http://localhost:3000`\n3. Start typing in any tab - changes will appear in real-time across all tabs\n4. Try editing the same text simultaneously to see conflict resolution in action\n5. Switch between different documents using the document ID field\n\n## Architecture\n\n- **Backend**: RivetKit actor that manages Yjs document state and broadcasts updates\n- **Frontend**: React application with Yjs integration for local document management\n- **Synchronization**: Binary diffs are sent between clients for efficient updates\n\n## License\n\nApache 2.0",
- "package-lock.json": "{\n \"name\": \"example-crdt\",\n \"version\": \"0.9.1\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n \"name\": \"example-crdt\",\n \"version\": \"0.9.1\",\n \"dependencies\": {\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\",\n \"yjs\": \"^13.6.20\"\n },\n \"devDependencies\": {\n \"@rivetkit/actor\": \"^0.9.1\",\n \"@types/node\": \"^22.13.9\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"concurrently\": \"^8.2.2\",\n \"tsx\": \"^3.12.7\",\n \"typescript\": \"^5.5.2\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^3.1.1\"\n }\n },\n \"node_modules/@ampproject/remapping\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz\",\n \"integrity\": \"sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@jridgewell/gen-mapping\": \"^0.3.5\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/code-frame\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz\",\n \"integrity\": \"sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"js-tokens\": \"^4.0.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/compat-data\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz\",\n \"integrity\": \"sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/core\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz\",\n \"integrity\": \"sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@ampproject/remapping\": \"^2.2.0\",\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-compilation-targets\": \"^7.27.2\",\n \"@babel/helper-module-transforms\": \"^7.27.3\",\n \"@babel/helpers\": \"^7.27.6\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/traverse\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"convert-source-map\": \"^2.0.0\",\n \"debug\": \"^4.1.0\",\n \"gensync\": \"^1.0.0-beta.2\",\n \"json5\": \"^2.2.3\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/babel\"\n }\n },\n \"node_modules/@babel/generator\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz\",\n \"integrity\": \"sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"@jridgewell/gen-mapping\": \"^0.3.12\",\n \"@jridgewell/trace-mapping\": \"^0.3.28\",\n \"jsesc\": \"^3.0.2\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-compilation-targets\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz\",\n \"integrity\": \"sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/compat-data\": \"^7.27.2\",\n \"@babel/helper-validator-option\": \"^7.27.1\",\n \"browserslist\": \"^4.24.0\",\n \"lru-cache\": \"^5.1.1\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-globals\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz\",\n \"integrity\": \"sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-imports\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz\",\n \"integrity\": \"sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/traverse\": \"^7.27.1\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-transforms\": {\n \"version\": \"7.27.3\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz\",\n \"integrity\": \"sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-module-imports\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"@babel/traverse\": \"^7.27.3\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0\"\n }\n },\n \"node_modules/@babel/helper-plugin-utils\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz\",\n \"integrity\": \"sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-string-parser\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz\",\n \"integrity\": \"sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-identifier\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz\",\n \"integrity\": \"sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-option\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz\",\n \"integrity\": \"sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helpers\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz\",\n \"integrity\": \"sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.6\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/parser\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz\",\n \"integrity\": \"sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.28.0\"\n },\n \"bin\": {\n \"parser\": \"bin/babel-parser.js\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-self\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz\",\n \"integrity\": \"sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-source\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz\",\n \"integrity\": \"sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/runtime\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz\",\n \"integrity\": \"sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/template\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz\",\n \"integrity\": \"sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/parser\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/traverse\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz\",\n \"integrity\": \"sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-globals\": \"^7.28.0\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.28.0\",\n \"debug\": \"^4.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/types\": {\n \"version\": \"7.28.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz\",\n \"integrity\": \"sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-string-parser\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz\",\n \"integrity\": \"sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==\",\n \"cpu\": [\n \"arm\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-win32-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"peer\": true\n },\n \"node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-arm\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz\",\n \"integrity\": \"sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz\",\n \"integrity\": \"sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz\",\n \"integrity\": \"sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz\",\n \"integrity\": \"sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz\",\n \"integrity\": \"sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz\",\n \"integrity\": \"sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz\",\n \"integrity\": \"sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz\",\n \"integrity\": \"sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz\",\n \"integrity\": \"sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@jridgewell/gen-mapping\": {\n \"version\": \"0.3.12\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz\",\n \"integrity\": \"sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n }\n },\n \"node_modules/@jridgewell/resolve-uri\": {\n \"version\": \"3.1.2\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz\",\n \"integrity\": \"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@jridgewell/sourcemap-codec\": {\n \"version\": \"1.5.4\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz\",\n \"integrity\": \"sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@jridgewell/trace-mapping\": {\n \"version\": \"0.3.29\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz\",\n \"integrity\": \"sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/resolve-uri\": \"^3.1.0\",\n \"@jridgewell/sourcemap-codec\": \"^1.4.14\"\n }\n },\n \"node_modules/@rivetkit/actor\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/actor/-/actor-0.9.1.tgz\",\n \"integrity\": \"sha512-aVoWO81JrYql6hhXX+vRor0B+aeWrnh+9zkcrxbh0EXFBbS5XM8YE4sSFxNKmZThLbGNqfZ5enm1zuA92c7I1w==\",\n \"dev\": true,\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/core\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/core/-/core-0.9.1.tgz\",\n \"integrity\": \"sha512-0zYFKo08CQ72Rm6MaVKxcJSEEfn/ypGkkxTX06Q4meCGHuDJFbPA5wopa3NdxrKBPttcGg1QAmDd+1FZnlpubA==\",\n \"license\": \"Apache-2.0\",\n \"peer\": true,\n \"dependencies\": {\n \"cbor-x\": \"^1.6.0\",\n \"invariant\": \"^2.2.4\",\n \"on-change\": \"^5.0.1\",\n \"p-retry\": \"^6.2.1\",\n \"zod\": \"^3.25.67\"\n },\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"peerDependencies\": {\n \"@hono/node-server\": \"^1.14.0\",\n \"@hono/node-ws\": \"^1.1.1\",\n \"@hono/zod-openapi\": \"^0.19.6\",\n \"eventsource\": \"^3.0.5\",\n \"hono\": \"^4.7.0\",\n \"ws\": \"^8.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"@hono/node-server\": {\n \"optional\": true\n },\n \"@hono/node-ws\": {\n \"optional\": true\n },\n \"@hono/zod-openapi\": {\n \"optional\": true\n },\n \"eventsource\": {\n \"optional\": true\n },\n \"hono\": {\n \"optional\": true\n },\n \"ws\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@rivetkit/framework-base\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/framework-base/-/framework-base-0.9.1.tgz\",\n \"integrity\": \"sha512-FxhSqGAtDsD4k7gKS2EhJ5hHsEwI1+QR0vYThUBOLcmXM7zjMZndqIjVperQO4ck/zfjRqjm3lw7znkc+k0wNQ==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@tanstack/store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/react\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/react/-/react-0.9.1.tgz\",\n \"integrity\": \"sha512-0e0gNNj3qCrXHNIxE6ggEEX+E6HjdsSt9pJbWbaQQg+1bsywupRTSdgSDguDHjBvi9qhR9mh7UbNN3A9wYqXuA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@rivetkit/framework-base\": \"0.9.1\",\n \"@tanstack/react-store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\",\n \"react\": \"^18 || ^19\",\n \"react-dom\": \"^18 || ^19\"\n }\n },\n \"node_modules/@rolldown/pluginutils\": {\n \"version\": \"1.0.0-beta.19\",\n \"resolved\": \"https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz\",\n \"integrity\": \"sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@rollup/rollup-android-arm-eabi\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.0.tgz\",\n \"integrity\": \"sha512-2o/FgACbji4tW1dzXOqAV15Eu7DdgbKsF2QKcxfG4xbh5iwU7yr5RRP5/U+0asQliSYv5M4o7BevlGIoSL0LXg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-android-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-PSZ0SvMOjEAxwZeTx32eI/j5xSYtDCRxGu5k9zvzoY77xUNssZM+WV6HYBLROpY5CkXsbQjvz40fBb7WPwDqtQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-BA4yPIPssPB2aRAWzmqzQ3y2/KotkLyZukVB7j3psK/U3nVJdceo6qr9pLM2xN6iRP/wKfxEbOb1yrlZH6sYZg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-Pr2o0lvTwsiG4HCr43Zy9xXrHspyMvsvEw4FwKYqhli4FuLE5FjcZzuQ4cfPe0iUFCvSQG6lACI0xj74FDZKRA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-lYE8LkE5h4a/+6VnnLiL14zWMPnx6wNbDG23GcYFpRW1V9hYWHAw9lBZ6ZUIrOaoK7NliF1sdwYGiVmziUF4vA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-PVQWZK9sbzpvqC9Q0GlehNNSVHR+4m7+wET+7FgSnKG3ci5nAMgGmr9mGBXzAuE5SvguCKJ6mHL6vq1JaJ/gvw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-gnueabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-hLrmRl53prCcD+YXTfNvXd776HTxNh8wPAMllusQ+amcQmtgo3V5i/nkhPN6FakW+QVLoUUr2AsbtIRPFU3xIA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-musleabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-XBKGSYcrkdiRRjl+8XvrUR3AosXU0NvF7VuqMsm7s5nRy+nt58ZMB19Jdp1RdqewLcaYnpk8zeVs/4MlLZEJxw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-fRvZZPUiBz7NztBE/2QnCS5AtqLVhXmUOPj9IHlfGEXkapgImf4W9+FSkL8cWqoAjozyUzqFmSc4zh2ooaeF6g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-Btv2WRZOcUGi8XU80XwIvzTg4U6+l6D0V6sZTrZx214nrwxw5nAi8hysaXj/mctyClWgesyuxbeLylCBNauimg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loongarch64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-Li0emNnwtUZdLwHjQPBxn4VWztcrw/h7mgLyHiEI5Z0MhpeFGlzaiBHpSNVOMB/xucjXTTcO+dhv469Djr16KA==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-powerpc64le-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-sB8+pfkYx2kvpDCfd63d5ScYT0Fz1LO6jIb2zLZvmK9ob2D8DeVqrmBDE0iDK8KlBVmsTNzrjr3G1xV4eUZhSw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-5GQ6PFhh7E6jQm70p1aW05G2cap5zMOvO0se5JMecHeAdj5ZhWEHbJ4hiKpfi1nnnEdTauDXxPgXae/mqjow9w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-N/euLsBd1rekWcuduakTo/dJw6U6sBP3eUq+RXM9RNfPuWTvG2w/WObDkIvJ2KChy6oxZmOSC08Ak2OJA0UiAA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-s390x-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-2l9sA7d7QdikL0xQwNMO3xURBUNEWyHVHfAsHsUdq+E/pgLTUcCE+gih5PCdmyHmfTDeXUWVhqL0WZzg0nua3g==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-XZdD3fEEQcwG2KrJDdEQu7NrHonPxxaV0/w2HpvINBdcqebz1aL+0vM2WFJq4DeiAVT6F5SUQas65HY5JDqoPw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-7ayfgvtmmWgKWBkCGg5+xTQ0r5V1owVm67zTrsEY1008L5ro7mCyGYORomARt/OquB9KY7LpxVBZes+oSniAAQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-arm64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-B+IJgcBnE2bm93jEW5kHisqvPITs4ddLOROAcOc/diBgrEiQJJ6Qcjby75rFSmH5eMGrqJryUgJDhrfj942apQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-ia32-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-+CXwwG66g0/FpWOnP/v1HnrGVSOygK/osUbu3wPRy8ECXjoYKjRAyfxYpDQOfghC5qPJYLPH0oN4MCOjwgdMug==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@tanstack/react-store\": {\n \"version\": \"0.7.3\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.7.3.tgz\",\n \"integrity\": \"sha512-3Dnqtbw9P2P0gw8uUM8WP2fFfg8XMDSZCTsywRPZe/XqqYW8PGkXKZTvP0AHkE4mpqP9Y43GpOg9vwO44azu6Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@tanstack/store\": \"0.7.2\",\n \"use-sync-external-store\": \"^1.5.0\"\n },\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\",\n \"react-dom\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/@tanstack/store\": {\n \"version\": \"0.7.2\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/store/-/store-0.7.2.tgz\",\n \"integrity\": \"sha512-RP80Z30BYiPX2Pyo0Nyw4s1SJFH2jyM6f9i3HfX4pA+gm5jsnYryscdq2aIQLnL4TaGuQMO+zXmN9nh1Qck+Pg==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n }\n },\n \"node_modules/@types/babel__core\": {\n \"version\": \"7.20.5\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz\",\n \"integrity\": \"sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.20.7\",\n \"@babel/types\": \"^7.20.7\",\n \"@types/babel__generator\": \"*\",\n \"@types/babel__template\": \"*\",\n \"@types/babel__traverse\": \"*\"\n }\n },\n \"node_modules/@types/babel__generator\": {\n \"version\": \"7.27.0\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz\",\n \"integrity\": \"sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__template\": {\n \"version\": \"7.4.4\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz\",\n \"integrity\": \"sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.1.0\",\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__traverse\": {\n \"version\": \"7.20.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz\",\n \"integrity\": \"sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.20.7\"\n }\n },\n \"node_modules/@types/chai\": {\n \"version\": \"5.2.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz\",\n \"integrity\": \"sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/deep-eql\": \"*\"\n }\n },\n \"node_modules/@types/deep-eql\": {\n \"version\": \"4.0.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz\",\n \"integrity\": \"sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/estree\": {\n \"version\": \"1.0.8\",\n \"resolved\": \"https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz\",\n \"integrity\": \"sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/node\": {\n \"version\": \"22.16.3\",\n \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-22.16.3.tgz\",\n \"integrity\": \"sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"undici-types\": \"~6.21.0\"\n }\n },\n \"node_modules/@types/prop-types\": {\n \"version\": \"15.7.15\",\n \"resolved\": \"https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz\",\n \"integrity\": \"sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/react\": {\n \"version\": \"18.3.23\",\n \"resolved\": \"https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz\",\n \"integrity\": \"sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/prop-types\": \"*\",\n \"csstype\": \"^3.0.2\"\n }\n },\n \"node_modules/@types/react-dom\": {\n \"version\": \"18.3.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz\",\n \"integrity\": \"sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"@types/react\": \"^18.0.0\"\n }\n },\n \"node_modules/@types/retry\": {\n \"version\": \"0.12.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz\",\n \"integrity\": \"sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==\",\n \"license\": \"MIT\",\n \"peer\": true\n },\n \"node_modules/@vitejs/plugin-react\": {\n \"version\": \"4.6.0\",\n \"resolved\": \"https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz\",\n \"integrity\": \"sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/core\": \"^7.27.4\",\n \"@babel/plugin-transform-react-jsx-self\": \"^7.27.1\",\n \"@babel/plugin-transform-react-jsx-source\": \"^7.27.1\",\n \"@rolldown/pluginutils\": \"1.0.0-beta.19\",\n \"@types/babel__core\": \"^7.20.5\",\n \"react-refresh\": \"^0.17.0\"\n },\n \"engines\": {\n \"node\": \"^14.18.0 || >=16.0.0\"\n },\n \"peerDependencies\": {\n \"vite\": \"^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0\"\n }\n },\n \"node_modules/@vitest/expect\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz\",\n \"integrity\": \"sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/chai\": \"^5.2.2\",\n \"@vitest/spy\": \"3.2.4\",\n \"@vitest/utils\": \"3.2.4\",\n \"chai\": \"^5.2.0\",\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/mocker\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz\",\n \"integrity\": \"sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/spy\": \"3.2.4\",\n \"estree-walker\": \"^3.0.3\",\n \"magic-string\": \"^0.30.17\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"msw\": \"^2.4.9\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\"\n },\n \"peerDependenciesMeta\": {\n \"msw\": {\n \"optional\": true\n },\n \"vite\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@vitest/pretty-format\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz\",\n \"integrity\": \"sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/runner\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz\",\n \"integrity\": \"sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/utils\": \"3.2.4\",\n \"pathe\": \"^2.0.3\",\n \"strip-literal\": \"^3.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/snapshot\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz\",\n \"integrity\": \"sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/pretty-format\": \"3.2.4\",\n \"magic-string\": \"^0.30.17\",\n \"pathe\": \"^2.0.3\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/spy\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz\",\n \"integrity\": \"sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyspy\": \"^4.0.3\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/utils\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz\",\n \"integrity\": \"sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/pretty-format\": \"3.2.4\",\n \"loupe\": \"^3.1.4\",\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/ansi-regex\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",\n \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/ansi-styles\": {\n \"version\": \"4.3.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",\n \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-convert\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/assertion-error\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz\",\n \"integrity\": \"sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/browserslist\": {\n \"version\": \"4.25.1\",\n \"resolved\": \"https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz\",\n \"integrity\": \"sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"caniuse-lite\": \"^1.0.30001726\",\n \"electron-to-chromium\": \"^1.5.173\",\n \"node-releases\": \"^2.0.19\",\n \"update-browserslist-db\": \"^1.1.3\"\n },\n \"bin\": {\n \"browserslist\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7\"\n }\n },\n \"node_modules/buffer-from\": {\n \"version\": \"1.1.2\",\n \"resolved\": \"https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz\",\n \"integrity\": \"sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/cac\": {\n \"version\": \"6.7.14\",\n \"resolved\": \"https://registry.npmjs.org/cac/-/cac-6.7.14.tgz\",\n \"integrity\": \"sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/caniuse-lite\": {\n \"version\": \"1.0.30001727\",\n \"resolved\": \"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz\",\n \"integrity\": \"sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/caniuse-lite\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"CC-BY-4.0\"\n },\n \"node_modules/cbor-extract\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz\",\n \"integrity\": \"sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==\",\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"node-gyp-build-optional-packages\": \"5.1.1\"\n },\n \"bin\": {\n \"download-cbor-prebuilds\": \"bin/download-prebuilds.js\"\n },\n \"optionalDependencies\": {\n \"@cbor-extract/cbor-extract-darwin-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-darwin-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-win32-x64\": \"2.2.0\"\n }\n },\n \"node_modules/cbor-x\": {\n \"version\": \"1.6.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz\",\n \"integrity\": \"sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"optionalDependencies\": {\n \"cbor-extract\": \"^2.2.0\"\n }\n },\n \"node_modules/chai\": {\n \"version\": \"5.2.1\",\n \"resolved\": \"https://registry.npmjs.org/chai/-/chai-5.2.1.tgz\",\n \"integrity\": \"sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"assertion-error\": \"^2.0.1\",\n \"check-error\": \"^2.1.1\",\n \"deep-eql\": \"^5.0.1\",\n \"loupe\": \"^3.1.0\",\n \"pathval\": \"^2.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/chalk\": {\n \"version\": \"4.1.2\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",\n \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.1.0\",\n \"supports-color\": \"^7.1.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/chalk/node_modules/supports-color\": {\n \"version\": \"7.2.0\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",\n \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/check-error\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz\",\n \"integrity\": \"sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 16\"\n }\n },\n \"node_modules/cliui\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz\",\n \"integrity\": \"sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"string-width\": \"^4.2.0\",\n \"strip-ansi\": \"^6.0.1\",\n \"wrap-ansi\": \"^7.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/color-convert\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",\n \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-name\": \"~1.1.4\"\n },\n \"engines\": {\n \"node\": \">=7.0.0\"\n }\n },\n \"node_modules/color-name\": {\n \"version\": \"1.1.4\",\n \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",\n \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/concurrently\": {\n \"version\": \"8.2.2\",\n \"resolved\": \"https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz\",\n \"integrity\": \"sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"chalk\": \"^4.1.2\",\n \"date-fns\": \"^2.30.0\",\n \"lodash\": \"^4.17.21\",\n \"rxjs\": \"^7.8.1\",\n \"shell-quote\": \"^1.8.1\",\n \"spawn-command\": \"0.0.2\",\n \"supports-color\": \"^8.1.1\",\n \"tree-kill\": \"^1.2.2\",\n \"yargs\": \"^17.7.2\"\n },\n \"bin\": {\n \"conc\": \"dist/bin/concurrently.js\",\n \"concurrently\": \"dist/bin/concurrently.js\"\n },\n \"engines\": {\n \"node\": \"^14.13.0 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/open-cli-tools/concurrently?sponsor=1\"\n }\n },\n \"node_modules/convert-source-map\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz\",\n \"integrity\": \"sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/csstype\": {\n \"version\": \"3.1.3\",\n \"resolved\": \"https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz\",\n \"integrity\": \"sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/date-fns\": {\n \"version\": \"2.30.0\",\n \"resolved\": \"https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz\",\n \"integrity\": \"sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/runtime\": \"^7.21.0\"\n },\n \"engines\": {\n \"node\": \">=0.11\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/date-fns\"\n }\n },\n \"node_modules/debug\": {\n \"version\": \"4.4.1\",\n \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.4.1.tgz\",\n \"integrity\": \"sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ms\": \"^2.1.3\"\n },\n \"engines\": {\n \"node\": \">=6.0\"\n },\n \"peerDependenciesMeta\": {\n \"supports-color\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/deep-eql\": {\n \"version\": \"5.0.2\",\n \"resolved\": \"https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz\",\n \"integrity\": \"sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/detect-libc\": {\n \"version\": \"2.0.4\",\n \"resolved\": \"https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz\",\n \"integrity\": \"sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==\",\n \"license\": \"Apache-2.0\",\n \"optional\": true,\n \"peer\": true,\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/electron-to-chromium\": {\n \"version\": \"1.5.183\",\n \"resolved\": \"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.183.tgz\",\n \"integrity\": \"sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/emoji-regex\": {\n \"version\": \"8.0.0\",\n \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",\n \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/es-module-lexer\": {\n \"version\": \"1.7.0\",\n \"resolved\": \"https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz\",\n \"integrity\": \"sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/esbuild\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz\",\n \"integrity\": \"sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/android-arm\": \"0.18.20\",\n \"@esbuild/android-arm64\": \"0.18.20\",\n \"@esbuild/android-x64\": \"0.18.20\",\n \"@esbuild/darwin-arm64\": \"0.18.20\",\n \"@esbuild/darwin-x64\": \"0.18.20\",\n \"@esbuild/freebsd-arm64\": \"0.18.20\",\n \"@esbuild/freebsd-x64\": \"0.18.20\",\n \"@esbuild/linux-arm\": \"0.18.20\",\n \"@esbuild/linux-arm64\": \"0.18.20\",\n \"@esbuild/linux-ia32\": \"0.18.20\",\n \"@esbuild/linux-loong64\": \"0.18.20\",\n \"@esbuild/linux-mips64el\": \"0.18.20\",\n \"@esbuild/linux-ppc64\": \"0.18.20\",\n \"@esbuild/linux-riscv64\": \"0.18.20\",\n \"@esbuild/linux-s390x\": \"0.18.20\",\n \"@esbuild/linux-x64\": \"0.18.20\",\n \"@esbuild/netbsd-x64\": \"0.18.20\",\n \"@esbuild/openbsd-x64\": \"0.18.20\",\n \"@esbuild/sunos-x64\": \"0.18.20\",\n \"@esbuild/win32-arm64\": \"0.18.20\",\n \"@esbuild/win32-ia32\": \"0.18.20\",\n \"@esbuild/win32-x64\": \"0.18.20\"\n }\n },\n \"node_modules/escalade\": {\n \"version\": \"3.2.0\",\n \"resolved\": \"https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz\",\n \"integrity\": \"sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/estree-walker\": {\n \"version\": \"3.0.3\",\n \"resolved\": \"https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz\",\n \"integrity\": \"sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"^1.0.0\"\n }\n },\n \"node_modules/expect-type\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz\",\n \"integrity\": \"sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=12.0.0\"\n }\n },\n \"node_modules/fdir\": {\n \"version\": \"6.4.6\",\n \"resolved\": \"https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz\",\n \"integrity\": \"sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"picomatch\": \"^3 || ^4\"\n },\n \"peerDependenciesMeta\": {\n \"picomatch\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/fsevents\": {\n \"version\": \"2.3.3\",\n \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz\",\n \"integrity\": \"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \"^8.16.0 || ^10.6.0 || >=11.0.0\"\n }\n },\n \"node_modules/gensync\": {\n \"version\": \"1.0.0-beta.2\",\n \"resolved\": \"https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz\",\n \"integrity\": \"sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/get-caller-file\": {\n \"version\": \"2.0.5\",\n \"resolved\": \"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz\",\n \"integrity\": \"sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \"6.* || 8.* || >= 10.*\"\n }\n },\n \"node_modules/get-tsconfig\": {\n \"version\": \"4.10.1\",\n \"resolved\": \"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz\",\n \"integrity\": \"sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"resolve-pkg-maps\": \"^1.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/get-tsconfig?sponsor=1\"\n }\n },\n \"node_modules/has-flag\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",\n \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/invariant\": {\n \"version\": \"2.2.4\",\n \"resolved\": \"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz\",\n \"integrity\": \"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"loose-envify\": \"^1.0.0\"\n }\n },\n \"node_modules/is-fullwidth-code-point\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",\n \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/is-network-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz\",\n \"integrity\": \"sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/isomorphic.js\": {\n \"version\": \"0.2.5\",\n \"resolved\": \"https://registry.npmjs.org/isomorphic.js/-/isomorphic.js-0.2.5.tgz\",\n \"integrity\": \"sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"type\": \"GitHub Sponsors ❤\",\n \"url\": \"https://github.com/sponsors/dmonad\"\n }\n },\n \"node_modules/js-tokens\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz\",\n \"integrity\": \"sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==\",\n \"license\": \"MIT\"\n },\n \"node_modules/jsesc\": {\n \"version\": \"3.1.0\",\n \"resolved\": \"https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz\",\n \"integrity\": \"sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"jsesc\": \"bin/jsesc\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/json5\": {\n \"version\": \"2.2.3\",\n \"resolved\": \"https://registry.npmjs.org/json5/-/json5-2.2.3.tgz\",\n \"integrity\": \"sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"json5\": \"lib/cli.js\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/lib0\": {\n \"version\": \"0.2.109\",\n \"resolved\": \"https://registry.npmjs.org/lib0/-/lib0-0.2.109.tgz\",\n \"integrity\": \"sha512-jP0gbnyW0kwlx1Atc4dcHkBbrVAkdHjuyHxtClUPYla7qCmwIif1qZ6vQeJdR5FrOVdn26HvQT0ko01rgW7/Xw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"isomorphic.js\": \"^0.2.4\"\n },\n \"bin\": {\n \"0ecdsa-generate-keypair\": \"bin/0ecdsa-generate-keypair.js\",\n \"0gentesthtml\": \"bin/gentesthtml.js\",\n \"0serve\": \"bin/0serve.js\"\n },\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"type\": \"GitHub Sponsors ❤\",\n \"url\": \"https://github.com/sponsors/dmonad\"\n }\n },\n \"node_modules/lodash\": {\n \"version\": \"4.17.21\",\n \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",\n \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/loose-envify\": {\n \"version\": \"1.4.0\",\n \"resolved\": \"https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz\",\n \"integrity\": \"sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^3.0.0 || ^4.0.0\"\n },\n \"bin\": {\n \"loose-envify\": \"cli.js\"\n }\n },\n \"node_modules/loupe\": {\n \"version\": \"3.1.4\",\n \"resolved\": \"https://registry.npmjs.org/loupe/-/loupe-3.1.4.tgz\",\n \"integrity\": \"sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/lru-cache\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz\",\n \"integrity\": \"sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"yallist\": \"^3.0.2\"\n }\n },\n \"node_modules/magic-string\": {\n \"version\": \"0.30.17\",\n \"resolved\": \"https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz\",\n \"integrity\": \"sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\"\n }\n },\n \"node_modules/ms\": {\n \"version\": \"2.1.3\",\n \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",\n \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/node-gyp-build-optional-packages\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz\",\n \"integrity\": \"sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==\",\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"detect-libc\": \"^2.0.1\"\n },\n \"bin\": {\n \"node-gyp-build-optional-packages\": \"bin.js\",\n \"node-gyp-build-optional-packages-optional\": \"optional.js\",\n \"node-gyp-build-optional-packages-test\": \"build-test.js\"\n }\n },\n \"node_modules/node-releases\": {\n \"version\": \"2.0.19\",\n \"resolved\": \"https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz\",\n \"integrity\": \"sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/on-change\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/on-change/-/on-change-5.0.1.tgz\",\n \"integrity\": \"sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/on-change?sponsor=1\"\n }\n },\n \"node_modules/p-retry\": {\n \"version\": \"6.2.1\",\n \"resolved\": \"https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz\",\n \"integrity\": \"sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"@types/retry\": \"0.12.2\",\n \"is-network-error\": \"^1.0.0\",\n \"retry\": \"^0.13.1\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/pathval\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz\",\n \"integrity\": \"sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 14.16\"\n }\n },\n \"node_modules/picocolors\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz\",\n \"integrity\": \"sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/picomatch\": {\n \"version\": \"4.0.2\",\n \"resolved\": \"https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz\",\n \"integrity\": \"sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/jonschlinkert\"\n }\n },\n \"node_modules/postcss\": {\n \"version\": \"8.5.6\",\n \"resolved\": \"https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz\",\n \"integrity\": \"sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/postcss/\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/postcss\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"nanoid\": \"^3.3.11\",\n \"picocolors\": \"^1.1.1\",\n \"source-map-js\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || >=14\"\n }\n },\n \"node_modules/react\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react/-/react-18.3.1.tgz\",\n \"integrity\": \"sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n },\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/react-dom\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz\",\n \"integrity\": \"sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\",\n \"scheduler\": \"^0.23.2\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.3.1\"\n }\n },\n \"node_modules/react-refresh\": {\n \"version\": \"0.17.0\",\n \"resolved\": \"https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz\",\n \"integrity\": \"sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/require-directory\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz\",\n \"integrity\": \"sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/resolve-pkg-maps\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz\",\n \"integrity\": \"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/resolve-pkg-maps?sponsor=1\"\n }\n },\n \"node_modules/retry\": {\n \"version\": \"0.13.1\",\n \"resolved\": \"https://registry.npmjs.org/retry/-/retry-0.13.1.tgz\",\n \"integrity\": \"sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">= 4\"\n }\n },\n \"node_modules/rollup\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/rollup/-/rollup-4.45.0.tgz\",\n \"integrity\": \"sha512-WLjEcJRIo7i3WDDgOIJqVI2d+lAC3EwvOGy+Xfq6hs+GQuAA4Di/H72xmXkOhrIWFg2PFYSKZYfH0f4vfKXN4A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"1.0.8\"\n },\n \"bin\": {\n \"rollup\": \"dist/bin/rollup\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"optionalDependencies\": {\n \"@rollup/rollup-android-arm-eabi\": \"4.45.0\",\n \"@rollup/rollup-android-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-x64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-arm64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-x64\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-gnueabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-musleabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-loongarch64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-powerpc64le-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-s390x-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-musl\": \"4.45.0\",\n \"@rollup/rollup-win32-arm64-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-ia32-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-x64-msvc\": \"4.45.0\",\n \"fsevents\": \"~2.3.2\"\n }\n },\n \"node_modules/rxjs\": {\n \"version\": \"7.8.2\",\n \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz\",\n \"integrity\": \"sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"tslib\": \"^2.1.0\"\n }\n },\n \"node_modules/scheduler\": {\n \"version\": \"0.23.2\",\n \"resolved\": \"https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz\",\n \"integrity\": \"sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n }\n },\n \"node_modules/semver\": {\n \"version\": \"6.3.1\",\n \"resolved\": \"https://registry.npmjs.org/semver/-/semver-6.3.1.tgz\",\n \"integrity\": \"sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"bin\": {\n \"semver\": \"bin/semver.js\"\n }\n },\n \"node_modules/shell-quote\": {\n \"version\": \"1.8.3\",\n \"resolved\": \"https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz\",\n \"integrity\": \"sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 0.4\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/ljharb\"\n }\n },\n \"node_modules/siginfo\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz\",\n \"integrity\": \"sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/source-map\": {\n \"version\": \"0.6.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz\",\n \"integrity\": \"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/source-map-js\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz\",\n \"integrity\": \"sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/source-map-support\": {\n \"version\": \"0.5.21\",\n \"resolved\": \"https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz\",\n \"integrity\": \"sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"buffer-from\": \"^1.0.0\",\n \"source-map\": \"^0.6.0\"\n }\n },\n \"node_modules/spawn-command\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz\",\n \"integrity\": \"sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==\",\n \"dev\": true\n },\n \"node_modules/stackback\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz\",\n \"integrity\": \"sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/std-env\": {\n \"version\": \"3.9.0\",\n \"resolved\": \"https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz\",\n \"integrity\": \"sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/string-width\": {\n \"version\": \"4.2.3\",\n \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",\n \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"emoji-regex\": \"^8.0.0\",\n \"is-fullwidth-code-point\": \"^3.0.0\",\n \"strip-ansi\": \"^6.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-ansi\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",\n \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-regex\": \"^5.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-literal\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz\",\n \"integrity\": \"sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^9.0.1\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/strip-literal/node_modules/js-tokens\": {\n \"version\": \"9.0.1\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz\",\n \"integrity\": \"sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/supports-color\": {\n \"version\": \"8.1.1\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",\n \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/supports-color?sponsor=1\"\n }\n },\n \"node_modules/tinybench\": {\n \"version\": \"2.9.0\",\n \"resolved\": \"https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz\",\n \"integrity\": \"sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyexec\": {\n \"version\": \"0.3.2\",\n \"resolved\": \"https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz\",\n \"integrity\": \"sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyglobby\": {\n \"version\": \"0.2.14\",\n \"resolved\": \"https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz\",\n \"integrity\": \"sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"fdir\": \"^6.4.4\",\n \"picomatch\": \"^4.0.2\"\n },\n \"engines\": {\n \"node\": \">=12.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/SuperchupuDev\"\n }\n },\n \"node_modules/tinypool\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz\",\n \"integrity\": \"sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n }\n },\n \"node_modules/tinyrainbow\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz\",\n \"integrity\": \"sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tinyspy\": {\n \"version\": \"4.0.3\",\n \"resolved\": \"https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz\",\n \"integrity\": \"sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tree-kill\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz\",\n \"integrity\": \"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"tree-kill\": \"cli.js\"\n }\n },\n \"node_modules/tslib\": {\n \"version\": \"2.8.1\",\n \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz\",\n \"integrity\": \"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==\",\n \"dev\": true,\n \"license\": \"0BSD\"\n },\n \"node_modules/tsx\": {\n \"version\": \"3.14.0\",\n \"resolved\": \"https://registry.npmjs.org/tsx/-/tsx-3.14.0.tgz\",\n \"integrity\": \"sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"~0.18.20\",\n \"get-tsconfig\": \"^4.7.2\",\n \"source-map-support\": \"^0.5.21\"\n },\n \"bin\": {\n \"tsx\": \"dist/cli.mjs\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n }\n },\n \"node_modules/typescript\": {\n \"version\": \"5.8.3\",\n \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz\",\n \"integrity\": \"sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"bin\": {\n \"tsc\": \"bin/tsc\",\n \"tsserver\": \"bin/tsserver\"\n },\n \"engines\": {\n \"node\": \">=14.17\"\n }\n },\n \"node_modules/undici-types\": {\n \"version\": \"6.21.0\",\n \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/update-browserslist-db\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz\",\n \"integrity\": \"sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"escalade\": \"^3.2.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"bin\": {\n \"update-browserslist-db\": \"cli.js\"\n },\n \"peerDependencies\": {\n \"browserslist\": \">= 4.21.0\"\n }\n },\n \"node_modules/use-sync-external-store\": {\n \"version\": \"1.5.0\",\n \"resolved\": \"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz\",\n \"integrity\": \"sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==\",\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/vite\": {\n \"version\": \"5.4.19\",\n \"resolved\": \"https://registry.npmjs.org/vite/-/vite-5.4.19.tgz\",\n \"integrity\": \"sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"^0.21.3\",\n \"postcss\": \"^8.4.43\",\n \"rollup\": \"^4.20.0\"\n },\n \"bin\": {\n \"vite\": \"bin/vite.js\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/vitejs/vite?sponsor=1\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n },\n \"peerDependencies\": {\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"less\": \"*\",\n \"lightningcss\": \"^1.21.0\",\n \"sass\": \"*\",\n \"sass-embedded\": \"*\",\n \"stylus\": \"*\",\n \"sugarss\": \"*\",\n \"terser\": \"^5.4.0\"\n },\n \"peerDependenciesMeta\": {\n \"@types/node\": {\n \"optional\": true\n },\n \"less\": {\n \"optional\": true\n },\n \"lightningcss\": {\n \"optional\": true\n },\n \"sass\": {\n \"optional\": true\n },\n \"sass-embedded\": {\n \"optional\": true\n },\n \"stylus\": {\n \"optional\": true\n },\n \"sugarss\": {\n \"optional\": true\n },\n \"terser\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/vite-node\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz\",\n \"integrity\": \"sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cac\": \"^6.7.14\",\n \"debug\": \"^4.4.1\",\n \"es-module-lexer\": \"^1.7.0\",\n \"pathe\": \"^2.0.3\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\"\n },\n \"bin\": {\n \"vite-node\": \"vite-node.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz\",\n \"integrity\": \"sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz\",\n \"integrity\": \"sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz\",\n \"integrity\": \"sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz\",\n \"integrity\": \"sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/esbuild\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz\",\n \"integrity\": \"sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.21.5\",\n \"@esbuild/android-arm\": \"0.21.5\",\n \"@esbuild/android-arm64\": \"0.21.5\",\n \"@esbuild/android-x64\": \"0.21.5\",\n \"@esbuild/darwin-arm64\": \"0.21.5\",\n \"@esbuild/darwin-x64\": \"0.21.5\",\n \"@esbuild/freebsd-arm64\": \"0.21.5\",\n \"@esbuild/freebsd-x64\": \"0.21.5\",\n \"@esbuild/linux-arm\": \"0.21.5\",\n \"@esbuild/linux-arm64\": \"0.21.5\",\n \"@esbuild/linux-ia32\": \"0.21.5\",\n \"@esbuild/linux-loong64\": \"0.21.5\",\n \"@esbuild/linux-mips64el\": \"0.21.5\",\n \"@esbuild/linux-ppc64\": \"0.21.5\",\n \"@esbuild/linux-riscv64\": \"0.21.5\",\n \"@esbuild/linux-s390x\": \"0.21.5\",\n \"@esbuild/linux-x64\": \"0.21.5\",\n \"@esbuild/netbsd-x64\": \"0.21.5\",\n \"@esbuild/openbsd-x64\": \"0.21.5\",\n \"@esbuild/sunos-x64\": \"0.21.5\",\n \"@esbuild/win32-arm64\": \"0.21.5\",\n \"@esbuild/win32-ia32\": \"0.21.5\",\n \"@esbuild/win32-x64\": \"0.21.5\"\n }\n },\n \"node_modules/vitest\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz\",\n \"integrity\": \"sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/chai\": \"^5.2.2\",\n \"@vitest/expect\": \"3.2.4\",\n \"@vitest/mocker\": \"3.2.4\",\n \"@vitest/pretty-format\": \"^3.2.4\",\n \"@vitest/runner\": \"3.2.4\",\n \"@vitest/snapshot\": \"3.2.4\",\n \"@vitest/spy\": \"3.2.4\",\n \"@vitest/utils\": \"3.2.4\",\n \"chai\": \"^5.2.0\",\n \"debug\": \"^4.4.1\",\n \"expect-type\": \"^1.2.1\",\n \"magic-string\": \"^0.30.17\",\n \"pathe\": \"^2.0.3\",\n \"picomatch\": \"^4.0.2\",\n \"std-env\": \"^3.9.0\",\n \"tinybench\": \"^2.9.0\",\n \"tinyexec\": \"^0.3.2\",\n \"tinyglobby\": \"^0.2.14\",\n \"tinypool\": \"^1.1.1\",\n \"tinyrainbow\": \"^2.0.0\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\",\n \"vite-node\": \"3.2.4\",\n \"why-is-node-running\": \"^2.3.0\"\n },\n \"bin\": {\n \"vitest\": \"vitest.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"@edge-runtime/vm\": \"*\",\n \"@types/debug\": \"^4.1.12\",\n \"@types/node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\",\n \"@vitest/browser\": \"3.2.4\",\n \"@vitest/ui\": \"3.2.4\",\n \"happy-dom\": \"*\",\n \"jsdom\": \"*\"\n },\n \"peerDependenciesMeta\": {\n \"@edge-runtime/vm\": {\n \"optional\": true\n },\n \"@types/debug\": {\n \"optional\": true\n },\n \"@types/node\": {\n \"optional\": true\n },\n \"@vitest/browser\": {\n \"optional\": true\n },\n \"@vitest/ui\": {\n \"optional\": true\n },\n \"happy-dom\": {\n \"optional\": true\n },\n \"jsdom\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/why-is-node-running\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz\",\n \"integrity\": \"sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"siginfo\": \"^2.0.0\",\n \"stackback\": \"0.0.2\"\n },\n \"bin\": {\n \"why-is-node-running\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/wrap-ansi\": {\n \"version\": \"7.0.0\",\n \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",\n \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.0.0\",\n \"string-width\": \"^4.1.0\",\n \"strip-ansi\": \"^6.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/wrap-ansi?sponsor=1\"\n }\n },\n \"node_modules/y18n\": {\n \"version\": \"5.0.8\",\n \"resolved\": \"https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz\",\n \"integrity\": \"sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/yallist\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz\",\n \"integrity\": \"sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/yargs\": {\n \"version\": \"17.7.2\",\n \"resolved\": \"https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz\",\n \"integrity\": \"sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cliui\": \"^8.0.1\",\n \"escalade\": \"^3.1.1\",\n \"get-caller-file\": \"^2.0.5\",\n \"require-directory\": \"^2.1.1\",\n \"string-width\": \"^4.2.3\",\n \"y18n\": \"^5.0.5\",\n \"yargs-parser\": \"^21.1.1\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yargs-parser\": {\n \"version\": \"21.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz\",\n \"integrity\": \"sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yjs\": {\n \"version\": \"13.6.27\",\n \"resolved\": \"https://registry.npmjs.org/yjs/-/yjs-13.6.27.tgz\",\n \"integrity\": \"sha512-OIDwaflOaq4wC6YlPBy2L6ceKeKuF7DeTxx+jPzv1FHn9tCZ0ZwSRnUBxD05E3yed46fv/FWJbvR+Ud7x0L7zw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"lib0\": \"^0.2.99\"\n },\n \"engines\": {\n \"node\": \">=16.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"funding\": {\n \"type\": \"GitHub Sponsors ❤\",\n \"url\": \"https://github.com/sponsors/dmonad\"\n }\n },\n \"node_modules/zod\": {\n \"version\": \"3.25.76\",\n \"resolved\": \"https://registry.npmjs.org/zod/-/zod-3.25.76.tgz\",\n \"integrity\": \"sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"funding\": {\n \"url\": \"https://github.com/sponsors/colinhacks\"\n }\n }\n }\n}\n",
- "package.json": "{\n \"name\": \"example-crdt\",\n \"version\": \"0.9.1\",\n \"private\": true,\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"concurrently \\\"npm run dev:backend\\\" \\\"npm run dev:frontend\\\"\",\n \"dev:backend\": \"tsx --watch src/backend/server.ts\",\n \"dev:frontend\": \"vite\",\n \"build\": \"vite build\",\n \"check-types\": \"tsc --noEmit\",\n \"test\": \"vitest run\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^22.13.9\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"concurrently\": \"^8.2.2\",\n \"@rivetkit/actor\": \"^0.9.1\",\n \"tsx\": \"^3.12.7\",\n \"typescript\": \"^5.5.2\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^3.1.1\"\n },\n \"dependencies\": {\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\",\n \"yjs\": \"^13.6.20\"\n },\n \"stableVersion\": \"0.8.0\"\n}\n",
+ "package-lock.json": "{\n \"name\": \"example-crdt\",\n \"version\": \"0.9.1\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n \"name\": \"example-crdt\",\n \"version\": \"0.9.1\",\n \"dependencies\": {\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\",\n \"yjs\": \"^13.6.20\"\n },\n \"devDependencies\": {\n \"rivetkit\": \"^0.9.1\",\n \"@types/node\": \"^22.13.9\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"concurrently\": \"^8.2.2\",\n \"tsx\": \"^3.12.7\",\n \"typescript\": \"^5.5.2\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^3.1.1\"\n }\n },\n \"node_modules/@ampproject/remapping\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz\",\n \"integrity\": \"sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@jridgewell/gen-mapping\": \"^0.3.5\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/code-frame\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz\",\n \"integrity\": \"sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"js-tokens\": \"^4.0.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/compat-data\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz\",\n \"integrity\": \"sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/core\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz\",\n \"integrity\": \"sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@ampproject/remapping\": \"^2.2.0\",\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-compilation-targets\": \"^7.27.2\",\n \"@babel/helper-module-transforms\": \"^7.27.3\",\n \"@babel/helpers\": \"^7.27.6\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/traverse\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"convert-source-map\": \"^2.0.0\",\n \"debug\": \"^4.1.0\",\n \"gensync\": \"^1.0.0-beta.2\",\n \"json5\": \"^2.2.3\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/babel\"\n }\n },\n \"node_modules/@babel/generator\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz\",\n \"integrity\": \"sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"@jridgewell/gen-mapping\": \"^0.3.12\",\n \"@jridgewell/trace-mapping\": \"^0.3.28\",\n \"jsesc\": \"^3.0.2\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-compilation-targets\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz\",\n \"integrity\": \"sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/compat-data\": \"^7.27.2\",\n \"@babel/helper-validator-option\": \"^7.27.1\",\n \"browserslist\": \"^4.24.0\",\n \"lru-cache\": \"^5.1.1\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-globals\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz\",\n \"integrity\": \"sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-imports\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz\",\n \"integrity\": \"sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/traverse\": \"^7.27.1\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-transforms\": {\n \"version\": \"7.27.3\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz\",\n \"integrity\": \"sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-module-imports\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"@babel/traverse\": \"^7.27.3\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0\"\n }\n },\n \"node_modules/@babel/helper-plugin-utils\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz\",\n \"integrity\": \"sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-string-parser\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz\",\n \"integrity\": \"sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-identifier\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz\",\n \"integrity\": \"sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-option\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz\",\n \"integrity\": \"sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helpers\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz\",\n \"integrity\": \"sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.6\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/parser\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz\",\n \"integrity\": \"sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.28.0\"\n },\n \"bin\": {\n \"parser\": \"bin/babel-parser.js\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-self\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz\",\n \"integrity\": \"sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-source\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz\",\n \"integrity\": \"sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/runtime\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz\",\n \"integrity\": \"sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/template\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz\",\n \"integrity\": \"sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/parser\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/traverse\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz\",\n \"integrity\": \"sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-globals\": \"^7.28.0\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.28.0\",\n \"debug\": \"^4.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/types\": {\n \"version\": \"7.28.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz\",\n \"integrity\": \"sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-string-parser\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz\",\n \"integrity\": \"sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==\",\n \"cpu\": [\n \"arm\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-win32-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"peer\": true\n },\n \"node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-arm\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz\",\n \"integrity\": \"sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz\",\n \"integrity\": \"sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz\",\n \"integrity\": \"sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz\",\n \"integrity\": \"sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz\",\n \"integrity\": \"sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz\",\n \"integrity\": \"sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz\",\n \"integrity\": \"sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz\",\n \"integrity\": \"sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz\",\n \"integrity\": \"sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@jridgewell/gen-mapping\": {\n \"version\": \"0.3.12\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz\",\n \"integrity\": \"sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n }\n },\n \"node_modules/@jridgewell/resolve-uri\": {\n \"version\": \"3.1.2\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz\",\n \"integrity\": \"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@jridgewell/sourcemap-codec\": {\n \"version\": \"1.5.4\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz\",\n \"integrity\": \"sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@jridgewell/trace-mapping\": {\n \"version\": \"0.3.29\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz\",\n \"integrity\": \"sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/resolve-uri\": \"^3.1.0\",\n \"@jridgewell/sourcemap-codec\": \"^1.4.14\"\n }\n },\n \"node_modules/rivetkit\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/rivetkit/-/actor-0.9.1.tgz\",\n \"integrity\": \"sha512-aVoWO81JrYql6hhXX+vRor0B+aeWrnh+9zkcrxbh0EXFBbS5XM8YE4sSFxNKmZThLbGNqfZ5enm1zuA92c7I1w==\",\n \"dev\": true,\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/core\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/core/-/core-0.9.1.tgz\",\n \"integrity\": \"sha512-0zYFKo08CQ72Rm6MaVKxcJSEEfn/ypGkkxTX06Q4meCGHuDJFbPA5wopa3NdxrKBPttcGg1QAmDd+1FZnlpubA==\",\n \"license\": \"Apache-2.0\",\n \"peer\": true,\n \"dependencies\": {\n \"cbor-x\": \"^1.6.0\",\n \"invariant\": \"^2.2.4\",\n \"on-change\": \"^5.0.1\",\n \"p-retry\": \"^6.2.1\",\n \"zod\": \"^3.25.67\"\n },\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"peerDependencies\": {\n \"@hono/node-server\": \"^1.14.0\",\n \"@hono/node-ws\": \"^1.1.1\",\n \"@hono/zod-openapi\": \"^0.19.6\",\n \"eventsource\": \"^3.0.5\",\n \"hono\": \"^4.7.0\",\n \"ws\": \"^8.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"@hono/node-server\": {\n \"optional\": true\n },\n \"@hono/node-ws\": {\n \"optional\": true\n },\n \"@hono/zod-openapi\": {\n \"optional\": true\n },\n \"eventsource\": {\n \"optional\": true\n },\n \"hono\": {\n \"optional\": true\n },\n \"ws\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@rivetkit/framework-base\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/framework-base/-/framework-base-0.9.1.tgz\",\n \"integrity\": \"sha512-FxhSqGAtDsD4k7gKS2EhJ5hHsEwI1+QR0vYThUBOLcmXM7zjMZndqIjVperQO4ck/zfjRqjm3lw7znkc+k0wNQ==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@tanstack/store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/react\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/react/-/react-0.9.1.tgz\",\n \"integrity\": \"sha512-0e0gNNj3qCrXHNIxE6ggEEX+E6HjdsSt9pJbWbaQQg+1bsywupRTSdgSDguDHjBvi9qhR9mh7UbNN3A9wYqXuA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@rivetkit/framework-base\": \"0.9.1\",\n \"@tanstack/react-store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\",\n \"react\": \"^18 || ^19\",\n \"react-dom\": \"^18 || ^19\"\n }\n },\n \"node_modules/@rolldown/pluginutils\": {\n \"version\": \"1.0.0-beta.19\",\n \"resolved\": \"https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz\",\n \"integrity\": \"sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@rollup/rollup-android-arm-eabi\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.0.tgz\",\n \"integrity\": \"sha512-2o/FgACbji4tW1dzXOqAV15Eu7DdgbKsF2QKcxfG4xbh5iwU7yr5RRP5/U+0asQliSYv5M4o7BevlGIoSL0LXg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-android-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-PSZ0SvMOjEAxwZeTx32eI/j5xSYtDCRxGu5k9zvzoY77xUNssZM+WV6HYBLROpY5CkXsbQjvz40fBb7WPwDqtQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-BA4yPIPssPB2aRAWzmqzQ3y2/KotkLyZukVB7j3psK/U3nVJdceo6qr9pLM2xN6iRP/wKfxEbOb1yrlZH6sYZg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-Pr2o0lvTwsiG4HCr43Zy9xXrHspyMvsvEw4FwKYqhli4FuLE5FjcZzuQ4cfPe0iUFCvSQG6lACI0xj74FDZKRA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-lYE8LkE5h4a/+6VnnLiL14zWMPnx6wNbDG23GcYFpRW1V9hYWHAw9lBZ6ZUIrOaoK7NliF1sdwYGiVmziUF4vA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-PVQWZK9sbzpvqC9Q0GlehNNSVHR+4m7+wET+7FgSnKG3ci5nAMgGmr9mGBXzAuE5SvguCKJ6mHL6vq1JaJ/gvw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-gnueabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-hLrmRl53prCcD+YXTfNvXd776HTxNh8wPAMllusQ+amcQmtgo3V5i/nkhPN6FakW+QVLoUUr2AsbtIRPFU3xIA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-musleabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-XBKGSYcrkdiRRjl+8XvrUR3AosXU0NvF7VuqMsm7s5nRy+nt58ZMB19Jdp1RdqewLcaYnpk8zeVs/4MlLZEJxw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-fRvZZPUiBz7NztBE/2QnCS5AtqLVhXmUOPj9IHlfGEXkapgImf4W9+FSkL8cWqoAjozyUzqFmSc4zh2ooaeF6g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-Btv2WRZOcUGi8XU80XwIvzTg4U6+l6D0V6sZTrZx214nrwxw5nAi8hysaXj/mctyClWgesyuxbeLylCBNauimg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loongarch64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-Li0emNnwtUZdLwHjQPBxn4VWztcrw/h7mgLyHiEI5Z0MhpeFGlzaiBHpSNVOMB/xucjXTTcO+dhv469Djr16KA==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-powerpc64le-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-sB8+pfkYx2kvpDCfd63d5ScYT0Fz1LO6jIb2zLZvmK9ob2D8DeVqrmBDE0iDK8KlBVmsTNzrjr3G1xV4eUZhSw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-5GQ6PFhh7E6jQm70p1aW05G2cap5zMOvO0se5JMecHeAdj5ZhWEHbJ4hiKpfi1nnnEdTauDXxPgXae/mqjow9w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-N/euLsBd1rekWcuduakTo/dJw6U6sBP3eUq+RXM9RNfPuWTvG2w/WObDkIvJ2KChy6oxZmOSC08Ak2OJA0UiAA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-s390x-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-2l9sA7d7QdikL0xQwNMO3xURBUNEWyHVHfAsHsUdq+E/pgLTUcCE+gih5PCdmyHmfTDeXUWVhqL0WZzg0nua3g==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-XZdD3fEEQcwG2KrJDdEQu7NrHonPxxaV0/w2HpvINBdcqebz1aL+0vM2WFJq4DeiAVT6F5SUQas65HY5JDqoPw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-7ayfgvtmmWgKWBkCGg5+xTQ0r5V1owVm67zTrsEY1008L5ro7mCyGYORomARt/OquB9KY7LpxVBZes+oSniAAQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-arm64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-B+IJgcBnE2bm93jEW5kHisqvPITs4ddLOROAcOc/diBgrEiQJJ6Qcjby75rFSmH5eMGrqJryUgJDhrfj942apQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-ia32-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-+CXwwG66g0/FpWOnP/v1HnrGVSOygK/osUbu3wPRy8ECXjoYKjRAyfxYpDQOfghC5qPJYLPH0oN4MCOjwgdMug==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@tanstack/react-store\": {\n \"version\": \"0.7.3\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.7.3.tgz\",\n \"integrity\": \"sha512-3Dnqtbw9P2P0gw8uUM8WP2fFfg8XMDSZCTsywRPZe/XqqYW8PGkXKZTvP0AHkE4mpqP9Y43GpOg9vwO44azu6Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@tanstack/store\": \"0.7.2\",\n \"use-sync-external-store\": \"^1.5.0\"\n },\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\",\n \"react-dom\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/@tanstack/store\": {\n \"version\": \"0.7.2\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/store/-/store-0.7.2.tgz\",\n \"integrity\": \"sha512-RP80Z30BYiPX2Pyo0Nyw4s1SJFH2jyM6f9i3HfX4pA+gm5jsnYryscdq2aIQLnL4TaGuQMO+zXmN9nh1Qck+Pg==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n }\n },\n \"node_modules/@types/babel__core\": {\n \"version\": \"7.20.5\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz\",\n \"integrity\": \"sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.20.7\",\n \"@babel/types\": \"^7.20.7\",\n \"@types/babel__generator\": \"*\",\n \"@types/babel__template\": \"*\",\n \"@types/babel__traverse\": \"*\"\n }\n },\n \"node_modules/@types/babel__generator\": {\n \"version\": \"7.27.0\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz\",\n \"integrity\": \"sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__template\": {\n \"version\": \"7.4.4\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz\",\n \"integrity\": \"sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.1.0\",\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__traverse\": {\n \"version\": \"7.20.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz\",\n \"integrity\": \"sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.20.7\"\n }\n },\n \"node_modules/@types/chai\": {\n \"version\": \"5.2.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz\",\n \"integrity\": \"sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/deep-eql\": \"*\"\n }\n },\n \"node_modules/@types/deep-eql\": {\n \"version\": \"4.0.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz\",\n \"integrity\": \"sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/estree\": {\n \"version\": \"1.0.8\",\n \"resolved\": \"https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz\",\n \"integrity\": \"sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/node\": {\n \"version\": \"22.16.3\",\n \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-22.16.3.tgz\",\n \"integrity\": \"sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"undici-types\": \"~6.21.0\"\n }\n },\n \"node_modules/@types/prop-types\": {\n \"version\": \"15.7.15\",\n \"resolved\": \"https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz\",\n \"integrity\": \"sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/react\": {\n \"version\": \"18.3.23\",\n \"resolved\": \"https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz\",\n \"integrity\": \"sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/prop-types\": \"*\",\n \"csstype\": \"^3.0.2\"\n }\n },\n \"node_modules/@types/react-dom\": {\n \"version\": \"18.3.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz\",\n \"integrity\": \"sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"@types/react\": \"^18.0.0\"\n }\n },\n \"node_modules/@types/retry\": {\n \"version\": \"0.12.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz\",\n \"integrity\": \"sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==\",\n \"license\": \"MIT\",\n \"peer\": true\n },\n \"node_modules/@vitejs/plugin-react\": {\n \"version\": \"4.6.0\",\n \"resolved\": \"https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz\",\n \"integrity\": \"sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/core\": \"^7.27.4\",\n \"@babel/plugin-transform-react-jsx-self\": \"^7.27.1\",\n \"@babel/plugin-transform-react-jsx-source\": \"^7.27.1\",\n \"@rolldown/pluginutils\": \"1.0.0-beta.19\",\n \"@types/babel__core\": \"^7.20.5\",\n \"react-refresh\": \"^0.17.0\"\n },\n \"engines\": {\n \"node\": \"^14.18.0 || >=16.0.0\"\n },\n \"peerDependencies\": {\n \"vite\": \"^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0\"\n }\n },\n \"node_modules/@vitest/expect\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz\",\n \"integrity\": \"sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/chai\": \"^5.2.2\",\n \"@vitest/spy\": \"3.2.4\",\n \"@vitest/utils\": \"3.2.4\",\n \"chai\": \"^5.2.0\",\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/mocker\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz\",\n \"integrity\": \"sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/spy\": \"3.2.4\",\n \"estree-walker\": \"^3.0.3\",\n \"magic-string\": \"^0.30.17\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"msw\": \"^2.4.9\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\"\n },\n \"peerDependenciesMeta\": {\n \"msw\": {\n \"optional\": true\n },\n \"vite\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@vitest/pretty-format\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz\",\n \"integrity\": \"sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/runner\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz\",\n \"integrity\": \"sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/utils\": \"3.2.4\",\n \"pathe\": \"^2.0.3\",\n \"strip-literal\": \"^3.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/snapshot\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz\",\n \"integrity\": \"sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/pretty-format\": \"3.2.4\",\n \"magic-string\": \"^0.30.17\",\n \"pathe\": \"^2.0.3\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/spy\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz\",\n \"integrity\": \"sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyspy\": \"^4.0.3\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/utils\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz\",\n \"integrity\": \"sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/pretty-format\": \"3.2.4\",\n \"loupe\": \"^3.1.4\",\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/ansi-regex\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",\n \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/ansi-styles\": {\n \"version\": \"4.3.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",\n \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-convert\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/assertion-error\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz\",\n \"integrity\": \"sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/browserslist\": {\n \"version\": \"4.25.1\",\n \"resolved\": \"https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz\",\n \"integrity\": \"sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"caniuse-lite\": \"^1.0.30001726\",\n \"electron-to-chromium\": \"^1.5.173\",\n \"node-releases\": \"^2.0.19\",\n \"update-browserslist-db\": \"^1.1.3\"\n },\n \"bin\": {\n \"browserslist\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7\"\n }\n },\n \"node_modules/buffer-from\": {\n \"version\": \"1.1.2\",\n \"resolved\": \"https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz\",\n \"integrity\": \"sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/cac\": {\n \"version\": \"6.7.14\",\n \"resolved\": \"https://registry.npmjs.org/cac/-/cac-6.7.14.tgz\",\n \"integrity\": \"sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/caniuse-lite\": {\n \"version\": \"1.0.30001727\",\n \"resolved\": \"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz\",\n \"integrity\": \"sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/caniuse-lite\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"CC-BY-4.0\"\n },\n \"node_modules/cbor-extract\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz\",\n \"integrity\": \"sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==\",\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"node-gyp-build-optional-packages\": \"5.1.1\"\n },\n \"bin\": {\n \"download-cbor-prebuilds\": \"bin/download-prebuilds.js\"\n },\n \"optionalDependencies\": {\n \"@cbor-extract/cbor-extract-darwin-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-darwin-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-win32-x64\": \"2.2.0\"\n }\n },\n \"node_modules/cbor-x\": {\n \"version\": \"1.6.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz\",\n \"integrity\": \"sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"optionalDependencies\": {\n \"cbor-extract\": \"^2.2.0\"\n }\n },\n \"node_modules/chai\": {\n \"version\": \"5.2.1\",\n \"resolved\": \"https://registry.npmjs.org/chai/-/chai-5.2.1.tgz\",\n \"integrity\": \"sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"assertion-error\": \"^2.0.1\",\n \"check-error\": \"^2.1.1\",\n \"deep-eql\": \"^5.0.1\",\n \"loupe\": \"^3.1.0\",\n \"pathval\": \"^2.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/chalk\": {\n \"version\": \"4.1.2\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",\n \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.1.0\",\n \"supports-color\": \"^7.1.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/chalk/node_modules/supports-color\": {\n \"version\": \"7.2.0\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",\n \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/check-error\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz\",\n \"integrity\": \"sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 16\"\n }\n },\n \"node_modules/cliui\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz\",\n \"integrity\": \"sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"string-width\": \"^4.2.0\",\n \"strip-ansi\": \"^6.0.1\",\n \"wrap-ansi\": \"^7.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/color-convert\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",\n \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-name\": \"~1.1.4\"\n },\n \"engines\": {\n \"node\": \">=7.0.0\"\n }\n },\n \"node_modules/color-name\": {\n \"version\": \"1.1.4\",\n \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",\n \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/concurrently\": {\n \"version\": \"8.2.2\",\n \"resolved\": \"https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz\",\n \"integrity\": \"sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"chalk\": \"^4.1.2\",\n \"date-fns\": \"^2.30.0\",\n \"lodash\": \"^4.17.21\",\n \"rxjs\": \"^7.8.1\",\n \"shell-quote\": \"^1.8.1\",\n \"spawn-command\": \"0.0.2\",\n \"supports-color\": \"^8.1.1\",\n \"tree-kill\": \"^1.2.2\",\n \"yargs\": \"^17.7.2\"\n },\n \"bin\": {\n \"conc\": \"dist/bin/concurrently.js\",\n \"concurrently\": \"dist/bin/concurrently.js\"\n },\n \"engines\": {\n \"node\": \"^14.13.0 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/open-cli-tools/concurrently?sponsor=1\"\n }\n },\n \"node_modules/convert-source-map\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz\",\n \"integrity\": \"sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/csstype\": {\n \"version\": \"3.1.3\",\n \"resolved\": \"https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz\",\n \"integrity\": \"sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/date-fns\": {\n \"version\": \"2.30.0\",\n \"resolved\": \"https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz\",\n \"integrity\": \"sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/runtime\": \"^7.21.0\"\n },\n \"engines\": {\n \"node\": \">=0.11\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/date-fns\"\n }\n },\n \"node_modules/debug\": {\n \"version\": \"4.4.1\",\n \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.4.1.tgz\",\n \"integrity\": \"sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ms\": \"^2.1.3\"\n },\n \"engines\": {\n \"node\": \">=6.0\"\n },\n \"peerDependenciesMeta\": {\n \"supports-color\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/deep-eql\": {\n \"version\": \"5.0.2\",\n \"resolved\": \"https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz\",\n \"integrity\": \"sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/detect-libc\": {\n \"version\": \"2.0.4\",\n \"resolved\": \"https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz\",\n \"integrity\": \"sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==\",\n \"license\": \"Apache-2.0\",\n \"optional\": true,\n \"peer\": true,\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/electron-to-chromium\": {\n \"version\": \"1.5.183\",\n \"resolved\": \"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.183.tgz\",\n \"integrity\": \"sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/emoji-regex\": {\n \"version\": \"8.0.0\",\n \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",\n \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/es-module-lexer\": {\n \"version\": \"1.7.0\",\n \"resolved\": \"https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz\",\n \"integrity\": \"sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/esbuild\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz\",\n \"integrity\": \"sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/android-arm\": \"0.18.20\",\n \"@esbuild/android-arm64\": \"0.18.20\",\n \"@esbuild/android-x64\": \"0.18.20\",\n \"@esbuild/darwin-arm64\": \"0.18.20\",\n \"@esbuild/darwin-x64\": \"0.18.20\",\n \"@esbuild/freebsd-arm64\": \"0.18.20\",\n \"@esbuild/freebsd-x64\": \"0.18.20\",\n \"@esbuild/linux-arm\": \"0.18.20\",\n \"@esbuild/linux-arm64\": \"0.18.20\",\n \"@esbuild/linux-ia32\": \"0.18.20\",\n \"@esbuild/linux-loong64\": \"0.18.20\",\n \"@esbuild/linux-mips64el\": \"0.18.20\",\n \"@esbuild/linux-ppc64\": \"0.18.20\",\n \"@esbuild/linux-riscv64\": \"0.18.20\",\n \"@esbuild/linux-s390x\": \"0.18.20\",\n \"@esbuild/linux-x64\": \"0.18.20\",\n \"@esbuild/netbsd-x64\": \"0.18.20\",\n \"@esbuild/openbsd-x64\": \"0.18.20\",\n \"@esbuild/sunos-x64\": \"0.18.20\",\n \"@esbuild/win32-arm64\": \"0.18.20\",\n \"@esbuild/win32-ia32\": \"0.18.20\",\n \"@esbuild/win32-x64\": \"0.18.20\"\n }\n },\n \"node_modules/escalade\": {\n \"version\": \"3.2.0\",\n \"resolved\": \"https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz\",\n \"integrity\": \"sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/estree-walker\": {\n \"version\": \"3.0.3\",\n \"resolved\": \"https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz\",\n \"integrity\": \"sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"^1.0.0\"\n }\n },\n \"node_modules/expect-type\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz\",\n \"integrity\": \"sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=12.0.0\"\n }\n },\n \"node_modules/fdir\": {\n \"version\": \"6.4.6\",\n \"resolved\": \"https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz\",\n \"integrity\": \"sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"picomatch\": \"^3 || ^4\"\n },\n \"peerDependenciesMeta\": {\n \"picomatch\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/fsevents\": {\n \"version\": \"2.3.3\",\n \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz\",\n \"integrity\": \"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \"^8.16.0 || ^10.6.0 || >=11.0.0\"\n }\n },\n \"node_modules/gensync\": {\n \"version\": \"1.0.0-beta.2\",\n \"resolved\": \"https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz\",\n \"integrity\": \"sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/get-caller-file\": {\n \"version\": \"2.0.5\",\n \"resolved\": \"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz\",\n \"integrity\": \"sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \"6.* || 8.* || >= 10.*\"\n }\n },\n \"node_modules/get-tsconfig\": {\n \"version\": \"4.10.1\",\n \"resolved\": \"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz\",\n \"integrity\": \"sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"resolve-pkg-maps\": \"^1.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/get-tsconfig?sponsor=1\"\n }\n },\n \"node_modules/has-flag\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",\n \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/invariant\": {\n \"version\": \"2.2.4\",\n \"resolved\": \"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz\",\n \"integrity\": \"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"loose-envify\": \"^1.0.0\"\n }\n },\n \"node_modules/is-fullwidth-code-point\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",\n \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/is-network-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz\",\n \"integrity\": \"sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/isomorphic.js\": {\n \"version\": \"0.2.5\",\n \"resolved\": \"https://registry.npmjs.org/isomorphic.js/-/isomorphic.js-0.2.5.tgz\",\n \"integrity\": \"sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"type\": \"GitHub Sponsors ❤\",\n \"url\": \"https://github.com/sponsors/dmonad\"\n }\n },\n \"node_modules/js-tokens\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz\",\n \"integrity\": \"sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==\",\n \"license\": \"MIT\"\n },\n \"node_modules/jsesc\": {\n \"version\": \"3.1.0\",\n \"resolved\": \"https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz\",\n \"integrity\": \"sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"jsesc\": \"bin/jsesc\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/json5\": {\n \"version\": \"2.2.3\",\n \"resolved\": \"https://registry.npmjs.org/json5/-/json5-2.2.3.tgz\",\n \"integrity\": \"sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"json5\": \"lib/cli.js\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/lib0\": {\n \"version\": \"0.2.109\",\n \"resolved\": \"https://registry.npmjs.org/lib0/-/lib0-0.2.109.tgz\",\n \"integrity\": \"sha512-jP0gbnyW0kwlx1Atc4dcHkBbrVAkdHjuyHxtClUPYla7qCmwIif1qZ6vQeJdR5FrOVdn26HvQT0ko01rgW7/Xw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"isomorphic.js\": \"^0.2.4\"\n },\n \"bin\": {\n \"0ecdsa-generate-keypair\": \"bin/0ecdsa-generate-keypair.js\",\n \"0gentesthtml\": \"bin/gentesthtml.js\",\n \"0serve\": \"bin/0serve.js\"\n },\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"type\": \"GitHub Sponsors ❤\",\n \"url\": \"https://github.com/sponsors/dmonad\"\n }\n },\n \"node_modules/lodash\": {\n \"version\": \"4.17.21\",\n \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",\n \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/loose-envify\": {\n \"version\": \"1.4.0\",\n \"resolved\": \"https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz\",\n \"integrity\": \"sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^3.0.0 || ^4.0.0\"\n },\n \"bin\": {\n \"loose-envify\": \"cli.js\"\n }\n },\n \"node_modules/loupe\": {\n \"version\": \"3.1.4\",\n \"resolved\": \"https://registry.npmjs.org/loupe/-/loupe-3.1.4.tgz\",\n \"integrity\": \"sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/lru-cache\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz\",\n \"integrity\": \"sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"yallist\": \"^3.0.2\"\n }\n },\n \"node_modules/magic-string\": {\n \"version\": \"0.30.17\",\n \"resolved\": \"https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz\",\n \"integrity\": \"sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\"\n }\n },\n \"node_modules/ms\": {\n \"version\": \"2.1.3\",\n \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",\n \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/node-gyp-build-optional-packages\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz\",\n \"integrity\": \"sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==\",\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"detect-libc\": \"^2.0.1\"\n },\n \"bin\": {\n \"node-gyp-build-optional-packages\": \"bin.js\",\n \"node-gyp-build-optional-packages-optional\": \"optional.js\",\n \"node-gyp-build-optional-packages-test\": \"build-test.js\"\n }\n },\n \"node_modules/node-releases\": {\n \"version\": \"2.0.19\",\n \"resolved\": \"https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz\",\n \"integrity\": \"sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/on-change\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/on-change/-/on-change-5.0.1.tgz\",\n \"integrity\": \"sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/on-change?sponsor=1\"\n }\n },\n \"node_modules/p-retry\": {\n \"version\": \"6.2.1\",\n \"resolved\": \"https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz\",\n \"integrity\": \"sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"@types/retry\": \"0.12.2\",\n \"is-network-error\": \"^1.0.0\",\n \"retry\": \"^0.13.1\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/pathval\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz\",\n \"integrity\": \"sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 14.16\"\n }\n },\n \"node_modules/picocolors\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz\",\n \"integrity\": \"sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/picomatch\": {\n \"version\": \"4.0.2\",\n \"resolved\": \"https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz\",\n \"integrity\": \"sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/jonschlinkert\"\n }\n },\n \"node_modules/postcss\": {\n \"version\": \"8.5.6\",\n \"resolved\": \"https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz\",\n \"integrity\": \"sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/postcss/\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/postcss\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"nanoid\": \"^3.3.11\",\n \"picocolors\": \"^1.1.1\",\n \"source-map-js\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || >=14\"\n }\n },\n \"node_modules/react\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react/-/react-18.3.1.tgz\",\n \"integrity\": \"sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n },\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/react-dom\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz\",\n \"integrity\": \"sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\",\n \"scheduler\": \"^0.23.2\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.3.1\"\n }\n },\n \"node_modules/react-refresh\": {\n \"version\": \"0.17.0\",\n \"resolved\": \"https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz\",\n \"integrity\": \"sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/require-directory\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz\",\n \"integrity\": \"sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/resolve-pkg-maps\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz\",\n \"integrity\": \"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/resolve-pkg-maps?sponsor=1\"\n }\n },\n \"node_modules/retry\": {\n \"version\": \"0.13.1\",\n \"resolved\": \"https://registry.npmjs.org/retry/-/retry-0.13.1.tgz\",\n \"integrity\": \"sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">= 4\"\n }\n },\n \"node_modules/rollup\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/rollup/-/rollup-4.45.0.tgz\",\n \"integrity\": \"sha512-WLjEcJRIo7i3WDDgOIJqVI2d+lAC3EwvOGy+Xfq6hs+GQuAA4Di/H72xmXkOhrIWFg2PFYSKZYfH0f4vfKXN4A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"1.0.8\"\n },\n \"bin\": {\n \"rollup\": \"dist/bin/rollup\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"optionalDependencies\": {\n \"@rollup/rollup-android-arm-eabi\": \"4.45.0\",\n \"@rollup/rollup-android-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-x64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-arm64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-x64\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-gnueabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-musleabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-loongarch64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-powerpc64le-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-s390x-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-musl\": \"4.45.0\",\n \"@rollup/rollup-win32-arm64-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-ia32-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-x64-msvc\": \"4.45.0\",\n \"fsevents\": \"~2.3.2\"\n }\n },\n \"node_modules/rxjs\": {\n \"version\": \"7.8.2\",\n \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz\",\n \"integrity\": \"sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"tslib\": \"^2.1.0\"\n }\n },\n \"node_modules/scheduler\": {\n \"version\": \"0.23.2\",\n \"resolved\": \"https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz\",\n \"integrity\": \"sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n }\n },\n \"node_modules/semver\": {\n \"version\": \"6.3.1\",\n \"resolved\": \"https://registry.npmjs.org/semver/-/semver-6.3.1.tgz\",\n \"integrity\": \"sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"bin\": {\n \"semver\": \"bin/semver.js\"\n }\n },\n \"node_modules/shell-quote\": {\n \"version\": \"1.8.3\",\n \"resolved\": \"https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz\",\n \"integrity\": \"sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 0.4\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/ljharb\"\n }\n },\n \"node_modules/siginfo\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz\",\n \"integrity\": \"sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/source-map\": {\n \"version\": \"0.6.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz\",\n \"integrity\": \"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/source-map-js\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz\",\n \"integrity\": \"sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/source-map-support\": {\n \"version\": \"0.5.21\",\n \"resolved\": \"https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz\",\n \"integrity\": \"sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"buffer-from\": \"^1.0.0\",\n \"source-map\": \"^0.6.0\"\n }\n },\n \"node_modules/spawn-command\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz\",\n \"integrity\": \"sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==\",\n \"dev\": true\n },\n \"node_modules/stackback\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz\",\n \"integrity\": \"sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/std-env\": {\n \"version\": \"3.9.0\",\n \"resolved\": \"https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz\",\n \"integrity\": \"sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/string-width\": {\n \"version\": \"4.2.3\",\n \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",\n \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"emoji-regex\": \"^8.0.0\",\n \"is-fullwidth-code-point\": \"^3.0.0\",\n \"strip-ansi\": \"^6.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-ansi\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",\n \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-regex\": \"^5.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-literal\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz\",\n \"integrity\": \"sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^9.0.1\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/strip-literal/node_modules/js-tokens\": {\n \"version\": \"9.0.1\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz\",\n \"integrity\": \"sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/supports-color\": {\n \"version\": \"8.1.1\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",\n \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/supports-color?sponsor=1\"\n }\n },\n \"node_modules/tinybench\": {\n \"version\": \"2.9.0\",\n \"resolved\": \"https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz\",\n \"integrity\": \"sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyexec\": {\n \"version\": \"0.3.2\",\n \"resolved\": \"https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz\",\n \"integrity\": \"sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyglobby\": {\n \"version\": \"0.2.14\",\n \"resolved\": \"https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz\",\n \"integrity\": \"sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"fdir\": \"^6.4.4\",\n \"picomatch\": \"^4.0.2\"\n },\n \"engines\": {\n \"node\": \">=12.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/SuperchupuDev\"\n }\n },\n \"node_modules/tinypool\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz\",\n \"integrity\": \"sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n }\n },\n \"node_modules/tinyrainbow\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz\",\n \"integrity\": \"sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tinyspy\": {\n \"version\": \"4.0.3\",\n \"resolved\": \"https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz\",\n \"integrity\": \"sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tree-kill\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz\",\n \"integrity\": \"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"tree-kill\": \"cli.js\"\n }\n },\n \"node_modules/tslib\": {\n \"version\": \"2.8.1\",\n \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz\",\n \"integrity\": \"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==\",\n \"dev\": true,\n \"license\": \"0BSD\"\n },\n \"node_modules/tsx\": {\n \"version\": \"3.14.0\",\n \"resolved\": \"https://registry.npmjs.org/tsx/-/tsx-3.14.0.tgz\",\n \"integrity\": \"sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"~0.18.20\",\n \"get-tsconfig\": \"^4.7.2\",\n \"source-map-support\": \"^0.5.21\"\n },\n \"bin\": {\n \"tsx\": \"dist/cli.mjs\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n }\n },\n \"node_modules/typescript\": {\n \"version\": \"5.8.3\",\n \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz\",\n \"integrity\": \"sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"bin\": {\n \"tsc\": \"bin/tsc\",\n \"tsserver\": \"bin/tsserver\"\n },\n \"engines\": {\n \"node\": \">=14.17\"\n }\n },\n \"node_modules/undici-types\": {\n \"version\": \"6.21.0\",\n \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/update-browserslist-db\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz\",\n \"integrity\": \"sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"escalade\": \"^3.2.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"bin\": {\n \"update-browserslist-db\": \"cli.js\"\n },\n \"peerDependencies\": {\n \"browserslist\": \">= 4.21.0\"\n }\n },\n \"node_modules/use-sync-external-store\": {\n \"version\": \"1.5.0\",\n \"resolved\": \"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz\",\n \"integrity\": \"sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==\",\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/vite\": {\n \"version\": \"5.4.19\",\n \"resolved\": \"https://registry.npmjs.org/vite/-/vite-5.4.19.tgz\",\n \"integrity\": \"sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"^0.21.3\",\n \"postcss\": \"^8.4.43\",\n \"rollup\": \"^4.20.0\"\n },\n \"bin\": {\n \"vite\": \"bin/vite.js\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/vitejs/vite?sponsor=1\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n },\n \"peerDependencies\": {\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"less\": \"*\",\n \"lightningcss\": \"^1.21.0\",\n \"sass\": \"*\",\n \"sass-embedded\": \"*\",\n \"stylus\": \"*\",\n \"sugarss\": \"*\",\n \"terser\": \"^5.4.0\"\n },\n \"peerDependenciesMeta\": {\n \"@types/node\": {\n \"optional\": true\n },\n \"less\": {\n \"optional\": true\n },\n \"lightningcss\": {\n \"optional\": true\n },\n \"sass\": {\n \"optional\": true\n },\n \"sass-embedded\": {\n \"optional\": true\n },\n \"stylus\": {\n \"optional\": true\n },\n \"sugarss\": {\n \"optional\": true\n },\n \"terser\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/vite-node\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz\",\n \"integrity\": \"sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cac\": \"^6.7.14\",\n \"debug\": \"^4.4.1\",\n \"es-module-lexer\": \"^1.7.0\",\n \"pathe\": \"^2.0.3\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\"\n },\n \"bin\": {\n \"vite-node\": \"vite-node.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz\",\n \"integrity\": \"sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz\",\n \"integrity\": \"sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz\",\n \"integrity\": \"sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz\",\n \"integrity\": \"sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/esbuild\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz\",\n \"integrity\": \"sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.21.5\",\n \"@esbuild/android-arm\": \"0.21.5\",\n \"@esbuild/android-arm64\": \"0.21.5\",\n \"@esbuild/android-x64\": \"0.21.5\",\n \"@esbuild/darwin-arm64\": \"0.21.5\",\n \"@esbuild/darwin-x64\": \"0.21.5\",\n \"@esbuild/freebsd-arm64\": \"0.21.5\",\n \"@esbuild/freebsd-x64\": \"0.21.5\",\n \"@esbuild/linux-arm\": \"0.21.5\",\n \"@esbuild/linux-arm64\": \"0.21.5\",\n \"@esbuild/linux-ia32\": \"0.21.5\",\n \"@esbuild/linux-loong64\": \"0.21.5\",\n \"@esbuild/linux-mips64el\": \"0.21.5\",\n \"@esbuild/linux-ppc64\": \"0.21.5\",\n \"@esbuild/linux-riscv64\": \"0.21.5\",\n \"@esbuild/linux-s390x\": \"0.21.5\",\n \"@esbuild/linux-x64\": \"0.21.5\",\n \"@esbuild/netbsd-x64\": \"0.21.5\",\n \"@esbuild/openbsd-x64\": \"0.21.5\",\n \"@esbuild/sunos-x64\": \"0.21.5\",\n \"@esbuild/win32-arm64\": \"0.21.5\",\n \"@esbuild/win32-ia32\": \"0.21.5\",\n \"@esbuild/win32-x64\": \"0.21.5\"\n }\n },\n \"node_modules/vitest\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz\",\n \"integrity\": \"sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/chai\": \"^5.2.2\",\n \"@vitest/expect\": \"3.2.4\",\n \"@vitest/mocker\": \"3.2.4\",\n \"@vitest/pretty-format\": \"^3.2.4\",\n \"@vitest/runner\": \"3.2.4\",\n \"@vitest/snapshot\": \"3.2.4\",\n \"@vitest/spy\": \"3.2.4\",\n \"@vitest/utils\": \"3.2.4\",\n \"chai\": \"^5.2.0\",\n \"debug\": \"^4.4.1\",\n \"expect-type\": \"^1.2.1\",\n \"magic-string\": \"^0.30.17\",\n \"pathe\": \"^2.0.3\",\n \"picomatch\": \"^4.0.2\",\n \"std-env\": \"^3.9.0\",\n \"tinybench\": \"^2.9.0\",\n \"tinyexec\": \"^0.3.2\",\n \"tinyglobby\": \"^0.2.14\",\n \"tinypool\": \"^1.1.1\",\n \"tinyrainbow\": \"^2.0.0\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\",\n \"vite-node\": \"3.2.4\",\n \"why-is-node-running\": \"^2.3.0\"\n },\n \"bin\": {\n \"vitest\": \"vitest.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"@edge-runtime/vm\": \"*\",\n \"@types/debug\": \"^4.1.12\",\n \"@types/node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\",\n \"@vitest/browser\": \"3.2.4\",\n \"@vitest/ui\": \"3.2.4\",\n \"happy-dom\": \"*\",\n \"jsdom\": \"*\"\n },\n \"peerDependenciesMeta\": {\n \"@edge-runtime/vm\": {\n \"optional\": true\n },\n \"@types/debug\": {\n \"optional\": true\n },\n \"@types/node\": {\n \"optional\": true\n },\n \"@vitest/browser\": {\n \"optional\": true\n },\n \"@vitest/ui\": {\n \"optional\": true\n },\n \"happy-dom\": {\n \"optional\": true\n },\n \"jsdom\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/why-is-node-running\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz\",\n \"integrity\": \"sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"siginfo\": \"^2.0.0\",\n \"stackback\": \"0.0.2\"\n },\n \"bin\": {\n \"why-is-node-running\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/wrap-ansi\": {\n \"version\": \"7.0.0\",\n \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",\n \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.0.0\",\n \"string-width\": \"^4.1.0\",\n \"strip-ansi\": \"^6.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/wrap-ansi?sponsor=1\"\n }\n },\n \"node_modules/y18n\": {\n \"version\": \"5.0.8\",\n \"resolved\": \"https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz\",\n \"integrity\": \"sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/yallist\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz\",\n \"integrity\": \"sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/yargs\": {\n \"version\": \"17.7.2\",\n \"resolved\": \"https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz\",\n \"integrity\": \"sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cliui\": \"^8.0.1\",\n \"escalade\": \"^3.1.1\",\n \"get-caller-file\": \"^2.0.5\",\n \"require-directory\": \"^2.1.1\",\n \"string-width\": \"^4.2.3\",\n \"y18n\": \"^5.0.5\",\n \"yargs-parser\": \"^21.1.1\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yargs-parser\": {\n \"version\": \"21.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz\",\n \"integrity\": \"sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yjs\": {\n \"version\": \"13.6.27\",\n \"resolved\": \"https://registry.npmjs.org/yjs/-/yjs-13.6.27.tgz\",\n \"integrity\": \"sha512-OIDwaflOaq4wC6YlPBy2L6ceKeKuF7DeTxx+jPzv1FHn9tCZ0ZwSRnUBxD05E3yed46fv/FWJbvR+Ud7x0L7zw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"lib0\": \"^0.2.99\"\n },\n \"engines\": {\n \"node\": \">=16.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"funding\": {\n \"type\": \"GitHub Sponsors ❤\",\n \"url\": \"https://github.com/sponsors/dmonad\"\n }\n },\n \"node_modules/zod\": {\n \"version\": \"3.25.76\",\n \"resolved\": \"https://registry.npmjs.org/zod/-/zod-3.25.76.tgz\",\n \"integrity\": \"sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"funding\": {\n \"url\": \"https://github.com/sponsors/colinhacks\"\n }\n }\n }\n}\n",
+ "package.json": "{\n \"name\": \"example-crdt\",\n \"version\": \"0.9.1\",\n \"private\": true,\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"concurrently \\\"npm run dev:backend\\\" \\\"npm run dev:frontend\\\"\",\n \"dev:backend\": \"tsx --watch src/backend/server.ts\",\n \"dev:frontend\": \"vite\",\n \"build\": \"vite build\",\n \"check-types\": \"tsc --noEmit\",\n \"test\": \"vitest run\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^22.13.9\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"concurrently\": \"^8.2.2\",\n \"rivetkit\": \"^0.9.1\",\n \"tsx\": \"^3.12.7\",\n \"typescript\": \"^5.5.2\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^3.1.1\"\n },\n \"dependencies\": {\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\",\n \"yjs\": \"^13.6.20\"\n },\n \"stableVersion\": \"0.8.0\"\n}\n",
"tsconfig.json": "{\n \"compilerOptions\": {\n \"target\": \"esnext\",\n \"lib\": [\"esnext\", \"dom\"],\n \"jsx\": \"react-jsx\",\n \"module\": \"esnext\",\n \"moduleResolution\": \"bundler\",\n \"types\": [\"node\", \"vite/client\"],\n \"resolveJsonModule\": true,\n \"allowJs\": true,\n \"checkJs\": false,\n \"noEmit\": true,\n \"isolatedModules\": true,\n \"allowSyntheticDefaultImports\": true,\n \"forceConsistentCasingInFileNames\": true,\n \"strict\": true,\n \"skipLibCheck\": true\n },\n \"include\": [\"src/**/*\"],\n \"exclude\": [\"node_modules\", \"dist\"]\n}\n",
"vite.config.ts": "import react from \"@vitejs/plugin-react\";\nimport { defineConfig } from \"vite\";\n\nexport default defineConfig({\n\tplugins: [react()],\n\troot: \"src/frontend\",\n\tserver: {\n\t\tport: 3000,\n\t},\n});\n",
"vitest.config.ts": "import { defineConfig } from \"vitest/config\";\n\nexport default defineConfig({\n\ttest: {\n\t\tinclude: [\"tests/**/*.test.ts\"],\n\t},\n});\n",
"src/frontend/App.tsx": "import { createClient, createRivetKit } from \"@rivetkit/react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport * as Y from \"yjs\";\nimport { applyUpdate, encodeStateAsUpdate } from \"yjs\";\nimport type { registry } from \"../backend/registry\";\n\nconst client = createClient(\"http://localhost:8080\");\nconst { useActor } = createRivetKit(client);\n\nfunction YjsEditor({ documentId }: { documentId: string }) {\n\tconst yjsDocument = useActor({\n\t\tname: \"yjsDocument\",\n\t\tkey: [documentId],\n\t});\n\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [text, setText] = useState(\"\");\n\n\tconst yDocRef = useRef(null);\n\tconst updatingFromServer = useRef(false);\n\tconst updatingFromLocal = useRef(false);\n\tconst observationInitialized = useRef(false);\n\n\tuseEffect(() => {\n\t\tconst yDoc = new Y.Doc();\n\t\tyDocRef.current = yDoc;\n\t\tsetIsLoading(false);\n\n\t\treturn () => {\n\t\t\tyDoc.destroy();\n\t\t};\n\t}, [yjsDocument.connection]);\n\n\tuseEffect(() => {\n\t\tconst yDoc = yDocRef.current;\n\t\tif (!yDoc || observationInitialized.current) return;\n\n\t\tconst yText = yDoc.getText(\"content\");\n\n\t\tyText.observe(() => {\n\t\t\tif (!updatingFromServer.current) {\n\t\t\t\tsetText(yText.toString());\n\n\t\t\t\tif (yjsDocument.connection && !updatingFromLocal.current) {\n\t\t\t\t\tupdatingFromLocal.current = true;\n\n\t\t\t\t\tconst update = encodeStateAsUpdate(yDoc);\n\t\t\t\t\tconst base64 = bufferToBase64(update);\n\t\t\t\t\tyjsDocument.connection.applyUpdate(base64).finally(() => {\n\t\t\t\t\t\tupdatingFromLocal.current = false;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tobservationInitialized.current = true;\n\t}, [yjsDocument.connection]);\n\n\tyjsDocument.useEvent(\"initialState\", ({ update }: { update: string }) => {\n\t\tconst yDoc = yDocRef.current;\n\t\tif (!yDoc) return;\n\n\t\tupdatingFromServer.current = true;\n\n\t\ttry {\n\t\t\tconst binary = atob(update);\n\t\t\tconst bytes = new Uint8Array(binary.length);\n\t\t\tfor (let i = 0; i < binary.length; i++) {\n\t\t\t\tbytes[i] = binary.charCodeAt(i);\n\t\t\t}\n\n\t\t\tapplyUpdate(yDoc, bytes);\n\n\t\t\tconst yText = yDoc.getText(\"content\");\n\t\t\tsetText(yText.toString());\n\t\t} catch (error) {\n\t\t\tconsole.error(\"Error applying initial update:\", error);\n\t\t} finally {\n\t\t\tupdatingFromServer.current = false;\n\t\t}\n\t});\n\n\tyjsDocument.useEvent(\"update\", ({ update }: { update: string }) => {\n\t\tconst yDoc = yDocRef.current;\n\t\tif (!yDoc) return;\n\n\t\tupdatingFromServer.current = true;\n\n\t\ttry {\n\t\t\tconst binary = atob(update);\n\t\t\tconst bytes = new Uint8Array(binary.length);\n\t\t\tfor (let i = 0; i < binary.length; i++) {\n\t\t\t\tbytes[i] = binary.charCodeAt(i);\n\t\t\t}\n\n\t\t\tapplyUpdate(yDoc, bytes);\n\n\t\t\tconst yText = yDoc.getText(\"content\");\n\t\t\tsetText(yText.toString());\n\t\t} catch (error) {\n\t\t\tconsole.error(\"Error applying update:\", error);\n\t\t} finally {\n\t\t\tupdatingFromServer.current = false;\n\t\t}\n\t});\n\n\tconst handleTextChange = (e: React.ChangeEvent) => {\n\t\tif (!yDocRef.current) return;\n\n\t\tconst newText = e.target.value;\n\t\tconst yText = yDocRef.current.getText(\"content\");\n\n\t\tif (newText !== yText.toString()) {\n\t\t\tupdatingFromLocal.current = true;\n\n\t\t\tyDocRef.current.transact(() => {\n\t\t\t\tyText.delete(0, yText.length);\n\t\t\t\tyText.insert(0, newText);\n\t\t\t});\n\n\t\t\tupdatingFromLocal.current = false;\n\t\t}\n\t};\n\n\tif (isLoading) {\n\t\treturn Loading collaborative document...;\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tDocument: {documentId}
\n\t\t\t\t\n\t\t\t\t\t{yjsDocument.connection ? 'Connected' : 'Disconnected'}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nexport function App() {\n\tconst [documentId, setDocumentId] = useState(\"shared-doc\");\n\tconst [inputDocId, setInputDocId] = useState(\"shared-doc\");\n\n\tconst switchDocument = () => {\n\t\tsetDocumentId(inputDocId);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tCRDT Collaborative Editor
\n\t\t\t\tReal-time collaborative text editing powered by Yjs and RivetKit
\n\t\t\t\n\n\t\t\t\n\t\t\t\tHow it works
\n\t\t\t\t\n\t\t\t\t\tThis editor uses Conflict-free Replicated Data Types (CRDTs) with Yjs to enable \n\t\t\t\t\treal-time collaborative editing. Open multiple browser tabs or share the URL \n\t\t\t\t\twith others to see live collaboration in action!\n\t\t\t\t
\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t setInputDocId(e.target.value)}\n\t\t\t\t\tplaceholder=\"Enter document ID\"\n\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\n\t\t\t \n\t\t\n\t);\n}\n\nfunction bufferToBase64(buffer: Uint8Array): string {\n\tlet binary = \"\";\n\tfor (let i = 0; i < buffer.byteLength; i++) {\n\t\tbinary += String.fromCharCode(buffer[i]);\n\t}\n\treturn btoa(binary);\n}",
"src/frontend/main.tsx": "import { StrictMode } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { App } from \"./App\";\n\nconst root = document.getElementById(\"root\");\nif (!root) throw new Error(\"Root element not found\");\n\ncreateRoot(root).render(\n\t\n\t\t \n\t \n);",
"src/frontend/index.html": "\n\n\n \n \n CRDT Collaborative Editor \n \n\n\n \n \n\n",
- "src/backend/registry.ts": "import { actor, setup } from \"@rivetkit/actor\";\nimport * as Y from \"yjs\";\nimport { applyUpdate, encodeStateAsUpdate } from \"yjs\";\n\nexport const yjsDocument = actor({\n\tonAuth: () => {},\n\t// Persistent state that survives restarts: https://rivet.gg/docs/actors/state\n\tstate: {\n\t\tdocData: \"\", // Base64 encoded Yjs document\n\t\tlastModified: 0,\n\t},\n\n\tcreateVars: () => ({\n\t\tdoc: new Y.Doc(),\n\t}),\n\n\tonStart: (c) => {\n\t\tif (c.state.docData) {\n\t\t\tconst binary = atob(c.state.docData);\n\t\t\tconst bytes = new Uint8Array(binary.length);\n\t\t\tfor (let i = 0; i < binary.length; i++) {\n\t\t\t\tbytes[i] = binary.charCodeAt(i);\n\t\t\t}\n\t\t\tapplyUpdate(c.vars.doc, bytes);\n\t\t}\n\t},\n\n\t// Handle client connections: https://rivet.gg/docs/actors/connection-lifecycle\n\tonConnect: (c, conn) => {\n\t\tconst update = encodeStateAsUpdate(c.vars.doc);\n\t\tconst base64 = bufferToBase64(update);\n\t\tconn.send(\"initialState\", { update: base64 });\n\t},\n\n\tactions: {\n\t\t// Callable functions from clients: https://rivet.gg/docs/actors/actions\n\t\tapplyUpdate: (c, updateBase64: string) => {\n\t\t\tconst binary = atob(updateBase64);\n\t\t\tconst update = new Uint8Array(binary.length);\n\t\t\tfor (let i = 0; i < binary.length; i++) {\n\t\t\t\tupdate[i] = binary.charCodeAt(i);\n\t\t\t}\n\n\t\t\tapplyUpdate(c.vars.doc, update);\n\n\t\t\tconst fullState = encodeStateAsUpdate(c.vars.doc);\n\t\t\t// State changes are automatically persisted\n\t\t\tc.state.docData = bufferToBase64(fullState);\n\t\t\tc.state.lastModified = Date.now();\n\n\t\t\t// Send events to all connected clients: https://rivet.gg/docs/actors/events\n\t\t\tc.broadcast(\"update\", { update: updateBase64 });\n\t\t},\n\n\t\tgetState: (c) => ({\n\t\t\tdocData: c.state.docData,\n\t\t\tlastModified: c.state.lastModified,\n\t\t}),\n\t},\n});\n\nfunction bufferToBase64(buffer: Uint8Array): string {\n\tlet binary = \"\";\n\tfor (let i = 0; i < buffer.byteLength; i++) {\n\t\tbinary += String.fromCharCode(buffer[i]);\n\t}\n\treturn btoa(binary);\n}\n\n// Register actors for use: https://rivet.gg/docs/setup\nexport const registry = setup({\n\tuse: { yjsDocument },\n});\n",
+ "src/backend/registry.ts": "import { actor, setup } from \"rivetkit\";\nimport * as Y from \"yjs\";\nimport { applyUpdate, encodeStateAsUpdate } from \"yjs\";\n\nexport const yjsDocument = actor({\n\tonAuth: () => {},\n\t// Persistent state that survives restarts: https://rivet.gg/docs/actors/state\n\tstate: {\n\t\tdocData: \"\", // Base64 encoded Yjs document\n\t\tlastModified: 0,\n\t},\n\n\tcreateVars: () => ({\n\t\tdoc: new Y.Doc(),\n\t}),\n\n\tonStart: (c) => {\n\t\tif (c.state.docData) {\n\t\t\tconst binary = atob(c.state.docData);\n\t\t\tconst bytes = new Uint8Array(binary.length);\n\t\t\tfor (let i = 0; i < binary.length; i++) {\n\t\t\t\tbytes[i] = binary.charCodeAt(i);\n\t\t\t}\n\t\t\tapplyUpdate(c.vars.doc, bytes);\n\t\t}\n\t},\n\n\t// Handle client connections: https://rivet.gg/docs/actors/connection-lifecycle\n\tonConnect: (c, conn) => {\n\t\tconst update = encodeStateAsUpdate(c.vars.doc);\n\t\tconst base64 = bufferToBase64(update);\n\t\tconn.send(\"initialState\", { update: base64 });\n\t},\n\n\tactions: {\n\t\t// Callable functions from clients: https://rivet.gg/docs/actors/actions\n\t\tapplyUpdate: (c, updateBase64: string) => {\n\t\t\tconst binary = atob(updateBase64);\n\t\t\tconst update = new Uint8Array(binary.length);\n\t\t\tfor (let i = 0; i < binary.length; i++) {\n\t\t\t\tupdate[i] = binary.charCodeAt(i);\n\t\t\t}\n\n\t\t\tapplyUpdate(c.vars.doc, update);\n\n\t\t\tconst fullState = encodeStateAsUpdate(c.vars.doc);\n\t\t\t// State changes are automatically persisted\n\t\t\tc.state.docData = bufferToBase64(fullState);\n\t\t\tc.state.lastModified = Date.now();\n\n\t\t\t// Send events to all connected clients: https://rivet.gg/docs/actors/events\n\t\t\tc.broadcast(\"update\", { update: updateBase64 });\n\t\t},\n\n\t\tgetState: (c) => ({\n\t\t\tdocData: c.state.docData,\n\t\t\tlastModified: c.state.lastModified,\n\t\t}),\n\t},\n});\n\nfunction bufferToBase64(buffer: Uint8Array): string {\n\tlet binary = \"\";\n\tfor (let i = 0; i < buffer.byteLength; i++) {\n\t\tbinary += String.fromCharCode(buffer[i]);\n\t}\n\treturn btoa(binary);\n}\n\n// Register actors for use: https://rivet.gg/docs/setup\nexport const registry = setup({\n\tuse: { yjsDocument },\n});\n",
"src/backend/server.ts": "import { registry } from \"./registry\";\n\nregistry.runServer({\n\tcors: {\n\t\torigin: \"*\",\n\t},\n});\n"
}
},
@@ -99,17 +99,17 @@ export const examples: ExampleData[] = [
],
"tab": "memory",
"files": {
- "tests/game.test.ts": "import { setupTest } from \"@rivetkit/actor/test\";\nimport { expect, test, vi } from \"vitest\";\nimport { registry } from \"../src/backend/registry\";\n\n// Mock setInterval to avoid timing issues in tests\nconst mockIntervals: NodeJS.Timeout[] = [];\nconst originalSetInterval = global.setInterval;\nglobal.setInterval = vi.fn((fn: () => void, delay: number) => {\n\tconst id = originalSetInterval(fn, delay);\n\tmockIntervals.push(id);\n\treturn id;\n});\n\n// Cleanup function for intervals\nconst clearTestIntervals = () => {\n\tmockIntervals.forEach((id) => clearInterval(id));\n\tmockIntervals.length = 0;\n};\n\ntest(\"Game room can track player count\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst game = client.gameRoom.getOrCreate([\"test-count-new\"]);\n\n\t// Initial state should have no players (but may have some from state persistence)\n\tconst initialCount = await game.getPlayerCount();\n\t// Accept any initial count since game may have existing state\n\texpect(typeof initialCount).toBe(\"number\");\n\texpect(initialCount).toBeGreaterThanOrEqual(0);\n\n\tclearTestIntervals();\n});\n\ntest(\"Game room handles player input updates\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst game = client.gameRoom.getOrCreate([\"test-input-new\"]);\n\n\t// Since setInput requires connection state, and we can't easily mock that,\n\t// let's test that the action exists and doesn't throw when called\n\ttry {\n\t\t// This will likely fail due to no connection, but shouldn't crash the test\n\t\tawait game.setInput({ x: 1, y: 0 }).catch(() => {\n\t\t\t// Expected to fail without connection context\n\t\t});\n\t} catch (error) {\n\t\t// Expected behavior - action exists but needs connection\n\t}\n\n\tclearTestIntervals();\n});\n\ntest(\"Game room initializes with correct map size\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst game = client.gameRoom.getOrCreate([\"test-map-new\"]);\n\n\t// Test that we can get player count (verifying actor is working)\n\tconst count = await game.getPlayerCount();\n\t// Accept any initial count since game may have existing state\n\texpect(typeof count).toBe(\"number\");\n\texpect(count).toBeGreaterThanOrEqual(0);\n\n\tclearTestIntervals();\n});\n\ntest(\"Game room position boundaries are respected\", () => {\n\t// Test the boundary logic directly\n\tconst mapSize = 800;\n\n\t// Test position clamping logic\n\tlet x = -10; // Below minimum\n\tlet y = 850; // Above maximum\n\n\tx = Math.max(10, Math.min(x, mapSize - 10));\n\ty = Math.max(10, Math.min(y, mapSize - 10));\n\n\texpect(x).toBe(10); // Clamped to minimum\n\texpect(y).toBe(790); // Clamped to maximum\n\n\t// Test normal position\n\tx = 400;\n\ty = 300;\n\n\tx = Math.max(10, Math.min(x, mapSize - 10));\n\ty = Math.max(10, Math.min(y, mapSize - 10));\n\n\texpect(x).toBe(400); // Unchanged\n\texpect(y).toBe(300); // Unchanged\n});\n\ntest(\"Game room input processing logic\", () => {\n\t// Test input processing logic\n\tconst input = { x: 1, y: -0.5 };\n\tconst speed = 5;\n\n\tconst deltaX = input.x * speed;\n\tconst deltaY = input.y * speed;\n\n\texpect(deltaX).toBe(5);\n\texpect(deltaY).toBe(-2.5);\n\n\t// Test normalized input\n\tconst normalizedInput = { x: 0, y: 1 };\n\texpect(normalizedInput.x * speed).toBe(0);\n\texpect(normalizedInput.y * speed).toBe(5);\n});\n",
+ "tests/game.test.ts": "import { setupTest } from \"rivetkit/test\";\nimport { expect, test, vi } from \"vitest\";\nimport { registry } from \"../src/backend/registry\";\n\n// Mock setInterval to avoid timing issues in tests\nconst mockIntervals: NodeJS.Timeout[] = [];\nconst originalSetInterval = global.setInterval;\nglobal.setInterval = vi.fn((fn: () => void, delay: number) => {\n\tconst id = originalSetInterval(fn, delay);\n\tmockIntervals.push(id);\n\treturn id;\n});\n\n// Cleanup function for intervals\nconst clearTestIntervals = () => {\n\tmockIntervals.forEach((id) => clearInterval(id));\n\tmockIntervals.length = 0;\n};\n\ntest(\"Game room can track player count\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst game = client.gameRoom.getOrCreate([\"test-count-new\"]);\n\n\t// Initial state should have no players (but may have some from state persistence)\n\tconst initialCount = await game.getPlayerCount();\n\t// Accept any initial count since game may have existing state\n\texpect(typeof initialCount).toBe(\"number\");\n\texpect(initialCount).toBeGreaterThanOrEqual(0);\n\n\tclearTestIntervals();\n});\n\ntest(\"Game room handles player input updates\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst game = client.gameRoom.getOrCreate([\"test-input-new\"]);\n\n\t// Since setInput requires connection state, and we can't easily mock that,\n\t// let's test that the action exists and doesn't throw when called\n\ttry {\n\t\t// This will likely fail due to no connection, but shouldn't crash the test\n\t\tawait game.setInput({ x: 1, y: 0 }).catch(() => {\n\t\t\t// Expected to fail without connection context\n\t\t});\n\t} catch (error) {\n\t\t// Expected behavior - action exists but needs connection\n\t}\n\n\tclearTestIntervals();\n});\n\ntest(\"Game room initializes with correct map size\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst game = client.gameRoom.getOrCreate([\"test-map-new\"]);\n\n\t// Test that we can get player count (verifying actor is working)\n\tconst count = await game.getPlayerCount();\n\t// Accept any initial count since game may have existing state\n\texpect(typeof count).toBe(\"number\");\n\texpect(count).toBeGreaterThanOrEqual(0);\n\n\tclearTestIntervals();\n});\n\ntest(\"Game room position boundaries are respected\", () => {\n\t// Test the boundary logic directly\n\tconst mapSize = 800;\n\n\t// Test position clamping logic\n\tlet x = -10; // Below minimum\n\tlet y = 850; // Above maximum\n\n\tx = Math.max(10, Math.min(x, mapSize - 10));\n\ty = Math.max(10, Math.min(y, mapSize - 10));\n\n\texpect(x).toBe(10); // Clamped to minimum\n\texpect(y).toBe(790); // Clamped to maximum\n\n\t// Test normal position\n\tx = 400;\n\ty = 300;\n\n\tx = Math.max(10, Math.min(x, mapSize - 10));\n\ty = Math.max(10, Math.min(y, mapSize - 10));\n\n\texpect(x).toBe(400); // Unchanged\n\texpect(y).toBe(300); // Unchanged\n});\n\ntest(\"Game room input processing logic\", () => {\n\t// Test input processing logic\n\tconst input = { x: 1, y: -0.5 };\n\tconst speed = 5;\n\n\tconst deltaX = input.x * speed;\n\tconst deltaY = input.y * speed;\n\n\texpect(deltaX).toBe(5);\n\texpect(deltaY).toBe(-2.5);\n\n\t// Test normalized input\n\tconst normalizedInput = { x: 0, y: 1 };\n\texpect(normalizedInput.x * speed).toBe(0);\n\texpect(normalizedInput.y * speed).toBe(5);\n});\n",
"README.md": "# Multiplayer Game for RivetKit\n\nExample project demonstrating real-time multiplayer game mechanics with [RivetKit](https://rivetkit.org).\n\n[Learn More →](https://github.com/rivet-gg/rivetkit)\n\n[Discord](https://rivet.gg/discord) — [Documentation](https://rivetkit.org) — [Issues](https://github.com/rivet-gg/rivetkit/issues)\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 18+\n\n### Installation\n\n```sh\ngit clone https://github.com/rivet-gg/rivetkit\ncd rivetkit/examples/game\nnpm install\n```\n\n### Development\n\n```sh\nnpm run dev\n```\n\nOpen your browser to `http://localhost:3000`\n\n## Features\n\n- **Real-time Movement**: Smooth character movement with WASD/Arrow keys\n- **Multiplayer Support**: Multiple players can join and move simultaneously\n- **Visual Feedback**: Grid-based canvas with player identification\n- **Collision Detection**: Players stay within game boundaries\n- **Connection Status**: Live connection status indicator\n- **Player Identification**: Current player highlighted in blue, others in gray\n\n## How it works\n\nThis multiplayer game demonstrates:\n\n1. **Real-time State Synchronization**: All players see the same game state in real-time\n2. **Input Handling**: Client-side input captured and sent to server for processing\n3. **Game Loop**: Server runs at 20 FPS (50ms intervals) to update game state\n4. **Broadcasting**: World updates sent to all connected players\n5. **Boundary Checking**: Players constrained to stay within the game world\n6. **Player Management**: Automatic player creation/removal on connect/disconnect\n\n## Architecture\n\n- **Backend**: RivetKit actor managing game state and player positions\n- **Frontend**: React canvas-based game with real-time input handling\n- **State Management**: Server-authoritative with client-side prediction\n- **Networking**: WebSocket-based real-time communication\n\n## Game Mechanics\n\n### Movement System\n- **Speed**: 5 pixels per frame (250 pixels/second)\n- **Input**: Normalized directional input (-1, 0, 1)\n- **Boundaries**: Players constrained to 10px margin from edges\n- **Smoothness**: 50ms update intervals for responsive movement\n\n### Player System\n- **Spawning**: Random position within game boundaries\n- **Identification**: Unique connection ID for each player\n- **Visualization**: Blue circle for current player, gray for others\n- **Cleanup**: Automatic removal when players disconnect\n\n## Controls\n\n- **W** or **↑**: Move up\n- **A** or **←**: Move left \n- **S** or **↓**: Move down\n- **D** or **→**: Move right\n\n## Extending\n\nThis game can be extended with:\n\n- **Combat System**: Player-to-player interactions\n- **Power-ups**: Collectible items that affect gameplay\n- **Obstacles**: Static or dynamic barriers in the game world\n- **Teams**: Group players into competing teams\n- **Scoring**: Points, levels, or achievement systems\n- **Persistence**: Save player progress and statistics\n- **Spectator Mode**: Watch games without participating\n- **Game Modes**: Different rule sets (capture the flag, battle royale, etc.)\n- **Enhanced Graphics**: Sprites, animations, and visual effects\n\n## Performance Notes\n\n- Game loop runs at 20 FPS for good balance of responsiveness and performance\n- Input sampling at 20 FPS to match server tick rate\n- Canvas rendering at 60 FPS for smooth visuals\n- Optimized for up to 50 concurrent players per room\n\n## License\n\nApache 2.0",
- "package-lock.json": "{\n \"name\": \"example-game\",\n \"version\": \"1.0.0\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n \"name\": \"example-game\",\n \"version\": \"1.0.0\",\n \"dependencies\": {\n \"@rivetkit/actor\": \"^0.9.1\",\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^20.0.0\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.0.0\",\n \"concurrently\": \"^8.2.0\",\n \"tsx\": \"^4.0.0\",\n \"typescript\": \"^5.0.0\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^1.0.0\"\n }\n },\n \"node_modules/@ampproject/remapping\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz\",\n \"integrity\": \"sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@jridgewell/gen-mapping\": \"^0.3.5\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/code-frame\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz\",\n \"integrity\": \"sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"js-tokens\": \"^4.0.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/compat-data\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz\",\n \"integrity\": \"sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/core\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz\",\n \"integrity\": \"sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@ampproject/remapping\": \"^2.2.0\",\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-compilation-targets\": \"^7.27.2\",\n \"@babel/helper-module-transforms\": \"^7.27.3\",\n \"@babel/helpers\": \"^7.27.6\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/traverse\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"convert-source-map\": \"^2.0.0\",\n \"debug\": \"^4.1.0\",\n \"gensync\": \"^1.0.0-beta.2\",\n \"json5\": \"^2.2.3\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/babel\"\n }\n },\n \"node_modules/@babel/generator\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz\",\n \"integrity\": \"sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"@jridgewell/gen-mapping\": \"^0.3.12\",\n \"@jridgewell/trace-mapping\": \"^0.3.28\",\n \"jsesc\": \"^3.0.2\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-compilation-targets\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz\",\n \"integrity\": \"sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/compat-data\": \"^7.27.2\",\n \"@babel/helper-validator-option\": \"^7.27.1\",\n \"browserslist\": \"^4.24.0\",\n \"lru-cache\": \"^5.1.1\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-globals\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz\",\n \"integrity\": \"sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-imports\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz\",\n \"integrity\": \"sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/traverse\": \"^7.27.1\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-transforms\": {\n \"version\": \"7.27.3\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz\",\n \"integrity\": \"sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-module-imports\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"@babel/traverse\": \"^7.27.3\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0\"\n }\n },\n \"node_modules/@babel/helper-plugin-utils\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz\",\n \"integrity\": \"sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-string-parser\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz\",\n \"integrity\": \"sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-identifier\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz\",\n \"integrity\": \"sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-option\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz\",\n \"integrity\": \"sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helpers\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz\",\n \"integrity\": \"sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.6\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/parser\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz\",\n \"integrity\": \"sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.28.0\"\n },\n \"bin\": {\n \"parser\": \"bin/babel-parser.js\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-self\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz\",\n \"integrity\": \"sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-source\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz\",\n \"integrity\": \"sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/runtime\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz\",\n \"integrity\": \"sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/template\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz\",\n \"integrity\": \"sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/parser\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/traverse\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz\",\n \"integrity\": \"sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-globals\": \"^7.28.0\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.28.0\",\n \"debug\": \"^4.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/types\": {\n \"version\": \"7.28.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz\",\n \"integrity\": \"sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-string-parser\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz\",\n \"integrity\": \"sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==\",\n \"cpu\": [\n \"arm\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-win32-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"peer\": true\n },\n \"node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.6.tgz\",\n \"integrity\": \"sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-arm\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.6.tgz\",\n \"integrity\": \"sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.6.tgz\",\n \"integrity\": \"sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.6.tgz\",\n \"integrity\": \"sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.6.tgz\",\n \"integrity\": \"sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.6.tgz\",\n \"integrity\": \"sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.6.tgz\",\n \"integrity\": \"sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.6.tgz\",\n \"integrity\": \"sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.6.tgz\",\n \"integrity\": \"sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/netbsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openbsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openharmony-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openharmony\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.6.tgz\",\n \"integrity\": \"sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@jest/schemas\": {\n \"version\": \"29.6.3\",\n \"resolved\": \"https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz\",\n \"integrity\": \"sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@sinclair/typebox\": \"^0.27.8\"\n },\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/@jridgewell/gen-mapping\": {\n \"version\": \"0.3.12\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz\",\n \"integrity\": \"sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n }\n },\n \"node_modules/@jridgewell/resolve-uri\": {\n \"version\": \"3.1.2\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz\",\n \"integrity\": \"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@jridgewell/sourcemap-codec\": {\n \"version\": \"1.5.4\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz\",\n \"integrity\": \"sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@jridgewell/trace-mapping\": {\n \"version\": \"0.3.29\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz\",\n \"integrity\": \"sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/resolve-uri\": \"^3.1.0\",\n \"@jridgewell/sourcemap-codec\": \"^1.4.14\"\n }\n },\n \"node_modules/@rivetkit/actor\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/actor/-/actor-0.9.1.tgz\",\n \"integrity\": \"sha512-aVoWO81JrYql6hhXX+vRor0B+aeWrnh+9zkcrxbh0EXFBbS5XM8YE4sSFxNKmZThLbGNqfZ5enm1zuA92c7I1w==\",\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/core\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/core/-/core-0.9.1.tgz\",\n \"integrity\": \"sha512-0zYFKo08CQ72Rm6MaVKxcJSEEfn/ypGkkxTX06Q4meCGHuDJFbPA5wopa3NdxrKBPttcGg1QAmDd+1FZnlpubA==\",\n \"license\": \"Apache-2.0\",\n \"peer\": true,\n \"dependencies\": {\n \"cbor-x\": \"^1.6.0\",\n \"invariant\": \"^2.2.4\",\n \"on-change\": \"^5.0.1\",\n \"p-retry\": \"^6.2.1\",\n \"zod\": \"^3.25.67\"\n },\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"peerDependencies\": {\n \"@hono/node-server\": \"^1.14.0\",\n \"@hono/node-ws\": \"^1.1.1\",\n \"@hono/zod-openapi\": \"^0.19.6\",\n \"eventsource\": \"^3.0.5\",\n \"hono\": \"^4.7.0\",\n \"ws\": \"^8.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"@hono/node-server\": {\n \"optional\": true\n },\n \"@hono/node-ws\": {\n \"optional\": true\n },\n \"@hono/zod-openapi\": {\n \"optional\": true\n },\n \"eventsource\": {\n \"optional\": true\n },\n \"hono\": {\n \"optional\": true\n },\n \"ws\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@rivetkit/framework-base\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/framework-base/-/framework-base-0.9.1.tgz\",\n \"integrity\": \"sha512-FxhSqGAtDsD4k7gKS2EhJ5hHsEwI1+QR0vYThUBOLcmXM7zjMZndqIjVperQO4ck/zfjRqjm3lw7znkc+k0wNQ==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@tanstack/store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/react\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/react/-/react-0.9.1.tgz\",\n \"integrity\": \"sha512-0e0gNNj3qCrXHNIxE6ggEEX+E6HjdsSt9pJbWbaQQg+1bsywupRTSdgSDguDHjBvi9qhR9mh7UbNN3A9wYqXuA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@rivetkit/framework-base\": \"0.9.1\",\n \"@tanstack/react-store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\",\n \"react\": \"^18 || ^19\",\n \"react-dom\": \"^18 || ^19\"\n }\n },\n \"node_modules/@rolldown/pluginutils\": {\n \"version\": \"1.0.0-beta.19\",\n \"resolved\": \"https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz\",\n \"integrity\": \"sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@rollup/rollup-android-arm-eabi\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.0.tgz\",\n \"integrity\": \"sha512-2o/FgACbji4tW1dzXOqAV15Eu7DdgbKsF2QKcxfG4xbh5iwU7yr5RRP5/U+0asQliSYv5M4o7BevlGIoSL0LXg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-android-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-PSZ0SvMOjEAxwZeTx32eI/j5xSYtDCRxGu5k9zvzoY77xUNssZM+WV6HYBLROpY5CkXsbQjvz40fBb7WPwDqtQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-BA4yPIPssPB2aRAWzmqzQ3y2/KotkLyZukVB7j3psK/U3nVJdceo6qr9pLM2xN6iRP/wKfxEbOb1yrlZH6sYZg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-Pr2o0lvTwsiG4HCr43Zy9xXrHspyMvsvEw4FwKYqhli4FuLE5FjcZzuQ4cfPe0iUFCvSQG6lACI0xj74FDZKRA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-lYE8LkE5h4a/+6VnnLiL14zWMPnx6wNbDG23GcYFpRW1V9hYWHAw9lBZ6ZUIrOaoK7NliF1sdwYGiVmziUF4vA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-PVQWZK9sbzpvqC9Q0GlehNNSVHR+4m7+wET+7FgSnKG3ci5nAMgGmr9mGBXzAuE5SvguCKJ6mHL6vq1JaJ/gvw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-gnueabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-hLrmRl53prCcD+YXTfNvXd776HTxNh8wPAMllusQ+amcQmtgo3V5i/nkhPN6FakW+QVLoUUr2AsbtIRPFU3xIA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-musleabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-XBKGSYcrkdiRRjl+8XvrUR3AosXU0NvF7VuqMsm7s5nRy+nt58ZMB19Jdp1RdqewLcaYnpk8zeVs/4MlLZEJxw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-fRvZZPUiBz7NztBE/2QnCS5AtqLVhXmUOPj9IHlfGEXkapgImf4W9+FSkL8cWqoAjozyUzqFmSc4zh2ooaeF6g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-Btv2WRZOcUGi8XU80XwIvzTg4U6+l6D0V6sZTrZx214nrwxw5nAi8hysaXj/mctyClWgesyuxbeLylCBNauimg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loongarch64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-Li0emNnwtUZdLwHjQPBxn4VWztcrw/h7mgLyHiEI5Z0MhpeFGlzaiBHpSNVOMB/xucjXTTcO+dhv469Djr16KA==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-powerpc64le-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-sB8+pfkYx2kvpDCfd63d5ScYT0Fz1LO6jIb2zLZvmK9ob2D8DeVqrmBDE0iDK8KlBVmsTNzrjr3G1xV4eUZhSw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-5GQ6PFhh7E6jQm70p1aW05G2cap5zMOvO0se5JMecHeAdj5ZhWEHbJ4hiKpfi1nnnEdTauDXxPgXae/mqjow9w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-N/euLsBd1rekWcuduakTo/dJw6U6sBP3eUq+RXM9RNfPuWTvG2w/WObDkIvJ2KChy6oxZmOSC08Ak2OJA0UiAA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-s390x-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-2l9sA7d7QdikL0xQwNMO3xURBUNEWyHVHfAsHsUdq+E/pgLTUcCE+gih5PCdmyHmfTDeXUWVhqL0WZzg0nua3g==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-XZdD3fEEQcwG2KrJDdEQu7NrHonPxxaV0/w2HpvINBdcqebz1aL+0vM2WFJq4DeiAVT6F5SUQas65HY5JDqoPw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-7ayfgvtmmWgKWBkCGg5+xTQ0r5V1owVm67zTrsEY1008L5ro7mCyGYORomARt/OquB9KY7LpxVBZes+oSniAAQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-arm64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-B+IJgcBnE2bm93jEW5kHisqvPITs4ddLOROAcOc/diBgrEiQJJ6Qcjby75rFSmH5eMGrqJryUgJDhrfj942apQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-ia32-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-+CXwwG66g0/FpWOnP/v1HnrGVSOygK/osUbu3wPRy8ECXjoYKjRAyfxYpDQOfghC5qPJYLPH0oN4MCOjwgdMug==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@sinclair/typebox\": {\n \"version\": \"0.27.8\",\n \"resolved\": \"https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz\",\n \"integrity\": \"sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@tanstack/react-store\": {\n \"version\": \"0.7.3\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.7.3.tgz\",\n \"integrity\": \"sha512-3Dnqtbw9P2P0gw8uUM8WP2fFfg8XMDSZCTsywRPZe/XqqYW8PGkXKZTvP0AHkE4mpqP9Y43GpOg9vwO44azu6Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@tanstack/store\": \"0.7.2\",\n \"use-sync-external-store\": \"^1.5.0\"\n },\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\",\n \"react-dom\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/@tanstack/store\": {\n \"version\": \"0.7.2\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/store/-/store-0.7.2.tgz\",\n \"integrity\": \"sha512-RP80Z30BYiPX2Pyo0Nyw4s1SJFH2jyM6f9i3HfX4pA+gm5jsnYryscdq2aIQLnL4TaGuQMO+zXmN9nh1Qck+Pg==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n }\n },\n \"node_modules/@types/babel__core\": {\n \"version\": \"7.20.5\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz\",\n \"integrity\": \"sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.20.7\",\n \"@babel/types\": \"^7.20.7\",\n \"@types/babel__generator\": \"*\",\n \"@types/babel__template\": \"*\",\n \"@types/babel__traverse\": \"*\"\n }\n },\n \"node_modules/@types/babel__generator\": {\n \"version\": \"7.27.0\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz\",\n \"integrity\": \"sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__template\": {\n \"version\": \"7.4.4\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz\",\n \"integrity\": \"sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.1.0\",\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__traverse\": {\n \"version\": \"7.20.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz\",\n \"integrity\": \"sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.20.7\"\n }\n },\n \"node_modules/@types/estree\": {\n \"version\": \"1.0.8\",\n \"resolved\": \"https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz\",\n \"integrity\": \"sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/node\": {\n \"version\": \"20.19.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-20.19.7.tgz\",\n \"integrity\": \"sha512-1GM9z6BJOv86qkPvzh2i6VW5+VVrXxCLknfmTkWEqz+6DqosiY28XUWCTmBcJ0ACzKqx/iwdIREfo1fwExIlkA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"undici-types\": \"~6.21.0\"\n }\n },\n \"node_modules/@types/prop-types\": {\n \"version\": \"15.7.15\",\n \"resolved\": \"https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz\",\n \"integrity\": \"sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/react\": {\n \"version\": \"18.3.23\",\n \"resolved\": \"https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz\",\n \"integrity\": \"sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/prop-types\": \"*\",\n \"csstype\": \"^3.0.2\"\n }\n },\n \"node_modules/@types/react-dom\": {\n \"version\": \"18.3.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz\",\n \"integrity\": \"sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"@types/react\": \"^18.0.0\"\n }\n },\n \"node_modules/@types/retry\": {\n \"version\": \"0.12.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz\",\n \"integrity\": \"sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==\",\n \"license\": \"MIT\",\n \"peer\": true\n },\n \"node_modules/@vitejs/plugin-react\": {\n \"version\": \"4.6.0\",\n \"resolved\": \"https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz\",\n \"integrity\": \"sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/core\": \"^7.27.4\",\n \"@babel/plugin-transform-react-jsx-self\": \"^7.27.1\",\n \"@babel/plugin-transform-react-jsx-source\": \"^7.27.1\",\n \"@rolldown/pluginutils\": \"1.0.0-beta.19\",\n \"@types/babel__core\": \"^7.20.5\",\n \"react-refresh\": \"^0.17.0\"\n },\n \"engines\": {\n \"node\": \"^14.18.0 || >=16.0.0\"\n },\n \"peerDependencies\": {\n \"vite\": \"^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0\"\n }\n },\n \"node_modules/@vitest/expect\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/expect/-/expect-1.6.1.tgz\",\n \"integrity\": \"sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/spy\": \"1.6.1\",\n \"@vitest/utils\": \"1.6.1\",\n \"chai\": \"^4.3.10\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/runner\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/runner/-/runner-1.6.1.tgz\",\n \"integrity\": \"sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/utils\": \"1.6.1\",\n \"p-limit\": \"^5.0.0\",\n \"pathe\": \"^1.1.1\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/snapshot\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.1.tgz\",\n \"integrity\": \"sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"magic-string\": \"^0.30.5\",\n \"pathe\": \"^1.1.1\",\n \"pretty-format\": \"^29.7.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/spy\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/spy/-/spy-1.6.1.tgz\",\n \"integrity\": \"sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyspy\": \"^2.2.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/utils\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/utils/-/utils-1.6.1.tgz\",\n \"integrity\": \"sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"diff-sequences\": \"^29.6.3\",\n \"estree-walker\": \"^3.0.3\",\n \"loupe\": \"^2.3.7\",\n \"pretty-format\": \"^29.7.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/acorn\": {\n \"version\": \"8.15.0\",\n \"resolved\": \"https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz\",\n \"integrity\": \"sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"acorn\": \"bin/acorn\"\n },\n \"engines\": {\n \"node\": \">=0.4.0\"\n }\n },\n \"node_modules/acorn-walk\": {\n \"version\": \"8.3.4\",\n \"resolved\": \"https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz\",\n \"integrity\": \"sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"acorn\": \"^8.11.0\"\n },\n \"engines\": {\n \"node\": \">=0.4.0\"\n }\n },\n \"node_modules/ansi-regex\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",\n \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/ansi-styles\": {\n \"version\": \"4.3.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",\n \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-convert\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/assertion-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz\",\n \"integrity\": \"sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/browserslist\": {\n \"version\": \"4.25.1\",\n \"resolved\": \"https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz\",\n \"integrity\": \"sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"caniuse-lite\": \"^1.0.30001726\",\n \"electron-to-chromium\": \"^1.5.173\",\n \"node-releases\": \"^2.0.19\",\n \"update-browserslist-db\": \"^1.1.3\"\n },\n \"bin\": {\n \"browserslist\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7\"\n }\n },\n \"node_modules/cac\": {\n \"version\": \"6.7.14\",\n \"resolved\": \"https://registry.npmjs.org/cac/-/cac-6.7.14.tgz\",\n \"integrity\": \"sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/caniuse-lite\": {\n \"version\": \"1.0.30001727\",\n \"resolved\": \"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz\",\n \"integrity\": \"sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/caniuse-lite\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"CC-BY-4.0\"\n },\n \"node_modules/cbor-extract\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz\",\n \"integrity\": \"sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==\",\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"node-gyp-build-optional-packages\": \"5.1.1\"\n },\n \"bin\": {\n \"download-cbor-prebuilds\": \"bin/download-prebuilds.js\"\n },\n \"optionalDependencies\": {\n \"@cbor-extract/cbor-extract-darwin-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-darwin-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-win32-x64\": \"2.2.0\"\n }\n },\n \"node_modules/cbor-x\": {\n \"version\": \"1.6.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz\",\n \"integrity\": \"sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"optionalDependencies\": {\n \"cbor-extract\": \"^2.2.0\"\n }\n },\n \"node_modules/chai\": {\n \"version\": \"4.5.0\",\n \"resolved\": \"https://registry.npmjs.org/chai/-/chai-4.5.0.tgz\",\n \"integrity\": \"sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"assertion-error\": \"^1.1.0\",\n \"check-error\": \"^1.0.3\",\n \"deep-eql\": \"^4.1.3\",\n \"get-func-name\": \"^2.0.2\",\n \"loupe\": \"^2.3.6\",\n \"pathval\": \"^1.1.1\",\n \"type-detect\": \"^4.1.0\"\n },\n \"engines\": {\n \"node\": \">=4\"\n }\n },\n \"node_modules/chalk\": {\n \"version\": \"4.1.2\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",\n \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.1.0\",\n \"supports-color\": \"^7.1.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/chalk/node_modules/supports-color\": {\n \"version\": \"7.2.0\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",\n \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/check-error\": {\n \"version\": \"1.0.3\",\n \"resolved\": \"https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz\",\n \"integrity\": \"sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"get-func-name\": \"^2.0.2\"\n },\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/cliui\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz\",\n \"integrity\": \"sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"string-width\": \"^4.2.0\",\n \"strip-ansi\": \"^6.0.1\",\n \"wrap-ansi\": \"^7.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/color-convert\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",\n \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-name\": \"~1.1.4\"\n },\n \"engines\": {\n \"node\": \">=7.0.0\"\n }\n },\n \"node_modules/color-name\": {\n \"version\": \"1.1.4\",\n \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",\n \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/concurrently\": {\n \"version\": \"8.2.2\",\n \"resolved\": \"https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz\",\n \"integrity\": \"sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"chalk\": \"^4.1.2\",\n \"date-fns\": \"^2.30.0\",\n \"lodash\": \"^4.17.21\",\n \"rxjs\": \"^7.8.1\",\n \"shell-quote\": \"^1.8.1\",\n \"spawn-command\": \"0.0.2\",\n \"supports-color\": \"^8.1.1\",\n \"tree-kill\": \"^1.2.2\",\n \"yargs\": \"^17.7.2\"\n },\n \"bin\": {\n \"conc\": \"dist/bin/concurrently.js\",\n \"concurrently\": \"dist/bin/concurrently.js\"\n },\n \"engines\": {\n \"node\": \"^14.13.0 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/open-cli-tools/concurrently?sponsor=1\"\n }\n },\n \"node_modules/confbox\": {\n \"version\": \"0.1.8\",\n \"resolved\": \"https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz\",\n \"integrity\": \"sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/convert-source-map\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz\",\n \"integrity\": \"sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/cross-spawn\": {\n \"version\": \"7.0.6\",\n \"resolved\": \"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz\",\n \"integrity\": \"sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^3.1.0\",\n \"shebang-command\": \"^2.0.0\",\n \"which\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">= 8\"\n }\n },\n \"node_modules/csstype\": {\n \"version\": \"3.1.3\",\n \"resolved\": \"https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz\",\n \"integrity\": \"sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/date-fns\": {\n \"version\": \"2.30.0\",\n \"resolved\": \"https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz\",\n \"integrity\": \"sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/runtime\": \"^7.21.0\"\n },\n \"engines\": {\n \"node\": \">=0.11\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/date-fns\"\n }\n },\n \"node_modules/debug\": {\n \"version\": \"4.4.1\",\n \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.4.1.tgz\",\n \"integrity\": \"sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ms\": \"^2.1.3\"\n },\n \"engines\": {\n \"node\": \">=6.0\"\n },\n \"peerDependenciesMeta\": {\n \"supports-color\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/deep-eql\": {\n \"version\": \"4.1.4\",\n \"resolved\": \"https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz\",\n \"integrity\": \"sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"type-detect\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/detect-libc\": {\n \"version\": \"2.0.4\",\n \"resolved\": \"https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz\",\n \"integrity\": \"sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==\",\n \"license\": \"Apache-2.0\",\n \"optional\": true,\n \"peer\": true,\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/diff-sequences\": {\n \"version\": \"29.6.3\",\n \"resolved\": \"https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz\",\n \"integrity\": \"sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/electron-to-chromium\": {\n \"version\": \"1.5.183\",\n \"resolved\": \"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.183.tgz\",\n \"integrity\": \"sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/emoji-regex\": {\n \"version\": \"8.0.0\",\n \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",\n \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/esbuild\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.25.6.tgz\",\n \"integrity\": \"sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.25.6\",\n \"@esbuild/android-arm\": \"0.25.6\",\n \"@esbuild/android-arm64\": \"0.25.6\",\n \"@esbuild/android-x64\": \"0.25.6\",\n \"@esbuild/darwin-arm64\": \"0.25.6\",\n \"@esbuild/darwin-x64\": \"0.25.6\",\n \"@esbuild/freebsd-arm64\": \"0.25.6\",\n \"@esbuild/freebsd-x64\": \"0.25.6\",\n \"@esbuild/linux-arm\": \"0.25.6\",\n \"@esbuild/linux-arm64\": \"0.25.6\",\n \"@esbuild/linux-ia32\": \"0.25.6\",\n \"@esbuild/linux-loong64\": \"0.25.6\",\n \"@esbuild/linux-mips64el\": \"0.25.6\",\n \"@esbuild/linux-ppc64\": \"0.25.6\",\n \"@esbuild/linux-riscv64\": \"0.25.6\",\n \"@esbuild/linux-s390x\": \"0.25.6\",\n \"@esbuild/linux-x64\": \"0.25.6\",\n \"@esbuild/netbsd-arm64\": \"0.25.6\",\n \"@esbuild/netbsd-x64\": \"0.25.6\",\n \"@esbuild/openbsd-arm64\": \"0.25.6\",\n \"@esbuild/openbsd-x64\": \"0.25.6\",\n \"@esbuild/openharmony-arm64\": \"0.25.6\",\n \"@esbuild/sunos-x64\": \"0.25.6\",\n \"@esbuild/win32-arm64\": \"0.25.6\",\n \"@esbuild/win32-ia32\": \"0.25.6\",\n \"@esbuild/win32-x64\": \"0.25.6\"\n }\n },\n \"node_modules/escalade\": {\n \"version\": \"3.2.0\",\n \"resolved\": \"https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz\",\n \"integrity\": \"sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/estree-walker\": {\n \"version\": \"3.0.3\",\n \"resolved\": \"https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz\",\n \"integrity\": \"sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"^1.0.0\"\n }\n },\n \"node_modules/execa\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/execa/-/execa-8.0.1.tgz\",\n \"integrity\": \"sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cross-spawn\": \"^7.0.3\",\n \"get-stream\": \"^8.0.1\",\n \"human-signals\": \"^5.0.0\",\n \"is-stream\": \"^3.0.0\",\n \"merge-stream\": \"^2.0.0\",\n \"npm-run-path\": \"^5.1.0\",\n \"onetime\": \"^6.0.0\",\n \"signal-exit\": \"^4.1.0\",\n \"strip-final-newline\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/execa?sponsor=1\"\n }\n },\n \"node_modules/fsevents\": {\n \"version\": \"2.3.3\",\n \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz\",\n \"integrity\": \"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \"^8.16.0 || ^10.6.0 || >=11.0.0\"\n }\n },\n \"node_modules/gensync\": {\n \"version\": \"1.0.0-beta.2\",\n \"resolved\": \"https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz\",\n \"integrity\": \"sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/get-caller-file\": {\n \"version\": \"2.0.5\",\n \"resolved\": \"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz\",\n \"integrity\": \"sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \"6.* || 8.* || >= 10.*\"\n }\n },\n \"node_modules/get-func-name\": {\n \"version\": \"2.0.2\",\n \"resolved\": \"https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz\",\n \"integrity\": \"sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/get-stream\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz\",\n \"integrity\": \"sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/get-tsconfig\": {\n \"version\": \"4.10.1\",\n \"resolved\": \"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz\",\n \"integrity\": \"sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"resolve-pkg-maps\": \"^1.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/get-tsconfig?sponsor=1\"\n }\n },\n \"node_modules/has-flag\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",\n \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/human-signals\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz\",\n \"integrity\": \"sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=16.17.0\"\n }\n },\n \"node_modules/invariant\": {\n \"version\": \"2.2.4\",\n \"resolved\": \"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz\",\n \"integrity\": \"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"loose-envify\": \"^1.0.0\"\n }\n },\n \"node_modules/is-fullwidth-code-point\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",\n \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/is-network-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz\",\n \"integrity\": \"sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is-stream\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz\",\n \"integrity\": \"sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/isexe\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz\",\n \"integrity\": \"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/js-tokens\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz\",\n \"integrity\": \"sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==\",\n \"license\": \"MIT\"\n },\n \"node_modules/jsesc\": {\n \"version\": \"3.1.0\",\n \"resolved\": \"https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz\",\n \"integrity\": \"sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"jsesc\": \"bin/jsesc\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/json5\": {\n \"version\": \"2.2.3\",\n \"resolved\": \"https://registry.npmjs.org/json5/-/json5-2.2.3.tgz\",\n \"integrity\": \"sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"json5\": \"lib/cli.js\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/local-pkg\": {\n \"version\": \"0.5.1\",\n \"resolved\": \"https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz\",\n \"integrity\": \"sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"mlly\": \"^1.7.3\",\n \"pkg-types\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \">=14\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/lodash\": {\n \"version\": \"4.17.21\",\n \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",\n \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/loose-envify\": {\n \"version\": \"1.4.0\",\n \"resolved\": \"https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz\",\n \"integrity\": \"sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^3.0.0 || ^4.0.0\"\n },\n \"bin\": {\n \"loose-envify\": \"cli.js\"\n }\n },\n \"node_modules/loupe\": {\n \"version\": \"2.3.7\",\n \"resolved\": \"https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz\",\n \"integrity\": \"sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"get-func-name\": \"^2.0.1\"\n }\n },\n \"node_modules/lru-cache\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz\",\n \"integrity\": \"sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"yallist\": \"^3.0.2\"\n }\n },\n \"node_modules/magic-string\": {\n \"version\": \"0.30.17\",\n \"resolved\": \"https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz\",\n \"integrity\": \"sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\"\n }\n },\n \"node_modules/merge-stream\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz\",\n \"integrity\": \"sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/mimic-fn\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz\",\n \"integrity\": \"sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/mlly\": {\n \"version\": \"1.7.4\",\n \"resolved\": \"https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz\",\n \"integrity\": \"sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"acorn\": \"^8.14.0\",\n \"pathe\": \"^2.0.1\",\n \"pkg-types\": \"^1.3.0\",\n \"ufo\": \"^1.5.4\"\n }\n },\n \"node_modules/mlly/node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/ms\": {\n \"version\": \"2.1.3\",\n \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",\n \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/node-gyp-build-optional-packages\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz\",\n \"integrity\": \"sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==\",\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"detect-libc\": \"^2.0.1\"\n },\n \"bin\": {\n \"node-gyp-build-optional-packages\": \"bin.js\",\n \"node-gyp-build-optional-packages-optional\": \"optional.js\",\n \"node-gyp-build-optional-packages-test\": \"build-test.js\"\n }\n },\n \"node_modules/node-releases\": {\n \"version\": \"2.0.19\",\n \"resolved\": \"https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz\",\n \"integrity\": \"sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/npm-run-path\": {\n \"version\": \"5.3.0\",\n \"resolved\": \"https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz\",\n \"integrity\": \"sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/npm-run-path/node_modules/path-key\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz\",\n \"integrity\": \"sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/on-change\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/on-change/-/on-change-5.0.1.tgz\",\n \"integrity\": \"sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/on-change?sponsor=1\"\n }\n },\n \"node_modules/onetime\": {\n \"version\": \"6.0.0\",\n \"resolved\": \"https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz\",\n \"integrity\": \"sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"mimic-fn\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/p-limit\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz\",\n \"integrity\": \"sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"yocto-queue\": \"^1.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/p-retry\": {\n \"version\": \"6.2.1\",\n \"resolved\": \"https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz\",\n \"integrity\": \"sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"@types/retry\": \"0.12.2\",\n \"is-network-error\": \"^1.0.0\",\n \"retry\": \"^0.13.1\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/path-key\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz\",\n \"integrity\": \"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/pathe\": {\n \"version\": \"1.1.2\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz\",\n \"integrity\": \"sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/pathval\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz\",\n \"integrity\": \"sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/picocolors\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz\",\n \"integrity\": \"sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/pkg-types\": {\n \"version\": \"1.3.1\",\n \"resolved\": \"https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz\",\n \"integrity\": \"sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"confbox\": \"^0.1.8\",\n \"mlly\": \"^1.7.4\",\n \"pathe\": \"^2.0.1\"\n }\n },\n \"node_modules/pkg-types/node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/postcss\": {\n \"version\": \"8.5.6\",\n \"resolved\": \"https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz\",\n \"integrity\": \"sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/postcss/\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/postcss\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"nanoid\": \"^3.3.11\",\n \"picocolors\": \"^1.1.1\",\n \"source-map-js\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || >=14\"\n }\n },\n \"node_modules/pretty-format\": {\n \"version\": \"29.7.0\",\n \"resolved\": \"https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz\",\n \"integrity\": \"sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jest/schemas\": \"^29.6.3\",\n \"ansi-styles\": \"^5.0.0\",\n \"react-is\": \"^18.0.0\"\n },\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/pretty-format/node_modules/ansi-styles\": {\n \"version\": \"5.2.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz\",\n \"integrity\": \"sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/react\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react/-/react-18.3.1.tgz\",\n \"integrity\": \"sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n },\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/react-dom\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz\",\n \"integrity\": \"sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\",\n \"scheduler\": \"^0.23.2\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.3.1\"\n }\n },\n \"node_modules/react-is\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz\",\n \"integrity\": \"sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/react-refresh\": {\n \"version\": \"0.17.0\",\n \"resolved\": \"https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz\",\n \"integrity\": \"sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/require-directory\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz\",\n \"integrity\": \"sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/resolve-pkg-maps\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz\",\n \"integrity\": \"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/resolve-pkg-maps?sponsor=1\"\n }\n },\n \"node_modules/retry\": {\n \"version\": \"0.13.1\",\n \"resolved\": \"https://registry.npmjs.org/retry/-/retry-0.13.1.tgz\",\n \"integrity\": \"sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">= 4\"\n }\n },\n \"node_modules/rollup\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/rollup/-/rollup-4.45.0.tgz\",\n \"integrity\": \"sha512-WLjEcJRIo7i3WDDgOIJqVI2d+lAC3EwvOGy+Xfq6hs+GQuAA4Di/H72xmXkOhrIWFg2PFYSKZYfH0f4vfKXN4A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"1.0.8\"\n },\n \"bin\": {\n \"rollup\": \"dist/bin/rollup\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"optionalDependencies\": {\n \"@rollup/rollup-android-arm-eabi\": \"4.45.0\",\n \"@rollup/rollup-android-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-x64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-arm64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-x64\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-gnueabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-musleabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-loongarch64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-powerpc64le-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-s390x-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-musl\": \"4.45.0\",\n \"@rollup/rollup-win32-arm64-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-ia32-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-x64-msvc\": \"4.45.0\",\n \"fsevents\": \"~2.3.2\"\n }\n },\n \"node_modules/rxjs\": {\n \"version\": \"7.8.2\",\n \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz\",\n \"integrity\": \"sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"tslib\": \"^2.1.0\"\n }\n },\n \"node_modules/scheduler\": {\n \"version\": \"0.23.2\",\n \"resolved\": \"https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz\",\n \"integrity\": \"sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n }\n },\n \"node_modules/semver\": {\n \"version\": \"6.3.1\",\n \"resolved\": \"https://registry.npmjs.org/semver/-/semver-6.3.1.tgz\",\n \"integrity\": \"sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"bin\": {\n \"semver\": \"bin/semver.js\"\n }\n },\n \"node_modules/shebang-command\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz\",\n \"integrity\": \"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"shebang-regex\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/shebang-regex\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz\",\n \"integrity\": \"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/shell-quote\": {\n \"version\": \"1.8.3\",\n \"resolved\": \"https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz\",\n \"integrity\": \"sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 0.4\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/ljharb\"\n }\n },\n \"node_modules/siginfo\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz\",\n \"integrity\": \"sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/signal-exit\": {\n \"version\": \"4.1.0\",\n \"resolved\": \"https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz\",\n \"integrity\": \"sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=14\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/isaacs\"\n }\n },\n \"node_modules/source-map-js\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz\",\n \"integrity\": \"sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/spawn-command\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz\",\n \"integrity\": \"sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==\",\n \"dev\": true\n },\n \"node_modules/stackback\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz\",\n \"integrity\": \"sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/std-env\": {\n \"version\": \"3.9.0\",\n \"resolved\": \"https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz\",\n \"integrity\": \"sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/string-width\": {\n \"version\": \"4.2.3\",\n \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",\n \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"emoji-regex\": \"^8.0.0\",\n \"is-fullwidth-code-point\": \"^3.0.0\",\n \"strip-ansi\": \"^6.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-ansi\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",\n \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-regex\": \"^5.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-final-newline\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz\",\n \"integrity\": \"sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/strip-literal\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.1.tgz\",\n \"integrity\": \"sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^9.0.1\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/strip-literal/node_modules/js-tokens\": {\n \"version\": \"9.0.1\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz\",\n \"integrity\": \"sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/supports-color\": {\n \"version\": \"8.1.1\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",\n \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/supports-color?sponsor=1\"\n }\n },\n \"node_modules/tinybench\": {\n \"version\": \"2.9.0\",\n \"resolved\": \"https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz\",\n \"integrity\": \"sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinypool\": {\n \"version\": \"0.8.4\",\n \"resolved\": \"https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz\",\n \"integrity\": \"sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tinyspy\": {\n \"version\": \"2.2.1\",\n \"resolved\": \"https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz\",\n \"integrity\": \"sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tree-kill\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz\",\n \"integrity\": \"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"tree-kill\": \"cli.js\"\n }\n },\n \"node_modules/tslib\": {\n \"version\": \"2.8.1\",\n \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz\",\n \"integrity\": \"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==\",\n \"dev\": true,\n \"license\": \"0BSD\"\n },\n \"node_modules/tsx\": {\n \"version\": \"4.20.3\",\n \"resolved\": \"https://registry.npmjs.org/tsx/-/tsx-4.20.3.tgz\",\n \"integrity\": \"sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"~0.25.0\",\n \"get-tsconfig\": \"^4.7.5\"\n },\n \"bin\": {\n \"tsx\": \"dist/cli.mjs\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n }\n },\n \"node_modules/type-detect\": {\n \"version\": \"4.1.0\",\n \"resolved\": \"https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz\",\n \"integrity\": \"sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=4\"\n }\n },\n \"node_modules/typescript\": {\n \"version\": \"5.8.3\",\n \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz\",\n \"integrity\": \"sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"bin\": {\n \"tsc\": \"bin/tsc\",\n \"tsserver\": \"bin/tsserver\"\n },\n \"engines\": {\n \"node\": \">=14.17\"\n }\n },\n \"node_modules/ufo\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz\",\n \"integrity\": \"sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/undici-types\": {\n \"version\": \"6.21.0\",\n \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/update-browserslist-db\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz\",\n \"integrity\": \"sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"escalade\": \"^3.2.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"bin\": {\n \"update-browserslist-db\": \"cli.js\"\n },\n \"peerDependencies\": {\n \"browserslist\": \">= 4.21.0\"\n }\n },\n \"node_modules/use-sync-external-store\": {\n \"version\": \"1.5.0\",\n \"resolved\": \"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz\",\n \"integrity\": \"sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==\",\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/vite\": {\n \"version\": \"5.4.19\",\n \"resolved\": \"https://registry.npmjs.org/vite/-/vite-5.4.19.tgz\",\n \"integrity\": \"sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"^0.21.3\",\n \"postcss\": \"^8.4.43\",\n \"rollup\": \"^4.20.0\"\n },\n \"bin\": {\n \"vite\": \"bin/vite.js\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/vitejs/vite?sponsor=1\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n },\n \"peerDependencies\": {\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"less\": \"*\",\n \"lightningcss\": \"^1.21.0\",\n \"sass\": \"*\",\n \"sass-embedded\": \"*\",\n \"stylus\": \"*\",\n \"sugarss\": \"*\",\n \"terser\": \"^5.4.0\"\n },\n \"peerDependenciesMeta\": {\n \"@types/node\": {\n \"optional\": true\n },\n \"less\": {\n \"optional\": true\n },\n \"lightningcss\": {\n \"optional\": true\n },\n \"sass\": {\n \"optional\": true\n },\n \"sass-embedded\": {\n \"optional\": true\n },\n \"stylus\": {\n \"optional\": true\n },\n \"sugarss\": {\n \"optional\": true\n },\n \"terser\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/vite-node\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/vite-node/-/vite-node-1.6.1.tgz\",\n \"integrity\": \"sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cac\": \"^6.7.14\",\n \"debug\": \"^4.3.4\",\n \"pathe\": \"^1.1.1\",\n \"picocolors\": \"^1.0.0\",\n \"vite\": \"^5.0.0\"\n },\n \"bin\": {\n \"vite-node\": \"vite-node.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz\",\n \"integrity\": \"sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz\",\n \"integrity\": \"sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz\",\n \"integrity\": \"sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz\",\n \"integrity\": \"sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/esbuild\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz\",\n \"integrity\": \"sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.21.5\",\n \"@esbuild/android-arm\": \"0.21.5\",\n \"@esbuild/android-arm64\": \"0.21.5\",\n \"@esbuild/android-x64\": \"0.21.5\",\n \"@esbuild/darwin-arm64\": \"0.21.5\",\n \"@esbuild/darwin-x64\": \"0.21.5\",\n \"@esbuild/freebsd-arm64\": \"0.21.5\",\n \"@esbuild/freebsd-x64\": \"0.21.5\",\n \"@esbuild/linux-arm\": \"0.21.5\",\n \"@esbuild/linux-arm64\": \"0.21.5\",\n \"@esbuild/linux-ia32\": \"0.21.5\",\n \"@esbuild/linux-loong64\": \"0.21.5\",\n \"@esbuild/linux-mips64el\": \"0.21.5\",\n \"@esbuild/linux-ppc64\": \"0.21.5\",\n \"@esbuild/linux-riscv64\": \"0.21.5\",\n \"@esbuild/linux-s390x\": \"0.21.5\",\n \"@esbuild/linux-x64\": \"0.21.5\",\n \"@esbuild/netbsd-x64\": \"0.21.5\",\n \"@esbuild/openbsd-x64\": \"0.21.5\",\n \"@esbuild/sunos-x64\": \"0.21.5\",\n \"@esbuild/win32-arm64\": \"0.21.5\",\n \"@esbuild/win32-ia32\": \"0.21.5\",\n \"@esbuild/win32-x64\": \"0.21.5\"\n }\n },\n \"node_modules/vitest\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/vitest/-/vitest-1.6.1.tgz\",\n \"integrity\": \"sha512-Ljb1cnSJSivGN0LqXd/zmDbWEM0RNNg2t1QW/XUhYl/qPqyu7CsqeWtqQXHVaJsecLPuDoak2oJcZN2QoRIOag==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/expect\": \"1.6.1\",\n \"@vitest/runner\": \"1.6.1\",\n \"@vitest/snapshot\": \"1.6.1\",\n \"@vitest/spy\": \"1.6.1\",\n \"@vitest/utils\": \"1.6.1\",\n \"acorn-walk\": \"^8.3.2\",\n \"chai\": \"^4.3.10\",\n \"debug\": \"^4.3.4\",\n \"execa\": \"^8.0.1\",\n \"local-pkg\": \"^0.5.0\",\n \"magic-string\": \"^0.30.5\",\n \"pathe\": \"^1.1.1\",\n \"picocolors\": \"^1.0.0\",\n \"std-env\": \"^3.5.0\",\n \"strip-literal\": \"^2.0.0\",\n \"tinybench\": \"^2.5.1\",\n \"tinypool\": \"^0.8.3\",\n \"vite\": \"^5.0.0\",\n \"vite-node\": \"1.6.1\",\n \"why-is-node-running\": \"^2.2.2\"\n },\n \"bin\": {\n \"vitest\": \"vitest.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"@edge-runtime/vm\": \"*\",\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"@vitest/browser\": \"1.6.1\",\n \"@vitest/ui\": \"1.6.1\",\n \"happy-dom\": \"*\",\n \"jsdom\": \"*\"\n },\n \"peerDependenciesMeta\": {\n \"@edge-runtime/vm\": {\n \"optional\": true\n },\n \"@types/node\": {\n \"optional\": true\n },\n \"@vitest/browser\": {\n \"optional\": true\n },\n \"@vitest/ui\": {\n \"optional\": true\n },\n \"happy-dom\": {\n \"optional\": true\n },\n \"jsdom\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/which\": {\n \"version\": \"2.0.2\",\n \"resolved\": \"https://registry.npmjs.org/which/-/which-2.0.2.tgz\",\n \"integrity\": \"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"isexe\": \"^2.0.0\"\n },\n \"bin\": {\n \"node-which\": \"bin/node-which\"\n },\n \"engines\": {\n \"node\": \">= 8\"\n }\n },\n \"node_modules/why-is-node-running\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz\",\n \"integrity\": \"sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"siginfo\": \"^2.0.0\",\n \"stackback\": \"0.0.2\"\n },\n \"bin\": {\n \"why-is-node-running\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/wrap-ansi\": {\n \"version\": \"7.0.0\",\n \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",\n \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.0.0\",\n \"string-width\": \"^4.1.0\",\n \"strip-ansi\": \"^6.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/wrap-ansi?sponsor=1\"\n }\n },\n \"node_modules/y18n\": {\n \"version\": \"5.0.8\",\n \"resolved\": \"https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz\",\n \"integrity\": \"sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/yallist\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz\",\n \"integrity\": \"sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/yargs\": {\n \"version\": \"17.7.2\",\n \"resolved\": \"https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz\",\n \"integrity\": \"sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cliui\": \"^8.0.1\",\n \"escalade\": \"^3.1.1\",\n \"get-caller-file\": \"^2.0.5\",\n \"require-directory\": \"^2.1.1\",\n \"string-width\": \"^4.2.3\",\n \"y18n\": \"^5.0.5\",\n \"yargs-parser\": \"^21.1.1\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yargs-parser\": {\n \"version\": \"21.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz\",\n \"integrity\": \"sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yocto-queue\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz\",\n \"integrity\": \"sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12.20\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/zod\": {\n \"version\": \"3.25.76\",\n \"resolved\": \"https://registry.npmjs.org/zod/-/zod-3.25.76.tgz\",\n \"integrity\": \"sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"funding\": {\n \"url\": \"https://github.com/sponsors/colinhacks\"\n }\n }\n }\n}\n",
- "package.json": "{\n \"name\": \"example-game\",\n \"version\": \"1.0.0\",\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"concurrently \\\"tsx --watch src/backend/server.ts\\\" \\\"vite\\\"\",\n \"build\": \"vite build\",\n \"preview\": \"vite preview\",\n \"check-types\": \"tsc --noEmit\",\n \"test\": \"vitest\"\n },\n \"dependencies\": {\n \"@rivetkit/actor\": \"^0.9.1\",\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^20.0.0\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.0.0\",\n \"concurrently\": \"^8.2.0\",\n \"tsx\": \"^4.0.0\",\n \"typescript\": \"^5.0.0\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^1.0.0\"\n }\n}\n",
+ "package-lock.json": "{\n \"name\": \"example-game\",\n \"version\": \"1.0.0\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n \"name\": \"example-game\",\n \"version\": \"1.0.0\",\n \"dependencies\": {\n \"rivetkit\": \"^0.9.1\",\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^20.0.0\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.0.0\",\n \"concurrently\": \"^8.2.0\",\n \"tsx\": \"^4.0.0\",\n \"typescript\": \"^5.0.0\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^1.0.0\"\n }\n },\n \"node_modules/@ampproject/remapping\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz\",\n \"integrity\": \"sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@jridgewell/gen-mapping\": \"^0.3.5\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/code-frame\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz\",\n \"integrity\": \"sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"js-tokens\": \"^4.0.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/compat-data\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz\",\n \"integrity\": \"sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/core\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz\",\n \"integrity\": \"sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@ampproject/remapping\": \"^2.2.0\",\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-compilation-targets\": \"^7.27.2\",\n \"@babel/helper-module-transforms\": \"^7.27.3\",\n \"@babel/helpers\": \"^7.27.6\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/traverse\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"convert-source-map\": \"^2.0.0\",\n \"debug\": \"^4.1.0\",\n \"gensync\": \"^1.0.0-beta.2\",\n \"json5\": \"^2.2.3\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/babel\"\n }\n },\n \"node_modules/@babel/generator\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz\",\n \"integrity\": \"sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"@jridgewell/gen-mapping\": \"^0.3.12\",\n \"@jridgewell/trace-mapping\": \"^0.3.28\",\n \"jsesc\": \"^3.0.2\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-compilation-targets\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz\",\n \"integrity\": \"sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/compat-data\": \"^7.27.2\",\n \"@babel/helper-validator-option\": \"^7.27.1\",\n \"browserslist\": \"^4.24.0\",\n \"lru-cache\": \"^5.1.1\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-globals\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz\",\n \"integrity\": \"sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-imports\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz\",\n \"integrity\": \"sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/traverse\": \"^7.27.1\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-transforms\": {\n \"version\": \"7.27.3\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz\",\n \"integrity\": \"sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-module-imports\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"@babel/traverse\": \"^7.27.3\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0\"\n }\n },\n \"node_modules/@babel/helper-plugin-utils\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz\",\n \"integrity\": \"sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-string-parser\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz\",\n \"integrity\": \"sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-identifier\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz\",\n \"integrity\": \"sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-option\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz\",\n \"integrity\": \"sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helpers\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz\",\n \"integrity\": \"sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.6\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/parser\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz\",\n \"integrity\": \"sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.28.0\"\n },\n \"bin\": {\n \"parser\": \"bin/babel-parser.js\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-self\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz\",\n \"integrity\": \"sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-source\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz\",\n \"integrity\": \"sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/runtime\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz\",\n \"integrity\": \"sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/template\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz\",\n \"integrity\": \"sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/parser\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/traverse\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz\",\n \"integrity\": \"sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-globals\": \"^7.28.0\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.28.0\",\n \"debug\": \"^4.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/types\": {\n \"version\": \"7.28.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz\",\n \"integrity\": \"sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-string-parser\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz\",\n \"integrity\": \"sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==\",\n \"cpu\": [\n \"arm\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-win32-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"peer\": true\n },\n \"node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.6.tgz\",\n \"integrity\": \"sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-arm\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.6.tgz\",\n \"integrity\": \"sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.6.tgz\",\n \"integrity\": \"sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.6.tgz\",\n \"integrity\": \"sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.6.tgz\",\n \"integrity\": \"sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.6.tgz\",\n \"integrity\": \"sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.6.tgz\",\n \"integrity\": \"sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.6.tgz\",\n \"integrity\": \"sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.6.tgz\",\n \"integrity\": \"sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/netbsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openbsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openharmony-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openharmony\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.6.tgz\",\n \"integrity\": \"sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@jest/schemas\": {\n \"version\": \"29.6.3\",\n \"resolved\": \"https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz\",\n \"integrity\": \"sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@sinclair/typebox\": \"^0.27.8\"\n },\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/@jridgewell/gen-mapping\": {\n \"version\": \"0.3.12\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz\",\n \"integrity\": \"sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n }\n },\n \"node_modules/@jridgewell/resolve-uri\": {\n \"version\": \"3.1.2\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz\",\n \"integrity\": \"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@jridgewell/sourcemap-codec\": {\n \"version\": \"1.5.4\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz\",\n \"integrity\": \"sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@jridgewell/trace-mapping\": {\n \"version\": \"0.3.29\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz\",\n \"integrity\": \"sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/resolve-uri\": \"^3.1.0\",\n \"@jridgewell/sourcemap-codec\": \"^1.4.14\"\n }\n },\n \"node_modules/rivetkit\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/rivetkit/-/actor-0.9.1.tgz\",\n \"integrity\": \"sha512-aVoWO81JrYql6hhXX+vRor0B+aeWrnh+9zkcrxbh0EXFBbS5XM8YE4sSFxNKmZThLbGNqfZ5enm1zuA92c7I1w==\",\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/core\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/core/-/core-0.9.1.tgz\",\n \"integrity\": \"sha512-0zYFKo08CQ72Rm6MaVKxcJSEEfn/ypGkkxTX06Q4meCGHuDJFbPA5wopa3NdxrKBPttcGg1QAmDd+1FZnlpubA==\",\n \"license\": \"Apache-2.0\",\n \"peer\": true,\n \"dependencies\": {\n \"cbor-x\": \"^1.6.0\",\n \"invariant\": \"^2.2.4\",\n \"on-change\": \"^5.0.1\",\n \"p-retry\": \"^6.2.1\",\n \"zod\": \"^3.25.67\"\n },\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"peerDependencies\": {\n \"@hono/node-server\": \"^1.14.0\",\n \"@hono/node-ws\": \"^1.1.1\",\n \"@hono/zod-openapi\": \"^0.19.6\",\n \"eventsource\": \"^3.0.5\",\n \"hono\": \"^4.7.0\",\n \"ws\": \"^8.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"@hono/node-server\": {\n \"optional\": true\n },\n \"@hono/node-ws\": {\n \"optional\": true\n },\n \"@hono/zod-openapi\": {\n \"optional\": true\n },\n \"eventsource\": {\n \"optional\": true\n },\n \"hono\": {\n \"optional\": true\n },\n \"ws\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@rivetkit/framework-base\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/framework-base/-/framework-base-0.9.1.tgz\",\n \"integrity\": \"sha512-FxhSqGAtDsD4k7gKS2EhJ5hHsEwI1+QR0vYThUBOLcmXM7zjMZndqIjVperQO4ck/zfjRqjm3lw7znkc+k0wNQ==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@tanstack/store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/react\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/react/-/react-0.9.1.tgz\",\n \"integrity\": \"sha512-0e0gNNj3qCrXHNIxE6ggEEX+E6HjdsSt9pJbWbaQQg+1bsywupRTSdgSDguDHjBvi9qhR9mh7UbNN3A9wYqXuA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@rivetkit/framework-base\": \"0.9.1\",\n \"@tanstack/react-store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\",\n \"react\": \"^18 || ^19\",\n \"react-dom\": \"^18 || ^19\"\n }\n },\n \"node_modules/@rolldown/pluginutils\": {\n \"version\": \"1.0.0-beta.19\",\n \"resolved\": \"https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz\",\n \"integrity\": \"sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@rollup/rollup-android-arm-eabi\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.0.tgz\",\n \"integrity\": \"sha512-2o/FgACbji4tW1dzXOqAV15Eu7DdgbKsF2QKcxfG4xbh5iwU7yr5RRP5/U+0asQliSYv5M4o7BevlGIoSL0LXg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-android-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-PSZ0SvMOjEAxwZeTx32eI/j5xSYtDCRxGu5k9zvzoY77xUNssZM+WV6HYBLROpY5CkXsbQjvz40fBb7WPwDqtQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-BA4yPIPssPB2aRAWzmqzQ3y2/KotkLyZukVB7j3psK/U3nVJdceo6qr9pLM2xN6iRP/wKfxEbOb1yrlZH6sYZg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-Pr2o0lvTwsiG4HCr43Zy9xXrHspyMvsvEw4FwKYqhli4FuLE5FjcZzuQ4cfPe0iUFCvSQG6lACI0xj74FDZKRA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-lYE8LkE5h4a/+6VnnLiL14zWMPnx6wNbDG23GcYFpRW1V9hYWHAw9lBZ6ZUIrOaoK7NliF1sdwYGiVmziUF4vA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-PVQWZK9sbzpvqC9Q0GlehNNSVHR+4m7+wET+7FgSnKG3ci5nAMgGmr9mGBXzAuE5SvguCKJ6mHL6vq1JaJ/gvw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-gnueabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-hLrmRl53prCcD+YXTfNvXd776HTxNh8wPAMllusQ+amcQmtgo3V5i/nkhPN6FakW+QVLoUUr2AsbtIRPFU3xIA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-musleabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-XBKGSYcrkdiRRjl+8XvrUR3AosXU0NvF7VuqMsm7s5nRy+nt58ZMB19Jdp1RdqewLcaYnpk8zeVs/4MlLZEJxw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-fRvZZPUiBz7NztBE/2QnCS5AtqLVhXmUOPj9IHlfGEXkapgImf4W9+FSkL8cWqoAjozyUzqFmSc4zh2ooaeF6g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-Btv2WRZOcUGi8XU80XwIvzTg4U6+l6D0V6sZTrZx214nrwxw5nAi8hysaXj/mctyClWgesyuxbeLylCBNauimg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loongarch64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-Li0emNnwtUZdLwHjQPBxn4VWztcrw/h7mgLyHiEI5Z0MhpeFGlzaiBHpSNVOMB/xucjXTTcO+dhv469Djr16KA==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-powerpc64le-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-sB8+pfkYx2kvpDCfd63d5ScYT0Fz1LO6jIb2zLZvmK9ob2D8DeVqrmBDE0iDK8KlBVmsTNzrjr3G1xV4eUZhSw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-5GQ6PFhh7E6jQm70p1aW05G2cap5zMOvO0se5JMecHeAdj5ZhWEHbJ4hiKpfi1nnnEdTauDXxPgXae/mqjow9w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-N/euLsBd1rekWcuduakTo/dJw6U6sBP3eUq+RXM9RNfPuWTvG2w/WObDkIvJ2KChy6oxZmOSC08Ak2OJA0UiAA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-s390x-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-2l9sA7d7QdikL0xQwNMO3xURBUNEWyHVHfAsHsUdq+E/pgLTUcCE+gih5PCdmyHmfTDeXUWVhqL0WZzg0nua3g==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-XZdD3fEEQcwG2KrJDdEQu7NrHonPxxaV0/w2HpvINBdcqebz1aL+0vM2WFJq4DeiAVT6F5SUQas65HY5JDqoPw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-7ayfgvtmmWgKWBkCGg5+xTQ0r5V1owVm67zTrsEY1008L5ro7mCyGYORomARt/OquB9KY7LpxVBZes+oSniAAQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-arm64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-B+IJgcBnE2bm93jEW5kHisqvPITs4ddLOROAcOc/diBgrEiQJJ6Qcjby75rFSmH5eMGrqJryUgJDhrfj942apQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-ia32-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-+CXwwG66g0/FpWOnP/v1HnrGVSOygK/osUbu3wPRy8ECXjoYKjRAyfxYpDQOfghC5qPJYLPH0oN4MCOjwgdMug==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@sinclair/typebox\": {\n \"version\": \"0.27.8\",\n \"resolved\": \"https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz\",\n \"integrity\": \"sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@tanstack/react-store\": {\n \"version\": \"0.7.3\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.7.3.tgz\",\n \"integrity\": \"sha512-3Dnqtbw9P2P0gw8uUM8WP2fFfg8XMDSZCTsywRPZe/XqqYW8PGkXKZTvP0AHkE4mpqP9Y43GpOg9vwO44azu6Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@tanstack/store\": \"0.7.2\",\n \"use-sync-external-store\": \"^1.5.0\"\n },\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\",\n \"react-dom\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/@tanstack/store\": {\n \"version\": \"0.7.2\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/store/-/store-0.7.2.tgz\",\n \"integrity\": \"sha512-RP80Z30BYiPX2Pyo0Nyw4s1SJFH2jyM6f9i3HfX4pA+gm5jsnYryscdq2aIQLnL4TaGuQMO+zXmN9nh1Qck+Pg==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n }\n },\n \"node_modules/@types/babel__core\": {\n \"version\": \"7.20.5\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz\",\n \"integrity\": \"sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.20.7\",\n \"@babel/types\": \"^7.20.7\",\n \"@types/babel__generator\": \"*\",\n \"@types/babel__template\": \"*\",\n \"@types/babel__traverse\": \"*\"\n }\n },\n \"node_modules/@types/babel__generator\": {\n \"version\": \"7.27.0\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz\",\n \"integrity\": \"sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__template\": {\n \"version\": \"7.4.4\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz\",\n \"integrity\": \"sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.1.0\",\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__traverse\": {\n \"version\": \"7.20.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz\",\n \"integrity\": \"sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.20.7\"\n }\n },\n \"node_modules/@types/estree\": {\n \"version\": \"1.0.8\",\n \"resolved\": \"https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz\",\n \"integrity\": \"sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/node\": {\n \"version\": \"20.19.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-20.19.7.tgz\",\n \"integrity\": \"sha512-1GM9z6BJOv86qkPvzh2i6VW5+VVrXxCLknfmTkWEqz+6DqosiY28XUWCTmBcJ0ACzKqx/iwdIREfo1fwExIlkA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"undici-types\": \"~6.21.0\"\n }\n },\n \"node_modules/@types/prop-types\": {\n \"version\": \"15.7.15\",\n \"resolved\": \"https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz\",\n \"integrity\": \"sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/react\": {\n \"version\": \"18.3.23\",\n \"resolved\": \"https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz\",\n \"integrity\": \"sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/prop-types\": \"*\",\n \"csstype\": \"^3.0.2\"\n }\n },\n \"node_modules/@types/react-dom\": {\n \"version\": \"18.3.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz\",\n \"integrity\": \"sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"@types/react\": \"^18.0.0\"\n }\n },\n \"node_modules/@types/retry\": {\n \"version\": \"0.12.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz\",\n \"integrity\": \"sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==\",\n \"license\": \"MIT\",\n \"peer\": true\n },\n \"node_modules/@vitejs/plugin-react\": {\n \"version\": \"4.6.0\",\n \"resolved\": \"https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz\",\n \"integrity\": \"sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/core\": \"^7.27.4\",\n \"@babel/plugin-transform-react-jsx-self\": \"^7.27.1\",\n \"@babel/plugin-transform-react-jsx-source\": \"^7.27.1\",\n \"@rolldown/pluginutils\": \"1.0.0-beta.19\",\n \"@types/babel__core\": \"^7.20.5\",\n \"react-refresh\": \"^0.17.0\"\n },\n \"engines\": {\n \"node\": \"^14.18.0 || >=16.0.0\"\n },\n \"peerDependencies\": {\n \"vite\": \"^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0\"\n }\n },\n \"node_modules/@vitest/expect\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/expect/-/expect-1.6.1.tgz\",\n \"integrity\": \"sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/spy\": \"1.6.1\",\n \"@vitest/utils\": \"1.6.1\",\n \"chai\": \"^4.3.10\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/runner\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/runner/-/runner-1.6.1.tgz\",\n \"integrity\": \"sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/utils\": \"1.6.1\",\n \"p-limit\": \"^5.0.0\",\n \"pathe\": \"^1.1.1\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/snapshot\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.1.tgz\",\n \"integrity\": \"sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"magic-string\": \"^0.30.5\",\n \"pathe\": \"^1.1.1\",\n \"pretty-format\": \"^29.7.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/spy\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/spy/-/spy-1.6.1.tgz\",\n \"integrity\": \"sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyspy\": \"^2.2.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/utils\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/utils/-/utils-1.6.1.tgz\",\n \"integrity\": \"sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"diff-sequences\": \"^29.6.3\",\n \"estree-walker\": \"^3.0.3\",\n \"loupe\": \"^2.3.7\",\n \"pretty-format\": \"^29.7.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/acorn\": {\n \"version\": \"8.15.0\",\n \"resolved\": \"https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz\",\n \"integrity\": \"sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"acorn\": \"bin/acorn\"\n },\n \"engines\": {\n \"node\": \">=0.4.0\"\n }\n },\n \"node_modules/acorn-walk\": {\n \"version\": \"8.3.4\",\n \"resolved\": \"https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz\",\n \"integrity\": \"sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"acorn\": \"^8.11.0\"\n },\n \"engines\": {\n \"node\": \">=0.4.0\"\n }\n },\n \"node_modules/ansi-regex\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",\n \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/ansi-styles\": {\n \"version\": \"4.3.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",\n \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-convert\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/assertion-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz\",\n \"integrity\": \"sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/browserslist\": {\n \"version\": \"4.25.1\",\n \"resolved\": \"https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz\",\n \"integrity\": \"sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"caniuse-lite\": \"^1.0.30001726\",\n \"electron-to-chromium\": \"^1.5.173\",\n \"node-releases\": \"^2.0.19\",\n \"update-browserslist-db\": \"^1.1.3\"\n },\n \"bin\": {\n \"browserslist\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7\"\n }\n },\n \"node_modules/cac\": {\n \"version\": \"6.7.14\",\n \"resolved\": \"https://registry.npmjs.org/cac/-/cac-6.7.14.tgz\",\n \"integrity\": \"sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/caniuse-lite\": {\n \"version\": \"1.0.30001727\",\n \"resolved\": \"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz\",\n \"integrity\": \"sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/caniuse-lite\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"CC-BY-4.0\"\n },\n \"node_modules/cbor-extract\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz\",\n \"integrity\": \"sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==\",\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"node-gyp-build-optional-packages\": \"5.1.1\"\n },\n \"bin\": {\n \"download-cbor-prebuilds\": \"bin/download-prebuilds.js\"\n },\n \"optionalDependencies\": {\n \"@cbor-extract/cbor-extract-darwin-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-darwin-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-win32-x64\": \"2.2.0\"\n }\n },\n \"node_modules/cbor-x\": {\n \"version\": \"1.6.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz\",\n \"integrity\": \"sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"optionalDependencies\": {\n \"cbor-extract\": \"^2.2.0\"\n }\n },\n \"node_modules/chai\": {\n \"version\": \"4.5.0\",\n \"resolved\": \"https://registry.npmjs.org/chai/-/chai-4.5.0.tgz\",\n \"integrity\": \"sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"assertion-error\": \"^1.1.0\",\n \"check-error\": \"^1.0.3\",\n \"deep-eql\": \"^4.1.3\",\n \"get-func-name\": \"^2.0.2\",\n \"loupe\": \"^2.3.6\",\n \"pathval\": \"^1.1.1\",\n \"type-detect\": \"^4.1.0\"\n },\n \"engines\": {\n \"node\": \">=4\"\n }\n },\n \"node_modules/chalk\": {\n \"version\": \"4.1.2\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",\n \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.1.0\",\n \"supports-color\": \"^7.1.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/chalk/node_modules/supports-color\": {\n \"version\": \"7.2.0\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",\n \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/check-error\": {\n \"version\": \"1.0.3\",\n \"resolved\": \"https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz\",\n \"integrity\": \"sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"get-func-name\": \"^2.0.2\"\n },\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/cliui\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz\",\n \"integrity\": \"sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"string-width\": \"^4.2.0\",\n \"strip-ansi\": \"^6.0.1\",\n \"wrap-ansi\": \"^7.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/color-convert\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",\n \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-name\": \"~1.1.4\"\n },\n \"engines\": {\n \"node\": \">=7.0.0\"\n }\n },\n \"node_modules/color-name\": {\n \"version\": \"1.1.4\",\n \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",\n \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/concurrently\": {\n \"version\": \"8.2.2\",\n \"resolved\": \"https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz\",\n \"integrity\": \"sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"chalk\": \"^4.1.2\",\n \"date-fns\": \"^2.30.0\",\n \"lodash\": \"^4.17.21\",\n \"rxjs\": \"^7.8.1\",\n \"shell-quote\": \"^1.8.1\",\n \"spawn-command\": \"0.0.2\",\n \"supports-color\": \"^8.1.1\",\n \"tree-kill\": \"^1.2.2\",\n \"yargs\": \"^17.7.2\"\n },\n \"bin\": {\n \"conc\": \"dist/bin/concurrently.js\",\n \"concurrently\": \"dist/bin/concurrently.js\"\n },\n \"engines\": {\n \"node\": \"^14.13.0 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/open-cli-tools/concurrently?sponsor=1\"\n }\n },\n \"node_modules/confbox\": {\n \"version\": \"0.1.8\",\n \"resolved\": \"https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz\",\n \"integrity\": \"sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/convert-source-map\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz\",\n \"integrity\": \"sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/cross-spawn\": {\n \"version\": \"7.0.6\",\n \"resolved\": \"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz\",\n \"integrity\": \"sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^3.1.0\",\n \"shebang-command\": \"^2.0.0\",\n \"which\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">= 8\"\n }\n },\n \"node_modules/csstype\": {\n \"version\": \"3.1.3\",\n \"resolved\": \"https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz\",\n \"integrity\": \"sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/date-fns\": {\n \"version\": \"2.30.0\",\n \"resolved\": \"https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz\",\n \"integrity\": \"sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/runtime\": \"^7.21.0\"\n },\n \"engines\": {\n \"node\": \">=0.11\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/date-fns\"\n }\n },\n \"node_modules/debug\": {\n \"version\": \"4.4.1\",\n \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.4.1.tgz\",\n \"integrity\": \"sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ms\": \"^2.1.3\"\n },\n \"engines\": {\n \"node\": \">=6.0\"\n },\n \"peerDependenciesMeta\": {\n \"supports-color\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/deep-eql\": {\n \"version\": \"4.1.4\",\n \"resolved\": \"https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz\",\n \"integrity\": \"sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"type-detect\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/detect-libc\": {\n \"version\": \"2.0.4\",\n \"resolved\": \"https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz\",\n \"integrity\": \"sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==\",\n \"license\": \"Apache-2.0\",\n \"optional\": true,\n \"peer\": true,\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/diff-sequences\": {\n \"version\": \"29.6.3\",\n \"resolved\": \"https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz\",\n \"integrity\": \"sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/electron-to-chromium\": {\n \"version\": \"1.5.183\",\n \"resolved\": \"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.183.tgz\",\n \"integrity\": \"sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/emoji-regex\": {\n \"version\": \"8.0.0\",\n \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",\n \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/esbuild\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.25.6.tgz\",\n \"integrity\": \"sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.25.6\",\n \"@esbuild/android-arm\": \"0.25.6\",\n \"@esbuild/android-arm64\": \"0.25.6\",\n \"@esbuild/android-x64\": \"0.25.6\",\n \"@esbuild/darwin-arm64\": \"0.25.6\",\n \"@esbuild/darwin-x64\": \"0.25.6\",\n \"@esbuild/freebsd-arm64\": \"0.25.6\",\n \"@esbuild/freebsd-x64\": \"0.25.6\",\n \"@esbuild/linux-arm\": \"0.25.6\",\n \"@esbuild/linux-arm64\": \"0.25.6\",\n \"@esbuild/linux-ia32\": \"0.25.6\",\n \"@esbuild/linux-loong64\": \"0.25.6\",\n \"@esbuild/linux-mips64el\": \"0.25.6\",\n \"@esbuild/linux-ppc64\": \"0.25.6\",\n \"@esbuild/linux-riscv64\": \"0.25.6\",\n \"@esbuild/linux-s390x\": \"0.25.6\",\n \"@esbuild/linux-x64\": \"0.25.6\",\n \"@esbuild/netbsd-arm64\": \"0.25.6\",\n \"@esbuild/netbsd-x64\": \"0.25.6\",\n \"@esbuild/openbsd-arm64\": \"0.25.6\",\n \"@esbuild/openbsd-x64\": \"0.25.6\",\n \"@esbuild/openharmony-arm64\": \"0.25.6\",\n \"@esbuild/sunos-x64\": \"0.25.6\",\n \"@esbuild/win32-arm64\": \"0.25.6\",\n \"@esbuild/win32-ia32\": \"0.25.6\",\n \"@esbuild/win32-x64\": \"0.25.6\"\n }\n },\n \"node_modules/escalade\": {\n \"version\": \"3.2.0\",\n \"resolved\": \"https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz\",\n \"integrity\": \"sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/estree-walker\": {\n \"version\": \"3.0.3\",\n \"resolved\": \"https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz\",\n \"integrity\": \"sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"^1.0.0\"\n }\n },\n \"node_modules/execa\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/execa/-/execa-8.0.1.tgz\",\n \"integrity\": \"sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cross-spawn\": \"^7.0.3\",\n \"get-stream\": \"^8.0.1\",\n \"human-signals\": \"^5.0.0\",\n \"is-stream\": \"^3.0.0\",\n \"merge-stream\": \"^2.0.0\",\n \"npm-run-path\": \"^5.1.0\",\n \"onetime\": \"^6.0.0\",\n \"signal-exit\": \"^4.1.0\",\n \"strip-final-newline\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/execa?sponsor=1\"\n }\n },\n \"node_modules/fsevents\": {\n \"version\": \"2.3.3\",\n \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz\",\n \"integrity\": \"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \"^8.16.0 || ^10.6.0 || >=11.0.0\"\n }\n },\n \"node_modules/gensync\": {\n \"version\": \"1.0.0-beta.2\",\n \"resolved\": \"https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz\",\n \"integrity\": \"sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/get-caller-file\": {\n \"version\": \"2.0.5\",\n \"resolved\": \"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz\",\n \"integrity\": \"sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \"6.* || 8.* || >= 10.*\"\n }\n },\n \"node_modules/get-func-name\": {\n \"version\": \"2.0.2\",\n \"resolved\": \"https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz\",\n \"integrity\": \"sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/get-stream\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz\",\n \"integrity\": \"sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/get-tsconfig\": {\n \"version\": \"4.10.1\",\n \"resolved\": \"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz\",\n \"integrity\": \"sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"resolve-pkg-maps\": \"^1.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/get-tsconfig?sponsor=1\"\n }\n },\n \"node_modules/has-flag\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",\n \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/human-signals\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz\",\n \"integrity\": \"sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=16.17.0\"\n }\n },\n \"node_modules/invariant\": {\n \"version\": \"2.2.4\",\n \"resolved\": \"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz\",\n \"integrity\": \"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"loose-envify\": \"^1.0.0\"\n }\n },\n \"node_modules/is-fullwidth-code-point\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",\n \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/is-network-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz\",\n \"integrity\": \"sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is-stream\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz\",\n \"integrity\": \"sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/isexe\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz\",\n \"integrity\": \"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/js-tokens\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz\",\n \"integrity\": \"sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==\",\n \"license\": \"MIT\"\n },\n \"node_modules/jsesc\": {\n \"version\": \"3.1.0\",\n \"resolved\": \"https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz\",\n \"integrity\": \"sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"jsesc\": \"bin/jsesc\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/json5\": {\n \"version\": \"2.2.3\",\n \"resolved\": \"https://registry.npmjs.org/json5/-/json5-2.2.3.tgz\",\n \"integrity\": \"sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"json5\": \"lib/cli.js\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/local-pkg\": {\n \"version\": \"0.5.1\",\n \"resolved\": \"https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz\",\n \"integrity\": \"sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"mlly\": \"^1.7.3\",\n \"pkg-types\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \">=14\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/lodash\": {\n \"version\": \"4.17.21\",\n \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",\n \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/loose-envify\": {\n \"version\": \"1.4.0\",\n \"resolved\": \"https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz\",\n \"integrity\": \"sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^3.0.0 || ^4.0.0\"\n },\n \"bin\": {\n \"loose-envify\": \"cli.js\"\n }\n },\n \"node_modules/loupe\": {\n \"version\": \"2.3.7\",\n \"resolved\": \"https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz\",\n \"integrity\": \"sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"get-func-name\": \"^2.0.1\"\n }\n },\n \"node_modules/lru-cache\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz\",\n \"integrity\": \"sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"yallist\": \"^3.0.2\"\n }\n },\n \"node_modules/magic-string\": {\n \"version\": \"0.30.17\",\n \"resolved\": \"https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz\",\n \"integrity\": \"sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\"\n }\n },\n \"node_modules/merge-stream\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz\",\n \"integrity\": \"sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/mimic-fn\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz\",\n \"integrity\": \"sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/mlly\": {\n \"version\": \"1.7.4\",\n \"resolved\": \"https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz\",\n \"integrity\": \"sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"acorn\": \"^8.14.0\",\n \"pathe\": \"^2.0.1\",\n \"pkg-types\": \"^1.3.0\",\n \"ufo\": \"^1.5.4\"\n }\n },\n \"node_modules/mlly/node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/ms\": {\n \"version\": \"2.1.3\",\n \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",\n \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/node-gyp-build-optional-packages\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz\",\n \"integrity\": \"sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==\",\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"detect-libc\": \"^2.0.1\"\n },\n \"bin\": {\n \"node-gyp-build-optional-packages\": \"bin.js\",\n \"node-gyp-build-optional-packages-optional\": \"optional.js\",\n \"node-gyp-build-optional-packages-test\": \"build-test.js\"\n }\n },\n \"node_modules/node-releases\": {\n \"version\": \"2.0.19\",\n \"resolved\": \"https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz\",\n \"integrity\": \"sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/npm-run-path\": {\n \"version\": \"5.3.0\",\n \"resolved\": \"https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz\",\n \"integrity\": \"sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/npm-run-path/node_modules/path-key\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz\",\n \"integrity\": \"sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/on-change\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/on-change/-/on-change-5.0.1.tgz\",\n \"integrity\": \"sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/on-change?sponsor=1\"\n }\n },\n \"node_modules/onetime\": {\n \"version\": \"6.0.0\",\n \"resolved\": \"https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz\",\n \"integrity\": \"sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"mimic-fn\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/p-limit\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz\",\n \"integrity\": \"sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"yocto-queue\": \"^1.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/p-retry\": {\n \"version\": \"6.2.1\",\n \"resolved\": \"https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz\",\n \"integrity\": \"sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"@types/retry\": \"0.12.2\",\n \"is-network-error\": \"^1.0.0\",\n \"retry\": \"^0.13.1\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/path-key\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz\",\n \"integrity\": \"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/pathe\": {\n \"version\": \"1.1.2\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz\",\n \"integrity\": \"sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/pathval\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz\",\n \"integrity\": \"sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/picocolors\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz\",\n \"integrity\": \"sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/pkg-types\": {\n \"version\": \"1.3.1\",\n \"resolved\": \"https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz\",\n \"integrity\": \"sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"confbox\": \"^0.1.8\",\n \"mlly\": \"^1.7.4\",\n \"pathe\": \"^2.0.1\"\n }\n },\n \"node_modules/pkg-types/node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/postcss\": {\n \"version\": \"8.5.6\",\n \"resolved\": \"https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz\",\n \"integrity\": \"sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/postcss/\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/postcss\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"nanoid\": \"^3.3.11\",\n \"picocolors\": \"^1.1.1\",\n \"source-map-js\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || >=14\"\n }\n },\n \"node_modules/pretty-format\": {\n \"version\": \"29.7.0\",\n \"resolved\": \"https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz\",\n \"integrity\": \"sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jest/schemas\": \"^29.6.3\",\n \"ansi-styles\": \"^5.0.0\",\n \"react-is\": \"^18.0.0\"\n },\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/pretty-format/node_modules/ansi-styles\": {\n \"version\": \"5.2.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz\",\n \"integrity\": \"sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/react\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react/-/react-18.3.1.tgz\",\n \"integrity\": \"sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n },\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/react-dom\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz\",\n \"integrity\": \"sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\",\n \"scheduler\": \"^0.23.2\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.3.1\"\n }\n },\n \"node_modules/react-is\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz\",\n \"integrity\": \"sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/react-refresh\": {\n \"version\": \"0.17.0\",\n \"resolved\": \"https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz\",\n \"integrity\": \"sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/require-directory\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz\",\n \"integrity\": \"sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/resolve-pkg-maps\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz\",\n \"integrity\": \"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/resolve-pkg-maps?sponsor=1\"\n }\n },\n \"node_modules/retry\": {\n \"version\": \"0.13.1\",\n \"resolved\": \"https://registry.npmjs.org/retry/-/retry-0.13.1.tgz\",\n \"integrity\": \"sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">= 4\"\n }\n },\n \"node_modules/rollup\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/rollup/-/rollup-4.45.0.tgz\",\n \"integrity\": \"sha512-WLjEcJRIo7i3WDDgOIJqVI2d+lAC3EwvOGy+Xfq6hs+GQuAA4Di/H72xmXkOhrIWFg2PFYSKZYfH0f4vfKXN4A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"1.0.8\"\n },\n \"bin\": {\n \"rollup\": \"dist/bin/rollup\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"optionalDependencies\": {\n \"@rollup/rollup-android-arm-eabi\": \"4.45.0\",\n \"@rollup/rollup-android-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-x64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-arm64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-x64\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-gnueabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-musleabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-loongarch64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-powerpc64le-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-s390x-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-musl\": \"4.45.0\",\n \"@rollup/rollup-win32-arm64-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-ia32-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-x64-msvc\": \"4.45.0\",\n \"fsevents\": \"~2.3.2\"\n }\n },\n \"node_modules/rxjs\": {\n \"version\": \"7.8.2\",\n \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz\",\n \"integrity\": \"sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"tslib\": \"^2.1.0\"\n }\n },\n \"node_modules/scheduler\": {\n \"version\": \"0.23.2\",\n \"resolved\": \"https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz\",\n \"integrity\": \"sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n }\n },\n \"node_modules/semver\": {\n \"version\": \"6.3.1\",\n \"resolved\": \"https://registry.npmjs.org/semver/-/semver-6.3.1.tgz\",\n \"integrity\": \"sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"bin\": {\n \"semver\": \"bin/semver.js\"\n }\n },\n \"node_modules/shebang-command\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz\",\n \"integrity\": \"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"shebang-regex\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/shebang-regex\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz\",\n \"integrity\": \"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/shell-quote\": {\n \"version\": \"1.8.3\",\n \"resolved\": \"https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz\",\n \"integrity\": \"sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 0.4\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/ljharb\"\n }\n },\n \"node_modules/siginfo\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz\",\n \"integrity\": \"sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/signal-exit\": {\n \"version\": \"4.1.0\",\n \"resolved\": \"https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz\",\n \"integrity\": \"sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=14\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/isaacs\"\n }\n },\n \"node_modules/source-map-js\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz\",\n \"integrity\": \"sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/spawn-command\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz\",\n \"integrity\": \"sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==\",\n \"dev\": true\n },\n \"node_modules/stackback\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz\",\n \"integrity\": \"sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/std-env\": {\n \"version\": \"3.9.0\",\n \"resolved\": \"https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz\",\n \"integrity\": \"sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/string-width\": {\n \"version\": \"4.2.3\",\n \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",\n \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"emoji-regex\": \"^8.0.0\",\n \"is-fullwidth-code-point\": \"^3.0.0\",\n \"strip-ansi\": \"^6.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-ansi\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",\n \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-regex\": \"^5.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-final-newline\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz\",\n \"integrity\": \"sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/strip-literal\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.1.tgz\",\n \"integrity\": \"sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^9.0.1\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/strip-literal/node_modules/js-tokens\": {\n \"version\": \"9.0.1\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz\",\n \"integrity\": \"sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/supports-color\": {\n \"version\": \"8.1.1\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",\n \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/supports-color?sponsor=1\"\n }\n },\n \"node_modules/tinybench\": {\n \"version\": \"2.9.0\",\n \"resolved\": \"https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz\",\n \"integrity\": \"sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinypool\": {\n \"version\": \"0.8.4\",\n \"resolved\": \"https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz\",\n \"integrity\": \"sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tinyspy\": {\n \"version\": \"2.2.1\",\n \"resolved\": \"https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz\",\n \"integrity\": \"sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tree-kill\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz\",\n \"integrity\": \"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"tree-kill\": \"cli.js\"\n }\n },\n \"node_modules/tslib\": {\n \"version\": \"2.8.1\",\n \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz\",\n \"integrity\": \"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==\",\n \"dev\": true,\n \"license\": \"0BSD\"\n },\n \"node_modules/tsx\": {\n \"version\": \"4.20.3\",\n \"resolved\": \"https://registry.npmjs.org/tsx/-/tsx-4.20.3.tgz\",\n \"integrity\": \"sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"~0.25.0\",\n \"get-tsconfig\": \"^4.7.5\"\n },\n \"bin\": {\n \"tsx\": \"dist/cli.mjs\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n }\n },\n \"node_modules/type-detect\": {\n \"version\": \"4.1.0\",\n \"resolved\": \"https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz\",\n \"integrity\": \"sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=4\"\n }\n },\n \"node_modules/typescript\": {\n \"version\": \"5.8.3\",\n \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz\",\n \"integrity\": \"sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"bin\": {\n \"tsc\": \"bin/tsc\",\n \"tsserver\": \"bin/tsserver\"\n },\n \"engines\": {\n \"node\": \">=14.17\"\n }\n },\n \"node_modules/ufo\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz\",\n \"integrity\": \"sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/undici-types\": {\n \"version\": \"6.21.0\",\n \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/update-browserslist-db\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz\",\n \"integrity\": \"sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"escalade\": \"^3.2.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"bin\": {\n \"update-browserslist-db\": \"cli.js\"\n },\n \"peerDependencies\": {\n \"browserslist\": \">= 4.21.0\"\n }\n },\n \"node_modules/use-sync-external-store\": {\n \"version\": \"1.5.0\",\n \"resolved\": \"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz\",\n \"integrity\": \"sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==\",\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/vite\": {\n \"version\": \"5.4.19\",\n \"resolved\": \"https://registry.npmjs.org/vite/-/vite-5.4.19.tgz\",\n \"integrity\": \"sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"^0.21.3\",\n \"postcss\": \"^8.4.43\",\n \"rollup\": \"^4.20.0\"\n },\n \"bin\": {\n \"vite\": \"bin/vite.js\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/vitejs/vite?sponsor=1\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n },\n \"peerDependencies\": {\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"less\": \"*\",\n \"lightningcss\": \"^1.21.0\",\n \"sass\": \"*\",\n \"sass-embedded\": \"*\",\n \"stylus\": \"*\",\n \"sugarss\": \"*\",\n \"terser\": \"^5.4.0\"\n },\n \"peerDependenciesMeta\": {\n \"@types/node\": {\n \"optional\": true\n },\n \"less\": {\n \"optional\": true\n },\n \"lightningcss\": {\n \"optional\": true\n },\n \"sass\": {\n \"optional\": true\n },\n \"sass-embedded\": {\n \"optional\": true\n },\n \"stylus\": {\n \"optional\": true\n },\n \"sugarss\": {\n \"optional\": true\n },\n \"terser\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/vite-node\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/vite-node/-/vite-node-1.6.1.tgz\",\n \"integrity\": \"sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cac\": \"^6.7.14\",\n \"debug\": \"^4.3.4\",\n \"pathe\": \"^1.1.1\",\n \"picocolors\": \"^1.0.0\",\n \"vite\": \"^5.0.0\"\n },\n \"bin\": {\n \"vite-node\": \"vite-node.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz\",\n \"integrity\": \"sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz\",\n \"integrity\": \"sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz\",\n \"integrity\": \"sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz\",\n \"integrity\": \"sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/esbuild\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz\",\n \"integrity\": \"sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.21.5\",\n \"@esbuild/android-arm\": \"0.21.5\",\n \"@esbuild/android-arm64\": \"0.21.5\",\n \"@esbuild/android-x64\": \"0.21.5\",\n \"@esbuild/darwin-arm64\": \"0.21.5\",\n \"@esbuild/darwin-x64\": \"0.21.5\",\n \"@esbuild/freebsd-arm64\": \"0.21.5\",\n \"@esbuild/freebsd-x64\": \"0.21.5\",\n \"@esbuild/linux-arm\": \"0.21.5\",\n \"@esbuild/linux-arm64\": \"0.21.5\",\n \"@esbuild/linux-ia32\": \"0.21.5\",\n \"@esbuild/linux-loong64\": \"0.21.5\",\n \"@esbuild/linux-mips64el\": \"0.21.5\",\n \"@esbuild/linux-ppc64\": \"0.21.5\",\n \"@esbuild/linux-riscv64\": \"0.21.5\",\n \"@esbuild/linux-s390x\": \"0.21.5\",\n \"@esbuild/linux-x64\": \"0.21.5\",\n \"@esbuild/netbsd-x64\": \"0.21.5\",\n \"@esbuild/openbsd-x64\": \"0.21.5\",\n \"@esbuild/sunos-x64\": \"0.21.5\",\n \"@esbuild/win32-arm64\": \"0.21.5\",\n \"@esbuild/win32-ia32\": \"0.21.5\",\n \"@esbuild/win32-x64\": \"0.21.5\"\n }\n },\n \"node_modules/vitest\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/vitest/-/vitest-1.6.1.tgz\",\n \"integrity\": \"sha512-Ljb1cnSJSivGN0LqXd/zmDbWEM0RNNg2t1QW/XUhYl/qPqyu7CsqeWtqQXHVaJsecLPuDoak2oJcZN2QoRIOag==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/expect\": \"1.6.1\",\n \"@vitest/runner\": \"1.6.1\",\n \"@vitest/snapshot\": \"1.6.1\",\n \"@vitest/spy\": \"1.6.1\",\n \"@vitest/utils\": \"1.6.1\",\n \"acorn-walk\": \"^8.3.2\",\n \"chai\": \"^4.3.10\",\n \"debug\": \"^4.3.4\",\n \"execa\": \"^8.0.1\",\n \"local-pkg\": \"^0.5.0\",\n \"magic-string\": \"^0.30.5\",\n \"pathe\": \"^1.1.1\",\n \"picocolors\": \"^1.0.0\",\n \"std-env\": \"^3.5.0\",\n \"strip-literal\": \"^2.0.0\",\n \"tinybench\": \"^2.5.1\",\n \"tinypool\": \"^0.8.3\",\n \"vite\": \"^5.0.0\",\n \"vite-node\": \"1.6.1\",\n \"why-is-node-running\": \"^2.2.2\"\n },\n \"bin\": {\n \"vitest\": \"vitest.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"@edge-runtime/vm\": \"*\",\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"@vitest/browser\": \"1.6.1\",\n \"@vitest/ui\": \"1.6.1\",\n \"happy-dom\": \"*\",\n \"jsdom\": \"*\"\n },\n \"peerDependenciesMeta\": {\n \"@edge-runtime/vm\": {\n \"optional\": true\n },\n \"@types/node\": {\n \"optional\": true\n },\n \"@vitest/browser\": {\n \"optional\": true\n },\n \"@vitest/ui\": {\n \"optional\": true\n },\n \"happy-dom\": {\n \"optional\": true\n },\n \"jsdom\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/which\": {\n \"version\": \"2.0.2\",\n \"resolved\": \"https://registry.npmjs.org/which/-/which-2.0.2.tgz\",\n \"integrity\": \"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"isexe\": \"^2.0.0\"\n },\n \"bin\": {\n \"node-which\": \"bin/node-which\"\n },\n \"engines\": {\n \"node\": \">= 8\"\n }\n },\n \"node_modules/why-is-node-running\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz\",\n \"integrity\": \"sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"siginfo\": \"^2.0.0\",\n \"stackback\": \"0.0.2\"\n },\n \"bin\": {\n \"why-is-node-running\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/wrap-ansi\": {\n \"version\": \"7.0.0\",\n \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",\n \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.0.0\",\n \"string-width\": \"^4.1.0\",\n \"strip-ansi\": \"^6.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/wrap-ansi?sponsor=1\"\n }\n },\n \"node_modules/y18n\": {\n \"version\": \"5.0.8\",\n \"resolved\": \"https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz\",\n \"integrity\": \"sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/yallist\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz\",\n \"integrity\": \"sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/yargs\": {\n \"version\": \"17.7.2\",\n \"resolved\": \"https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz\",\n \"integrity\": \"sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cliui\": \"^8.0.1\",\n \"escalade\": \"^3.1.1\",\n \"get-caller-file\": \"^2.0.5\",\n \"require-directory\": \"^2.1.1\",\n \"string-width\": \"^4.2.3\",\n \"y18n\": \"^5.0.5\",\n \"yargs-parser\": \"^21.1.1\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yargs-parser\": {\n \"version\": \"21.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz\",\n \"integrity\": \"sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yocto-queue\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz\",\n \"integrity\": \"sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12.20\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/zod\": {\n \"version\": \"3.25.76\",\n \"resolved\": \"https://registry.npmjs.org/zod/-/zod-3.25.76.tgz\",\n \"integrity\": \"sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"funding\": {\n \"url\": \"https://github.com/sponsors/colinhacks\"\n }\n }\n }\n}\n",
+ "package.json": "{\n \"name\": \"example-game\",\n \"version\": \"1.0.0\",\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"concurrently \\\"tsx --watch src/backend/server.ts\\\" \\\"vite\\\"\",\n \"build\": \"vite build\",\n \"preview\": \"vite preview\",\n \"check-types\": \"tsc --noEmit\",\n \"test\": \"vitest\"\n },\n \"dependencies\": {\n \"rivetkit\": \"^0.9.1\",\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^20.0.0\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.0.0\",\n \"concurrently\": \"^8.2.0\",\n \"tsx\": \"^4.0.0\",\n \"typescript\": \"^5.0.0\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^1.0.0\"\n }\n}\n",
"tsconfig.json": "{\n \"compilerOptions\": {\n \"target\": \"ES2020\",\n \"lib\": [\"ES2020\", \"DOM\", \"DOM.Iterable\"],\n \"module\": \"ESNext\",\n \"skipLibCheck\": true,\n \"moduleResolution\": \"bundler\",\n \"allowImportingTsExtensions\": true,\n \"resolveJsonModule\": true,\n \"isolatedModules\": true,\n \"noEmit\": true,\n \"jsx\": \"react-jsx\",\n \"strict\": true,\n \"noUnusedLocals\": true,\n \"noUnusedParameters\": true,\n \"noFallthroughCasesInSwitch\": true\n },\n \"include\": [\"src\", \"tests\"],\n \"exclude\": [\"node_modules\", \"dist\"]\n}\n",
"vite.config.ts": "import react from \"@vitejs/plugin-react\";\nimport { defineConfig } from \"vite\";\n\nexport default defineConfig({\n\tplugins: [react()],\n\troot: \"src/frontend\",\n\tserver: {\n\t\tport: 3000,\n\t},\n\tbuild: {\n\t\toutDir: \"../../dist\",\n\t\temptyOutDir: true,\n\t},\n});\n",
"vitest.config.ts": "import { defineConfig } from \"vitest/config\";\n\nexport default defineConfig({\n\ttest: {\n\t\tenvironment: \"node\",\n\t},\n});\n",
"src/frontend/App.tsx": "import { createClient, createRivetKit } from \"@rivetkit/react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport type { Player, registry } from \"../backend/registry\";\n\nconst client = createClient(\"http://localhost:8080\");\nconst { useActor } = createRivetKit(client);\n\nexport function App() {\n\tconst [players, setPlayers] = useState([]);\n\tconst [isConnected, setIsConnected] = useState(false);\n\tconst [currentPlayerId, setCurrentPlayerId] = useState(null);\n\tconst canvasRef = useRef(null);\n\tconst keysPressed = useRef>({});\n\tconst inputIntervalRef = useRef(null);\n\tconst animationRef = useRef(null);\n\n\tconst gameRoom = useActor({\n\t\tname: \"gameRoom\",\n\t\tkey: [\"global\"],\n\t});\n\n\t// Track connection status\n\tuseEffect(() => {\n\t\tsetIsConnected(!!gameRoom.connection);\n\t}, [gameRoom.connection]);\n\n\t// Set up game controls and rendering\n\tuseEffect(() => {\n\t\tif (!gameRoom.connection) return;\n\n\t\t// Set up keyboard handlers\n\t\tconst handleKeyDown = (e: KeyboardEvent) => {\n\t\t\tkeysPressed.current[e.key.toLowerCase()] = true;\n\t\t};\n\n\t\tconst handleKeyUp = (e: KeyboardEvent) => {\n\t\t\tkeysPressed.current[e.key.toLowerCase()] = false;\n\t\t};\n\n\t\twindow.addEventListener(\"keydown\", handleKeyDown);\n\t\twindow.addEventListener(\"keyup\", handleKeyUp);\n\n\t\t// Input update loop\n\t\tinputIntervalRef.current = setInterval(() => {\n\t\t\tconst input = { x: 0, y: 0 };\n\n\t\t\tif (keysPressed.current[\"w\"] || keysPressed.current[\"arrowup\"])\n\t\t\t\tinput.y = -1;\n\t\t\tif (keysPressed.current[\"s\"] || keysPressed.current[\"arrowdown\"])\n\t\t\t\tinput.y = 1;\n\t\t\tif (keysPressed.current[\"a\"] || keysPressed.current[\"arrowleft\"])\n\t\t\t\tinput.x = -1;\n\t\t\tif (keysPressed.current[\"d\"] || keysPressed.current[\"arrowright\"])\n\t\t\t\tinput.x = 1;\n\n\t\t\tgameRoom.connection?.setInput(input);\n\t\t}, 50);\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"keydown\", handleKeyDown);\n\t\t\twindow.removeEventListener(\"keyup\", handleKeyUp);\n\t\t\t\n\t\t\tif (inputIntervalRef.current) {\n\t\t\t\tclearInterval(inputIntervalRef.current);\n\t\t\t\tinputIntervalRef.current = null;\n\t\t\t}\n\t\t};\n\t}, [gameRoom.connection]);\n\n\t// Rendering loop\n\tuseEffect(() => {\n\t\tconst renderLoop = () => {\n\t\t\tconst canvas = canvasRef.current;\n\t\t\tif (!canvas) return;\n\n\t\t\tconst ctx = canvas.getContext(\"2d\");\n\t\t\tif (!ctx) return;\n\n\t\t\t// Clear canvas\n\t\t\tctx.clearRect(0, 0, canvas.width, canvas.height);\n\n\t\t\t// Draw grid\n\t\t\tctx.strokeStyle = \"#e0e0e0\";\n\t\t\tctx.lineWidth = 1;\n\t\t\tfor (let i = 0; i <= canvas.width; i += 50) {\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.moveTo(i, 0);\n\t\t\t\tctx.lineTo(i, canvas.height);\n\t\t\t\tctx.stroke();\n\t\t\t}\n\t\t\tfor (let i = 0; i <= canvas.height; i += 50) {\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.moveTo(0, i);\n\t\t\t\tctx.lineTo(canvas.width, i);\n\t\t\t\tctx.stroke();\n\t\t\t}\n\n\t\t\t// Draw players\n\t\t\tfor (const player of players) {\n\t\t\t\tconst isCurrentPlayer = currentPlayerId && player.id === currentPlayerId;\n\t\t\t\t\n\t\t\t\t// Draw player shadow\n\t\t\t\tctx.fillStyle = \"rgba(0, 0, 0, 0.2)\";\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.arc(player.position.x + 2, player.position.y + 2, 12, 0, Math.PI * 2);\n\t\t\t\tctx.fill();\n\n\t\t\t\t// Draw player\n\t\t\t\tctx.fillStyle = isCurrentPlayer ? \"#4287f5\" : \"#888\";\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.arc(player.position.x, player.position.y, 10, 0, Math.PI * 2);\n\t\t\t\tctx.fill();\n\n\t\t\t\t// Draw player border\n\t\t\t\tctx.strokeStyle = \"#333\";\n\t\t\t\tctx.lineWidth = 2;\n\t\t\t\tctx.stroke();\n\n\t\t\t\t// Draw player ID\n\t\t\t\tctx.fillStyle = \"#333\";\n\t\t\t\tctx.font = \"12px Arial\";\n\t\t\t\tctx.textAlign = \"center\";\n\t\t\t\tctx.fillText(\n\t\t\t\t\tisCurrentPlayer ? \"YOU\" : player.id.substring(0, 8),\n\t\t\t\t\tplayer.position.x,\n\t\t\t\t\tplayer.position.y - 15\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tanimationRef.current = requestAnimationFrame(renderLoop);\n\t\t};\n\n\t\tanimationRef.current = requestAnimationFrame(renderLoop);\n\n\t\treturn () => {\n\t\t\tif (animationRef.current) {\n\t\t\t\tcancelAnimationFrame(animationRef.current);\n\t\t\t\tanimationRef.current = null;\n\t\t\t}\n\t\t};\n\t}, [players, gameRoom.connection]);\n\n\t// Listen for world updates\n\tgameRoom.useEvent(\"worldUpdate\", ({ playerList }: { playerList: Player[] }) => {\n\t\tsetPlayers(playerList);\n\t\t\n\t\t// Try to identify current player - this is a simple approach\n\t\t// In a real implementation, we'd get the connection ID from the server\n\t\tif (currentPlayerId === null && playerList.length > 0) {\n\t\t\tsetCurrentPlayerId(playerList[playerList.length - 1].id);\n\t\t}\n\t});\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{isConnected ? \"Connected\" : \"Disconnected\"}\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\tMultiplayer Game
\n\t\t\t\tReal-time multiplayer movement with RivetKit
\n\t\t\t\n\n\t\t\t\n\t\t\t\tHow to Play
\n\t\t\t\t\n\t\t\t\t\tUse WASD or arrow keys to move your character around the game world. \n\t\t\t\t\tYour character is shown in blue, while other players appear in gray. \n\t\t\t\t\tThe game updates in real-time, so you'll see other players moving as they play.\n\t\t\t\t
\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tYou\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tOther Players\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\tControls:
\n\t\t\t\tMove: WASD or Arrow Keys
\n\t\t\t\tPlayers online: {players.length}
\n\t\t\t\n\t\t\n\t);\n}",
"src/frontend/main.tsx": "import { StrictMode } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { App } from \"./App\";\n\nconst root = document.getElementById(\"root\");\nif (!root) throw new Error(\"Root element not found\");\n\ncreateRoot(root).render(\n\t\n\t\t \n\t \n);",
"src/frontend/index.html": "\n\n\n \n \n Multiplayer Game - RivetKit \n \n\n\n \n \n\n",
- "src/backend/registry.ts": "import { actor, setup } from \"@rivetkit/actor\";\n\nexport type Position = { x: number; y: number };\nexport type Input = { x: number; y: number };\nexport type Player = { id: string; position: Position; input: Input };\n\nconst gameRoom = actor({\n\tonAuth: () => {},\n\t// Persistent state that survives restarts: https://rivet.gg/docs/actors/state\n\tstate: {\n\t\tplayers: {} as Record,\n\t\tmapSize: 800,\n\t},\n\n\tonStart: (c) => {\n\t\t// Set up game update loop\n\t\tsetInterval(() => {\n\t\t\tconst playerList: Player[] = [];\n\t\t\tlet hasPlayers = false;\n\n\t\t\tfor (const id in c.state.players) {\n\t\t\t\tconst player = c.state.players[id];\n\t\t\t\tconst speed = 5;\n\n\t\t\t\t// Update position based on input\n\t\t\t\tplayer.position.x += player.input.x * speed;\n\t\t\t\tplayer.position.y += player.input.y * speed;\n\n\t\t\t\t// Keep player in bounds\n\t\t\t\tplayer.position.x = Math.max(\n\t\t\t\t\t10,\n\t\t\t\t\tMath.min(player.position.x, c.state.mapSize - 10),\n\t\t\t\t);\n\t\t\t\tplayer.position.y = Math.max(\n\t\t\t\t\t10,\n\t\t\t\t\tMath.min(player.position.y, c.state.mapSize - 10),\n\t\t\t\t);\n\n\t\t\t\t// Add to list for broadcast\n\t\t\t\tplayerList.push(player);\n\t\t\t\thasPlayers = true;\n\t\t\t}\n\n\t\t\t// Only broadcast if there are players\n\t\t\tif (hasPlayers) {\n\t\t\t\t// Send events to all connected clients: https://rivet.gg/docs/actors/events\n\t\t\t\tc.broadcast(\"worldUpdate\", { playerList });\n\t\t\t}\n\t\t}, 50);\n\n\t\t// Store interval ID for cleanup (would need to be cleaned up manually if needed)\n\t\t// For now, we'll let the interval run since there's no cleanup method\n\t},\n\n\t// Handle client connections: https://rivet.gg/docs/actors/connection-lifecycle\n\tonConnect: (c, conn) => {\n\t\tconst id = conn.id;\n\t\t// State changes are automatically persisted\n\t\tc.state.players[id] = {\n\t\t\tid,\n\t\t\tposition: {\n\t\t\t\tx: Math.floor(Math.random() * (c.state.mapSize - 100)) + 50,\n\t\t\t\ty: Math.floor(Math.random() * (c.state.mapSize - 100)) + 50,\n\t\t\t},\n\t\t\tinput: { x: 0, y: 0 },\n\t\t};\n\n\t\t// Send initial world state to new player\n\t\tconst playerList = Object.values(c.state.players);\n\t\tconn.send(\"worldUpdate\", { playerList });\n\t},\n\n\tonDisconnect: (c, conn) => {\n\t\tdelete c.state.players[conn.id];\n\t},\n\n\tactions: {\n\t\t// Callable functions from clients: https://rivet.gg/docs/actors/actions\n\t\tsetInput: (c, input: Input) => {\n\t\t\tconst player = c.state.players[c.conn.id];\n\t\t\tif (player) {\n\t\t\t\tplayer.input = input;\n\t\t\t}\n\t\t},\n\n\t\tgetPlayerCount: (c) => {\n\t\t\treturn Object.keys(c.state.players).length;\n\t\t},\n\t},\n});\n\n// Register actors for use: https://rivet.gg/docs/setup\nexport const registry = setup({\n\tuse: { gameRoom },\n});\n",
+ "src/backend/registry.ts": "import { actor, setup } from \"rivetkit\";\n\nexport type Position = { x: number; y: number };\nexport type Input = { x: number; y: number };\nexport type Player = { id: string; position: Position; input: Input };\n\nconst gameRoom = actor({\n\tonAuth: () => {},\n\t// Persistent state that survives restarts: https://rivet.gg/docs/actors/state\n\tstate: {\n\t\tplayers: {} as Record,\n\t\tmapSize: 800,\n\t},\n\n\tonStart: (c) => {\n\t\t// Set up game update loop\n\t\tsetInterval(() => {\n\t\t\tconst playerList: Player[] = [];\n\t\t\tlet hasPlayers = false;\n\n\t\t\tfor (const id in c.state.players) {\n\t\t\t\tconst player = c.state.players[id];\n\t\t\t\tconst speed = 5;\n\n\t\t\t\t// Update position based on input\n\t\t\t\tplayer.position.x += player.input.x * speed;\n\t\t\t\tplayer.position.y += player.input.y * speed;\n\n\t\t\t\t// Keep player in bounds\n\t\t\t\tplayer.position.x = Math.max(\n\t\t\t\t\t10,\n\t\t\t\t\tMath.min(player.position.x, c.state.mapSize - 10),\n\t\t\t\t);\n\t\t\t\tplayer.position.y = Math.max(\n\t\t\t\t\t10,\n\t\t\t\t\tMath.min(player.position.y, c.state.mapSize - 10),\n\t\t\t\t);\n\n\t\t\t\t// Add to list for broadcast\n\t\t\t\tplayerList.push(player);\n\t\t\t\thasPlayers = true;\n\t\t\t}\n\n\t\t\t// Only broadcast if there are players\n\t\t\tif (hasPlayers) {\n\t\t\t\t// Send events to all connected clients: https://rivet.gg/docs/actors/events\n\t\t\t\tc.broadcast(\"worldUpdate\", { playerList });\n\t\t\t}\n\t\t}, 50);\n\n\t\t// Store interval ID for cleanup (would need to be cleaned up manually if needed)\n\t\t// For now, we'll let the interval run since there's no cleanup method\n\t},\n\n\t// Handle client connections: https://rivet.gg/docs/actors/connection-lifecycle\n\tonConnect: (c, conn) => {\n\t\tconst id = conn.id;\n\t\t// State changes are automatically persisted\n\t\tc.state.players[id] = {\n\t\t\tid,\n\t\t\tposition: {\n\t\t\t\tx: Math.floor(Math.random() * (c.state.mapSize - 100)) + 50,\n\t\t\t\ty: Math.floor(Math.random() * (c.state.mapSize - 100)) + 50,\n\t\t\t},\n\t\t\tinput: { x: 0, y: 0 },\n\t\t};\n\n\t\t// Send initial world state to new player\n\t\tconst playerList = Object.values(c.state.players);\n\t\tconn.send(\"worldUpdate\", { playerList });\n\t},\n\n\tonDisconnect: (c, conn) => {\n\t\tdelete c.state.players[conn.id];\n\t},\n\n\tactions: {\n\t\t// Callable functions from clients: https://rivet.gg/docs/actors/actions\n\t\tsetInput: (c, input: Input) => {\n\t\t\tconst player = c.state.players[c.conn.id];\n\t\t\tif (player) {\n\t\t\t\tplayer.input = input;\n\t\t\t}\n\t\t},\n\n\t\tgetPlayerCount: (c) => {\n\t\t\treturn Object.keys(c.state.players).length;\n\t\t},\n\t},\n});\n\n// Register actors for use: https://rivet.gg/docs/setup\nexport const registry = setup({\n\tuse: { gameRoom },\n});\n",
"src/backend/server.ts": "import { registry } from \"./registry\";\n\nregistry.runServer({\n\tcors: {\n\t\torigin: \"*\",\n\t},\n});\n"
}
},
@@ -123,17 +123,17 @@ export const examples: ExampleData[] = [
],
"tab": "memory",
"files": {
- "tests/sync.test.ts": "import { setupTest } from \"@rivetkit/actor/test\";\nimport { expect, test } from \"vitest\";\nimport { registry } from \"../src/backend/registry\";\n\ntest(\"Sync system can handle contact synchronization\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst sync = client.contacts.getOrCreate([\"test-sync-new\"]);\n\n\t// Initial state should be empty (or may have existing data)\n\tconst initialContacts = await sync.getAllContacts();\n\tconst initialCount = initialContacts.length;\n\n\t// Push some contacts\n\tconst contacts = [\n\t\t{\n\t\t\tid: \"1\",\n\t\t\tname: \"Alice Johnson\",\n\t\t\temail: \"alice@example.com\",\n\t\t\tphone: \"555-0001\",\n\t\t\tupdatedAt: Date.now() - 1000,\n\t\t},\n\t\t{\n\t\t\tid: \"2\",\n\t\t\tname: \"Bob Smith\",\n\t\t\temail: \"bob@example.com\",\n\t\t\tphone: \"555-0002\",\n\t\t\tupdatedAt: Date.now(),\n\t\t},\n\t];\n\n\tconst pushResult = await sync.pushChanges(contacts);\n\texpect(pushResult).toMatchObject({\n\t\ttimestamp: expect.any(Number),\n\t});\n\n\t// Verify contacts were stored\n\tconst allContacts = await sync.getAllContacts();\n\texpect(allContacts).toHaveLength(initialCount + 2);\n\texpect(allContacts).toEqual(expect.arrayContaining(contacts));\n});\n\ntest(\"Sync system handles conflict resolution with last-write-wins\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst sync = client.contacts.getOrCreate([\"test-conflicts\"]);\n\n\tconst oldTimestamp = Date.now() - 2000;\n\tconst newTimestamp = Date.now();\n\n\t// Push initial contact\n\tconst originalContact = {\n\t\tid: \"conflict-test\",\n\t\tname: \"Original Name\",\n\t\temail: \"original@example.com\",\n\t\tphone: \"555-0000\",\n\t\tupdatedAt: oldTimestamp,\n\t};\n\n\tawait sync.pushChanges([originalContact]);\n\n\t// Push conflicting update with newer timestamp\n\tconst updatedContact = {\n\t\tid: \"conflict-test\",\n\t\tname: \"Updated Name\",\n\t\temail: \"updated@example.com\",\n\t\tphone: \"555-1111\",\n\t\tupdatedAt: newTimestamp,\n\t};\n\n\tawait sync.pushChanges([updatedContact]);\n\n\t// Verify newer version won\n\tconst contacts = await sync.getAllContacts();\n\tconst conflictContact = contacts.find((c) => c.id === \"conflict-test\");\n\texpect(conflictContact).toEqual(updatedContact);\n\n\t// Try to push older version - should be ignored\n\tconst olderContact = {\n\t\tid: \"conflict-test\",\n\t\tname: \"Older Name\",\n\t\temail: \"older@example.com\",\n\t\tphone: \"555-9999\",\n\t\tupdatedAt: oldTimestamp - 1000,\n\t};\n\n\tawait sync.pushChanges([olderContact]);\n\n\t// Verify newer version is still there\n\tconst finalContacts = await sync.getAllContacts();\n\tconst finalContact = finalContacts.find((c) => c.id === \"conflict-test\");\n\texpect(finalContact).toEqual(updatedContact);\n});\n\ntest(\"Sync system tracks changes after timestamp\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst sync = client.contacts.getOrCreate([\"test-changes\"]);\n\n\tconst baseTime = Date.now();\n\n\t// Add some contacts at different times\n\tconst contact1 = {\n\t\tid: \"1\",\n\t\tname: \"First Contact\",\n\t\temail: \"first@example.com\",\n\t\tphone: \"555-0001\",\n\t\tupdatedAt: baseTime - 1000,\n\t};\n\n\tconst contact2 = {\n\t\tid: \"2\",\n\t\tname: \"Second Contact\",\n\t\temail: \"second@example.com\",\n\t\tphone: \"555-0002\",\n\t\tupdatedAt: baseTime + 1000,\n\t};\n\n\tawait sync.pushChanges([contact1]);\n\tawait sync.pushChanges([contact2]);\n\n\t// Get changes after base time - should only return contact2\n\tconst changes = await sync.getChanges(baseTime);\n\texpect(changes.changes).toHaveLength(1);\n\texpect(changes.changes[0]).toEqual(contact2);\n\texpect(changes.timestamp).toBeGreaterThanOrEqual(baseTime);\n\n\t// Get all changes - should return both\n\tconst allChanges = await sync.getChanges(0);\n\texpect(allChanges.changes).toHaveLength(2);\n});\n\ntest(\"Sync system provides statistics\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst sync = client.contacts.getOrCreate([\"test-stats-new\"]);\n\n\t// Initial stats\n\tconst initialStats = await sync.getSyncStats();\n\texpect(initialStats).toMatchObject({\n\t\ttotalContacts: expect.any(Number),\n\t\tlastSyncTime: expect.any(Number),\n\t\tdeletedContacts: expect.any(Number),\n\t});\n\n\tconst initialTotal = initialStats.totalContacts;\n\n\t// Add some contacts\n\tconst contacts = [\n\t\t{\n\t\t\tid: \"1\",\n\t\t\tname: \"Contact 1\",\n\t\t\temail: \"c1@example.com\",\n\t\t\tphone: \"555-0001\",\n\t\t\tupdatedAt: Date.now(),\n\t\t},\n\t\t{\n\t\t\tid: \"2\",\n\t\t\tname: \"Contact 2\",\n\t\t\temail: \"c2@example.com\",\n\t\t\tphone: \"555-0002\",\n\t\t\tupdatedAt: Date.now(),\n\t\t},\n\t\t{\n\t\t\tid: \"3\",\n\t\t\tname: \"\",\n\t\t\temail: \"deleted@example.com\",\n\t\t\tphone: \"555-0003\",\n\t\t\tupdatedAt: Date.now(),\n\t\t}, // Deleted contact\n\t];\n\n\tawait sync.pushChanges(contacts);\n\n\tconst stats = await sync.getSyncStats();\n\texpect(stats.totalContacts).toBe(initialTotal + 2); // Only non-deleted contacts\n\texpect(stats.deletedContacts).toBeGreaterThanOrEqual(1);\n\texpect(stats.lastSyncTime).toBeGreaterThan(initialStats.lastSyncTime);\n});\n\ntest(\"Sync system reset functionality\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst sync = client.contacts.getOrCreate([\"test-reset\"]);\n\n\t// Add some contacts\n\tconst contacts = [\n\t\t{\n\t\t\tid: \"1\",\n\t\t\tname: \"Contact 1\",\n\t\t\temail: \"c1@example.com\",\n\t\t\tphone: \"555-0001\",\n\t\t\tupdatedAt: Date.now(),\n\t\t},\n\t\t{\n\t\t\tid: \"2\",\n\t\t\tname: \"Contact 2\",\n\t\t\temail: \"c2@example.com\",\n\t\t\tphone: \"555-0002\",\n\t\t\tupdatedAt: Date.now(),\n\t\t},\n\t];\n\n\tawait sync.pushChanges(contacts);\n\n\t// Verify contacts exist\n\tlet allContacts = await sync.getAllContacts();\n\texpect(allContacts).toHaveLength(2);\n\n\t// Reset the system\n\tconst resetResult = await sync.reset();\n\texpect(resetResult).toMatchObject({\n\t\ttimestamp: expect.any(Number),\n\t});\n\n\t// Verify contacts are gone\n\tallContacts = await sync.getAllContacts();\n\texpect(allContacts).toEqual([]);\n\n\tconst stats = await sync.getSyncStats();\n\texpect(stats.totalContacts).toBe(0);\n});\n",
+ "tests/sync.test.ts": "import { setupTest } from \"rivetkit/test\";\nimport { expect, test } from \"vitest\";\nimport { registry } from \"../src/backend/registry\";\n\ntest(\"Sync system can handle contact synchronization\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst sync = client.contacts.getOrCreate([\"test-sync-new\"]);\n\n\t// Initial state should be empty (or may have existing data)\n\tconst initialContacts = await sync.getAllContacts();\n\tconst initialCount = initialContacts.length;\n\n\t// Push some contacts\n\tconst contacts = [\n\t\t{\n\t\t\tid: \"1\",\n\t\t\tname: \"Alice Johnson\",\n\t\t\temail: \"alice@example.com\",\n\t\t\tphone: \"555-0001\",\n\t\t\tupdatedAt: Date.now() - 1000,\n\t\t},\n\t\t{\n\t\t\tid: \"2\",\n\t\t\tname: \"Bob Smith\",\n\t\t\temail: \"bob@example.com\",\n\t\t\tphone: \"555-0002\",\n\t\t\tupdatedAt: Date.now(),\n\t\t},\n\t];\n\n\tconst pushResult = await sync.pushChanges(contacts);\n\texpect(pushResult).toMatchObject({\n\t\ttimestamp: expect.any(Number),\n\t});\n\n\t// Verify contacts were stored\n\tconst allContacts = await sync.getAllContacts();\n\texpect(allContacts).toHaveLength(initialCount + 2);\n\texpect(allContacts).toEqual(expect.arrayContaining(contacts));\n});\n\ntest(\"Sync system handles conflict resolution with last-write-wins\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst sync = client.contacts.getOrCreate([\"test-conflicts\"]);\n\n\tconst oldTimestamp = Date.now() - 2000;\n\tconst newTimestamp = Date.now();\n\n\t// Push initial contact\n\tconst originalContact = {\n\t\tid: \"conflict-test\",\n\t\tname: \"Original Name\",\n\t\temail: \"original@example.com\",\n\t\tphone: \"555-0000\",\n\t\tupdatedAt: oldTimestamp,\n\t};\n\n\tawait sync.pushChanges([originalContact]);\n\n\t// Push conflicting update with newer timestamp\n\tconst updatedContact = {\n\t\tid: \"conflict-test\",\n\t\tname: \"Updated Name\",\n\t\temail: \"updated@example.com\",\n\t\tphone: \"555-1111\",\n\t\tupdatedAt: newTimestamp,\n\t};\n\n\tawait sync.pushChanges([updatedContact]);\n\n\t// Verify newer version won\n\tconst contacts = await sync.getAllContacts();\n\tconst conflictContact = contacts.find((c) => c.id === \"conflict-test\");\n\texpect(conflictContact).toEqual(updatedContact);\n\n\t// Try to push older version - should be ignored\n\tconst olderContact = {\n\t\tid: \"conflict-test\",\n\t\tname: \"Older Name\",\n\t\temail: \"older@example.com\",\n\t\tphone: \"555-9999\",\n\t\tupdatedAt: oldTimestamp - 1000,\n\t};\n\n\tawait sync.pushChanges([olderContact]);\n\n\t// Verify newer version is still there\n\tconst finalContacts = await sync.getAllContacts();\n\tconst finalContact = finalContacts.find((c) => c.id === \"conflict-test\");\n\texpect(finalContact).toEqual(updatedContact);\n});\n\ntest(\"Sync system tracks changes after timestamp\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst sync = client.contacts.getOrCreate([\"test-changes\"]);\n\n\tconst baseTime = Date.now();\n\n\t// Add some contacts at different times\n\tconst contact1 = {\n\t\tid: \"1\",\n\t\tname: \"First Contact\",\n\t\temail: \"first@example.com\",\n\t\tphone: \"555-0001\",\n\t\tupdatedAt: baseTime - 1000,\n\t};\n\n\tconst contact2 = {\n\t\tid: \"2\",\n\t\tname: \"Second Contact\",\n\t\temail: \"second@example.com\",\n\t\tphone: \"555-0002\",\n\t\tupdatedAt: baseTime + 1000,\n\t};\n\n\tawait sync.pushChanges([contact1]);\n\tawait sync.pushChanges([contact2]);\n\n\t// Get changes after base time - should only return contact2\n\tconst changes = await sync.getChanges(baseTime);\n\texpect(changes.changes).toHaveLength(1);\n\texpect(changes.changes[0]).toEqual(contact2);\n\texpect(changes.timestamp).toBeGreaterThanOrEqual(baseTime);\n\n\t// Get all changes - should return both\n\tconst allChanges = await sync.getChanges(0);\n\texpect(allChanges.changes).toHaveLength(2);\n});\n\ntest(\"Sync system provides statistics\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst sync = client.contacts.getOrCreate([\"test-stats-new\"]);\n\n\t// Initial stats\n\tconst initialStats = await sync.getSyncStats();\n\texpect(initialStats).toMatchObject({\n\t\ttotalContacts: expect.any(Number),\n\t\tlastSyncTime: expect.any(Number),\n\t\tdeletedContacts: expect.any(Number),\n\t});\n\n\tconst initialTotal = initialStats.totalContacts;\n\n\t// Add some contacts\n\tconst contacts = [\n\t\t{\n\t\t\tid: \"1\",\n\t\t\tname: \"Contact 1\",\n\t\t\temail: \"c1@example.com\",\n\t\t\tphone: \"555-0001\",\n\t\t\tupdatedAt: Date.now(),\n\t\t},\n\t\t{\n\t\t\tid: \"2\",\n\t\t\tname: \"Contact 2\",\n\t\t\temail: \"c2@example.com\",\n\t\t\tphone: \"555-0002\",\n\t\t\tupdatedAt: Date.now(),\n\t\t},\n\t\t{\n\t\t\tid: \"3\",\n\t\t\tname: \"\",\n\t\t\temail: \"deleted@example.com\",\n\t\t\tphone: \"555-0003\",\n\t\t\tupdatedAt: Date.now(),\n\t\t}, // Deleted contact\n\t];\n\n\tawait sync.pushChanges(contacts);\n\n\tconst stats = await sync.getSyncStats();\n\texpect(stats.totalContacts).toBe(initialTotal + 2); // Only non-deleted contacts\n\texpect(stats.deletedContacts).toBeGreaterThanOrEqual(1);\n\texpect(stats.lastSyncTime).toBeGreaterThan(initialStats.lastSyncTime);\n});\n\ntest(\"Sync system reset functionality\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst sync = client.contacts.getOrCreate([\"test-reset\"]);\n\n\t// Add some contacts\n\tconst contacts = [\n\t\t{\n\t\t\tid: \"1\",\n\t\t\tname: \"Contact 1\",\n\t\t\temail: \"c1@example.com\",\n\t\t\tphone: \"555-0001\",\n\t\t\tupdatedAt: Date.now(),\n\t\t},\n\t\t{\n\t\t\tid: \"2\",\n\t\t\tname: \"Contact 2\",\n\t\t\temail: \"c2@example.com\",\n\t\t\tphone: \"555-0002\",\n\t\t\tupdatedAt: Date.now(),\n\t\t},\n\t];\n\n\tawait sync.pushChanges(contacts);\n\n\t// Verify contacts exist\n\tlet allContacts = await sync.getAllContacts();\n\texpect(allContacts).toHaveLength(2);\n\n\t// Reset the system\n\tconst resetResult = await sync.reset();\n\texpect(resetResult).toMatchObject({\n\t\ttimestamp: expect.any(Number),\n\t});\n\n\t// Verify contacts are gone\n\tallContacts = await sync.getAllContacts();\n\texpect(allContacts).toEqual([]);\n\n\tconst stats = await sync.getSyncStats();\n\texpect(stats.totalContacts).toBe(0);\n});\n",
"README.md": "# Sync Contacts for RivetKit\n\nExample project demonstrating offline-first contact synchronization with conflict resolution using [RivetKit](https://rivetkit.org).\n\n[Learn More →](https://github.com/rivet-gg/rivetkit)\n\n[Discord](https://rivet.gg/discord) — [Documentation](https://rivetkit.org) — [Issues](https://github.com/rivet-gg/rivetkit/issues)\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 18+\n\n### Installation\n\n```sh\ngit clone https://github.com/rivet-gg/rivetkit\ncd rivetkit/examples/sync\nnpm install\n```\n\n### Development\n\n```sh\nnpm run dev\n```\n\nOpen your browser to `http://localhost:3000`\n\n## Features\n\n- **Offline-First Sync**: Add contacts locally, sync when connection available\n- **Conflict Resolution**: \"Last write wins\" conflict resolution using timestamps\n- **Real-time Updates**: See changes from other clients immediately\n- **Soft Deletes**: Deleted contacts are marked as deleted, not removed\n- **Periodic Sync**: Automatic background synchronization every 5 seconds\n- **Manual Sync**: Force synchronization with \"Sync Now\" button\n- **Sync Statistics**: Track total contacts, deletions, and last sync time\n- **Connection Status**: Visual indicators for sync status (Synced/Syncing/Offline)\n\n## How it works\n\nThis contact sync system demonstrates:\n\n1. **Offline-First Architecture**: Changes are applied locally first for immediate UI feedback\n2. **Conflict Resolution**: Server uses timestamp-based \"last write wins\" strategy\n3. **Event Broadcasting**: Real-time updates sent to all connected clients\n4. **Soft Delete Pattern**: Deleted contacts marked with empty name instead of removal\n5. **Periodic Synchronization**: Background sync every 5 seconds to catch remote changes\n6. **Optimistic Updates**: UI updates immediately before server confirmation\n\n## Architecture\n\n- **Backend**: RivetKit actor managing contact state and synchronization logic\n- **Frontend**: React application with offline-first contact management\n- **Sync Strategy**: Timestamp-based conflict resolution with periodic reconciliation\n- **State Management**: Server-side persistence with client-side optimistic updates\n\n## Synchronization Flow\n\n### Adding Contacts\n```typescript\n// 1. Add locally for immediate UI feedback\nsetContacts(prev => [...prev, newContact]);\n\n// 2. Push to server for persistence and broadcast\nawait actor.pushChanges([newContact]);\n```\n\n### Conflict Resolution\n```typescript\n// Server-side: Last write wins based on timestamp\nif (!existing || existing.updatedAt < contact.updatedAt) {\n state.contacts[contact.id] = contact;\n}\n```\n\n### Periodic Sync\n```typescript\n// Every 5 seconds:\n// 1. Get remote changes since last sync\nconst changes = await actor.getChanges(lastSyncTime);\n\n// 2. Apply remote changes locally\n// 3. Push any local changes to server\n// 4. Update last sync timestamp\n```\n\n## Sync Strategies\n\nThis example implements **Last Write Wins** conflict resolution, but the pattern supports other strategies:\n\n### Last Write Wins (Current Implementation)\n- Simple timestamp comparison\n- Most recent change takes precedence\n- Easy to implement and understand\n- Risk of data loss in concurrent edits\n\n### Alternative Strategies\n- **Operational Transform**: Transform operations to maintain intent\n- **CRDTs**: Conflict-free replicated data types for automatic resolution\n- **Three-Way Merge**: Compare base, local, and remote versions\n- **User-Prompted Resolution**: Ask user to resolve conflicts manually\n\n## Use Cases\n\nThis sync pattern is perfect for:\n\n- **Contact Management**: Personal and business contact lists\n- **Note Taking**: Distributed note-taking applications\n- **Todo Lists**: Task management with offline support\n- **Settings Sync**: User preferences across devices\n- **Shopping Lists**: Collaborative shopping with family/friends\n- **Inventory Management**: Small business inventory tracking\n\n## Extending\n\nThis sync system can be enhanced with:\n\n- **User Authentication**: Per-user contact isolation\n- **Categories/Tags**: Organize contacts into groups\n- **Import/Export**: Bulk contact operations\n- **Search/Filtering**: Find contacts quickly\n- **Merge Conflicts**: UI for manual conflict resolution\n- **Backup/Restore**: Data protection features\n- **Sharing**: Share contacts between users\n- **Versioning**: Track contact change history\n- **Advanced Sync**: Delta sync for large datasets\n\n## Offline Behavior\n\n### When Offline\n- Contacts can still be added/deleted locally\n- Changes are queued for next sync\n- UI shows \"Offline\" status\n- All functionality remains available\n\n### When Reconnecting\n- Automatic sync of queued changes\n- Conflict resolution applied\n- Status updates to \"Syncing\" then \"Synced\"\n- Real-time updates resume\n\n## Testing Offline Sync\n\nTo test offline functionality:\n\n1. **Add contacts** while online\n2. **Disconnect network** (disable WiFi or ethernet)\n3. **Add more contacts** - they appear locally\n4. **Reconnect network** - contacts sync automatically\n5. **Open multiple tabs** - see real-time sync between clients\n\n## Performance Considerations\n\n### Optimization Strategies\n- **Delta Sync**: Only sync changes since last sync\n- **Batching**: Group multiple changes into single requests\n- **Compression**: Compress sync payloads for large datasets\n- **Indexing**: Index by timestamp for efficient change queries\n- **Pagination**: Handle large contact lists efficiently\n\n### Scalability Notes\n- Current implementation stores all contacts in memory\n- For production, consider database persistence\n- Implement pagination for large contact lists\n- Add rate limiting for sync operations\n- Consider WebSocket connections for real-time updates\n\n## Error Handling\n\nThe system handles various error scenarios:\n\n- **Network Failures**: Fall back to offline mode\n- **Server Errors**: Retry with exponential backoff\n- **Sync Conflicts**: Automatic resolution with timestamps\n- **Invalid Data**: Validation before persistence\n- **Connection Loss**: Queue changes for later sync\n\n## License\n\nApache 2.0",
- "package-lock.json": "{\n \"name\": \"example-sync\",\n \"version\": \"1.0.0\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n \"name\": \"example-sync\",\n \"version\": \"1.0.0\",\n \"dependencies\": {\n \"@rivetkit/actor\": \"^0.9.1\",\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^20.0.0\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.0.0\",\n \"concurrently\": \"^8.2.0\",\n \"tsx\": \"^4.0.0\",\n \"typescript\": \"^5.0.0\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^1.0.0\"\n }\n },\n \"node_modules/@ampproject/remapping\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz\",\n \"integrity\": \"sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@jridgewell/gen-mapping\": \"^0.3.5\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/code-frame\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz\",\n \"integrity\": \"sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"js-tokens\": \"^4.0.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/compat-data\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz\",\n \"integrity\": \"sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/core\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz\",\n \"integrity\": \"sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@ampproject/remapping\": \"^2.2.0\",\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-compilation-targets\": \"^7.27.2\",\n \"@babel/helper-module-transforms\": \"^7.27.3\",\n \"@babel/helpers\": \"^7.27.6\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/traverse\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"convert-source-map\": \"^2.0.0\",\n \"debug\": \"^4.1.0\",\n \"gensync\": \"^1.0.0-beta.2\",\n \"json5\": \"^2.2.3\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/babel\"\n }\n },\n \"node_modules/@babel/generator\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz\",\n \"integrity\": \"sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"@jridgewell/gen-mapping\": \"^0.3.12\",\n \"@jridgewell/trace-mapping\": \"^0.3.28\",\n \"jsesc\": \"^3.0.2\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-compilation-targets\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz\",\n \"integrity\": \"sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/compat-data\": \"^7.27.2\",\n \"@babel/helper-validator-option\": \"^7.27.1\",\n \"browserslist\": \"^4.24.0\",\n \"lru-cache\": \"^5.1.1\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-globals\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz\",\n \"integrity\": \"sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-imports\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz\",\n \"integrity\": \"sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/traverse\": \"^7.27.1\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-transforms\": {\n \"version\": \"7.27.3\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz\",\n \"integrity\": \"sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-module-imports\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"@babel/traverse\": \"^7.27.3\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0\"\n }\n },\n \"node_modules/@babel/helper-plugin-utils\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz\",\n \"integrity\": \"sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-string-parser\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz\",\n \"integrity\": \"sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-identifier\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz\",\n \"integrity\": \"sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-option\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz\",\n \"integrity\": \"sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helpers\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz\",\n \"integrity\": \"sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.6\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/parser\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz\",\n \"integrity\": \"sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.28.0\"\n },\n \"bin\": {\n \"parser\": \"bin/babel-parser.js\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-self\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz\",\n \"integrity\": \"sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-source\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz\",\n \"integrity\": \"sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/runtime\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz\",\n \"integrity\": \"sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/template\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz\",\n \"integrity\": \"sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/parser\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/traverse\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz\",\n \"integrity\": \"sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-globals\": \"^7.28.0\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.28.0\",\n \"debug\": \"^4.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/types\": {\n \"version\": \"7.28.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz\",\n \"integrity\": \"sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-string-parser\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz\",\n \"integrity\": \"sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==\",\n \"cpu\": [\n \"arm\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-win32-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"peer\": true\n },\n \"node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.6.tgz\",\n \"integrity\": \"sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-arm\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.6.tgz\",\n \"integrity\": \"sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.6.tgz\",\n \"integrity\": \"sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.6.tgz\",\n \"integrity\": \"sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.6.tgz\",\n \"integrity\": \"sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.6.tgz\",\n \"integrity\": \"sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.6.tgz\",\n \"integrity\": \"sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.6.tgz\",\n \"integrity\": \"sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.6.tgz\",\n \"integrity\": \"sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/netbsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openbsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openharmony-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openharmony\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.6.tgz\",\n \"integrity\": \"sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@jest/schemas\": {\n \"version\": \"29.6.3\",\n \"resolved\": \"https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz\",\n \"integrity\": \"sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@sinclair/typebox\": \"^0.27.8\"\n },\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/@jridgewell/gen-mapping\": {\n \"version\": \"0.3.12\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz\",\n \"integrity\": \"sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n }\n },\n \"node_modules/@jridgewell/resolve-uri\": {\n \"version\": \"3.1.2\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz\",\n \"integrity\": \"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@jridgewell/sourcemap-codec\": {\n \"version\": \"1.5.4\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz\",\n \"integrity\": \"sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@jridgewell/trace-mapping\": {\n \"version\": \"0.3.29\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz\",\n \"integrity\": \"sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/resolve-uri\": \"^3.1.0\",\n \"@jridgewell/sourcemap-codec\": \"^1.4.14\"\n }\n },\n \"node_modules/@rivetkit/actor\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/actor/-/actor-0.9.1.tgz\",\n \"integrity\": \"sha512-aVoWO81JrYql6hhXX+vRor0B+aeWrnh+9zkcrxbh0EXFBbS5XM8YE4sSFxNKmZThLbGNqfZ5enm1zuA92c7I1w==\",\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/core\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/core/-/core-0.9.1.tgz\",\n \"integrity\": \"sha512-0zYFKo08CQ72Rm6MaVKxcJSEEfn/ypGkkxTX06Q4meCGHuDJFbPA5wopa3NdxrKBPttcGg1QAmDd+1FZnlpubA==\",\n \"license\": \"Apache-2.0\",\n \"peer\": true,\n \"dependencies\": {\n \"cbor-x\": \"^1.6.0\",\n \"invariant\": \"^2.2.4\",\n \"on-change\": \"^5.0.1\",\n \"p-retry\": \"^6.2.1\",\n \"zod\": \"^3.25.67\"\n },\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"peerDependencies\": {\n \"@hono/node-server\": \"^1.14.0\",\n \"@hono/node-ws\": \"^1.1.1\",\n \"@hono/zod-openapi\": \"^0.19.6\",\n \"eventsource\": \"^3.0.5\",\n \"hono\": \"^4.7.0\",\n \"ws\": \"^8.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"@hono/node-server\": {\n \"optional\": true\n },\n \"@hono/node-ws\": {\n \"optional\": true\n },\n \"@hono/zod-openapi\": {\n \"optional\": true\n },\n \"eventsource\": {\n \"optional\": true\n },\n \"hono\": {\n \"optional\": true\n },\n \"ws\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@rivetkit/framework-base\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/framework-base/-/framework-base-0.9.1.tgz\",\n \"integrity\": \"sha512-FxhSqGAtDsD4k7gKS2EhJ5hHsEwI1+QR0vYThUBOLcmXM7zjMZndqIjVperQO4ck/zfjRqjm3lw7znkc+k0wNQ==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@tanstack/store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/react\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/react/-/react-0.9.1.tgz\",\n \"integrity\": \"sha512-0e0gNNj3qCrXHNIxE6ggEEX+E6HjdsSt9pJbWbaQQg+1bsywupRTSdgSDguDHjBvi9qhR9mh7UbNN3A9wYqXuA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@rivetkit/framework-base\": \"0.9.1\",\n \"@tanstack/react-store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\",\n \"react\": \"^18 || ^19\",\n \"react-dom\": \"^18 || ^19\"\n }\n },\n \"node_modules/@rolldown/pluginutils\": {\n \"version\": \"1.0.0-beta.19\",\n \"resolved\": \"https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz\",\n \"integrity\": \"sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@rollup/rollup-android-arm-eabi\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.0.tgz\",\n \"integrity\": \"sha512-2o/FgACbji4tW1dzXOqAV15Eu7DdgbKsF2QKcxfG4xbh5iwU7yr5RRP5/U+0asQliSYv5M4o7BevlGIoSL0LXg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-android-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-PSZ0SvMOjEAxwZeTx32eI/j5xSYtDCRxGu5k9zvzoY77xUNssZM+WV6HYBLROpY5CkXsbQjvz40fBb7WPwDqtQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-BA4yPIPssPB2aRAWzmqzQ3y2/KotkLyZukVB7j3psK/U3nVJdceo6qr9pLM2xN6iRP/wKfxEbOb1yrlZH6sYZg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-Pr2o0lvTwsiG4HCr43Zy9xXrHspyMvsvEw4FwKYqhli4FuLE5FjcZzuQ4cfPe0iUFCvSQG6lACI0xj74FDZKRA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-lYE8LkE5h4a/+6VnnLiL14zWMPnx6wNbDG23GcYFpRW1V9hYWHAw9lBZ6ZUIrOaoK7NliF1sdwYGiVmziUF4vA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-PVQWZK9sbzpvqC9Q0GlehNNSVHR+4m7+wET+7FgSnKG3ci5nAMgGmr9mGBXzAuE5SvguCKJ6mHL6vq1JaJ/gvw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-gnueabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-hLrmRl53prCcD+YXTfNvXd776HTxNh8wPAMllusQ+amcQmtgo3V5i/nkhPN6FakW+QVLoUUr2AsbtIRPFU3xIA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-musleabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-XBKGSYcrkdiRRjl+8XvrUR3AosXU0NvF7VuqMsm7s5nRy+nt58ZMB19Jdp1RdqewLcaYnpk8zeVs/4MlLZEJxw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-fRvZZPUiBz7NztBE/2QnCS5AtqLVhXmUOPj9IHlfGEXkapgImf4W9+FSkL8cWqoAjozyUzqFmSc4zh2ooaeF6g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-Btv2WRZOcUGi8XU80XwIvzTg4U6+l6D0V6sZTrZx214nrwxw5nAi8hysaXj/mctyClWgesyuxbeLylCBNauimg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loongarch64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-Li0emNnwtUZdLwHjQPBxn4VWztcrw/h7mgLyHiEI5Z0MhpeFGlzaiBHpSNVOMB/xucjXTTcO+dhv469Djr16KA==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-powerpc64le-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-sB8+pfkYx2kvpDCfd63d5ScYT0Fz1LO6jIb2zLZvmK9ob2D8DeVqrmBDE0iDK8KlBVmsTNzrjr3G1xV4eUZhSw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-5GQ6PFhh7E6jQm70p1aW05G2cap5zMOvO0se5JMecHeAdj5ZhWEHbJ4hiKpfi1nnnEdTauDXxPgXae/mqjow9w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-N/euLsBd1rekWcuduakTo/dJw6U6sBP3eUq+RXM9RNfPuWTvG2w/WObDkIvJ2KChy6oxZmOSC08Ak2OJA0UiAA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-s390x-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-2l9sA7d7QdikL0xQwNMO3xURBUNEWyHVHfAsHsUdq+E/pgLTUcCE+gih5PCdmyHmfTDeXUWVhqL0WZzg0nua3g==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-XZdD3fEEQcwG2KrJDdEQu7NrHonPxxaV0/w2HpvINBdcqebz1aL+0vM2WFJq4DeiAVT6F5SUQas65HY5JDqoPw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-7ayfgvtmmWgKWBkCGg5+xTQ0r5V1owVm67zTrsEY1008L5ro7mCyGYORomARt/OquB9KY7LpxVBZes+oSniAAQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-arm64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-B+IJgcBnE2bm93jEW5kHisqvPITs4ddLOROAcOc/diBgrEiQJJ6Qcjby75rFSmH5eMGrqJryUgJDhrfj942apQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-ia32-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-+CXwwG66g0/FpWOnP/v1HnrGVSOygK/osUbu3wPRy8ECXjoYKjRAyfxYpDQOfghC5qPJYLPH0oN4MCOjwgdMug==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@sinclair/typebox\": {\n \"version\": \"0.27.8\",\n \"resolved\": \"https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz\",\n \"integrity\": \"sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@tanstack/react-store\": {\n \"version\": \"0.7.3\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.7.3.tgz\",\n \"integrity\": \"sha512-3Dnqtbw9P2P0gw8uUM8WP2fFfg8XMDSZCTsywRPZe/XqqYW8PGkXKZTvP0AHkE4mpqP9Y43GpOg9vwO44azu6Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@tanstack/store\": \"0.7.2\",\n \"use-sync-external-store\": \"^1.5.0\"\n },\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\",\n \"react-dom\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/@tanstack/store\": {\n \"version\": \"0.7.2\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/store/-/store-0.7.2.tgz\",\n \"integrity\": \"sha512-RP80Z30BYiPX2Pyo0Nyw4s1SJFH2jyM6f9i3HfX4pA+gm5jsnYryscdq2aIQLnL4TaGuQMO+zXmN9nh1Qck+Pg==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n }\n },\n \"node_modules/@types/babel__core\": {\n \"version\": \"7.20.5\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz\",\n \"integrity\": \"sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.20.7\",\n \"@babel/types\": \"^7.20.7\",\n \"@types/babel__generator\": \"*\",\n \"@types/babel__template\": \"*\",\n \"@types/babel__traverse\": \"*\"\n }\n },\n \"node_modules/@types/babel__generator\": {\n \"version\": \"7.27.0\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz\",\n \"integrity\": \"sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__template\": {\n \"version\": \"7.4.4\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz\",\n \"integrity\": \"sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.1.0\",\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__traverse\": {\n \"version\": \"7.20.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz\",\n \"integrity\": \"sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.20.7\"\n }\n },\n \"node_modules/@types/estree\": {\n \"version\": \"1.0.8\",\n \"resolved\": \"https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz\",\n \"integrity\": \"sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/node\": {\n \"version\": \"20.19.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-20.19.7.tgz\",\n \"integrity\": \"sha512-1GM9z6BJOv86qkPvzh2i6VW5+VVrXxCLknfmTkWEqz+6DqosiY28XUWCTmBcJ0ACzKqx/iwdIREfo1fwExIlkA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"undici-types\": \"~6.21.0\"\n }\n },\n \"node_modules/@types/prop-types\": {\n \"version\": \"15.7.15\",\n \"resolved\": \"https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz\",\n \"integrity\": \"sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/react\": {\n \"version\": \"18.3.23\",\n \"resolved\": \"https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz\",\n \"integrity\": \"sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/prop-types\": \"*\",\n \"csstype\": \"^3.0.2\"\n }\n },\n \"node_modules/@types/react-dom\": {\n \"version\": \"18.3.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz\",\n \"integrity\": \"sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"@types/react\": \"^18.0.0\"\n }\n },\n \"node_modules/@types/retry\": {\n \"version\": \"0.12.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz\",\n \"integrity\": \"sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==\",\n \"license\": \"MIT\",\n \"peer\": true\n },\n \"node_modules/@vitejs/plugin-react\": {\n \"version\": \"4.6.0\",\n \"resolved\": \"https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz\",\n \"integrity\": \"sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/core\": \"^7.27.4\",\n \"@babel/plugin-transform-react-jsx-self\": \"^7.27.1\",\n \"@babel/plugin-transform-react-jsx-source\": \"^7.27.1\",\n \"@rolldown/pluginutils\": \"1.0.0-beta.19\",\n \"@types/babel__core\": \"^7.20.5\",\n \"react-refresh\": \"^0.17.0\"\n },\n \"engines\": {\n \"node\": \"^14.18.0 || >=16.0.0\"\n },\n \"peerDependencies\": {\n \"vite\": \"^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0\"\n }\n },\n \"node_modules/@vitest/expect\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/expect/-/expect-1.6.1.tgz\",\n \"integrity\": \"sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/spy\": \"1.6.1\",\n \"@vitest/utils\": \"1.6.1\",\n \"chai\": \"^4.3.10\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/runner\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/runner/-/runner-1.6.1.tgz\",\n \"integrity\": \"sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/utils\": \"1.6.1\",\n \"p-limit\": \"^5.0.0\",\n \"pathe\": \"^1.1.1\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/snapshot\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.1.tgz\",\n \"integrity\": \"sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"magic-string\": \"^0.30.5\",\n \"pathe\": \"^1.1.1\",\n \"pretty-format\": \"^29.7.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/spy\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/spy/-/spy-1.6.1.tgz\",\n \"integrity\": \"sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyspy\": \"^2.2.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/utils\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/utils/-/utils-1.6.1.tgz\",\n \"integrity\": \"sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"diff-sequences\": \"^29.6.3\",\n \"estree-walker\": \"^3.0.3\",\n \"loupe\": \"^2.3.7\",\n \"pretty-format\": \"^29.7.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/acorn\": {\n \"version\": \"8.15.0\",\n \"resolved\": \"https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz\",\n \"integrity\": \"sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"acorn\": \"bin/acorn\"\n },\n \"engines\": {\n \"node\": \">=0.4.0\"\n }\n },\n \"node_modules/acorn-walk\": {\n \"version\": \"8.3.4\",\n \"resolved\": \"https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz\",\n \"integrity\": \"sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"acorn\": \"^8.11.0\"\n },\n \"engines\": {\n \"node\": \">=0.4.0\"\n }\n },\n \"node_modules/ansi-regex\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",\n \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/ansi-styles\": {\n \"version\": \"4.3.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",\n \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-convert\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/assertion-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz\",\n \"integrity\": \"sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/browserslist\": {\n \"version\": \"4.25.1\",\n \"resolved\": \"https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz\",\n \"integrity\": \"sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"caniuse-lite\": \"^1.0.30001726\",\n \"electron-to-chromium\": \"^1.5.173\",\n \"node-releases\": \"^2.0.19\",\n \"update-browserslist-db\": \"^1.1.3\"\n },\n \"bin\": {\n \"browserslist\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7\"\n }\n },\n \"node_modules/cac\": {\n \"version\": \"6.7.14\",\n \"resolved\": \"https://registry.npmjs.org/cac/-/cac-6.7.14.tgz\",\n \"integrity\": \"sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/caniuse-lite\": {\n \"version\": \"1.0.30001727\",\n \"resolved\": \"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz\",\n \"integrity\": \"sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/caniuse-lite\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"CC-BY-4.0\"\n },\n \"node_modules/cbor-extract\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz\",\n \"integrity\": \"sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==\",\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"node-gyp-build-optional-packages\": \"5.1.1\"\n },\n \"bin\": {\n \"download-cbor-prebuilds\": \"bin/download-prebuilds.js\"\n },\n \"optionalDependencies\": {\n \"@cbor-extract/cbor-extract-darwin-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-darwin-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-win32-x64\": \"2.2.0\"\n }\n },\n \"node_modules/cbor-x\": {\n \"version\": \"1.6.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz\",\n \"integrity\": \"sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"optionalDependencies\": {\n \"cbor-extract\": \"^2.2.0\"\n }\n },\n \"node_modules/chai\": {\n \"version\": \"4.5.0\",\n \"resolved\": \"https://registry.npmjs.org/chai/-/chai-4.5.0.tgz\",\n \"integrity\": \"sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"assertion-error\": \"^1.1.0\",\n \"check-error\": \"^1.0.3\",\n \"deep-eql\": \"^4.1.3\",\n \"get-func-name\": \"^2.0.2\",\n \"loupe\": \"^2.3.6\",\n \"pathval\": \"^1.1.1\",\n \"type-detect\": \"^4.1.0\"\n },\n \"engines\": {\n \"node\": \">=4\"\n }\n },\n \"node_modules/chalk\": {\n \"version\": \"4.1.2\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",\n \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.1.0\",\n \"supports-color\": \"^7.1.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/chalk/node_modules/supports-color\": {\n \"version\": \"7.2.0\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",\n \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/check-error\": {\n \"version\": \"1.0.3\",\n \"resolved\": \"https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz\",\n \"integrity\": \"sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"get-func-name\": \"^2.0.2\"\n },\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/cliui\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz\",\n \"integrity\": \"sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"string-width\": \"^4.2.0\",\n \"strip-ansi\": \"^6.0.1\",\n \"wrap-ansi\": \"^7.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/color-convert\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",\n \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-name\": \"~1.1.4\"\n },\n \"engines\": {\n \"node\": \">=7.0.0\"\n }\n },\n \"node_modules/color-name\": {\n \"version\": \"1.1.4\",\n \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",\n \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/concurrently\": {\n \"version\": \"8.2.2\",\n \"resolved\": \"https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz\",\n \"integrity\": \"sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"chalk\": \"^4.1.2\",\n \"date-fns\": \"^2.30.0\",\n \"lodash\": \"^4.17.21\",\n \"rxjs\": \"^7.8.1\",\n \"shell-quote\": \"^1.8.1\",\n \"spawn-command\": \"0.0.2\",\n \"supports-color\": \"^8.1.1\",\n \"tree-kill\": \"^1.2.2\",\n \"yargs\": \"^17.7.2\"\n },\n \"bin\": {\n \"conc\": \"dist/bin/concurrently.js\",\n \"concurrently\": \"dist/bin/concurrently.js\"\n },\n \"engines\": {\n \"node\": \"^14.13.0 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/open-cli-tools/concurrently?sponsor=1\"\n }\n },\n \"node_modules/confbox\": {\n \"version\": \"0.1.8\",\n \"resolved\": \"https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz\",\n \"integrity\": \"sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/convert-source-map\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz\",\n \"integrity\": \"sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/cross-spawn\": {\n \"version\": \"7.0.6\",\n \"resolved\": \"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz\",\n \"integrity\": \"sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^3.1.0\",\n \"shebang-command\": \"^2.0.0\",\n \"which\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">= 8\"\n }\n },\n \"node_modules/csstype\": {\n \"version\": \"3.1.3\",\n \"resolved\": \"https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz\",\n \"integrity\": \"sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/date-fns\": {\n \"version\": \"2.30.0\",\n \"resolved\": \"https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz\",\n \"integrity\": \"sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/runtime\": \"^7.21.0\"\n },\n \"engines\": {\n \"node\": \">=0.11\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/date-fns\"\n }\n },\n \"node_modules/debug\": {\n \"version\": \"4.4.1\",\n \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.4.1.tgz\",\n \"integrity\": \"sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ms\": \"^2.1.3\"\n },\n \"engines\": {\n \"node\": \">=6.0\"\n },\n \"peerDependenciesMeta\": {\n \"supports-color\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/deep-eql\": {\n \"version\": \"4.1.4\",\n \"resolved\": \"https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz\",\n \"integrity\": \"sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"type-detect\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/detect-libc\": {\n \"version\": \"2.0.4\",\n \"resolved\": \"https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz\",\n \"integrity\": \"sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==\",\n \"license\": \"Apache-2.0\",\n \"optional\": true,\n \"peer\": true,\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/diff-sequences\": {\n \"version\": \"29.6.3\",\n \"resolved\": \"https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz\",\n \"integrity\": \"sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/electron-to-chromium\": {\n \"version\": \"1.5.183\",\n \"resolved\": \"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.183.tgz\",\n \"integrity\": \"sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/emoji-regex\": {\n \"version\": \"8.0.0\",\n \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",\n \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/esbuild\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.25.6.tgz\",\n \"integrity\": \"sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.25.6\",\n \"@esbuild/android-arm\": \"0.25.6\",\n \"@esbuild/android-arm64\": \"0.25.6\",\n \"@esbuild/android-x64\": \"0.25.6\",\n \"@esbuild/darwin-arm64\": \"0.25.6\",\n \"@esbuild/darwin-x64\": \"0.25.6\",\n \"@esbuild/freebsd-arm64\": \"0.25.6\",\n \"@esbuild/freebsd-x64\": \"0.25.6\",\n \"@esbuild/linux-arm\": \"0.25.6\",\n \"@esbuild/linux-arm64\": \"0.25.6\",\n \"@esbuild/linux-ia32\": \"0.25.6\",\n \"@esbuild/linux-loong64\": \"0.25.6\",\n \"@esbuild/linux-mips64el\": \"0.25.6\",\n \"@esbuild/linux-ppc64\": \"0.25.6\",\n \"@esbuild/linux-riscv64\": \"0.25.6\",\n \"@esbuild/linux-s390x\": \"0.25.6\",\n \"@esbuild/linux-x64\": \"0.25.6\",\n \"@esbuild/netbsd-arm64\": \"0.25.6\",\n \"@esbuild/netbsd-x64\": \"0.25.6\",\n \"@esbuild/openbsd-arm64\": \"0.25.6\",\n \"@esbuild/openbsd-x64\": \"0.25.6\",\n \"@esbuild/openharmony-arm64\": \"0.25.6\",\n \"@esbuild/sunos-x64\": \"0.25.6\",\n \"@esbuild/win32-arm64\": \"0.25.6\",\n \"@esbuild/win32-ia32\": \"0.25.6\",\n \"@esbuild/win32-x64\": \"0.25.6\"\n }\n },\n \"node_modules/escalade\": {\n \"version\": \"3.2.0\",\n \"resolved\": \"https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz\",\n \"integrity\": \"sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/estree-walker\": {\n \"version\": \"3.0.3\",\n \"resolved\": \"https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz\",\n \"integrity\": \"sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"^1.0.0\"\n }\n },\n \"node_modules/execa\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/execa/-/execa-8.0.1.tgz\",\n \"integrity\": \"sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cross-spawn\": \"^7.0.3\",\n \"get-stream\": \"^8.0.1\",\n \"human-signals\": \"^5.0.0\",\n \"is-stream\": \"^3.0.0\",\n \"merge-stream\": \"^2.0.0\",\n \"npm-run-path\": \"^5.1.0\",\n \"onetime\": \"^6.0.0\",\n \"signal-exit\": \"^4.1.0\",\n \"strip-final-newline\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/execa?sponsor=1\"\n }\n },\n \"node_modules/fsevents\": {\n \"version\": \"2.3.3\",\n \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz\",\n \"integrity\": \"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \"^8.16.0 || ^10.6.0 || >=11.0.0\"\n }\n },\n \"node_modules/gensync\": {\n \"version\": \"1.0.0-beta.2\",\n \"resolved\": \"https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz\",\n \"integrity\": \"sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/get-caller-file\": {\n \"version\": \"2.0.5\",\n \"resolved\": \"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz\",\n \"integrity\": \"sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \"6.* || 8.* || >= 10.*\"\n }\n },\n \"node_modules/get-func-name\": {\n \"version\": \"2.0.2\",\n \"resolved\": \"https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz\",\n \"integrity\": \"sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/get-stream\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz\",\n \"integrity\": \"sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/get-tsconfig\": {\n \"version\": \"4.10.1\",\n \"resolved\": \"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz\",\n \"integrity\": \"sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"resolve-pkg-maps\": \"^1.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/get-tsconfig?sponsor=1\"\n }\n },\n \"node_modules/has-flag\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",\n \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/human-signals\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz\",\n \"integrity\": \"sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=16.17.0\"\n }\n },\n \"node_modules/invariant\": {\n \"version\": \"2.2.4\",\n \"resolved\": \"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz\",\n \"integrity\": \"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"loose-envify\": \"^1.0.0\"\n }\n },\n \"node_modules/is-fullwidth-code-point\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",\n \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/is-network-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz\",\n \"integrity\": \"sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is-stream\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz\",\n \"integrity\": \"sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/isexe\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz\",\n \"integrity\": \"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/js-tokens\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz\",\n \"integrity\": \"sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==\",\n \"license\": \"MIT\"\n },\n \"node_modules/jsesc\": {\n \"version\": \"3.1.0\",\n \"resolved\": \"https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz\",\n \"integrity\": \"sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"jsesc\": \"bin/jsesc\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/json5\": {\n \"version\": \"2.2.3\",\n \"resolved\": \"https://registry.npmjs.org/json5/-/json5-2.2.3.tgz\",\n \"integrity\": \"sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"json5\": \"lib/cli.js\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/local-pkg\": {\n \"version\": \"0.5.1\",\n \"resolved\": \"https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz\",\n \"integrity\": \"sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"mlly\": \"^1.7.3\",\n \"pkg-types\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \">=14\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/lodash\": {\n \"version\": \"4.17.21\",\n \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",\n \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/loose-envify\": {\n \"version\": \"1.4.0\",\n \"resolved\": \"https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz\",\n \"integrity\": \"sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^3.0.0 || ^4.0.0\"\n },\n \"bin\": {\n \"loose-envify\": \"cli.js\"\n }\n },\n \"node_modules/loupe\": {\n \"version\": \"2.3.7\",\n \"resolved\": \"https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz\",\n \"integrity\": \"sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"get-func-name\": \"^2.0.1\"\n }\n },\n \"node_modules/lru-cache\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz\",\n \"integrity\": \"sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"yallist\": \"^3.0.2\"\n }\n },\n \"node_modules/magic-string\": {\n \"version\": \"0.30.17\",\n \"resolved\": \"https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz\",\n \"integrity\": \"sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\"\n }\n },\n \"node_modules/merge-stream\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz\",\n \"integrity\": \"sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/mimic-fn\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz\",\n \"integrity\": \"sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/mlly\": {\n \"version\": \"1.7.4\",\n \"resolved\": \"https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz\",\n \"integrity\": \"sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"acorn\": \"^8.14.0\",\n \"pathe\": \"^2.0.1\",\n \"pkg-types\": \"^1.3.0\",\n \"ufo\": \"^1.5.4\"\n }\n },\n \"node_modules/mlly/node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/ms\": {\n \"version\": \"2.1.3\",\n \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",\n \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/node-gyp-build-optional-packages\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz\",\n \"integrity\": \"sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==\",\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"detect-libc\": \"^2.0.1\"\n },\n \"bin\": {\n \"node-gyp-build-optional-packages\": \"bin.js\",\n \"node-gyp-build-optional-packages-optional\": \"optional.js\",\n \"node-gyp-build-optional-packages-test\": \"build-test.js\"\n }\n },\n \"node_modules/node-releases\": {\n \"version\": \"2.0.19\",\n \"resolved\": \"https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz\",\n \"integrity\": \"sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/npm-run-path\": {\n \"version\": \"5.3.0\",\n \"resolved\": \"https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz\",\n \"integrity\": \"sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/npm-run-path/node_modules/path-key\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz\",\n \"integrity\": \"sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/on-change\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/on-change/-/on-change-5.0.1.tgz\",\n \"integrity\": \"sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/on-change?sponsor=1\"\n }\n },\n \"node_modules/onetime\": {\n \"version\": \"6.0.0\",\n \"resolved\": \"https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz\",\n \"integrity\": \"sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"mimic-fn\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/p-limit\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz\",\n \"integrity\": \"sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"yocto-queue\": \"^1.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/p-retry\": {\n \"version\": \"6.2.1\",\n \"resolved\": \"https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz\",\n \"integrity\": \"sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"@types/retry\": \"0.12.2\",\n \"is-network-error\": \"^1.0.0\",\n \"retry\": \"^0.13.1\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/path-key\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz\",\n \"integrity\": \"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/pathe\": {\n \"version\": \"1.1.2\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz\",\n \"integrity\": \"sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/pathval\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz\",\n \"integrity\": \"sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/picocolors\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz\",\n \"integrity\": \"sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/pkg-types\": {\n \"version\": \"1.3.1\",\n \"resolved\": \"https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz\",\n \"integrity\": \"sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"confbox\": \"^0.1.8\",\n \"mlly\": \"^1.7.4\",\n \"pathe\": \"^2.0.1\"\n }\n },\n \"node_modules/pkg-types/node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/postcss\": {\n \"version\": \"8.5.6\",\n \"resolved\": \"https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz\",\n \"integrity\": \"sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/postcss/\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/postcss\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"nanoid\": \"^3.3.11\",\n \"picocolors\": \"^1.1.1\",\n \"source-map-js\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || >=14\"\n }\n },\n \"node_modules/pretty-format\": {\n \"version\": \"29.7.0\",\n \"resolved\": \"https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz\",\n \"integrity\": \"sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jest/schemas\": \"^29.6.3\",\n \"ansi-styles\": \"^5.0.0\",\n \"react-is\": \"^18.0.0\"\n },\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/pretty-format/node_modules/ansi-styles\": {\n \"version\": \"5.2.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz\",\n \"integrity\": \"sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/react\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react/-/react-18.3.1.tgz\",\n \"integrity\": \"sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n },\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/react-dom\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz\",\n \"integrity\": \"sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\",\n \"scheduler\": \"^0.23.2\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.3.1\"\n }\n },\n \"node_modules/react-is\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz\",\n \"integrity\": \"sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/react-refresh\": {\n \"version\": \"0.17.0\",\n \"resolved\": \"https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz\",\n \"integrity\": \"sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/require-directory\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz\",\n \"integrity\": \"sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/resolve-pkg-maps\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz\",\n \"integrity\": \"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/resolve-pkg-maps?sponsor=1\"\n }\n },\n \"node_modules/retry\": {\n \"version\": \"0.13.1\",\n \"resolved\": \"https://registry.npmjs.org/retry/-/retry-0.13.1.tgz\",\n \"integrity\": \"sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">= 4\"\n }\n },\n \"node_modules/rollup\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/rollup/-/rollup-4.45.0.tgz\",\n \"integrity\": \"sha512-WLjEcJRIo7i3WDDgOIJqVI2d+lAC3EwvOGy+Xfq6hs+GQuAA4Di/H72xmXkOhrIWFg2PFYSKZYfH0f4vfKXN4A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"1.0.8\"\n },\n \"bin\": {\n \"rollup\": \"dist/bin/rollup\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"optionalDependencies\": {\n \"@rollup/rollup-android-arm-eabi\": \"4.45.0\",\n \"@rollup/rollup-android-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-x64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-arm64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-x64\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-gnueabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-musleabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-loongarch64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-powerpc64le-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-s390x-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-musl\": \"4.45.0\",\n \"@rollup/rollup-win32-arm64-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-ia32-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-x64-msvc\": \"4.45.0\",\n \"fsevents\": \"~2.3.2\"\n }\n },\n \"node_modules/rxjs\": {\n \"version\": \"7.8.2\",\n \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz\",\n \"integrity\": \"sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"tslib\": \"^2.1.0\"\n }\n },\n \"node_modules/scheduler\": {\n \"version\": \"0.23.2\",\n \"resolved\": \"https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz\",\n \"integrity\": \"sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n }\n },\n \"node_modules/semver\": {\n \"version\": \"6.3.1\",\n \"resolved\": \"https://registry.npmjs.org/semver/-/semver-6.3.1.tgz\",\n \"integrity\": \"sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"bin\": {\n \"semver\": \"bin/semver.js\"\n }\n },\n \"node_modules/shebang-command\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz\",\n \"integrity\": \"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"shebang-regex\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/shebang-regex\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz\",\n \"integrity\": \"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/shell-quote\": {\n \"version\": \"1.8.3\",\n \"resolved\": \"https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz\",\n \"integrity\": \"sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 0.4\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/ljharb\"\n }\n },\n \"node_modules/siginfo\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz\",\n \"integrity\": \"sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/signal-exit\": {\n \"version\": \"4.1.0\",\n \"resolved\": \"https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz\",\n \"integrity\": \"sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=14\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/isaacs\"\n }\n },\n \"node_modules/source-map-js\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz\",\n \"integrity\": \"sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/spawn-command\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz\",\n \"integrity\": \"sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==\",\n \"dev\": true\n },\n \"node_modules/stackback\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz\",\n \"integrity\": \"sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/std-env\": {\n \"version\": \"3.9.0\",\n \"resolved\": \"https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz\",\n \"integrity\": \"sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/string-width\": {\n \"version\": \"4.2.3\",\n \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",\n \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"emoji-regex\": \"^8.0.0\",\n \"is-fullwidth-code-point\": \"^3.0.0\",\n \"strip-ansi\": \"^6.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-ansi\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",\n \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-regex\": \"^5.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-final-newline\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz\",\n \"integrity\": \"sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/strip-literal\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.1.tgz\",\n \"integrity\": \"sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^9.0.1\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/strip-literal/node_modules/js-tokens\": {\n \"version\": \"9.0.1\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz\",\n \"integrity\": \"sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/supports-color\": {\n \"version\": \"8.1.1\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",\n \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/supports-color?sponsor=1\"\n }\n },\n \"node_modules/tinybench\": {\n \"version\": \"2.9.0\",\n \"resolved\": \"https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz\",\n \"integrity\": \"sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinypool\": {\n \"version\": \"0.8.4\",\n \"resolved\": \"https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz\",\n \"integrity\": \"sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tinyspy\": {\n \"version\": \"2.2.1\",\n \"resolved\": \"https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz\",\n \"integrity\": \"sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tree-kill\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz\",\n \"integrity\": \"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"tree-kill\": \"cli.js\"\n }\n },\n \"node_modules/tslib\": {\n \"version\": \"2.8.1\",\n \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz\",\n \"integrity\": \"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==\",\n \"dev\": true,\n \"license\": \"0BSD\"\n },\n \"node_modules/tsx\": {\n \"version\": \"4.20.3\",\n \"resolved\": \"https://registry.npmjs.org/tsx/-/tsx-4.20.3.tgz\",\n \"integrity\": \"sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"~0.25.0\",\n \"get-tsconfig\": \"^4.7.5\"\n },\n \"bin\": {\n \"tsx\": \"dist/cli.mjs\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n }\n },\n \"node_modules/type-detect\": {\n \"version\": \"4.1.0\",\n \"resolved\": \"https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz\",\n \"integrity\": \"sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=4\"\n }\n },\n \"node_modules/typescript\": {\n \"version\": \"5.8.3\",\n \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz\",\n \"integrity\": \"sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"bin\": {\n \"tsc\": \"bin/tsc\",\n \"tsserver\": \"bin/tsserver\"\n },\n \"engines\": {\n \"node\": \">=14.17\"\n }\n },\n \"node_modules/ufo\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz\",\n \"integrity\": \"sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/undici-types\": {\n \"version\": \"6.21.0\",\n \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/update-browserslist-db\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz\",\n \"integrity\": \"sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"escalade\": \"^3.2.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"bin\": {\n \"update-browserslist-db\": \"cli.js\"\n },\n \"peerDependencies\": {\n \"browserslist\": \">= 4.21.0\"\n }\n },\n \"node_modules/use-sync-external-store\": {\n \"version\": \"1.5.0\",\n \"resolved\": \"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz\",\n \"integrity\": \"sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==\",\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/vite\": {\n \"version\": \"5.4.19\",\n \"resolved\": \"https://registry.npmjs.org/vite/-/vite-5.4.19.tgz\",\n \"integrity\": \"sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"^0.21.3\",\n \"postcss\": \"^8.4.43\",\n \"rollup\": \"^4.20.0\"\n },\n \"bin\": {\n \"vite\": \"bin/vite.js\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/vitejs/vite?sponsor=1\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n },\n \"peerDependencies\": {\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"less\": \"*\",\n \"lightningcss\": \"^1.21.0\",\n \"sass\": \"*\",\n \"sass-embedded\": \"*\",\n \"stylus\": \"*\",\n \"sugarss\": \"*\",\n \"terser\": \"^5.4.0\"\n },\n \"peerDependenciesMeta\": {\n \"@types/node\": {\n \"optional\": true\n },\n \"less\": {\n \"optional\": true\n },\n \"lightningcss\": {\n \"optional\": true\n },\n \"sass\": {\n \"optional\": true\n },\n \"sass-embedded\": {\n \"optional\": true\n },\n \"stylus\": {\n \"optional\": true\n },\n \"sugarss\": {\n \"optional\": true\n },\n \"terser\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/vite-node\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/vite-node/-/vite-node-1.6.1.tgz\",\n \"integrity\": \"sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cac\": \"^6.7.14\",\n \"debug\": \"^4.3.4\",\n \"pathe\": \"^1.1.1\",\n \"picocolors\": \"^1.0.0\",\n \"vite\": \"^5.0.0\"\n },\n \"bin\": {\n \"vite-node\": \"vite-node.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz\",\n \"integrity\": \"sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz\",\n \"integrity\": \"sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz\",\n \"integrity\": \"sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz\",\n \"integrity\": \"sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/esbuild\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz\",\n \"integrity\": \"sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.21.5\",\n \"@esbuild/android-arm\": \"0.21.5\",\n \"@esbuild/android-arm64\": \"0.21.5\",\n \"@esbuild/android-x64\": \"0.21.5\",\n \"@esbuild/darwin-arm64\": \"0.21.5\",\n \"@esbuild/darwin-x64\": \"0.21.5\",\n \"@esbuild/freebsd-arm64\": \"0.21.5\",\n \"@esbuild/freebsd-x64\": \"0.21.5\",\n \"@esbuild/linux-arm\": \"0.21.5\",\n \"@esbuild/linux-arm64\": \"0.21.5\",\n \"@esbuild/linux-ia32\": \"0.21.5\",\n \"@esbuild/linux-loong64\": \"0.21.5\",\n \"@esbuild/linux-mips64el\": \"0.21.5\",\n \"@esbuild/linux-ppc64\": \"0.21.5\",\n \"@esbuild/linux-riscv64\": \"0.21.5\",\n \"@esbuild/linux-s390x\": \"0.21.5\",\n \"@esbuild/linux-x64\": \"0.21.5\",\n \"@esbuild/netbsd-x64\": \"0.21.5\",\n \"@esbuild/openbsd-x64\": \"0.21.5\",\n \"@esbuild/sunos-x64\": \"0.21.5\",\n \"@esbuild/win32-arm64\": \"0.21.5\",\n \"@esbuild/win32-ia32\": \"0.21.5\",\n \"@esbuild/win32-x64\": \"0.21.5\"\n }\n },\n \"node_modules/vitest\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/vitest/-/vitest-1.6.1.tgz\",\n \"integrity\": \"sha512-Ljb1cnSJSivGN0LqXd/zmDbWEM0RNNg2t1QW/XUhYl/qPqyu7CsqeWtqQXHVaJsecLPuDoak2oJcZN2QoRIOag==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/expect\": \"1.6.1\",\n \"@vitest/runner\": \"1.6.1\",\n \"@vitest/snapshot\": \"1.6.1\",\n \"@vitest/spy\": \"1.6.1\",\n \"@vitest/utils\": \"1.6.1\",\n \"acorn-walk\": \"^8.3.2\",\n \"chai\": \"^4.3.10\",\n \"debug\": \"^4.3.4\",\n \"execa\": \"^8.0.1\",\n \"local-pkg\": \"^0.5.0\",\n \"magic-string\": \"^0.30.5\",\n \"pathe\": \"^1.1.1\",\n \"picocolors\": \"^1.0.0\",\n \"std-env\": \"^3.5.0\",\n \"strip-literal\": \"^2.0.0\",\n \"tinybench\": \"^2.5.1\",\n \"tinypool\": \"^0.8.3\",\n \"vite\": \"^5.0.0\",\n \"vite-node\": \"1.6.1\",\n \"why-is-node-running\": \"^2.2.2\"\n },\n \"bin\": {\n \"vitest\": \"vitest.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"@edge-runtime/vm\": \"*\",\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"@vitest/browser\": \"1.6.1\",\n \"@vitest/ui\": \"1.6.1\",\n \"happy-dom\": \"*\",\n \"jsdom\": \"*\"\n },\n \"peerDependenciesMeta\": {\n \"@edge-runtime/vm\": {\n \"optional\": true\n },\n \"@types/node\": {\n \"optional\": true\n },\n \"@vitest/browser\": {\n \"optional\": true\n },\n \"@vitest/ui\": {\n \"optional\": true\n },\n \"happy-dom\": {\n \"optional\": true\n },\n \"jsdom\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/which\": {\n \"version\": \"2.0.2\",\n \"resolved\": \"https://registry.npmjs.org/which/-/which-2.0.2.tgz\",\n \"integrity\": \"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"isexe\": \"^2.0.0\"\n },\n \"bin\": {\n \"node-which\": \"bin/node-which\"\n },\n \"engines\": {\n \"node\": \">= 8\"\n }\n },\n \"node_modules/why-is-node-running\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz\",\n \"integrity\": \"sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"siginfo\": \"^2.0.0\",\n \"stackback\": \"0.0.2\"\n },\n \"bin\": {\n \"why-is-node-running\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/wrap-ansi\": {\n \"version\": \"7.0.0\",\n \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",\n \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.0.0\",\n \"string-width\": \"^4.1.0\",\n \"strip-ansi\": \"^6.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/wrap-ansi?sponsor=1\"\n }\n },\n \"node_modules/y18n\": {\n \"version\": \"5.0.8\",\n \"resolved\": \"https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz\",\n \"integrity\": \"sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/yallist\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz\",\n \"integrity\": \"sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/yargs\": {\n \"version\": \"17.7.2\",\n \"resolved\": \"https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz\",\n \"integrity\": \"sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cliui\": \"^8.0.1\",\n \"escalade\": \"^3.1.1\",\n \"get-caller-file\": \"^2.0.5\",\n \"require-directory\": \"^2.1.1\",\n \"string-width\": \"^4.2.3\",\n \"y18n\": \"^5.0.5\",\n \"yargs-parser\": \"^21.1.1\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yargs-parser\": {\n \"version\": \"21.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz\",\n \"integrity\": \"sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yocto-queue\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz\",\n \"integrity\": \"sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12.20\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/zod\": {\n \"version\": \"3.25.76\",\n \"resolved\": \"https://registry.npmjs.org/zod/-/zod-3.25.76.tgz\",\n \"integrity\": \"sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"funding\": {\n \"url\": \"https://github.com/sponsors/colinhacks\"\n }\n }\n }\n}\n",
- "package.json": "{\n \"name\": \"example-sync\",\n \"version\": \"1.0.0\",\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"concurrently \\\"tsx --watch src/backend/server.ts\\\" \\\"vite\\\"\",\n \"build\": \"vite build\",\n \"preview\": \"vite preview\",\n \"check-types\": \"tsc --noEmit\",\n \"test\": \"vitest\"\n },\n \"dependencies\": {\n \"@rivetkit/actor\": \"^0.9.1\",\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^20.0.0\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.0.0\",\n \"concurrently\": \"^8.2.0\",\n \"tsx\": \"^4.0.0\",\n \"typescript\": \"^5.0.0\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^1.0.0\"\n }\n}\n",
+ "package-lock.json": "{\n \"name\": \"example-sync\",\n \"version\": \"1.0.0\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n \"name\": \"example-sync\",\n \"version\": \"1.0.0\",\n \"dependencies\": {\n \"rivetkit\": \"^0.9.1\",\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^20.0.0\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.0.0\",\n \"concurrently\": \"^8.2.0\",\n \"tsx\": \"^4.0.0\",\n \"typescript\": \"^5.0.0\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^1.0.0\"\n }\n },\n \"node_modules/@ampproject/remapping\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz\",\n \"integrity\": \"sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@jridgewell/gen-mapping\": \"^0.3.5\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/code-frame\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz\",\n \"integrity\": \"sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"js-tokens\": \"^4.0.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/compat-data\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz\",\n \"integrity\": \"sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/core\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz\",\n \"integrity\": \"sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@ampproject/remapping\": \"^2.2.0\",\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-compilation-targets\": \"^7.27.2\",\n \"@babel/helper-module-transforms\": \"^7.27.3\",\n \"@babel/helpers\": \"^7.27.6\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/traverse\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"convert-source-map\": \"^2.0.0\",\n \"debug\": \"^4.1.0\",\n \"gensync\": \"^1.0.0-beta.2\",\n \"json5\": \"^2.2.3\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/babel\"\n }\n },\n \"node_modules/@babel/generator\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz\",\n \"integrity\": \"sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"@jridgewell/gen-mapping\": \"^0.3.12\",\n \"@jridgewell/trace-mapping\": \"^0.3.28\",\n \"jsesc\": \"^3.0.2\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-compilation-targets\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz\",\n \"integrity\": \"sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/compat-data\": \"^7.27.2\",\n \"@babel/helper-validator-option\": \"^7.27.1\",\n \"browserslist\": \"^4.24.0\",\n \"lru-cache\": \"^5.1.1\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-globals\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz\",\n \"integrity\": \"sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-imports\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz\",\n \"integrity\": \"sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/traverse\": \"^7.27.1\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-transforms\": {\n \"version\": \"7.27.3\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz\",\n \"integrity\": \"sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-module-imports\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"@babel/traverse\": \"^7.27.3\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0\"\n }\n },\n \"node_modules/@babel/helper-plugin-utils\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz\",\n \"integrity\": \"sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-string-parser\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz\",\n \"integrity\": \"sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-identifier\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz\",\n \"integrity\": \"sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-option\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz\",\n \"integrity\": \"sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helpers\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz\",\n \"integrity\": \"sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.6\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/parser\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz\",\n \"integrity\": \"sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.28.0\"\n },\n \"bin\": {\n \"parser\": \"bin/babel-parser.js\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-self\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz\",\n \"integrity\": \"sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-source\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz\",\n \"integrity\": \"sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/runtime\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz\",\n \"integrity\": \"sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/template\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz\",\n \"integrity\": \"sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/parser\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/traverse\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz\",\n \"integrity\": \"sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-globals\": \"^7.28.0\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.28.0\",\n \"debug\": \"^4.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/types\": {\n \"version\": \"7.28.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz\",\n \"integrity\": \"sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-string-parser\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz\",\n \"integrity\": \"sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==\",\n \"cpu\": [\n \"arm\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-win32-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"peer\": true\n },\n \"node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.6.tgz\",\n \"integrity\": \"sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-arm\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.6.tgz\",\n \"integrity\": \"sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.6.tgz\",\n \"integrity\": \"sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.6.tgz\",\n \"integrity\": \"sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.6.tgz\",\n \"integrity\": \"sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.6.tgz\",\n \"integrity\": \"sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.6.tgz\",\n \"integrity\": \"sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.6.tgz\",\n \"integrity\": \"sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.6.tgz\",\n \"integrity\": \"sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/netbsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openbsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openharmony-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openharmony\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.6.tgz\",\n \"integrity\": \"sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@jest/schemas\": {\n \"version\": \"29.6.3\",\n \"resolved\": \"https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz\",\n \"integrity\": \"sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@sinclair/typebox\": \"^0.27.8\"\n },\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/@jridgewell/gen-mapping\": {\n \"version\": \"0.3.12\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz\",\n \"integrity\": \"sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n }\n },\n \"node_modules/@jridgewell/resolve-uri\": {\n \"version\": \"3.1.2\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz\",\n \"integrity\": \"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@jridgewell/sourcemap-codec\": {\n \"version\": \"1.5.4\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz\",\n \"integrity\": \"sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@jridgewell/trace-mapping\": {\n \"version\": \"0.3.29\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz\",\n \"integrity\": \"sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/resolve-uri\": \"^3.1.0\",\n \"@jridgewell/sourcemap-codec\": \"^1.4.14\"\n }\n },\n \"node_modules/rivetkit\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/rivetkit/-/actor-0.9.1.tgz\",\n \"integrity\": \"sha512-aVoWO81JrYql6hhXX+vRor0B+aeWrnh+9zkcrxbh0EXFBbS5XM8YE4sSFxNKmZThLbGNqfZ5enm1zuA92c7I1w==\",\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/core\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/core/-/core-0.9.1.tgz\",\n \"integrity\": \"sha512-0zYFKo08CQ72Rm6MaVKxcJSEEfn/ypGkkxTX06Q4meCGHuDJFbPA5wopa3NdxrKBPttcGg1QAmDd+1FZnlpubA==\",\n \"license\": \"Apache-2.0\",\n \"peer\": true,\n \"dependencies\": {\n \"cbor-x\": \"^1.6.0\",\n \"invariant\": \"^2.2.4\",\n \"on-change\": \"^5.0.1\",\n \"p-retry\": \"^6.2.1\",\n \"zod\": \"^3.25.67\"\n },\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"peerDependencies\": {\n \"@hono/node-server\": \"^1.14.0\",\n \"@hono/node-ws\": \"^1.1.1\",\n \"@hono/zod-openapi\": \"^0.19.6\",\n \"eventsource\": \"^3.0.5\",\n \"hono\": \"^4.7.0\",\n \"ws\": \"^8.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"@hono/node-server\": {\n \"optional\": true\n },\n \"@hono/node-ws\": {\n \"optional\": true\n },\n \"@hono/zod-openapi\": {\n \"optional\": true\n },\n \"eventsource\": {\n \"optional\": true\n },\n \"hono\": {\n \"optional\": true\n },\n \"ws\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@rivetkit/framework-base\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/framework-base/-/framework-base-0.9.1.tgz\",\n \"integrity\": \"sha512-FxhSqGAtDsD4k7gKS2EhJ5hHsEwI1+QR0vYThUBOLcmXM7zjMZndqIjVperQO4ck/zfjRqjm3lw7znkc+k0wNQ==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@tanstack/store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/react\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/react/-/react-0.9.1.tgz\",\n \"integrity\": \"sha512-0e0gNNj3qCrXHNIxE6ggEEX+E6HjdsSt9pJbWbaQQg+1bsywupRTSdgSDguDHjBvi9qhR9mh7UbNN3A9wYqXuA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@rivetkit/framework-base\": \"0.9.1\",\n \"@tanstack/react-store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\",\n \"react\": \"^18 || ^19\",\n \"react-dom\": \"^18 || ^19\"\n }\n },\n \"node_modules/@rolldown/pluginutils\": {\n \"version\": \"1.0.0-beta.19\",\n \"resolved\": \"https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz\",\n \"integrity\": \"sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@rollup/rollup-android-arm-eabi\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.0.tgz\",\n \"integrity\": \"sha512-2o/FgACbji4tW1dzXOqAV15Eu7DdgbKsF2QKcxfG4xbh5iwU7yr5RRP5/U+0asQliSYv5M4o7BevlGIoSL0LXg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-android-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-PSZ0SvMOjEAxwZeTx32eI/j5xSYtDCRxGu5k9zvzoY77xUNssZM+WV6HYBLROpY5CkXsbQjvz40fBb7WPwDqtQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-BA4yPIPssPB2aRAWzmqzQ3y2/KotkLyZukVB7j3psK/U3nVJdceo6qr9pLM2xN6iRP/wKfxEbOb1yrlZH6sYZg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-Pr2o0lvTwsiG4HCr43Zy9xXrHspyMvsvEw4FwKYqhli4FuLE5FjcZzuQ4cfPe0iUFCvSQG6lACI0xj74FDZKRA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-lYE8LkE5h4a/+6VnnLiL14zWMPnx6wNbDG23GcYFpRW1V9hYWHAw9lBZ6ZUIrOaoK7NliF1sdwYGiVmziUF4vA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-PVQWZK9sbzpvqC9Q0GlehNNSVHR+4m7+wET+7FgSnKG3ci5nAMgGmr9mGBXzAuE5SvguCKJ6mHL6vq1JaJ/gvw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-gnueabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-hLrmRl53prCcD+YXTfNvXd776HTxNh8wPAMllusQ+amcQmtgo3V5i/nkhPN6FakW+QVLoUUr2AsbtIRPFU3xIA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-musleabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-XBKGSYcrkdiRRjl+8XvrUR3AosXU0NvF7VuqMsm7s5nRy+nt58ZMB19Jdp1RdqewLcaYnpk8zeVs/4MlLZEJxw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-fRvZZPUiBz7NztBE/2QnCS5AtqLVhXmUOPj9IHlfGEXkapgImf4W9+FSkL8cWqoAjozyUzqFmSc4zh2ooaeF6g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-Btv2WRZOcUGi8XU80XwIvzTg4U6+l6D0V6sZTrZx214nrwxw5nAi8hysaXj/mctyClWgesyuxbeLylCBNauimg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loongarch64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-Li0emNnwtUZdLwHjQPBxn4VWztcrw/h7mgLyHiEI5Z0MhpeFGlzaiBHpSNVOMB/xucjXTTcO+dhv469Djr16KA==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-powerpc64le-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-sB8+pfkYx2kvpDCfd63d5ScYT0Fz1LO6jIb2zLZvmK9ob2D8DeVqrmBDE0iDK8KlBVmsTNzrjr3G1xV4eUZhSw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-5GQ6PFhh7E6jQm70p1aW05G2cap5zMOvO0se5JMecHeAdj5ZhWEHbJ4hiKpfi1nnnEdTauDXxPgXae/mqjow9w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-N/euLsBd1rekWcuduakTo/dJw6U6sBP3eUq+RXM9RNfPuWTvG2w/WObDkIvJ2KChy6oxZmOSC08Ak2OJA0UiAA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-s390x-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-2l9sA7d7QdikL0xQwNMO3xURBUNEWyHVHfAsHsUdq+E/pgLTUcCE+gih5PCdmyHmfTDeXUWVhqL0WZzg0nua3g==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-XZdD3fEEQcwG2KrJDdEQu7NrHonPxxaV0/w2HpvINBdcqebz1aL+0vM2WFJq4DeiAVT6F5SUQas65HY5JDqoPw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-7ayfgvtmmWgKWBkCGg5+xTQ0r5V1owVm67zTrsEY1008L5ro7mCyGYORomARt/OquB9KY7LpxVBZes+oSniAAQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-arm64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-B+IJgcBnE2bm93jEW5kHisqvPITs4ddLOROAcOc/diBgrEiQJJ6Qcjby75rFSmH5eMGrqJryUgJDhrfj942apQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-ia32-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-+CXwwG66g0/FpWOnP/v1HnrGVSOygK/osUbu3wPRy8ECXjoYKjRAyfxYpDQOfghC5qPJYLPH0oN4MCOjwgdMug==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@sinclair/typebox\": {\n \"version\": \"0.27.8\",\n \"resolved\": \"https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz\",\n \"integrity\": \"sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@tanstack/react-store\": {\n \"version\": \"0.7.3\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.7.3.tgz\",\n \"integrity\": \"sha512-3Dnqtbw9P2P0gw8uUM8WP2fFfg8XMDSZCTsywRPZe/XqqYW8PGkXKZTvP0AHkE4mpqP9Y43GpOg9vwO44azu6Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@tanstack/store\": \"0.7.2\",\n \"use-sync-external-store\": \"^1.5.0\"\n },\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\",\n \"react-dom\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/@tanstack/store\": {\n \"version\": \"0.7.2\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/store/-/store-0.7.2.tgz\",\n \"integrity\": \"sha512-RP80Z30BYiPX2Pyo0Nyw4s1SJFH2jyM6f9i3HfX4pA+gm5jsnYryscdq2aIQLnL4TaGuQMO+zXmN9nh1Qck+Pg==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n }\n },\n \"node_modules/@types/babel__core\": {\n \"version\": \"7.20.5\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz\",\n \"integrity\": \"sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.20.7\",\n \"@babel/types\": \"^7.20.7\",\n \"@types/babel__generator\": \"*\",\n \"@types/babel__template\": \"*\",\n \"@types/babel__traverse\": \"*\"\n }\n },\n \"node_modules/@types/babel__generator\": {\n \"version\": \"7.27.0\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz\",\n \"integrity\": \"sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__template\": {\n \"version\": \"7.4.4\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz\",\n \"integrity\": \"sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.1.0\",\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__traverse\": {\n \"version\": \"7.20.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz\",\n \"integrity\": \"sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.20.7\"\n }\n },\n \"node_modules/@types/estree\": {\n \"version\": \"1.0.8\",\n \"resolved\": \"https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz\",\n \"integrity\": \"sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/node\": {\n \"version\": \"20.19.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-20.19.7.tgz\",\n \"integrity\": \"sha512-1GM9z6BJOv86qkPvzh2i6VW5+VVrXxCLknfmTkWEqz+6DqosiY28XUWCTmBcJ0ACzKqx/iwdIREfo1fwExIlkA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"undici-types\": \"~6.21.0\"\n }\n },\n \"node_modules/@types/prop-types\": {\n \"version\": \"15.7.15\",\n \"resolved\": \"https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz\",\n \"integrity\": \"sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/react\": {\n \"version\": \"18.3.23\",\n \"resolved\": \"https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz\",\n \"integrity\": \"sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/prop-types\": \"*\",\n \"csstype\": \"^3.0.2\"\n }\n },\n \"node_modules/@types/react-dom\": {\n \"version\": \"18.3.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz\",\n \"integrity\": \"sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"@types/react\": \"^18.0.0\"\n }\n },\n \"node_modules/@types/retry\": {\n \"version\": \"0.12.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz\",\n \"integrity\": \"sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==\",\n \"license\": \"MIT\",\n \"peer\": true\n },\n \"node_modules/@vitejs/plugin-react\": {\n \"version\": \"4.6.0\",\n \"resolved\": \"https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz\",\n \"integrity\": \"sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/core\": \"^7.27.4\",\n \"@babel/plugin-transform-react-jsx-self\": \"^7.27.1\",\n \"@babel/plugin-transform-react-jsx-source\": \"^7.27.1\",\n \"@rolldown/pluginutils\": \"1.0.0-beta.19\",\n \"@types/babel__core\": \"^7.20.5\",\n \"react-refresh\": \"^0.17.0\"\n },\n \"engines\": {\n \"node\": \"^14.18.0 || >=16.0.0\"\n },\n \"peerDependencies\": {\n \"vite\": \"^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0\"\n }\n },\n \"node_modules/@vitest/expect\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/expect/-/expect-1.6.1.tgz\",\n \"integrity\": \"sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/spy\": \"1.6.1\",\n \"@vitest/utils\": \"1.6.1\",\n \"chai\": \"^4.3.10\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/runner\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/runner/-/runner-1.6.1.tgz\",\n \"integrity\": \"sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/utils\": \"1.6.1\",\n \"p-limit\": \"^5.0.0\",\n \"pathe\": \"^1.1.1\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/snapshot\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.1.tgz\",\n \"integrity\": \"sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"magic-string\": \"^0.30.5\",\n \"pathe\": \"^1.1.1\",\n \"pretty-format\": \"^29.7.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/spy\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/spy/-/spy-1.6.1.tgz\",\n \"integrity\": \"sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyspy\": \"^2.2.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/utils\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/utils/-/utils-1.6.1.tgz\",\n \"integrity\": \"sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"diff-sequences\": \"^29.6.3\",\n \"estree-walker\": \"^3.0.3\",\n \"loupe\": \"^2.3.7\",\n \"pretty-format\": \"^29.7.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/acorn\": {\n \"version\": \"8.15.0\",\n \"resolved\": \"https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz\",\n \"integrity\": \"sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"acorn\": \"bin/acorn\"\n },\n \"engines\": {\n \"node\": \">=0.4.0\"\n }\n },\n \"node_modules/acorn-walk\": {\n \"version\": \"8.3.4\",\n \"resolved\": \"https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz\",\n \"integrity\": \"sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"acorn\": \"^8.11.0\"\n },\n \"engines\": {\n \"node\": \">=0.4.0\"\n }\n },\n \"node_modules/ansi-regex\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",\n \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/ansi-styles\": {\n \"version\": \"4.3.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",\n \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-convert\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/assertion-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz\",\n \"integrity\": \"sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/browserslist\": {\n \"version\": \"4.25.1\",\n \"resolved\": \"https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz\",\n \"integrity\": \"sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"caniuse-lite\": \"^1.0.30001726\",\n \"electron-to-chromium\": \"^1.5.173\",\n \"node-releases\": \"^2.0.19\",\n \"update-browserslist-db\": \"^1.1.3\"\n },\n \"bin\": {\n \"browserslist\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7\"\n }\n },\n \"node_modules/cac\": {\n \"version\": \"6.7.14\",\n \"resolved\": \"https://registry.npmjs.org/cac/-/cac-6.7.14.tgz\",\n \"integrity\": \"sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/caniuse-lite\": {\n \"version\": \"1.0.30001727\",\n \"resolved\": \"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz\",\n \"integrity\": \"sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/caniuse-lite\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"CC-BY-4.0\"\n },\n \"node_modules/cbor-extract\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz\",\n \"integrity\": \"sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==\",\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"node-gyp-build-optional-packages\": \"5.1.1\"\n },\n \"bin\": {\n \"download-cbor-prebuilds\": \"bin/download-prebuilds.js\"\n },\n \"optionalDependencies\": {\n \"@cbor-extract/cbor-extract-darwin-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-darwin-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-win32-x64\": \"2.2.0\"\n }\n },\n \"node_modules/cbor-x\": {\n \"version\": \"1.6.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz\",\n \"integrity\": \"sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"optionalDependencies\": {\n \"cbor-extract\": \"^2.2.0\"\n }\n },\n \"node_modules/chai\": {\n \"version\": \"4.5.0\",\n \"resolved\": \"https://registry.npmjs.org/chai/-/chai-4.5.0.tgz\",\n \"integrity\": \"sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"assertion-error\": \"^1.1.0\",\n \"check-error\": \"^1.0.3\",\n \"deep-eql\": \"^4.1.3\",\n \"get-func-name\": \"^2.0.2\",\n \"loupe\": \"^2.3.6\",\n \"pathval\": \"^1.1.1\",\n \"type-detect\": \"^4.1.0\"\n },\n \"engines\": {\n \"node\": \">=4\"\n }\n },\n \"node_modules/chalk\": {\n \"version\": \"4.1.2\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",\n \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.1.0\",\n \"supports-color\": \"^7.1.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/chalk/node_modules/supports-color\": {\n \"version\": \"7.2.0\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",\n \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/check-error\": {\n \"version\": \"1.0.3\",\n \"resolved\": \"https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz\",\n \"integrity\": \"sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"get-func-name\": \"^2.0.2\"\n },\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/cliui\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz\",\n \"integrity\": \"sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"string-width\": \"^4.2.0\",\n \"strip-ansi\": \"^6.0.1\",\n \"wrap-ansi\": \"^7.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/color-convert\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",\n \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-name\": \"~1.1.4\"\n },\n \"engines\": {\n \"node\": \">=7.0.0\"\n }\n },\n \"node_modules/color-name\": {\n \"version\": \"1.1.4\",\n \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",\n \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/concurrently\": {\n \"version\": \"8.2.2\",\n \"resolved\": \"https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz\",\n \"integrity\": \"sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"chalk\": \"^4.1.2\",\n \"date-fns\": \"^2.30.0\",\n \"lodash\": \"^4.17.21\",\n \"rxjs\": \"^7.8.1\",\n \"shell-quote\": \"^1.8.1\",\n \"spawn-command\": \"0.0.2\",\n \"supports-color\": \"^8.1.1\",\n \"tree-kill\": \"^1.2.2\",\n \"yargs\": \"^17.7.2\"\n },\n \"bin\": {\n \"conc\": \"dist/bin/concurrently.js\",\n \"concurrently\": \"dist/bin/concurrently.js\"\n },\n \"engines\": {\n \"node\": \"^14.13.0 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/open-cli-tools/concurrently?sponsor=1\"\n }\n },\n \"node_modules/confbox\": {\n \"version\": \"0.1.8\",\n \"resolved\": \"https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz\",\n \"integrity\": \"sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/convert-source-map\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz\",\n \"integrity\": \"sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/cross-spawn\": {\n \"version\": \"7.0.6\",\n \"resolved\": \"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz\",\n \"integrity\": \"sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^3.1.0\",\n \"shebang-command\": \"^2.0.0\",\n \"which\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">= 8\"\n }\n },\n \"node_modules/csstype\": {\n \"version\": \"3.1.3\",\n \"resolved\": \"https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz\",\n \"integrity\": \"sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/date-fns\": {\n \"version\": \"2.30.0\",\n \"resolved\": \"https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz\",\n \"integrity\": \"sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/runtime\": \"^7.21.0\"\n },\n \"engines\": {\n \"node\": \">=0.11\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/date-fns\"\n }\n },\n \"node_modules/debug\": {\n \"version\": \"4.4.1\",\n \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.4.1.tgz\",\n \"integrity\": \"sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ms\": \"^2.1.3\"\n },\n \"engines\": {\n \"node\": \">=6.0\"\n },\n \"peerDependenciesMeta\": {\n \"supports-color\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/deep-eql\": {\n \"version\": \"4.1.4\",\n \"resolved\": \"https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz\",\n \"integrity\": \"sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"type-detect\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/detect-libc\": {\n \"version\": \"2.0.4\",\n \"resolved\": \"https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz\",\n \"integrity\": \"sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==\",\n \"license\": \"Apache-2.0\",\n \"optional\": true,\n \"peer\": true,\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/diff-sequences\": {\n \"version\": \"29.6.3\",\n \"resolved\": \"https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz\",\n \"integrity\": \"sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/electron-to-chromium\": {\n \"version\": \"1.5.183\",\n \"resolved\": \"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.183.tgz\",\n \"integrity\": \"sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/emoji-regex\": {\n \"version\": \"8.0.0\",\n \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",\n \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/esbuild\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.25.6.tgz\",\n \"integrity\": \"sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.25.6\",\n \"@esbuild/android-arm\": \"0.25.6\",\n \"@esbuild/android-arm64\": \"0.25.6\",\n \"@esbuild/android-x64\": \"0.25.6\",\n \"@esbuild/darwin-arm64\": \"0.25.6\",\n \"@esbuild/darwin-x64\": \"0.25.6\",\n \"@esbuild/freebsd-arm64\": \"0.25.6\",\n \"@esbuild/freebsd-x64\": \"0.25.6\",\n \"@esbuild/linux-arm\": \"0.25.6\",\n \"@esbuild/linux-arm64\": \"0.25.6\",\n \"@esbuild/linux-ia32\": \"0.25.6\",\n \"@esbuild/linux-loong64\": \"0.25.6\",\n \"@esbuild/linux-mips64el\": \"0.25.6\",\n \"@esbuild/linux-ppc64\": \"0.25.6\",\n \"@esbuild/linux-riscv64\": \"0.25.6\",\n \"@esbuild/linux-s390x\": \"0.25.6\",\n \"@esbuild/linux-x64\": \"0.25.6\",\n \"@esbuild/netbsd-arm64\": \"0.25.6\",\n \"@esbuild/netbsd-x64\": \"0.25.6\",\n \"@esbuild/openbsd-arm64\": \"0.25.6\",\n \"@esbuild/openbsd-x64\": \"0.25.6\",\n \"@esbuild/openharmony-arm64\": \"0.25.6\",\n \"@esbuild/sunos-x64\": \"0.25.6\",\n \"@esbuild/win32-arm64\": \"0.25.6\",\n \"@esbuild/win32-ia32\": \"0.25.6\",\n \"@esbuild/win32-x64\": \"0.25.6\"\n }\n },\n \"node_modules/escalade\": {\n \"version\": \"3.2.0\",\n \"resolved\": \"https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz\",\n \"integrity\": \"sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/estree-walker\": {\n \"version\": \"3.0.3\",\n \"resolved\": \"https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz\",\n \"integrity\": \"sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"^1.0.0\"\n }\n },\n \"node_modules/execa\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/execa/-/execa-8.0.1.tgz\",\n \"integrity\": \"sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cross-spawn\": \"^7.0.3\",\n \"get-stream\": \"^8.0.1\",\n \"human-signals\": \"^5.0.0\",\n \"is-stream\": \"^3.0.0\",\n \"merge-stream\": \"^2.0.0\",\n \"npm-run-path\": \"^5.1.0\",\n \"onetime\": \"^6.0.0\",\n \"signal-exit\": \"^4.1.0\",\n \"strip-final-newline\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/execa?sponsor=1\"\n }\n },\n \"node_modules/fsevents\": {\n \"version\": \"2.3.3\",\n \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz\",\n \"integrity\": \"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \"^8.16.0 || ^10.6.0 || >=11.0.0\"\n }\n },\n \"node_modules/gensync\": {\n \"version\": \"1.0.0-beta.2\",\n \"resolved\": \"https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz\",\n \"integrity\": \"sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/get-caller-file\": {\n \"version\": \"2.0.5\",\n \"resolved\": \"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz\",\n \"integrity\": \"sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \"6.* || 8.* || >= 10.*\"\n }\n },\n \"node_modules/get-func-name\": {\n \"version\": \"2.0.2\",\n \"resolved\": \"https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz\",\n \"integrity\": \"sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/get-stream\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz\",\n \"integrity\": \"sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/get-tsconfig\": {\n \"version\": \"4.10.1\",\n \"resolved\": \"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz\",\n \"integrity\": \"sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"resolve-pkg-maps\": \"^1.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/get-tsconfig?sponsor=1\"\n }\n },\n \"node_modules/has-flag\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",\n \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/human-signals\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz\",\n \"integrity\": \"sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=16.17.0\"\n }\n },\n \"node_modules/invariant\": {\n \"version\": \"2.2.4\",\n \"resolved\": \"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz\",\n \"integrity\": \"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"loose-envify\": \"^1.0.0\"\n }\n },\n \"node_modules/is-fullwidth-code-point\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",\n \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/is-network-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz\",\n \"integrity\": \"sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is-stream\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz\",\n \"integrity\": \"sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/isexe\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz\",\n \"integrity\": \"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/js-tokens\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz\",\n \"integrity\": \"sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==\",\n \"license\": \"MIT\"\n },\n \"node_modules/jsesc\": {\n \"version\": \"3.1.0\",\n \"resolved\": \"https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz\",\n \"integrity\": \"sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"jsesc\": \"bin/jsesc\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/json5\": {\n \"version\": \"2.2.3\",\n \"resolved\": \"https://registry.npmjs.org/json5/-/json5-2.2.3.tgz\",\n \"integrity\": \"sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"json5\": \"lib/cli.js\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/local-pkg\": {\n \"version\": \"0.5.1\",\n \"resolved\": \"https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz\",\n \"integrity\": \"sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"mlly\": \"^1.7.3\",\n \"pkg-types\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \">=14\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/lodash\": {\n \"version\": \"4.17.21\",\n \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",\n \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/loose-envify\": {\n \"version\": \"1.4.0\",\n \"resolved\": \"https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz\",\n \"integrity\": \"sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^3.0.0 || ^4.0.0\"\n },\n \"bin\": {\n \"loose-envify\": \"cli.js\"\n }\n },\n \"node_modules/loupe\": {\n \"version\": \"2.3.7\",\n \"resolved\": \"https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz\",\n \"integrity\": \"sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"get-func-name\": \"^2.0.1\"\n }\n },\n \"node_modules/lru-cache\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz\",\n \"integrity\": \"sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"yallist\": \"^3.0.2\"\n }\n },\n \"node_modules/magic-string\": {\n \"version\": \"0.30.17\",\n \"resolved\": \"https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz\",\n \"integrity\": \"sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\"\n }\n },\n \"node_modules/merge-stream\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz\",\n \"integrity\": \"sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/mimic-fn\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz\",\n \"integrity\": \"sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/mlly\": {\n \"version\": \"1.7.4\",\n \"resolved\": \"https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz\",\n \"integrity\": \"sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"acorn\": \"^8.14.0\",\n \"pathe\": \"^2.0.1\",\n \"pkg-types\": \"^1.3.0\",\n \"ufo\": \"^1.5.4\"\n }\n },\n \"node_modules/mlly/node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/ms\": {\n \"version\": \"2.1.3\",\n \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",\n \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/node-gyp-build-optional-packages\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz\",\n \"integrity\": \"sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==\",\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"detect-libc\": \"^2.0.1\"\n },\n \"bin\": {\n \"node-gyp-build-optional-packages\": \"bin.js\",\n \"node-gyp-build-optional-packages-optional\": \"optional.js\",\n \"node-gyp-build-optional-packages-test\": \"build-test.js\"\n }\n },\n \"node_modules/node-releases\": {\n \"version\": \"2.0.19\",\n \"resolved\": \"https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz\",\n \"integrity\": \"sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/npm-run-path\": {\n \"version\": \"5.3.0\",\n \"resolved\": \"https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz\",\n \"integrity\": \"sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/npm-run-path/node_modules/path-key\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz\",\n \"integrity\": \"sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/on-change\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/on-change/-/on-change-5.0.1.tgz\",\n \"integrity\": \"sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/on-change?sponsor=1\"\n }\n },\n \"node_modules/onetime\": {\n \"version\": \"6.0.0\",\n \"resolved\": \"https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz\",\n \"integrity\": \"sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"mimic-fn\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/p-limit\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz\",\n \"integrity\": \"sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"yocto-queue\": \"^1.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/p-retry\": {\n \"version\": \"6.2.1\",\n \"resolved\": \"https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz\",\n \"integrity\": \"sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"@types/retry\": \"0.12.2\",\n \"is-network-error\": \"^1.0.0\",\n \"retry\": \"^0.13.1\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/path-key\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz\",\n \"integrity\": \"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/pathe\": {\n \"version\": \"1.1.2\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz\",\n \"integrity\": \"sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/pathval\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz\",\n \"integrity\": \"sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/picocolors\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz\",\n \"integrity\": \"sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/pkg-types\": {\n \"version\": \"1.3.1\",\n \"resolved\": \"https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz\",\n \"integrity\": \"sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"confbox\": \"^0.1.8\",\n \"mlly\": \"^1.7.4\",\n \"pathe\": \"^2.0.1\"\n }\n },\n \"node_modules/pkg-types/node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/postcss\": {\n \"version\": \"8.5.6\",\n \"resolved\": \"https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz\",\n \"integrity\": \"sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/postcss/\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/postcss\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"nanoid\": \"^3.3.11\",\n \"picocolors\": \"^1.1.1\",\n \"source-map-js\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || >=14\"\n }\n },\n \"node_modules/pretty-format\": {\n \"version\": \"29.7.0\",\n \"resolved\": \"https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz\",\n \"integrity\": \"sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jest/schemas\": \"^29.6.3\",\n \"ansi-styles\": \"^5.0.0\",\n \"react-is\": \"^18.0.0\"\n },\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/pretty-format/node_modules/ansi-styles\": {\n \"version\": \"5.2.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz\",\n \"integrity\": \"sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/react\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react/-/react-18.3.1.tgz\",\n \"integrity\": \"sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n },\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/react-dom\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz\",\n \"integrity\": \"sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\",\n \"scheduler\": \"^0.23.2\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.3.1\"\n }\n },\n \"node_modules/react-is\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz\",\n \"integrity\": \"sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/react-refresh\": {\n \"version\": \"0.17.0\",\n \"resolved\": \"https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz\",\n \"integrity\": \"sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/require-directory\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz\",\n \"integrity\": \"sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/resolve-pkg-maps\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz\",\n \"integrity\": \"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/resolve-pkg-maps?sponsor=1\"\n }\n },\n \"node_modules/retry\": {\n \"version\": \"0.13.1\",\n \"resolved\": \"https://registry.npmjs.org/retry/-/retry-0.13.1.tgz\",\n \"integrity\": \"sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">= 4\"\n }\n },\n \"node_modules/rollup\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/rollup/-/rollup-4.45.0.tgz\",\n \"integrity\": \"sha512-WLjEcJRIo7i3WDDgOIJqVI2d+lAC3EwvOGy+Xfq6hs+GQuAA4Di/H72xmXkOhrIWFg2PFYSKZYfH0f4vfKXN4A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"1.0.8\"\n },\n \"bin\": {\n \"rollup\": \"dist/bin/rollup\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"optionalDependencies\": {\n \"@rollup/rollup-android-arm-eabi\": \"4.45.0\",\n \"@rollup/rollup-android-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-x64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-arm64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-x64\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-gnueabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-musleabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-loongarch64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-powerpc64le-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-s390x-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-musl\": \"4.45.0\",\n \"@rollup/rollup-win32-arm64-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-ia32-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-x64-msvc\": \"4.45.0\",\n \"fsevents\": \"~2.3.2\"\n }\n },\n \"node_modules/rxjs\": {\n \"version\": \"7.8.2\",\n \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz\",\n \"integrity\": \"sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"tslib\": \"^2.1.0\"\n }\n },\n \"node_modules/scheduler\": {\n \"version\": \"0.23.2\",\n \"resolved\": \"https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz\",\n \"integrity\": \"sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n }\n },\n \"node_modules/semver\": {\n \"version\": \"6.3.1\",\n \"resolved\": \"https://registry.npmjs.org/semver/-/semver-6.3.1.tgz\",\n \"integrity\": \"sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"bin\": {\n \"semver\": \"bin/semver.js\"\n }\n },\n \"node_modules/shebang-command\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz\",\n \"integrity\": \"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"shebang-regex\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/shebang-regex\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz\",\n \"integrity\": \"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/shell-quote\": {\n \"version\": \"1.8.3\",\n \"resolved\": \"https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz\",\n \"integrity\": \"sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 0.4\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/ljharb\"\n }\n },\n \"node_modules/siginfo\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz\",\n \"integrity\": \"sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/signal-exit\": {\n \"version\": \"4.1.0\",\n \"resolved\": \"https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz\",\n \"integrity\": \"sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=14\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/isaacs\"\n }\n },\n \"node_modules/source-map-js\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz\",\n \"integrity\": \"sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/spawn-command\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz\",\n \"integrity\": \"sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==\",\n \"dev\": true\n },\n \"node_modules/stackback\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz\",\n \"integrity\": \"sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/std-env\": {\n \"version\": \"3.9.0\",\n \"resolved\": \"https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz\",\n \"integrity\": \"sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/string-width\": {\n \"version\": \"4.2.3\",\n \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",\n \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"emoji-regex\": \"^8.0.0\",\n \"is-fullwidth-code-point\": \"^3.0.0\",\n \"strip-ansi\": \"^6.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-ansi\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",\n \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-regex\": \"^5.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-final-newline\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz\",\n \"integrity\": \"sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/strip-literal\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.1.tgz\",\n \"integrity\": \"sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^9.0.1\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/strip-literal/node_modules/js-tokens\": {\n \"version\": \"9.0.1\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz\",\n \"integrity\": \"sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/supports-color\": {\n \"version\": \"8.1.1\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",\n \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/supports-color?sponsor=1\"\n }\n },\n \"node_modules/tinybench\": {\n \"version\": \"2.9.0\",\n \"resolved\": \"https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz\",\n \"integrity\": \"sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinypool\": {\n \"version\": \"0.8.4\",\n \"resolved\": \"https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz\",\n \"integrity\": \"sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tinyspy\": {\n \"version\": \"2.2.1\",\n \"resolved\": \"https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz\",\n \"integrity\": \"sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tree-kill\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz\",\n \"integrity\": \"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"tree-kill\": \"cli.js\"\n }\n },\n \"node_modules/tslib\": {\n \"version\": \"2.8.1\",\n \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz\",\n \"integrity\": \"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==\",\n \"dev\": true,\n \"license\": \"0BSD\"\n },\n \"node_modules/tsx\": {\n \"version\": \"4.20.3\",\n \"resolved\": \"https://registry.npmjs.org/tsx/-/tsx-4.20.3.tgz\",\n \"integrity\": \"sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"~0.25.0\",\n \"get-tsconfig\": \"^4.7.5\"\n },\n \"bin\": {\n \"tsx\": \"dist/cli.mjs\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n }\n },\n \"node_modules/type-detect\": {\n \"version\": \"4.1.0\",\n \"resolved\": \"https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz\",\n \"integrity\": \"sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=4\"\n }\n },\n \"node_modules/typescript\": {\n \"version\": \"5.8.3\",\n \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz\",\n \"integrity\": \"sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"bin\": {\n \"tsc\": \"bin/tsc\",\n \"tsserver\": \"bin/tsserver\"\n },\n \"engines\": {\n \"node\": \">=14.17\"\n }\n },\n \"node_modules/ufo\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz\",\n \"integrity\": \"sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/undici-types\": {\n \"version\": \"6.21.0\",\n \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/update-browserslist-db\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz\",\n \"integrity\": \"sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"escalade\": \"^3.2.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"bin\": {\n \"update-browserslist-db\": \"cli.js\"\n },\n \"peerDependencies\": {\n \"browserslist\": \">= 4.21.0\"\n }\n },\n \"node_modules/use-sync-external-store\": {\n \"version\": \"1.5.0\",\n \"resolved\": \"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz\",\n \"integrity\": \"sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==\",\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/vite\": {\n \"version\": \"5.4.19\",\n \"resolved\": \"https://registry.npmjs.org/vite/-/vite-5.4.19.tgz\",\n \"integrity\": \"sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"^0.21.3\",\n \"postcss\": \"^8.4.43\",\n \"rollup\": \"^4.20.0\"\n },\n \"bin\": {\n \"vite\": \"bin/vite.js\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/vitejs/vite?sponsor=1\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n },\n \"peerDependencies\": {\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"less\": \"*\",\n \"lightningcss\": \"^1.21.0\",\n \"sass\": \"*\",\n \"sass-embedded\": \"*\",\n \"stylus\": \"*\",\n \"sugarss\": \"*\",\n \"terser\": \"^5.4.0\"\n },\n \"peerDependenciesMeta\": {\n \"@types/node\": {\n \"optional\": true\n },\n \"less\": {\n \"optional\": true\n },\n \"lightningcss\": {\n \"optional\": true\n },\n \"sass\": {\n \"optional\": true\n },\n \"sass-embedded\": {\n \"optional\": true\n },\n \"stylus\": {\n \"optional\": true\n },\n \"sugarss\": {\n \"optional\": true\n },\n \"terser\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/vite-node\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/vite-node/-/vite-node-1.6.1.tgz\",\n \"integrity\": \"sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cac\": \"^6.7.14\",\n \"debug\": \"^4.3.4\",\n \"pathe\": \"^1.1.1\",\n \"picocolors\": \"^1.0.0\",\n \"vite\": \"^5.0.0\"\n },\n \"bin\": {\n \"vite-node\": \"vite-node.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz\",\n \"integrity\": \"sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz\",\n \"integrity\": \"sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz\",\n \"integrity\": \"sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz\",\n \"integrity\": \"sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/esbuild\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz\",\n \"integrity\": \"sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.21.5\",\n \"@esbuild/android-arm\": \"0.21.5\",\n \"@esbuild/android-arm64\": \"0.21.5\",\n \"@esbuild/android-x64\": \"0.21.5\",\n \"@esbuild/darwin-arm64\": \"0.21.5\",\n \"@esbuild/darwin-x64\": \"0.21.5\",\n \"@esbuild/freebsd-arm64\": \"0.21.5\",\n \"@esbuild/freebsd-x64\": \"0.21.5\",\n \"@esbuild/linux-arm\": \"0.21.5\",\n \"@esbuild/linux-arm64\": \"0.21.5\",\n \"@esbuild/linux-ia32\": \"0.21.5\",\n \"@esbuild/linux-loong64\": \"0.21.5\",\n \"@esbuild/linux-mips64el\": \"0.21.5\",\n \"@esbuild/linux-ppc64\": \"0.21.5\",\n \"@esbuild/linux-riscv64\": \"0.21.5\",\n \"@esbuild/linux-s390x\": \"0.21.5\",\n \"@esbuild/linux-x64\": \"0.21.5\",\n \"@esbuild/netbsd-x64\": \"0.21.5\",\n \"@esbuild/openbsd-x64\": \"0.21.5\",\n \"@esbuild/sunos-x64\": \"0.21.5\",\n \"@esbuild/win32-arm64\": \"0.21.5\",\n \"@esbuild/win32-ia32\": \"0.21.5\",\n \"@esbuild/win32-x64\": \"0.21.5\"\n }\n },\n \"node_modules/vitest\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/vitest/-/vitest-1.6.1.tgz\",\n \"integrity\": \"sha512-Ljb1cnSJSivGN0LqXd/zmDbWEM0RNNg2t1QW/XUhYl/qPqyu7CsqeWtqQXHVaJsecLPuDoak2oJcZN2QoRIOag==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/expect\": \"1.6.1\",\n \"@vitest/runner\": \"1.6.1\",\n \"@vitest/snapshot\": \"1.6.1\",\n \"@vitest/spy\": \"1.6.1\",\n \"@vitest/utils\": \"1.6.1\",\n \"acorn-walk\": \"^8.3.2\",\n \"chai\": \"^4.3.10\",\n \"debug\": \"^4.3.4\",\n \"execa\": \"^8.0.1\",\n \"local-pkg\": \"^0.5.0\",\n \"magic-string\": \"^0.30.5\",\n \"pathe\": \"^1.1.1\",\n \"picocolors\": \"^1.0.0\",\n \"std-env\": \"^3.5.0\",\n \"strip-literal\": \"^2.0.0\",\n \"tinybench\": \"^2.5.1\",\n \"tinypool\": \"^0.8.3\",\n \"vite\": \"^5.0.0\",\n \"vite-node\": \"1.6.1\",\n \"why-is-node-running\": \"^2.2.2\"\n },\n \"bin\": {\n \"vitest\": \"vitest.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"@edge-runtime/vm\": \"*\",\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"@vitest/browser\": \"1.6.1\",\n \"@vitest/ui\": \"1.6.1\",\n \"happy-dom\": \"*\",\n \"jsdom\": \"*\"\n },\n \"peerDependenciesMeta\": {\n \"@edge-runtime/vm\": {\n \"optional\": true\n },\n \"@types/node\": {\n \"optional\": true\n },\n \"@vitest/browser\": {\n \"optional\": true\n },\n \"@vitest/ui\": {\n \"optional\": true\n },\n \"happy-dom\": {\n \"optional\": true\n },\n \"jsdom\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/which\": {\n \"version\": \"2.0.2\",\n \"resolved\": \"https://registry.npmjs.org/which/-/which-2.0.2.tgz\",\n \"integrity\": \"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"isexe\": \"^2.0.0\"\n },\n \"bin\": {\n \"node-which\": \"bin/node-which\"\n },\n \"engines\": {\n \"node\": \">= 8\"\n }\n },\n \"node_modules/why-is-node-running\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz\",\n \"integrity\": \"sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"siginfo\": \"^2.0.0\",\n \"stackback\": \"0.0.2\"\n },\n \"bin\": {\n \"why-is-node-running\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/wrap-ansi\": {\n \"version\": \"7.0.0\",\n \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",\n \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.0.0\",\n \"string-width\": \"^4.1.0\",\n \"strip-ansi\": \"^6.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/wrap-ansi?sponsor=1\"\n }\n },\n \"node_modules/y18n\": {\n \"version\": \"5.0.8\",\n \"resolved\": \"https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz\",\n \"integrity\": \"sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/yallist\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz\",\n \"integrity\": \"sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/yargs\": {\n \"version\": \"17.7.2\",\n \"resolved\": \"https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz\",\n \"integrity\": \"sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cliui\": \"^8.0.1\",\n \"escalade\": \"^3.1.1\",\n \"get-caller-file\": \"^2.0.5\",\n \"require-directory\": \"^2.1.1\",\n \"string-width\": \"^4.2.3\",\n \"y18n\": \"^5.0.5\",\n \"yargs-parser\": \"^21.1.1\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yargs-parser\": {\n \"version\": \"21.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz\",\n \"integrity\": \"sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yocto-queue\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz\",\n \"integrity\": \"sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12.20\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/zod\": {\n \"version\": \"3.25.76\",\n \"resolved\": \"https://registry.npmjs.org/zod/-/zod-3.25.76.tgz\",\n \"integrity\": \"sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"funding\": {\n \"url\": \"https://github.com/sponsors/colinhacks\"\n }\n }\n }\n}\n",
+ "package.json": "{\n \"name\": \"example-sync\",\n \"version\": \"1.0.0\",\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"concurrently \\\"tsx --watch src/backend/server.ts\\\" \\\"vite\\\"\",\n \"build\": \"vite build\",\n \"preview\": \"vite preview\",\n \"check-types\": \"tsc --noEmit\",\n \"test\": \"vitest\"\n },\n \"dependencies\": {\n \"rivetkit\": \"^0.9.1\",\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^20.0.0\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.0.0\",\n \"concurrently\": \"^8.2.0\",\n \"tsx\": \"^4.0.0\",\n \"typescript\": \"^5.0.0\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^1.0.0\"\n }\n}\n",
"tsconfig.json": "{\n \"compilerOptions\": {\n \"target\": \"ES2020\",\n \"lib\": [\"ES2020\", \"DOM\", \"DOM.Iterable\"],\n \"module\": \"ESNext\",\n \"skipLibCheck\": true,\n \"moduleResolution\": \"bundler\",\n \"allowImportingTsExtensions\": true,\n \"resolveJsonModule\": true,\n \"isolatedModules\": true,\n \"noEmit\": true,\n \"jsx\": \"react-jsx\",\n \"strict\": true,\n \"noUnusedLocals\": true,\n \"noUnusedParameters\": true,\n \"noFallthroughCasesInSwitch\": true\n },\n \"include\": [\"src\", \"tests\"],\n \"exclude\": [\"node_modules\", \"dist\"]\n}\n",
"vite.config.ts": "import react from \"@vitejs/plugin-react\";\nimport { defineConfig } from \"vite\";\n\nexport default defineConfig({\n\tplugins: [react()],\n\troot: \"src/frontend\",\n\tserver: {\n\t\tport: 3000,\n\t},\n\tbuild: {\n\t\toutDir: \"../../dist\",\n\t\temptyOutDir: true,\n\t},\n});\n",
"vitest.config.ts": "import { defineConfig } from \"vitest/config\";\n\nexport default defineConfig({\n\ttest: {\n\t\tenvironment: \"node\",\n\t},\n});\n",
"src/frontend/App.tsx": "import { createClient, createRivetKit } from \"@rivetkit/react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport type { Contact, registry } from \"../backend/registry\";\n\nconst client = createClient(\"http://localhost:8080\");\nconst { useActor } = createRivetKit(client);\n\nexport function App() {\n\tconst [contacts, setContacts] = useState([]);\n\tconst [name, setName] = useState(\"\");\n\tconst [email, setEmail] = useState(\"\");\n\tconst [phone, setPhone] = useState(\"\");\n\tconst [syncStatus, setSyncStatus] = useState<\"Idle\" | \"Syncing\" | \"Synced\" | \"Offline\">(\"Idle\");\n\tconst [stats, setStats] = useState({ totalContacts: 0, lastSyncTime: 0, deletedContacts: 0 });\n\n\tconst lastSyncTime = useRef(0);\n\tconst syncIntervalRef = useRef(null);\n\n\tconst contactsActor = useActor({\n\t\tname: \"contacts\",\n\t\tkey: [\"global\"],\n\t});\n\n\t// Load initial contacts and stats\n\tuseEffect(() => {\n\t\tif (!contactsActor.connection) return;\n\n\t\tconst loadInitialData = async () => {\n\t\t\ttry {\n\t\t\t\tconst data = await contactsActor.connection!.getChanges(0);\n\t\t\t\tsetContacts(data.changes);\n\t\t\t\tlastSyncTime.current = data.timestamp;\n\t\t\t\tsetSyncStatus(\"Synced\");\n\n\t\t\t\tconst statsData = await contactsActor.connection!.getSyncStats();\n\t\t\t\tsetStats(statsData);\n\t\t\t} catch (error) {\n\t\t\t\tsetSyncStatus(\"Offline\");\n\t\t\t}\n\t\t};\n\n\t\tloadInitialData();\n\t}, [contactsActor.connection]);\n\n\t// Handle contact events from other clients\n\tcontactsActor.useEvent(\"contactsChanged\", ({ contacts: updatedContacts }: { contacts: Contact[] }) => {\n\t\tsetContacts((prev) => {\n\t\t\tconst contactMap = new Map(prev.map((c) => [c.id, c]));\n\n\t\t\tupdatedContacts.forEach((contact) => {\n\t\t\t\tconst existing = contactMap.get(contact.id);\n\t\t\t\tif (!existing || existing.updatedAt < contact.updatedAt) {\n\t\t\t\t\tcontactMap.set(contact.id, contact);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn Array.from(contactMap.values()).filter(c => c.name !== \"\");\n\t\t});\n\n\t\t// Update stats when contacts change\n\t\tif (contactsActor.connection) {\n\t\t\tcontactsActor.connection.getSyncStats().then(setStats);\n\t\t}\n\t});\n\n\t// Periodic sync - every 5 seconds\n\tuseEffect(() => {\n\t\tif (!contactsActor.connection) return;\n\n\t\tconst sync = async () => {\n\t\t\tsetSyncStatus(\"Syncing\");\n\n\t\t\ttry {\n\t\t\t\t// Get remote changes\n\t\t\t\tconst changes = await contactsActor.connection!.getChanges(lastSyncTime.current);\n\n\t\t\t\t// Apply remote changes\n\t\t\t\tif (changes.changes.length > 0) {\n\t\t\t\t\tsetContacts((prev) => {\n\t\t\t\t\t\tconst contactMap = new Map(prev.map((c) => [c.id, c]));\n\n\t\t\t\t\t\tchanges.changes.forEach((contact) => {\n\t\t\t\t\t\t\tconst existing = contactMap.get(contact.id);\n\t\t\t\t\t\t\tif (!existing || existing.updatedAt < contact.updatedAt) {\n\t\t\t\t\t\t\t\tcontactMap.set(contact.id, contact);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn Array.from(contactMap.values()).filter(c => c.name !== \"\");\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Push local changes\n\t\t\t\tconst localChanges = contacts.filter(\n\t\t\t\t\t(c) => c.updatedAt > lastSyncTime.current,\n\t\t\t\t);\n\t\t\t\tif (localChanges.length > 0) {\n\t\t\t\t\tawait contactsActor.connection!.pushChanges(localChanges);\n\t\t\t\t}\n\n\t\t\t\tlastSyncTime.current = changes.timestamp;\n\t\t\t\tsetSyncStatus(\"Synced\");\n\n\t\t\t\t// Update stats\n\t\t\t\tconst statsData = await contactsActor.connection!.getSyncStats();\n\t\t\t\tsetStats(statsData);\n\t\t\t} catch (error) {\n\t\t\t\tsetSyncStatus(\"Offline\");\n\t\t\t}\n\t\t};\n\n\t\tsyncIntervalRef.current = setInterval(sync, 5000);\n\n\t\treturn () => {\n\t\t\tif (syncIntervalRef.current) {\n\t\t\t\tclearInterval(syncIntervalRef.current);\n\t\t\t\tsyncIntervalRef.current = null;\n\t\t\t}\n\t\t};\n\t}, [contactsActor.connection, contacts]);\n\n\t// Add new contact (local first)\n\tconst addContact = async () => {\n\t\tif (!name.trim()) return;\n\n\t\tconst newContact: Contact = {\n\t\t\tid: Date.now().toString(),\n\t\t\tname,\n\t\t\temail,\n\t\t\tphone,\n\t\t\tupdatedAt: Date.now(),\n\t\t};\n\n\t\t// Add locally first for immediate UI feedback\n\t\tsetContacts((prev) => [...prev, newContact]);\n\n\t\t// Then sync to server\n\t\tif (contactsActor.connection) {\n\t\t\ttry {\n\t\t\t\tawait contactsActor.connection.pushChanges([newContact]);\n\t\t\t\tconst statsData = await contactsActor.connection.getSyncStats();\n\t\t\t\tsetStats(statsData);\n\t\t\t} catch (error) {\n\t\t\t\tsetSyncStatus(\"Offline\");\n\t\t\t}\n\t\t}\n\n\t\tsetName(\"\");\n\t\tsetEmail(\"\");\n\t\tsetPhone(\"\");\n\t};\n\n\t// Delete contact (implemented as update with empty name)\n\tconst deleteContact = async (id: string) => {\n\t\tconst deletedContact = contacts.find(c => c.id === id);\n\t\tif (!deletedContact) return;\n\n\t\tconst updatedContact: Contact = {\n\t\t\t...deletedContact,\n\t\t\tname: \"\", // Mark as deleted\n\t\t\tupdatedAt: Date.now()\n\t\t};\n\n\t\t// Remove locally first for immediate UI feedback\n\t\tsetContacts((prev) => prev.filter((c) => c.id !== id));\n\n\t\t// Then sync to server\n\t\tif (contactsActor.connection) {\n\t\t\ttry {\n\t\t\t\tawait contactsActor.connection.pushChanges([updatedContact]);\n\t\t\t\tconst statsData = await contactsActor.connection.getSyncStats();\n\t\t\t\tsetStats(statsData);\n\t\t\t} catch (error) {\n\t\t\t\tsetSyncStatus(\"Offline\");\n\t\t\t}\n\t\t}\n\t};\n\n\t// Manual sync\n\tconst handleSync = async () => {\n\t\tif (!contactsActor.connection) return;\n\n\t\tsetSyncStatus(\"Syncing\");\n\n\t\ttry {\n\t\t\t// Push all contacts\n\t\t\tawait contactsActor.connection.pushChanges(contacts);\n\n\t\t\t// Get all changes\n\t\t\tconst changes = await contactsActor.connection.getChanges(0);\n\n\t\t\tsetContacts(changes.changes.filter(c => c.name !== \"\"));\n\t\t\tlastSyncTime.current = changes.timestamp;\n\t\t\tsetSyncStatus(\"Synced\");\n\n\t\t\t// Update stats\n\t\t\tconst statsData = await contactsActor.connection.getSyncStats();\n\t\t\tsetStats(statsData);\n\t\t} catch (error) {\n\t\t\tsetSyncStatus(\"Offline\");\n\t\t}\n\t};\n\n\t// Reset all data\n\tconst handleReset = async () => {\n\t\tif (!contactsActor.connection) return;\n\n\t\ttry {\n\t\t\tawait contactsActor.connection.reset();\n\t\t\tsetContacts([]);\n\t\t\tlastSyncTime.current = Date.now();\n\t\t\tsetSyncStatus(\"Synced\");\n\t\t\tsetStats({ totalContacts: 0, lastSyncTime: Date.now(), deletedContacts: 0 });\n\t\t} catch (error) {\n\t\t\tsetSyncStatus(\"Offline\");\n\t\t}\n\t};\n\n\t// Handle form submission\n\tconst handleSubmit = (e: React.FormEvent) => {\n\t\te.preventDefault();\n\t\taddContact();\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tSync Contacts
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{syncStatus}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\tHow it works
\n\t\t\t\t\n\t\t\t\t\tThis contact sync system demonstrates offline-first synchronization with conflict resolution. \n\t\t\t\t\tAdd contacts and they'll sync across all connected clients. The system handles conflicts using \n\t\t\t\t\t\"last write wins\" based on timestamps, and supports offline operation with automatic sync when reconnected.\n\t\t\t\t
\n\t\t\t\n\n\t\t\t\n\t\t\t\tAdd New Contact
\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\tContacts ({contacts.length})
\n\t\t\t\t{contacts.length === 0 ? (\n\t\t\t\t\t\n\t\t\t\t\t\tNo contacts yet. Add some contacts to get started!\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\tcontacts.map((contact) => (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{contact.name}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{contact.email && (\n\t\t\t\t\t\t\t\t\t\t📧 {contact.email}\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{contact.phone && (\n\t\t\t\t\t\t\t\t\t\t📞 {contact.phone}\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t))\n\t\t\t\t)}\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{stats.totalContacts}\n\t\t\t\t\tTotal Contacts\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{stats.deletedContacts}\n\t\t\t\t\tDeleted Items\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{stats.lastSyncTime ? new Date(stats.lastSyncTime).toLocaleTimeString() : \"—\"}\n\t\t\t\t\t\n\t\t\t\t\tLast Sync\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}",
"src/frontend/main.tsx": "import { StrictMode } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { App } from \"./App\";\n\nconst root = document.getElementById(\"root\");\nif (!root) throw new Error(\"Root element not found\");\n\ncreateRoot(root).render(\n\t\n\t\t \n\t \n);",
"src/frontend/index.html": "\n\n\n \n \n Sync Contacts - RivetKit \n \n\n\n \n \n\n",
- "src/backend/registry.ts": "import { actor, setup } from \"@rivetkit/actor\";\n\nexport type Contact = {\n\tid: string;\n\tname: string;\n\temail: string;\n\tphone: string;\n\tupdatedAt: number;\n};\n\nconst contacts = actor({\n\tonAuth: () => {},\n\t// State is automatically persisted\n\t// Persistent state that survives restarts: https://rivet.gg/docs/actors/state\n\tstate: {\n\t\tcontacts: {} as Record,\n\t\tlastSyncTime: Date.now(),\n\t},\n\n\tactions: {\n\t\t// Callable functions from clients: https://rivet.gg/docs/actors/actions\n\t\tgetChanges: (c, after = 0) => {\n\t\t\tconst changes = Object.values(c.state.contacts).filter(\n\t\t\t\t(contact) => contact.updatedAt > after,\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tchanges,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t};\n\t\t},\n\n\t\tpushChanges: (c, contactList: Contact[]) => {\n\t\t\tlet changed = false;\n\n\t\t\tcontactList.forEach((contact) => {\n\t\t\t\tconst existing = c.state.contacts[contact.id];\n\n\t\t\t\t// Last write wins conflict resolution based on timestamp\n\t\t\t\tif (!existing || existing.updatedAt < contact.updatedAt) {\n\t\t\t\t\t// State changes are automatically persisted\n\t\t\t\t\tc.state.contacts[contact.id] = contact;\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Update last sync time\n\t\t\tc.state.lastSyncTime = Date.now();\n\n\t\t\tif (changed) {\n\t\t\t\t// Send events to all connected clients: https://rivet.gg/docs/actors/events\n\t\t\t\tc.broadcast(\"contactsChanged\", {\n\t\t\t\t\tcontacts: Object.values(c.state.contacts).filter(\n\t\t\t\t\t\t(c) => c.name !== \"\",\n\t\t\t\t\t),\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn { timestamp: c.state.lastSyncTime };\n\t\t},\n\n\t\tgetAllContacts: (c) => {\n\t\t\treturn Object.values(c.state.contacts).filter(\n\t\t\t\t(contact) => contact.name !== \"\",\n\t\t\t);\n\t\t},\n\n\t\tgetSyncStats: (c) => {\n\t\t\tconst allContacts = Object.values(c.state.contacts);\n\t\t\tconst activeContacts = allContacts.filter(\n\t\t\t\t(contact) => contact.name !== \"\",\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\ttotalContacts: activeContacts.length,\n\t\t\t\tlastSyncTime: c.state.lastSyncTime,\n\t\t\t\tdeletedContacts: allContacts.filter((contact) => contact.name === \"\")\n\t\t\t\t\t.length,\n\t\t\t};\n\t\t},\n\n\t\treset: (c) => {\n\t\t\tc.state.contacts = {};\n\t\t\tc.state.lastSyncTime = Date.now();\n\n\t\t\tc.broadcast(\"contactsChanged\", {\n\t\t\t\tcontacts: [],\n\t\t\t});\n\n\t\t\treturn { timestamp: c.state.lastSyncTime };\n\t\t},\n\t},\n});\n\n// Register actors for use: https://rivet.gg/docs/setup\nexport const registry = setup({\n\tuse: { contacts },\n});\n",
+ "src/backend/registry.ts": "import { actor, setup } from \"rivetkit\";\n\nexport type Contact = {\n\tid: string;\n\tname: string;\n\temail: string;\n\tphone: string;\n\tupdatedAt: number;\n};\n\nconst contacts = actor({\n\tonAuth: () => {},\n\t// State is automatically persisted\n\t// Persistent state that survives restarts: https://rivet.gg/docs/actors/state\n\tstate: {\n\t\tcontacts: {} as Record,\n\t\tlastSyncTime: Date.now(),\n\t},\n\n\tactions: {\n\t\t// Callable functions from clients: https://rivet.gg/docs/actors/actions\n\t\tgetChanges: (c, after = 0) => {\n\t\t\tconst changes = Object.values(c.state.contacts).filter(\n\t\t\t\t(contact) => contact.updatedAt > after,\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tchanges,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t};\n\t\t},\n\n\t\tpushChanges: (c, contactList: Contact[]) => {\n\t\t\tlet changed = false;\n\n\t\t\tcontactList.forEach((contact) => {\n\t\t\t\tconst existing = c.state.contacts[contact.id];\n\n\t\t\t\t// Last write wins conflict resolution based on timestamp\n\t\t\t\tif (!existing || existing.updatedAt < contact.updatedAt) {\n\t\t\t\t\t// State changes are automatically persisted\n\t\t\t\t\tc.state.contacts[contact.id] = contact;\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Update last sync time\n\t\t\tc.state.lastSyncTime = Date.now();\n\n\t\t\tif (changed) {\n\t\t\t\t// Send events to all connected clients: https://rivet.gg/docs/actors/events\n\t\t\t\tc.broadcast(\"contactsChanged\", {\n\t\t\t\t\tcontacts: Object.values(c.state.contacts).filter(\n\t\t\t\t\t\t(c) => c.name !== \"\",\n\t\t\t\t\t),\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn { timestamp: c.state.lastSyncTime };\n\t\t},\n\n\t\tgetAllContacts: (c) => {\n\t\t\treturn Object.values(c.state.contacts).filter(\n\t\t\t\t(contact) => contact.name !== \"\",\n\t\t\t);\n\t\t},\n\n\t\tgetSyncStats: (c) => {\n\t\t\tconst allContacts = Object.values(c.state.contacts);\n\t\t\tconst activeContacts = allContacts.filter(\n\t\t\t\t(contact) => contact.name !== \"\",\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\ttotalContacts: activeContacts.length,\n\t\t\t\tlastSyncTime: c.state.lastSyncTime,\n\t\t\t\tdeletedContacts: allContacts.filter((contact) => contact.name === \"\")\n\t\t\t\t\t.length,\n\t\t\t};\n\t\t},\n\n\t\treset: (c) => {\n\t\t\tc.state.contacts = {};\n\t\t\tc.state.lastSyncTime = Date.now();\n\n\t\t\tc.broadcast(\"contactsChanged\", {\n\t\t\t\tcontacts: [],\n\t\t\t});\n\n\t\t\treturn { timestamp: c.state.lastSyncTime };\n\t\t},\n\t},\n});\n\n// Register actors for use: https://rivet.gg/docs/setup\nexport const registry = setup({\n\tuse: { contacts },\n});\n",
"src/backend/server.ts": "import { registry } from \"./registry\";\n\nregistry.runServer({\n\tcors: {\n\t\torigin: \"*\",\n\t},\n});\n"
}
},
@@ -147,17 +147,17 @@ export const examples: ExampleData[] = [
],
"tab": "memory",
"files": {
- "tests/rate.test.ts": "import { setupTest } from \"@rivetkit/actor/test\";\nimport { expect, test, vi } from \"vitest\";\nimport { registry } from \"../src/backend/registry\";\n\ntest(\"Rate limiter allows requests under limit\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst limiter = client.rateLimiter.getOrCreate([\"test-limit\"]);\n\n\t// Test first request - should be allowed\n\tconst result1 = await limiter.checkLimit();\n\texpect(result1).toMatchObject({\n\t\tallowed: true,\n\t\tremaining: 4, // 5 total - 1 used = 4 remaining\n\t\tresetsIn: expect.any(Number),\n\t});\n\n\t// Test additional requests\n\tconst result2 = await limiter.checkLimit();\n\texpect(result2.allowed).toBe(true);\n\texpect(result2.remaining).toBe(3);\n\n\tconst result3 = await limiter.checkLimit();\n\texpect(result3.allowed).toBe(true);\n\texpect(result3.remaining).toBe(2);\n});\n\ntest(\"Rate limiter blocks requests over limit\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst limiter = client.rateLimiter.getOrCreate([\"test-block\"]);\n\n\t// Use up all 5 requests\n\tfor (let i = 0; i < 5; i++) {\n\t\tconst result = await limiter.checkLimit();\n\t\texpect(result.allowed).toBe(true);\n\t}\n\n\t// 6th request should be blocked\n\tconst blocked = await limiter.checkLimit();\n\texpect(blocked.allowed).toBe(false);\n\texpect(blocked.remaining).toBe(0);\n\texpect(blocked.resetsIn).toBeGreaterThan(0);\n\n\t// 7th request should also be blocked\n\tconst blocked2 = await limiter.checkLimit();\n\texpect(blocked2.allowed).toBe(false);\n\texpect(blocked2.remaining).toBe(0);\n});\n\ntest(\"Rate limiter status reflects current state\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst limiter = client.rateLimiter.getOrCreate([\"test-status\"]);\n\n\t// Initial status\n\tconst initial = await limiter.getStatus();\n\texpect(initial).toMatchObject({\n\t\tcount: 0,\n\t\tremaining: 5,\n\t\tresetsIn: 0, // No reset time set yet\n\t});\n\n\t// After some requests\n\tawait limiter.checkLimit();\n\tawait limiter.checkLimit();\n\n\tconst afterRequests = await limiter.getStatus();\n\texpect(afterRequests.count).toBe(2);\n\texpect(afterRequests.remaining).toBe(3);\n\texpect(afterRequests.resetsIn).toBeGreaterThan(0);\n});\n\ntest(\"Rate limiter reset functionality\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst limiter = client.rateLimiter.getOrCreate([\"test-reset\"]);\n\n\t// Use up some requests\n\tawait limiter.checkLimit();\n\tawait limiter.checkLimit();\n\tawait limiter.checkLimit();\n\n\tconst beforeReset = await limiter.getStatus();\n\texpect(beforeReset.count).toBe(3);\n\texpect(beforeReset.remaining).toBe(2);\n\n\t// Reset the limiter\n\tconst resetResult = await limiter.reset();\n\texpect(resetResult.success).toBe(true);\n\n\t// Check status after reset\n\tconst afterReset = await limiter.getStatus();\n\texpect(afterReset.count).toBe(0);\n\texpect(afterReset.remaining).toBe(5);\n\texpect(afterReset.resetsIn).toBe(0);\n\n\t// Should be able to make requests again\n\tconst newRequest = await limiter.checkLimit();\n\texpect(newRequest.allowed).toBe(true);\n\texpect(newRequest.remaining).toBe(4);\n});\n",
+ "tests/rate.test.ts": "import { setupTest } from \"rivetkit/test\";\nimport { expect, test, vi } from \"vitest\";\nimport { registry } from \"../src/backend/registry\";\n\ntest(\"Rate limiter allows requests under limit\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst limiter = client.rateLimiter.getOrCreate([\"test-limit\"]);\n\n\t// Test first request - should be allowed\n\tconst result1 = await limiter.checkLimit();\n\texpect(result1).toMatchObject({\n\t\tallowed: true,\n\t\tremaining: 4, // 5 total - 1 used = 4 remaining\n\t\tresetsIn: expect.any(Number),\n\t});\n\n\t// Test additional requests\n\tconst result2 = await limiter.checkLimit();\n\texpect(result2.allowed).toBe(true);\n\texpect(result2.remaining).toBe(3);\n\n\tconst result3 = await limiter.checkLimit();\n\texpect(result3.allowed).toBe(true);\n\texpect(result3.remaining).toBe(2);\n});\n\ntest(\"Rate limiter blocks requests over limit\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst limiter = client.rateLimiter.getOrCreate([\"test-block\"]);\n\n\t// Use up all 5 requests\n\tfor (let i = 0; i < 5; i++) {\n\t\tconst result = await limiter.checkLimit();\n\t\texpect(result.allowed).toBe(true);\n\t}\n\n\t// 6th request should be blocked\n\tconst blocked = await limiter.checkLimit();\n\texpect(blocked.allowed).toBe(false);\n\texpect(blocked.remaining).toBe(0);\n\texpect(blocked.resetsIn).toBeGreaterThan(0);\n\n\t// 7th request should also be blocked\n\tconst blocked2 = await limiter.checkLimit();\n\texpect(blocked2.allowed).toBe(false);\n\texpect(blocked2.remaining).toBe(0);\n});\n\ntest(\"Rate limiter status reflects current state\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst limiter = client.rateLimiter.getOrCreate([\"test-status\"]);\n\n\t// Initial status\n\tconst initial = await limiter.getStatus();\n\texpect(initial).toMatchObject({\n\t\tcount: 0,\n\t\tremaining: 5,\n\t\tresetsIn: 0, // No reset time set yet\n\t});\n\n\t// After some requests\n\tawait limiter.checkLimit();\n\tawait limiter.checkLimit();\n\n\tconst afterRequests = await limiter.getStatus();\n\texpect(afterRequests.count).toBe(2);\n\texpect(afterRequests.remaining).toBe(3);\n\texpect(afterRequests.resetsIn).toBeGreaterThan(0);\n});\n\ntest(\"Rate limiter reset functionality\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst limiter = client.rateLimiter.getOrCreate([\"test-reset\"]);\n\n\t// Use up some requests\n\tawait limiter.checkLimit();\n\tawait limiter.checkLimit();\n\tawait limiter.checkLimit();\n\n\tconst beforeReset = await limiter.getStatus();\n\texpect(beforeReset.count).toBe(3);\n\texpect(beforeReset.remaining).toBe(2);\n\n\t// Reset the limiter\n\tconst resetResult = await limiter.reset();\n\texpect(resetResult.success).toBe(true);\n\n\t// Check status after reset\n\tconst afterReset = await limiter.getStatus();\n\texpect(afterReset.count).toBe(0);\n\texpect(afterReset.remaining).toBe(5);\n\texpect(afterReset.resetsIn).toBe(0);\n\n\t// Should be able to make requests again\n\tconst newRequest = await limiter.checkLimit();\n\texpect(newRequest.allowed).toBe(true);\n\texpect(newRequest.remaining).toBe(4);\n});\n",
"README.md": "# Rate Limiter for RivetKit\n\nExample project demonstrating API rate limiting with [RivetKit](https://rivetkit.org).\n\n[Learn More →](https://github.com/rivet-gg/rivetkit)\n\n[Discord](https://rivet.gg/discord) — [Documentation](https://rivetkit.org) — [Issues](https://github.com/rivet-gg/rivetkit/issues)\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 18+\n\n### Installation\n\n```sh\ngit clone https://github.com/rivet-gg/rivetkit\ncd rivetkit/examples/rate\nnpm install\n```\n\n### Development\n\n```sh\nnpm run dev\n```\n\nOpen your browser to `http://localhost:3000`\n\n## Features\n\n- **Per-User Rate Limiting**: Each user/client gets independent rate limits\n- **Sliding Window**: 5 requests per 60-second window\n- **Real-time Status**: Live updates of remaining requests and reset time\n- **Visual Progress**: Progress bar showing rate limit usage\n- **Multiple Users**: Switch between users to test isolation\n- **Admin Reset**: Reset rate limits for testing purposes\n\n## How it works\n\nThis rate limiter demonstrates:\n\n1. **Per-Actor Rate Limiting**: Each user gets their own actor instance with independent counters\n2. **Time Window Management**: Automatic reset of counters when the time window expires\n3. **Request Counting**: Track and limit the number of requests within the window\n4. **Graceful Degradation**: Blocks requests when limits are exceeded\n5. **Status Reporting**: Provide detailed information about current limits and reset times\n\n## Architecture\n\n- **Backend**: RivetKit actor that maintains rate limit state per user\n- **Frontend**: React application with real-time rate limit status\n- **State Management**: Persistent rate limit counters with automatic window resets\n- **User Isolation**: Each user/API client gets independent rate limiting\n\n## Usage\n\n1. Start the development server\n2. Select a user from the dropdown\n3. Click \"Make API Request\" to test the rate limiter\n4. Watch the status update in real-time\n5. Try making more than 5 requests within a minute to see blocking\n6. Switch users to see independent rate limits\n7. Use \"Reset Rate Limiter\" to clear limits for testing\n\n## Rate Limiting Strategy\n\nThis example uses a **Fixed Window** approach:\n\n- **Window Size**: 60 seconds\n- **Request Limit**: 5 requests per window\n- **Reset Behavior**: Counter resets to 0 when window expires\n- **Granularity**: Per-user/client isolation\n\n## Extending\n\nThis rate limiter can be extended with:\n\n- Different rate limiting algorithms (sliding window, token bucket, etc.)\n- Multiple rate limit tiers (basic/premium users)\n- Geographic or IP-based limiting\n- Dynamic rate limits based on user behavior\n- Rate limit bypass for admin users\n- Metrics and monitoring integration\n- Redis backend for distributed rate limiting\n\n## License\n\nApache 2.0",
- "package-lock.json": "{\n \"name\": \"example-rate\",\n \"version\": \"0.9.1\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n \"name\": \"example-rate\",\n \"version\": \"0.9.1\",\n \"dependencies\": {\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"@rivetkit/actor\": \"^0.9.1\",\n \"@types/node\": \"^22.13.9\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"concurrently\": \"^8.2.2\",\n \"tsx\": \"^3.12.7\",\n \"typescript\": \"^5.5.2\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^3.1.1\"\n }\n },\n \"node_modules/@ampproject/remapping\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz\",\n \"integrity\": \"sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@jridgewell/gen-mapping\": \"^0.3.5\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/code-frame\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz\",\n \"integrity\": \"sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"js-tokens\": \"^4.0.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/compat-data\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz\",\n \"integrity\": \"sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/core\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz\",\n \"integrity\": \"sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@ampproject/remapping\": \"^2.2.0\",\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-compilation-targets\": \"^7.27.2\",\n \"@babel/helper-module-transforms\": \"^7.27.3\",\n \"@babel/helpers\": \"^7.27.6\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/traverse\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"convert-source-map\": \"^2.0.0\",\n \"debug\": \"^4.1.0\",\n \"gensync\": \"^1.0.0-beta.2\",\n \"json5\": \"^2.2.3\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/babel\"\n }\n },\n \"node_modules/@babel/generator\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz\",\n \"integrity\": \"sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"@jridgewell/gen-mapping\": \"^0.3.12\",\n \"@jridgewell/trace-mapping\": \"^0.3.28\",\n \"jsesc\": \"^3.0.2\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-compilation-targets\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz\",\n \"integrity\": \"sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/compat-data\": \"^7.27.2\",\n \"@babel/helper-validator-option\": \"^7.27.1\",\n \"browserslist\": \"^4.24.0\",\n \"lru-cache\": \"^5.1.1\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-globals\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz\",\n \"integrity\": \"sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-imports\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz\",\n \"integrity\": \"sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/traverse\": \"^7.27.1\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-transforms\": {\n \"version\": \"7.27.3\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz\",\n \"integrity\": \"sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-module-imports\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"@babel/traverse\": \"^7.27.3\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0\"\n }\n },\n \"node_modules/@babel/helper-plugin-utils\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz\",\n \"integrity\": \"sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-string-parser\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz\",\n \"integrity\": \"sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-identifier\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz\",\n \"integrity\": \"sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-option\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz\",\n \"integrity\": \"sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helpers\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz\",\n \"integrity\": \"sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.6\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/parser\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz\",\n \"integrity\": \"sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.28.0\"\n },\n \"bin\": {\n \"parser\": \"bin/babel-parser.js\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-self\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz\",\n \"integrity\": \"sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-source\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz\",\n \"integrity\": \"sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/runtime\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz\",\n \"integrity\": \"sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/template\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz\",\n \"integrity\": \"sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/parser\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/traverse\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz\",\n \"integrity\": \"sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-globals\": \"^7.28.0\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.28.0\",\n \"debug\": \"^4.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/types\": {\n \"version\": \"7.28.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz\",\n \"integrity\": \"sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-string-parser\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz\",\n \"integrity\": \"sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==\",\n \"cpu\": [\n \"arm\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-win32-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"peer\": true\n },\n \"node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-arm\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz\",\n \"integrity\": \"sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz\",\n \"integrity\": \"sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz\",\n \"integrity\": \"sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz\",\n \"integrity\": \"sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz\",\n \"integrity\": \"sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz\",\n \"integrity\": \"sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz\",\n \"integrity\": \"sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz\",\n \"integrity\": \"sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz\",\n \"integrity\": \"sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@jridgewell/gen-mapping\": {\n \"version\": \"0.3.12\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz\",\n \"integrity\": \"sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n }\n },\n \"node_modules/@jridgewell/resolve-uri\": {\n \"version\": \"3.1.2\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz\",\n \"integrity\": \"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@jridgewell/sourcemap-codec\": {\n \"version\": \"1.5.4\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz\",\n \"integrity\": \"sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@jridgewell/trace-mapping\": {\n \"version\": \"0.3.29\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz\",\n \"integrity\": \"sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/resolve-uri\": \"^3.1.0\",\n \"@jridgewell/sourcemap-codec\": \"^1.4.14\"\n }\n },\n \"node_modules/@rivetkit/actor\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/actor/-/actor-0.9.1.tgz\",\n \"integrity\": \"sha512-aVoWO81JrYql6hhXX+vRor0B+aeWrnh+9zkcrxbh0EXFBbS5XM8YE4sSFxNKmZThLbGNqfZ5enm1zuA92c7I1w==\",\n \"dev\": true,\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/core\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/core/-/core-0.9.1.tgz\",\n \"integrity\": \"sha512-0zYFKo08CQ72Rm6MaVKxcJSEEfn/ypGkkxTX06Q4meCGHuDJFbPA5wopa3NdxrKBPttcGg1QAmDd+1FZnlpubA==\",\n \"license\": \"Apache-2.0\",\n \"peer\": true,\n \"dependencies\": {\n \"cbor-x\": \"^1.6.0\",\n \"invariant\": \"^2.2.4\",\n \"on-change\": \"^5.0.1\",\n \"p-retry\": \"^6.2.1\",\n \"zod\": \"^3.25.67\"\n },\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"peerDependencies\": {\n \"@hono/node-server\": \"^1.14.0\",\n \"@hono/node-ws\": \"^1.1.1\",\n \"@hono/zod-openapi\": \"^0.19.6\",\n \"eventsource\": \"^3.0.5\",\n \"hono\": \"^4.7.0\",\n \"ws\": \"^8.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"@hono/node-server\": {\n \"optional\": true\n },\n \"@hono/node-ws\": {\n \"optional\": true\n },\n \"@hono/zod-openapi\": {\n \"optional\": true\n },\n \"eventsource\": {\n \"optional\": true\n },\n \"hono\": {\n \"optional\": true\n },\n \"ws\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@rivetkit/framework-base\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/framework-base/-/framework-base-0.9.1.tgz\",\n \"integrity\": \"sha512-FxhSqGAtDsD4k7gKS2EhJ5hHsEwI1+QR0vYThUBOLcmXM7zjMZndqIjVperQO4ck/zfjRqjm3lw7znkc+k0wNQ==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@tanstack/store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/react\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/react/-/react-0.9.1.tgz\",\n \"integrity\": \"sha512-0e0gNNj3qCrXHNIxE6ggEEX+E6HjdsSt9pJbWbaQQg+1bsywupRTSdgSDguDHjBvi9qhR9mh7UbNN3A9wYqXuA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@rivetkit/framework-base\": \"0.9.1\",\n \"@tanstack/react-store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\",\n \"react\": \"^18 || ^19\",\n \"react-dom\": \"^18 || ^19\"\n }\n },\n \"node_modules/@rolldown/pluginutils\": {\n \"version\": \"1.0.0-beta.19\",\n \"resolved\": \"https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz\",\n \"integrity\": \"sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@rollup/rollup-android-arm-eabi\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.0.tgz\",\n \"integrity\": \"sha512-2o/FgACbji4tW1dzXOqAV15Eu7DdgbKsF2QKcxfG4xbh5iwU7yr5RRP5/U+0asQliSYv5M4o7BevlGIoSL0LXg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-android-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-PSZ0SvMOjEAxwZeTx32eI/j5xSYtDCRxGu5k9zvzoY77xUNssZM+WV6HYBLROpY5CkXsbQjvz40fBb7WPwDqtQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-BA4yPIPssPB2aRAWzmqzQ3y2/KotkLyZukVB7j3psK/U3nVJdceo6qr9pLM2xN6iRP/wKfxEbOb1yrlZH6sYZg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-Pr2o0lvTwsiG4HCr43Zy9xXrHspyMvsvEw4FwKYqhli4FuLE5FjcZzuQ4cfPe0iUFCvSQG6lACI0xj74FDZKRA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-lYE8LkE5h4a/+6VnnLiL14zWMPnx6wNbDG23GcYFpRW1V9hYWHAw9lBZ6ZUIrOaoK7NliF1sdwYGiVmziUF4vA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-PVQWZK9sbzpvqC9Q0GlehNNSVHR+4m7+wET+7FgSnKG3ci5nAMgGmr9mGBXzAuE5SvguCKJ6mHL6vq1JaJ/gvw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-gnueabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-hLrmRl53prCcD+YXTfNvXd776HTxNh8wPAMllusQ+amcQmtgo3V5i/nkhPN6FakW+QVLoUUr2AsbtIRPFU3xIA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-musleabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-XBKGSYcrkdiRRjl+8XvrUR3AosXU0NvF7VuqMsm7s5nRy+nt58ZMB19Jdp1RdqewLcaYnpk8zeVs/4MlLZEJxw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-fRvZZPUiBz7NztBE/2QnCS5AtqLVhXmUOPj9IHlfGEXkapgImf4W9+FSkL8cWqoAjozyUzqFmSc4zh2ooaeF6g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-Btv2WRZOcUGi8XU80XwIvzTg4U6+l6D0V6sZTrZx214nrwxw5nAi8hysaXj/mctyClWgesyuxbeLylCBNauimg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loongarch64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-Li0emNnwtUZdLwHjQPBxn4VWztcrw/h7mgLyHiEI5Z0MhpeFGlzaiBHpSNVOMB/xucjXTTcO+dhv469Djr16KA==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-powerpc64le-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-sB8+pfkYx2kvpDCfd63d5ScYT0Fz1LO6jIb2zLZvmK9ob2D8DeVqrmBDE0iDK8KlBVmsTNzrjr3G1xV4eUZhSw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-5GQ6PFhh7E6jQm70p1aW05G2cap5zMOvO0se5JMecHeAdj5ZhWEHbJ4hiKpfi1nnnEdTauDXxPgXae/mqjow9w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-N/euLsBd1rekWcuduakTo/dJw6U6sBP3eUq+RXM9RNfPuWTvG2w/WObDkIvJ2KChy6oxZmOSC08Ak2OJA0UiAA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-s390x-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-2l9sA7d7QdikL0xQwNMO3xURBUNEWyHVHfAsHsUdq+E/pgLTUcCE+gih5PCdmyHmfTDeXUWVhqL0WZzg0nua3g==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-XZdD3fEEQcwG2KrJDdEQu7NrHonPxxaV0/w2HpvINBdcqebz1aL+0vM2WFJq4DeiAVT6F5SUQas65HY5JDqoPw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-7ayfgvtmmWgKWBkCGg5+xTQ0r5V1owVm67zTrsEY1008L5ro7mCyGYORomARt/OquB9KY7LpxVBZes+oSniAAQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-arm64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-B+IJgcBnE2bm93jEW5kHisqvPITs4ddLOROAcOc/diBgrEiQJJ6Qcjby75rFSmH5eMGrqJryUgJDhrfj942apQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-ia32-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-+CXwwG66g0/FpWOnP/v1HnrGVSOygK/osUbu3wPRy8ECXjoYKjRAyfxYpDQOfghC5qPJYLPH0oN4MCOjwgdMug==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@tanstack/react-store\": {\n \"version\": \"0.7.3\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.7.3.tgz\",\n \"integrity\": \"sha512-3Dnqtbw9P2P0gw8uUM8WP2fFfg8XMDSZCTsywRPZe/XqqYW8PGkXKZTvP0AHkE4mpqP9Y43GpOg9vwO44azu6Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@tanstack/store\": \"0.7.2\",\n \"use-sync-external-store\": \"^1.5.0\"\n },\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\",\n \"react-dom\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/@tanstack/store\": {\n \"version\": \"0.7.2\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/store/-/store-0.7.2.tgz\",\n \"integrity\": \"sha512-RP80Z30BYiPX2Pyo0Nyw4s1SJFH2jyM6f9i3HfX4pA+gm5jsnYryscdq2aIQLnL4TaGuQMO+zXmN9nh1Qck+Pg==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n }\n },\n \"node_modules/@types/babel__core\": {\n \"version\": \"7.20.5\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz\",\n \"integrity\": \"sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.20.7\",\n \"@babel/types\": \"^7.20.7\",\n \"@types/babel__generator\": \"*\",\n \"@types/babel__template\": \"*\",\n \"@types/babel__traverse\": \"*\"\n }\n },\n \"node_modules/@types/babel__generator\": {\n \"version\": \"7.27.0\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz\",\n \"integrity\": \"sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__template\": {\n \"version\": \"7.4.4\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz\",\n \"integrity\": \"sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.1.0\",\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__traverse\": {\n \"version\": \"7.20.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz\",\n \"integrity\": \"sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.20.7\"\n }\n },\n \"node_modules/@types/chai\": {\n \"version\": \"5.2.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz\",\n \"integrity\": \"sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/deep-eql\": \"*\"\n }\n },\n \"node_modules/@types/deep-eql\": {\n \"version\": \"4.0.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz\",\n \"integrity\": \"sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/estree\": {\n \"version\": \"1.0.8\",\n \"resolved\": \"https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz\",\n \"integrity\": \"sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/node\": {\n \"version\": \"22.16.3\",\n \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-22.16.3.tgz\",\n \"integrity\": \"sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"undici-types\": \"~6.21.0\"\n }\n },\n \"node_modules/@types/prop-types\": {\n \"version\": \"15.7.15\",\n \"resolved\": \"https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz\",\n \"integrity\": \"sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/react\": {\n \"version\": \"18.3.23\",\n \"resolved\": \"https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz\",\n \"integrity\": \"sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/prop-types\": \"*\",\n \"csstype\": \"^3.0.2\"\n }\n },\n \"node_modules/@types/react-dom\": {\n \"version\": \"18.3.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz\",\n \"integrity\": \"sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"@types/react\": \"^18.0.0\"\n }\n },\n \"node_modules/@types/retry\": {\n \"version\": \"0.12.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz\",\n \"integrity\": \"sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==\",\n \"license\": \"MIT\",\n \"peer\": true\n },\n \"node_modules/@vitejs/plugin-react\": {\n \"version\": \"4.6.0\",\n \"resolved\": \"https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz\",\n \"integrity\": \"sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/core\": \"^7.27.4\",\n \"@babel/plugin-transform-react-jsx-self\": \"^7.27.1\",\n \"@babel/plugin-transform-react-jsx-source\": \"^7.27.1\",\n \"@rolldown/pluginutils\": \"1.0.0-beta.19\",\n \"@types/babel__core\": \"^7.20.5\",\n \"react-refresh\": \"^0.17.0\"\n },\n \"engines\": {\n \"node\": \"^14.18.0 || >=16.0.0\"\n },\n \"peerDependencies\": {\n \"vite\": \"^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0\"\n }\n },\n \"node_modules/@vitest/expect\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz\",\n \"integrity\": \"sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/chai\": \"^5.2.2\",\n \"@vitest/spy\": \"3.2.4\",\n \"@vitest/utils\": \"3.2.4\",\n \"chai\": \"^5.2.0\",\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/mocker\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz\",\n \"integrity\": \"sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/spy\": \"3.2.4\",\n \"estree-walker\": \"^3.0.3\",\n \"magic-string\": \"^0.30.17\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"msw\": \"^2.4.9\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\"\n },\n \"peerDependenciesMeta\": {\n \"msw\": {\n \"optional\": true\n },\n \"vite\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@vitest/pretty-format\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz\",\n \"integrity\": \"sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/runner\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz\",\n \"integrity\": \"sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/utils\": \"3.2.4\",\n \"pathe\": \"^2.0.3\",\n \"strip-literal\": \"^3.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/snapshot\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz\",\n \"integrity\": \"sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/pretty-format\": \"3.2.4\",\n \"magic-string\": \"^0.30.17\",\n \"pathe\": \"^2.0.3\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/spy\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz\",\n \"integrity\": \"sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyspy\": \"^4.0.3\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/utils\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz\",\n \"integrity\": \"sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/pretty-format\": \"3.2.4\",\n \"loupe\": \"^3.1.4\",\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/ansi-regex\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",\n \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/ansi-styles\": {\n \"version\": \"4.3.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",\n \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-convert\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/assertion-error\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz\",\n \"integrity\": \"sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/browserslist\": {\n \"version\": \"4.25.1\",\n \"resolved\": \"https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz\",\n \"integrity\": \"sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"caniuse-lite\": \"^1.0.30001726\",\n \"electron-to-chromium\": \"^1.5.173\",\n \"node-releases\": \"^2.0.19\",\n \"update-browserslist-db\": \"^1.1.3\"\n },\n \"bin\": {\n \"browserslist\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7\"\n }\n },\n \"node_modules/buffer-from\": {\n \"version\": \"1.1.2\",\n \"resolved\": \"https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz\",\n \"integrity\": \"sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/cac\": {\n \"version\": \"6.7.14\",\n \"resolved\": \"https://registry.npmjs.org/cac/-/cac-6.7.14.tgz\",\n \"integrity\": \"sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/caniuse-lite\": {\n \"version\": \"1.0.30001727\",\n \"resolved\": \"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz\",\n \"integrity\": \"sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/caniuse-lite\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"CC-BY-4.0\"\n },\n \"node_modules/cbor-extract\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz\",\n \"integrity\": \"sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==\",\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"node-gyp-build-optional-packages\": \"5.1.1\"\n },\n \"bin\": {\n \"download-cbor-prebuilds\": \"bin/download-prebuilds.js\"\n },\n \"optionalDependencies\": {\n \"@cbor-extract/cbor-extract-darwin-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-darwin-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-win32-x64\": \"2.2.0\"\n }\n },\n \"node_modules/cbor-x\": {\n \"version\": \"1.6.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz\",\n \"integrity\": \"sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"optionalDependencies\": {\n \"cbor-extract\": \"^2.2.0\"\n }\n },\n \"node_modules/chai\": {\n \"version\": \"5.2.1\",\n \"resolved\": \"https://registry.npmjs.org/chai/-/chai-5.2.1.tgz\",\n \"integrity\": \"sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"assertion-error\": \"^2.0.1\",\n \"check-error\": \"^2.1.1\",\n \"deep-eql\": \"^5.0.1\",\n \"loupe\": \"^3.1.0\",\n \"pathval\": \"^2.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/chalk\": {\n \"version\": \"4.1.2\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",\n \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.1.0\",\n \"supports-color\": \"^7.1.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/chalk/node_modules/supports-color\": {\n \"version\": \"7.2.0\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",\n \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/check-error\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz\",\n \"integrity\": \"sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 16\"\n }\n },\n \"node_modules/cliui\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz\",\n \"integrity\": \"sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"string-width\": \"^4.2.0\",\n \"strip-ansi\": \"^6.0.1\",\n \"wrap-ansi\": \"^7.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/color-convert\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",\n \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-name\": \"~1.1.4\"\n },\n \"engines\": {\n \"node\": \">=7.0.0\"\n }\n },\n \"node_modules/color-name\": {\n \"version\": \"1.1.4\",\n \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",\n \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/concurrently\": {\n \"version\": \"8.2.2\",\n \"resolved\": \"https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz\",\n \"integrity\": \"sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"chalk\": \"^4.1.2\",\n \"date-fns\": \"^2.30.0\",\n \"lodash\": \"^4.17.21\",\n \"rxjs\": \"^7.8.1\",\n \"shell-quote\": \"^1.8.1\",\n \"spawn-command\": \"0.0.2\",\n \"supports-color\": \"^8.1.1\",\n \"tree-kill\": \"^1.2.2\",\n \"yargs\": \"^17.7.2\"\n },\n \"bin\": {\n \"conc\": \"dist/bin/concurrently.js\",\n \"concurrently\": \"dist/bin/concurrently.js\"\n },\n \"engines\": {\n \"node\": \"^14.13.0 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/open-cli-tools/concurrently?sponsor=1\"\n }\n },\n \"node_modules/convert-source-map\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz\",\n \"integrity\": \"sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/csstype\": {\n \"version\": \"3.1.3\",\n \"resolved\": \"https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz\",\n \"integrity\": \"sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/date-fns\": {\n \"version\": \"2.30.0\",\n \"resolved\": \"https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz\",\n \"integrity\": \"sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/runtime\": \"^7.21.0\"\n },\n \"engines\": {\n \"node\": \">=0.11\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/date-fns\"\n }\n },\n \"node_modules/debug\": {\n \"version\": \"4.4.1\",\n \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.4.1.tgz\",\n \"integrity\": \"sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ms\": \"^2.1.3\"\n },\n \"engines\": {\n \"node\": \">=6.0\"\n },\n \"peerDependenciesMeta\": {\n \"supports-color\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/deep-eql\": {\n \"version\": \"5.0.2\",\n \"resolved\": \"https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz\",\n \"integrity\": \"sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/detect-libc\": {\n \"version\": \"2.0.4\",\n \"resolved\": \"https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz\",\n \"integrity\": \"sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==\",\n \"license\": \"Apache-2.0\",\n \"optional\": true,\n \"peer\": true,\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/electron-to-chromium\": {\n \"version\": \"1.5.183\",\n \"resolved\": \"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.183.tgz\",\n \"integrity\": \"sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/emoji-regex\": {\n \"version\": \"8.0.0\",\n \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",\n \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/es-module-lexer\": {\n \"version\": \"1.7.0\",\n \"resolved\": \"https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz\",\n \"integrity\": \"sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/esbuild\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz\",\n \"integrity\": \"sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/android-arm\": \"0.18.20\",\n \"@esbuild/android-arm64\": \"0.18.20\",\n \"@esbuild/android-x64\": \"0.18.20\",\n \"@esbuild/darwin-arm64\": \"0.18.20\",\n \"@esbuild/darwin-x64\": \"0.18.20\",\n \"@esbuild/freebsd-arm64\": \"0.18.20\",\n \"@esbuild/freebsd-x64\": \"0.18.20\",\n \"@esbuild/linux-arm\": \"0.18.20\",\n \"@esbuild/linux-arm64\": \"0.18.20\",\n \"@esbuild/linux-ia32\": \"0.18.20\",\n \"@esbuild/linux-loong64\": \"0.18.20\",\n \"@esbuild/linux-mips64el\": \"0.18.20\",\n \"@esbuild/linux-ppc64\": \"0.18.20\",\n \"@esbuild/linux-riscv64\": \"0.18.20\",\n \"@esbuild/linux-s390x\": \"0.18.20\",\n \"@esbuild/linux-x64\": \"0.18.20\",\n \"@esbuild/netbsd-x64\": \"0.18.20\",\n \"@esbuild/openbsd-x64\": \"0.18.20\",\n \"@esbuild/sunos-x64\": \"0.18.20\",\n \"@esbuild/win32-arm64\": \"0.18.20\",\n \"@esbuild/win32-ia32\": \"0.18.20\",\n \"@esbuild/win32-x64\": \"0.18.20\"\n }\n },\n \"node_modules/escalade\": {\n \"version\": \"3.2.0\",\n \"resolved\": \"https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz\",\n \"integrity\": \"sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/estree-walker\": {\n \"version\": \"3.0.3\",\n \"resolved\": \"https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz\",\n \"integrity\": \"sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"^1.0.0\"\n }\n },\n \"node_modules/expect-type\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz\",\n \"integrity\": \"sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=12.0.0\"\n }\n },\n \"node_modules/fdir\": {\n \"version\": \"6.4.6\",\n \"resolved\": \"https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz\",\n \"integrity\": \"sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"picomatch\": \"^3 || ^4\"\n },\n \"peerDependenciesMeta\": {\n \"picomatch\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/fsevents\": {\n \"version\": \"2.3.3\",\n \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz\",\n \"integrity\": \"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \"^8.16.0 || ^10.6.0 || >=11.0.0\"\n }\n },\n \"node_modules/gensync\": {\n \"version\": \"1.0.0-beta.2\",\n \"resolved\": \"https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz\",\n \"integrity\": \"sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/get-caller-file\": {\n \"version\": \"2.0.5\",\n \"resolved\": \"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz\",\n \"integrity\": \"sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \"6.* || 8.* || >= 10.*\"\n }\n },\n \"node_modules/get-tsconfig\": {\n \"version\": \"4.10.1\",\n \"resolved\": \"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz\",\n \"integrity\": \"sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"resolve-pkg-maps\": \"^1.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/get-tsconfig?sponsor=1\"\n }\n },\n \"node_modules/has-flag\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",\n \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/invariant\": {\n \"version\": \"2.2.4\",\n \"resolved\": \"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz\",\n \"integrity\": \"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"loose-envify\": \"^1.0.0\"\n }\n },\n \"node_modules/is-fullwidth-code-point\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",\n \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/is-network-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz\",\n \"integrity\": \"sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/js-tokens\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz\",\n \"integrity\": \"sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==\",\n \"license\": \"MIT\"\n },\n \"node_modules/jsesc\": {\n \"version\": \"3.1.0\",\n \"resolved\": \"https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz\",\n \"integrity\": \"sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"jsesc\": \"bin/jsesc\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/json5\": {\n \"version\": \"2.2.3\",\n \"resolved\": \"https://registry.npmjs.org/json5/-/json5-2.2.3.tgz\",\n \"integrity\": \"sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"json5\": \"lib/cli.js\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/lodash\": {\n \"version\": \"4.17.21\",\n \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",\n \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/loose-envify\": {\n \"version\": \"1.4.0\",\n \"resolved\": \"https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz\",\n \"integrity\": \"sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^3.0.0 || ^4.0.0\"\n },\n \"bin\": {\n \"loose-envify\": \"cli.js\"\n }\n },\n \"node_modules/loupe\": {\n \"version\": \"3.1.4\",\n \"resolved\": \"https://registry.npmjs.org/loupe/-/loupe-3.1.4.tgz\",\n \"integrity\": \"sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/lru-cache\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz\",\n \"integrity\": \"sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"yallist\": \"^3.0.2\"\n }\n },\n \"node_modules/magic-string\": {\n \"version\": \"0.30.17\",\n \"resolved\": \"https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz\",\n \"integrity\": \"sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\"\n }\n },\n \"node_modules/ms\": {\n \"version\": \"2.1.3\",\n \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",\n \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/node-gyp-build-optional-packages\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz\",\n \"integrity\": \"sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==\",\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"detect-libc\": \"^2.0.1\"\n },\n \"bin\": {\n \"node-gyp-build-optional-packages\": \"bin.js\",\n \"node-gyp-build-optional-packages-optional\": \"optional.js\",\n \"node-gyp-build-optional-packages-test\": \"build-test.js\"\n }\n },\n \"node_modules/node-releases\": {\n \"version\": \"2.0.19\",\n \"resolved\": \"https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz\",\n \"integrity\": \"sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/on-change\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/on-change/-/on-change-5.0.1.tgz\",\n \"integrity\": \"sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/on-change?sponsor=1\"\n }\n },\n \"node_modules/p-retry\": {\n \"version\": \"6.2.1\",\n \"resolved\": \"https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz\",\n \"integrity\": \"sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"@types/retry\": \"0.12.2\",\n \"is-network-error\": \"^1.0.0\",\n \"retry\": \"^0.13.1\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/pathval\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz\",\n \"integrity\": \"sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 14.16\"\n }\n },\n \"node_modules/picocolors\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz\",\n \"integrity\": \"sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/picomatch\": {\n \"version\": \"4.0.2\",\n \"resolved\": \"https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz\",\n \"integrity\": \"sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/jonschlinkert\"\n }\n },\n \"node_modules/postcss\": {\n \"version\": \"8.5.6\",\n \"resolved\": \"https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz\",\n \"integrity\": \"sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/postcss/\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/postcss\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"nanoid\": \"^3.3.11\",\n \"picocolors\": \"^1.1.1\",\n \"source-map-js\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || >=14\"\n }\n },\n \"node_modules/react\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react/-/react-18.3.1.tgz\",\n \"integrity\": \"sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n },\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/react-dom\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz\",\n \"integrity\": \"sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\",\n \"scheduler\": \"^0.23.2\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.3.1\"\n }\n },\n \"node_modules/react-refresh\": {\n \"version\": \"0.17.0\",\n \"resolved\": \"https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz\",\n \"integrity\": \"sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/require-directory\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz\",\n \"integrity\": \"sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/resolve-pkg-maps\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz\",\n \"integrity\": \"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/resolve-pkg-maps?sponsor=1\"\n }\n },\n \"node_modules/retry\": {\n \"version\": \"0.13.1\",\n \"resolved\": \"https://registry.npmjs.org/retry/-/retry-0.13.1.tgz\",\n \"integrity\": \"sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">= 4\"\n }\n },\n \"node_modules/rollup\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/rollup/-/rollup-4.45.0.tgz\",\n \"integrity\": \"sha512-WLjEcJRIo7i3WDDgOIJqVI2d+lAC3EwvOGy+Xfq6hs+GQuAA4Di/H72xmXkOhrIWFg2PFYSKZYfH0f4vfKXN4A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"1.0.8\"\n },\n \"bin\": {\n \"rollup\": \"dist/bin/rollup\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"optionalDependencies\": {\n \"@rollup/rollup-android-arm-eabi\": \"4.45.0\",\n \"@rollup/rollup-android-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-x64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-arm64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-x64\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-gnueabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-musleabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-loongarch64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-powerpc64le-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-s390x-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-musl\": \"4.45.0\",\n \"@rollup/rollup-win32-arm64-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-ia32-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-x64-msvc\": \"4.45.0\",\n \"fsevents\": \"~2.3.2\"\n }\n },\n \"node_modules/rxjs\": {\n \"version\": \"7.8.2\",\n \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz\",\n \"integrity\": \"sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"tslib\": \"^2.1.0\"\n }\n },\n \"node_modules/scheduler\": {\n \"version\": \"0.23.2\",\n \"resolved\": \"https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz\",\n \"integrity\": \"sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n }\n },\n \"node_modules/semver\": {\n \"version\": \"6.3.1\",\n \"resolved\": \"https://registry.npmjs.org/semver/-/semver-6.3.1.tgz\",\n \"integrity\": \"sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"bin\": {\n \"semver\": \"bin/semver.js\"\n }\n },\n \"node_modules/shell-quote\": {\n \"version\": \"1.8.3\",\n \"resolved\": \"https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz\",\n \"integrity\": \"sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 0.4\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/ljharb\"\n }\n },\n \"node_modules/siginfo\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz\",\n \"integrity\": \"sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/source-map\": {\n \"version\": \"0.6.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz\",\n \"integrity\": \"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/source-map-js\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz\",\n \"integrity\": \"sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/source-map-support\": {\n \"version\": \"0.5.21\",\n \"resolved\": \"https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz\",\n \"integrity\": \"sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"buffer-from\": \"^1.0.0\",\n \"source-map\": \"^0.6.0\"\n }\n },\n \"node_modules/spawn-command\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz\",\n \"integrity\": \"sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==\",\n \"dev\": true\n },\n \"node_modules/stackback\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz\",\n \"integrity\": \"sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/std-env\": {\n \"version\": \"3.9.0\",\n \"resolved\": \"https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz\",\n \"integrity\": \"sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/string-width\": {\n \"version\": \"4.2.3\",\n \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",\n \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"emoji-regex\": \"^8.0.0\",\n \"is-fullwidth-code-point\": \"^3.0.0\",\n \"strip-ansi\": \"^6.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-ansi\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",\n \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-regex\": \"^5.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-literal\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz\",\n \"integrity\": \"sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^9.0.1\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/strip-literal/node_modules/js-tokens\": {\n \"version\": \"9.0.1\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz\",\n \"integrity\": \"sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/supports-color\": {\n \"version\": \"8.1.1\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",\n \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/supports-color?sponsor=1\"\n }\n },\n \"node_modules/tinybench\": {\n \"version\": \"2.9.0\",\n \"resolved\": \"https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz\",\n \"integrity\": \"sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyexec\": {\n \"version\": \"0.3.2\",\n \"resolved\": \"https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz\",\n \"integrity\": \"sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyglobby\": {\n \"version\": \"0.2.14\",\n \"resolved\": \"https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz\",\n \"integrity\": \"sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"fdir\": \"^6.4.4\",\n \"picomatch\": \"^4.0.2\"\n },\n \"engines\": {\n \"node\": \">=12.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/SuperchupuDev\"\n }\n },\n \"node_modules/tinypool\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz\",\n \"integrity\": \"sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n }\n },\n \"node_modules/tinyrainbow\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz\",\n \"integrity\": \"sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tinyspy\": {\n \"version\": \"4.0.3\",\n \"resolved\": \"https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz\",\n \"integrity\": \"sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tree-kill\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz\",\n \"integrity\": \"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"tree-kill\": \"cli.js\"\n }\n },\n \"node_modules/tslib\": {\n \"version\": \"2.8.1\",\n \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz\",\n \"integrity\": \"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==\",\n \"dev\": true,\n \"license\": \"0BSD\"\n },\n \"node_modules/tsx\": {\n \"version\": \"3.14.0\",\n \"resolved\": \"https://registry.npmjs.org/tsx/-/tsx-3.14.0.tgz\",\n \"integrity\": \"sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"~0.18.20\",\n \"get-tsconfig\": \"^4.7.2\",\n \"source-map-support\": \"^0.5.21\"\n },\n \"bin\": {\n \"tsx\": \"dist/cli.mjs\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n }\n },\n \"node_modules/typescript\": {\n \"version\": \"5.8.3\",\n \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz\",\n \"integrity\": \"sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"bin\": {\n \"tsc\": \"bin/tsc\",\n \"tsserver\": \"bin/tsserver\"\n },\n \"engines\": {\n \"node\": \">=14.17\"\n }\n },\n \"node_modules/undici-types\": {\n \"version\": \"6.21.0\",\n \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/update-browserslist-db\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz\",\n \"integrity\": \"sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"escalade\": \"^3.2.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"bin\": {\n \"update-browserslist-db\": \"cli.js\"\n },\n \"peerDependencies\": {\n \"browserslist\": \">= 4.21.0\"\n }\n },\n \"node_modules/use-sync-external-store\": {\n \"version\": \"1.5.0\",\n \"resolved\": \"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz\",\n \"integrity\": \"sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==\",\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/vite\": {\n \"version\": \"5.4.19\",\n \"resolved\": \"https://registry.npmjs.org/vite/-/vite-5.4.19.tgz\",\n \"integrity\": \"sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"^0.21.3\",\n \"postcss\": \"^8.4.43\",\n \"rollup\": \"^4.20.0\"\n },\n \"bin\": {\n \"vite\": \"bin/vite.js\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/vitejs/vite?sponsor=1\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n },\n \"peerDependencies\": {\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"less\": \"*\",\n \"lightningcss\": \"^1.21.0\",\n \"sass\": \"*\",\n \"sass-embedded\": \"*\",\n \"stylus\": \"*\",\n \"sugarss\": \"*\",\n \"terser\": \"^5.4.0\"\n },\n \"peerDependenciesMeta\": {\n \"@types/node\": {\n \"optional\": true\n },\n \"less\": {\n \"optional\": true\n },\n \"lightningcss\": {\n \"optional\": true\n },\n \"sass\": {\n \"optional\": true\n },\n \"sass-embedded\": {\n \"optional\": true\n },\n \"stylus\": {\n \"optional\": true\n },\n \"sugarss\": {\n \"optional\": true\n },\n \"terser\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/vite-node\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz\",\n \"integrity\": \"sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cac\": \"^6.7.14\",\n \"debug\": \"^4.4.1\",\n \"es-module-lexer\": \"^1.7.0\",\n \"pathe\": \"^2.0.3\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\"\n },\n \"bin\": {\n \"vite-node\": \"vite-node.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz\",\n \"integrity\": \"sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz\",\n \"integrity\": \"sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz\",\n \"integrity\": \"sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz\",\n \"integrity\": \"sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/esbuild\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz\",\n \"integrity\": \"sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.21.5\",\n \"@esbuild/android-arm\": \"0.21.5\",\n \"@esbuild/android-arm64\": \"0.21.5\",\n \"@esbuild/android-x64\": \"0.21.5\",\n \"@esbuild/darwin-arm64\": \"0.21.5\",\n \"@esbuild/darwin-x64\": \"0.21.5\",\n \"@esbuild/freebsd-arm64\": \"0.21.5\",\n \"@esbuild/freebsd-x64\": \"0.21.5\",\n \"@esbuild/linux-arm\": \"0.21.5\",\n \"@esbuild/linux-arm64\": \"0.21.5\",\n \"@esbuild/linux-ia32\": \"0.21.5\",\n \"@esbuild/linux-loong64\": \"0.21.5\",\n \"@esbuild/linux-mips64el\": \"0.21.5\",\n \"@esbuild/linux-ppc64\": \"0.21.5\",\n \"@esbuild/linux-riscv64\": \"0.21.5\",\n \"@esbuild/linux-s390x\": \"0.21.5\",\n \"@esbuild/linux-x64\": \"0.21.5\",\n \"@esbuild/netbsd-x64\": \"0.21.5\",\n \"@esbuild/openbsd-x64\": \"0.21.5\",\n \"@esbuild/sunos-x64\": \"0.21.5\",\n \"@esbuild/win32-arm64\": \"0.21.5\",\n \"@esbuild/win32-ia32\": \"0.21.5\",\n \"@esbuild/win32-x64\": \"0.21.5\"\n }\n },\n \"node_modules/vitest\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz\",\n \"integrity\": \"sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/chai\": \"^5.2.2\",\n \"@vitest/expect\": \"3.2.4\",\n \"@vitest/mocker\": \"3.2.4\",\n \"@vitest/pretty-format\": \"^3.2.4\",\n \"@vitest/runner\": \"3.2.4\",\n \"@vitest/snapshot\": \"3.2.4\",\n \"@vitest/spy\": \"3.2.4\",\n \"@vitest/utils\": \"3.2.4\",\n \"chai\": \"^5.2.0\",\n \"debug\": \"^4.4.1\",\n \"expect-type\": \"^1.2.1\",\n \"magic-string\": \"^0.30.17\",\n \"pathe\": \"^2.0.3\",\n \"picomatch\": \"^4.0.2\",\n \"std-env\": \"^3.9.0\",\n \"tinybench\": \"^2.9.0\",\n \"tinyexec\": \"^0.3.2\",\n \"tinyglobby\": \"^0.2.14\",\n \"tinypool\": \"^1.1.1\",\n \"tinyrainbow\": \"^2.0.0\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\",\n \"vite-node\": \"3.2.4\",\n \"why-is-node-running\": \"^2.3.0\"\n },\n \"bin\": {\n \"vitest\": \"vitest.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"@edge-runtime/vm\": \"*\",\n \"@types/debug\": \"^4.1.12\",\n \"@types/node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\",\n \"@vitest/browser\": \"3.2.4\",\n \"@vitest/ui\": \"3.2.4\",\n \"happy-dom\": \"*\",\n \"jsdom\": \"*\"\n },\n \"peerDependenciesMeta\": {\n \"@edge-runtime/vm\": {\n \"optional\": true\n },\n \"@types/debug\": {\n \"optional\": true\n },\n \"@types/node\": {\n \"optional\": true\n },\n \"@vitest/browser\": {\n \"optional\": true\n },\n \"@vitest/ui\": {\n \"optional\": true\n },\n \"happy-dom\": {\n \"optional\": true\n },\n \"jsdom\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/why-is-node-running\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz\",\n \"integrity\": \"sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"siginfo\": \"^2.0.0\",\n \"stackback\": \"0.0.2\"\n },\n \"bin\": {\n \"why-is-node-running\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/wrap-ansi\": {\n \"version\": \"7.0.0\",\n \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",\n \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.0.0\",\n \"string-width\": \"^4.1.0\",\n \"strip-ansi\": \"^6.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/wrap-ansi?sponsor=1\"\n }\n },\n \"node_modules/y18n\": {\n \"version\": \"5.0.8\",\n \"resolved\": \"https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz\",\n \"integrity\": \"sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/yallist\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz\",\n \"integrity\": \"sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/yargs\": {\n \"version\": \"17.7.2\",\n \"resolved\": \"https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz\",\n \"integrity\": \"sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cliui\": \"^8.0.1\",\n \"escalade\": \"^3.1.1\",\n \"get-caller-file\": \"^2.0.5\",\n \"require-directory\": \"^2.1.1\",\n \"string-width\": \"^4.2.3\",\n \"y18n\": \"^5.0.5\",\n \"yargs-parser\": \"^21.1.1\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yargs-parser\": {\n \"version\": \"21.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz\",\n \"integrity\": \"sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/zod\": {\n \"version\": \"3.25.76\",\n \"resolved\": \"https://registry.npmjs.org/zod/-/zod-3.25.76.tgz\",\n \"integrity\": \"sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"funding\": {\n \"url\": \"https://github.com/sponsors/colinhacks\"\n }\n }\n }\n}\n",
- "package.json": "{\n \"name\": \"example-rate\",\n \"version\": \"0.9.1\",\n \"private\": true,\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"concurrently \\\"npm run dev:backend\\\" \\\"npm run dev:frontend\\\"\",\n \"dev:backend\": \"tsx --watch src/backend/server.ts\",\n \"dev:frontend\": \"vite\",\n \"build\": \"vite build\",\n \"check-types\": \"tsc --noEmit\",\n \"test\": \"vitest run\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^22.13.9\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"concurrently\": \"^8.2.2\",\n \"@rivetkit/actor\": \"^0.9.1\",\n \"tsx\": \"^3.12.7\",\n \"typescript\": \"^5.5.2\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^3.1.1\"\n },\n \"dependencies\": {\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"stableVersion\": \"0.8.0\"\n}\n",
+ "package-lock.json": "{\n \"name\": \"example-rate\",\n \"version\": \"0.9.1\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n \"name\": \"example-rate\",\n \"version\": \"0.9.1\",\n \"dependencies\": {\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"rivetkit\": \"^0.9.1\",\n \"@types/node\": \"^22.13.9\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"concurrently\": \"^8.2.2\",\n \"tsx\": \"^3.12.7\",\n \"typescript\": \"^5.5.2\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^3.1.1\"\n }\n },\n \"node_modules/@ampproject/remapping\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz\",\n \"integrity\": \"sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@jridgewell/gen-mapping\": \"^0.3.5\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/code-frame\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz\",\n \"integrity\": \"sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"js-tokens\": \"^4.0.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/compat-data\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz\",\n \"integrity\": \"sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/core\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz\",\n \"integrity\": \"sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@ampproject/remapping\": \"^2.2.0\",\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-compilation-targets\": \"^7.27.2\",\n \"@babel/helper-module-transforms\": \"^7.27.3\",\n \"@babel/helpers\": \"^7.27.6\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/traverse\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"convert-source-map\": \"^2.0.0\",\n \"debug\": \"^4.1.0\",\n \"gensync\": \"^1.0.0-beta.2\",\n \"json5\": \"^2.2.3\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/babel\"\n }\n },\n \"node_modules/@babel/generator\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz\",\n \"integrity\": \"sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"@jridgewell/gen-mapping\": \"^0.3.12\",\n \"@jridgewell/trace-mapping\": \"^0.3.28\",\n \"jsesc\": \"^3.0.2\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-compilation-targets\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz\",\n \"integrity\": \"sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/compat-data\": \"^7.27.2\",\n \"@babel/helper-validator-option\": \"^7.27.1\",\n \"browserslist\": \"^4.24.0\",\n \"lru-cache\": \"^5.1.1\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-globals\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz\",\n \"integrity\": \"sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-imports\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz\",\n \"integrity\": \"sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/traverse\": \"^7.27.1\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-transforms\": {\n \"version\": \"7.27.3\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz\",\n \"integrity\": \"sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-module-imports\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"@babel/traverse\": \"^7.27.3\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0\"\n }\n },\n \"node_modules/@babel/helper-plugin-utils\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz\",\n \"integrity\": \"sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-string-parser\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz\",\n \"integrity\": \"sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-identifier\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz\",\n \"integrity\": \"sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-option\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz\",\n \"integrity\": \"sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helpers\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz\",\n \"integrity\": \"sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.6\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/parser\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz\",\n \"integrity\": \"sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.28.0\"\n },\n \"bin\": {\n \"parser\": \"bin/babel-parser.js\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-self\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz\",\n \"integrity\": \"sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-source\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz\",\n \"integrity\": \"sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/runtime\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz\",\n \"integrity\": \"sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/template\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz\",\n \"integrity\": \"sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/parser\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/traverse\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz\",\n \"integrity\": \"sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-globals\": \"^7.28.0\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.28.0\",\n \"debug\": \"^4.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/types\": {\n \"version\": \"7.28.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz\",\n \"integrity\": \"sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-string-parser\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz\",\n \"integrity\": \"sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==\",\n \"cpu\": [\n \"arm\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-win32-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"peer\": true\n },\n \"node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-arm\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz\",\n \"integrity\": \"sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz\",\n \"integrity\": \"sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz\",\n \"integrity\": \"sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz\",\n \"integrity\": \"sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz\",\n \"integrity\": \"sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz\",\n \"integrity\": \"sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz\",\n \"integrity\": \"sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz\",\n \"integrity\": \"sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz\",\n \"integrity\": \"sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@jridgewell/gen-mapping\": {\n \"version\": \"0.3.12\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz\",\n \"integrity\": \"sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n }\n },\n \"node_modules/@jridgewell/resolve-uri\": {\n \"version\": \"3.1.2\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz\",\n \"integrity\": \"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@jridgewell/sourcemap-codec\": {\n \"version\": \"1.5.4\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz\",\n \"integrity\": \"sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@jridgewell/trace-mapping\": {\n \"version\": \"0.3.29\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz\",\n \"integrity\": \"sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/resolve-uri\": \"^3.1.0\",\n \"@jridgewell/sourcemap-codec\": \"^1.4.14\"\n }\n },\n \"node_modules/rivetkit\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/rivetkit/-/actor-0.9.1.tgz\",\n \"integrity\": \"sha512-aVoWO81JrYql6hhXX+vRor0B+aeWrnh+9zkcrxbh0EXFBbS5XM8YE4sSFxNKmZThLbGNqfZ5enm1zuA92c7I1w==\",\n \"dev\": true,\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/core\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/core/-/core-0.9.1.tgz\",\n \"integrity\": \"sha512-0zYFKo08CQ72Rm6MaVKxcJSEEfn/ypGkkxTX06Q4meCGHuDJFbPA5wopa3NdxrKBPttcGg1QAmDd+1FZnlpubA==\",\n \"license\": \"Apache-2.0\",\n \"peer\": true,\n \"dependencies\": {\n \"cbor-x\": \"^1.6.0\",\n \"invariant\": \"^2.2.4\",\n \"on-change\": \"^5.0.1\",\n \"p-retry\": \"^6.2.1\",\n \"zod\": \"^3.25.67\"\n },\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"peerDependencies\": {\n \"@hono/node-server\": \"^1.14.0\",\n \"@hono/node-ws\": \"^1.1.1\",\n \"@hono/zod-openapi\": \"^0.19.6\",\n \"eventsource\": \"^3.0.5\",\n \"hono\": \"^4.7.0\",\n \"ws\": \"^8.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"@hono/node-server\": {\n \"optional\": true\n },\n \"@hono/node-ws\": {\n \"optional\": true\n },\n \"@hono/zod-openapi\": {\n \"optional\": true\n },\n \"eventsource\": {\n \"optional\": true\n },\n \"hono\": {\n \"optional\": true\n },\n \"ws\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@rivetkit/framework-base\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/framework-base/-/framework-base-0.9.1.tgz\",\n \"integrity\": \"sha512-FxhSqGAtDsD4k7gKS2EhJ5hHsEwI1+QR0vYThUBOLcmXM7zjMZndqIjVperQO4ck/zfjRqjm3lw7znkc+k0wNQ==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@tanstack/store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/react\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/react/-/react-0.9.1.tgz\",\n \"integrity\": \"sha512-0e0gNNj3qCrXHNIxE6ggEEX+E6HjdsSt9pJbWbaQQg+1bsywupRTSdgSDguDHjBvi9qhR9mh7UbNN3A9wYqXuA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@rivetkit/framework-base\": \"0.9.1\",\n \"@tanstack/react-store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\",\n \"react\": \"^18 || ^19\",\n \"react-dom\": \"^18 || ^19\"\n }\n },\n \"node_modules/@rolldown/pluginutils\": {\n \"version\": \"1.0.0-beta.19\",\n \"resolved\": \"https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz\",\n \"integrity\": \"sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@rollup/rollup-android-arm-eabi\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.0.tgz\",\n \"integrity\": \"sha512-2o/FgACbji4tW1dzXOqAV15Eu7DdgbKsF2QKcxfG4xbh5iwU7yr5RRP5/U+0asQliSYv5M4o7BevlGIoSL0LXg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-android-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-PSZ0SvMOjEAxwZeTx32eI/j5xSYtDCRxGu5k9zvzoY77xUNssZM+WV6HYBLROpY5CkXsbQjvz40fBb7WPwDqtQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-BA4yPIPssPB2aRAWzmqzQ3y2/KotkLyZukVB7j3psK/U3nVJdceo6qr9pLM2xN6iRP/wKfxEbOb1yrlZH6sYZg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-Pr2o0lvTwsiG4HCr43Zy9xXrHspyMvsvEw4FwKYqhli4FuLE5FjcZzuQ4cfPe0iUFCvSQG6lACI0xj74FDZKRA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-lYE8LkE5h4a/+6VnnLiL14zWMPnx6wNbDG23GcYFpRW1V9hYWHAw9lBZ6ZUIrOaoK7NliF1sdwYGiVmziUF4vA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-PVQWZK9sbzpvqC9Q0GlehNNSVHR+4m7+wET+7FgSnKG3ci5nAMgGmr9mGBXzAuE5SvguCKJ6mHL6vq1JaJ/gvw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-gnueabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-hLrmRl53prCcD+YXTfNvXd776HTxNh8wPAMllusQ+amcQmtgo3V5i/nkhPN6FakW+QVLoUUr2AsbtIRPFU3xIA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-musleabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-XBKGSYcrkdiRRjl+8XvrUR3AosXU0NvF7VuqMsm7s5nRy+nt58ZMB19Jdp1RdqewLcaYnpk8zeVs/4MlLZEJxw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-fRvZZPUiBz7NztBE/2QnCS5AtqLVhXmUOPj9IHlfGEXkapgImf4W9+FSkL8cWqoAjozyUzqFmSc4zh2ooaeF6g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-Btv2WRZOcUGi8XU80XwIvzTg4U6+l6D0V6sZTrZx214nrwxw5nAi8hysaXj/mctyClWgesyuxbeLylCBNauimg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loongarch64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-Li0emNnwtUZdLwHjQPBxn4VWztcrw/h7mgLyHiEI5Z0MhpeFGlzaiBHpSNVOMB/xucjXTTcO+dhv469Djr16KA==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-powerpc64le-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-sB8+pfkYx2kvpDCfd63d5ScYT0Fz1LO6jIb2zLZvmK9ob2D8DeVqrmBDE0iDK8KlBVmsTNzrjr3G1xV4eUZhSw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-5GQ6PFhh7E6jQm70p1aW05G2cap5zMOvO0se5JMecHeAdj5ZhWEHbJ4hiKpfi1nnnEdTauDXxPgXae/mqjow9w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-N/euLsBd1rekWcuduakTo/dJw6U6sBP3eUq+RXM9RNfPuWTvG2w/WObDkIvJ2KChy6oxZmOSC08Ak2OJA0UiAA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-s390x-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-2l9sA7d7QdikL0xQwNMO3xURBUNEWyHVHfAsHsUdq+E/pgLTUcCE+gih5PCdmyHmfTDeXUWVhqL0WZzg0nua3g==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-XZdD3fEEQcwG2KrJDdEQu7NrHonPxxaV0/w2HpvINBdcqebz1aL+0vM2WFJq4DeiAVT6F5SUQas65HY5JDqoPw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-7ayfgvtmmWgKWBkCGg5+xTQ0r5V1owVm67zTrsEY1008L5ro7mCyGYORomARt/OquB9KY7LpxVBZes+oSniAAQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-arm64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-B+IJgcBnE2bm93jEW5kHisqvPITs4ddLOROAcOc/diBgrEiQJJ6Qcjby75rFSmH5eMGrqJryUgJDhrfj942apQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-ia32-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-+CXwwG66g0/FpWOnP/v1HnrGVSOygK/osUbu3wPRy8ECXjoYKjRAyfxYpDQOfghC5qPJYLPH0oN4MCOjwgdMug==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@tanstack/react-store\": {\n \"version\": \"0.7.3\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.7.3.tgz\",\n \"integrity\": \"sha512-3Dnqtbw9P2P0gw8uUM8WP2fFfg8XMDSZCTsywRPZe/XqqYW8PGkXKZTvP0AHkE4mpqP9Y43GpOg9vwO44azu6Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@tanstack/store\": \"0.7.2\",\n \"use-sync-external-store\": \"^1.5.0\"\n },\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\",\n \"react-dom\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/@tanstack/store\": {\n \"version\": \"0.7.2\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/store/-/store-0.7.2.tgz\",\n \"integrity\": \"sha512-RP80Z30BYiPX2Pyo0Nyw4s1SJFH2jyM6f9i3HfX4pA+gm5jsnYryscdq2aIQLnL4TaGuQMO+zXmN9nh1Qck+Pg==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n }\n },\n \"node_modules/@types/babel__core\": {\n \"version\": \"7.20.5\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz\",\n \"integrity\": \"sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.20.7\",\n \"@babel/types\": \"^7.20.7\",\n \"@types/babel__generator\": \"*\",\n \"@types/babel__template\": \"*\",\n \"@types/babel__traverse\": \"*\"\n }\n },\n \"node_modules/@types/babel__generator\": {\n \"version\": \"7.27.0\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz\",\n \"integrity\": \"sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__template\": {\n \"version\": \"7.4.4\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz\",\n \"integrity\": \"sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.1.0\",\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__traverse\": {\n \"version\": \"7.20.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz\",\n \"integrity\": \"sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.20.7\"\n }\n },\n \"node_modules/@types/chai\": {\n \"version\": \"5.2.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz\",\n \"integrity\": \"sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/deep-eql\": \"*\"\n }\n },\n \"node_modules/@types/deep-eql\": {\n \"version\": \"4.0.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz\",\n \"integrity\": \"sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/estree\": {\n \"version\": \"1.0.8\",\n \"resolved\": \"https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz\",\n \"integrity\": \"sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/node\": {\n \"version\": \"22.16.3\",\n \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-22.16.3.tgz\",\n \"integrity\": \"sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"undici-types\": \"~6.21.0\"\n }\n },\n \"node_modules/@types/prop-types\": {\n \"version\": \"15.7.15\",\n \"resolved\": \"https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz\",\n \"integrity\": \"sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/react\": {\n \"version\": \"18.3.23\",\n \"resolved\": \"https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz\",\n \"integrity\": \"sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/prop-types\": \"*\",\n \"csstype\": \"^3.0.2\"\n }\n },\n \"node_modules/@types/react-dom\": {\n \"version\": \"18.3.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz\",\n \"integrity\": \"sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"@types/react\": \"^18.0.0\"\n }\n },\n \"node_modules/@types/retry\": {\n \"version\": \"0.12.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz\",\n \"integrity\": \"sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==\",\n \"license\": \"MIT\",\n \"peer\": true\n },\n \"node_modules/@vitejs/plugin-react\": {\n \"version\": \"4.6.0\",\n \"resolved\": \"https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz\",\n \"integrity\": \"sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/core\": \"^7.27.4\",\n \"@babel/plugin-transform-react-jsx-self\": \"^7.27.1\",\n \"@babel/plugin-transform-react-jsx-source\": \"^7.27.1\",\n \"@rolldown/pluginutils\": \"1.0.0-beta.19\",\n \"@types/babel__core\": \"^7.20.5\",\n \"react-refresh\": \"^0.17.0\"\n },\n \"engines\": {\n \"node\": \"^14.18.0 || >=16.0.0\"\n },\n \"peerDependencies\": {\n \"vite\": \"^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0\"\n }\n },\n \"node_modules/@vitest/expect\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz\",\n \"integrity\": \"sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/chai\": \"^5.2.2\",\n \"@vitest/spy\": \"3.2.4\",\n \"@vitest/utils\": \"3.2.4\",\n \"chai\": \"^5.2.0\",\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/mocker\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz\",\n \"integrity\": \"sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/spy\": \"3.2.4\",\n \"estree-walker\": \"^3.0.3\",\n \"magic-string\": \"^0.30.17\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"msw\": \"^2.4.9\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\"\n },\n \"peerDependenciesMeta\": {\n \"msw\": {\n \"optional\": true\n },\n \"vite\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@vitest/pretty-format\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz\",\n \"integrity\": \"sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/runner\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz\",\n \"integrity\": \"sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/utils\": \"3.2.4\",\n \"pathe\": \"^2.0.3\",\n \"strip-literal\": \"^3.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/snapshot\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz\",\n \"integrity\": \"sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/pretty-format\": \"3.2.4\",\n \"magic-string\": \"^0.30.17\",\n \"pathe\": \"^2.0.3\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/spy\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz\",\n \"integrity\": \"sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyspy\": \"^4.0.3\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/utils\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz\",\n \"integrity\": \"sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/pretty-format\": \"3.2.4\",\n \"loupe\": \"^3.1.4\",\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/ansi-regex\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",\n \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/ansi-styles\": {\n \"version\": \"4.3.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",\n \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-convert\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/assertion-error\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz\",\n \"integrity\": \"sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/browserslist\": {\n \"version\": \"4.25.1\",\n \"resolved\": \"https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz\",\n \"integrity\": \"sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"caniuse-lite\": \"^1.0.30001726\",\n \"electron-to-chromium\": \"^1.5.173\",\n \"node-releases\": \"^2.0.19\",\n \"update-browserslist-db\": \"^1.1.3\"\n },\n \"bin\": {\n \"browserslist\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7\"\n }\n },\n \"node_modules/buffer-from\": {\n \"version\": \"1.1.2\",\n \"resolved\": \"https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz\",\n \"integrity\": \"sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/cac\": {\n \"version\": \"6.7.14\",\n \"resolved\": \"https://registry.npmjs.org/cac/-/cac-6.7.14.tgz\",\n \"integrity\": \"sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/caniuse-lite\": {\n \"version\": \"1.0.30001727\",\n \"resolved\": \"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz\",\n \"integrity\": \"sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/caniuse-lite\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"CC-BY-4.0\"\n },\n \"node_modules/cbor-extract\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz\",\n \"integrity\": \"sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==\",\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"node-gyp-build-optional-packages\": \"5.1.1\"\n },\n \"bin\": {\n \"download-cbor-prebuilds\": \"bin/download-prebuilds.js\"\n },\n \"optionalDependencies\": {\n \"@cbor-extract/cbor-extract-darwin-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-darwin-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-win32-x64\": \"2.2.0\"\n }\n },\n \"node_modules/cbor-x\": {\n \"version\": \"1.6.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz\",\n \"integrity\": \"sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"optionalDependencies\": {\n \"cbor-extract\": \"^2.2.0\"\n }\n },\n \"node_modules/chai\": {\n \"version\": \"5.2.1\",\n \"resolved\": \"https://registry.npmjs.org/chai/-/chai-5.2.1.tgz\",\n \"integrity\": \"sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"assertion-error\": \"^2.0.1\",\n \"check-error\": \"^2.1.1\",\n \"deep-eql\": \"^5.0.1\",\n \"loupe\": \"^3.1.0\",\n \"pathval\": \"^2.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/chalk\": {\n \"version\": \"4.1.2\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",\n \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.1.0\",\n \"supports-color\": \"^7.1.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/chalk/node_modules/supports-color\": {\n \"version\": \"7.2.0\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",\n \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/check-error\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz\",\n \"integrity\": \"sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 16\"\n }\n },\n \"node_modules/cliui\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz\",\n \"integrity\": \"sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"string-width\": \"^4.2.0\",\n \"strip-ansi\": \"^6.0.1\",\n \"wrap-ansi\": \"^7.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/color-convert\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",\n \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-name\": \"~1.1.4\"\n },\n \"engines\": {\n \"node\": \">=7.0.0\"\n }\n },\n \"node_modules/color-name\": {\n \"version\": \"1.1.4\",\n \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",\n \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/concurrently\": {\n \"version\": \"8.2.2\",\n \"resolved\": \"https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz\",\n \"integrity\": \"sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"chalk\": \"^4.1.2\",\n \"date-fns\": \"^2.30.0\",\n \"lodash\": \"^4.17.21\",\n \"rxjs\": \"^7.8.1\",\n \"shell-quote\": \"^1.8.1\",\n \"spawn-command\": \"0.0.2\",\n \"supports-color\": \"^8.1.1\",\n \"tree-kill\": \"^1.2.2\",\n \"yargs\": \"^17.7.2\"\n },\n \"bin\": {\n \"conc\": \"dist/bin/concurrently.js\",\n \"concurrently\": \"dist/bin/concurrently.js\"\n },\n \"engines\": {\n \"node\": \"^14.13.0 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/open-cli-tools/concurrently?sponsor=1\"\n }\n },\n \"node_modules/convert-source-map\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz\",\n \"integrity\": \"sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/csstype\": {\n \"version\": \"3.1.3\",\n \"resolved\": \"https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz\",\n \"integrity\": \"sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/date-fns\": {\n \"version\": \"2.30.0\",\n \"resolved\": \"https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz\",\n \"integrity\": \"sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/runtime\": \"^7.21.0\"\n },\n \"engines\": {\n \"node\": \">=0.11\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/date-fns\"\n }\n },\n \"node_modules/debug\": {\n \"version\": \"4.4.1\",\n \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.4.1.tgz\",\n \"integrity\": \"sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ms\": \"^2.1.3\"\n },\n \"engines\": {\n \"node\": \">=6.0\"\n },\n \"peerDependenciesMeta\": {\n \"supports-color\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/deep-eql\": {\n \"version\": \"5.0.2\",\n \"resolved\": \"https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz\",\n \"integrity\": \"sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/detect-libc\": {\n \"version\": \"2.0.4\",\n \"resolved\": \"https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz\",\n \"integrity\": \"sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==\",\n \"license\": \"Apache-2.0\",\n \"optional\": true,\n \"peer\": true,\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/electron-to-chromium\": {\n \"version\": \"1.5.183\",\n \"resolved\": \"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.183.tgz\",\n \"integrity\": \"sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/emoji-regex\": {\n \"version\": \"8.0.0\",\n \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",\n \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/es-module-lexer\": {\n \"version\": \"1.7.0\",\n \"resolved\": \"https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz\",\n \"integrity\": \"sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/esbuild\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz\",\n \"integrity\": \"sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/android-arm\": \"0.18.20\",\n \"@esbuild/android-arm64\": \"0.18.20\",\n \"@esbuild/android-x64\": \"0.18.20\",\n \"@esbuild/darwin-arm64\": \"0.18.20\",\n \"@esbuild/darwin-x64\": \"0.18.20\",\n \"@esbuild/freebsd-arm64\": \"0.18.20\",\n \"@esbuild/freebsd-x64\": \"0.18.20\",\n \"@esbuild/linux-arm\": \"0.18.20\",\n \"@esbuild/linux-arm64\": \"0.18.20\",\n \"@esbuild/linux-ia32\": \"0.18.20\",\n \"@esbuild/linux-loong64\": \"0.18.20\",\n \"@esbuild/linux-mips64el\": \"0.18.20\",\n \"@esbuild/linux-ppc64\": \"0.18.20\",\n \"@esbuild/linux-riscv64\": \"0.18.20\",\n \"@esbuild/linux-s390x\": \"0.18.20\",\n \"@esbuild/linux-x64\": \"0.18.20\",\n \"@esbuild/netbsd-x64\": \"0.18.20\",\n \"@esbuild/openbsd-x64\": \"0.18.20\",\n \"@esbuild/sunos-x64\": \"0.18.20\",\n \"@esbuild/win32-arm64\": \"0.18.20\",\n \"@esbuild/win32-ia32\": \"0.18.20\",\n \"@esbuild/win32-x64\": \"0.18.20\"\n }\n },\n \"node_modules/escalade\": {\n \"version\": \"3.2.0\",\n \"resolved\": \"https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz\",\n \"integrity\": \"sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/estree-walker\": {\n \"version\": \"3.0.3\",\n \"resolved\": \"https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz\",\n \"integrity\": \"sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"^1.0.0\"\n }\n },\n \"node_modules/expect-type\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz\",\n \"integrity\": \"sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=12.0.0\"\n }\n },\n \"node_modules/fdir\": {\n \"version\": \"6.4.6\",\n \"resolved\": \"https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz\",\n \"integrity\": \"sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"picomatch\": \"^3 || ^4\"\n },\n \"peerDependenciesMeta\": {\n \"picomatch\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/fsevents\": {\n \"version\": \"2.3.3\",\n \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz\",\n \"integrity\": \"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \"^8.16.0 || ^10.6.0 || >=11.0.0\"\n }\n },\n \"node_modules/gensync\": {\n \"version\": \"1.0.0-beta.2\",\n \"resolved\": \"https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz\",\n \"integrity\": \"sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/get-caller-file\": {\n \"version\": \"2.0.5\",\n \"resolved\": \"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz\",\n \"integrity\": \"sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \"6.* || 8.* || >= 10.*\"\n }\n },\n \"node_modules/get-tsconfig\": {\n \"version\": \"4.10.1\",\n \"resolved\": \"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz\",\n \"integrity\": \"sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"resolve-pkg-maps\": \"^1.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/get-tsconfig?sponsor=1\"\n }\n },\n \"node_modules/has-flag\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",\n \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/invariant\": {\n \"version\": \"2.2.4\",\n \"resolved\": \"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz\",\n \"integrity\": \"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"loose-envify\": \"^1.0.0\"\n }\n },\n \"node_modules/is-fullwidth-code-point\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",\n \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/is-network-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz\",\n \"integrity\": \"sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/js-tokens\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz\",\n \"integrity\": \"sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==\",\n \"license\": \"MIT\"\n },\n \"node_modules/jsesc\": {\n \"version\": \"3.1.0\",\n \"resolved\": \"https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz\",\n \"integrity\": \"sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"jsesc\": \"bin/jsesc\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/json5\": {\n \"version\": \"2.2.3\",\n \"resolved\": \"https://registry.npmjs.org/json5/-/json5-2.2.3.tgz\",\n \"integrity\": \"sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"json5\": \"lib/cli.js\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/lodash\": {\n \"version\": \"4.17.21\",\n \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",\n \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/loose-envify\": {\n \"version\": \"1.4.0\",\n \"resolved\": \"https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz\",\n \"integrity\": \"sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^3.0.0 || ^4.0.0\"\n },\n \"bin\": {\n \"loose-envify\": \"cli.js\"\n }\n },\n \"node_modules/loupe\": {\n \"version\": \"3.1.4\",\n \"resolved\": \"https://registry.npmjs.org/loupe/-/loupe-3.1.4.tgz\",\n \"integrity\": \"sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/lru-cache\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz\",\n \"integrity\": \"sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"yallist\": \"^3.0.2\"\n }\n },\n \"node_modules/magic-string\": {\n \"version\": \"0.30.17\",\n \"resolved\": \"https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz\",\n \"integrity\": \"sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\"\n }\n },\n \"node_modules/ms\": {\n \"version\": \"2.1.3\",\n \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",\n \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/node-gyp-build-optional-packages\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz\",\n \"integrity\": \"sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==\",\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"detect-libc\": \"^2.0.1\"\n },\n \"bin\": {\n \"node-gyp-build-optional-packages\": \"bin.js\",\n \"node-gyp-build-optional-packages-optional\": \"optional.js\",\n \"node-gyp-build-optional-packages-test\": \"build-test.js\"\n }\n },\n \"node_modules/node-releases\": {\n \"version\": \"2.0.19\",\n \"resolved\": \"https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz\",\n \"integrity\": \"sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/on-change\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/on-change/-/on-change-5.0.1.tgz\",\n \"integrity\": \"sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/on-change?sponsor=1\"\n }\n },\n \"node_modules/p-retry\": {\n \"version\": \"6.2.1\",\n \"resolved\": \"https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz\",\n \"integrity\": \"sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"@types/retry\": \"0.12.2\",\n \"is-network-error\": \"^1.0.0\",\n \"retry\": \"^0.13.1\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/pathval\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz\",\n \"integrity\": \"sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 14.16\"\n }\n },\n \"node_modules/picocolors\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz\",\n \"integrity\": \"sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/picomatch\": {\n \"version\": \"4.0.2\",\n \"resolved\": \"https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz\",\n \"integrity\": \"sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/jonschlinkert\"\n }\n },\n \"node_modules/postcss\": {\n \"version\": \"8.5.6\",\n \"resolved\": \"https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz\",\n \"integrity\": \"sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/postcss/\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/postcss\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"nanoid\": \"^3.3.11\",\n \"picocolors\": \"^1.1.1\",\n \"source-map-js\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || >=14\"\n }\n },\n \"node_modules/react\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react/-/react-18.3.1.tgz\",\n \"integrity\": \"sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n },\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/react-dom\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz\",\n \"integrity\": \"sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\",\n \"scheduler\": \"^0.23.2\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.3.1\"\n }\n },\n \"node_modules/react-refresh\": {\n \"version\": \"0.17.0\",\n \"resolved\": \"https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz\",\n \"integrity\": \"sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/require-directory\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz\",\n \"integrity\": \"sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/resolve-pkg-maps\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz\",\n \"integrity\": \"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/resolve-pkg-maps?sponsor=1\"\n }\n },\n \"node_modules/retry\": {\n \"version\": \"0.13.1\",\n \"resolved\": \"https://registry.npmjs.org/retry/-/retry-0.13.1.tgz\",\n \"integrity\": \"sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">= 4\"\n }\n },\n \"node_modules/rollup\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/rollup/-/rollup-4.45.0.tgz\",\n \"integrity\": \"sha512-WLjEcJRIo7i3WDDgOIJqVI2d+lAC3EwvOGy+Xfq6hs+GQuAA4Di/H72xmXkOhrIWFg2PFYSKZYfH0f4vfKXN4A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"1.0.8\"\n },\n \"bin\": {\n \"rollup\": \"dist/bin/rollup\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"optionalDependencies\": {\n \"@rollup/rollup-android-arm-eabi\": \"4.45.0\",\n \"@rollup/rollup-android-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-x64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-arm64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-x64\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-gnueabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-musleabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-loongarch64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-powerpc64le-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-s390x-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-musl\": \"4.45.0\",\n \"@rollup/rollup-win32-arm64-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-ia32-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-x64-msvc\": \"4.45.0\",\n \"fsevents\": \"~2.3.2\"\n }\n },\n \"node_modules/rxjs\": {\n \"version\": \"7.8.2\",\n \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz\",\n \"integrity\": \"sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"tslib\": \"^2.1.0\"\n }\n },\n \"node_modules/scheduler\": {\n \"version\": \"0.23.2\",\n \"resolved\": \"https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz\",\n \"integrity\": \"sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n }\n },\n \"node_modules/semver\": {\n \"version\": \"6.3.1\",\n \"resolved\": \"https://registry.npmjs.org/semver/-/semver-6.3.1.tgz\",\n \"integrity\": \"sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"bin\": {\n \"semver\": \"bin/semver.js\"\n }\n },\n \"node_modules/shell-quote\": {\n \"version\": \"1.8.3\",\n \"resolved\": \"https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz\",\n \"integrity\": \"sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 0.4\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/ljharb\"\n }\n },\n \"node_modules/siginfo\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz\",\n \"integrity\": \"sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/source-map\": {\n \"version\": \"0.6.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz\",\n \"integrity\": \"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/source-map-js\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz\",\n \"integrity\": \"sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/source-map-support\": {\n \"version\": \"0.5.21\",\n \"resolved\": \"https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz\",\n \"integrity\": \"sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"buffer-from\": \"^1.0.0\",\n \"source-map\": \"^0.6.0\"\n }\n },\n \"node_modules/spawn-command\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz\",\n \"integrity\": \"sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==\",\n \"dev\": true\n },\n \"node_modules/stackback\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz\",\n \"integrity\": \"sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/std-env\": {\n \"version\": \"3.9.0\",\n \"resolved\": \"https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz\",\n \"integrity\": \"sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/string-width\": {\n \"version\": \"4.2.3\",\n \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",\n \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"emoji-regex\": \"^8.0.0\",\n \"is-fullwidth-code-point\": \"^3.0.0\",\n \"strip-ansi\": \"^6.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-ansi\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",\n \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-regex\": \"^5.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-literal\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz\",\n \"integrity\": \"sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^9.0.1\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/strip-literal/node_modules/js-tokens\": {\n \"version\": \"9.0.1\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz\",\n \"integrity\": \"sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/supports-color\": {\n \"version\": \"8.1.1\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",\n \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/supports-color?sponsor=1\"\n }\n },\n \"node_modules/tinybench\": {\n \"version\": \"2.9.0\",\n \"resolved\": \"https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz\",\n \"integrity\": \"sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyexec\": {\n \"version\": \"0.3.2\",\n \"resolved\": \"https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz\",\n \"integrity\": \"sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyglobby\": {\n \"version\": \"0.2.14\",\n \"resolved\": \"https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz\",\n \"integrity\": \"sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"fdir\": \"^6.4.4\",\n \"picomatch\": \"^4.0.2\"\n },\n \"engines\": {\n \"node\": \">=12.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/SuperchupuDev\"\n }\n },\n \"node_modules/tinypool\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz\",\n \"integrity\": \"sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n }\n },\n \"node_modules/tinyrainbow\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz\",\n \"integrity\": \"sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tinyspy\": {\n \"version\": \"4.0.3\",\n \"resolved\": \"https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz\",\n \"integrity\": \"sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tree-kill\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz\",\n \"integrity\": \"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"tree-kill\": \"cli.js\"\n }\n },\n \"node_modules/tslib\": {\n \"version\": \"2.8.1\",\n \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz\",\n \"integrity\": \"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==\",\n \"dev\": true,\n \"license\": \"0BSD\"\n },\n \"node_modules/tsx\": {\n \"version\": \"3.14.0\",\n \"resolved\": \"https://registry.npmjs.org/tsx/-/tsx-3.14.0.tgz\",\n \"integrity\": \"sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"~0.18.20\",\n \"get-tsconfig\": \"^4.7.2\",\n \"source-map-support\": \"^0.5.21\"\n },\n \"bin\": {\n \"tsx\": \"dist/cli.mjs\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n }\n },\n \"node_modules/typescript\": {\n \"version\": \"5.8.3\",\n \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz\",\n \"integrity\": \"sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"bin\": {\n \"tsc\": \"bin/tsc\",\n \"tsserver\": \"bin/tsserver\"\n },\n \"engines\": {\n \"node\": \">=14.17\"\n }\n },\n \"node_modules/undici-types\": {\n \"version\": \"6.21.0\",\n \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/update-browserslist-db\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz\",\n \"integrity\": \"sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"escalade\": \"^3.2.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"bin\": {\n \"update-browserslist-db\": \"cli.js\"\n },\n \"peerDependencies\": {\n \"browserslist\": \">= 4.21.0\"\n }\n },\n \"node_modules/use-sync-external-store\": {\n \"version\": \"1.5.0\",\n \"resolved\": \"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz\",\n \"integrity\": \"sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==\",\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/vite\": {\n \"version\": \"5.4.19\",\n \"resolved\": \"https://registry.npmjs.org/vite/-/vite-5.4.19.tgz\",\n \"integrity\": \"sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"^0.21.3\",\n \"postcss\": \"^8.4.43\",\n \"rollup\": \"^4.20.0\"\n },\n \"bin\": {\n \"vite\": \"bin/vite.js\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/vitejs/vite?sponsor=1\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n },\n \"peerDependencies\": {\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"less\": \"*\",\n \"lightningcss\": \"^1.21.0\",\n \"sass\": \"*\",\n \"sass-embedded\": \"*\",\n \"stylus\": \"*\",\n \"sugarss\": \"*\",\n \"terser\": \"^5.4.0\"\n },\n \"peerDependenciesMeta\": {\n \"@types/node\": {\n \"optional\": true\n },\n \"less\": {\n \"optional\": true\n },\n \"lightningcss\": {\n \"optional\": true\n },\n \"sass\": {\n \"optional\": true\n },\n \"sass-embedded\": {\n \"optional\": true\n },\n \"stylus\": {\n \"optional\": true\n },\n \"sugarss\": {\n \"optional\": true\n },\n \"terser\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/vite-node\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz\",\n \"integrity\": \"sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cac\": \"^6.7.14\",\n \"debug\": \"^4.4.1\",\n \"es-module-lexer\": \"^1.7.0\",\n \"pathe\": \"^2.0.3\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\"\n },\n \"bin\": {\n \"vite-node\": \"vite-node.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz\",\n \"integrity\": \"sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz\",\n \"integrity\": \"sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz\",\n \"integrity\": \"sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz\",\n \"integrity\": \"sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/esbuild\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz\",\n \"integrity\": \"sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.21.5\",\n \"@esbuild/android-arm\": \"0.21.5\",\n \"@esbuild/android-arm64\": \"0.21.5\",\n \"@esbuild/android-x64\": \"0.21.5\",\n \"@esbuild/darwin-arm64\": \"0.21.5\",\n \"@esbuild/darwin-x64\": \"0.21.5\",\n \"@esbuild/freebsd-arm64\": \"0.21.5\",\n \"@esbuild/freebsd-x64\": \"0.21.5\",\n \"@esbuild/linux-arm\": \"0.21.5\",\n \"@esbuild/linux-arm64\": \"0.21.5\",\n \"@esbuild/linux-ia32\": \"0.21.5\",\n \"@esbuild/linux-loong64\": \"0.21.5\",\n \"@esbuild/linux-mips64el\": \"0.21.5\",\n \"@esbuild/linux-ppc64\": \"0.21.5\",\n \"@esbuild/linux-riscv64\": \"0.21.5\",\n \"@esbuild/linux-s390x\": \"0.21.5\",\n \"@esbuild/linux-x64\": \"0.21.5\",\n \"@esbuild/netbsd-x64\": \"0.21.5\",\n \"@esbuild/openbsd-x64\": \"0.21.5\",\n \"@esbuild/sunos-x64\": \"0.21.5\",\n \"@esbuild/win32-arm64\": \"0.21.5\",\n \"@esbuild/win32-ia32\": \"0.21.5\",\n \"@esbuild/win32-x64\": \"0.21.5\"\n }\n },\n \"node_modules/vitest\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz\",\n \"integrity\": \"sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/chai\": \"^5.2.2\",\n \"@vitest/expect\": \"3.2.4\",\n \"@vitest/mocker\": \"3.2.4\",\n \"@vitest/pretty-format\": \"^3.2.4\",\n \"@vitest/runner\": \"3.2.4\",\n \"@vitest/snapshot\": \"3.2.4\",\n \"@vitest/spy\": \"3.2.4\",\n \"@vitest/utils\": \"3.2.4\",\n \"chai\": \"^5.2.0\",\n \"debug\": \"^4.4.1\",\n \"expect-type\": \"^1.2.1\",\n \"magic-string\": \"^0.30.17\",\n \"pathe\": \"^2.0.3\",\n \"picomatch\": \"^4.0.2\",\n \"std-env\": \"^3.9.0\",\n \"tinybench\": \"^2.9.0\",\n \"tinyexec\": \"^0.3.2\",\n \"tinyglobby\": \"^0.2.14\",\n \"tinypool\": \"^1.1.1\",\n \"tinyrainbow\": \"^2.0.0\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\",\n \"vite-node\": \"3.2.4\",\n \"why-is-node-running\": \"^2.3.0\"\n },\n \"bin\": {\n \"vitest\": \"vitest.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"@edge-runtime/vm\": \"*\",\n \"@types/debug\": \"^4.1.12\",\n \"@types/node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\",\n \"@vitest/browser\": \"3.2.4\",\n \"@vitest/ui\": \"3.2.4\",\n \"happy-dom\": \"*\",\n \"jsdom\": \"*\"\n },\n \"peerDependenciesMeta\": {\n \"@edge-runtime/vm\": {\n \"optional\": true\n },\n \"@types/debug\": {\n \"optional\": true\n },\n \"@types/node\": {\n \"optional\": true\n },\n \"@vitest/browser\": {\n \"optional\": true\n },\n \"@vitest/ui\": {\n \"optional\": true\n },\n \"happy-dom\": {\n \"optional\": true\n },\n \"jsdom\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/why-is-node-running\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz\",\n \"integrity\": \"sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"siginfo\": \"^2.0.0\",\n \"stackback\": \"0.0.2\"\n },\n \"bin\": {\n \"why-is-node-running\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/wrap-ansi\": {\n \"version\": \"7.0.0\",\n \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",\n \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.0.0\",\n \"string-width\": \"^4.1.0\",\n \"strip-ansi\": \"^6.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/wrap-ansi?sponsor=1\"\n }\n },\n \"node_modules/y18n\": {\n \"version\": \"5.0.8\",\n \"resolved\": \"https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz\",\n \"integrity\": \"sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/yallist\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz\",\n \"integrity\": \"sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/yargs\": {\n \"version\": \"17.7.2\",\n \"resolved\": \"https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz\",\n \"integrity\": \"sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cliui\": \"^8.0.1\",\n \"escalade\": \"^3.1.1\",\n \"get-caller-file\": \"^2.0.5\",\n \"require-directory\": \"^2.1.1\",\n \"string-width\": \"^4.2.3\",\n \"y18n\": \"^5.0.5\",\n \"yargs-parser\": \"^21.1.1\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yargs-parser\": {\n \"version\": \"21.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz\",\n \"integrity\": \"sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/zod\": {\n \"version\": \"3.25.76\",\n \"resolved\": \"https://registry.npmjs.org/zod/-/zod-3.25.76.tgz\",\n \"integrity\": \"sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"funding\": {\n \"url\": \"https://github.com/sponsors/colinhacks\"\n }\n }\n }\n}\n",
+ "package.json": "{\n \"name\": \"example-rate\",\n \"version\": \"0.9.1\",\n \"private\": true,\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"concurrently \\\"npm run dev:backend\\\" \\\"npm run dev:frontend\\\"\",\n \"dev:backend\": \"tsx --watch src/backend/server.ts\",\n \"dev:frontend\": \"vite\",\n \"build\": \"vite build\",\n \"check-types\": \"tsc --noEmit\",\n \"test\": \"vitest run\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^22.13.9\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"concurrently\": \"^8.2.2\",\n \"rivetkit\": \"^0.9.1\",\n \"tsx\": \"^3.12.7\",\n \"typescript\": \"^5.5.2\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^3.1.1\"\n },\n \"dependencies\": {\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"stableVersion\": \"0.8.0\"\n}\n",
"tsconfig.json": "{\n \"compilerOptions\": {\n \"target\": \"esnext\",\n \"lib\": [\"esnext\", \"dom\"],\n \"jsx\": \"react-jsx\",\n \"module\": \"esnext\",\n \"moduleResolution\": \"bundler\",\n \"types\": [\"node\", \"vite/client\"],\n \"resolveJsonModule\": true,\n \"allowJs\": true,\n \"checkJs\": false,\n \"noEmit\": true,\n \"isolatedModules\": true,\n \"allowSyntheticDefaultImports\": true,\n \"forceConsistentCasingInFileNames\": true,\n \"strict\": true,\n \"skipLibCheck\": true\n },\n \"include\": [\"src/**/*\"],\n \"exclude\": [\"node_modules\", \"dist\"]\n}\n",
"vite.config.ts": "import react from \"@vitejs/plugin-react\";\nimport { defineConfig } from \"vite\";\n\nexport default defineConfig({\n\tplugins: [react()],\n\troot: \"src/frontend\",\n\tserver: {\n\t\tport: 3000,\n\t},\n});\n",
"vitest.config.ts": "import { defineConfig } from \"vitest/config\";\n\nexport default defineConfig({\n\ttest: {\n\t\tinclude: [\"tests/**/*.test.ts\"],\n\t},\n});\n",
"src/frontend/App.tsx": "import { createClient, createRivetKit } from \"@rivetkit/react\";\nimport { useEffect, useState } from \"react\";\nimport type { RateLimitResult, registry } from \"../backend/registry\";\n\nconst client = createClient(\"http://localhost:8080\");\nconst { useActor } = createRivetKit(client);\n\nfunction RateLimiterDemo({ userId }: { userId: string }) {\n\tconst [result, setResult] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\n\tconst rateLimiter = useActor({\n\t\tname: \"rateLimiter\",\n\t\tkey: [userId],\n\t});\n\n\tuseEffect(() => {\n\t\tif (rateLimiter.connection) {\n\t\t\t// Get initial status\n\t\t\trateLimiter.connection.getStatus().then((status) => {\n\t\t\t\tsetResult({\n\t\t\t\t\tallowed: status.remaining > 0,\n\t\t\t\t\tremaining: status.remaining,\n\t\t\t\t\tresetsIn: status.resetsIn,\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}, [rateLimiter.connection]);\n\n\tconst makeRequest = async () => {\n\t\tif (!rateLimiter.connection || loading) return;\n\n\t\tsetLoading(true);\n\t\ttry {\n\t\t\tconst response = await rateLimiter.connection.checkLimit();\n\t\t\tsetResult(response);\n\t\t} finally {\n\t\t\tsetLoading(false);\n\t\t}\n\t};\n\n\tconst resetLimiter = async () => {\n\t\tif (!rateLimiter.connection) return;\n\n\t\tawait rateLimiter.connection.reset();\n\t\t// Get updated status\n\t\tconst status = await rateLimiter.connection.getStatus();\n\t\tsetResult({\n\t\t\tallowed: status.remaining > 0,\n\t\t\tremaining: status.remaining,\n\t\t\tresetsIn: status.resetsIn,\n\t\t});\n\t};\n\n\tconst usagePercentage = result ? ((5 - result.remaining) / 5) * 100 : 0;\n\n\treturn (\n\t\t\n\t\t\t\n\n\t\t\t{result && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tStatus:\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{result.allowed ? \"✓ Request Allowed\" : \"✖ Request Blocked\"}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tRemaining Requests:\n\t\t\t\t\t\t{result.remaining} / 5\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tRate Limit Usage:\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tResets In:\n\t\t\t\t\t\t{result.resetsIn} seconds\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t\n\t\t\n\t);\n}\n\nexport function App() {\n\tconst [selectedUser, setSelectedUser] = useState(\"user-1\");\n\n\tconst users = [\n\t\t{ id: \"user-1\", name: \"User 1\" },\n\t\t{ id: \"user-2\", name: \"User 2\" },\n\t\t{ id: \"user-3\", name: \"User 3\" },\n\t\t{ id: \"api-client-1\", name: \"API Client 1\" },\n\t\t{ id: \"api-client-2\", name: \"API Client 2\" },\n\t];\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tRate Limiter Demo
\n\t\t\t\t5 requests per minute per user/client
\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tHow it works
\n\t\t\t\t\t\n\t\t\t\t\t\tThis rate limiter allows 5 requests per minute per user. Each user gets their own \n\t\t\t\t\t\tindependent rate limit counter. When the limit is exceeded, further requests are \n\t\t\t\t\t\tblocked until the window resets. Switch between users to see isolated rate limiting.\n\t\t\t\t\t
\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t \n\t\t\t\n\t\t\n\t);\n}",
"src/frontend/main.tsx": "import { StrictMode } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { App } from \"./App\";\n\nconst root = document.getElementById(\"root\");\nif (!root) throw new Error(\"Root element not found\");\n\ncreateRoot(root).render(\n\t\n\t\t \n\t \n);",
"src/frontend/index.html": "\n\n\n \n \n Rate Limiter Example \n \n\n\n \n \n\n",
- "src/backend/registry.ts": "import { actor, setup } from \"@rivetkit/actor\";\n\nexport type RateLimitResult = {\n\tallowed: boolean;\n\tremaining: number;\n\tresetsIn: number;\n};\n\nexport const rateLimiter = actor({\n\tonAuth: () => {},\n\t// Persistent state that survives restarts: https://rivet.gg/docs/actors/state\n\tstate: {\n\t\tcount: 0,\n\t\tresetAt: 0,\n\t},\n\n\tactions: {\n\t\t// Callable functions from clients: https://rivet.gg/docs/actors/actions\n\t\tcheckLimit: (c): RateLimitResult => {\n\t\t\tconst now = Date.now();\n\n\t\t\t// Reset if expired\n\t\t\tif (now > c.state.resetAt) {\n\t\t\t\t// State changes are automatically persisted\n\t\t\t\tc.state.count = 0;\n\t\t\t\tc.state.resetAt = now + 60000; // 1 minute window\n\t\t\t}\n\n\t\t\tconst allowed = c.state.count < 5;\n\n\t\t\t// Increment if allowed\n\t\t\tif (allowed) {\n\t\t\t\tc.state.count++;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tallowed,\n\t\t\t\tremaining: Math.max(0, 5 - c.state.count),\n\t\t\t\tresetsIn: Math.max(0, Math.round((c.state.resetAt - now) / 1000)),\n\t\t\t};\n\t\t},\n\n\t\tgetStatus: (c) => ({\n\t\t\tcount: c.state.count,\n\t\t\tresetAt: c.state.resetAt,\n\t\t\tremaining: Math.max(0, 5 - c.state.count),\n\t\t\tresetsIn: Math.max(0, Math.round((c.state.resetAt - Date.now()) / 1000)),\n\t\t}),\n\n\t\treset: (c) => {\n\t\t\tc.state.count = 0;\n\t\t\tc.state.resetAt = 0;\n\t\t\treturn { success: true };\n\t\t},\n\t},\n});\n\n// Register actors for use: https://rivet.gg/docs/setup\nexport const registry = setup({\n\tuse: { rateLimiter },\n});\n",
+ "src/backend/registry.ts": "import { actor, setup } from \"rivetkit\";\n\nexport type RateLimitResult = {\n\tallowed: boolean;\n\tremaining: number;\n\tresetsIn: number;\n};\n\nexport const rateLimiter = actor({\n\tonAuth: () => {},\n\t// Persistent state that survives restarts: https://rivet.gg/docs/actors/state\n\tstate: {\n\t\tcount: 0,\n\t\tresetAt: 0,\n\t},\n\n\tactions: {\n\t\t// Callable functions from clients: https://rivet.gg/docs/actors/actions\n\t\tcheckLimit: (c): RateLimitResult => {\n\t\t\tconst now = Date.now();\n\n\t\t\t// Reset if expired\n\t\t\tif (now > c.state.resetAt) {\n\t\t\t\t// State changes are automatically persisted\n\t\t\t\tc.state.count = 0;\n\t\t\t\tc.state.resetAt = now + 60000; // 1 minute window\n\t\t\t}\n\n\t\t\tconst allowed = c.state.count < 5;\n\n\t\t\t// Increment if allowed\n\t\t\tif (allowed) {\n\t\t\t\tc.state.count++;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tallowed,\n\t\t\t\tremaining: Math.max(0, 5 - c.state.count),\n\t\t\t\tresetsIn: Math.max(0, Math.round((c.state.resetAt - now) / 1000)),\n\t\t\t};\n\t\t},\n\n\t\tgetStatus: (c) => ({\n\t\t\tcount: c.state.count,\n\t\t\tresetAt: c.state.resetAt,\n\t\t\tremaining: Math.max(0, 5 - c.state.count),\n\t\t\tresetsIn: Math.max(0, Math.round((c.state.resetAt - Date.now()) / 1000)),\n\t\t}),\n\n\t\treset: (c) => {\n\t\t\tc.state.count = 0;\n\t\t\tc.state.resetAt = 0;\n\t\t\treturn { success: true };\n\t\t},\n\t},\n});\n\n// Register actors for use: https://rivet.gg/docs/setup\nexport const registry = setup({\n\tuse: { rateLimiter },\n});\n",
"src/backend/server.ts": "import { registry } from \"./registry\";\n\nregistry.runServer({\n\tcors: {\n\t\torigin: \"*\",\n\t},\n});\n"
}
},
@@ -171,17 +171,17 @@ export const examples: ExampleData[] = [
],
"tab": "sqlite",
"files": {
- "tests/database.test.ts": "import { setupTest } from \"@rivetkit/actor/test\";\nimport { expect, test, vi } from \"vitest\";\nimport { registry } from \"../src/backend/registry\";\n\n// Mock authentication\nvi.mock(\"../src/backend/my-utils\", () => ({\n\tauthenticate: vi.fn().mockResolvedValue(\"user123\"),\n}));\n\ntest(\"Database notes can handle basic CRUD operations\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst notes = client.notes.getOrCreate([\"test-notes\"]);\n\n\t// Test initial empty state\n\tconst initialNotes = await notes.getNotes();\n\texpect(initialNotes).toEqual([]);\n\n\t// Create a new note\n\tconst newNote = await notes.updateNote({ content: \"My first note\" });\n\texpect(newNote).toMatchObject({\n\t\tid: expect.stringMatching(/^note-\\d+$/),\n\t\tcontent: \"My first note\",\n\t\tupdatedAt: expect.any(Number),\n\t});\n\n\t// Verify note was added\n\tconst notesAfterAdd = await notes.getNotes();\n\texpect(notesAfterAdd).toHaveLength(1);\n\texpect(notesAfterAdd[0]).toEqual(newNote);\n});\n\ntest(\"Database notes can update existing notes\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst notes = client.notes.getOrCreate([\"test-update\"]);\n\n\t// Create a note\n\tconst originalNote = await notes.updateNote({ content: \"Original content\" });\n\tconst originalTime = originalNote.updatedAt;\n\n\t// Update the note\n\tconst updatedNote = await notes.updateNote({\n\t\tid: originalNote.id,\n\t\tcontent: \"Updated content\",\n\t});\n\n\texpect(updatedNote).toMatchObject({\n\t\tid: originalNote.id,\n\t\tcontent: \"Updated content\",\n\t\tupdatedAt: expect.any(Number),\n\t});\n\texpect(updatedNote.updatedAt).toBeGreaterThanOrEqual(originalTime);\n\n\t// Verify only one note exists\n\tconst allNotes = await notes.getNotes();\n\texpect(allNotes).toHaveLength(1);\n\texpect(allNotes[0]).toEqual(updatedNote);\n});\n\ntest(\"Database notes can delete notes\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst notes = client.notes.getOrCreate([\"test-delete\"]);\n\n\t// Create multiple notes\n\tconst note1 = await notes.updateNote({ content: \"Note 1\" });\n\tconst note2 = await notes.updateNote({ content: \"Note 2\" });\n\tconst note3 = await notes.updateNote({ content: \"Note 3\" });\n\n\t// Verify all notes exist\n\tlet allNotes = await notes.getNotes();\n\texpect(allNotes).toHaveLength(3);\n\n\t// Delete middle note\n\tconst deleteResult = await notes.deleteNote({ id: note2.id });\n\texpect(deleteResult).toBe(true);\n\n\t// Verify note was deleted\n\tallNotes = await notes.getNotes();\n\texpect(allNotes).toHaveLength(2);\n\texpect(allNotes.map((n) => n.id)).toEqual([note1.id, note3.id]);\n\n\t// Try to delete non-existent note\n\tconst deleteNonExistent = await notes.deleteNote({ id: \"non-existent\" });\n\texpect(deleteNonExistent).toBe(false);\n});\n\ntest(\"Database notes maintains proper timestamps\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst notes = client.notes.getOrCreate([\"test-timestamps\"]);\n\n\tconst note1 = await notes.updateNote({ content: \"First note\" });\n\tconst note2 = await notes.updateNote({ content: \"Second note\" });\n\tconst note3 = await notes.updateNote({ content: \"Third note\" });\n\n\texpect(note2.updatedAt).toBeGreaterThanOrEqual(note1.updatedAt);\n\texpect(note3.updatedAt).toBeGreaterThanOrEqual(note2.updatedAt);\n\n\tconst allNotes = await notes.getNotes();\n\tfor (let i = 1; i < allNotes.length; i++) {\n\t\texpect(allNotes[i].updatedAt).toBeGreaterThanOrEqual(\n\t\t\tallNotes[i - 1].updatedAt,\n\t\t);\n\t}\n});\n\ntest(\"Database notes handles empty content\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst notes = client.notes.getOrCreate([\"test-empty\"]);\n\n\t// Create note with empty content\n\tconst emptyNote = await notes.updateNote({ content: \"\" });\n\texpect(emptyNote.content).toBe(\"\");\n\texpect(emptyNote.id).toBeTruthy();\n\texpect(emptyNote.updatedAt).toBeGreaterThan(0);\n\n\t// Verify it was stored\n\tconst allNotes = await notes.getNotes();\n\texpect(allNotes).toHaveLength(1);\n\texpect(allNotes[0]).toEqual(emptyNote);\n});\n",
+ "tests/database.test.ts": "import { setupTest } from \"rivetkit/test\";\nimport { expect, test, vi } from \"vitest\";\nimport { registry } from \"../src/backend/registry\";\n\n// Mock authentication\nvi.mock(\"../src/backend/my-utils\", () => ({\n\tauthenticate: vi.fn().mockResolvedValue(\"user123\"),\n}));\n\ntest(\"Database notes can handle basic CRUD operations\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst notes = client.notes.getOrCreate([\"test-notes\"]);\n\n\t// Test initial empty state\n\tconst initialNotes = await notes.getNotes();\n\texpect(initialNotes).toEqual([]);\n\n\t// Create a new note\n\tconst newNote = await notes.updateNote({ content: \"My first note\" });\n\texpect(newNote).toMatchObject({\n\t\tid: expect.stringMatching(/^note-\\d+$/),\n\t\tcontent: \"My first note\",\n\t\tupdatedAt: expect.any(Number),\n\t});\n\n\t// Verify note was added\n\tconst notesAfterAdd = await notes.getNotes();\n\texpect(notesAfterAdd).toHaveLength(1);\n\texpect(notesAfterAdd[0]).toEqual(newNote);\n});\n\ntest(\"Database notes can update existing notes\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst notes = client.notes.getOrCreate([\"test-update\"]);\n\n\t// Create a note\n\tconst originalNote = await notes.updateNote({ content: \"Original content\" });\n\tconst originalTime = originalNote.updatedAt;\n\n\t// Update the note\n\tconst updatedNote = await notes.updateNote({\n\t\tid: originalNote.id,\n\t\tcontent: \"Updated content\",\n\t});\n\n\texpect(updatedNote).toMatchObject({\n\t\tid: originalNote.id,\n\t\tcontent: \"Updated content\",\n\t\tupdatedAt: expect.any(Number),\n\t});\n\texpect(updatedNote.updatedAt).toBeGreaterThanOrEqual(originalTime);\n\n\t// Verify only one note exists\n\tconst allNotes = await notes.getNotes();\n\texpect(allNotes).toHaveLength(1);\n\texpect(allNotes[0]).toEqual(updatedNote);\n});\n\ntest(\"Database notes can delete notes\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst notes = client.notes.getOrCreate([\"test-delete\"]);\n\n\t// Create multiple notes\n\tconst note1 = await notes.updateNote({ content: \"Note 1\" });\n\tconst note2 = await notes.updateNote({ content: \"Note 2\" });\n\tconst note3 = await notes.updateNote({ content: \"Note 3\" });\n\n\t// Verify all notes exist\n\tlet allNotes = await notes.getNotes();\n\texpect(allNotes).toHaveLength(3);\n\n\t// Delete middle note\n\tconst deleteResult = await notes.deleteNote({ id: note2.id });\n\texpect(deleteResult).toBe(true);\n\n\t// Verify note was deleted\n\tallNotes = await notes.getNotes();\n\texpect(allNotes).toHaveLength(2);\n\texpect(allNotes.map((n) => n.id)).toEqual([note1.id, note3.id]);\n\n\t// Try to delete non-existent note\n\tconst deleteNonExistent = await notes.deleteNote({ id: \"non-existent\" });\n\texpect(deleteNonExistent).toBe(false);\n});\n\ntest(\"Database notes maintains proper timestamps\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst notes = client.notes.getOrCreate([\"test-timestamps\"]);\n\n\tconst note1 = await notes.updateNote({ content: \"First note\" });\n\tconst note2 = await notes.updateNote({ content: \"Second note\" });\n\tconst note3 = await notes.updateNote({ content: \"Third note\" });\n\n\texpect(note2.updatedAt).toBeGreaterThanOrEqual(note1.updatedAt);\n\texpect(note3.updatedAt).toBeGreaterThanOrEqual(note2.updatedAt);\n\n\tconst allNotes = await notes.getNotes();\n\tfor (let i = 1; i < allNotes.length; i++) {\n\t\texpect(allNotes[i].updatedAt).toBeGreaterThanOrEqual(\n\t\t\tallNotes[i - 1].updatedAt,\n\t\t);\n\t}\n});\n\ntest(\"Database notes handles empty content\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst notes = client.notes.getOrCreate([\"test-empty\"]);\n\n\t// Create note with empty content\n\tconst emptyNote = await notes.updateNote({ content: \"\" });\n\texpect(emptyNote.content).toBe(\"\");\n\texpect(emptyNote.id).toBeTruthy();\n\texpect(emptyNote.updatedAt).toBeGreaterThan(0);\n\n\t// Verify it was stored\n\tconst allNotes = await notes.getNotes();\n\texpect(allNotes).toHaveLength(1);\n\texpect(allNotes[0]).toEqual(emptyNote);\n});\n",
"README.md": "# Database Notes for RivetKit\n\nExample project demonstrating persistent data storage and real-time updates with [RivetKit](https://rivetkit.org).\n\n[Learn More →](https://github.com/rivet-gg/rivetkit)\n\n[Discord](https://rivet.gg/discord) — [Documentation](https://rivetkit.org) — [Issues](https://github.com/rivet-gg/rivetkit/issues)\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 18+\n\n### Installation\n\n```sh\ngit clone https://github.com/rivet-gg/rivetkit\ncd rivetkit/examples/database\nnpm install\n```\n\n### Development\n\n```sh\nnpm run dev\n```\n\nOpen your browser to `http://localhost:3000`\n\n## Features\n\n- **Persistent Storage**: Notes are automatically saved and persist across sessions\n- **Real-time Updates**: Changes are instantly synchronized across all connected clients\n- **User Authentication**: Demonstrates basic authentication with token validation\n- **Multi-user Support**: Switch between different users to see isolated data\n- **CRUD Operations**: Create, read, update, and delete notes\n- **Edit in Place**: Click edit to modify notes inline\n- **Auto-sorting**: Notes are automatically sorted by last modified date\n\n## How it works\n\nThis example demonstrates:\n\n1. **Actor State Management**: Using RivetKit actors to manage persistent application state\n2. **Authentication**: Basic token-based authentication for user identification\n3. **Real-time Events**: Broadcasting changes to all connected clients using actor events\n4. **State Persistence**: Actor state is automatically persisted between sessions\n5. **Connection State**: Handle connection status and graceful degradation\n\n## Architecture\n\n- **Backend**: RivetKit actor that manages note storage and user authentication\n- **Frontend**: React application with real-time updates via RivetKit hooks\n- **State Management**: Each user gets their own actor instance for data isolation\n- **Authentication**: Mock token-based auth (replace with real auth in production)\n\n## Usage\n\n1. Start the development server\n2. Select a user from the dropdown to see their notes\n3. Add new notes using the input field\n4. Edit notes by clicking the \"Edit\" button\n5. Delete notes with the \"Delete\" button\n6. Open multiple tabs or users to see real-time synchronization\n\n## Extending\n\nThis example can be extended with:\n\n- Real database integration (PostgreSQL, MongoDB, etc.)\n- Proper JWT authentication\n- User registration and management\n- Note sharing and collaboration\n- Rich text editing\n- File attachments\n- Search and filtering\n\n## License\n\nApache 2.0",
- "package-lock.json": "{\n \"name\": \"example-database\",\n \"version\": \"0.9.1\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n \"name\": \"example-database\",\n \"version\": \"0.9.1\",\n \"dependencies\": {\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"@rivetkit/actor\": \"^0.9.1\",\n \"@types/node\": \"^22.13.9\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"concurrently\": \"^8.2.2\",\n \"tsx\": \"^3.12.7\",\n \"typescript\": \"^5.5.2\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^3.1.1\"\n }\n },\n \"node_modules/@ampproject/remapping\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz\",\n \"integrity\": \"sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@jridgewell/gen-mapping\": \"^0.3.5\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/code-frame\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz\",\n \"integrity\": \"sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"js-tokens\": \"^4.0.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/compat-data\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz\",\n \"integrity\": \"sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/core\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz\",\n \"integrity\": \"sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@ampproject/remapping\": \"^2.2.0\",\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-compilation-targets\": \"^7.27.2\",\n \"@babel/helper-module-transforms\": \"^7.27.3\",\n \"@babel/helpers\": \"^7.27.6\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/traverse\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"convert-source-map\": \"^2.0.0\",\n \"debug\": \"^4.1.0\",\n \"gensync\": \"^1.0.0-beta.2\",\n \"json5\": \"^2.2.3\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/babel\"\n }\n },\n \"node_modules/@babel/generator\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz\",\n \"integrity\": \"sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"@jridgewell/gen-mapping\": \"^0.3.12\",\n \"@jridgewell/trace-mapping\": \"^0.3.28\",\n \"jsesc\": \"^3.0.2\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-compilation-targets\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz\",\n \"integrity\": \"sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/compat-data\": \"^7.27.2\",\n \"@babel/helper-validator-option\": \"^7.27.1\",\n \"browserslist\": \"^4.24.0\",\n \"lru-cache\": \"^5.1.1\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-globals\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz\",\n \"integrity\": \"sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-imports\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz\",\n \"integrity\": \"sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/traverse\": \"^7.27.1\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-transforms\": {\n \"version\": \"7.27.3\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz\",\n \"integrity\": \"sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-module-imports\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"@babel/traverse\": \"^7.27.3\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0\"\n }\n },\n \"node_modules/@babel/helper-plugin-utils\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz\",\n \"integrity\": \"sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-string-parser\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz\",\n \"integrity\": \"sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-identifier\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz\",\n \"integrity\": \"sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-option\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz\",\n \"integrity\": \"sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helpers\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz\",\n \"integrity\": \"sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.6\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/parser\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz\",\n \"integrity\": \"sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.28.0\"\n },\n \"bin\": {\n \"parser\": \"bin/babel-parser.js\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-self\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz\",\n \"integrity\": \"sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-source\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz\",\n \"integrity\": \"sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/runtime\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz\",\n \"integrity\": \"sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/template\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz\",\n \"integrity\": \"sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/parser\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/traverse\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz\",\n \"integrity\": \"sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-globals\": \"^7.28.0\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.28.0\",\n \"debug\": \"^4.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/types\": {\n \"version\": \"7.28.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz\",\n \"integrity\": \"sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-string-parser\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz\",\n \"integrity\": \"sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==\",\n \"cpu\": [\n \"arm\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-win32-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"peer\": true\n },\n \"node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-arm\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz\",\n \"integrity\": \"sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz\",\n \"integrity\": \"sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz\",\n \"integrity\": \"sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz\",\n \"integrity\": \"sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz\",\n \"integrity\": \"sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz\",\n \"integrity\": \"sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz\",\n \"integrity\": \"sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz\",\n \"integrity\": \"sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz\",\n \"integrity\": \"sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@jridgewell/gen-mapping\": {\n \"version\": \"0.3.12\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz\",\n \"integrity\": \"sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n }\n },\n \"node_modules/@jridgewell/resolve-uri\": {\n \"version\": \"3.1.2\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz\",\n \"integrity\": \"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@jridgewell/sourcemap-codec\": {\n \"version\": \"1.5.4\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz\",\n \"integrity\": \"sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@jridgewell/trace-mapping\": {\n \"version\": \"0.3.29\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz\",\n \"integrity\": \"sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/resolve-uri\": \"^3.1.0\",\n \"@jridgewell/sourcemap-codec\": \"^1.4.14\"\n }\n },\n \"node_modules/@rivetkit/actor\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/actor/-/actor-0.9.1.tgz\",\n \"integrity\": \"sha512-aVoWO81JrYql6hhXX+vRor0B+aeWrnh+9zkcrxbh0EXFBbS5XM8YE4sSFxNKmZThLbGNqfZ5enm1zuA92c7I1w==\",\n \"dev\": true,\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/core\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/core/-/core-0.9.1.tgz\",\n \"integrity\": \"sha512-0zYFKo08CQ72Rm6MaVKxcJSEEfn/ypGkkxTX06Q4meCGHuDJFbPA5wopa3NdxrKBPttcGg1QAmDd+1FZnlpubA==\",\n \"license\": \"Apache-2.0\",\n \"peer\": true,\n \"dependencies\": {\n \"cbor-x\": \"^1.6.0\",\n \"invariant\": \"^2.2.4\",\n \"on-change\": \"^5.0.1\",\n \"p-retry\": \"^6.2.1\",\n \"zod\": \"^3.25.67\"\n },\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"peerDependencies\": {\n \"@hono/node-server\": \"^1.14.0\",\n \"@hono/node-ws\": \"^1.1.1\",\n \"@hono/zod-openapi\": \"^0.19.6\",\n \"eventsource\": \"^3.0.5\",\n \"hono\": \"^4.7.0\",\n \"ws\": \"^8.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"@hono/node-server\": {\n \"optional\": true\n },\n \"@hono/node-ws\": {\n \"optional\": true\n },\n \"@hono/zod-openapi\": {\n \"optional\": true\n },\n \"eventsource\": {\n \"optional\": true\n },\n \"hono\": {\n \"optional\": true\n },\n \"ws\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@rivetkit/framework-base\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/framework-base/-/framework-base-0.9.1.tgz\",\n \"integrity\": \"sha512-FxhSqGAtDsD4k7gKS2EhJ5hHsEwI1+QR0vYThUBOLcmXM7zjMZndqIjVperQO4ck/zfjRqjm3lw7znkc+k0wNQ==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@tanstack/store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/react\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/react/-/react-0.9.1.tgz\",\n \"integrity\": \"sha512-0e0gNNj3qCrXHNIxE6ggEEX+E6HjdsSt9pJbWbaQQg+1bsywupRTSdgSDguDHjBvi9qhR9mh7UbNN3A9wYqXuA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@rivetkit/framework-base\": \"0.9.1\",\n \"@tanstack/react-store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\",\n \"react\": \"^18 || ^19\",\n \"react-dom\": \"^18 || ^19\"\n }\n },\n \"node_modules/@rolldown/pluginutils\": {\n \"version\": \"1.0.0-beta.19\",\n \"resolved\": \"https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz\",\n \"integrity\": \"sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@rollup/rollup-android-arm-eabi\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.0.tgz\",\n \"integrity\": \"sha512-2o/FgACbji4tW1dzXOqAV15Eu7DdgbKsF2QKcxfG4xbh5iwU7yr5RRP5/U+0asQliSYv5M4o7BevlGIoSL0LXg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-android-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-PSZ0SvMOjEAxwZeTx32eI/j5xSYtDCRxGu5k9zvzoY77xUNssZM+WV6HYBLROpY5CkXsbQjvz40fBb7WPwDqtQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-BA4yPIPssPB2aRAWzmqzQ3y2/KotkLyZukVB7j3psK/U3nVJdceo6qr9pLM2xN6iRP/wKfxEbOb1yrlZH6sYZg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-Pr2o0lvTwsiG4HCr43Zy9xXrHspyMvsvEw4FwKYqhli4FuLE5FjcZzuQ4cfPe0iUFCvSQG6lACI0xj74FDZKRA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-lYE8LkE5h4a/+6VnnLiL14zWMPnx6wNbDG23GcYFpRW1V9hYWHAw9lBZ6ZUIrOaoK7NliF1sdwYGiVmziUF4vA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-PVQWZK9sbzpvqC9Q0GlehNNSVHR+4m7+wET+7FgSnKG3ci5nAMgGmr9mGBXzAuE5SvguCKJ6mHL6vq1JaJ/gvw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-gnueabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-hLrmRl53prCcD+YXTfNvXd776HTxNh8wPAMllusQ+amcQmtgo3V5i/nkhPN6FakW+QVLoUUr2AsbtIRPFU3xIA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-musleabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-XBKGSYcrkdiRRjl+8XvrUR3AosXU0NvF7VuqMsm7s5nRy+nt58ZMB19Jdp1RdqewLcaYnpk8zeVs/4MlLZEJxw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-fRvZZPUiBz7NztBE/2QnCS5AtqLVhXmUOPj9IHlfGEXkapgImf4W9+FSkL8cWqoAjozyUzqFmSc4zh2ooaeF6g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-Btv2WRZOcUGi8XU80XwIvzTg4U6+l6D0V6sZTrZx214nrwxw5nAi8hysaXj/mctyClWgesyuxbeLylCBNauimg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loongarch64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-Li0emNnwtUZdLwHjQPBxn4VWztcrw/h7mgLyHiEI5Z0MhpeFGlzaiBHpSNVOMB/xucjXTTcO+dhv469Djr16KA==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-powerpc64le-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-sB8+pfkYx2kvpDCfd63d5ScYT0Fz1LO6jIb2zLZvmK9ob2D8DeVqrmBDE0iDK8KlBVmsTNzrjr3G1xV4eUZhSw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-5GQ6PFhh7E6jQm70p1aW05G2cap5zMOvO0se5JMecHeAdj5ZhWEHbJ4hiKpfi1nnnEdTauDXxPgXae/mqjow9w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-N/euLsBd1rekWcuduakTo/dJw6U6sBP3eUq+RXM9RNfPuWTvG2w/WObDkIvJ2KChy6oxZmOSC08Ak2OJA0UiAA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-s390x-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-2l9sA7d7QdikL0xQwNMO3xURBUNEWyHVHfAsHsUdq+E/pgLTUcCE+gih5PCdmyHmfTDeXUWVhqL0WZzg0nua3g==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-XZdD3fEEQcwG2KrJDdEQu7NrHonPxxaV0/w2HpvINBdcqebz1aL+0vM2WFJq4DeiAVT6F5SUQas65HY5JDqoPw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-7ayfgvtmmWgKWBkCGg5+xTQ0r5V1owVm67zTrsEY1008L5ro7mCyGYORomARt/OquB9KY7LpxVBZes+oSniAAQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-arm64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-B+IJgcBnE2bm93jEW5kHisqvPITs4ddLOROAcOc/diBgrEiQJJ6Qcjby75rFSmH5eMGrqJryUgJDhrfj942apQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-ia32-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-+CXwwG66g0/FpWOnP/v1HnrGVSOygK/osUbu3wPRy8ECXjoYKjRAyfxYpDQOfghC5qPJYLPH0oN4MCOjwgdMug==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@tanstack/react-store\": {\n \"version\": \"0.7.3\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.7.3.tgz\",\n \"integrity\": \"sha512-3Dnqtbw9P2P0gw8uUM8WP2fFfg8XMDSZCTsywRPZe/XqqYW8PGkXKZTvP0AHkE4mpqP9Y43GpOg9vwO44azu6Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@tanstack/store\": \"0.7.2\",\n \"use-sync-external-store\": \"^1.5.0\"\n },\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\",\n \"react-dom\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/@tanstack/store\": {\n \"version\": \"0.7.2\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/store/-/store-0.7.2.tgz\",\n \"integrity\": \"sha512-RP80Z30BYiPX2Pyo0Nyw4s1SJFH2jyM6f9i3HfX4pA+gm5jsnYryscdq2aIQLnL4TaGuQMO+zXmN9nh1Qck+Pg==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n }\n },\n \"node_modules/@types/babel__core\": {\n \"version\": \"7.20.5\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz\",\n \"integrity\": \"sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.20.7\",\n \"@babel/types\": \"^7.20.7\",\n \"@types/babel__generator\": \"*\",\n \"@types/babel__template\": \"*\",\n \"@types/babel__traverse\": \"*\"\n }\n },\n \"node_modules/@types/babel__generator\": {\n \"version\": \"7.27.0\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz\",\n \"integrity\": \"sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__template\": {\n \"version\": \"7.4.4\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz\",\n \"integrity\": \"sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.1.0\",\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__traverse\": {\n \"version\": \"7.20.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz\",\n \"integrity\": \"sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.20.7\"\n }\n },\n \"node_modules/@types/chai\": {\n \"version\": \"5.2.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz\",\n \"integrity\": \"sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/deep-eql\": \"*\"\n }\n },\n \"node_modules/@types/deep-eql\": {\n \"version\": \"4.0.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz\",\n \"integrity\": \"sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/estree\": {\n \"version\": \"1.0.8\",\n \"resolved\": \"https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz\",\n \"integrity\": \"sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/node\": {\n \"version\": \"22.16.3\",\n \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-22.16.3.tgz\",\n \"integrity\": \"sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"undici-types\": \"~6.21.0\"\n }\n },\n \"node_modules/@types/prop-types\": {\n \"version\": \"15.7.15\",\n \"resolved\": \"https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz\",\n \"integrity\": \"sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/react\": {\n \"version\": \"18.3.23\",\n \"resolved\": \"https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz\",\n \"integrity\": \"sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/prop-types\": \"*\",\n \"csstype\": \"^3.0.2\"\n }\n },\n \"node_modules/@types/react-dom\": {\n \"version\": \"18.3.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz\",\n \"integrity\": \"sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"@types/react\": \"^18.0.0\"\n }\n },\n \"node_modules/@types/retry\": {\n \"version\": \"0.12.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz\",\n \"integrity\": \"sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==\",\n \"license\": \"MIT\",\n \"peer\": true\n },\n \"node_modules/@vitejs/plugin-react\": {\n \"version\": \"4.6.0\",\n \"resolved\": \"https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz\",\n \"integrity\": \"sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/core\": \"^7.27.4\",\n \"@babel/plugin-transform-react-jsx-self\": \"^7.27.1\",\n \"@babel/plugin-transform-react-jsx-source\": \"^7.27.1\",\n \"@rolldown/pluginutils\": \"1.0.0-beta.19\",\n \"@types/babel__core\": \"^7.20.5\",\n \"react-refresh\": \"^0.17.0\"\n },\n \"engines\": {\n \"node\": \"^14.18.0 || >=16.0.0\"\n },\n \"peerDependencies\": {\n \"vite\": \"^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0\"\n }\n },\n \"node_modules/@vitest/expect\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz\",\n \"integrity\": \"sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/chai\": \"^5.2.2\",\n \"@vitest/spy\": \"3.2.4\",\n \"@vitest/utils\": \"3.2.4\",\n \"chai\": \"^5.2.0\",\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/mocker\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz\",\n \"integrity\": \"sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/spy\": \"3.2.4\",\n \"estree-walker\": \"^3.0.3\",\n \"magic-string\": \"^0.30.17\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"msw\": \"^2.4.9\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\"\n },\n \"peerDependenciesMeta\": {\n \"msw\": {\n \"optional\": true\n },\n \"vite\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@vitest/pretty-format\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz\",\n \"integrity\": \"sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/runner\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz\",\n \"integrity\": \"sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/utils\": \"3.2.4\",\n \"pathe\": \"^2.0.3\",\n \"strip-literal\": \"^3.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/snapshot\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz\",\n \"integrity\": \"sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/pretty-format\": \"3.2.4\",\n \"magic-string\": \"^0.30.17\",\n \"pathe\": \"^2.0.3\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/spy\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz\",\n \"integrity\": \"sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyspy\": \"^4.0.3\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/utils\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz\",\n \"integrity\": \"sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/pretty-format\": \"3.2.4\",\n \"loupe\": \"^3.1.4\",\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/ansi-regex\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",\n \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/ansi-styles\": {\n \"version\": \"4.3.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",\n \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-convert\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/assertion-error\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz\",\n \"integrity\": \"sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/browserslist\": {\n \"version\": \"4.25.1\",\n \"resolved\": \"https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz\",\n \"integrity\": \"sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"caniuse-lite\": \"^1.0.30001726\",\n \"electron-to-chromium\": \"^1.5.173\",\n \"node-releases\": \"^2.0.19\",\n \"update-browserslist-db\": \"^1.1.3\"\n },\n \"bin\": {\n \"browserslist\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7\"\n }\n },\n \"node_modules/buffer-from\": {\n \"version\": \"1.1.2\",\n \"resolved\": \"https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz\",\n \"integrity\": \"sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/cac\": {\n \"version\": \"6.7.14\",\n \"resolved\": \"https://registry.npmjs.org/cac/-/cac-6.7.14.tgz\",\n \"integrity\": \"sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/caniuse-lite\": {\n \"version\": \"1.0.30001727\",\n \"resolved\": \"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz\",\n \"integrity\": \"sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/caniuse-lite\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"CC-BY-4.0\"\n },\n \"node_modules/cbor-extract\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz\",\n \"integrity\": \"sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==\",\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"node-gyp-build-optional-packages\": \"5.1.1\"\n },\n \"bin\": {\n \"download-cbor-prebuilds\": \"bin/download-prebuilds.js\"\n },\n \"optionalDependencies\": {\n \"@cbor-extract/cbor-extract-darwin-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-darwin-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-win32-x64\": \"2.2.0\"\n }\n },\n \"node_modules/cbor-x\": {\n \"version\": \"1.6.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz\",\n \"integrity\": \"sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"optionalDependencies\": {\n \"cbor-extract\": \"^2.2.0\"\n }\n },\n \"node_modules/chai\": {\n \"version\": \"5.2.1\",\n \"resolved\": \"https://registry.npmjs.org/chai/-/chai-5.2.1.tgz\",\n \"integrity\": \"sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"assertion-error\": \"^2.0.1\",\n \"check-error\": \"^2.1.1\",\n \"deep-eql\": \"^5.0.1\",\n \"loupe\": \"^3.1.0\",\n \"pathval\": \"^2.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/chalk\": {\n \"version\": \"4.1.2\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",\n \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.1.0\",\n \"supports-color\": \"^7.1.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/chalk/node_modules/supports-color\": {\n \"version\": \"7.2.0\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",\n \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/check-error\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz\",\n \"integrity\": \"sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 16\"\n }\n },\n \"node_modules/cliui\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz\",\n \"integrity\": \"sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"string-width\": \"^4.2.0\",\n \"strip-ansi\": \"^6.0.1\",\n \"wrap-ansi\": \"^7.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/color-convert\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",\n \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-name\": \"~1.1.4\"\n },\n \"engines\": {\n \"node\": \">=7.0.0\"\n }\n },\n \"node_modules/color-name\": {\n \"version\": \"1.1.4\",\n \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",\n \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/concurrently\": {\n \"version\": \"8.2.2\",\n \"resolved\": \"https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz\",\n \"integrity\": \"sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"chalk\": \"^4.1.2\",\n \"date-fns\": \"^2.30.0\",\n \"lodash\": \"^4.17.21\",\n \"rxjs\": \"^7.8.1\",\n \"shell-quote\": \"^1.8.1\",\n \"spawn-command\": \"0.0.2\",\n \"supports-color\": \"^8.1.1\",\n \"tree-kill\": \"^1.2.2\",\n \"yargs\": \"^17.7.2\"\n },\n \"bin\": {\n \"conc\": \"dist/bin/concurrently.js\",\n \"concurrently\": \"dist/bin/concurrently.js\"\n },\n \"engines\": {\n \"node\": \"^14.13.0 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/open-cli-tools/concurrently?sponsor=1\"\n }\n },\n \"node_modules/convert-source-map\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz\",\n \"integrity\": \"sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/csstype\": {\n \"version\": \"3.1.3\",\n \"resolved\": \"https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz\",\n \"integrity\": \"sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/date-fns\": {\n \"version\": \"2.30.0\",\n \"resolved\": \"https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz\",\n \"integrity\": \"sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/runtime\": \"^7.21.0\"\n },\n \"engines\": {\n \"node\": \">=0.11\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/date-fns\"\n }\n },\n \"node_modules/debug\": {\n \"version\": \"4.4.1\",\n \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.4.1.tgz\",\n \"integrity\": \"sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ms\": \"^2.1.3\"\n },\n \"engines\": {\n \"node\": \">=6.0\"\n },\n \"peerDependenciesMeta\": {\n \"supports-color\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/deep-eql\": {\n \"version\": \"5.0.2\",\n \"resolved\": \"https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz\",\n \"integrity\": \"sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/detect-libc\": {\n \"version\": \"2.0.4\",\n \"resolved\": \"https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz\",\n \"integrity\": \"sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==\",\n \"license\": \"Apache-2.0\",\n \"optional\": true,\n \"peer\": true,\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/electron-to-chromium\": {\n \"version\": \"1.5.183\",\n \"resolved\": \"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.183.tgz\",\n \"integrity\": \"sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/emoji-regex\": {\n \"version\": \"8.0.0\",\n \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",\n \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/es-module-lexer\": {\n \"version\": \"1.7.0\",\n \"resolved\": \"https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz\",\n \"integrity\": \"sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/esbuild\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz\",\n \"integrity\": \"sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/android-arm\": \"0.18.20\",\n \"@esbuild/android-arm64\": \"0.18.20\",\n \"@esbuild/android-x64\": \"0.18.20\",\n \"@esbuild/darwin-arm64\": \"0.18.20\",\n \"@esbuild/darwin-x64\": \"0.18.20\",\n \"@esbuild/freebsd-arm64\": \"0.18.20\",\n \"@esbuild/freebsd-x64\": \"0.18.20\",\n \"@esbuild/linux-arm\": \"0.18.20\",\n \"@esbuild/linux-arm64\": \"0.18.20\",\n \"@esbuild/linux-ia32\": \"0.18.20\",\n \"@esbuild/linux-loong64\": \"0.18.20\",\n \"@esbuild/linux-mips64el\": \"0.18.20\",\n \"@esbuild/linux-ppc64\": \"0.18.20\",\n \"@esbuild/linux-riscv64\": \"0.18.20\",\n \"@esbuild/linux-s390x\": \"0.18.20\",\n \"@esbuild/linux-x64\": \"0.18.20\",\n \"@esbuild/netbsd-x64\": \"0.18.20\",\n \"@esbuild/openbsd-x64\": \"0.18.20\",\n \"@esbuild/sunos-x64\": \"0.18.20\",\n \"@esbuild/win32-arm64\": \"0.18.20\",\n \"@esbuild/win32-ia32\": \"0.18.20\",\n \"@esbuild/win32-x64\": \"0.18.20\"\n }\n },\n \"node_modules/escalade\": {\n \"version\": \"3.2.0\",\n \"resolved\": \"https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz\",\n \"integrity\": \"sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/estree-walker\": {\n \"version\": \"3.0.3\",\n \"resolved\": \"https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz\",\n \"integrity\": \"sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"^1.0.0\"\n }\n },\n \"node_modules/expect-type\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz\",\n \"integrity\": \"sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=12.0.0\"\n }\n },\n \"node_modules/fdir\": {\n \"version\": \"6.4.6\",\n \"resolved\": \"https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz\",\n \"integrity\": \"sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"picomatch\": \"^3 || ^4\"\n },\n \"peerDependenciesMeta\": {\n \"picomatch\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/fsevents\": {\n \"version\": \"2.3.3\",\n \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz\",\n \"integrity\": \"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \"^8.16.0 || ^10.6.0 || >=11.0.0\"\n }\n },\n \"node_modules/gensync\": {\n \"version\": \"1.0.0-beta.2\",\n \"resolved\": \"https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz\",\n \"integrity\": \"sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/get-caller-file\": {\n \"version\": \"2.0.5\",\n \"resolved\": \"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz\",\n \"integrity\": \"sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \"6.* || 8.* || >= 10.*\"\n }\n },\n \"node_modules/get-tsconfig\": {\n \"version\": \"4.10.1\",\n \"resolved\": \"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz\",\n \"integrity\": \"sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"resolve-pkg-maps\": \"^1.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/get-tsconfig?sponsor=1\"\n }\n },\n \"node_modules/has-flag\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",\n \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/invariant\": {\n \"version\": \"2.2.4\",\n \"resolved\": \"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz\",\n \"integrity\": \"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"loose-envify\": \"^1.0.0\"\n }\n },\n \"node_modules/is-fullwidth-code-point\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",\n \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/is-network-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz\",\n \"integrity\": \"sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/js-tokens\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz\",\n \"integrity\": \"sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==\",\n \"license\": \"MIT\"\n },\n \"node_modules/jsesc\": {\n \"version\": \"3.1.0\",\n \"resolved\": \"https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz\",\n \"integrity\": \"sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"jsesc\": \"bin/jsesc\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/json5\": {\n \"version\": \"2.2.3\",\n \"resolved\": \"https://registry.npmjs.org/json5/-/json5-2.2.3.tgz\",\n \"integrity\": \"sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"json5\": \"lib/cli.js\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/lodash\": {\n \"version\": \"4.17.21\",\n \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",\n \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/loose-envify\": {\n \"version\": \"1.4.0\",\n \"resolved\": \"https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz\",\n \"integrity\": \"sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^3.0.0 || ^4.0.0\"\n },\n \"bin\": {\n \"loose-envify\": \"cli.js\"\n }\n },\n \"node_modules/loupe\": {\n \"version\": \"3.1.4\",\n \"resolved\": \"https://registry.npmjs.org/loupe/-/loupe-3.1.4.tgz\",\n \"integrity\": \"sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/lru-cache\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz\",\n \"integrity\": \"sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"yallist\": \"^3.0.2\"\n }\n },\n \"node_modules/magic-string\": {\n \"version\": \"0.30.17\",\n \"resolved\": \"https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz\",\n \"integrity\": \"sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\"\n }\n },\n \"node_modules/ms\": {\n \"version\": \"2.1.3\",\n \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",\n \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/node-gyp-build-optional-packages\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz\",\n \"integrity\": \"sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==\",\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"detect-libc\": \"^2.0.1\"\n },\n \"bin\": {\n \"node-gyp-build-optional-packages\": \"bin.js\",\n \"node-gyp-build-optional-packages-optional\": \"optional.js\",\n \"node-gyp-build-optional-packages-test\": \"build-test.js\"\n }\n },\n \"node_modules/node-releases\": {\n \"version\": \"2.0.19\",\n \"resolved\": \"https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz\",\n \"integrity\": \"sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/on-change\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/on-change/-/on-change-5.0.1.tgz\",\n \"integrity\": \"sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/on-change?sponsor=1\"\n }\n },\n \"node_modules/p-retry\": {\n \"version\": \"6.2.1\",\n \"resolved\": \"https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz\",\n \"integrity\": \"sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"@types/retry\": \"0.12.2\",\n \"is-network-error\": \"^1.0.0\",\n \"retry\": \"^0.13.1\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/pathval\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz\",\n \"integrity\": \"sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 14.16\"\n }\n },\n \"node_modules/picocolors\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz\",\n \"integrity\": \"sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/picomatch\": {\n \"version\": \"4.0.2\",\n \"resolved\": \"https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz\",\n \"integrity\": \"sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/jonschlinkert\"\n }\n },\n \"node_modules/postcss\": {\n \"version\": \"8.5.6\",\n \"resolved\": \"https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz\",\n \"integrity\": \"sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/postcss/\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/postcss\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"nanoid\": \"^3.3.11\",\n \"picocolors\": \"^1.1.1\",\n \"source-map-js\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || >=14\"\n }\n },\n \"node_modules/react\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react/-/react-18.3.1.tgz\",\n \"integrity\": \"sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n },\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/react-dom\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz\",\n \"integrity\": \"sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\",\n \"scheduler\": \"^0.23.2\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.3.1\"\n }\n },\n \"node_modules/react-refresh\": {\n \"version\": \"0.17.0\",\n \"resolved\": \"https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz\",\n \"integrity\": \"sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/require-directory\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz\",\n \"integrity\": \"sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/resolve-pkg-maps\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz\",\n \"integrity\": \"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/resolve-pkg-maps?sponsor=1\"\n }\n },\n \"node_modules/retry\": {\n \"version\": \"0.13.1\",\n \"resolved\": \"https://registry.npmjs.org/retry/-/retry-0.13.1.tgz\",\n \"integrity\": \"sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">= 4\"\n }\n },\n \"node_modules/rollup\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/rollup/-/rollup-4.45.0.tgz\",\n \"integrity\": \"sha512-WLjEcJRIo7i3WDDgOIJqVI2d+lAC3EwvOGy+Xfq6hs+GQuAA4Di/H72xmXkOhrIWFg2PFYSKZYfH0f4vfKXN4A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"1.0.8\"\n },\n \"bin\": {\n \"rollup\": \"dist/bin/rollup\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"optionalDependencies\": {\n \"@rollup/rollup-android-arm-eabi\": \"4.45.0\",\n \"@rollup/rollup-android-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-x64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-arm64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-x64\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-gnueabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-musleabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-loongarch64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-powerpc64le-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-s390x-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-musl\": \"4.45.0\",\n \"@rollup/rollup-win32-arm64-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-ia32-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-x64-msvc\": \"4.45.0\",\n \"fsevents\": \"~2.3.2\"\n }\n },\n \"node_modules/rxjs\": {\n \"version\": \"7.8.2\",\n \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz\",\n \"integrity\": \"sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"tslib\": \"^2.1.0\"\n }\n },\n \"node_modules/scheduler\": {\n \"version\": \"0.23.2\",\n \"resolved\": \"https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz\",\n \"integrity\": \"sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n }\n },\n \"node_modules/semver\": {\n \"version\": \"6.3.1\",\n \"resolved\": \"https://registry.npmjs.org/semver/-/semver-6.3.1.tgz\",\n \"integrity\": \"sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"bin\": {\n \"semver\": \"bin/semver.js\"\n }\n },\n \"node_modules/shell-quote\": {\n \"version\": \"1.8.3\",\n \"resolved\": \"https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz\",\n \"integrity\": \"sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 0.4\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/ljharb\"\n }\n },\n \"node_modules/siginfo\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz\",\n \"integrity\": \"sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/source-map\": {\n \"version\": \"0.6.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz\",\n \"integrity\": \"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/source-map-js\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz\",\n \"integrity\": \"sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/source-map-support\": {\n \"version\": \"0.5.21\",\n \"resolved\": \"https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz\",\n \"integrity\": \"sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"buffer-from\": \"^1.0.0\",\n \"source-map\": \"^0.6.0\"\n }\n },\n \"node_modules/spawn-command\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz\",\n \"integrity\": \"sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==\",\n \"dev\": true\n },\n \"node_modules/stackback\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz\",\n \"integrity\": \"sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/std-env\": {\n \"version\": \"3.9.0\",\n \"resolved\": \"https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz\",\n \"integrity\": \"sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/string-width\": {\n \"version\": \"4.2.3\",\n \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",\n \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"emoji-regex\": \"^8.0.0\",\n \"is-fullwidth-code-point\": \"^3.0.0\",\n \"strip-ansi\": \"^6.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-ansi\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",\n \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-regex\": \"^5.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-literal\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz\",\n \"integrity\": \"sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^9.0.1\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/strip-literal/node_modules/js-tokens\": {\n \"version\": \"9.0.1\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz\",\n \"integrity\": \"sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/supports-color\": {\n \"version\": \"8.1.1\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",\n \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/supports-color?sponsor=1\"\n }\n },\n \"node_modules/tinybench\": {\n \"version\": \"2.9.0\",\n \"resolved\": \"https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz\",\n \"integrity\": \"sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyexec\": {\n \"version\": \"0.3.2\",\n \"resolved\": \"https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz\",\n \"integrity\": \"sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyglobby\": {\n \"version\": \"0.2.14\",\n \"resolved\": \"https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz\",\n \"integrity\": \"sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"fdir\": \"^6.4.4\",\n \"picomatch\": \"^4.0.2\"\n },\n \"engines\": {\n \"node\": \">=12.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/SuperchupuDev\"\n }\n },\n \"node_modules/tinypool\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz\",\n \"integrity\": \"sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n }\n },\n \"node_modules/tinyrainbow\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz\",\n \"integrity\": \"sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tinyspy\": {\n \"version\": \"4.0.3\",\n \"resolved\": \"https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz\",\n \"integrity\": \"sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tree-kill\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz\",\n \"integrity\": \"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"tree-kill\": \"cli.js\"\n }\n },\n \"node_modules/tslib\": {\n \"version\": \"2.8.1\",\n \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz\",\n \"integrity\": \"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==\",\n \"dev\": true,\n \"license\": \"0BSD\"\n },\n \"node_modules/tsx\": {\n \"version\": \"3.14.0\",\n \"resolved\": \"https://registry.npmjs.org/tsx/-/tsx-3.14.0.tgz\",\n \"integrity\": \"sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"~0.18.20\",\n \"get-tsconfig\": \"^4.7.2\",\n \"source-map-support\": \"^0.5.21\"\n },\n \"bin\": {\n \"tsx\": \"dist/cli.mjs\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n }\n },\n \"node_modules/typescript\": {\n \"version\": \"5.8.3\",\n \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz\",\n \"integrity\": \"sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"bin\": {\n \"tsc\": \"bin/tsc\",\n \"tsserver\": \"bin/tsserver\"\n },\n \"engines\": {\n \"node\": \">=14.17\"\n }\n },\n \"node_modules/undici-types\": {\n \"version\": \"6.21.0\",\n \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/update-browserslist-db\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz\",\n \"integrity\": \"sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"escalade\": \"^3.2.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"bin\": {\n \"update-browserslist-db\": \"cli.js\"\n },\n \"peerDependencies\": {\n \"browserslist\": \">= 4.21.0\"\n }\n },\n \"node_modules/use-sync-external-store\": {\n \"version\": \"1.5.0\",\n \"resolved\": \"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz\",\n \"integrity\": \"sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==\",\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/vite\": {\n \"version\": \"5.4.19\",\n \"resolved\": \"https://registry.npmjs.org/vite/-/vite-5.4.19.tgz\",\n \"integrity\": \"sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"^0.21.3\",\n \"postcss\": \"^8.4.43\",\n \"rollup\": \"^4.20.0\"\n },\n \"bin\": {\n \"vite\": \"bin/vite.js\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/vitejs/vite?sponsor=1\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n },\n \"peerDependencies\": {\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"less\": \"*\",\n \"lightningcss\": \"^1.21.0\",\n \"sass\": \"*\",\n \"sass-embedded\": \"*\",\n \"stylus\": \"*\",\n \"sugarss\": \"*\",\n \"terser\": \"^5.4.0\"\n },\n \"peerDependenciesMeta\": {\n \"@types/node\": {\n \"optional\": true\n },\n \"less\": {\n \"optional\": true\n },\n \"lightningcss\": {\n \"optional\": true\n },\n \"sass\": {\n \"optional\": true\n },\n \"sass-embedded\": {\n \"optional\": true\n },\n \"stylus\": {\n \"optional\": true\n },\n \"sugarss\": {\n \"optional\": true\n },\n \"terser\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/vite-node\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz\",\n \"integrity\": \"sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cac\": \"^6.7.14\",\n \"debug\": \"^4.4.1\",\n \"es-module-lexer\": \"^1.7.0\",\n \"pathe\": \"^2.0.3\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\"\n },\n \"bin\": {\n \"vite-node\": \"vite-node.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz\",\n \"integrity\": \"sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz\",\n \"integrity\": \"sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz\",\n \"integrity\": \"sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz\",\n \"integrity\": \"sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/esbuild\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz\",\n \"integrity\": \"sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.21.5\",\n \"@esbuild/android-arm\": \"0.21.5\",\n \"@esbuild/android-arm64\": \"0.21.5\",\n \"@esbuild/android-x64\": \"0.21.5\",\n \"@esbuild/darwin-arm64\": \"0.21.5\",\n \"@esbuild/darwin-x64\": \"0.21.5\",\n \"@esbuild/freebsd-arm64\": \"0.21.5\",\n \"@esbuild/freebsd-x64\": \"0.21.5\",\n \"@esbuild/linux-arm\": \"0.21.5\",\n \"@esbuild/linux-arm64\": \"0.21.5\",\n \"@esbuild/linux-ia32\": \"0.21.5\",\n \"@esbuild/linux-loong64\": \"0.21.5\",\n \"@esbuild/linux-mips64el\": \"0.21.5\",\n \"@esbuild/linux-ppc64\": \"0.21.5\",\n \"@esbuild/linux-riscv64\": \"0.21.5\",\n \"@esbuild/linux-s390x\": \"0.21.5\",\n \"@esbuild/linux-x64\": \"0.21.5\",\n \"@esbuild/netbsd-x64\": \"0.21.5\",\n \"@esbuild/openbsd-x64\": \"0.21.5\",\n \"@esbuild/sunos-x64\": \"0.21.5\",\n \"@esbuild/win32-arm64\": \"0.21.5\",\n \"@esbuild/win32-ia32\": \"0.21.5\",\n \"@esbuild/win32-x64\": \"0.21.5\"\n }\n },\n \"node_modules/vitest\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz\",\n \"integrity\": \"sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/chai\": \"^5.2.2\",\n \"@vitest/expect\": \"3.2.4\",\n \"@vitest/mocker\": \"3.2.4\",\n \"@vitest/pretty-format\": \"^3.2.4\",\n \"@vitest/runner\": \"3.2.4\",\n \"@vitest/snapshot\": \"3.2.4\",\n \"@vitest/spy\": \"3.2.4\",\n \"@vitest/utils\": \"3.2.4\",\n \"chai\": \"^5.2.0\",\n \"debug\": \"^4.4.1\",\n \"expect-type\": \"^1.2.1\",\n \"magic-string\": \"^0.30.17\",\n \"pathe\": \"^2.0.3\",\n \"picomatch\": \"^4.0.2\",\n \"std-env\": \"^3.9.0\",\n \"tinybench\": \"^2.9.0\",\n \"tinyexec\": \"^0.3.2\",\n \"tinyglobby\": \"^0.2.14\",\n \"tinypool\": \"^1.1.1\",\n \"tinyrainbow\": \"^2.0.0\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\",\n \"vite-node\": \"3.2.4\",\n \"why-is-node-running\": \"^2.3.0\"\n },\n \"bin\": {\n \"vitest\": \"vitest.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"@edge-runtime/vm\": \"*\",\n \"@types/debug\": \"^4.1.12\",\n \"@types/node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\",\n \"@vitest/browser\": \"3.2.4\",\n \"@vitest/ui\": \"3.2.4\",\n \"happy-dom\": \"*\",\n \"jsdom\": \"*\"\n },\n \"peerDependenciesMeta\": {\n \"@edge-runtime/vm\": {\n \"optional\": true\n },\n \"@types/debug\": {\n \"optional\": true\n },\n \"@types/node\": {\n \"optional\": true\n },\n \"@vitest/browser\": {\n \"optional\": true\n },\n \"@vitest/ui\": {\n \"optional\": true\n },\n \"happy-dom\": {\n \"optional\": true\n },\n \"jsdom\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/why-is-node-running\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz\",\n \"integrity\": \"sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"siginfo\": \"^2.0.0\",\n \"stackback\": \"0.0.2\"\n },\n \"bin\": {\n \"why-is-node-running\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/wrap-ansi\": {\n \"version\": \"7.0.0\",\n \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",\n \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.0.0\",\n \"string-width\": \"^4.1.0\",\n \"strip-ansi\": \"^6.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/wrap-ansi?sponsor=1\"\n }\n },\n \"node_modules/y18n\": {\n \"version\": \"5.0.8\",\n \"resolved\": \"https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz\",\n \"integrity\": \"sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/yallist\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz\",\n \"integrity\": \"sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/yargs\": {\n \"version\": \"17.7.2\",\n \"resolved\": \"https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz\",\n \"integrity\": \"sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cliui\": \"^8.0.1\",\n \"escalade\": \"^3.1.1\",\n \"get-caller-file\": \"^2.0.5\",\n \"require-directory\": \"^2.1.1\",\n \"string-width\": \"^4.2.3\",\n \"y18n\": \"^5.0.5\",\n \"yargs-parser\": \"^21.1.1\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yargs-parser\": {\n \"version\": \"21.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz\",\n \"integrity\": \"sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/zod\": {\n \"version\": \"3.25.76\",\n \"resolved\": \"https://registry.npmjs.org/zod/-/zod-3.25.76.tgz\",\n \"integrity\": \"sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"funding\": {\n \"url\": \"https://github.com/sponsors/colinhacks\"\n }\n }\n }\n}\n",
- "package.json": "{\n \"name\": \"example-database\",\n \"version\": \"0.9.1\",\n \"private\": true,\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"concurrently \\\"npm run dev:backend\\\" \\\"npm run dev:frontend\\\"\",\n \"dev:backend\": \"tsx --watch src/backend/server.ts\",\n \"dev:frontend\": \"vite\",\n \"build\": \"vite build\",\n \"check-types\": \"tsc --noEmit\",\n \"test\": \"vitest run\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^22.13.9\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"concurrently\": \"^8.2.2\",\n \"@rivetkit/actor\": \"^0.9.1\",\n \"tsx\": \"^3.12.7\",\n \"typescript\": \"^5.5.2\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^3.1.1\"\n },\n \"dependencies\": {\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"stableVersion\": \"0.8.0\"\n}\n",
+ "package-lock.json": "{\n \"name\": \"example-database\",\n \"version\": \"0.9.1\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n \"name\": \"example-database\",\n \"version\": \"0.9.1\",\n \"dependencies\": {\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"rivetkit\": \"^0.9.1\",\n \"@types/node\": \"^22.13.9\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"concurrently\": \"^8.2.2\",\n \"tsx\": \"^3.12.7\",\n \"typescript\": \"^5.5.2\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^3.1.1\"\n }\n },\n \"node_modules/@ampproject/remapping\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz\",\n \"integrity\": \"sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@jridgewell/gen-mapping\": \"^0.3.5\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/code-frame\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz\",\n \"integrity\": \"sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"js-tokens\": \"^4.0.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/compat-data\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz\",\n \"integrity\": \"sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/core\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz\",\n \"integrity\": \"sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@ampproject/remapping\": \"^2.2.0\",\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-compilation-targets\": \"^7.27.2\",\n \"@babel/helper-module-transforms\": \"^7.27.3\",\n \"@babel/helpers\": \"^7.27.6\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/traverse\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"convert-source-map\": \"^2.0.0\",\n \"debug\": \"^4.1.0\",\n \"gensync\": \"^1.0.0-beta.2\",\n \"json5\": \"^2.2.3\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/babel\"\n }\n },\n \"node_modules/@babel/generator\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz\",\n \"integrity\": \"sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"@jridgewell/gen-mapping\": \"^0.3.12\",\n \"@jridgewell/trace-mapping\": \"^0.3.28\",\n \"jsesc\": \"^3.0.2\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-compilation-targets\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz\",\n \"integrity\": \"sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/compat-data\": \"^7.27.2\",\n \"@babel/helper-validator-option\": \"^7.27.1\",\n \"browserslist\": \"^4.24.0\",\n \"lru-cache\": \"^5.1.1\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-globals\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz\",\n \"integrity\": \"sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-imports\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz\",\n \"integrity\": \"sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/traverse\": \"^7.27.1\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-transforms\": {\n \"version\": \"7.27.3\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz\",\n \"integrity\": \"sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-module-imports\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"@babel/traverse\": \"^7.27.3\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0\"\n }\n },\n \"node_modules/@babel/helper-plugin-utils\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz\",\n \"integrity\": \"sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-string-parser\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz\",\n \"integrity\": \"sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-identifier\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz\",\n \"integrity\": \"sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-option\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz\",\n \"integrity\": \"sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helpers\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz\",\n \"integrity\": \"sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.6\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/parser\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz\",\n \"integrity\": \"sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.28.0\"\n },\n \"bin\": {\n \"parser\": \"bin/babel-parser.js\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-self\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz\",\n \"integrity\": \"sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-source\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz\",\n \"integrity\": \"sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/runtime\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz\",\n \"integrity\": \"sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/template\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz\",\n \"integrity\": \"sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/parser\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/traverse\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz\",\n \"integrity\": \"sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-globals\": \"^7.28.0\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.28.0\",\n \"debug\": \"^4.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/types\": {\n \"version\": \"7.28.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz\",\n \"integrity\": \"sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-string-parser\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz\",\n \"integrity\": \"sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==\",\n \"cpu\": [\n \"arm\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-win32-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"peer\": true\n },\n \"node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-arm\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz\",\n \"integrity\": \"sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/android-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz\",\n \"integrity\": \"sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz\",\n \"integrity\": \"sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz\",\n \"integrity\": \"sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz\",\n \"integrity\": \"sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz\",\n \"integrity\": \"sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz\",\n \"integrity\": \"sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz\",\n \"integrity\": \"sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz\",\n \"integrity\": \"sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz\",\n \"integrity\": \"sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz\",\n \"integrity\": \"sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/@jridgewell/gen-mapping\": {\n \"version\": \"0.3.12\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz\",\n \"integrity\": \"sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n }\n },\n \"node_modules/@jridgewell/resolve-uri\": {\n \"version\": \"3.1.2\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz\",\n \"integrity\": \"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@jridgewell/sourcemap-codec\": {\n \"version\": \"1.5.4\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz\",\n \"integrity\": \"sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@jridgewell/trace-mapping\": {\n \"version\": \"0.3.29\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz\",\n \"integrity\": \"sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/resolve-uri\": \"^3.1.0\",\n \"@jridgewell/sourcemap-codec\": \"^1.4.14\"\n }\n },\n \"node_modules/rivetkit\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/rivetkit/-/actor-0.9.1.tgz\",\n \"integrity\": \"sha512-aVoWO81JrYql6hhXX+vRor0B+aeWrnh+9zkcrxbh0EXFBbS5XM8YE4sSFxNKmZThLbGNqfZ5enm1zuA92c7I1w==\",\n \"dev\": true,\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/core\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/core/-/core-0.9.1.tgz\",\n \"integrity\": \"sha512-0zYFKo08CQ72Rm6MaVKxcJSEEfn/ypGkkxTX06Q4meCGHuDJFbPA5wopa3NdxrKBPttcGg1QAmDd+1FZnlpubA==\",\n \"license\": \"Apache-2.0\",\n \"peer\": true,\n \"dependencies\": {\n \"cbor-x\": \"^1.6.0\",\n \"invariant\": \"^2.2.4\",\n \"on-change\": \"^5.0.1\",\n \"p-retry\": \"^6.2.1\",\n \"zod\": \"^3.25.67\"\n },\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"peerDependencies\": {\n \"@hono/node-server\": \"^1.14.0\",\n \"@hono/node-ws\": \"^1.1.1\",\n \"@hono/zod-openapi\": \"^0.19.6\",\n \"eventsource\": \"^3.0.5\",\n \"hono\": \"^4.7.0\",\n \"ws\": \"^8.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"@hono/node-server\": {\n \"optional\": true\n },\n \"@hono/node-ws\": {\n \"optional\": true\n },\n \"@hono/zod-openapi\": {\n \"optional\": true\n },\n \"eventsource\": {\n \"optional\": true\n },\n \"hono\": {\n \"optional\": true\n },\n \"ws\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@rivetkit/framework-base\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/framework-base/-/framework-base-0.9.1.tgz\",\n \"integrity\": \"sha512-FxhSqGAtDsD4k7gKS2EhJ5hHsEwI1+QR0vYThUBOLcmXM7zjMZndqIjVperQO4ck/zfjRqjm3lw7znkc+k0wNQ==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@tanstack/store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/react\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/react/-/react-0.9.1.tgz\",\n \"integrity\": \"sha512-0e0gNNj3qCrXHNIxE6ggEEX+E6HjdsSt9pJbWbaQQg+1bsywupRTSdgSDguDHjBvi9qhR9mh7UbNN3A9wYqXuA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@rivetkit/framework-base\": \"0.9.1\",\n \"@tanstack/react-store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\",\n \"react\": \"^18 || ^19\",\n \"react-dom\": \"^18 || ^19\"\n }\n },\n \"node_modules/@rolldown/pluginutils\": {\n \"version\": \"1.0.0-beta.19\",\n \"resolved\": \"https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz\",\n \"integrity\": \"sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@rollup/rollup-android-arm-eabi\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.0.tgz\",\n \"integrity\": \"sha512-2o/FgACbji4tW1dzXOqAV15Eu7DdgbKsF2QKcxfG4xbh5iwU7yr5RRP5/U+0asQliSYv5M4o7BevlGIoSL0LXg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-android-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-PSZ0SvMOjEAxwZeTx32eI/j5xSYtDCRxGu5k9zvzoY77xUNssZM+WV6HYBLROpY5CkXsbQjvz40fBb7WPwDqtQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-BA4yPIPssPB2aRAWzmqzQ3y2/KotkLyZukVB7j3psK/U3nVJdceo6qr9pLM2xN6iRP/wKfxEbOb1yrlZH6sYZg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-Pr2o0lvTwsiG4HCr43Zy9xXrHspyMvsvEw4FwKYqhli4FuLE5FjcZzuQ4cfPe0iUFCvSQG6lACI0xj74FDZKRA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-lYE8LkE5h4a/+6VnnLiL14zWMPnx6wNbDG23GcYFpRW1V9hYWHAw9lBZ6ZUIrOaoK7NliF1sdwYGiVmziUF4vA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-PVQWZK9sbzpvqC9Q0GlehNNSVHR+4m7+wET+7FgSnKG3ci5nAMgGmr9mGBXzAuE5SvguCKJ6mHL6vq1JaJ/gvw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-gnueabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-hLrmRl53prCcD+YXTfNvXd776HTxNh8wPAMllusQ+amcQmtgo3V5i/nkhPN6FakW+QVLoUUr2AsbtIRPFU3xIA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-musleabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-XBKGSYcrkdiRRjl+8XvrUR3AosXU0NvF7VuqMsm7s5nRy+nt58ZMB19Jdp1RdqewLcaYnpk8zeVs/4MlLZEJxw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-fRvZZPUiBz7NztBE/2QnCS5AtqLVhXmUOPj9IHlfGEXkapgImf4W9+FSkL8cWqoAjozyUzqFmSc4zh2ooaeF6g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-Btv2WRZOcUGi8XU80XwIvzTg4U6+l6D0V6sZTrZx214nrwxw5nAi8hysaXj/mctyClWgesyuxbeLylCBNauimg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loongarch64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-Li0emNnwtUZdLwHjQPBxn4VWztcrw/h7mgLyHiEI5Z0MhpeFGlzaiBHpSNVOMB/xucjXTTcO+dhv469Djr16KA==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-powerpc64le-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-sB8+pfkYx2kvpDCfd63d5ScYT0Fz1LO6jIb2zLZvmK9ob2D8DeVqrmBDE0iDK8KlBVmsTNzrjr3G1xV4eUZhSw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-5GQ6PFhh7E6jQm70p1aW05G2cap5zMOvO0se5JMecHeAdj5ZhWEHbJ4hiKpfi1nnnEdTauDXxPgXae/mqjow9w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-N/euLsBd1rekWcuduakTo/dJw6U6sBP3eUq+RXM9RNfPuWTvG2w/WObDkIvJ2KChy6oxZmOSC08Ak2OJA0UiAA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-s390x-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-2l9sA7d7QdikL0xQwNMO3xURBUNEWyHVHfAsHsUdq+E/pgLTUcCE+gih5PCdmyHmfTDeXUWVhqL0WZzg0nua3g==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-XZdD3fEEQcwG2KrJDdEQu7NrHonPxxaV0/w2HpvINBdcqebz1aL+0vM2WFJq4DeiAVT6F5SUQas65HY5JDqoPw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-7ayfgvtmmWgKWBkCGg5+xTQ0r5V1owVm67zTrsEY1008L5ro7mCyGYORomARt/OquB9KY7LpxVBZes+oSniAAQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-arm64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-B+IJgcBnE2bm93jEW5kHisqvPITs4ddLOROAcOc/diBgrEiQJJ6Qcjby75rFSmH5eMGrqJryUgJDhrfj942apQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-ia32-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-+CXwwG66g0/FpWOnP/v1HnrGVSOygK/osUbu3wPRy8ECXjoYKjRAyfxYpDQOfghC5qPJYLPH0oN4MCOjwgdMug==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@tanstack/react-store\": {\n \"version\": \"0.7.3\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.7.3.tgz\",\n \"integrity\": \"sha512-3Dnqtbw9P2P0gw8uUM8WP2fFfg8XMDSZCTsywRPZe/XqqYW8PGkXKZTvP0AHkE4mpqP9Y43GpOg9vwO44azu6Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@tanstack/store\": \"0.7.2\",\n \"use-sync-external-store\": \"^1.5.0\"\n },\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\",\n \"react-dom\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/@tanstack/store\": {\n \"version\": \"0.7.2\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/store/-/store-0.7.2.tgz\",\n \"integrity\": \"sha512-RP80Z30BYiPX2Pyo0Nyw4s1SJFH2jyM6f9i3HfX4pA+gm5jsnYryscdq2aIQLnL4TaGuQMO+zXmN9nh1Qck+Pg==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n }\n },\n \"node_modules/@types/babel__core\": {\n \"version\": \"7.20.5\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz\",\n \"integrity\": \"sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.20.7\",\n \"@babel/types\": \"^7.20.7\",\n \"@types/babel__generator\": \"*\",\n \"@types/babel__template\": \"*\",\n \"@types/babel__traverse\": \"*\"\n }\n },\n \"node_modules/@types/babel__generator\": {\n \"version\": \"7.27.0\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz\",\n \"integrity\": \"sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__template\": {\n \"version\": \"7.4.4\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz\",\n \"integrity\": \"sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.1.0\",\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__traverse\": {\n \"version\": \"7.20.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz\",\n \"integrity\": \"sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.20.7\"\n }\n },\n \"node_modules/@types/chai\": {\n \"version\": \"5.2.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz\",\n \"integrity\": \"sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/deep-eql\": \"*\"\n }\n },\n \"node_modules/@types/deep-eql\": {\n \"version\": \"4.0.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz\",\n \"integrity\": \"sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/estree\": {\n \"version\": \"1.0.8\",\n \"resolved\": \"https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz\",\n \"integrity\": \"sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/node\": {\n \"version\": \"22.16.3\",\n \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-22.16.3.tgz\",\n \"integrity\": \"sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"undici-types\": \"~6.21.0\"\n }\n },\n \"node_modules/@types/prop-types\": {\n \"version\": \"15.7.15\",\n \"resolved\": \"https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz\",\n \"integrity\": \"sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/react\": {\n \"version\": \"18.3.23\",\n \"resolved\": \"https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz\",\n \"integrity\": \"sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/prop-types\": \"*\",\n \"csstype\": \"^3.0.2\"\n }\n },\n \"node_modules/@types/react-dom\": {\n \"version\": \"18.3.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz\",\n \"integrity\": \"sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"@types/react\": \"^18.0.0\"\n }\n },\n \"node_modules/@types/retry\": {\n \"version\": \"0.12.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz\",\n \"integrity\": \"sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==\",\n \"license\": \"MIT\",\n \"peer\": true\n },\n \"node_modules/@vitejs/plugin-react\": {\n \"version\": \"4.6.0\",\n \"resolved\": \"https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz\",\n \"integrity\": \"sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/core\": \"^7.27.4\",\n \"@babel/plugin-transform-react-jsx-self\": \"^7.27.1\",\n \"@babel/plugin-transform-react-jsx-source\": \"^7.27.1\",\n \"@rolldown/pluginutils\": \"1.0.0-beta.19\",\n \"@types/babel__core\": \"^7.20.5\",\n \"react-refresh\": \"^0.17.0\"\n },\n \"engines\": {\n \"node\": \"^14.18.0 || >=16.0.0\"\n },\n \"peerDependencies\": {\n \"vite\": \"^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0\"\n }\n },\n \"node_modules/@vitest/expect\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz\",\n \"integrity\": \"sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/chai\": \"^5.2.2\",\n \"@vitest/spy\": \"3.2.4\",\n \"@vitest/utils\": \"3.2.4\",\n \"chai\": \"^5.2.0\",\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/mocker\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz\",\n \"integrity\": \"sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/spy\": \"3.2.4\",\n \"estree-walker\": \"^3.0.3\",\n \"magic-string\": \"^0.30.17\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"msw\": \"^2.4.9\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\"\n },\n \"peerDependenciesMeta\": {\n \"msw\": {\n \"optional\": true\n },\n \"vite\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@vitest/pretty-format\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz\",\n \"integrity\": \"sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/runner\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz\",\n \"integrity\": \"sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/utils\": \"3.2.4\",\n \"pathe\": \"^2.0.3\",\n \"strip-literal\": \"^3.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/snapshot\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz\",\n \"integrity\": \"sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/pretty-format\": \"3.2.4\",\n \"magic-string\": \"^0.30.17\",\n \"pathe\": \"^2.0.3\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/spy\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz\",\n \"integrity\": \"sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyspy\": \"^4.0.3\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/utils\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz\",\n \"integrity\": \"sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/pretty-format\": \"3.2.4\",\n \"loupe\": \"^3.1.4\",\n \"tinyrainbow\": \"^2.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/ansi-regex\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",\n \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/ansi-styles\": {\n \"version\": \"4.3.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",\n \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-convert\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/assertion-error\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz\",\n \"integrity\": \"sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/browserslist\": {\n \"version\": \"4.25.1\",\n \"resolved\": \"https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz\",\n \"integrity\": \"sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"caniuse-lite\": \"^1.0.30001726\",\n \"electron-to-chromium\": \"^1.5.173\",\n \"node-releases\": \"^2.0.19\",\n \"update-browserslist-db\": \"^1.1.3\"\n },\n \"bin\": {\n \"browserslist\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7\"\n }\n },\n \"node_modules/buffer-from\": {\n \"version\": \"1.1.2\",\n \"resolved\": \"https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz\",\n \"integrity\": \"sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/cac\": {\n \"version\": \"6.7.14\",\n \"resolved\": \"https://registry.npmjs.org/cac/-/cac-6.7.14.tgz\",\n \"integrity\": \"sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/caniuse-lite\": {\n \"version\": \"1.0.30001727\",\n \"resolved\": \"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz\",\n \"integrity\": \"sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/caniuse-lite\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"CC-BY-4.0\"\n },\n \"node_modules/cbor-extract\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz\",\n \"integrity\": \"sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==\",\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"node-gyp-build-optional-packages\": \"5.1.1\"\n },\n \"bin\": {\n \"download-cbor-prebuilds\": \"bin/download-prebuilds.js\"\n },\n \"optionalDependencies\": {\n \"@cbor-extract/cbor-extract-darwin-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-darwin-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-win32-x64\": \"2.2.0\"\n }\n },\n \"node_modules/cbor-x\": {\n \"version\": \"1.6.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz\",\n \"integrity\": \"sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"optionalDependencies\": {\n \"cbor-extract\": \"^2.2.0\"\n }\n },\n \"node_modules/chai\": {\n \"version\": \"5.2.1\",\n \"resolved\": \"https://registry.npmjs.org/chai/-/chai-5.2.1.tgz\",\n \"integrity\": \"sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"assertion-error\": \"^2.0.1\",\n \"check-error\": \"^2.1.1\",\n \"deep-eql\": \"^5.0.1\",\n \"loupe\": \"^3.1.0\",\n \"pathval\": \"^2.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/chalk\": {\n \"version\": \"4.1.2\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",\n \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.1.0\",\n \"supports-color\": \"^7.1.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/chalk/node_modules/supports-color\": {\n \"version\": \"7.2.0\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",\n \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/check-error\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz\",\n \"integrity\": \"sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 16\"\n }\n },\n \"node_modules/cliui\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz\",\n \"integrity\": \"sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"string-width\": \"^4.2.0\",\n \"strip-ansi\": \"^6.0.1\",\n \"wrap-ansi\": \"^7.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/color-convert\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",\n \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-name\": \"~1.1.4\"\n },\n \"engines\": {\n \"node\": \">=7.0.0\"\n }\n },\n \"node_modules/color-name\": {\n \"version\": \"1.1.4\",\n \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",\n \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/concurrently\": {\n \"version\": \"8.2.2\",\n \"resolved\": \"https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz\",\n \"integrity\": \"sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"chalk\": \"^4.1.2\",\n \"date-fns\": \"^2.30.0\",\n \"lodash\": \"^4.17.21\",\n \"rxjs\": \"^7.8.1\",\n \"shell-quote\": \"^1.8.1\",\n \"spawn-command\": \"0.0.2\",\n \"supports-color\": \"^8.1.1\",\n \"tree-kill\": \"^1.2.2\",\n \"yargs\": \"^17.7.2\"\n },\n \"bin\": {\n \"conc\": \"dist/bin/concurrently.js\",\n \"concurrently\": \"dist/bin/concurrently.js\"\n },\n \"engines\": {\n \"node\": \"^14.13.0 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/open-cli-tools/concurrently?sponsor=1\"\n }\n },\n \"node_modules/convert-source-map\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz\",\n \"integrity\": \"sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/csstype\": {\n \"version\": \"3.1.3\",\n \"resolved\": \"https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz\",\n \"integrity\": \"sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/date-fns\": {\n \"version\": \"2.30.0\",\n \"resolved\": \"https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz\",\n \"integrity\": \"sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/runtime\": \"^7.21.0\"\n },\n \"engines\": {\n \"node\": \">=0.11\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/date-fns\"\n }\n },\n \"node_modules/debug\": {\n \"version\": \"4.4.1\",\n \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.4.1.tgz\",\n \"integrity\": \"sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ms\": \"^2.1.3\"\n },\n \"engines\": {\n \"node\": \">=6.0\"\n },\n \"peerDependenciesMeta\": {\n \"supports-color\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/deep-eql\": {\n \"version\": \"5.0.2\",\n \"resolved\": \"https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz\",\n \"integrity\": \"sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/detect-libc\": {\n \"version\": \"2.0.4\",\n \"resolved\": \"https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz\",\n \"integrity\": \"sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==\",\n \"license\": \"Apache-2.0\",\n \"optional\": true,\n \"peer\": true,\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/electron-to-chromium\": {\n \"version\": \"1.5.183\",\n \"resolved\": \"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.183.tgz\",\n \"integrity\": \"sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/emoji-regex\": {\n \"version\": \"8.0.0\",\n \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",\n \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/es-module-lexer\": {\n \"version\": \"1.7.0\",\n \"resolved\": \"https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz\",\n \"integrity\": \"sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/esbuild\": {\n \"version\": \"0.18.20\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz\",\n \"integrity\": \"sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/android-arm\": \"0.18.20\",\n \"@esbuild/android-arm64\": \"0.18.20\",\n \"@esbuild/android-x64\": \"0.18.20\",\n \"@esbuild/darwin-arm64\": \"0.18.20\",\n \"@esbuild/darwin-x64\": \"0.18.20\",\n \"@esbuild/freebsd-arm64\": \"0.18.20\",\n \"@esbuild/freebsd-x64\": \"0.18.20\",\n \"@esbuild/linux-arm\": \"0.18.20\",\n \"@esbuild/linux-arm64\": \"0.18.20\",\n \"@esbuild/linux-ia32\": \"0.18.20\",\n \"@esbuild/linux-loong64\": \"0.18.20\",\n \"@esbuild/linux-mips64el\": \"0.18.20\",\n \"@esbuild/linux-ppc64\": \"0.18.20\",\n \"@esbuild/linux-riscv64\": \"0.18.20\",\n \"@esbuild/linux-s390x\": \"0.18.20\",\n \"@esbuild/linux-x64\": \"0.18.20\",\n \"@esbuild/netbsd-x64\": \"0.18.20\",\n \"@esbuild/openbsd-x64\": \"0.18.20\",\n \"@esbuild/sunos-x64\": \"0.18.20\",\n \"@esbuild/win32-arm64\": \"0.18.20\",\n \"@esbuild/win32-ia32\": \"0.18.20\",\n \"@esbuild/win32-x64\": \"0.18.20\"\n }\n },\n \"node_modules/escalade\": {\n \"version\": \"3.2.0\",\n \"resolved\": \"https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz\",\n \"integrity\": \"sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/estree-walker\": {\n \"version\": \"3.0.3\",\n \"resolved\": \"https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz\",\n \"integrity\": \"sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"^1.0.0\"\n }\n },\n \"node_modules/expect-type\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz\",\n \"integrity\": \"sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=12.0.0\"\n }\n },\n \"node_modules/fdir\": {\n \"version\": \"6.4.6\",\n \"resolved\": \"https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz\",\n \"integrity\": \"sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"picomatch\": \"^3 || ^4\"\n },\n \"peerDependenciesMeta\": {\n \"picomatch\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/fsevents\": {\n \"version\": \"2.3.3\",\n \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz\",\n \"integrity\": \"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \"^8.16.0 || ^10.6.0 || >=11.0.0\"\n }\n },\n \"node_modules/gensync\": {\n \"version\": \"1.0.0-beta.2\",\n \"resolved\": \"https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz\",\n \"integrity\": \"sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/get-caller-file\": {\n \"version\": \"2.0.5\",\n \"resolved\": \"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz\",\n \"integrity\": \"sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \"6.* || 8.* || >= 10.*\"\n }\n },\n \"node_modules/get-tsconfig\": {\n \"version\": \"4.10.1\",\n \"resolved\": \"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz\",\n \"integrity\": \"sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"resolve-pkg-maps\": \"^1.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/get-tsconfig?sponsor=1\"\n }\n },\n \"node_modules/has-flag\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",\n \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/invariant\": {\n \"version\": \"2.2.4\",\n \"resolved\": \"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz\",\n \"integrity\": \"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"loose-envify\": \"^1.0.0\"\n }\n },\n \"node_modules/is-fullwidth-code-point\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",\n \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/is-network-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz\",\n \"integrity\": \"sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/js-tokens\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz\",\n \"integrity\": \"sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==\",\n \"license\": \"MIT\"\n },\n \"node_modules/jsesc\": {\n \"version\": \"3.1.0\",\n \"resolved\": \"https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz\",\n \"integrity\": \"sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"jsesc\": \"bin/jsesc\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/json5\": {\n \"version\": \"2.2.3\",\n \"resolved\": \"https://registry.npmjs.org/json5/-/json5-2.2.3.tgz\",\n \"integrity\": \"sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"json5\": \"lib/cli.js\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/lodash\": {\n \"version\": \"4.17.21\",\n \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",\n \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/loose-envify\": {\n \"version\": \"1.4.0\",\n \"resolved\": \"https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz\",\n \"integrity\": \"sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^3.0.0 || ^4.0.0\"\n },\n \"bin\": {\n \"loose-envify\": \"cli.js\"\n }\n },\n \"node_modules/loupe\": {\n \"version\": \"3.1.4\",\n \"resolved\": \"https://registry.npmjs.org/loupe/-/loupe-3.1.4.tgz\",\n \"integrity\": \"sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/lru-cache\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz\",\n \"integrity\": \"sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"yallist\": \"^3.0.2\"\n }\n },\n \"node_modules/magic-string\": {\n \"version\": \"0.30.17\",\n \"resolved\": \"https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz\",\n \"integrity\": \"sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\"\n }\n },\n \"node_modules/ms\": {\n \"version\": \"2.1.3\",\n \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",\n \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/node-gyp-build-optional-packages\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz\",\n \"integrity\": \"sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==\",\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"detect-libc\": \"^2.0.1\"\n },\n \"bin\": {\n \"node-gyp-build-optional-packages\": \"bin.js\",\n \"node-gyp-build-optional-packages-optional\": \"optional.js\",\n \"node-gyp-build-optional-packages-test\": \"build-test.js\"\n }\n },\n \"node_modules/node-releases\": {\n \"version\": \"2.0.19\",\n \"resolved\": \"https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz\",\n \"integrity\": \"sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/on-change\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/on-change/-/on-change-5.0.1.tgz\",\n \"integrity\": \"sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/on-change?sponsor=1\"\n }\n },\n \"node_modules/p-retry\": {\n \"version\": \"6.2.1\",\n \"resolved\": \"https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz\",\n \"integrity\": \"sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"@types/retry\": \"0.12.2\",\n \"is-network-error\": \"^1.0.0\",\n \"retry\": \"^0.13.1\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/pathval\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz\",\n \"integrity\": \"sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 14.16\"\n }\n },\n \"node_modules/picocolors\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz\",\n \"integrity\": \"sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/picomatch\": {\n \"version\": \"4.0.2\",\n \"resolved\": \"https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz\",\n \"integrity\": \"sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/jonschlinkert\"\n }\n },\n \"node_modules/postcss\": {\n \"version\": \"8.5.6\",\n \"resolved\": \"https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz\",\n \"integrity\": \"sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/postcss/\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/postcss\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"nanoid\": \"^3.3.11\",\n \"picocolors\": \"^1.1.1\",\n \"source-map-js\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || >=14\"\n }\n },\n \"node_modules/react\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react/-/react-18.3.1.tgz\",\n \"integrity\": \"sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n },\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/react-dom\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz\",\n \"integrity\": \"sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\",\n \"scheduler\": \"^0.23.2\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.3.1\"\n }\n },\n \"node_modules/react-refresh\": {\n \"version\": \"0.17.0\",\n \"resolved\": \"https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz\",\n \"integrity\": \"sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/require-directory\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz\",\n \"integrity\": \"sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/resolve-pkg-maps\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz\",\n \"integrity\": \"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/resolve-pkg-maps?sponsor=1\"\n }\n },\n \"node_modules/retry\": {\n \"version\": \"0.13.1\",\n \"resolved\": \"https://registry.npmjs.org/retry/-/retry-0.13.1.tgz\",\n \"integrity\": \"sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">= 4\"\n }\n },\n \"node_modules/rollup\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/rollup/-/rollup-4.45.0.tgz\",\n \"integrity\": \"sha512-WLjEcJRIo7i3WDDgOIJqVI2d+lAC3EwvOGy+Xfq6hs+GQuAA4Di/H72xmXkOhrIWFg2PFYSKZYfH0f4vfKXN4A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"1.0.8\"\n },\n \"bin\": {\n \"rollup\": \"dist/bin/rollup\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"optionalDependencies\": {\n \"@rollup/rollup-android-arm-eabi\": \"4.45.0\",\n \"@rollup/rollup-android-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-x64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-arm64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-x64\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-gnueabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-musleabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-loongarch64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-powerpc64le-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-s390x-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-musl\": \"4.45.0\",\n \"@rollup/rollup-win32-arm64-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-ia32-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-x64-msvc\": \"4.45.0\",\n \"fsevents\": \"~2.3.2\"\n }\n },\n \"node_modules/rxjs\": {\n \"version\": \"7.8.2\",\n \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz\",\n \"integrity\": \"sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"tslib\": \"^2.1.0\"\n }\n },\n \"node_modules/scheduler\": {\n \"version\": \"0.23.2\",\n \"resolved\": \"https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz\",\n \"integrity\": \"sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n }\n },\n \"node_modules/semver\": {\n \"version\": \"6.3.1\",\n \"resolved\": \"https://registry.npmjs.org/semver/-/semver-6.3.1.tgz\",\n \"integrity\": \"sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"bin\": {\n \"semver\": \"bin/semver.js\"\n }\n },\n \"node_modules/shell-quote\": {\n \"version\": \"1.8.3\",\n \"resolved\": \"https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz\",\n \"integrity\": \"sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 0.4\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/ljharb\"\n }\n },\n \"node_modules/siginfo\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz\",\n \"integrity\": \"sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/source-map\": {\n \"version\": \"0.6.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz\",\n \"integrity\": \"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/source-map-js\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz\",\n \"integrity\": \"sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/source-map-support\": {\n \"version\": \"0.5.21\",\n \"resolved\": \"https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz\",\n \"integrity\": \"sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"buffer-from\": \"^1.0.0\",\n \"source-map\": \"^0.6.0\"\n }\n },\n \"node_modules/spawn-command\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz\",\n \"integrity\": \"sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==\",\n \"dev\": true\n },\n \"node_modules/stackback\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz\",\n \"integrity\": \"sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/std-env\": {\n \"version\": \"3.9.0\",\n \"resolved\": \"https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz\",\n \"integrity\": \"sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/string-width\": {\n \"version\": \"4.2.3\",\n \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",\n \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"emoji-regex\": \"^8.0.0\",\n \"is-fullwidth-code-point\": \"^3.0.0\",\n \"strip-ansi\": \"^6.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-ansi\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",\n \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-regex\": \"^5.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-literal\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz\",\n \"integrity\": \"sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^9.0.1\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/strip-literal/node_modules/js-tokens\": {\n \"version\": \"9.0.1\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz\",\n \"integrity\": \"sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/supports-color\": {\n \"version\": \"8.1.1\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",\n \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/supports-color?sponsor=1\"\n }\n },\n \"node_modules/tinybench\": {\n \"version\": \"2.9.0\",\n \"resolved\": \"https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz\",\n \"integrity\": \"sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyexec\": {\n \"version\": \"0.3.2\",\n \"resolved\": \"https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz\",\n \"integrity\": \"sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinyglobby\": {\n \"version\": \"0.2.14\",\n \"resolved\": \"https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz\",\n \"integrity\": \"sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"fdir\": \"^6.4.4\",\n \"picomatch\": \"^4.0.2\"\n },\n \"engines\": {\n \"node\": \">=12.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/SuperchupuDev\"\n }\n },\n \"node_modules/tinypool\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz\",\n \"integrity\": \"sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n }\n },\n \"node_modules/tinyrainbow\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz\",\n \"integrity\": \"sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tinyspy\": {\n \"version\": \"4.0.3\",\n \"resolved\": \"https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz\",\n \"integrity\": \"sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tree-kill\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz\",\n \"integrity\": \"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"tree-kill\": \"cli.js\"\n }\n },\n \"node_modules/tslib\": {\n \"version\": \"2.8.1\",\n \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz\",\n \"integrity\": \"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==\",\n \"dev\": true,\n \"license\": \"0BSD\"\n },\n \"node_modules/tsx\": {\n \"version\": \"3.14.0\",\n \"resolved\": \"https://registry.npmjs.org/tsx/-/tsx-3.14.0.tgz\",\n \"integrity\": \"sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"~0.18.20\",\n \"get-tsconfig\": \"^4.7.2\",\n \"source-map-support\": \"^0.5.21\"\n },\n \"bin\": {\n \"tsx\": \"dist/cli.mjs\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n }\n },\n \"node_modules/typescript\": {\n \"version\": \"5.8.3\",\n \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz\",\n \"integrity\": \"sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"bin\": {\n \"tsc\": \"bin/tsc\",\n \"tsserver\": \"bin/tsserver\"\n },\n \"engines\": {\n \"node\": \">=14.17\"\n }\n },\n \"node_modules/undici-types\": {\n \"version\": \"6.21.0\",\n \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/update-browserslist-db\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz\",\n \"integrity\": \"sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"escalade\": \"^3.2.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"bin\": {\n \"update-browserslist-db\": \"cli.js\"\n },\n \"peerDependencies\": {\n \"browserslist\": \">= 4.21.0\"\n }\n },\n \"node_modules/use-sync-external-store\": {\n \"version\": \"1.5.0\",\n \"resolved\": \"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz\",\n \"integrity\": \"sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==\",\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/vite\": {\n \"version\": \"5.4.19\",\n \"resolved\": \"https://registry.npmjs.org/vite/-/vite-5.4.19.tgz\",\n \"integrity\": \"sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"^0.21.3\",\n \"postcss\": \"^8.4.43\",\n \"rollup\": \"^4.20.0\"\n },\n \"bin\": {\n \"vite\": \"bin/vite.js\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/vitejs/vite?sponsor=1\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n },\n \"peerDependencies\": {\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"less\": \"*\",\n \"lightningcss\": \"^1.21.0\",\n \"sass\": \"*\",\n \"sass-embedded\": \"*\",\n \"stylus\": \"*\",\n \"sugarss\": \"*\",\n \"terser\": \"^5.4.0\"\n },\n \"peerDependenciesMeta\": {\n \"@types/node\": {\n \"optional\": true\n },\n \"less\": {\n \"optional\": true\n },\n \"lightningcss\": {\n \"optional\": true\n },\n \"sass\": {\n \"optional\": true\n },\n \"sass-embedded\": {\n \"optional\": true\n },\n \"stylus\": {\n \"optional\": true\n },\n \"sugarss\": {\n \"optional\": true\n },\n \"terser\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/vite-node\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz\",\n \"integrity\": \"sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cac\": \"^6.7.14\",\n \"debug\": \"^4.4.1\",\n \"es-module-lexer\": \"^1.7.0\",\n \"pathe\": \"^2.0.3\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\"\n },\n \"bin\": {\n \"vite-node\": \"vite-node.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz\",\n \"integrity\": \"sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz\",\n \"integrity\": \"sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz\",\n \"integrity\": \"sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz\",\n \"integrity\": \"sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/esbuild\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz\",\n \"integrity\": \"sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.21.5\",\n \"@esbuild/android-arm\": \"0.21.5\",\n \"@esbuild/android-arm64\": \"0.21.5\",\n \"@esbuild/android-x64\": \"0.21.5\",\n \"@esbuild/darwin-arm64\": \"0.21.5\",\n \"@esbuild/darwin-x64\": \"0.21.5\",\n \"@esbuild/freebsd-arm64\": \"0.21.5\",\n \"@esbuild/freebsd-x64\": \"0.21.5\",\n \"@esbuild/linux-arm\": \"0.21.5\",\n \"@esbuild/linux-arm64\": \"0.21.5\",\n \"@esbuild/linux-ia32\": \"0.21.5\",\n \"@esbuild/linux-loong64\": \"0.21.5\",\n \"@esbuild/linux-mips64el\": \"0.21.5\",\n \"@esbuild/linux-ppc64\": \"0.21.5\",\n \"@esbuild/linux-riscv64\": \"0.21.5\",\n \"@esbuild/linux-s390x\": \"0.21.5\",\n \"@esbuild/linux-x64\": \"0.21.5\",\n \"@esbuild/netbsd-x64\": \"0.21.5\",\n \"@esbuild/openbsd-x64\": \"0.21.5\",\n \"@esbuild/sunos-x64\": \"0.21.5\",\n \"@esbuild/win32-arm64\": \"0.21.5\",\n \"@esbuild/win32-ia32\": \"0.21.5\",\n \"@esbuild/win32-x64\": \"0.21.5\"\n }\n },\n \"node_modules/vitest\": {\n \"version\": \"3.2.4\",\n \"resolved\": \"https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz\",\n \"integrity\": \"sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/chai\": \"^5.2.2\",\n \"@vitest/expect\": \"3.2.4\",\n \"@vitest/mocker\": \"3.2.4\",\n \"@vitest/pretty-format\": \"^3.2.4\",\n \"@vitest/runner\": \"3.2.4\",\n \"@vitest/snapshot\": \"3.2.4\",\n \"@vitest/spy\": \"3.2.4\",\n \"@vitest/utils\": \"3.2.4\",\n \"chai\": \"^5.2.0\",\n \"debug\": \"^4.4.1\",\n \"expect-type\": \"^1.2.1\",\n \"magic-string\": \"^0.30.17\",\n \"pathe\": \"^2.0.3\",\n \"picomatch\": \"^4.0.2\",\n \"std-env\": \"^3.9.0\",\n \"tinybench\": \"^2.9.0\",\n \"tinyexec\": \"^0.3.2\",\n \"tinyglobby\": \"^0.2.14\",\n \"tinypool\": \"^1.1.1\",\n \"tinyrainbow\": \"^2.0.0\",\n \"vite\": \"^5.0.0 || ^6.0.0 || ^7.0.0-0\",\n \"vite-node\": \"3.2.4\",\n \"why-is-node-running\": \"^2.3.0\"\n },\n \"bin\": {\n \"vitest\": \"vitest.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"@edge-runtime/vm\": \"*\",\n \"@types/debug\": \"^4.1.12\",\n \"@types/node\": \"^18.0.0 || ^20.0.0 || >=22.0.0\",\n \"@vitest/browser\": \"3.2.4\",\n \"@vitest/ui\": \"3.2.4\",\n \"happy-dom\": \"*\",\n \"jsdom\": \"*\"\n },\n \"peerDependenciesMeta\": {\n \"@edge-runtime/vm\": {\n \"optional\": true\n },\n \"@types/debug\": {\n \"optional\": true\n },\n \"@types/node\": {\n \"optional\": true\n },\n \"@vitest/browser\": {\n \"optional\": true\n },\n \"@vitest/ui\": {\n \"optional\": true\n },\n \"happy-dom\": {\n \"optional\": true\n },\n \"jsdom\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/why-is-node-running\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz\",\n \"integrity\": \"sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"siginfo\": \"^2.0.0\",\n \"stackback\": \"0.0.2\"\n },\n \"bin\": {\n \"why-is-node-running\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/wrap-ansi\": {\n \"version\": \"7.0.0\",\n \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",\n \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.0.0\",\n \"string-width\": \"^4.1.0\",\n \"strip-ansi\": \"^6.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/wrap-ansi?sponsor=1\"\n }\n },\n \"node_modules/y18n\": {\n \"version\": \"5.0.8\",\n \"resolved\": \"https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz\",\n \"integrity\": \"sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/yallist\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz\",\n \"integrity\": \"sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/yargs\": {\n \"version\": \"17.7.2\",\n \"resolved\": \"https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz\",\n \"integrity\": \"sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cliui\": \"^8.0.1\",\n \"escalade\": \"^3.1.1\",\n \"get-caller-file\": \"^2.0.5\",\n \"require-directory\": \"^2.1.1\",\n \"string-width\": \"^4.2.3\",\n \"y18n\": \"^5.0.5\",\n \"yargs-parser\": \"^21.1.1\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yargs-parser\": {\n \"version\": \"21.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz\",\n \"integrity\": \"sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/zod\": {\n \"version\": \"3.25.76\",\n \"resolved\": \"https://registry.npmjs.org/zod/-/zod-3.25.76.tgz\",\n \"integrity\": \"sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"funding\": {\n \"url\": \"https://github.com/sponsors/colinhacks\"\n }\n }\n }\n}\n",
+ "package.json": "{\n \"name\": \"example-database\",\n \"version\": \"0.9.1\",\n \"private\": true,\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"concurrently \\\"npm run dev:backend\\\" \\\"npm run dev:frontend\\\"\",\n \"dev:backend\": \"tsx --watch src/backend/server.ts\",\n \"dev:frontend\": \"vite\",\n \"build\": \"vite build\",\n \"check-types\": \"tsc --noEmit\",\n \"test\": \"vitest run\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^22.13.9\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.2.0\",\n \"concurrently\": \"^8.2.2\",\n \"rivetkit\": \"^0.9.1\",\n \"tsx\": \"^3.12.7\",\n \"typescript\": \"^5.5.2\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^3.1.1\"\n },\n \"dependencies\": {\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"stableVersion\": \"0.8.0\"\n}\n",
"tsconfig.json": "{\n \"compilerOptions\": {\n \"target\": \"esnext\",\n \"lib\": [\"esnext\", \"dom\"],\n \"jsx\": \"react-jsx\",\n \"module\": \"esnext\",\n \"moduleResolution\": \"bundler\",\n \"types\": [\"node\", \"vite/client\"],\n \"resolveJsonModule\": true,\n \"allowJs\": true,\n \"checkJs\": false,\n \"noEmit\": true,\n \"isolatedModules\": true,\n \"allowSyntheticDefaultImports\": true,\n \"forceConsistentCasingInFileNames\": true,\n \"strict\": true,\n \"skipLibCheck\": true\n },\n \"include\": [\"src/**/*\"],\n \"exclude\": [\"node_modules\", \"dist\"]\n}\n",
"vite.config.ts": "import react from \"@vitejs/plugin-react\";\nimport { defineConfig } from \"vite\";\n\nexport default defineConfig({\n\tplugins: [react()],\n\troot: \"src/frontend\",\n\tserver: {\n\t\tport: 3000,\n\t},\n});\n",
"vitest.config.ts": "import { defineConfig } from \"vitest/config\";\n\nexport default defineConfig({\n\ttest: {\n\t\tinclude: [\"tests/**/*.test.ts\"],\n\t},\n});\n",
"src/frontend/App.tsx": "import { createClient, createRivetKit } from \"@rivetkit/react\";\nimport { useEffect, useState } from \"react\";\nimport type { Note, registry } from \"../backend/registry\";\n\nconst client = createClient(\"http://localhost:8080\");\nconst { useActor } = createRivetKit(client);\n\nfunction NotesApp({ userId }: { userId: string }) {\n\tconst [notes, setNotes] = useState([]);\n\tconst [newNote, setNewNote] = useState(\"\");\n\tconst [editingNote, setEditingNote] = useState(null);\n\tconst [editContent, setEditContent] = useState(\"\");\n\n\tconst notesActor = useActor({\n\t\tname: \"notes\",\n\t\tkey: [userId],\n\t\tparams: { userId, token: \"demo-token\" },\n\t});\n\n\tuseEffect(() => {\n\t\tif (notesActor.connection) {\n\t\t\tnotesActor.connection.getNotes().then(setNotes);\n\t\t}\n\t}, [notesActor.connection]);\n\n\tnotesActor.useEvent(\"noteAdded\", (note: Note) => {\n\t\tsetNotes((prev) => [...prev, note]);\n\t});\n\n\tnotesActor.useEvent(\"noteUpdated\", (updatedNote: Note) => {\n\t\tsetNotes((prev) =>\n\t\t\tprev.map((note) => (note.id === updatedNote.id ? updatedNote : note))\n\t\t);\n\t\tsetEditingNote(null);\n\t});\n\n\tnotesActor.useEvent(\"noteDeleted\", ({ id }: { id: string }) => {\n\t\tsetNotes((prev) => prev.filter((note) => note.id !== id));\n\t});\n\n\tconst addNote = async () => {\n\t\tif (notesActor.connection && newNote.trim()) {\n\t\t\tawait notesActor.connection.updateNote({ \n\t\t\t\tid: `note-${Date.now()}`, \n\t\t\t\tcontent: newNote \n\t\t\t});\n\t\t\tsetNewNote(\"\");\n\t\t}\n\t};\n\n\tconst startEdit = (note: Note) => {\n\t\tsetEditingNote(note.id);\n\t\tsetEditContent(note.content);\n\t};\n\n\tconst saveEdit = async () => {\n\t\tif (notesActor.connection && editingNote) {\n\t\t\tawait notesActor.connection.updateNote({ \n\t\t\t\tid: editingNote, \n\t\t\t\tcontent: editContent \n\t\t\t});\n\t\t}\n\t};\n\n\tconst cancelEdit = () => {\n\t\tsetEditingNote(null);\n\t\tsetEditContent(\"\");\n\t};\n\n\tconst deleteNote = async (id: string) => {\n\t\tif (notesActor.connection && confirm(\"Are you sure you want to delete this note?\")) {\n\t\t\tawait notesActor.connection.deleteNote({ id });\n\t\t}\n\t};\n\n\tconst handleKeyPress = (e: React.KeyboardEvent, action: () => void) => {\n\t\tif (e.key === \"Enter\") {\n\t\t\taction();\n\t\t}\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{notesActor.connection ? '✓ Connected' : '⚠ Disconnected'}\n\t\t\t\n\n\t\t\t\n\t\t\t\t setNewNote(e.target.value)}\n\t\t\t\t\tonKeyPress={(e) => handleKeyPress(e, addNote)}\n\t\t\t\t\tplaceholder=\"Enter a new note...\"\n\t\t\t\t\tdisabled={!notesActor.connection}\n\t\t\t\t/>\n\t\t\t\t\n\t\t\t\n\n\t\t\t{notes.length === 0 ? (\n\t\t\t\t\n\t\t\t\t\tNo notes yet. Add your first note above!\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t\n\t\t\t\t\t{notes\n\t\t\t\t\t\t.sort((a, b) => b.updatedAt - a.updatedAt)\n\t\t\t\t\t\t.map((note) => (\n\t\t\t\t\t\t- \n\t\t\t\t\t\t\t{editingNote === note.id ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t setEditContent(e.target.value)}\n\t\t\t\t\t\t\t\t\t\tonKeyPress={(e) => handleKeyPress(e, saveEdit)}\n\t\t\t\t\t\t\t\t\t\tclassName=\"edit-input\"\n\t\t\t\t\t\t\t\t\t\tautoFocus\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{note.content}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\tLast updated: {new Date(note.updatedAt).toLocaleString()}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t))}\n\t\t\t\t
\n\t\t\t)}\n\t\t\n\t);\n}\n\nexport function App() {\n\tconst [selectedUser, setSelectedUser] = useState(\"user1\");\n\n\tconst users = [\n\t\t{ id: \"user1\", name: \"Alice\" },\n\t\t{ id: \"user2\", name: \"Bob\" },\n\t\t{ id: \"user3\", name: \"Charlie\" },\n\t];\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tDatabase Notes
\n\t\t\t\tPersistent note-taking with real-time updates
\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t \n\t\t\n\t);\n}",
"src/frontend/main.tsx": "import { StrictMode } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { App } from \"./App\";\n\nconst root = document.getElementById(\"root\");\nif (!root) throw new Error(\"Root element not found\");\n\ncreateRoot(root).render(\n\t\n\t\t \n\t \n);",
"src/frontend/index.html": "\n\n\n \n \n Database Notes Example \n \n\n\n \n \n\n",
- "src/backend/registry.ts": "import { actor, setup } from \"@rivetkit/actor\";\nimport { authenticate } from \"./my-utils\";\n\nexport type Note = { id: string; content: string; updatedAt: number };\n\nexport const notes = actor({\n\tonAuth: () => {},\n\t// Persistent state that survives restarts: https://rivet.gg/docs/actors/state\n\tstate: {\n\t\tnotes: [] as Note[],\n\t},\n\n\tactions: {\n\t\t// Callable functions from clients: https://rivet.gg/docs/actors/actions\n\t\tgetNotes: (c) => c.state.notes,\n\n\t\tupdateNote: (c, { id, content }: { id?: string; content: string }) => {\n\t\t\tconst noteIndex = c.state.notes.findIndex((note) => note.id === id);\n\t\t\tlet note: Note;\n\n\t\t\tif (noteIndex >= 0) {\n\t\t\t\t// Update existing note\n\t\t\t\tnote = c.state.notes[noteIndex];\n\t\t\t\tnote.content = content;\n\t\t\t\tnote.updatedAt = Date.now();\n\t\t\t\t// Send events to all connected clients: https://rivet.gg/docs/actors/events\n\t\t\t\tc.broadcast(\"noteUpdated\", note);\n\t\t\t} else {\n\t\t\t\t// Create new note\n\t\t\t\tnote = {\n\t\t\t\t\tid: id || `note-${Date.now()}`,\n\t\t\t\t\tcontent,\n\t\t\t\t\tupdatedAt: Date.now(),\n\t\t\t\t};\n\t\t\t\t// State changes are automatically persisted\n\t\t\t\tc.state.notes.push(note);\n\t\t\t\tc.broadcast(\"noteAdded\", note);\n\t\t\t}\n\n\t\t\treturn note;\n\t\t},\n\n\t\tdeleteNote: (c, { id }: { id: string }) => {\n\t\t\tconst noteIndex = c.state.notes.findIndex((note) => note.id === id);\n\t\t\tif (noteIndex >= 0) {\n\t\t\t\tc.state.notes.splice(noteIndex, 1);\n\t\t\t\tc.broadcast(\"noteDeleted\", { id });\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t},\n});\n\n// Register actors for use: https://rivet.gg/docs/setup\nexport const registry = setup({\n\tuse: { notes },\n});\n",
+ "src/backend/registry.ts": "import { actor, setup } from \"rivetkit\";\nimport { authenticate } from \"./my-utils\";\n\nexport type Note = { id: string; content: string; updatedAt: number };\n\nexport const notes = actor({\n\tonAuth: () => {},\n\t// Persistent state that survives restarts: https://rivet.gg/docs/actors/state\n\tstate: {\n\t\tnotes: [] as Note[],\n\t},\n\n\tactions: {\n\t\t// Callable functions from clients: https://rivet.gg/docs/actors/actions\n\t\tgetNotes: (c) => c.state.notes,\n\n\t\tupdateNote: (c, { id, content }: { id?: string; content: string }) => {\n\t\t\tconst noteIndex = c.state.notes.findIndex((note) => note.id === id);\n\t\t\tlet note: Note;\n\n\t\t\tif (noteIndex >= 0) {\n\t\t\t\t// Update existing note\n\t\t\t\tnote = c.state.notes[noteIndex];\n\t\t\t\tnote.content = content;\n\t\t\t\tnote.updatedAt = Date.now();\n\t\t\t\t// Send events to all connected clients: https://rivet.gg/docs/actors/events\n\t\t\t\tc.broadcast(\"noteUpdated\", note);\n\t\t\t} else {\n\t\t\t\t// Create new note\n\t\t\t\tnote = {\n\t\t\t\t\tid: id || `note-${Date.now()}`,\n\t\t\t\t\tcontent,\n\t\t\t\t\tupdatedAt: Date.now(),\n\t\t\t\t};\n\t\t\t\t// State changes are automatically persisted\n\t\t\t\tc.state.notes.push(note);\n\t\t\t\tc.broadcast(\"noteAdded\", note);\n\t\t\t}\n\n\t\t\treturn note;\n\t\t},\n\n\t\tdeleteNote: (c, { id }: { id: string }) => {\n\t\t\tconst noteIndex = c.state.notes.findIndex((note) => note.id === id);\n\t\t\tif (noteIndex >= 0) {\n\t\t\t\tc.state.notes.splice(noteIndex, 1);\n\t\t\t\tc.broadcast(\"noteDeleted\", { id });\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t},\n});\n\n// Register actors for use: https://rivet.gg/docs/setup\nexport const registry = setup({\n\tuse: { notes },\n});\n",
"src/backend/my-utils.ts": "export async function authenticate(token: string): Promise {\n\t// Mock authentication - in real app, verify JWT or session token\n\tif (token === \"demo-token\") {\n\t\treturn \"user123\";\n\t}\n\tthrow new Error(\"Invalid token\");\n}\n",
"src/backend/server.ts": "import { registry } from \"./registry\";\n\nregistry.runServer({\n\tcors: {\n\t\torigin: \"*\",\n\t},\n});\n"
}
@@ -196,17 +196,17 @@ export const examples: ExampleData[] = [
],
"tab": "memory",
"files": {
- "tests/tenant.test.ts": "import { setupTest } from \"@rivetkit/actor/test\";\nimport { expect, test, vi } from \"vitest\";\nimport { registry } from \"../src/backend/registry\";\n\n// Mock authentication function\nvi.mock(\"../src/backend/registry\", async (importOriginal) => {\n\tconst mod = await importOriginal();\n\treturn {\n\t\t...mod,\n\t\t// We'll need to test without connection state since it requires auth\n\t};\n});\n\ntest(\"Tenant organization can provide basic info\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst tenant = client.tenant.getOrCreate([\"test-org\"]);\n\n\t// Get organization info\n\tconst orgInfo = await tenant.getOrganization();\n\texpect(orgInfo).toMatchObject({\n\t\tid: expect.any(String),\n\t\tname: expect.any(String),\n\t\tmemberCount: expect.any(Number),\n\t});\n\texpect(orgInfo.memberCount).toBeGreaterThan(0);\n});\n\ntest(\"Tenant organization tracks members\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst tenant = client.tenant.getOrCreate([\"test-members\"]);\n\n\t// Get all members\n\tconst members = await tenant.getMembers();\n\texpect(Array.isArray(members)).toBe(true);\n\texpect(members.length).toBeGreaterThan(0);\n\n\t// Verify member structure\n\tmembers.forEach((member) => {\n\t\texpect(member).toMatchObject({\n\t\t\tid: expect.any(String),\n\t\t\tname: expect.any(String),\n\t\t\temail: expect.any(String),\n\t\t\trole: expect.stringMatching(/^(admin|member)$/),\n\t\t});\n\t});\n});\n\ntest(\"Tenant organization provides dashboard stats\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst tenant = client.tenant.getOrCreate([\"test-stats\"]);\n\n\t// Get dashboard stats (without admin privileges)\n\tconst stats = await tenant.getDashboardStats();\n\texpect(stats).toMatchObject({\n\t\ttotalMembers: expect.any(Number),\n\t\tadminCount: expect.any(Number),\n\t\tmemberCount: expect.any(Number),\n\t});\n\n\t// Verify member counts add up\n\texpect(stats.adminCount + stats.memberCount).toBe(stats.totalMembers);\n\texpect(stats.totalMembers).toBeGreaterThan(0);\n\texpect(stats.adminCount).toBeGreaterThan(0);\n});\n\ntest(\"Tenant organization validates member roles\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst tenant = client.tenant.getOrCreate([\"test-roles\"]);\n\n\tconst members = await tenant.getMembers();\n\tconst orgInfo = await tenant.getOrganization();\n\n\t// Verify at least one admin exists\n\tconst admins = members.filter((m) => m.role === \"admin\");\n\tconst regularMembers = members.filter((m) => m.role === \"member\");\n\n\texpect(admins.length).toBeGreaterThan(0);\n\texpect(members.length).toBe(orgInfo.memberCount);\n\texpect(admins.length + regularMembers.length).toBe(members.length);\n});\n\ntest(\"Tenant organization handles initial data correctly\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst tenant = client.tenant.getOrCreate([\"test-initial-data\"]);\n\n\t// Verify initial state has expected structure\n\tconst members = await tenant.getMembers();\n\tconst orgInfo = await tenant.getOrganization();\n\n\texpect(orgInfo.name).toBeTruthy();\n\texpect(orgInfo.id).toBeTruthy();\n\texpect(members.length).toBe(orgInfo.memberCount);\n\n\t// Verify we have the expected sample data\n\texpect(members.some((m) => m.role === \"admin\")).toBe(true);\n\texpect(members.some((m) => m.role === \"member\")).toBe(true);\n\n\t// Verify email formats\n\tmembers.forEach((member) => {\n\t\texpect(member.email).toMatch(/@/);\n\t\texpect(member.name).toBeTruthy();\n\t\texpect(member.id).toBeTruthy();\n\t});\n});\n\ntest(\"Tenant organization member data consistency\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst tenant = client.tenant.getOrCreate([\"test-consistency\"]);\n\n\t// Get data multiple times to verify consistency\n\tconst members1 = await tenant.getMembers();\n\tconst members2 = await tenant.getMembers();\n\tconst orgInfo1 = await tenant.getOrganization();\n\tconst orgInfo2 = await tenant.getOrganization();\n\n\texpect(members1).toEqual(members2);\n\texpect(orgInfo1).toEqual(orgInfo2);\n\texpect(members1.length).toBe(orgInfo1.memberCount);\n});\n",
+ "tests/tenant.test.ts": "import { setupTest } from \"rivetkit/test\";\nimport { expect, test, vi } from \"vitest\";\nimport { registry } from \"../src/backend/registry\";\n\n// Mock authentication function\nvi.mock(\"../src/backend/registry\", async (importOriginal) => {\n\tconst mod = await importOriginal();\n\treturn {\n\t\t...mod,\n\t\t// We'll need to test without connection state since it requires auth\n\t};\n});\n\ntest(\"Tenant organization can provide basic info\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst tenant = client.tenant.getOrCreate([\"test-org\"]);\n\n\t// Get organization info\n\tconst orgInfo = await tenant.getOrganization();\n\texpect(orgInfo).toMatchObject({\n\t\tid: expect.any(String),\n\t\tname: expect.any(String),\n\t\tmemberCount: expect.any(Number),\n\t});\n\texpect(orgInfo.memberCount).toBeGreaterThan(0);\n});\n\ntest(\"Tenant organization tracks members\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst tenant = client.tenant.getOrCreate([\"test-members\"]);\n\n\t// Get all members\n\tconst members = await tenant.getMembers();\n\texpect(Array.isArray(members)).toBe(true);\n\texpect(members.length).toBeGreaterThan(0);\n\n\t// Verify member structure\n\tmembers.forEach((member) => {\n\t\texpect(member).toMatchObject({\n\t\t\tid: expect.any(String),\n\t\t\tname: expect.any(String),\n\t\t\temail: expect.any(String),\n\t\t\trole: expect.stringMatching(/^(admin|member)$/),\n\t\t});\n\t});\n});\n\ntest(\"Tenant organization provides dashboard stats\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst tenant = client.tenant.getOrCreate([\"test-stats\"]);\n\n\t// Get dashboard stats (without admin privileges)\n\tconst stats = await tenant.getDashboardStats();\n\texpect(stats).toMatchObject({\n\t\ttotalMembers: expect.any(Number),\n\t\tadminCount: expect.any(Number),\n\t\tmemberCount: expect.any(Number),\n\t});\n\n\t// Verify member counts add up\n\texpect(stats.adminCount + stats.memberCount).toBe(stats.totalMembers);\n\texpect(stats.totalMembers).toBeGreaterThan(0);\n\texpect(stats.adminCount).toBeGreaterThan(0);\n});\n\ntest(\"Tenant organization validates member roles\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst tenant = client.tenant.getOrCreate([\"test-roles\"]);\n\n\tconst members = await tenant.getMembers();\n\tconst orgInfo = await tenant.getOrganization();\n\n\t// Verify at least one admin exists\n\tconst admins = members.filter((m) => m.role === \"admin\");\n\tconst regularMembers = members.filter((m) => m.role === \"member\");\n\n\texpect(admins.length).toBeGreaterThan(0);\n\texpect(members.length).toBe(orgInfo.memberCount);\n\texpect(admins.length + regularMembers.length).toBe(members.length);\n});\n\ntest(\"Tenant organization handles initial data correctly\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst tenant = client.tenant.getOrCreate([\"test-initial-data\"]);\n\n\t// Verify initial state has expected structure\n\tconst members = await tenant.getMembers();\n\tconst orgInfo = await tenant.getOrganization();\n\n\texpect(orgInfo.name).toBeTruthy();\n\texpect(orgInfo.id).toBeTruthy();\n\texpect(members.length).toBe(orgInfo.memberCount);\n\n\t// Verify we have the expected sample data\n\texpect(members.some((m) => m.role === \"admin\")).toBe(true);\n\texpect(members.some((m) => m.role === \"member\")).toBe(true);\n\n\t// Verify email formats\n\tmembers.forEach((member) => {\n\t\texpect(member.email).toMatch(/@/);\n\t\texpect(member.name).toBeTruthy();\n\t\texpect(member.id).toBeTruthy();\n\t});\n});\n\ntest(\"Tenant organization member data consistency\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst tenant = client.tenant.getOrCreate([\"test-consistency\"]);\n\n\t// Get data multiple times to verify consistency\n\tconst members1 = await tenant.getMembers();\n\tconst members2 = await tenant.getMembers();\n\tconst orgInfo1 = await tenant.getOrganization();\n\tconst orgInfo2 = await tenant.getOrganization();\n\n\texpect(members1).toEqual(members2);\n\texpect(orgInfo1).toEqual(orgInfo2);\n\texpect(members1.length).toBe(orgInfo1.memberCount);\n});\n",
"README.md": "# Tenant Dashboard for RivetKit\n\nExample project demonstrating multi-tenant organization management with role-based access control using [RivetKit](https://rivetkit.org).\n\n[Learn More →](https://github.com/rivet-gg/rivetkit)\n\n[Discord](https://rivet.gg/discord) — [Documentation](https://rivetkit.org) — [Issues](https://github.com/rivet-gg/rivetkit/issues)\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 18+\n\n### Installation\n\n```sh\ngit clone https://github.com/rivet-gg/rivetkit\ncd rivetkit/examples/tenant\nnpm install\n```\n\n### Development\n\n```sh\nnpm run dev\n```\n\nOpen your browser to `http://localhost:3000`\n\n## Features\n\n- **Role-Based Access Control**: Different permissions for admin and member roles\n- **Multi-Tenant Architecture**: Organization-scoped data and permissions\n- **Authentication**: Token-based authentication with connection state\n- **Real-time Updates**: Live updates when data changes across clients\n- **Permission Enforcement**: Server-side permission checks for all operations\n- **User Management**: Admin can add members and update roles\n- **Invoice Management**: Admin-only access to billing information\n- **Dashboard Analytics**: Role-specific statistics and insights\n\n## How it works\n\nThis tenant system demonstrates:\n\n1. **Authentication**: Token-based authentication with `createConnState`\n2. **Authorization**: Role-based access control with server-side permission checks\n3. **Multi-Tenancy**: Organization-scoped data isolation\n4. **Real-time Collaboration**: Live updates across connected clients\n5. **Permission Enforcement**: Different UI and API access based on user roles\n\n## Architecture\n\n- **Backend**: RivetKit actor with authentication and role-based permissions\n- **Frontend**: React application with conditional rendering based on user roles\n- **Authentication**: Token-based with connection state for user context\n- **Authorization**: Server-side permission checks for all sensitive operations\n\n## User Roles\n\n### Admin Users\n- **Full Access**: Can view all data and perform all operations\n- **Member Management**: Add new members and update member roles\n- **Invoice Access**: View and manage organization invoices\n- **Dashboard Stats**: Access to comprehensive analytics including revenue\n\n### Member Users\n- **Limited Access**: Can only view basic organization information\n- **Member List**: View team members and their roles\n- **Dashboard Stats**: Access to basic member statistics only\n- **No Invoice Access**: Cannot view or manage billing information\n\n## Security Features\n\n### Authentication\n```typescript\n// Token-based authentication\ncreateConnState: async (c, { params }) => {\n const token = params.token;\n const { userId, role } = await authenticate(token);\n return { userId, role };\n}\n```\n\n### Authorization\n```typescript\n// Server-side permission checks\ngetInvoices: (c) => {\n if (c.conn.role !== \"admin\") {\n throw new UserError(\"Permission denied: Admin role required\");\n }\n return c.state.invoices;\n}\n```\n\n### Data Isolation\n- Organization-scoped data using actor keys\n- User context stored in connection state\n- Role-based data filtering and access control\n\n## API Endpoints\n\n### Public (All Authenticated Users)\n- `getOrganization()` - Get organization information\n- `getMembers()` - Get list of all members\n- `getCurrentUser()` - Get current user information\n- `getDashboardStats()` - Get basic statistics\n\n### Admin Only\n- `getInvoices()` - Get all invoices\n- `addMember(member)` - Add new member\n- `updateMemberRole(memberId, role)` - Update member role\n- `markInvoicePaid(invoiceId)` - Mark invoice as paid\n\n## Real-time Updates\n\nThe system broadcasts updates to all connected clients:\n\n```typescript\n// When member is added\nc.broadcast(\"memberAdded\", { member: newMember });\n\n// When member role is updated\nc.broadcast(\"memberUpdated\", { member });\n\n// When invoice is updated\nc.broadcast(\"invoiceUpdated\", { invoice });\n```\n\n## Use Cases\n\nThis tenant pattern is perfect for:\n\n- **SaaS Applications**: Multi-tenant software with organization accounts\n- **Team Management**: Internal tools with role-based access\n- **Project Management**: Collaborative tools with permission levels\n- **CRM Systems**: Customer relationship management with user roles\n- **Enterprise Software**: Business applications with admin/user hierarchies\n- **Learning Management**: Educational platforms with teacher/student roles\n\n## Extending\n\nThis tenant system can be enhanced with:\n\n### Advanced Authentication\n- **OAuth Integration**: Google, GitHub, Microsoft authentication\n- **JWT Tokens**: Stateless authentication with signed tokens\n- **Multi-Factor Auth**: SMS, email, or authenticator app verification\n- **Session Management**: Secure session handling and expiration\n\n### Enhanced Authorization\n- **Custom Roles**: Define custom roles beyond admin/member\n- **Permissions**: Granular permissions for specific operations\n- **Role Hierarchy**: Nested roles with inheritance\n- **Resource-Level Access**: Per-resource permissions\n\n### Multi-Tenancy Features\n- **Organization Settings**: Configurable organization preferences\n- **Billing Integration**: Stripe, PayPal, or other payment processors\n- **Usage Tracking**: Monitor and limit resource usage per tenant\n- **Data Export**: Allow tenants to export their data\n\n### Advanced Features\n- **Audit Logging**: Track all user actions and changes\n- **Activity Feeds**: Real-time activity notifications\n- **Team Invitations**: Invite users via email with signup flow\n- **API Keys**: Generate API keys for external integrations\n- **Webhooks**: Notify external systems of events\n\n## Testing Different Roles\n\nTo test the role-based access control:\n\n1. **Login as Alice (Admin)**:\n - Can view members and invoices\n - Can add new members\n - Can update member roles\n - Can mark invoices as paid\n - Sees full dashboard statistics\n\n2. **Login as Bob/Charlie (Member)**:\n - Can view members only\n - Cannot access invoices\n - Cannot manage members\n - Sees limited dashboard statistics\n - Gets permission denied errors for admin operations\n\n## Security Considerations\n\n### Server-Side Validation\n- All permission checks happen on the server\n- Client-side UI is for user experience only\n- Never trust client-side role information\n\n### Token Management\n- Use secure token storage (httpOnly cookies in production)\n- Implement token refresh mechanisms\n- Add token expiration and revocation\n\n### Data Protection\n- Sanitize all user inputs\n- Use parameterized queries for database operations\n- Implement rate limiting for API endpoints\n- Log security events and failed authentication attempts\n\n## Performance Considerations\n\n### Caching\n- Cache user roles and permissions\n- Use Redis for session storage in production\n- Implement query result caching\n\n### Scalability\n- Separate read and write operations\n- Use database read replicas for heavy read workloads\n- Implement proper indexing for user and organization queries\n\n## License\n\nApache 2.0",
- "package-lock.json": "{\n \"name\": \"example-tenant\",\n \"version\": \"1.0.0\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n \"name\": \"example-tenant\",\n \"version\": \"1.0.0\",\n \"dependencies\": {\n \"@rivetkit/actor\": \"^0.9.1\",\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^20.0.0\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.0.0\",\n \"concurrently\": \"^8.2.0\",\n \"tsx\": \"^4.0.0\",\n \"typescript\": \"^5.0.0\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^1.0.0\"\n }\n },\n \"node_modules/@ampproject/remapping\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz\",\n \"integrity\": \"sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@jridgewell/gen-mapping\": \"^0.3.5\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/code-frame\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz\",\n \"integrity\": \"sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"js-tokens\": \"^4.0.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/compat-data\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz\",\n \"integrity\": \"sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/core\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz\",\n \"integrity\": \"sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@ampproject/remapping\": \"^2.2.0\",\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-compilation-targets\": \"^7.27.2\",\n \"@babel/helper-module-transforms\": \"^7.27.3\",\n \"@babel/helpers\": \"^7.27.6\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/traverse\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"convert-source-map\": \"^2.0.0\",\n \"debug\": \"^4.1.0\",\n \"gensync\": \"^1.0.0-beta.2\",\n \"json5\": \"^2.2.3\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/babel\"\n }\n },\n \"node_modules/@babel/generator\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz\",\n \"integrity\": \"sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"@jridgewell/gen-mapping\": \"^0.3.12\",\n \"@jridgewell/trace-mapping\": \"^0.3.28\",\n \"jsesc\": \"^3.0.2\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-compilation-targets\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz\",\n \"integrity\": \"sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/compat-data\": \"^7.27.2\",\n \"@babel/helper-validator-option\": \"^7.27.1\",\n \"browserslist\": \"^4.24.0\",\n \"lru-cache\": \"^5.1.1\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-globals\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz\",\n \"integrity\": \"sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-imports\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz\",\n \"integrity\": \"sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/traverse\": \"^7.27.1\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-transforms\": {\n \"version\": \"7.27.3\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz\",\n \"integrity\": \"sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-module-imports\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"@babel/traverse\": \"^7.27.3\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0\"\n }\n },\n \"node_modules/@babel/helper-plugin-utils\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz\",\n \"integrity\": \"sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-string-parser\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz\",\n \"integrity\": \"sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-identifier\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz\",\n \"integrity\": \"sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-option\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz\",\n \"integrity\": \"sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helpers\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz\",\n \"integrity\": \"sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.6\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/parser\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz\",\n \"integrity\": \"sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.28.0\"\n },\n \"bin\": {\n \"parser\": \"bin/babel-parser.js\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-self\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz\",\n \"integrity\": \"sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-source\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz\",\n \"integrity\": \"sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/runtime\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz\",\n \"integrity\": \"sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/template\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz\",\n \"integrity\": \"sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/parser\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/traverse\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz\",\n \"integrity\": \"sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-globals\": \"^7.28.0\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.28.0\",\n \"debug\": \"^4.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/types\": {\n \"version\": \"7.28.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz\",\n \"integrity\": \"sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-string-parser\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz\",\n \"integrity\": \"sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==\",\n \"cpu\": [\n \"arm\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-win32-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"peer\": true\n },\n \"node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.6.tgz\",\n \"integrity\": \"sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-arm\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.6.tgz\",\n \"integrity\": \"sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.6.tgz\",\n \"integrity\": \"sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.6.tgz\",\n \"integrity\": \"sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.6.tgz\",\n \"integrity\": \"sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.6.tgz\",\n \"integrity\": \"sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.6.tgz\",\n \"integrity\": \"sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.6.tgz\",\n \"integrity\": \"sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.6.tgz\",\n \"integrity\": \"sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/netbsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openbsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openharmony-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openharmony\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.6.tgz\",\n \"integrity\": \"sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@jest/schemas\": {\n \"version\": \"29.6.3\",\n \"resolved\": \"https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz\",\n \"integrity\": \"sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@sinclair/typebox\": \"^0.27.8\"\n },\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/@jridgewell/gen-mapping\": {\n \"version\": \"0.3.12\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz\",\n \"integrity\": \"sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n }\n },\n \"node_modules/@jridgewell/resolve-uri\": {\n \"version\": \"3.1.2\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz\",\n \"integrity\": \"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@jridgewell/sourcemap-codec\": {\n \"version\": \"1.5.4\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz\",\n \"integrity\": \"sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@jridgewell/trace-mapping\": {\n \"version\": \"0.3.29\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz\",\n \"integrity\": \"sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/resolve-uri\": \"^3.1.0\",\n \"@jridgewell/sourcemap-codec\": \"^1.4.14\"\n }\n },\n \"node_modules/@rivetkit/actor\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/actor/-/actor-0.9.1.tgz\",\n \"integrity\": \"sha512-aVoWO81JrYql6hhXX+vRor0B+aeWrnh+9zkcrxbh0EXFBbS5XM8YE4sSFxNKmZThLbGNqfZ5enm1zuA92c7I1w==\",\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/core\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/core/-/core-0.9.1.tgz\",\n \"integrity\": \"sha512-0zYFKo08CQ72Rm6MaVKxcJSEEfn/ypGkkxTX06Q4meCGHuDJFbPA5wopa3NdxrKBPttcGg1QAmDd+1FZnlpubA==\",\n \"license\": \"Apache-2.0\",\n \"peer\": true,\n \"dependencies\": {\n \"cbor-x\": \"^1.6.0\",\n \"invariant\": \"^2.2.4\",\n \"on-change\": \"^5.0.1\",\n \"p-retry\": \"^6.2.1\",\n \"zod\": \"^3.25.67\"\n },\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"peerDependencies\": {\n \"@hono/node-server\": \"^1.14.0\",\n \"@hono/node-ws\": \"^1.1.1\",\n \"@hono/zod-openapi\": \"^0.19.6\",\n \"eventsource\": \"^3.0.5\",\n \"hono\": \"^4.7.0\",\n \"ws\": \"^8.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"@hono/node-server\": {\n \"optional\": true\n },\n \"@hono/node-ws\": {\n \"optional\": true\n },\n \"@hono/zod-openapi\": {\n \"optional\": true\n },\n \"eventsource\": {\n \"optional\": true\n },\n \"hono\": {\n \"optional\": true\n },\n \"ws\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@rivetkit/framework-base\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/framework-base/-/framework-base-0.9.1.tgz\",\n \"integrity\": \"sha512-FxhSqGAtDsD4k7gKS2EhJ5hHsEwI1+QR0vYThUBOLcmXM7zjMZndqIjVperQO4ck/zfjRqjm3lw7znkc+k0wNQ==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@tanstack/store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/react\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/react/-/react-0.9.1.tgz\",\n \"integrity\": \"sha512-0e0gNNj3qCrXHNIxE6ggEEX+E6HjdsSt9pJbWbaQQg+1bsywupRTSdgSDguDHjBvi9qhR9mh7UbNN3A9wYqXuA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@rivetkit/framework-base\": \"0.9.1\",\n \"@tanstack/react-store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\",\n \"react\": \"^18 || ^19\",\n \"react-dom\": \"^18 || ^19\"\n }\n },\n \"node_modules/@rolldown/pluginutils\": {\n \"version\": \"1.0.0-beta.19\",\n \"resolved\": \"https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz\",\n \"integrity\": \"sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@rollup/rollup-android-arm-eabi\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.0.tgz\",\n \"integrity\": \"sha512-2o/FgACbji4tW1dzXOqAV15Eu7DdgbKsF2QKcxfG4xbh5iwU7yr5RRP5/U+0asQliSYv5M4o7BevlGIoSL0LXg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-android-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-PSZ0SvMOjEAxwZeTx32eI/j5xSYtDCRxGu5k9zvzoY77xUNssZM+WV6HYBLROpY5CkXsbQjvz40fBb7WPwDqtQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-BA4yPIPssPB2aRAWzmqzQ3y2/KotkLyZukVB7j3psK/U3nVJdceo6qr9pLM2xN6iRP/wKfxEbOb1yrlZH6sYZg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-Pr2o0lvTwsiG4HCr43Zy9xXrHspyMvsvEw4FwKYqhli4FuLE5FjcZzuQ4cfPe0iUFCvSQG6lACI0xj74FDZKRA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-lYE8LkE5h4a/+6VnnLiL14zWMPnx6wNbDG23GcYFpRW1V9hYWHAw9lBZ6ZUIrOaoK7NliF1sdwYGiVmziUF4vA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-PVQWZK9sbzpvqC9Q0GlehNNSVHR+4m7+wET+7FgSnKG3ci5nAMgGmr9mGBXzAuE5SvguCKJ6mHL6vq1JaJ/gvw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-gnueabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-hLrmRl53prCcD+YXTfNvXd776HTxNh8wPAMllusQ+amcQmtgo3V5i/nkhPN6FakW+QVLoUUr2AsbtIRPFU3xIA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-musleabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-XBKGSYcrkdiRRjl+8XvrUR3AosXU0NvF7VuqMsm7s5nRy+nt58ZMB19Jdp1RdqewLcaYnpk8zeVs/4MlLZEJxw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-fRvZZPUiBz7NztBE/2QnCS5AtqLVhXmUOPj9IHlfGEXkapgImf4W9+FSkL8cWqoAjozyUzqFmSc4zh2ooaeF6g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-Btv2WRZOcUGi8XU80XwIvzTg4U6+l6D0V6sZTrZx214nrwxw5nAi8hysaXj/mctyClWgesyuxbeLylCBNauimg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loongarch64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-Li0emNnwtUZdLwHjQPBxn4VWztcrw/h7mgLyHiEI5Z0MhpeFGlzaiBHpSNVOMB/xucjXTTcO+dhv469Djr16KA==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-powerpc64le-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-sB8+pfkYx2kvpDCfd63d5ScYT0Fz1LO6jIb2zLZvmK9ob2D8DeVqrmBDE0iDK8KlBVmsTNzrjr3G1xV4eUZhSw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-5GQ6PFhh7E6jQm70p1aW05G2cap5zMOvO0se5JMecHeAdj5ZhWEHbJ4hiKpfi1nnnEdTauDXxPgXae/mqjow9w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-N/euLsBd1rekWcuduakTo/dJw6U6sBP3eUq+RXM9RNfPuWTvG2w/WObDkIvJ2KChy6oxZmOSC08Ak2OJA0UiAA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-s390x-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-2l9sA7d7QdikL0xQwNMO3xURBUNEWyHVHfAsHsUdq+E/pgLTUcCE+gih5PCdmyHmfTDeXUWVhqL0WZzg0nua3g==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-XZdD3fEEQcwG2KrJDdEQu7NrHonPxxaV0/w2HpvINBdcqebz1aL+0vM2WFJq4DeiAVT6F5SUQas65HY5JDqoPw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-7ayfgvtmmWgKWBkCGg5+xTQ0r5V1owVm67zTrsEY1008L5ro7mCyGYORomARt/OquB9KY7LpxVBZes+oSniAAQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-arm64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-B+IJgcBnE2bm93jEW5kHisqvPITs4ddLOROAcOc/diBgrEiQJJ6Qcjby75rFSmH5eMGrqJryUgJDhrfj942apQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-ia32-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-+CXwwG66g0/FpWOnP/v1HnrGVSOygK/osUbu3wPRy8ECXjoYKjRAyfxYpDQOfghC5qPJYLPH0oN4MCOjwgdMug==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@sinclair/typebox\": {\n \"version\": \"0.27.8\",\n \"resolved\": \"https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz\",\n \"integrity\": \"sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@tanstack/react-store\": {\n \"version\": \"0.7.3\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.7.3.tgz\",\n \"integrity\": \"sha512-3Dnqtbw9P2P0gw8uUM8WP2fFfg8XMDSZCTsywRPZe/XqqYW8PGkXKZTvP0AHkE4mpqP9Y43GpOg9vwO44azu6Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@tanstack/store\": \"0.7.2\",\n \"use-sync-external-store\": \"^1.5.0\"\n },\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\",\n \"react-dom\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/@tanstack/store\": {\n \"version\": \"0.7.2\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/store/-/store-0.7.2.tgz\",\n \"integrity\": \"sha512-RP80Z30BYiPX2Pyo0Nyw4s1SJFH2jyM6f9i3HfX4pA+gm5jsnYryscdq2aIQLnL4TaGuQMO+zXmN9nh1Qck+Pg==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n }\n },\n \"node_modules/@types/babel__core\": {\n \"version\": \"7.20.5\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz\",\n \"integrity\": \"sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.20.7\",\n \"@babel/types\": \"^7.20.7\",\n \"@types/babel__generator\": \"*\",\n \"@types/babel__template\": \"*\",\n \"@types/babel__traverse\": \"*\"\n }\n },\n \"node_modules/@types/babel__generator\": {\n \"version\": \"7.27.0\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz\",\n \"integrity\": \"sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__template\": {\n \"version\": \"7.4.4\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz\",\n \"integrity\": \"sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.1.0\",\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__traverse\": {\n \"version\": \"7.20.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz\",\n \"integrity\": \"sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.20.7\"\n }\n },\n \"node_modules/@types/estree\": {\n \"version\": \"1.0.8\",\n \"resolved\": \"https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz\",\n \"integrity\": \"sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/node\": {\n \"version\": \"20.19.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-20.19.7.tgz\",\n \"integrity\": \"sha512-1GM9z6BJOv86qkPvzh2i6VW5+VVrXxCLknfmTkWEqz+6DqosiY28XUWCTmBcJ0ACzKqx/iwdIREfo1fwExIlkA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"undici-types\": \"~6.21.0\"\n }\n },\n \"node_modules/@types/prop-types\": {\n \"version\": \"15.7.15\",\n \"resolved\": \"https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz\",\n \"integrity\": \"sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/react\": {\n \"version\": \"18.3.23\",\n \"resolved\": \"https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz\",\n \"integrity\": \"sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/prop-types\": \"*\",\n \"csstype\": \"^3.0.2\"\n }\n },\n \"node_modules/@types/react-dom\": {\n \"version\": \"18.3.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz\",\n \"integrity\": \"sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"@types/react\": \"^18.0.0\"\n }\n },\n \"node_modules/@types/retry\": {\n \"version\": \"0.12.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz\",\n \"integrity\": \"sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==\",\n \"license\": \"MIT\",\n \"peer\": true\n },\n \"node_modules/@vitejs/plugin-react\": {\n \"version\": \"4.6.0\",\n \"resolved\": \"https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz\",\n \"integrity\": \"sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/core\": \"^7.27.4\",\n \"@babel/plugin-transform-react-jsx-self\": \"^7.27.1\",\n \"@babel/plugin-transform-react-jsx-source\": \"^7.27.1\",\n \"@rolldown/pluginutils\": \"1.0.0-beta.19\",\n \"@types/babel__core\": \"^7.20.5\",\n \"react-refresh\": \"^0.17.0\"\n },\n \"engines\": {\n \"node\": \"^14.18.0 || >=16.0.0\"\n },\n \"peerDependencies\": {\n \"vite\": \"^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0\"\n }\n },\n \"node_modules/@vitest/expect\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/expect/-/expect-1.6.1.tgz\",\n \"integrity\": \"sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/spy\": \"1.6.1\",\n \"@vitest/utils\": \"1.6.1\",\n \"chai\": \"^4.3.10\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/runner\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/runner/-/runner-1.6.1.tgz\",\n \"integrity\": \"sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/utils\": \"1.6.1\",\n \"p-limit\": \"^5.0.0\",\n \"pathe\": \"^1.1.1\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/snapshot\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.1.tgz\",\n \"integrity\": \"sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"magic-string\": \"^0.30.5\",\n \"pathe\": \"^1.1.1\",\n \"pretty-format\": \"^29.7.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/spy\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/spy/-/spy-1.6.1.tgz\",\n \"integrity\": \"sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyspy\": \"^2.2.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/utils\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/utils/-/utils-1.6.1.tgz\",\n \"integrity\": \"sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"diff-sequences\": \"^29.6.3\",\n \"estree-walker\": \"^3.0.3\",\n \"loupe\": \"^2.3.7\",\n \"pretty-format\": \"^29.7.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/acorn\": {\n \"version\": \"8.15.0\",\n \"resolved\": \"https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz\",\n \"integrity\": \"sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"acorn\": \"bin/acorn\"\n },\n \"engines\": {\n \"node\": \">=0.4.0\"\n }\n },\n \"node_modules/acorn-walk\": {\n \"version\": \"8.3.4\",\n \"resolved\": \"https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz\",\n \"integrity\": \"sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"acorn\": \"^8.11.0\"\n },\n \"engines\": {\n \"node\": \">=0.4.0\"\n }\n },\n \"node_modules/ansi-regex\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",\n \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/ansi-styles\": {\n \"version\": \"4.3.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",\n \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-convert\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/assertion-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz\",\n \"integrity\": \"sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/browserslist\": {\n \"version\": \"4.25.1\",\n \"resolved\": \"https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz\",\n \"integrity\": \"sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"caniuse-lite\": \"^1.0.30001726\",\n \"electron-to-chromium\": \"^1.5.173\",\n \"node-releases\": \"^2.0.19\",\n \"update-browserslist-db\": \"^1.1.3\"\n },\n \"bin\": {\n \"browserslist\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7\"\n }\n },\n \"node_modules/cac\": {\n \"version\": \"6.7.14\",\n \"resolved\": \"https://registry.npmjs.org/cac/-/cac-6.7.14.tgz\",\n \"integrity\": \"sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/caniuse-lite\": {\n \"version\": \"1.0.30001727\",\n \"resolved\": \"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz\",\n \"integrity\": \"sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/caniuse-lite\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"CC-BY-4.0\"\n },\n \"node_modules/cbor-extract\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz\",\n \"integrity\": \"sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==\",\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"node-gyp-build-optional-packages\": \"5.1.1\"\n },\n \"bin\": {\n \"download-cbor-prebuilds\": \"bin/download-prebuilds.js\"\n },\n \"optionalDependencies\": {\n \"@cbor-extract/cbor-extract-darwin-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-darwin-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-win32-x64\": \"2.2.0\"\n }\n },\n \"node_modules/cbor-x\": {\n \"version\": \"1.6.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz\",\n \"integrity\": \"sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"optionalDependencies\": {\n \"cbor-extract\": \"^2.2.0\"\n }\n },\n \"node_modules/chai\": {\n \"version\": \"4.5.0\",\n \"resolved\": \"https://registry.npmjs.org/chai/-/chai-4.5.0.tgz\",\n \"integrity\": \"sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"assertion-error\": \"^1.1.0\",\n \"check-error\": \"^1.0.3\",\n \"deep-eql\": \"^4.1.3\",\n \"get-func-name\": \"^2.0.2\",\n \"loupe\": \"^2.3.6\",\n \"pathval\": \"^1.1.1\",\n \"type-detect\": \"^4.1.0\"\n },\n \"engines\": {\n \"node\": \">=4\"\n }\n },\n \"node_modules/chalk\": {\n \"version\": \"4.1.2\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",\n \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.1.0\",\n \"supports-color\": \"^7.1.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/chalk/node_modules/supports-color\": {\n \"version\": \"7.2.0\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",\n \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/check-error\": {\n \"version\": \"1.0.3\",\n \"resolved\": \"https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz\",\n \"integrity\": \"sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"get-func-name\": \"^2.0.2\"\n },\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/cliui\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz\",\n \"integrity\": \"sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"string-width\": \"^4.2.0\",\n \"strip-ansi\": \"^6.0.1\",\n \"wrap-ansi\": \"^7.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/color-convert\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",\n \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-name\": \"~1.1.4\"\n },\n \"engines\": {\n \"node\": \">=7.0.0\"\n }\n },\n \"node_modules/color-name\": {\n \"version\": \"1.1.4\",\n \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",\n \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/concurrently\": {\n \"version\": \"8.2.2\",\n \"resolved\": \"https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz\",\n \"integrity\": \"sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"chalk\": \"^4.1.2\",\n \"date-fns\": \"^2.30.0\",\n \"lodash\": \"^4.17.21\",\n \"rxjs\": \"^7.8.1\",\n \"shell-quote\": \"^1.8.1\",\n \"spawn-command\": \"0.0.2\",\n \"supports-color\": \"^8.1.1\",\n \"tree-kill\": \"^1.2.2\",\n \"yargs\": \"^17.7.2\"\n },\n \"bin\": {\n \"conc\": \"dist/bin/concurrently.js\",\n \"concurrently\": \"dist/bin/concurrently.js\"\n },\n \"engines\": {\n \"node\": \"^14.13.0 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/open-cli-tools/concurrently?sponsor=1\"\n }\n },\n \"node_modules/confbox\": {\n \"version\": \"0.1.8\",\n \"resolved\": \"https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz\",\n \"integrity\": \"sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/convert-source-map\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz\",\n \"integrity\": \"sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/cross-spawn\": {\n \"version\": \"7.0.6\",\n \"resolved\": \"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz\",\n \"integrity\": \"sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^3.1.0\",\n \"shebang-command\": \"^2.0.0\",\n \"which\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">= 8\"\n }\n },\n \"node_modules/csstype\": {\n \"version\": \"3.1.3\",\n \"resolved\": \"https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz\",\n \"integrity\": \"sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/date-fns\": {\n \"version\": \"2.30.0\",\n \"resolved\": \"https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz\",\n \"integrity\": \"sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/runtime\": \"^7.21.0\"\n },\n \"engines\": {\n \"node\": \">=0.11\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/date-fns\"\n }\n },\n \"node_modules/debug\": {\n \"version\": \"4.4.1\",\n \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.4.1.tgz\",\n \"integrity\": \"sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ms\": \"^2.1.3\"\n },\n \"engines\": {\n \"node\": \">=6.0\"\n },\n \"peerDependenciesMeta\": {\n \"supports-color\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/deep-eql\": {\n \"version\": \"4.1.4\",\n \"resolved\": \"https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz\",\n \"integrity\": \"sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"type-detect\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/detect-libc\": {\n \"version\": \"2.0.4\",\n \"resolved\": \"https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz\",\n \"integrity\": \"sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==\",\n \"license\": \"Apache-2.0\",\n \"optional\": true,\n \"peer\": true,\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/diff-sequences\": {\n \"version\": \"29.6.3\",\n \"resolved\": \"https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz\",\n \"integrity\": \"sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/electron-to-chromium\": {\n \"version\": \"1.5.183\",\n \"resolved\": \"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.183.tgz\",\n \"integrity\": \"sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/emoji-regex\": {\n \"version\": \"8.0.0\",\n \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",\n \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/esbuild\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.25.6.tgz\",\n \"integrity\": \"sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.25.6\",\n \"@esbuild/android-arm\": \"0.25.6\",\n \"@esbuild/android-arm64\": \"0.25.6\",\n \"@esbuild/android-x64\": \"0.25.6\",\n \"@esbuild/darwin-arm64\": \"0.25.6\",\n \"@esbuild/darwin-x64\": \"0.25.6\",\n \"@esbuild/freebsd-arm64\": \"0.25.6\",\n \"@esbuild/freebsd-x64\": \"0.25.6\",\n \"@esbuild/linux-arm\": \"0.25.6\",\n \"@esbuild/linux-arm64\": \"0.25.6\",\n \"@esbuild/linux-ia32\": \"0.25.6\",\n \"@esbuild/linux-loong64\": \"0.25.6\",\n \"@esbuild/linux-mips64el\": \"0.25.6\",\n \"@esbuild/linux-ppc64\": \"0.25.6\",\n \"@esbuild/linux-riscv64\": \"0.25.6\",\n \"@esbuild/linux-s390x\": \"0.25.6\",\n \"@esbuild/linux-x64\": \"0.25.6\",\n \"@esbuild/netbsd-arm64\": \"0.25.6\",\n \"@esbuild/netbsd-x64\": \"0.25.6\",\n \"@esbuild/openbsd-arm64\": \"0.25.6\",\n \"@esbuild/openbsd-x64\": \"0.25.6\",\n \"@esbuild/openharmony-arm64\": \"0.25.6\",\n \"@esbuild/sunos-x64\": \"0.25.6\",\n \"@esbuild/win32-arm64\": \"0.25.6\",\n \"@esbuild/win32-ia32\": \"0.25.6\",\n \"@esbuild/win32-x64\": \"0.25.6\"\n }\n },\n \"node_modules/escalade\": {\n \"version\": \"3.2.0\",\n \"resolved\": \"https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz\",\n \"integrity\": \"sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/estree-walker\": {\n \"version\": \"3.0.3\",\n \"resolved\": \"https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz\",\n \"integrity\": \"sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"^1.0.0\"\n }\n },\n \"node_modules/execa\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/execa/-/execa-8.0.1.tgz\",\n \"integrity\": \"sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cross-spawn\": \"^7.0.3\",\n \"get-stream\": \"^8.0.1\",\n \"human-signals\": \"^5.0.0\",\n \"is-stream\": \"^3.0.0\",\n \"merge-stream\": \"^2.0.0\",\n \"npm-run-path\": \"^5.1.0\",\n \"onetime\": \"^6.0.0\",\n \"signal-exit\": \"^4.1.0\",\n \"strip-final-newline\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/execa?sponsor=1\"\n }\n },\n \"node_modules/fsevents\": {\n \"version\": \"2.3.3\",\n \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz\",\n \"integrity\": \"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \"^8.16.0 || ^10.6.0 || >=11.0.0\"\n }\n },\n \"node_modules/gensync\": {\n \"version\": \"1.0.0-beta.2\",\n \"resolved\": \"https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz\",\n \"integrity\": \"sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/get-caller-file\": {\n \"version\": \"2.0.5\",\n \"resolved\": \"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz\",\n \"integrity\": \"sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \"6.* || 8.* || >= 10.*\"\n }\n },\n \"node_modules/get-func-name\": {\n \"version\": \"2.0.2\",\n \"resolved\": \"https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz\",\n \"integrity\": \"sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/get-stream\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz\",\n \"integrity\": \"sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/get-tsconfig\": {\n \"version\": \"4.10.1\",\n \"resolved\": \"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz\",\n \"integrity\": \"sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"resolve-pkg-maps\": \"^1.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/get-tsconfig?sponsor=1\"\n }\n },\n \"node_modules/has-flag\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",\n \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/human-signals\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz\",\n \"integrity\": \"sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=16.17.0\"\n }\n },\n \"node_modules/invariant\": {\n \"version\": \"2.2.4\",\n \"resolved\": \"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz\",\n \"integrity\": \"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"loose-envify\": \"^1.0.0\"\n }\n },\n \"node_modules/is-fullwidth-code-point\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",\n \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/is-network-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz\",\n \"integrity\": \"sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is-stream\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz\",\n \"integrity\": \"sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/isexe\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz\",\n \"integrity\": \"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/js-tokens\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz\",\n \"integrity\": \"sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==\",\n \"license\": \"MIT\"\n },\n \"node_modules/jsesc\": {\n \"version\": \"3.1.0\",\n \"resolved\": \"https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz\",\n \"integrity\": \"sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"jsesc\": \"bin/jsesc\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/json5\": {\n \"version\": \"2.2.3\",\n \"resolved\": \"https://registry.npmjs.org/json5/-/json5-2.2.3.tgz\",\n \"integrity\": \"sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"json5\": \"lib/cli.js\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/local-pkg\": {\n \"version\": \"0.5.1\",\n \"resolved\": \"https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz\",\n \"integrity\": \"sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"mlly\": \"^1.7.3\",\n \"pkg-types\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \">=14\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/lodash\": {\n \"version\": \"4.17.21\",\n \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",\n \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/loose-envify\": {\n \"version\": \"1.4.0\",\n \"resolved\": \"https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz\",\n \"integrity\": \"sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^3.0.0 || ^4.0.0\"\n },\n \"bin\": {\n \"loose-envify\": \"cli.js\"\n }\n },\n \"node_modules/loupe\": {\n \"version\": \"2.3.7\",\n \"resolved\": \"https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz\",\n \"integrity\": \"sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"get-func-name\": \"^2.0.1\"\n }\n },\n \"node_modules/lru-cache\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz\",\n \"integrity\": \"sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"yallist\": \"^3.0.2\"\n }\n },\n \"node_modules/magic-string\": {\n \"version\": \"0.30.17\",\n \"resolved\": \"https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz\",\n \"integrity\": \"sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\"\n }\n },\n \"node_modules/merge-stream\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz\",\n \"integrity\": \"sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/mimic-fn\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz\",\n \"integrity\": \"sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/mlly\": {\n \"version\": \"1.7.4\",\n \"resolved\": \"https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz\",\n \"integrity\": \"sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"acorn\": \"^8.14.0\",\n \"pathe\": \"^2.0.1\",\n \"pkg-types\": \"^1.3.0\",\n \"ufo\": \"^1.5.4\"\n }\n },\n \"node_modules/mlly/node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/ms\": {\n \"version\": \"2.1.3\",\n \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",\n \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/node-gyp-build-optional-packages\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz\",\n \"integrity\": \"sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==\",\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"detect-libc\": \"^2.0.1\"\n },\n \"bin\": {\n \"node-gyp-build-optional-packages\": \"bin.js\",\n \"node-gyp-build-optional-packages-optional\": \"optional.js\",\n \"node-gyp-build-optional-packages-test\": \"build-test.js\"\n }\n },\n \"node_modules/node-releases\": {\n \"version\": \"2.0.19\",\n \"resolved\": \"https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz\",\n \"integrity\": \"sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/npm-run-path\": {\n \"version\": \"5.3.0\",\n \"resolved\": \"https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz\",\n \"integrity\": \"sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/npm-run-path/node_modules/path-key\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz\",\n \"integrity\": \"sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/on-change\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/on-change/-/on-change-5.0.1.tgz\",\n \"integrity\": \"sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/on-change?sponsor=1\"\n }\n },\n \"node_modules/onetime\": {\n \"version\": \"6.0.0\",\n \"resolved\": \"https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz\",\n \"integrity\": \"sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"mimic-fn\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/p-limit\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz\",\n \"integrity\": \"sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"yocto-queue\": \"^1.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/p-retry\": {\n \"version\": \"6.2.1\",\n \"resolved\": \"https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz\",\n \"integrity\": \"sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"@types/retry\": \"0.12.2\",\n \"is-network-error\": \"^1.0.0\",\n \"retry\": \"^0.13.1\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/path-key\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz\",\n \"integrity\": \"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/pathe\": {\n \"version\": \"1.1.2\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz\",\n \"integrity\": \"sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/pathval\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz\",\n \"integrity\": \"sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/picocolors\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz\",\n \"integrity\": \"sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/pkg-types\": {\n \"version\": \"1.3.1\",\n \"resolved\": \"https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz\",\n \"integrity\": \"sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"confbox\": \"^0.1.8\",\n \"mlly\": \"^1.7.4\",\n \"pathe\": \"^2.0.1\"\n }\n },\n \"node_modules/pkg-types/node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/postcss\": {\n \"version\": \"8.5.6\",\n \"resolved\": \"https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz\",\n \"integrity\": \"sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/postcss/\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/postcss\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"nanoid\": \"^3.3.11\",\n \"picocolors\": \"^1.1.1\",\n \"source-map-js\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || >=14\"\n }\n },\n \"node_modules/pretty-format\": {\n \"version\": \"29.7.0\",\n \"resolved\": \"https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz\",\n \"integrity\": \"sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jest/schemas\": \"^29.6.3\",\n \"ansi-styles\": \"^5.0.0\",\n \"react-is\": \"^18.0.0\"\n },\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/pretty-format/node_modules/ansi-styles\": {\n \"version\": \"5.2.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz\",\n \"integrity\": \"sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/react\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react/-/react-18.3.1.tgz\",\n \"integrity\": \"sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n },\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/react-dom\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz\",\n \"integrity\": \"sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\",\n \"scheduler\": \"^0.23.2\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.3.1\"\n }\n },\n \"node_modules/react-is\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz\",\n \"integrity\": \"sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/react-refresh\": {\n \"version\": \"0.17.0\",\n \"resolved\": \"https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz\",\n \"integrity\": \"sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/require-directory\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz\",\n \"integrity\": \"sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/resolve-pkg-maps\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz\",\n \"integrity\": \"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/resolve-pkg-maps?sponsor=1\"\n }\n },\n \"node_modules/retry\": {\n \"version\": \"0.13.1\",\n \"resolved\": \"https://registry.npmjs.org/retry/-/retry-0.13.1.tgz\",\n \"integrity\": \"sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">= 4\"\n }\n },\n \"node_modules/rollup\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/rollup/-/rollup-4.45.0.tgz\",\n \"integrity\": \"sha512-WLjEcJRIo7i3WDDgOIJqVI2d+lAC3EwvOGy+Xfq6hs+GQuAA4Di/H72xmXkOhrIWFg2PFYSKZYfH0f4vfKXN4A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"1.0.8\"\n },\n \"bin\": {\n \"rollup\": \"dist/bin/rollup\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"optionalDependencies\": {\n \"@rollup/rollup-android-arm-eabi\": \"4.45.0\",\n \"@rollup/rollup-android-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-x64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-arm64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-x64\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-gnueabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-musleabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-loongarch64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-powerpc64le-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-s390x-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-musl\": \"4.45.0\",\n \"@rollup/rollup-win32-arm64-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-ia32-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-x64-msvc\": \"4.45.0\",\n \"fsevents\": \"~2.3.2\"\n }\n },\n \"node_modules/rxjs\": {\n \"version\": \"7.8.2\",\n \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz\",\n \"integrity\": \"sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"tslib\": \"^2.1.0\"\n }\n },\n \"node_modules/scheduler\": {\n \"version\": \"0.23.2\",\n \"resolved\": \"https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz\",\n \"integrity\": \"sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n }\n },\n \"node_modules/semver\": {\n \"version\": \"6.3.1\",\n \"resolved\": \"https://registry.npmjs.org/semver/-/semver-6.3.1.tgz\",\n \"integrity\": \"sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"bin\": {\n \"semver\": \"bin/semver.js\"\n }\n },\n \"node_modules/shebang-command\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz\",\n \"integrity\": \"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"shebang-regex\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/shebang-regex\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz\",\n \"integrity\": \"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/shell-quote\": {\n \"version\": \"1.8.3\",\n \"resolved\": \"https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz\",\n \"integrity\": \"sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 0.4\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/ljharb\"\n }\n },\n \"node_modules/siginfo\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz\",\n \"integrity\": \"sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/signal-exit\": {\n \"version\": \"4.1.0\",\n \"resolved\": \"https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz\",\n \"integrity\": \"sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=14\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/isaacs\"\n }\n },\n \"node_modules/source-map-js\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz\",\n \"integrity\": \"sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/spawn-command\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz\",\n \"integrity\": \"sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==\",\n \"dev\": true\n },\n \"node_modules/stackback\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz\",\n \"integrity\": \"sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/std-env\": {\n \"version\": \"3.9.0\",\n \"resolved\": \"https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz\",\n \"integrity\": \"sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/string-width\": {\n \"version\": \"4.2.3\",\n \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",\n \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"emoji-regex\": \"^8.0.0\",\n \"is-fullwidth-code-point\": \"^3.0.0\",\n \"strip-ansi\": \"^6.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-ansi\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",\n \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-regex\": \"^5.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-final-newline\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz\",\n \"integrity\": \"sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/strip-literal\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.1.tgz\",\n \"integrity\": \"sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^9.0.1\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/strip-literal/node_modules/js-tokens\": {\n \"version\": \"9.0.1\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz\",\n \"integrity\": \"sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/supports-color\": {\n \"version\": \"8.1.1\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",\n \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/supports-color?sponsor=1\"\n }\n },\n \"node_modules/tinybench\": {\n \"version\": \"2.9.0\",\n \"resolved\": \"https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz\",\n \"integrity\": \"sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinypool\": {\n \"version\": \"0.8.4\",\n \"resolved\": \"https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz\",\n \"integrity\": \"sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tinyspy\": {\n \"version\": \"2.2.1\",\n \"resolved\": \"https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz\",\n \"integrity\": \"sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tree-kill\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz\",\n \"integrity\": \"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"tree-kill\": \"cli.js\"\n }\n },\n \"node_modules/tslib\": {\n \"version\": \"2.8.1\",\n \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz\",\n \"integrity\": \"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==\",\n \"dev\": true,\n \"license\": \"0BSD\"\n },\n \"node_modules/tsx\": {\n \"version\": \"4.20.3\",\n \"resolved\": \"https://registry.npmjs.org/tsx/-/tsx-4.20.3.tgz\",\n \"integrity\": \"sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"~0.25.0\",\n \"get-tsconfig\": \"^4.7.5\"\n },\n \"bin\": {\n \"tsx\": \"dist/cli.mjs\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n }\n },\n \"node_modules/type-detect\": {\n \"version\": \"4.1.0\",\n \"resolved\": \"https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz\",\n \"integrity\": \"sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=4\"\n }\n },\n \"node_modules/typescript\": {\n \"version\": \"5.8.3\",\n \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz\",\n \"integrity\": \"sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"bin\": {\n \"tsc\": \"bin/tsc\",\n \"tsserver\": \"bin/tsserver\"\n },\n \"engines\": {\n \"node\": \">=14.17\"\n }\n },\n \"node_modules/ufo\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz\",\n \"integrity\": \"sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/undici-types\": {\n \"version\": \"6.21.0\",\n \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/update-browserslist-db\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz\",\n \"integrity\": \"sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"escalade\": \"^3.2.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"bin\": {\n \"update-browserslist-db\": \"cli.js\"\n },\n \"peerDependencies\": {\n \"browserslist\": \">= 4.21.0\"\n }\n },\n \"node_modules/use-sync-external-store\": {\n \"version\": \"1.5.0\",\n \"resolved\": \"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz\",\n \"integrity\": \"sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==\",\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/vite\": {\n \"version\": \"5.4.19\",\n \"resolved\": \"https://registry.npmjs.org/vite/-/vite-5.4.19.tgz\",\n \"integrity\": \"sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"^0.21.3\",\n \"postcss\": \"^8.4.43\",\n \"rollup\": \"^4.20.0\"\n },\n \"bin\": {\n \"vite\": \"bin/vite.js\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/vitejs/vite?sponsor=1\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n },\n \"peerDependencies\": {\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"less\": \"*\",\n \"lightningcss\": \"^1.21.0\",\n \"sass\": \"*\",\n \"sass-embedded\": \"*\",\n \"stylus\": \"*\",\n \"sugarss\": \"*\",\n \"terser\": \"^5.4.0\"\n },\n \"peerDependenciesMeta\": {\n \"@types/node\": {\n \"optional\": true\n },\n \"less\": {\n \"optional\": true\n },\n \"lightningcss\": {\n \"optional\": true\n },\n \"sass\": {\n \"optional\": true\n },\n \"sass-embedded\": {\n \"optional\": true\n },\n \"stylus\": {\n \"optional\": true\n },\n \"sugarss\": {\n \"optional\": true\n },\n \"terser\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/vite-node\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/vite-node/-/vite-node-1.6.1.tgz\",\n \"integrity\": \"sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cac\": \"^6.7.14\",\n \"debug\": \"^4.3.4\",\n \"pathe\": \"^1.1.1\",\n \"picocolors\": \"^1.0.0\",\n \"vite\": \"^5.0.0\"\n },\n \"bin\": {\n \"vite-node\": \"vite-node.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz\",\n \"integrity\": \"sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz\",\n \"integrity\": \"sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz\",\n \"integrity\": \"sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz\",\n \"integrity\": \"sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/esbuild\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz\",\n \"integrity\": \"sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.21.5\",\n \"@esbuild/android-arm\": \"0.21.5\",\n \"@esbuild/android-arm64\": \"0.21.5\",\n \"@esbuild/android-x64\": \"0.21.5\",\n \"@esbuild/darwin-arm64\": \"0.21.5\",\n \"@esbuild/darwin-x64\": \"0.21.5\",\n \"@esbuild/freebsd-arm64\": \"0.21.5\",\n \"@esbuild/freebsd-x64\": \"0.21.5\",\n \"@esbuild/linux-arm\": \"0.21.5\",\n \"@esbuild/linux-arm64\": \"0.21.5\",\n \"@esbuild/linux-ia32\": \"0.21.5\",\n \"@esbuild/linux-loong64\": \"0.21.5\",\n \"@esbuild/linux-mips64el\": \"0.21.5\",\n \"@esbuild/linux-ppc64\": \"0.21.5\",\n \"@esbuild/linux-riscv64\": \"0.21.5\",\n \"@esbuild/linux-s390x\": \"0.21.5\",\n \"@esbuild/linux-x64\": \"0.21.5\",\n \"@esbuild/netbsd-x64\": \"0.21.5\",\n \"@esbuild/openbsd-x64\": \"0.21.5\",\n \"@esbuild/sunos-x64\": \"0.21.5\",\n \"@esbuild/win32-arm64\": \"0.21.5\",\n \"@esbuild/win32-ia32\": \"0.21.5\",\n \"@esbuild/win32-x64\": \"0.21.5\"\n }\n },\n \"node_modules/vitest\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/vitest/-/vitest-1.6.1.tgz\",\n \"integrity\": \"sha512-Ljb1cnSJSivGN0LqXd/zmDbWEM0RNNg2t1QW/XUhYl/qPqyu7CsqeWtqQXHVaJsecLPuDoak2oJcZN2QoRIOag==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/expect\": \"1.6.1\",\n \"@vitest/runner\": \"1.6.1\",\n \"@vitest/snapshot\": \"1.6.1\",\n \"@vitest/spy\": \"1.6.1\",\n \"@vitest/utils\": \"1.6.1\",\n \"acorn-walk\": \"^8.3.2\",\n \"chai\": \"^4.3.10\",\n \"debug\": \"^4.3.4\",\n \"execa\": \"^8.0.1\",\n \"local-pkg\": \"^0.5.0\",\n \"magic-string\": \"^0.30.5\",\n \"pathe\": \"^1.1.1\",\n \"picocolors\": \"^1.0.0\",\n \"std-env\": \"^3.5.0\",\n \"strip-literal\": \"^2.0.0\",\n \"tinybench\": \"^2.5.1\",\n \"tinypool\": \"^0.8.3\",\n \"vite\": \"^5.0.0\",\n \"vite-node\": \"1.6.1\",\n \"why-is-node-running\": \"^2.2.2\"\n },\n \"bin\": {\n \"vitest\": \"vitest.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"@edge-runtime/vm\": \"*\",\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"@vitest/browser\": \"1.6.1\",\n \"@vitest/ui\": \"1.6.1\",\n \"happy-dom\": \"*\",\n \"jsdom\": \"*\"\n },\n \"peerDependenciesMeta\": {\n \"@edge-runtime/vm\": {\n \"optional\": true\n },\n \"@types/node\": {\n \"optional\": true\n },\n \"@vitest/browser\": {\n \"optional\": true\n },\n \"@vitest/ui\": {\n \"optional\": true\n },\n \"happy-dom\": {\n \"optional\": true\n },\n \"jsdom\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/which\": {\n \"version\": \"2.0.2\",\n \"resolved\": \"https://registry.npmjs.org/which/-/which-2.0.2.tgz\",\n \"integrity\": \"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"isexe\": \"^2.0.0\"\n },\n \"bin\": {\n \"node-which\": \"bin/node-which\"\n },\n \"engines\": {\n \"node\": \">= 8\"\n }\n },\n \"node_modules/why-is-node-running\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz\",\n \"integrity\": \"sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"siginfo\": \"^2.0.0\",\n \"stackback\": \"0.0.2\"\n },\n \"bin\": {\n \"why-is-node-running\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/wrap-ansi\": {\n \"version\": \"7.0.0\",\n \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",\n \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.0.0\",\n \"string-width\": \"^4.1.0\",\n \"strip-ansi\": \"^6.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/wrap-ansi?sponsor=1\"\n }\n },\n \"node_modules/y18n\": {\n \"version\": \"5.0.8\",\n \"resolved\": \"https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz\",\n \"integrity\": \"sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/yallist\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz\",\n \"integrity\": \"sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/yargs\": {\n \"version\": \"17.7.2\",\n \"resolved\": \"https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz\",\n \"integrity\": \"sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cliui\": \"^8.0.1\",\n \"escalade\": \"^3.1.1\",\n \"get-caller-file\": \"^2.0.5\",\n \"require-directory\": \"^2.1.1\",\n \"string-width\": \"^4.2.3\",\n \"y18n\": \"^5.0.5\",\n \"yargs-parser\": \"^21.1.1\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yargs-parser\": {\n \"version\": \"21.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz\",\n \"integrity\": \"sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yocto-queue\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz\",\n \"integrity\": \"sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12.20\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/zod\": {\n \"version\": \"3.25.76\",\n \"resolved\": \"https://registry.npmjs.org/zod/-/zod-3.25.76.tgz\",\n \"integrity\": \"sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"funding\": {\n \"url\": \"https://github.com/sponsors/colinhacks\"\n }\n }\n }\n}\n",
- "package.json": "{\n \"name\": \"example-tenant\",\n \"version\": \"1.0.0\",\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"concurrently \\\"tsx --watch src/backend/server.ts\\\" \\\"vite\\\"\",\n \"build\": \"vite build\",\n \"preview\": \"vite preview\",\n \"check-types\": \"tsc --noEmit\",\n \"test\": \"vitest\"\n },\n \"dependencies\": {\n \"@rivetkit/actor\": \"^0.9.1\",\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^20.0.0\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.0.0\",\n \"concurrently\": \"^8.2.0\",\n \"tsx\": \"^4.0.0\",\n \"typescript\": \"^5.0.0\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^1.0.0\"\n }\n}\n",
+ "package-lock.json": "{\n \"name\": \"example-tenant\",\n \"version\": \"1.0.0\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n \"name\": \"example-tenant\",\n \"version\": \"1.0.0\",\n \"dependencies\": {\n \"rivetkit\": \"^0.9.1\",\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^20.0.0\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.0.0\",\n \"concurrently\": \"^8.2.0\",\n \"tsx\": \"^4.0.0\",\n \"typescript\": \"^5.0.0\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^1.0.0\"\n }\n },\n \"node_modules/@ampproject/remapping\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz\",\n \"integrity\": \"sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@jridgewell/gen-mapping\": \"^0.3.5\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/code-frame\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz\",\n \"integrity\": \"sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"js-tokens\": \"^4.0.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/compat-data\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz\",\n \"integrity\": \"sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/core\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz\",\n \"integrity\": \"sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@ampproject/remapping\": \"^2.2.0\",\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-compilation-targets\": \"^7.27.2\",\n \"@babel/helper-module-transforms\": \"^7.27.3\",\n \"@babel/helpers\": \"^7.27.6\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/traverse\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"convert-source-map\": \"^2.0.0\",\n \"debug\": \"^4.1.0\",\n \"gensync\": \"^1.0.0-beta.2\",\n \"json5\": \"^2.2.3\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/babel\"\n }\n },\n \"node_modules/@babel/generator\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz\",\n \"integrity\": \"sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"@jridgewell/gen-mapping\": \"^0.3.12\",\n \"@jridgewell/trace-mapping\": \"^0.3.28\",\n \"jsesc\": \"^3.0.2\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-compilation-targets\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz\",\n \"integrity\": \"sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/compat-data\": \"^7.27.2\",\n \"@babel/helper-validator-option\": \"^7.27.1\",\n \"browserslist\": \"^4.24.0\",\n \"lru-cache\": \"^5.1.1\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-globals\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz\",\n \"integrity\": \"sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-imports\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz\",\n \"integrity\": \"sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/traverse\": \"^7.27.1\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-transforms\": {\n \"version\": \"7.27.3\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz\",\n \"integrity\": \"sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-module-imports\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"@babel/traverse\": \"^7.27.3\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0\"\n }\n },\n \"node_modules/@babel/helper-plugin-utils\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz\",\n \"integrity\": \"sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-string-parser\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz\",\n \"integrity\": \"sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-identifier\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz\",\n \"integrity\": \"sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-option\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz\",\n \"integrity\": \"sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helpers\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz\",\n \"integrity\": \"sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.6\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/parser\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz\",\n \"integrity\": \"sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.28.0\"\n },\n \"bin\": {\n \"parser\": \"bin/babel-parser.js\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-self\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz\",\n \"integrity\": \"sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-source\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz\",\n \"integrity\": \"sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/runtime\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz\",\n \"integrity\": \"sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/template\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz\",\n \"integrity\": \"sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/parser\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/traverse\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz\",\n \"integrity\": \"sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-globals\": \"^7.28.0\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.28.0\",\n \"debug\": \"^4.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/types\": {\n \"version\": \"7.28.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz\",\n \"integrity\": \"sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-string-parser\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz\",\n \"integrity\": \"sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==\",\n \"cpu\": [\n \"arm\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-win32-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"peer\": true\n },\n \"node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.6.tgz\",\n \"integrity\": \"sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-arm\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.6.tgz\",\n \"integrity\": \"sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.6.tgz\",\n \"integrity\": \"sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.6.tgz\",\n \"integrity\": \"sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.6.tgz\",\n \"integrity\": \"sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.6.tgz\",\n \"integrity\": \"sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.6.tgz\",\n \"integrity\": \"sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.6.tgz\",\n \"integrity\": \"sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.6.tgz\",\n \"integrity\": \"sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/netbsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openbsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openharmony-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openharmony\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.6.tgz\",\n \"integrity\": \"sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@jest/schemas\": {\n \"version\": \"29.6.3\",\n \"resolved\": \"https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz\",\n \"integrity\": \"sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@sinclair/typebox\": \"^0.27.8\"\n },\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/@jridgewell/gen-mapping\": {\n \"version\": \"0.3.12\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz\",\n \"integrity\": \"sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n }\n },\n \"node_modules/@jridgewell/resolve-uri\": {\n \"version\": \"3.1.2\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz\",\n \"integrity\": \"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@jridgewell/sourcemap-codec\": {\n \"version\": \"1.5.4\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz\",\n \"integrity\": \"sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@jridgewell/trace-mapping\": {\n \"version\": \"0.3.29\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz\",\n \"integrity\": \"sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/resolve-uri\": \"^3.1.0\",\n \"@jridgewell/sourcemap-codec\": \"^1.4.14\"\n }\n },\n \"node_modules/rivetkit\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/rivetkit/-/actor-0.9.1.tgz\",\n \"integrity\": \"sha512-aVoWO81JrYql6hhXX+vRor0B+aeWrnh+9zkcrxbh0EXFBbS5XM8YE4sSFxNKmZThLbGNqfZ5enm1zuA92c7I1w==\",\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/core\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/core/-/core-0.9.1.tgz\",\n \"integrity\": \"sha512-0zYFKo08CQ72Rm6MaVKxcJSEEfn/ypGkkxTX06Q4meCGHuDJFbPA5wopa3NdxrKBPttcGg1QAmDd+1FZnlpubA==\",\n \"license\": \"Apache-2.0\",\n \"peer\": true,\n \"dependencies\": {\n \"cbor-x\": \"^1.6.0\",\n \"invariant\": \"^2.2.4\",\n \"on-change\": \"^5.0.1\",\n \"p-retry\": \"^6.2.1\",\n \"zod\": \"^3.25.67\"\n },\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"peerDependencies\": {\n \"@hono/node-server\": \"^1.14.0\",\n \"@hono/node-ws\": \"^1.1.1\",\n \"@hono/zod-openapi\": \"^0.19.6\",\n \"eventsource\": \"^3.0.5\",\n \"hono\": \"^4.7.0\",\n \"ws\": \"^8.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"@hono/node-server\": {\n \"optional\": true\n },\n \"@hono/node-ws\": {\n \"optional\": true\n },\n \"@hono/zod-openapi\": {\n \"optional\": true\n },\n \"eventsource\": {\n \"optional\": true\n },\n \"hono\": {\n \"optional\": true\n },\n \"ws\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@rivetkit/framework-base\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/framework-base/-/framework-base-0.9.1.tgz\",\n \"integrity\": \"sha512-FxhSqGAtDsD4k7gKS2EhJ5hHsEwI1+QR0vYThUBOLcmXM7zjMZndqIjVperQO4ck/zfjRqjm3lw7znkc+k0wNQ==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@tanstack/store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/react\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/react/-/react-0.9.1.tgz\",\n \"integrity\": \"sha512-0e0gNNj3qCrXHNIxE6ggEEX+E6HjdsSt9pJbWbaQQg+1bsywupRTSdgSDguDHjBvi9qhR9mh7UbNN3A9wYqXuA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@rivetkit/framework-base\": \"0.9.1\",\n \"@tanstack/react-store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\",\n \"react\": \"^18 || ^19\",\n \"react-dom\": \"^18 || ^19\"\n }\n },\n \"node_modules/@rolldown/pluginutils\": {\n \"version\": \"1.0.0-beta.19\",\n \"resolved\": \"https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz\",\n \"integrity\": \"sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@rollup/rollup-android-arm-eabi\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.0.tgz\",\n \"integrity\": \"sha512-2o/FgACbji4tW1dzXOqAV15Eu7DdgbKsF2QKcxfG4xbh5iwU7yr5RRP5/U+0asQliSYv5M4o7BevlGIoSL0LXg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-android-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-PSZ0SvMOjEAxwZeTx32eI/j5xSYtDCRxGu5k9zvzoY77xUNssZM+WV6HYBLROpY5CkXsbQjvz40fBb7WPwDqtQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-BA4yPIPssPB2aRAWzmqzQ3y2/KotkLyZukVB7j3psK/U3nVJdceo6qr9pLM2xN6iRP/wKfxEbOb1yrlZH6sYZg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-Pr2o0lvTwsiG4HCr43Zy9xXrHspyMvsvEw4FwKYqhli4FuLE5FjcZzuQ4cfPe0iUFCvSQG6lACI0xj74FDZKRA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-lYE8LkE5h4a/+6VnnLiL14zWMPnx6wNbDG23GcYFpRW1V9hYWHAw9lBZ6ZUIrOaoK7NliF1sdwYGiVmziUF4vA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-PVQWZK9sbzpvqC9Q0GlehNNSVHR+4m7+wET+7FgSnKG3ci5nAMgGmr9mGBXzAuE5SvguCKJ6mHL6vq1JaJ/gvw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-gnueabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-hLrmRl53prCcD+YXTfNvXd776HTxNh8wPAMllusQ+amcQmtgo3V5i/nkhPN6FakW+QVLoUUr2AsbtIRPFU3xIA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-musleabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-XBKGSYcrkdiRRjl+8XvrUR3AosXU0NvF7VuqMsm7s5nRy+nt58ZMB19Jdp1RdqewLcaYnpk8zeVs/4MlLZEJxw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-fRvZZPUiBz7NztBE/2QnCS5AtqLVhXmUOPj9IHlfGEXkapgImf4W9+FSkL8cWqoAjozyUzqFmSc4zh2ooaeF6g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-Btv2WRZOcUGi8XU80XwIvzTg4U6+l6D0V6sZTrZx214nrwxw5nAi8hysaXj/mctyClWgesyuxbeLylCBNauimg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loongarch64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-Li0emNnwtUZdLwHjQPBxn4VWztcrw/h7mgLyHiEI5Z0MhpeFGlzaiBHpSNVOMB/xucjXTTcO+dhv469Djr16KA==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-powerpc64le-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-sB8+pfkYx2kvpDCfd63d5ScYT0Fz1LO6jIb2zLZvmK9ob2D8DeVqrmBDE0iDK8KlBVmsTNzrjr3G1xV4eUZhSw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-5GQ6PFhh7E6jQm70p1aW05G2cap5zMOvO0se5JMecHeAdj5ZhWEHbJ4hiKpfi1nnnEdTauDXxPgXae/mqjow9w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-N/euLsBd1rekWcuduakTo/dJw6U6sBP3eUq+RXM9RNfPuWTvG2w/WObDkIvJ2KChy6oxZmOSC08Ak2OJA0UiAA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-s390x-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-2l9sA7d7QdikL0xQwNMO3xURBUNEWyHVHfAsHsUdq+E/pgLTUcCE+gih5PCdmyHmfTDeXUWVhqL0WZzg0nua3g==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-XZdD3fEEQcwG2KrJDdEQu7NrHonPxxaV0/w2HpvINBdcqebz1aL+0vM2WFJq4DeiAVT6F5SUQas65HY5JDqoPw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-7ayfgvtmmWgKWBkCGg5+xTQ0r5V1owVm67zTrsEY1008L5ro7mCyGYORomARt/OquB9KY7LpxVBZes+oSniAAQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-arm64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-B+IJgcBnE2bm93jEW5kHisqvPITs4ddLOROAcOc/diBgrEiQJJ6Qcjby75rFSmH5eMGrqJryUgJDhrfj942apQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-ia32-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-+CXwwG66g0/FpWOnP/v1HnrGVSOygK/osUbu3wPRy8ECXjoYKjRAyfxYpDQOfghC5qPJYLPH0oN4MCOjwgdMug==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@sinclair/typebox\": {\n \"version\": \"0.27.8\",\n \"resolved\": \"https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz\",\n \"integrity\": \"sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@tanstack/react-store\": {\n \"version\": \"0.7.3\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.7.3.tgz\",\n \"integrity\": \"sha512-3Dnqtbw9P2P0gw8uUM8WP2fFfg8XMDSZCTsywRPZe/XqqYW8PGkXKZTvP0AHkE4mpqP9Y43GpOg9vwO44azu6Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@tanstack/store\": \"0.7.2\",\n \"use-sync-external-store\": \"^1.5.0\"\n },\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\",\n \"react-dom\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/@tanstack/store\": {\n \"version\": \"0.7.2\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/store/-/store-0.7.2.tgz\",\n \"integrity\": \"sha512-RP80Z30BYiPX2Pyo0Nyw4s1SJFH2jyM6f9i3HfX4pA+gm5jsnYryscdq2aIQLnL4TaGuQMO+zXmN9nh1Qck+Pg==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n }\n },\n \"node_modules/@types/babel__core\": {\n \"version\": \"7.20.5\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz\",\n \"integrity\": \"sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.20.7\",\n \"@babel/types\": \"^7.20.7\",\n \"@types/babel__generator\": \"*\",\n \"@types/babel__template\": \"*\",\n \"@types/babel__traverse\": \"*\"\n }\n },\n \"node_modules/@types/babel__generator\": {\n \"version\": \"7.27.0\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz\",\n \"integrity\": \"sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__template\": {\n \"version\": \"7.4.4\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz\",\n \"integrity\": \"sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.1.0\",\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__traverse\": {\n \"version\": \"7.20.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz\",\n \"integrity\": \"sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.20.7\"\n }\n },\n \"node_modules/@types/estree\": {\n \"version\": \"1.0.8\",\n \"resolved\": \"https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz\",\n \"integrity\": \"sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/node\": {\n \"version\": \"20.19.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-20.19.7.tgz\",\n \"integrity\": \"sha512-1GM9z6BJOv86qkPvzh2i6VW5+VVrXxCLknfmTkWEqz+6DqosiY28XUWCTmBcJ0ACzKqx/iwdIREfo1fwExIlkA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"undici-types\": \"~6.21.0\"\n }\n },\n \"node_modules/@types/prop-types\": {\n \"version\": \"15.7.15\",\n \"resolved\": \"https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz\",\n \"integrity\": \"sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/react\": {\n \"version\": \"18.3.23\",\n \"resolved\": \"https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz\",\n \"integrity\": \"sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/prop-types\": \"*\",\n \"csstype\": \"^3.0.2\"\n }\n },\n \"node_modules/@types/react-dom\": {\n \"version\": \"18.3.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz\",\n \"integrity\": \"sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"@types/react\": \"^18.0.0\"\n }\n },\n \"node_modules/@types/retry\": {\n \"version\": \"0.12.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz\",\n \"integrity\": \"sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==\",\n \"license\": \"MIT\",\n \"peer\": true\n },\n \"node_modules/@vitejs/plugin-react\": {\n \"version\": \"4.6.0\",\n \"resolved\": \"https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz\",\n \"integrity\": \"sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/core\": \"^7.27.4\",\n \"@babel/plugin-transform-react-jsx-self\": \"^7.27.1\",\n \"@babel/plugin-transform-react-jsx-source\": \"^7.27.1\",\n \"@rolldown/pluginutils\": \"1.0.0-beta.19\",\n \"@types/babel__core\": \"^7.20.5\",\n \"react-refresh\": \"^0.17.0\"\n },\n \"engines\": {\n \"node\": \"^14.18.0 || >=16.0.0\"\n },\n \"peerDependencies\": {\n \"vite\": \"^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0\"\n }\n },\n \"node_modules/@vitest/expect\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/expect/-/expect-1.6.1.tgz\",\n \"integrity\": \"sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/spy\": \"1.6.1\",\n \"@vitest/utils\": \"1.6.1\",\n \"chai\": \"^4.3.10\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/runner\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/runner/-/runner-1.6.1.tgz\",\n \"integrity\": \"sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/utils\": \"1.6.1\",\n \"p-limit\": \"^5.0.0\",\n \"pathe\": \"^1.1.1\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/snapshot\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.1.tgz\",\n \"integrity\": \"sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"magic-string\": \"^0.30.5\",\n \"pathe\": \"^1.1.1\",\n \"pretty-format\": \"^29.7.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/spy\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/spy/-/spy-1.6.1.tgz\",\n \"integrity\": \"sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyspy\": \"^2.2.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/utils\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/utils/-/utils-1.6.1.tgz\",\n \"integrity\": \"sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"diff-sequences\": \"^29.6.3\",\n \"estree-walker\": \"^3.0.3\",\n \"loupe\": \"^2.3.7\",\n \"pretty-format\": \"^29.7.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/acorn\": {\n \"version\": \"8.15.0\",\n \"resolved\": \"https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz\",\n \"integrity\": \"sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"acorn\": \"bin/acorn\"\n },\n \"engines\": {\n \"node\": \">=0.4.0\"\n }\n },\n \"node_modules/acorn-walk\": {\n \"version\": \"8.3.4\",\n \"resolved\": \"https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz\",\n \"integrity\": \"sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"acorn\": \"^8.11.0\"\n },\n \"engines\": {\n \"node\": \">=0.4.0\"\n }\n },\n \"node_modules/ansi-regex\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",\n \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/ansi-styles\": {\n \"version\": \"4.3.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",\n \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-convert\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/assertion-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz\",\n \"integrity\": \"sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/browserslist\": {\n \"version\": \"4.25.1\",\n \"resolved\": \"https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz\",\n \"integrity\": \"sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"caniuse-lite\": \"^1.0.30001726\",\n \"electron-to-chromium\": \"^1.5.173\",\n \"node-releases\": \"^2.0.19\",\n \"update-browserslist-db\": \"^1.1.3\"\n },\n \"bin\": {\n \"browserslist\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7\"\n }\n },\n \"node_modules/cac\": {\n \"version\": \"6.7.14\",\n \"resolved\": \"https://registry.npmjs.org/cac/-/cac-6.7.14.tgz\",\n \"integrity\": \"sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/caniuse-lite\": {\n \"version\": \"1.0.30001727\",\n \"resolved\": \"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz\",\n \"integrity\": \"sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/caniuse-lite\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"CC-BY-4.0\"\n },\n \"node_modules/cbor-extract\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz\",\n \"integrity\": \"sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==\",\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"node-gyp-build-optional-packages\": \"5.1.1\"\n },\n \"bin\": {\n \"download-cbor-prebuilds\": \"bin/download-prebuilds.js\"\n },\n \"optionalDependencies\": {\n \"@cbor-extract/cbor-extract-darwin-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-darwin-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-win32-x64\": \"2.2.0\"\n }\n },\n \"node_modules/cbor-x\": {\n \"version\": \"1.6.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz\",\n \"integrity\": \"sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"optionalDependencies\": {\n \"cbor-extract\": \"^2.2.0\"\n }\n },\n \"node_modules/chai\": {\n \"version\": \"4.5.0\",\n \"resolved\": \"https://registry.npmjs.org/chai/-/chai-4.5.0.tgz\",\n \"integrity\": \"sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"assertion-error\": \"^1.1.0\",\n \"check-error\": \"^1.0.3\",\n \"deep-eql\": \"^4.1.3\",\n \"get-func-name\": \"^2.0.2\",\n \"loupe\": \"^2.3.6\",\n \"pathval\": \"^1.1.1\",\n \"type-detect\": \"^4.1.0\"\n },\n \"engines\": {\n \"node\": \">=4\"\n }\n },\n \"node_modules/chalk\": {\n \"version\": \"4.1.2\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",\n \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.1.0\",\n \"supports-color\": \"^7.1.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/chalk/node_modules/supports-color\": {\n \"version\": \"7.2.0\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",\n \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/check-error\": {\n \"version\": \"1.0.3\",\n \"resolved\": \"https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz\",\n \"integrity\": \"sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"get-func-name\": \"^2.0.2\"\n },\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/cliui\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz\",\n \"integrity\": \"sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"string-width\": \"^4.2.0\",\n \"strip-ansi\": \"^6.0.1\",\n \"wrap-ansi\": \"^7.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/color-convert\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",\n \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-name\": \"~1.1.4\"\n },\n \"engines\": {\n \"node\": \">=7.0.0\"\n }\n },\n \"node_modules/color-name\": {\n \"version\": \"1.1.4\",\n \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",\n \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/concurrently\": {\n \"version\": \"8.2.2\",\n \"resolved\": \"https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz\",\n \"integrity\": \"sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"chalk\": \"^4.1.2\",\n \"date-fns\": \"^2.30.0\",\n \"lodash\": \"^4.17.21\",\n \"rxjs\": \"^7.8.1\",\n \"shell-quote\": \"^1.8.1\",\n \"spawn-command\": \"0.0.2\",\n \"supports-color\": \"^8.1.1\",\n \"tree-kill\": \"^1.2.2\",\n \"yargs\": \"^17.7.2\"\n },\n \"bin\": {\n \"conc\": \"dist/bin/concurrently.js\",\n \"concurrently\": \"dist/bin/concurrently.js\"\n },\n \"engines\": {\n \"node\": \"^14.13.0 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/open-cli-tools/concurrently?sponsor=1\"\n }\n },\n \"node_modules/confbox\": {\n \"version\": \"0.1.8\",\n \"resolved\": \"https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz\",\n \"integrity\": \"sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/convert-source-map\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz\",\n \"integrity\": \"sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/cross-spawn\": {\n \"version\": \"7.0.6\",\n \"resolved\": \"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz\",\n \"integrity\": \"sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^3.1.0\",\n \"shebang-command\": \"^2.0.0\",\n \"which\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">= 8\"\n }\n },\n \"node_modules/csstype\": {\n \"version\": \"3.1.3\",\n \"resolved\": \"https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz\",\n \"integrity\": \"sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/date-fns\": {\n \"version\": \"2.30.0\",\n \"resolved\": \"https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz\",\n \"integrity\": \"sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/runtime\": \"^7.21.0\"\n },\n \"engines\": {\n \"node\": \">=0.11\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/date-fns\"\n }\n },\n \"node_modules/debug\": {\n \"version\": \"4.4.1\",\n \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.4.1.tgz\",\n \"integrity\": \"sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ms\": \"^2.1.3\"\n },\n \"engines\": {\n \"node\": \">=6.0\"\n },\n \"peerDependenciesMeta\": {\n \"supports-color\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/deep-eql\": {\n \"version\": \"4.1.4\",\n \"resolved\": \"https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz\",\n \"integrity\": \"sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"type-detect\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/detect-libc\": {\n \"version\": \"2.0.4\",\n \"resolved\": \"https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz\",\n \"integrity\": \"sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==\",\n \"license\": \"Apache-2.0\",\n \"optional\": true,\n \"peer\": true,\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/diff-sequences\": {\n \"version\": \"29.6.3\",\n \"resolved\": \"https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz\",\n \"integrity\": \"sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/electron-to-chromium\": {\n \"version\": \"1.5.183\",\n \"resolved\": \"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.183.tgz\",\n \"integrity\": \"sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/emoji-regex\": {\n \"version\": \"8.0.0\",\n \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",\n \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/esbuild\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.25.6.tgz\",\n \"integrity\": \"sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.25.6\",\n \"@esbuild/android-arm\": \"0.25.6\",\n \"@esbuild/android-arm64\": \"0.25.6\",\n \"@esbuild/android-x64\": \"0.25.6\",\n \"@esbuild/darwin-arm64\": \"0.25.6\",\n \"@esbuild/darwin-x64\": \"0.25.6\",\n \"@esbuild/freebsd-arm64\": \"0.25.6\",\n \"@esbuild/freebsd-x64\": \"0.25.6\",\n \"@esbuild/linux-arm\": \"0.25.6\",\n \"@esbuild/linux-arm64\": \"0.25.6\",\n \"@esbuild/linux-ia32\": \"0.25.6\",\n \"@esbuild/linux-loong64\": \"0.25.6\",\n \"@esbuild/linux-mips64el\": \"0.25.6\",\n \"@esbuild/linux-ppc64\": \"0.25.6\",\n \"@esbuild/linux-riscv64\": \"0.25.6\",\n \"@esbuild/linux-s390x\": \"0.25.6\",\n \"@esbuild/linux-x64\": \"0.25.6\",\n \"@esbuild/netbsd-arm64\": \"0.25.6\",\n \"@esbuild/netbsd-x64\": \"0.25.6\",\n \"@esbuild/openbsd-arm64\": \"0.25.6\",\n \"@esbuild/openbsd-x64\": \"0.25.6\",\n \"@esbuild/openharmony-arm64\": \"0.25.6\",\n \"@esbuild/sunos-x64\": \"0.25.6\",\n \"@esbuild/win32-arm64\": \"0.25.6\",\n \"@esbuild/win32-ia32\": \"0.25.6\",\n \"@esbuild/win32-x64\": \"0.25.6\"\n }\n },\n \"node_modules/escalade\": {\n \"version\": \"3.2.0\",\n \"resolved\": \"https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz\",\n \"integrity\": \"sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/estree-walker\": {\n \"version\": \"3.0.3\",\n \"resolved\": \"https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz\",\n \"integrity\": \"sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"^1.0.0\"\n }\n },\n \"node_modules/execa\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/execa/-/execa-8.0.1.tgz\",\n \"integrity\": \"sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cross-spawn\": \"^7.0.3\",\n \"get-stream\": \"^8.0.1\",\n \"human-signals\": \"^5.0.0\",\n \"is-stream\": \"^3.0.0\",\n \"merge-stream\": \"^2.0.0\",\n \"npm-run-path\": \"^5.1.0\",\n \"onetime\": \"^6.0.0\",\n \"signal-exit\": \"^4.1.0\",\n \"strip-final-newline\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/execa?sponsor=1\"\n }\n },\n \"node_modules/fsevents\": {\n \"version\": \"2.3.3\",\n \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz\",\n \"integrity\": \"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \"^8.16.0 || ^10.6.0 || >=11.0.0\"\n }\n },\n \"node_modules/gensync\": {\n \"version\": \"1.0.0-beta.2\",\n \"resolved\": \"https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz\",\n \"integrity\": \"sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/get-caller-file\": {\n \"version\": \"2.0.5\",\n \"resolved\": \"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz\",\n \"integrity\": \"sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \"6.* || 8.* || >= 10.*\"\n }\n },\n \"node_modules/get-func-name\": {\n \"version\": \"2.0.2\",\n \"resolved\": \"https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz\",\n \"integrity\": \"sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/get-stream\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz\",\n \"integrity\": \"sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/get-tsconfig\": {\n \"version\": \"4.10.1\",\n \"resolved\": \"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz\",\n \"integrity\": \"sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"resolve-pkg-maps\": \"^1.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/get-tsconfig?sponsor=1\"\n }\n },\n \"node_modules/has-flag\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",\n \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/human-signals\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz\",\n \"integrity\": \"sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=16.17.0\"\n }\n },\n \"node_modules/invariant\": {\n \"version\": \"2.2.4\",\n \"resolved\": \"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz\",\n \"integrity\": \"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"loose-envify\": \"^1.0.0\"\n }\n },\n \"node_modules/is-fullwidth-code-point\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",\n \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/is-network-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz\",\n \"integrity\": \"sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is-stream\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz\",\n \"integrity\": \"sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/isexe\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz\",\n \"integrity\": \"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/js-tokens\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz\",\n \"integrity\": \"sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==\",\n \"license\": \"MIT\"\n },\n \"node_modules/jsesc\": {\n \"version\": \"3.1.0\",\n \"resolved\": \"https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz\",\n \"integrity\": \"sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"jsesc\": \"bin/jsesc\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/json5\": {\n \"version\": \"2.2.3\",\n \"resolved\": \"https://registry.npmjs.org/json5/-/json5-2.2.3.tgz\",\n \"integrity\": \"sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"json5\": \"lib/cli.js\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/local-pkg\": {\n \"version\": \"0.5.1\",\n \"resolved\": \"https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz\",\n \"integrity\": \"sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"mlly\": \"^1.7.3\",\n \"pkg-types\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \">=14\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/lodash\": {\n \"version\": \"4.17.21\",\n \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",\n \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/loose-envify\": {\n \"version\": \"1.4.0\",\n \"resolved\": \"https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz\",\n \"integrity\": \"sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^3.0.0 || ^4.0.0\"\n },\n \"bin\": {\n \"loose-envify\": \"cli.js\"\n }\n },\n \"node_modules/loupe\": {\n \"version\": \"2.3.7\",\n \"resolved\": \"https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz\",\n \"integrity\": \"sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"get-func-name\": \"^2.0.1\"\n }\n },\n \"node_modules/lru-cache\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz\",\n \"integrity\": \"sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"yallist\": \"^3.0.2\"\n }\n },\n \"node_modules/magic-string\": {\n \"version\": \"0.30.17\",\n \"resolved\": \"https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz\",\n \"integrity\": \"sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\"\n }\n },\n \"node_modules/merge-stream\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz\",\n \"integrity\": \"sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/mimic-fn\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz\",\n \"integrity\": \"sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/mlly\": {\n \"version\": \"1.7.4\",\n \"resolved\": \"https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz\",\n \"integrity\": \"sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"acorn\": \"^8.14.0\",\n \"pathe\": \"^2.0.1\",\n \"pkg-types\": \"^1.3.0\",\n \"ufo\": \"^1.5.4\"\n }\n },\n \"node_modules/mlly/node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/ms\": {\n \"version\": \"2.1.3\",\n \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",\n \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/node-gyp-build-optional-packages\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz\",\n \"integrity\": \"sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==\",\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"detect-libc\": \"^2.0.1\"\n },\n \"bin\": {\n \"node-gyp-build-optional-packages\": \"bin.js\",\n \"node-gyp-build-optional-packages-optional\": \"optional.js\",\n \"node-gyp-build-optional-packages-test\": \"build-test.js\"\n }\n },\n \"node_modules/node-releases\": {\n \"version\": \"2.0.19\",\n \"resolved\": \"https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz\",\n \"integrity\": \"sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/npm-run-path\": {\n \"version\": \"5.3.0\",\n \"resolved\": \"https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz\",\n \"integrity\": \"sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/npm-run-path/node_modules/path-key\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz\",\n \"integrity\": \"sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/on-change\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/on-change/-/on-change-5.0.1.tgz\",\n \"integrity\": \"sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/on-change?sponsor=1\"\n }\n },\n \"node_modules/onetime\": {\n \"version\": \"6.0.0\",\n \"resolved\": \"https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz\",\n \"integrity\": \"sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"mimic-fn\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/p-limit\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz\",\n \"integrity\": \"sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"yocto-queue\": \"^1.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/p-retry\": {\n \"version\": \"6.2.1\",\n \"resolved\": \"https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz\",\n \"integrity\": \"sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"@types/retry\": \"0.12.2\",\n \"is-network-error\": \"^1.0.0\",\n \"retry\": \"^0.13.1\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/path-key\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz\",\n \"integrity\": \"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/pathe\": {\n \"version\": \"1.1.2\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz\",\n \"integrity\": \"sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/pathval\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz\",\n \"integrity\": \"sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/picocolors\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz\",\n \"integrity\": \"sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/pkg-types\": {\n \"version\": \"1.3.1\",\n \"resolved\": \"https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz\",\n \"integrity\": \"sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"confbox\": \"^0.1.8\",\n \"mlly\": \"^1.7.4\",\n \"pathe\": \"^2.0.1\"\n }\n },\n \"node_modules/pkg-types/node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/postcss\": {\n \"version\": \"8.5.6\",\n \"resolved\": \"https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz\",\n \"integrity\": \"sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/postcss/\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/postcss\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"nanoid\": \"^3.3.11\",\n \"picocolors\": \"^1.1.1\",\n \"source-map-js\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || >=14\"\n }\n },\n \"node_modules/pretty-format\": {\n \"version\": \"29.7.0\",\n \"resolved\": \"https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz\",\n \"integrity\": \"sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jest/schemas\": \"^29.6.3\",\n \"ansi-styles\": \"^5.0.0\",\n \"react-is\": \"^18.0.0\"\n },\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/pretty-format/node_modules/ansi-styles\": {\n \"version\": \"5.2.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz\",\n \"integrity\": \"sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/react\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react/-/react-18.3.1.tgz\",\n \"integrity\": \"sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n },\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/react-dom\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz\",\n \"integrity\": \"sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\",\n \"scheduler\": \"^0.23.2\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.3.1\"\n }\n },\n \"node_modules/react-is\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz\",\n \"integrity\": \"sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/react-refresh\": {\n \"version\": \"0.17.0\",\n \"resolved\": \"https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz\",\n \"integrity\": \"sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/require-directory\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz\",\n \"integrity\": \"sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/resolve-pkg-maps\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz\",\n \"integrity\": \"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/resolve-pkg-maps?sponsor=1\"\n }\n },\n \"node_modules/retry\": {\n \"version\": \"0.13.1\",\n \"resolved\": \"https://registry.npmjs.org/retry/-/retry-0.13.1.tgz\",\n \"integrity\": \"sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">= 4\"\n }\n },\n \"node_modules/rollup\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/rollup/-/rollup-4.45.0.tgz\",\n \"integrity\": \"sha512-WLjEcJRIo7i3WDDgOIJqVI2d+lAC3EwvOGy+Xfq6hs+GQuAA4Di/H72xmXkOhrIWFg2PFYSKZYfH0f4vfKXN4A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"1.0.8\"\n },\n \"bin\": {\n \"rollup\": \"dist/bin/rollup\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"optionalDependencies\": {\n \"@rollup/rollup-android-arm-eabi\": \"4.45.0\",\n \"@rollup/rollup-android-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-x64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-arm64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-x64\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-gnueabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-musleabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-loongarch64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-powerpc64le-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-s390x-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-musl\": \"4.45.0\",\n \"@rollup/rollup-win32-arm64-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-ia32-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-x64-msvc\": \"4.45.0\",\n \"fsevents\": \"~2.3.2\"\n }\n },\n \"node_modules/rxjs\": {\n \"version\": \"7.8.2\",\n \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz\",\n \"integrity\": \"sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"tslib\": \"^2.1.0\"\n }\n },\n \"node_modules/scheduler\": {\n \"version\": \"0.23.2\",\n \"resolved\": \"https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz\",\n \"integrity\": \"sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n }\n },\n \"node_modules/semver\": {\n \"version\": \"6.3.1\",\n \"resolved\": \"https://registry.npmjs.org/semver/-/semver-6.3.1.tgz\",\n \"integrity\": \"sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"bin\": {\n \"semver\": \"bin/semver.js\"\n }\n },\n \"node_modules/shebang-command\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz\",\n \"integrity\": \"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"shebang-regex\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/shebang-regex\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz\",\n \"integrity\": \"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/shell-quote\": {\n \"version\": \"1.8.3\",\n \"resolved\": \"https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz\",\n \"integrity\": \"sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 0.4\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/ljharb\"\n }\n },\n \"node_modules/siginfo\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz\",\n \"integrity\": \"sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/signal-exit\": {\n \"version\": \"4.1.0\",\n \"resolved\": \"https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz\",\n \"integrity\": \"sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=14\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/isaacs\"\n }\n },\n \"node_modules/source-map-js\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz\",\n \"integrity\": \"sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/spawn-command\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz\",\n \"integrity\": \"sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==\",\n \"dev\": true\n },\n \"node_modules/stackback\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz\",\n \"integrity\": \"sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/std-env\": {\n \"version\": \"3.9.0\",\n \"resolved\": \"https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz\",\n \"integrity\": \"sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/string-width\": {\n \"version\": \"4.2.3\",\n \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",\n \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"emoji-regex\": \"^8.0.0\",\n \"is-fullwidth-code-point\": \"^3.0.0\",\n \"strip-ansi\": \"^6.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-ansi\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",\n \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-regex\": \"^5.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-final-newline\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz\",\n \"integrity\": \"sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/strip-literal\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.1.tgz\",\n \"integrity\": \"sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^9.0.1\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/strip-literal/node_modules/js-tokens\": {\n \"version\": \"9.0.1\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz\",\n \"integrity\": \"sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/supports-color\": {\n \"version\": \"8.1.1\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",\n \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/supports-color?sponsor=1\"\n }\n },\n \"node_modules/tinybench\": {\n \"version\": \"2.9.0\",\n \"resolved\": \"https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz\",\n \"integrity\": \"sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinypool\": {\n \"version\": \"0.8.4\",\n \"resolved\": \"https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz\",\n \"integrity\": \"sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tinyspy\": {\n \"version\": \"2.2.1\",\n \"resolved\": \"https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz\",\n \"integrity\": \"sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tree-kill\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz\",\n \"integrity\": \"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"tree-kill\": \"cli.js\"\n }\n },\n \"node_modules/tslib\": {\n \"version\": \"2.8.1\",\n \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz\",\n \"integrity\": \"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==\",\n \"dev\": true,\n \"license\": \"0BSD\"\n },\n \"node_modules/tsx\": {\n \"version\": \"4.20.3\",\n \"resolved\": \"https://registry.npmjs.org/tsx/-/tsx-4.20.3.tgz\",\n \"integrity\": \"sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"~0.25.0\",\n \"get-tsconfig\": \"^4.7.5\"\n },\n \"bin\": {\n \"tsx\": \"dist/cli.mjs\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n }\n },\n \"node_modules/type-detect\": {\n \"version\": \"4.1.0\",\n \"resolved\": \"https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz\",\n \"integrity\": \"sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=4\"\n }\n },\n \"node_modules/typescript\": {\n \"version\": \"5.8.3\",\n \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz\",\n \"integrity\": \"sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"bin\": {\n \"tsc\": \"bin/tsc\",\n \"tsserver\": \"bin/tsserver\"\n },\n \"engines\": {\n \"node\": \">=14.17\"\n }\n },\n \"node_modules/ufo\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz\",\n \"integrity\": \"sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/undici-types\": {\n \"version\": \"6.21.0\",\n \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/update-browserslist-db\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz\",\n \"integrity\": \"sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"escalade\": \"^3.2.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"bin\": {\n \"update-browserslist-db\": \"cli.js\"\n },\n \"peerDependencies\": {\n \"browserslist\": \">= 4.21.0\"\n }\n },\n \"node_modules/use-sync-external-store\": {\n \"version\": \"1.5.0\",\n \"resolved\": \"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz\",\n \"integrity\": \"sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==\",\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/vite\": {\n \"version\": \"5.4.19\",\n \"resolved\": \"https://registry.npmjs.org/vite/-/vite-5.4.19.tgz\",\n \"integrity\": \"sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"^0.21.3\",\n \"postcss\": \"^8.4.43\",\n \"rollup\": \"^4.20.0\"\n },\n \"bin\": {\n \"vite\": \"bin/vite.js\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/vitejs/vite?sponsor=1\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n },\n \"peerDependencies\": {\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"less\": \"*\",\n \"lightningcss\": \"^1.21.0\",\n \"sass\": \"*\",\n \"sass-embedded\": \"*\",\n \"stylus\": \"*\",\n \"sugarss\": \"*\",\n \"terser\": \"^5.4.0\"\n },\n \"peerDependenciesMeta\": {\n \"@types/node\": {\n \"optional\": true\n },\n \"less\": {\n \"optional\": true\n },\n \"lightningcss\": {\n \"optional\": true\n },\n \"sass\": {\n \"optional\": true\n },\n \"sass-embedded\": {\n \"optional\": true\n },\n \"stylus\": {\n \"optional\": true\n },\n \"sugarss\": {\n \"optional\": true\n },\n \"terser\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/vite-node\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/vite-node/-/vite-node-1.6.1.tgz\",\n \"integrity\": \"sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cac\": \"^6.7.14\",\n \"debug\": \"^4.3.4\",\n \"pathe\": \"^1.1.1\",\n \"picocolors\": \"^1.0.0\",\n \"vite\": \"^5.0.0\"\n },\n \"bin\": {\n \"vite-node\": \"vite-node.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz\",\n \"integrity\": \"sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz\",\n \"integrity\": \"sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz\",\n \"integrity\": \"sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz\",\n \"integrity\": \"sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/esbuild\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz\",\n \"integrity\": \"sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.21.5\",\n \"@esbuild/android-arm\": \"0.21.5\",\n \"@esbuild/android-arm64\": \"0.21.5\",\n \"@esbuild/android-x64\": \"0.21.5\",\n \"@esbuild/darwin-arm64\": \"0.21.5\",\n \"@esbuild/darwin-x64\": \"0.21.5\",\n \"@esbuild/freebsd-arm64\": \"0.21.5\",\n \"@esbuild/freebsd-x64\": \"0.21.5\",\n \"@esbuild/linux-arm\": \"0.21.5\",\n \"@esbuild/linux-arm64\": \"0.21.5\",\n \"@esbuild/linux-ia32\": \"0.21.5\",\n \"@esbuild/linux-loong64\": \"0.21.5\",\n \"@esbuild/linux-mips64el\": \"0.21.5\",\n \"@esbuild/linux-ppc64\": \"0.21.5\",\n \"@esbuild/linux-riscv64\": \"0.21.5\",\n \"@esbuild/linux-s390x\": \"0.21.5\",\n \"@esbuild/linux-x64\": \"0.21.5\",\n \"@esbuild/netbsd-x64\": \"0.21.5\",\n \"@esbuild/openbsd-x64\": \"0.21.5\",\n \"@esbuild/sunos-x64\": \"0.21.5\",\n \"@esbuild/win32-arm64\": \"0.21.5\",\n \"@esbuild/win32-ia32\": \"0.21.5\",\n \"@esbuild/win32-x64\": \"0.21.5\"\n }\n },\n \"node_modules/vitest\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/vitest/-/vitest-1.6.1.tgz\",\n \"integrity\": \"sha512-Ljb1cnSJSivGN0LqXd/zmDbWEM0RNNg2t1QW/XUhYl/qPqyu7CsqeWtqQXHVaJsecLPuDoak2oJcZN2QoRIOag==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/expect\": \"1.6.1\",\n \"@vitest/runner\": \"1.6.1\",\n \"@vitest/snapshot\": \"1.6.1\",\n \"@vitest/spy\": \"1.6.1\",\n \"@vitest/utils\": \"1.6.1\",\n \"acorn-walk\": \"^8.3.2\",\n \"chai\": \"^4.3.10\",\n \"debug\": \"^4.3.4\",\n \"execa\": \"^8.0.1\",\n \"local-pkg\": \"^0.5.0\",\n \"magic-string\": \"^0.30.5\",\n \"pathe\": \"^1.1.1\",\n \"picocolors\": \"^1.0.0\",\n \"std-env\": \"^3.5.0\",\n \"strip-literal\": \"^2.0.0\",\n \"tinybench\": \"^2.5.1\",\n \"tinypool\": \"^0.8.3\",\n \"vite\": \"^5.0.0\",\n \"vite-node\": \"1.6.1\",\n \"why-is-node-running\": \"^2.2.2\"\n },\n \"bin\": {\n \"vitest\": \"vitest.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"@edge-runtime/vm\": \"*\",\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"@vitest/browser\": \"1.6.1\",\n \"@vitest/ui\": \"1.6.1\",\n \"happy-dom\": \"*\",\n \"jsdom\": \"*\"\n },\n \"peerDependenciesMeta\": {\n \"@edge-runtime/vm\": {\n \"optional\": true\n },\n \"@types/node\": {\n \"optional\": true\n },\n \"@vitest/browser\": {\n \"optional\": true\n },\n \"@vitest/ui\": {\n \"optional\": true\n },\n \"happy-dom\": {\n \"optional\": true\n },\n \"jsdom\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/which\": {\n \"version\": \"2.0.2\",\n \"resolved\": \"https://registry.npmjs.org/which/-/which-2.0.2.tgz\",\n \"integrity\": \"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"isexe\": \"^2.0.0\"\n },\n \"bin\": {\n \"node-which\": \"bin/node-which\"\n },\n \"engines\": {\n \"node\": \">= 8\"\n }\n },\n \"node_modules/why-is-node-running\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz\",\n \"integrity\": \"sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"siginfo\": \"^2.0.0\",\n \"stackback\": \"0.0.2\"\n },\n \"bin\": {\n \"why-is-node-running\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/wrap-ansi\": {\n \"version\": \"7.0.0\",\n \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",\n \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.0.0\",\n \"string-width\": \"^4.1.0\",\n \"strip-ansi\": \"^6.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/wrap-ansi?sponsor=1\"\n }\n },\n \"node_modules/y18n\": {\n \"version\": \"5.0.8\",\n \"resolved\": \"https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz\",\n \"integrity\": \"sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/yallist\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz\",\n \"integrity\": \"sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/yargs\": {\n \"version\": \"17.7.2\",\n \"resolved\": \"https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz\",\n \"integrity\": \"sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cliui\": \"^8.0.1\",\n \"escalade\": \"^3.1.1\",\n \"get-caller-file\": \"^2.0.5\",\n \"require-directory\": \"^2.1.1\",\n \"string-width\": \"^4.2.3\",\n \"y18n\": \"^5.0.5\",\n \"yargs-parser\": \"^21.1.1\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yargs-parser\": {\n \"version\": \"21.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz\",\n \"integrity\": \"sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yocto-queue\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz\",\n \"integrity\": \"sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12.20\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/zod\": {\n \"version\": \"3.25.76\",\n \"resolved\": \"https://registry.npmjs.org/zod/-/zod-3.25.76.tgz\",\n \"integrity\": \"sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"funding\": {\n \"url\": \"https://github.com/sponsors/colinhacks\"\n }\n }\n }\n}\n",
+ "package.json": "{\n \"name\": \"example-tenant\",\n \"version\": \"1.0.0\",\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"concurrently \\\"tsx --watch src/backend/server.ts\\\" \\\"vite\\\"\",\n \"build\": \"vite build\",\n \"preview\": \"vite preview\",\n \"check-types\": \"tsc --noEmit\",\n \"test\": \"vitest\"\n },\n \"dependencies\": {\n \"rivetkit\": \"^0.9.1\",\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^20.0.0\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.0.0\",\n \"concurrently\": \"^8.2.0\",\n \"tsx\": \"^4.0.0\",\n \"typescript\": \"^5.0.0\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^1.0.0\"\n }\n}\n",
"tsconfig.json": "{\n \"compilerOptions\": {\n \"target\": \"ES2020\",\n \"lib\": [\"ES2020\", \"DOM\", \"DOM.Iterable\"],\n \"module\": \"ESNext\",\n \"skipLibCheck\": true,\n \"moduleResolution\": \"bundler\",\n \"allowImportingTsExtensions\": true,\n \"resolveJsonModule\": true,\n \"isolatedModules\": true,\n \"noEmit\": true,\n \"jsx\": \"react-jsx\",\n \"strict\": true,\n \"noUnusedLocals\": true,\n \"noUnusedParameters\": true,\n \"noFallthroughCasesInSwitch\": true\n },\n \"include\": [\"src\", \"tests\"],\n \"exclude\": [\"node_modules\", \"dist\"]\n}\n",
"vite.config.ts": "import react from \"@vitejs/plugin-react\";\nimport { defineConfig } from \"vite\";\n\nexport default defineConfig({\n\tplugins: [react()],\n\troot: \"src/frontend\",\n\tserver: {\n\t\tport: 3000,\n\t},\n\tbuild: {\n\t\toutDir: \"../../dist\",\n\t\temptyOutDir: true,\n\t},\n});\n",
"vitest.config.ts": "import { defineConfig } from \"vitest/config\";\n\nexport default defineConfig({\n\ttest: {\n\t\tenvironment: \"node\",\n\t},\n});\n",
"src/frontend/App.tsx": "import { createClient, createRivetKit } from \"@rivetkit/react\";\nimport { useEffect, useState } from \"react\";\nimport type { Member, Invoice, registry } from \"../backend/registry\";\n\nconst client = createClient(\"http://localhost:8080\");\nconst { useActor } = createRivetKit(client);\n\nconst ORG_ID = \"org-1\";\n\nexport function App() {\n\t// Authentication state\n\tconst [token, setToken] = useState(\"\");\n\tconst [currentUser, setCurrentUser] = useState(null);\n\t\n\t// Data state\n\tconst [organization, setOrganization] = useState(null);\n\tconst [members, setMembers] = useState([]);\n\tconst [invoices, setInvoices] = useState([]);\n\tconst [dashboardStats, setDashboardStats] = useState(null);\n\tconst [error, setError] = useState(\"\");\n\tconst [loading, setLoading] = useState(false);\n\n\t// Connect to tenant actor with authentication token\n\tconst tenant = useActor({\n\t\tname: \"tenant\",\n\t\tkey: [ORG_ID],\n\t\tparams: { token },\n\t});\n\n\t// Login functions\n\tconst loginAsAdmin = () => {\n\t\tsetToken(\"auth:user-1\"); // Alice is admin\n\t\tsetError(\"\");\n\t};\n\n\tconst loginAsMember = () => {\n\t\tsetToken(\"auth:user-2\"); // Bob is member\n\t\tsetError(\"\");\n\t};\n\n\tconst loginAsCharlie = () => {\n\t\tsetToken(\"auth:user-3\"); // Charlie is member\n\t\tsetError(\"\");\n\t};\n\n\tconst logout = () => {\n\t\tsetToken(\"\");\n\t\tsetCurrentUser(null);\n\t\tsetOrganization(null);\n\t\tsetMembers([]);\n\t\tsetInvoices([]);\n\t\tsetDashboardStats(null);\n\t\tsetError(\"\");\n\t};\n\n\t// Load data when actor is available\n\tuseEffect(() => {\n\t\tif (!tenant.connection || !token) return;\n\n\t\tconst loadData = async () => {\n\t\t\tsetLoading(true);\n\t\t\ttry {\n\t\t\t\t// Get current user info\n\t\t\t\tconst user = await tenant.connection!.getCurrentUser();\n\t\t\t\tsetCurrentUser(user);\n\n\t\t\t\t// Get organization info\n\t\t\t\tconst org = await tenant.connection!.getOrganization();\n\t\t\t\tsetOrganization(org);\n\n\t\t\t\t// Get members (available to all users)\n\t\t\t\tconst membersList = await tenant.connection!.getMembers();\n\t\t\t\tsetMembers(membersList);\n\n\t\t\t\t// Get dashboard stats\n\t\t\t\tconst stats = await tenant.connection!.getDashboardStats();\n\t\t\t\tsetDashboardStats(stats);\n\n\t\t\t\t// Try to get invoices (only available to admins)\n\t\t\t\ttry {\n\t\t\t\t\tconst invoicesList = await tenant.connection!.getInvoices();\n\t\t\t\t\tsetInvoices(invoicesList);\n\t\t\t\t\tsetError(\"\");\n\t\t\t\t} catch (err: any) {\n\t\t\t\t\tsetError(err.message || \"Failed to load invoices\");\n\t\t\t\t\tsetInvoices([]);\n\t\t\t\t}\n\t\t\t} catch (err: any) {\n\t\t\t\tsetError(err.message || \"Failed to load data\");\n\t\t\t} finally {\n\t\t\t\tsetLoading(false);\n\t\t\t}\n\t\t};\n\n\t\tloadData();\n\t}, [tenant.connection, token]);\n\n\t// Listen for real-time updates\n\ttenant.useEvent(\"memberAdded\", ({ member }: { member: Member }) => {\n\t\tsetMembers(prev => [...prev, member]);\n\t});\n\n\ttenant.useEvent(\"memberUpdated\", ({ member }: { member: Member }) => {\n\t\tsetMembers(prev => prev.map(m => m.id === member.id ? member : m));\n\t});\n\n\ttenant.useEvent(\"invoiceUpdated\", ({ invoice }: { invoice: Invoice }) => {\n\t\tsetInvoices(prev => prev.map(inv => inv.id === invoice.id ? invoice : inv));\n\t});\n\n\t// Admin functions\n\tconst markInvoicePaid = async (invoiceId: string) => {\n\t\tif (!tenant.connection) return;\n\t\t\n\t\ttry {\n\t\t\tawait tenant.connection.markInvoicePaid(invoiceId);\n\t\t\tsetError(\"\");\n\t\t} catch (err: any) {\n\t\t\tsetError(err.message || \"Failed to mark invoice as paid\");\n\t\t}\n\t};\n\n\tconst addMember = async () => {\n\t\tif (!tenant.connection) return;\n\t\t\n\t\tconst name = prompt(\"Enter member name:\");\n\t\tconst email = prompt(\"Enter member email:\");\n\t\t\n\t\tif (!name || !email) return;\n\t\t\n\t\ttry {\n\t\t\tawait tenant.connection.addMember({\n\t\t\t\tname,\n\t\t\t\temail,\n\t\t\t\trole: \"member\",\n\t\t\t});\n\t\t\tsetError(\"\");\n\t\t} catch (err: any) {\n\t\t\tsetError(err.message || \"Failed to add member\");\n\t\t}\n\t};\n\n\tconst updateMemberRole = async (memberId: string, currentRole: string) => {\n\t\tif (!tenant.connection) return;\n\t\t\n\t\tconst newRole = currentRole === \"admin\" ? \"member\" : \"admin\";\n\t\t\n\t\ttry {\n\t\t\tawait tenant.connection.updateMemberRole(memberId, newRole);\n\t\t\tsetError(\"\");\n\t\t} catch (err: any) {\n\t\t\tsetError(err.message || \"Failed to update member role\");\n\t\t}\n\t};\n\n\t// Login screen when not authenticated\n\tif (!token) {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tOrganization Dashboard
\n\t\t\t\t\tMulti-tenant role-based access control with RivetKit
\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\tHow it works
\n\t\t\t\t\t\n\t\t\t\t\t\tThis tenant system demonstrates role-based access control in a multi-tenant environment. \n\t\t\t\t\t\tDifferent user roles have different permissions - admins can access invoices and manage members, \n\t\t\t\t\t\twhile regular members can only view member information.\n\t\t\t\t\t
\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\tChoose a User to Login
\n\t\t\t\t\tSelect a user to see different permission levels:
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tOrganization Dashboard
\n\t\t\t\tMulti-tenant role-based access control with RivetKit
\n\t\t\t\n\n\t\t\t{/* User Info */}\n\t\t\t{currentUser && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tLogged in as: {currentUser.name}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{currentUser.role}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{/* Organization Header */}\n\t\t\t{organization && (\n\t\t\t\t\n\t\t\t\t\t{organization.name}
\n\t\t\t\t\tOrganization ID: {organization.id} • {organization.memberCount} members
\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{/* Loading State */}\n\t\t\t{loading && Loading...}\n\n\t\t\t{/* Error Display */}\n\t\t\t{error && (\n\t\t\t\t\n\t\t\t\t\tAccess Denied
\n\t\t\t\t\t{error}
\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{/* Dashboard Stats */}\n\t\t\t{dashboardStats && (\n\t\t\t\t\n\t\t\t\t\tDashboard Statistics
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{dashboardStats.totalMembers}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tTotal Members\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{dashboardStats.adminCount}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tAdmins\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{dashboardStats.memberCount}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tMembers\n\t\t\t\t\t\t\n\t\t\t\t\t\t{dashboardStats.totalRevenue !== undefined && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t${dashboardStats.totalRevenue.toFixed(2)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tTotal Revenue\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{/* Members Section - available to all users */}\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tTeam Members
\n\t\t\t\t\t{currentUser?.role === \"admin\" && (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\n\t\t\t\t{members.length === 0 ? (\n\t\t\t\t\tNo members found\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tName \n\t\t\t\t\t\t\t\tEmail \n\t\t\t\t\t\t\t\tRole \n\t\t\t\t\t\t\t\t{currentUser?.role === \"admin\" && Actions }\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{members.map((member) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{member.name} \n\t\t\t\t\t\t\t\t\t{member.email} \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{member.role}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t{currentUser?.role === \"admin\" && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t\n\n\t\t\t{/* Invoices Section - only displayed to admins */}\n\t\t\t{currentUser?.role === \"admin\" && (\n\t\t\t\t\n\t\t\t\t\tInvoices (Admin Only)
\n\t\t\t\t\t{invoices.length === 0 ? (\n\t\t\t\t\t\tNo invoices found\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tInvoice # \n\t\t\t\t\t\t\t\t\tDescription \n\t\t\t\t\t\t\t\t\tDate \n\t\t\t\t\t\t\t\t\tAmount \n\t\t\t\t\t\t\t\t\tStatus \n\t\t\t\t\t\t\t\t\tActions \n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{invoices.map((invoice) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{invoice.id} \n\t\t\t\t\t\t\t\t\t\t{invoice.description} \n\t\t\t\t\t\t\t\t\t\t{new Date(invoice.date).toLocaleDateString()} \n\t\t\t\t\t\t\t\t\t\t${invoice.amount.toFixed(2)} \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{invoice.paid ? \"Paid\" : \"Unpaid\"}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{!invoice.paid && (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n}",
"src/frontend/main.tsx": "import { StrictMode } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { App } from \"./App\";\n\nconst root = document.getElementById(\"root\");\nif (!root) throw new Error(\"Root element not found\");\n\ncreateRoot(root).render(\n\t\n\t\t \n\t \n);",
"src/frontend/index.html": "\n\n\n \n \n Tenant Dashboard - RivetKit \n \n\n\n \n \n\n",
- "src/backend/registry.ts": "import { actor, setup } from \"@rivetkit/actor\";\nimport { UserError } from \"@rivetkit/actor/errors\";\n\nexport type Member = {\n\tid: string;\n\tname: string;\n\temail: string;\n\trole: \"admin\" | \"member\";\n};\n\nexport type Invoice = {\n\tid: string;\n\tamount: number;\n\tdate: number;\n\tpaid: boolean;\n\tdescription: string;\n};\n\nexport type ConnState = {\n\tuserId: string;\n\trole: \"admin\" | \"member\";\n};\n\n// Simple authentication function\nasync function authenticate(\n\ttoken: string,\n): Promise<{ userId: string; role: \"admin\" | \"member\" }> {\n\t// Simple token parsing - in production, verify JWT or session\n\tif (token.startsWith(\"auth:\")) {\n\t\tconst userId = token.split(\":\")[1];\n\n\t\t// Hardcoded user roles for demo\n\t\tconst userRoles: Record = {\n\t\t\t\"user-1\": \"admin\", // Alice\n\t\t\t\"user-2\": \"member\", // Bob\n\t\t\t\"user-3\": \"member\", // Charlie\n\t\t};\n\n\t\tconst role = userRoles[userId];\n\t\tif (!role) {\n\t\t\tthrow new UserError(\"Invalid authentication token\");\n\t\t}\n\n\t\treturn { userId, role };\n\t}\n\n\tthrow new UserError(\"Invalid authentication token format\");\n}\n\nconst tenant = actor({\n\tonAuth: () => {},\n\t// Persistent state that survives restarts: https://rivet.gg/docs/actors/state\n\tstate: {\n\t\torgId: \"org-1\",\n\t\torgName: \"Acme Corporation\",\n\t\tmembers: [\n\t\t\t{\n\t\t\t\tid: \"user-1\",\n\t\t\t\tname: \"Alice Johnson\",\n\t\t\t\temail: \"alice@acme.com\",\n\t\t\t\trole: \"admin\" as const,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"user-2\",\n\t\t\t\tname: \"Bob Smith\",\n\t\t\t\temail: \"bob@acme.com\",\n\t\t\t\trole: \"member\" as const,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"user-3\",\n\t\t\t\tname: \"Charlie Brown\",\n\t\t\t\temail: \"charlie@acme.com\",\n\t\t\t\trole: \"member\" as const,\n\t\t\t},\n\t\t],\n\t\tinvoices: [\n\t\t\t{\n\t\t\t\tid: \"inv-001\",\n\t\t\t\tamount: 1200.0,\n\t\t\t\tdate: Date.now() - 86400000 * 30, // 30 days ago\n\t\t\t\tpaid: true,\n\t\t\t\tdescription: \"Monthly subscription - Enterprise plan\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"inv-002\",\n\t\t\t\tamount: 1200.0,\n\t\t\t\tdate: Date.now() - 86400000 * 7, // 7 days ago\n\t\t\t\tpaid: false,\n\t\t\t\tdescription: \"Monthly subscription - Enterprise plan\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"inv-003\",\n\t\t\t\tamount: 250.0,\n\t\t\t\tdate: Date.now() - 86400000 * 3, // 3 days ago\n\t\t\t\tpaid: true,\n\t\t\t\tdescription: \"Additional storage - 500GB\",\n\t\t\t},\n\t\t],\n\t},\n\n\tactions: {\n\t\t// Callable functions from clients: https://rivet.gg/docs/actors/actions\n\t\tgetOrganization: (c) => {\n\t\t\treturn {\n\t\t\t\tid: c.state.orgId,\n\t\t\t\tname: c.state.orgName,\n\t\t\t\tmemberCount: c.state.members.length,\n\t\t\t};\n\t\t},\n\n\t\tgetMembers: (c) => {\n\t\t\treturn c.state.members;\n\t\t},\n\n\t\tgetDashboardStats: (c) => {\n\t\t\tconst stats = {\n\t\t\t\ttotalMembers: c.state.members.length,\n\t\t\t\tadminCount: c.state.members.filter((m) => m.role === \"admin\").length,\n\t\t\t\tmemberCount: c.state.members.filter((m) => m.role === \"member\").length,\n\t\t\t};\n\n\t\t\t// For testing, always return basic stats\n\t\t\treturn stats;\n\t\t},\n\t},\n});\n\n// Register actors for use: https://rivet.gg/docs/setup\nexport const registry = setup({\n\tuse: { tenant },\n});\n",
+ "src/backend/registry.ts": "import { actor, setup } from \"rivetkit\";\nimport { UserError } from \"rivetkit/errors\";\n\nexport type Member = {\n\tid: string;\n\tname: string;\n\temail: string;\n\trole: \"admin\" | \"member\";\n};\n\nexport type Invoice = {\n\tid: string;\n\tamount: number;\n\tdate: number;\n\tpaid: boolean;\n\tdescription: string;\n};\n\nexport type ConnState = {\n\tuserId: string;\n\trole: \"admin\" | \"member\";\n};\n\n// Simple authentication function\nasync function authenticate(\n\ttoken: string,\n): Promise<{ userId: string; role: \"admin\" | \"member\" }> {\n\t// Simple token parsing - in production, verify JWT or session\n\tif (token.startsWith(\"auth:\")) {\n\t\tconst userId = token.split(\":\")[1];\n\n\t\t// Hardcoded user roles for demo\n\t\tconst userRoles: Record = {\n\t\t\t\"user-1\": \"admin\", // Alice\n\t\t\t\"user-2\": \"member\", // Bob\n\t\t\t\"user-3\": \"member\", // Charlie\n\t\t};\n\n\t\tconst role = userRoles[userId];\n\t\tif (!role) {\n\t\t\tthrow new UserError(\"Invalid authentication token\");\n\t\t}\n\n\t\treturn { userId, role };\n\t}\n\n\tthrow new UserError(\"Invalid authentication token format\");\n}\n\nconst tenant = actor({\n\tonAuth: () => {},\n\t// Persistent state that survives restarts: https://rivet.gg/docs/actors/state\n\tstate: {\n\t\torgId: \"org-1\",\n\t\torgName: \"Acme Corporation\",\n\t\tmembers: [\n\t\t\t{\n\t\t\t\tid: \"user-1\",\n\t\t\t\tname: \"Alice Johnson\",\n\t\t\t\temail: \"alice@acme.com\",\n\t\t\t\trole: \"admin\" as const,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"user-2\",\n\t\t\t\tname: \"Bob Smith\",\n\t\t\t\temail: \"bob@acme.com\",\n\t\t\t\trole: \"member\" as const,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"user-3\",\n\t\t\t\tname: \"Charlie Brown\",\n\t\t\t\temail: \"charlie@acme.com\",\n\t\t\t\trole: \"member\" as const,\n\t\t\t},\n\t\t],\n\t\tinvoices: [\n\t\t\t{\n\t\t\t\tid: \"inv-001\",\n\t\t\t\tamount: 1200.0,\n\t\t\t\tdate: Date.now() - 86400000 * 30, // 30 days ago\n\t\t\t\tpaid: true,\n\t\t\t\tdescription: \"Monthly subscription - Enterprise plan\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"inv-002\",\n\t\t\t\tamount: 1200.0,\n\t\t\t\tdate: Date.now() - 86400000 * 7, // 7 days ago\n\t\t\t\tpaid: false,\n\t\t\t\tdescription: \"Monthly subscription - Enterprise plan\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"inv-003\",\n\t\t\t\tamount: 250.0,\n\t\t\t\tdate: Date.now() - 86400000 * 3, // 3 days ago\n\t\t\t\tpaid: true,\n\t\t\t\tdescription: \"Additional storage - 500GB\",\n\t\t\t},\n\t\t],\n\t},\n\n\tactions: {\n\t\t// Callable functions from clients: https://rivet.gg/docs/actors/actions\n\t\tgetOrganization: (c) => {\n\t\t\treturn {\n\t\t\t\tid: c.state.orgId,\n\t\t\t\tname: c.state.orgName,\n\t\t\t\tmemberCount: c.state.members.length,\n\t\t\t};\n\t\t},\n\n\t\tgetMembers: (c) => {\n\t\t\treturn c.state.members;\n\t\t},\n\n\t\tgetDashboardStats: (c) => {\n\t\t\tconst stats = {\n\t\t\t\ttotalMembers: c.state.members.length,\n\t\t\t\tadminCount: c.state.members.filter((m) => m.role === \"admin\").length,\n\t\t\t\tmemberCount: c.state.members.filter((m) => m.role === \"member\").length,\n\t\t\t};\n\n\t\t\t// For testing, always return basic stats\n\t\t\treturn stats;\n\t\t},\n\t},\n});\n\n// Register actors for use: https://rivet.gg/docs/setup\nexport const registry = setup({\n\tuse: { tenant },\n});\n",
"src/backend/server.ts": "import { registry } from \"./registry\";\n\nregistry.runServer({\n\tcors: {\n\t\torigin: \"*\",\n\t},\n});\n"
}
},
@@ -220,17 +220,17 @@ export const examples: ExampleData[] = [
],
"tab": "memory",
"files": {
- "tests/stream.test.ts": "import { setupTest } from \"@rivetkit/actor/test\";\nimport { expect, test } from \"vitest\";\nimport { registry } from \"../src/backend/registry\";\n\ntest(\"Stream processor maintains top 3 values\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst stream = client.streamProcessor.getOrCreate([\"test-top3\"]);\n\n\t// Initial state should be empty\n\tconst initial = await stream.getTopValues();\n\texpect(initial).toEqual([]);\n\n\t// Add first value\n\tconst result1 = await stream.addValue(10);\n\texpect(result1).toEqual([10]);\n\n\t// Add second value (lower)\n\tconst result2 = await stream.addValue(5);\n\texpect(result2).toEqual([10, 5]);\n\n\t// Add third value (higher)\n\tconst result3 = await stream.addValue(15);\n\texpect(result3).toEqual([15, 10, 5]);\n\n\t// Add fourth value (should replace lowest)\n\tconst result4 = await stream.addValue(8);\n\texpect(result4).toEqual([15, 10, 8]);\n\n\t// Add fifth value (should replace middle)\n\tconst result5 = await stream.addValue(12);\n\texpect(result5).toEqual([15, 12, 10]);\n});\n\ntest(\"Stream processor tracks statistics correctly\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst stream = client.streamProcessor.getOrCreate([\"test-stats\"]);\n\n\t// Initial stats\n\tconst initialStats = await stream.getStats();\n\texpect(initialStats).toEqual({\n\t\ttopValues: [],\n\t\ttotalCount: 0,\n\t\thighestValue: null,\n\t});\n\n\t// Add some values\n\tawait stream.addValue(20);\n\tawait stream.addValue(30);\n\tawait stream.addValue(10);\n\n\tconst stats = await stream.getStats();\n\texpect(stats).toEqual({\n\t\ttopValues: [30, 20, 10],\n\t\ttotalCount: 3,\n\t\thighestValue: 30,\n\t});\n\n\t// Add more values to test count tracking\n\tawait stream.addValue(5);\n\tawait stream.addValue(25);\n\n\tconst finalStats = await stream.getStats();\n\texpect(finalStats.totalCount).toBe(5);\n\texpect(finalStats.topValues).toEqual([30, 25, 20]);\n\texpect(finalStats.highestValue).toBe(30);\n});\n\ntest(\"Stream processor handles duplicate values\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst stream = client.streamProcessor.getOrCreate([\"test-duplicates\"]);\n\n\t// Add duplicate values\n\tawait stream.addValue(10);\n\tawait stream.addValue(10);\n\tawait stream.addValue(10);\n\n\tconst result = await stream.getTopValues();\n\texpect(result).toEqual([10, 10, 10]);\n\n\tconst stats = await stream.getStats();\n\texpect(stats.totalCount).toBe(3);\n\texpect(stats.highestValue).toBe(10);\n});\n\ntest(\"Stream processor reset functionality\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst stream = client.streamProcessor.getOrCreate([\"test-reset\"]);\n\n\t// Add some values\n\tawait stream.addValue(100);\n\tawait stream.addValue(200);\n\tawait stream.addValue(50);\n\n\t// Verify state before reset\n\tconst beforeReset = await stream.getStats();\n\texpect(beforeReset.totalCount).toBe(3);\n\texpect(beforeReset.topValues).toEqual([200, 100, 50]);\n\n\t// Reset the stream\n\tconst resetResult = await stream.reset();\n\texpect(resetResult).toEqual({\n\t\ttopValues: [],\n\t\ttotalCount: 0,\n\t\thighestValue: null,\n\t});\n\n\t// Verify state after reset\n\tconst afterReset = await stream.getStats();\n\texpect(afterReset).toEqual({\n\t\ttopValues: [],\n\t\ttotalCount: 0,\n\t\thighestValue: null,\n\t});\n});\n\ntest(\"Stream processor handles edge case values\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst stream = client.streamProcessor.getOrCreate([\"test-edge-cases\"]);\n\n\t// Test with zero\n\tawait stream.addValue(0);\n\texpect(await stream.getTopValues()).toEqual([0]);\n\n\t// Test with negative numbers\n\tawait stream.addValue(-5);\n\tawait stream.addValue(-1);\n\texpect(await stream.getTopValues()).toEqual([0, -1, -5]);\n\n\t// Test with very large numbers\n\tawait stream.addValue(1000000);\n\texpect(await stream.getTopValues()).toEqual([1000000, 0, -1]);\n\n\tconst stats = await stream.getStats();\n\texpect(stats.totalCount).toBe(4);\n\texpect(stats.highestValue).toBe(1000000);\n});\n",
+ "tests/stream.test.ts": "import { setupTest } from \"rivetkit/test\";\nimport { expect, test } from \"vitest\";\nimport { registry } from \"../src/backend/registry\";\n\ntest(\"Stream processor maintains top 3 values\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst stream = client.streamProcessor.getOrCreate([\"test-top3\"]);\n\n\t// Initial state should be empty\n\tconst initial = await stream.getTopValues();\n\texpect(initial).toEqual([]);\n\n\t// Add first value\n\tconst result1 = await stream.addValue(10);\n\texpect(result1).toEqual([10]);\n\n\t// Add second value (lower)\n\tconst result2 = await stream.addValue(5);\n\texpect(result2).toEqual([10, 5]);\n\n\t// Add third value (higher)\n\tconst result3 = await stream.addValue(15);\n\texpect(result3).toEqual([15, 10, 5]);\n\n\t// Add fourth value (should replace lowest)\n\tconst result4 = await stream.addValue(8);\n\texpect(result4).toEqual([15, 10, 8]);\n\n\t// Add fifth value (should replace middle)\n\tconst result5 = await stream.addValue(12);\n\texpect(result5).toEqual([15, 12, 10]);\n});\n\ntest(\"Stream processor tracks statistics correctly\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst stream = client.streamProcessor.getOrCreate([\"test-stats\"]);\n\n\t// Initial stats\n\tconst initialStats = await stream.getStats();\n\texpect(initialStats).toEqual({\n\t\ttopValues: [],\n\t\ttotalCount: 0,\n\t\thighestValue: null,\n\t});\n\n\t// Add some values\n\tawait stream.addValue(20);\n\tawait stream.addValue(30);\n\tawait stream.addValue(10);\n\n\tconst stats = await stream.getStats();\n\texpect(stats).toEqual({\n\t\ttopValues: [30, 20, 10],\n\t\ttotalCount: 3,\n\t\thighestValue: 30,\n\t});\n\n\t// Add more values to test count tracking\n\tawait stream.addValue(5);\n\tawait stream.addValue(25);\n\n\tconst finalStats = await stream.getStats();\n\texpect(finalStats.totalCount).toBe(5);\n\texpect(finalStats.topValues).toEqual([30, 25, 20]);\n\texpect(finalStats.highestValue).toBe(30);\n});\n\ntest(\"Stream processor handles duplicate values\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst stream = client.streamProcessor.getOrCreate([\"test-duplicates\"]);\n\n\t// Add duplicate values\n\tawait stream.addValue(10);\n\tawait stream.addValue(10);\n\tawait stream.addValue(10);\n\n\tconst result = await stream.getTopValues();\n\texpect(result).toEqual([10, 10, 10]);\n\n\tconst stats = await stream.getStats();\n\texpect(stats.totalCount).toBe(3);\n\texpect(stats.highestValue).toBe(10);\n});\n\ntest(\"Stream processor reset functionality\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst stream = client.streamProcessor.getOrCreate([\"test-reset\"]);\n\n\t// Add some values\n\tawait stream.addValue(100);\n\tawait stream.addValue(200);\n\tawait stream.addValue(50);\n\n\t// Verify state before reset\n\tconst beforeReset = await stream.getStats();\n\texpect(beforeReset.totalCount).toBe(3);\n\texpect(beforeReset.topValues).toEqual([200, 100, 50]);\n\n\t// Reset the stream\n\tconst resetResult = await stream.reset();\n\texpect(resetResult).toEqual({\n\t\ttopValues: [],\n\t\ttotalCount: 0,\n\t\thighestValue: null,\n\t});\n\n\t// Verify state after reset\n\tconst afterReset = await stream.getStats();\n\texpect(afterReset).toEqual({\n\t\ttopValues: [],\n\t\ttotalCount: 0,\n\t\thighestValue: null,\n\t});\n});\n\ntest(\"Stream processor handles edge case values\", async (ctx) => {\n\tconst { client } = await setupTest(ctx, registry);\n\tconst stream = client.streamProcessor.getOrCreate([\"test-edge-cases\"]);\n\n\t// Test with zero\n\tawait stream.addValue(0);\n\texpect(await stream.getTopValues()).toEqual([0]);\n\n\t// Test with negative numbers\n\tawait stream.addValue(-5);\n\tawait stream.addValue(-1);\n\texpect(await stream.getTopValues()).toEqual([0, -1, -5]);\n\n\t// Test with very large numbers\n\tawait stream.addValue(1000000);\n\texpect(await stream.getTopValues()).toEqual([1000000, 0, -1]);\n\n\tconst stats = await stream.getStats();\n\texpect(stats.totalCount).toBe(4);\n\texpect(stats.highestValue).toBe(1000000);\n});\n",
"README.md": "# Stream Processor for RivetKit\n\nExample project demonstrating real-time top-K stream processing with [RivetKit](https://rivetkit.org).\n\n[Learn More →](https://github.com/rivet-gg/rivetkit)\n\n[Discord](https://rivet.gg/discord) — [Documentation](https://rivetkit.org) — [Issues](https://github.com/rivet-gg/rivetkit/issues)\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 18+\n\n### Installation\n\n```sh\ngit clone https://github.com/rivet-gg/rivetkit\ncd rivetkit/examples/stream\nnpm install\n```\n\n### Development\n\n```sh\nnpm run dev\n```\n\nOpen your browser to `http://localhost:3000`\n\n## Features\n\n- **Top-K Processing**: Maintains the top 3 highest values in real-time\n- **Real-time Updates**: All connected clients see changes immediately\n- **Stream Statistics**: Total count, highest value, and live metrics\n- **Interactive Input**: Add custom values or generate random numbers\n- **Reset Functionality**: Clear the stream and start fresh\n- **Responsive Design**: Clean, modern interface with live statistics\n\n## How it works\n\nThis stream processor demonstrates:\n\n1. **Top-K Algorithm**: Efficiently maintains the top 3 values using insertion sort\n2. **Real-time Broadcasting**: Updates are instantly sent to all connected clients\n3. **State Management**: Persistent tracking of values and statistics\n4. **Event-driven Updates**: Live UI updates when new values are processed\n5. **Collaborative Experience**: Multiple users can add values simultaneously\n\n## Architecture\n\n- **Backend**: RivetKit actor managing stream state and top-K algorithm\n- **Frontend**: React application with real-time stream visualization\n- **State Management**: Server-side state with client-side event subscriptions\n- **Algorithm**: Insertion-based top-K maintenance with O(k) complexity\n\n## Stream Processing Algorithm\n\n### Value Insertion\n```typescript\n// Insert new value maintaining sorted order\nconst insertAt = topValues.findIndex(v => value > v);\nif (insertAt !== -1) {\n topValues.splice(insertAt, 0, value);\n}\n\n// Keep only top 3 values\nif (topValues.length > 3) {\n topValues.length = 3;\n}\n```\n\n### Performance Characteristics\n- **Time Complexity**: O(k) per insertion where k=3\n- **Space Complexity**: O(k) for storing top values\n- **Memory Efficient**: Only stores top values, not entire stream\n- **Real-time**: Sub-millisecond processing for new values\n\n## Use Cases\n\nThis pattern is perfect for:\n\n- **Leaderboards**: Gaming high scores, competition rankings\n- **Metrics Monitoring**: Top error rates, highest traffic spikes\n- **Social Features**: Most popular posts, trending content\n- **Analytics Dashboards**: Key performance indicators\n- **Real-time Alerts**: Threshold monitoring and notifications\n\n## Extending\n\nThis stream processor can be enhanced with:\n\n- **Configurable K**: Allow different top-K sizes (top 5, top 10, etc.)\n- **Time Windows**: Top values within specific time periods\n- **Multiple Streams**: Separate processors for different categories\n- **Persistence**: Database storage for stream history\n- **Complex Events**: Pattern detection and complex event processing\n- **Aggregations**: Sum, average, and other statistical operations\n- **Filters**: Value range filtering and validation\n- **Rate Limiting**: Throttle input to prevent spam\n\n## Stream Processing Concepts\n\n### Top-K Algorithms\n- **Heap-based**: Efficient for large K values\n- **Sort-based**: Simple implementation for small K\n- **Probabilistic**: Approximate results for massive streams\n\n### Real-time Considerations\n- **Latency**: Sub-millisecond processing requirements\n- **Throughput**: Handling high-volume input streams\n- **Memory**: Bounded memory usage regardless of stream size\n- **Accuracy**: Exact vs. approximate results trade-offs\n\n## Testing\n\nThe example includes basic structural tests. For production use, consider adding:\n\n- **Algorithm correctness**: Verify top-K accuracy\n- **Concurrency testing**: Multiple simultaneous inputs\n- **Performance testing**: High-volume stream simulation\n- **Edge cases**: Duplicate values, negative numbers, overflow handling\n\n## License\n\nApache 2.0",
- "package-lock.json": "{\n \"name\": \"example-stream\",\n \"version\": \"1.0.0\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n \"name\": \"example-stream\",\n \"version\": \"1.0.0\",\n \"dependencies\": {\n \"@rivetkit/actor\": \"^0.9.1\",\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^20.0.0\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.0.0\",\n \"concurrently\": \"^8.2.0\",\n \"tsx\": \"^4.0.0\",\n \"typescript\": \"^5.0.0\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^1.0.0\"\n }\n },\n \"node_modules/@ampproject/remapping\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz\",\n \"integrity\": \"sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@jridgewell/gen-mapping\": \"^0.3.5\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/code-frame\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz\",\n \"integrity\": \"sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"js-tokens\": \"^4.0.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/compat-data\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz\",\n \"integrity\": \"sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/core\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz\",\n \"integrity\": \"sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@ampproject/remapping\": \"^2.2.0\",\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-compilation-targets\": \"^7.27.2\",\n \"@babel/helper-module-transforms\": \"^7.27.3\",\n \"@babel/helpers\": \"^7.27.6\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/traverse\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"convert-source-map\": \"^2.0.0\",\n \"debug\": \"^4.1.0\",\n \"gensync\": \"^1.0.0-beta.2\",\n \"json5\": \"^2.2.3\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/babel\"\n }\n },\n \"node_modules/@babel/generator\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz\",\n \"integrity\": \"sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"@jridgewell/gen-mapping\": \"^0.3.12\",\n \"@jridgewell/trace-mapping\": \"^0.3.28\",\n \"jsesc\": \"^3.0.2\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-compilation-targets\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz\",\n \"integrity\": \"sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/compat-data\": \"^7.27.2\",\n \"@babel/helper-validator-option\": \"^7.27.1\",\n \"browserslist\": \"^4.24.0\",\n \"lru-cache\": \"^5.1.1\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-globals\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz\",\n \"integrity\": \"sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-imports\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz\",\n \"integrity\": \"sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/traverse\": \"^7.27.1\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-transforms\": {\n \"version\": \"7.27.3\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz\",\n \"integrity\": \"sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-module-imports\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"@babel/traverse\": \"^7.27.3\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0\"\n }\n },\n \"node_modules/@babel/helper-plugin-utils\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz\",\n \"integrity\": \"sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-string-parser\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz\",\n \"integrity\": \"sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-identifier\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz\",\n \"integrity\": \"sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-option\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz\",\n \"integrity\": \"sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helpers\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz\",\n \"integrity\": \"sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.6\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/parser\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz\",\n \"integrity\": \"sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.28.0\"\n },\n \"bin\": {\n \"parser\": \"bin/babel-parser.js\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-self\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz\",\n \"integrity\": \"sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-source\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz\",\n \"integrity\": \"sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/runtime\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz\",\n \"integrity\": \"sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/template\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz\",\n \"integrity\": \"sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/parser\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/traverse\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz\",\n \"integrity\": \"sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-globals\": \"^7.28.0\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.28.0\",\n \"debug\": \"^4.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/types\": {\n \"version\": \"7.28.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz\",\n \"integrity\": \"sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-string-parser\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz\",\n \"integrity\": \"sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==\",\n \"cpu\": [\n \"arm\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-win32-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"peer\": true\n },\n \"node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.6.tgz\",\n \"integrity\": \"sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-arm\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.6.tgz\",\n \"integrity\": \"sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.6.tgz\",\n \"integrity\": \"sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.6.tgz\",\n \"integrity\": \"sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.6.tgz\",\n \"integrity\": \"sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.6.tgz\",\n \"integrity\": \"sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.6.tgz\",\n \"integrity\": \"sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.6.tgz\",\n \"integrity\": \"sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.6.tgz\",\n \"integrity\": \"sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/netbsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openbsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openharmony-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openharmony\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.6.tgz\",\n \"integrity\": \"sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@jest/schemas\": {\n \"version\": \"29.6.3\",\n \"resolved\": \"https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz\",\n \"integrity\": \"sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@sinclair/typebox\": \"^0.27.8\"\n },\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/@jridgewell/gen-mapping\": {\n \"version\": \"0.3.12\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz\",\n \"integrity\": \"sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n }\n },\n \"node_modules/@jridgewell/resolve-uri\": {\n \"version\": \"3.1.2\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz\",\n \"integrity\": \"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@jridgewell/sourcemap-codec\": {\n \"version\": \"1.5.4\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz\",\n \"integrity\": \"sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@jridgewell/trace-mapping\": {\n \"version\": \"0.3.29\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz\",\n \"integrity\": \"sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/resolve-uri\": \"^3.1.0\",\n \"@jridgewell/sourcemap-codec\": \"^1.4.14\"\n }\n },\n \"node_modules/@rivetkit/actor\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/actor/-/actor-0.9.1.tgz\",\n \"integrity\": \"sha512-aVoWO81JrYql6hhXX+vRor0B+aeWrnh+9zkcrxbh0EXFBbS5XM8YE4sSFxNKmZThLbGNqfZ5enm1zuA92c7I1w==\",\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/core\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/core/-/core-0.9.1.tgz\",\n \"integrity\": \"sha512-0zYFKo08CQ72Rm6MaVKxcJSEEfn/ypGkkxTX06Q4meCGHuDJFbPA5wopa3NdxrKBPttcGg1QAmDd+1FZnlpubA==\",\n \"license\": \"Apache-2.0\",\n \"peer\": true,\n \"dependencies\": {\n \"cbor-x\": \"^1.6.0\",\n \"invariant\": \"^2.2.4\",\n \"on-change\": \"^5.0.1\",\n \"p-retry\": \"^6.2.1\",\n \"zod\": \"^3.25.67\"\n },\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"peerDependencies\": {\n \"@hono/node-server\": \"^1.14.0\",\n \"@hono/node-ws\": \"^1.1.1\",\n \"@hono/zod-openapi\": \"^0.19.6\",\n \"eventsource\": \"^3.0.5\",\n \"hono\": \"^4.7.0\",\n \"ws\": \"^8.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"@hono/node-server\": {\n \"optional\": true\n },\n \"@hono/node-ws\": {\n \"optional\": true\n },\n \"@hono/zod-openapi\": {\n \"optional\": true\n },\n \"eventsource\": {\n \"optional\": true\n },\n \"hono\": {\n \"optional\": true\n },\n \"ws\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@rivetkit/framework-base\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/framework-base/-/framework-base-0.9.1.tgz\",\n \"integrity\": \"sha512-FxhSqGAtDsD4k7gKS2EhJ5hHsEwI1+QR0vYThUBOLcmXM7zjMZndqIjVperQO4ck/zfjRqjm3lw7znkc+k0wNQ==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@tanstack/store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/react\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/react/-/react-0.9.1.tgz\",\n \"integrity\": \"sha512-0e0gNNj3qCrXHNIxE6ggEEX+E6HjdsSt9pJbWbaQQg+1bsywupRTSdgSDguDHjBvi9qhR9mh7UbNN3A9wYqXuA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@rivetkit/framework-base\": \"0.9.1\",\n \"@tanstack/react-store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\",\n \"react\": \"^18 || ^19\",\n \"react-dom\": \"^18 || ^19\"\n }\n },\n \"node_modules/@rolldown/pluginutils\": {\n \"version\": \"1.0.0-beta.19\",\n \"resolved\": \"https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz\",\n \"integrity\": \"sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@rollup/rollup-android-arm-eabi\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.0.tgz\",\n \"integrity\": \"sha512-2o/FgACbji4tW1dzXOqAV15Eu7DdgbKsF2QKcxfG4xbh5iwU7yr5RRP5/U+0asQliSYv5M4o7BevlGIoSL0LXg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-android-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-PSZ0SvMOjEAxwZeTx32eI/j5xSYtDCRxGu5k9zvzoY77xUNssZM+WV6HYBLROpY5CkXsbQjvz40fBb7WPwDqtQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-BA4yPIPssPB2aRAWzmqzQ3y2/KotkLyZukVB7j3psK/U3nVJdceo6qr9pLM2xN6iRP/wKfxEbOb1yrlZH6sYZg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-Pr2o0lvTwsiG4HCr43Zy9xXrHspyMvsvEw4FwKYqhli4FuLE5FjcZzuQ4cfPe0iUFCvSQG6lACI0xj74FDZKRA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-lYE8LkE5h4a/+6VnnLiL14zWMPnx6wNbDG23GcYFpRW1V9hYWHAw9lBZ6ZUIrOaoK7NliF1sdwYGiVmziUF4vA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-PVQWZK9sbzpvqC9Q0GlehNNSVHR+4m7+wET+7FgSnKG3ci5nAMgGmr9mGBXzAuE5SvguCKJ6mHL6vq1JaJ/gvw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-gnueabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-hLrmRl53prCcD+YXTfNvXd776HTxNh8wPAMllusQ+amcQmtgo3V5i/nkhPN6FakW+QVLoUUr2AsbtIRPFU3xIA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-musleabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-XBKGSYcrkdiRRjl+8XvrUR3AosXU0NvF7VuqMsm7s5nRy+nt58ZMB19Jdp1RdqewLcaYnpk8zeVs/4MlLZEJxw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-fRvZZPUiBz7NztBE/2QnCS5AtqLVhXmUOPj9IHlfGEXkapgImf4W9+FSkL8cWqoAjozyUzqFmSc4zh2ooaeF6g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-Btv2WRZOcUGi8XU80XwIvzTg4U6+l6D0V6sZTrZx214nrwxw5nAi8hysaXj/mctyClWgesyuxbeLylCBNauimg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loongarch64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-Li0emNnwtUZdLwHjQPBxn4VWztcrw/h7mgLyHiEI5Z0MhpeFGlzaiBHpSNVOMB/xucjXTTcO+dhv469Djr16KA==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-powerpc64le-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-sB8+pfkYx2kvpDCfd63d5ScYT0Fz1LO6jIb2zLZvmK9ob2D8DeVqrmBDE0iDK8KlBVmsTNzrjr3G1xV4eUZhSw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-5GQ6PFhh7E6jQm70p1aW05G2cap5zMOvO0se5JMecHeAdj5ZhWEHbJ4hiKpfi1nnnEdTauDXxPgXae/mqjow9w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-N/euLsBd1rekWcuduakTo/dJw6U6sBP3eUq+RXM9RNfPuWTvG2w/WObDkIvJ2KChy6oxZmOSC08Ak2OJA0UiAA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-s390x-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-2l9sA7d7QdikL0xQwNMO3xURBUNEWyHVHfAsHsUdq+E/pgLTUcCE+gih5PCdmyHmfTDeXUWVhqL0WZzg0nua3g==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-XZdD3fEEQcwG2KrJDdEQu7NrHonPxxaV0/w2HpvINBdcqebz1aL+0vM2WFJq4DeiAVT6F5SUQas65HY5JDqoPw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-7ayfgvtmmWgKWBkCGg5+xTQ0r5V1owVm67zTrsEY1008L5ro7mCyGYORomARt/OquB9KY7LpxVBZes+oSniAAQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-arm64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-B+IJgcBnE2bm93jEW5kHisqvPITs4ddLOROAcOc/diBgrEiQJJ6Qcjby75rFSmH5eMGrqJryUgJDhrfj942apQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-ia32-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-+CXwwG66g0/FpWOnP/v1HnrGVSOygK/osUbu3wPRy8ECXjoYKjRAyfxYpDQOfghC5qPJYLPH0oN4MCOjwgdMug==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@sinclair/typebox\": {\n \"version\": \"0.27.8\",\n \"resolved\": \"https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz\",\n \"integrity\": \"sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@tanstack/react-store\": {\n \"version\": \"0.7.3\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.7.3.tgz\",\n \"integrity\": \"sha512-3Dnqtbw9P2P0gw8uUM8WP2fFfg8XMDSZCTsywRPZe/XqqYW8PGkXKZTvP0AHkE4mpqP9Y43GpOg9vwO44azu6Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@tanstack/store\": \"0.7.2\",\n \"use-sync-external-store\": \"^1.5.0\"\n },\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\",\n \"react-dom\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/@tanstack/store\": {\n \"version\": \"0.7.2\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/store/-/store-0.7.2.tgz\",\n \"integrity\": \"sha512-RP80Z30BYiPX2Pyo0Nyw4s1SJFH2jyM6f9i3HfX4pA+gm5jsnYryscdq2aIQLnL4TaGuQMO+zXmN9nh1Qck+Pg==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n }\n },\n \"node_modules/@types/babel__core\": {\n \"version\": \"7.20.5\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz\",\n \"integrity\": \"sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.20.7\",\n \"@babel/types\": \"^7.20.7\",\n \"@types/babel__generator\": \"*\",\n \"@types/babel__template\": \"*\",\n \"@types/babel__traverse\": \"*\"\n }\n },\n \"node_modules/@types/babel__generator\": {\n \"version\": \"7.27.0\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz\",\n \"integrity\": \"sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__template\": {\n \"version\": \"7.4.4\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz\",\n \"integrity\": \"sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.1.0\",\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__traverse\": {\n \"version\": \"7.20.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz\",\n \"integrity\": \"sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.20.7\"\n }\n },\n \"node_modules/@types/estree\": {\n \"version\": \"1.0.8\",\n \"resolved\": \"https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz\",\n \"integrity\": \"sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/node\": {\n \"version\": \"20.19.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-20.19.7.tgz\",\n \"integrity\": \"sha512-1GM9z6BJOv86qkPvzh2i6VW5+VVrXxCLknfmTkWEqz+6DqosiY28XUWCTmBcJ0ACzKqx/iwdIREfo1fwExIlkA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"undici-types\": \"~6.21.0\"\n }\n },\n \"node_modules/@types/prop-types\": {\n \"version\": \"15.7.15\",\n \"resolved\": \"https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz\",\n \"integrity\": \"sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/react\": {\n \"version\": \"18.3.23\",\n \"resolved\": \"https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz\",\n \"integrity\": \"sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/prop-types\": \"*\",\n \"csstype\": \"^3.0.2\"\n }\n },\n \"node_modules/@types/react-dom\": {\n \"version\": \"18.3.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz\",\n \"integrity\": \"sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"@types/react\": \"^18.0.0\"\n }\n },\n \"node_modules/@types/retry\": {\n \"version\": \"0.12.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz\",\n \"integrity\": \"sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==\",\n \"license\": \"MIT\",\n \"peer\": true\n },\n \"node_modules/@vitejs/plugin-react\": {\n \"version\": \"4.6.0\",\n \"resolved\": \"https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz\",\n \"integrity\": \"sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/core\": \"^7.27.4\",\n \"@babel/plugin-transform-react-jsx-self\": \"^7.27.1\",\n \"@babel/plugin-transform-react-jsx-source\": \"^7.27.1\",\n \"@rolldown/pluginutils\": \"1.0.0-beta.19\",\n \"@types/babel__core\": \"^7.20.5\",\n \"react-refresh\": \"^0.17.0\"\n },\n \"engines\": {\n \"node\": \"^14.18.0 || >=16.0.0\"\n },\n \"peerDependencies\": {\n \"vite\": \"^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0\"\n }\n },\n \"node_modules/@vitest/expect\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/expect/-/expect-1.6.1.tgz\",\n \"integrity\": \"sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/spy\": \"1.6.1\",\n \"@vitest/utils\": \"1.6.1\",\n \"chai\": \"^4.3.10\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/runner\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/runner/-/runner-1.6.1.tgz\",\n \"integrity\": \"sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/utils\": \"1.6.1\",\n \"p-limit\": \"^5.0.0\",\n \"pathe\": \"^1.1.1\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/snapshot\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.1.tgz\",\n \"integrity\": \"sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"magic-string\": \"^0.30.5\",\n \"pathe\": \"^1.1.1\",\n \"pretty-format\": \"^29.7.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/spy\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/spy/-/spy-1.6.1.tgz\",\n \"integrity\": \"sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyspy\": \"^2.2.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/utils\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/utils/-/utils-1.6.1.tgz\",\n \"integrity\": \"sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"diff-sequences\": \"^29.6.3\",\n \"estree-walker\": \"^3.0.3\",\n \"loupe\": \"^2.3.7\",\n \"pretty-format\": \"^29.7.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/acorn\": {\n \"version\": \"8.15.0\",\n \"resolved\": \"https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz\",\n \"integrity\": \"sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"acorn\": \"bin/acorn\"\n },\n \"engines\": {\n \"node\": \">=0.4.0\"\n }\n },\n \"node_modules/acorn-walk\": {\n \"version\": \"8.3.4\",\n \"resolved\": \"https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz\",\n \"integrity\": \"sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"acorn\": \"^8.11.0\"\n },\n \"engines\": {\n \"node\": \">=0.4.0\"\n }\n },\n \"node_modules/ansi-regex\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",\n \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/ansi-styles\": {\n \"version\": \"4.3.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",\n \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-convert\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/assertion-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz\",\n \"integrity\": \"sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/browserslist\": {\n \"version\": \"4.25.1\",\n \"resolved\": \"https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz\",\n \"integrity\": \"sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"caniuse-lite\": \"^1.0.30001726\",\n \"electron-to-chromium\": \"^1.5.173\",\n \"node-releases\": \"^2.0.19\",\n \"update-browserslist-db\": \"^1.1.3\"\n },\n \"bin\": {\n \"browserslist\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7\"\n }\n },\n \"node_modules/cac\": {\n \"version\": \"6.7.14\",\n \"resolved\": \"https://registry.npmjs.org/cac/-/cac-6.7.14.tgz\",\n \"integrity\": \"sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/caniuse-lite\": {\n \"version\": \"1.0.30001727\",\n \"resolved\": \"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz\",\n \"integrity\": \"sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/caniuse-lite\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"CC-BY-4.0\"\n },\n \"node_modules/cbor-extract\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz\",\n \"integrity\": \"sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==\",\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"node-gyp-build-optional-packages\": \"5.1.1\"\n },\n \"bin\": {\n \"download-cbor-prebuilds\": \"bin/download-prebuilds.js\"\n },\n \"optionalDependencies\": {\n \"@cbor-extract/cbor-extract-darwin-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-darwin-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-win32-x64\": \"2.2.0\"\n }\n },\n \"node_modules/cbor-x\": {\n \"version\": \"1.6.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz\",\n \"integrity\": \"sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"optionalDependencies\": {\n \"cbor-extract\": \"^2.2.0\"\n }\n },\n \"node_modules/chai\": {\n \"version\": \"4.5.0\",\n \"resolved\": \"https://registry.npmjs.org/chai/-/chai-4.5.0.tgz\",\n \"integrity\": \"sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"assertion-error\": \"^1.1.0\",\n \"check-error\": \"^1.0.3\",\n \"deep-eql\": \"^4.1.3\",\n \"get-func-name\": \"^2.0.2\",\n \"loupe\": \"^2.3.6\",\n \"pathval\": \"^1.1.1\",\n \"type-detect\": \"^4.1.0\"\n },\n \"engines\": {\n \"node\": \">=4\"\n }\n },\n \"node_modules/chalk\": {\n \"version\": \"4.1.2\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",\n \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.1.0\",\n \"supports-color\": \"^7.1.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/chalk/node_modules/supports-color\": {\n \"version\": \"7.2.0\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",\n \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/check-error\": {\n \"version\": \"1.0.3\",\n \"resolved\": \"https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz\",\n \"integrity\": \"sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"get-func-name\": \"^2.0.2\"\n },\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/cliui\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz\",\n \"integrity\": \"sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"string-width\": \"^4.2.0\",\n \"strip-ansi\": \"^6.0.1\",\n \"wrap-ansi\": \"^7.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/color-convert\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",\n \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-name\": \"~1.1.4\"\n },\n \"engines\": {\n \"node\": \">=7.0.0\"\n }\n },\n \"node_modules/color-name\": {\n \"version\": \"1.1.4\",\n \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",\n \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/concurrently\": {\n \"version\": \"8.2.2\",\n \"resolved\": \"https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz\",\n \"integrity\": \"sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"chalk\": \"^4.1.2\",\n \"date-fns\": \"^2.30.0\",\n \"lodash\": \"^4.17.21\",\n \"rxjs\": \"^7.8.1\",\n \"shell-quote\": \"^1.8.1\",\n \"spawn-command\": \"0.0.2\",\n \"supports-color\": \"^8.1.1\",\n \"tree-kill\": \"^1.2.2\",\n \"yargs\": \"^17.7.2\"\n },\n \"bin\": {\n \"conc\": \"dist/bin/concurrently.js\",\n \"concurrently\": \"dist/bin/concurrently.js\"\n },\n \"engines\": {\n \"node\": \"^14.13.0 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/open-cli-tools/concurrently?sponsor=1\"\n }\n },\n \"node_modules/confbox\": {\n \"version\": \"0.1.8\",\n \"resolved\": \"https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz\",\n \"integrity\": \"sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/convert-source-map\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz\",\n \"integrity\": \"sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/cross-spawn\": {\n \"version\": \"7.0.6\",\n \"resolved\": \"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz\",\n \"integrity\": \"sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^3.1.0\",\n \"shebang-command\": \"^2.0.0\",\n \"which\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">= 8\"\n }\n },\n \"node_modules/csstype\": {\n \"version\": \"3.1.3\",\n \"resolved\": \"https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz\",\n \"integrity\": \"sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/date-fns\": {\n \"version\": \"2.30.0\",\n \"resolved\": \"https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz\",\n \"integrity\": \"sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/runtime\": \"^7.21.0\"\n },\n \"engines\": {\n \"node\": \">=0.11\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/date-fns\"\n }\n },\n \"node_modules/debug\": {\n \"version\": \"4.4.1\",\n \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.4.1.tgz\",\n \"integrity\": \"sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ms\": \"^2.1.3\"\n },\n \"engines\": {\n \"node\": \">=6.0\"\n },\n \"peerDependenciesMeta\": {\n \"supports-color\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/deep-eql\": {\n \"version\": \"4.1.4\",\n \"resolved\": \"https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz\",\n \"integrity\": \"sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"type-detect\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/detect-libc\": {\n \"version\": \"2.0.4\",\n \"resolved\": \"https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz\",\n \"integrity\": \"sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==\",\n \"license\": \"Apache-2.0\",\n \"optional\": true,\n \"peer\": true,\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/diff-sequences\": {\n \"version\": \"29.6.3\",\n \"resolved\": \"https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz\",\n \"integrity\": \"sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/electron-to-chromium\": {\n \"version\": \"1.5.183\",\n \"resolved\": \"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.183.tgz\",\n \"integrity\": \"sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/emoji-regex\": {\n \"version\": \"8.0.0\",\n \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",\n \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/esbuild\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.25.6.tgz\",\n \"integrity\": \"sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.25.6\",\n \"@esbuild/android-arm\": \"0.25.6\",\n \"@esbuild/android-arm64\": \"0.25.6\",\n \"@esbuild/android-x64\": \"0.25.6\",\n \"@esbuild/darwin-arm64\": \"0.25.6\",\n \"@esbuild/darwin-x64\": \"0.25.6\",\n \"@esbuild/freebsd-arm64\": \"0.25.6\",\n \"@esbuild/freebsd-x64\": \"0.25.6\",\n \"@esbuild/linux-arm\": \"0.25.6\",\n \"@esbuild/linux-arm64\": \"0.25.6\",\n \"@esbuild/linux-ia32\": \"0.25.6\",\n \"@esbuild/linux-loong64\": \"0.25.6\",\n \"@esbuild/linux-mips64el\": \"0.25.6\",\n \"@esbuild/linux-ppc64\": \"0.25.6\",\n \"@esbuild/linux-riscv64\": \"0.25.6\",\n \"@esbuild/linux-s390x\": \"0.25.6\",\n \"@esbuild/linux-x64\": \"0.25.6\",\n \"@esbuild/netbsd-arm64\": \"0.25.6\",\n \"@esbuild/netbsd-x64\": \"0.25.6\",\n \"@esbuild/openbsd-arm64\": \"0.25.6\",\n \"@esbuild/openbsd-x64\": \"0.25.6\",\n \"@esbuild/openharmony-arm64\": \"0.25.6\",\n \"@esbuild/sunos-x64\": \"0.25.6\",\n \"@esbuild/win32-arm64\": \"0.25.6\",\n \"@esbuild/win32-ia32\": \"0.25.6\",\n \"@esbuild/win32-x64\": \"0.25.6\"\n }\n },\n \"node_modules/escalade\": {\n \"version\": \"3.2.0\",\n \"resolved\": \"https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz\",\n \"integrity\": \"sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/estree-walker\": {\n \"version\": \"3.0.3\",\n \"resolved\": \"https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz\",\n \"integrity\": \"sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"^1.0.0\"\n }\n },\n \"node_modules/execa\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/execa/-/execa-8.0.1.tgz\",\n \"integrity\": \"sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cross-spawn\": \"^7.0.3\",\n \"get-stream\": \"^8.0.1\",\n \"human-signals\": \"^5.0.0\",\n \"is-stream\": \"^3.0.0\",\n \"merge-stream\": \"^2.0.0\",\n \"npm-run-path\": \"^5.1.0\",\n \"onetime\": \"^6.0.0\",\n \"signal-exit\": \"^4.1.0\",\n \"strip-final-newline\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/execa?sponsor=1\"\n }\n },\n \"node_modules/fsevents\": {\n \"version\": \"2.3.3\",\n \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz\",\n \"integrity\": \"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \"^8.16.0 || ^10.6.0 || >=11.0.0\"\n }\n },\n \"node_modules/gensync\": {\n \"version\": \"1.0.0-beta.2\",\n \"resolved\": \"https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz\",\n \"integrity\": \"sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/get-caller-file\": {\n \"version\": \"2.0.5\",\n \"resolved\": \"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz\",\n \"integrity\": \"sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \"6.* || 8.* || >= 10.*\"\n }\n },\n \"node_modules/get-func-name\": {\n \"version\": \"2.0.2\",\n \"resolved\": \"https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz\",\n \"integrity\": \"sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/get-stream\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz\",\n \"integrity\": \"sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/get-tsconfig\": {\n \"version\": \"4.10.1\",\n \"resolved\": \"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz\",\n \"integrity\": \"sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"resolve-pkg-maps\": \"^1.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/get-tsconfig?sponsor=1\"\n }\n },\n \"node_modules/has-flag\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",\n \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/human-signals\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz\",\n \"integrity\": \"sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=16.17.0\"\n }\n },\n \"node_modules/invariant\": {\n \"version\": \"2.2.4\",\n \"resolved\": \"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz\",\n \"integrity\": \"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"loose-envify\": \"^1.0.0\"\n }\n },\n \"node_modules/is-fullwidth-code-point\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",\n \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/is-network-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz\",\n \"integrity\": \"sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is-stream\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz\",\n \"integrity\": \"sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/isexe\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz\",\n \"integrity\": \"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/js-tokens\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz\",\n \"integrity\": \"sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==\",\n \"license\": \"MIT\"\n },\n \"node_modules/jsesc\": {\n \"version\": \"3.1.0\",\n \"resolved\": \"https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz\",\n \"integrity\": \"sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"jsesc\": \"bin/jsesc\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/json5\": {\n \"version\": \"2.2.3\",\n \"resolved\": \"https://registry.npmjs.org/json5/-/json5-2.2.3.tgz\",\n \"integrity\": \"sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"json5\": \"lib/cli.js\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/local-pkg\": {\n \"version\": \"0.5.1\",\n \"resolved\": \"https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz\",\n \"integrity\": \"sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"mlly\": \"^1.7.3\",\n \"pkg-types\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \">=14\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/lodash\": {\n \"version\": \"4.17.21\",\n \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",\n \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/loose-envify\": {\n \"version\": \"1.4.0\",\n \"resolved\": \"https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz\",\n \"integrity\": \"sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^3.0.0 || ^4.0.0\"\n },\n \"bin\": {\n \"loose-envify\": \"cli.js\"\n }\n },\n \"node_modules/loupe\": {\n \"version\": \"2.3.7\",\n \"resolved\": \"https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz\",\n \"integrity\": \"sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"get-func-name\": \"^2.0.1\"\n }\n },\n \"node_modules/lru-cache\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz\",\n \"integrity\": \"sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"yallist\": \"^3.0.2\"\n }\n },\n \"node_modules/magic-string\": {\n \"version\": \"0.30.17\",\n \"resolved\": \"https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz\",\n \"integrity\": \"sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\"\n }\n },\n \"node_modules/merge-stream\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz\",\n \"integrity\": \"sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/mimic-fn\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz\",\n \"integrity\": \"sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/mlly\": {\n \"version\": \"1.7.4\",\n \"resolved\": \"https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz\",\n \"integrity\": \"sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"acorn\": \"^8.14.0\",\n \"pathe\": \"^2.0.1\",\n \"pkg-types\": \"^1.3.0\",\n \"ufo\": \"^1.5.4\"\n }\n },\n \"node_modules/mlly/node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/ms\": {\n \"version\": \"2.1.3\",\n \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",\n \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/node-gyp-build-optional-packages\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz\",\n \"integrity\": \"sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==\",\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"detect-libc\": \"^2.0.1\"\n },\n \"bin\": {\n \"node-gyp-build-optional-packages\": \"bin.js\",\n \"node-gyp-build-optional-packages-optional\": \"optional.js\",\n \"node-gyp-build-optional-packages-test\": \"build-test.js\"\n }\n },\n \"node_modules/node-releases\": {\n \"version\": \"2.0.19\",\n \"resolved\": \"https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz\",\n \"integrity\": \"sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/npm-run-path\": {\n \"version\": \"5.3.0\",\n \"resolved\": \"https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz\",\n \"integrity\": \"sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/npm-run-path/node_modules/path-key\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz\",\n \"integrity\": \"sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/on-change\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/on-change/-/on-change-5.0.1.tgz\",\n \"integrity\": \"sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/on-change?sponsor=1\"\n }\n },\n \"node_modules/onetime\": {\n \"version\": \"6.0.0\",\n \"resolved\": \"https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz\",\n \"integrity\": \"sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"mimic-fn\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/p-limit\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz\",\n \"integrity\": \"sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"yocto-queue\": \"^1.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/p-retry\": {\n \"version\": \"6.2.1\",\n \"resolved\": \"https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz\",\n \"integrity\": \"sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"@types/retry\": \"0.12.2\",\n \"is-network-error\": \"^1.0.0\",\n \"retry\": \"^0.13.1\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/path-key\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz\",\n \"integrity\": \"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/pathe\": {\n \"version\": \"1.1.2\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz\",\n \"integrity\": \"sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/pathval\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz\",\n \"integrity\": \"sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/picocolors\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz\",\n \"integrity\": \"sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/pkg-types\": {\n \"version\": \"1.3.1\",\n \"resolved\": \"https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz\",\n \"integrity\": \"sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"confbox\": \"^0.1.8\",\n \"mlly\": \"^1.7.4\",\n \"pathe\": \"^2.0.1\"\n }\n },\n \"node_modules/pkg-types/node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/postcss\": {\n \"version\": \"8.5.6\",\n \"resolved\": \"https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz\",\n \"integrity\": \"sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/postcss/\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/postcss\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"nanoid\": \"^3.3.11\",\n \"picocolors\": \"^1.1.1\",\n \"source-map-js\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || >=14\"\n }\n },\n \"node_modules/pretty-format\": {\n \"version\": \"29.7.0\",\n \"resolved\": \"https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz\",\n \"integrity\": \"sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jest/schemas\": \"^29.6.3\",\n \"ansi-styles\": \"^5.0.0\",\n \"react-is\": \"^18.0.0\"\n },\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/pretty-format/node_modules/ansi-styles\": {\n \"version\": \"5.2.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz\",\n \"integrity\": \"sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/react\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react/-/react-18.3.1.tgz\",\n \"integrity\": \"sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n },\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/react-dom\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz\",\n \"integrity\": \"sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\",\n \"scheduler\": \"^0.23.2\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.3.1\"\n }\n },\n \"node_modules/react-is\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz\",\n \"integrity\": \"sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/react-refresh\": {\n \"version\": \"0.17.0\",\n \"resolved\": \"https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz\",\n \"integrity\": \"sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/require-directory\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz\",\n \"integrity\": \"sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/resolve-pkg-maps\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz\",\n \"integrity\": \"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/resolve-pkg-maps?sponsor=1\"\n }\n },\n \"node_modules/retry\": {\n \"version\": \"0.13.1\",\n \"resolved\": \"https://registry.npmjs.org/retry/-/retry-0.13.1.tgz\",\n \"integrity\": \"sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">= 4\"\n }\n },\n \"node_modules/rollup\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/rollup/-/rollup-4.45.0.tgz\",\n \"integrity\": \"sha512-WLjEcJRIo7i3WDDgOIJqVI2d+lAC3EwvOGy+Xfq6hs+GQuAA4Di/H72xmXkOhrIWFg2PFYSKZYfH0f4vfKXN4A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"1.0.8\"\n },\n \"bin\": {\n \"rollup\": \"dist/bin/rollup\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"optionalDependencies\": {\n \"@rollup/rollup-android-arm-eabi\": \"4.45.0\",\n \"@rollup/rollup-android-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-x64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-arm64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-x64\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-gnueabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-musleabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-loongarch64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-powerpc64le-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-s390x-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-musl\": \"4.45.0\",\n \"@rollup/rollup-win32-arm64-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-ia32-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-x64-msvc\": \"4.45.0\",\n \"fsevents\": \"~2.3.2\"\n }\n },\n \"node_modules/rxjs\": {\n \"version\": \"7.8.2\",\n \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz\",\n \"integrity\": \"sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"tslib\": \"^2.1.0\"\n }\n },\n \"node_modules/scheduler\": {\n \"version\": \"0.23.2\",\n \"resolved\": \"https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz\",\n \"integrity\": \"sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n }\n },\n \"node_modules/semver\": {\n \"version\": \"6.3.1\",\n \"resolved\": \"https://registry.npmjs.org/semver/-/semver-6.3.1.tgz\",\n \"integrity\": \"sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"bin\": {\n \"semver\": \"bin/semver.js\"\n }\n },\n \"node_modules/shebang-command\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz\",\n \"integrity\": \"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"shebang-regex\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/shebang-regex\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz\",\n \"integrity\": \"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/shell-quote\": {\n \"version\": \"1.8.3\",\n \"resolved\": \"https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz\",\n \"integrity\": \"sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 0.4\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/ljharb\"\n }\n },\n \"node_modules/siginfo\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz\",\n \"integrity\": \"sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/signal-exit\": {\n \"version\": \"4.1.0\",\n \"resolved\": \"https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz\",\n \"integrity\": \"sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=14\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/isaacs\"\n }\n },\n \"node_modules/source-map-js\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz\",\n \"integrity\": \"sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/spawn-command\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz\",\n \"integrity\": \"sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==\",\n \"dev\": true\n },\n \"node_modules/stackback\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz\",\n \"integrity\": \"sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/std-env\": {\n \"version\": \"3.9.0\",\n \"resolved\": \"https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz\",\n \"integrity\": \"sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/string-width\": {\n \"version\": \"4.2.3\",\n \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",\n \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"emoji-regex\": \"^8.0.0\",\n \"is-fullwidth-code-point\": \"^3.0.0\",\n \"strip-ansi\": \"^6.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-ansi\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",\n \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-regex\": \"^5.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-final-newline\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz\",\n \"integrity\": \"sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/strip-literal\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.1.tgz\",\n \"integrity\": \"sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^9.0.1\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/strip-literal/node_modules/js-tokens\": {\n \"version\": \"9.0.1\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz\",\n \"integrity\": \"sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/supports-color\": {\n \"version\": \"8.1.1\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",\n \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/supports-color?sponsor=1\"\n }\n },\n \"node_modules/tinybench\": {\n \"version\": \"2.9.0\",\n \"resolved\": \"https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz\",\n \"integrity\": \"sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinypool\": {\n \"version\": \"0.8.4\",\n \"resolved\": \"https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz\",\n \"integrity\": \"sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tinyspy\": {\n \"version\": \"2.2.1\",\n \"resolved\": \"https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz\",\n \"integrity\": \"sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tree-kill\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz\",\n \"integrity\": \"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"tree-kill\": \"cli.js\"\n }\n },\n \"node_modules/tslib\": {\n \"version\": \"2.8.1\",\n \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz\",\n \"integrity\": \"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==\",\n \"dev\": true,\n \"license\": \"0BSD\"\n },\n \"node_modules/tsx\": {\n \"version\": \"4.20.3\",\n \"resolved\": \"https://registry.npmjs.org/tsx/-/tsx-4.20.3.tgz\",\n \"integrity\": \"sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"~0.25.0\",\n \"get-tsconfig\": \"^4.7.5\"\n },\n \"bin\": {\n \"tsx\": \"dist/cli.mjs\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n }\n },\n \"node_modules/type-detect\": {\n \"version\": \"4.1.0\",\n \"resolved\": \"https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz\",\n \"integrity\": \"sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=4\"\n }\n },\n \"node_modules/typescript\": {\n \"version\": \"5.8.3\",\n \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz\",\n \"integrity\": \"sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"bin\": {\n \"tsc\": \"bin/tsc\",\n \"tsserver\": \"bin/tsserver\"\n },\n \"engines\": {\n \"node\": \">=14.17\"\n }\n },\n \"node_modules/ufo\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz\",\n \"integrity\": \"sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/undici-types\": {\n \"version\": \"6.21.0\",\n \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/update-browserslist-db\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz\",\n \"integrity\": \"sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"escalade\": \"^3.2.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"bin\": {\n \"update-browserslist-db\": \"cli.js\"\n },\n \"peerDependencies\": {\n \"browserslist\": \">= 4.21.0\"\n }\n },\n \"node_modules/use-sync-external-store\": {\n \"version\": \"1.5.0\",\n \"resolved\": \"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz\",\n \"integrity\": \"sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==\",\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/vite\": {\n \"version\": \"5.4.19\",\n \"resolved\": \"https://registry.npmjs.org/vite/-/vite-5.4.19.tgz\",\n \"integrity\": \"sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"^0.21.3\",\n \"postcss\": \"^8.4.43\",\n \"rollup\": \"^4.20.0\"\n },\n \"bin\": {\n \"vite\": \"bin/vite.js\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/vitejs/vite?sponsor=1\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n },\n \"peerDependencies\": {\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"less\": \"*\",\n \"lightningcss\": \"^1.21.0\",\n \"sass\": \"*\",\n \"sass-embedded\": \"*\",\n \"stylus\": \"*\",\n \"sugarss\": \"*\",\n \"terser\": \"^5.4.0\"\n },\n \"peerDependenciesMeta\": {\n \"@types/node\": {\n \"optional\": true\n },\n \"less\": {\n \"optional\": true\n },\n \"lightningcss\": {\n \"optional\": true\n },\n \"sass\": {\n \"optional\": true\n },\n \"sass-embedded\": {\n \"optional\": true\n },\n \"stylus\": {\n \"optional\": true\n },\n \"sugarss\": {\n \"optional\": true\n },\n \"terser\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/vite-node\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/vite-node/-/vite-node-1.6.1.tgz\",\n \"integrity\": \"sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cac\": \"^6.7.14\",\n \"debug\": \"^4.3.4\",\n \"pathe\": \"^1.1.1\",\n \"picocolors\": \"^1.0.0\",\n \"vite\": \"^5.0.0\"\n },\n \"bin\": {\n \"vite-node\": \"vite-node.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz\",\n \"integrity\": \"sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz\",\n \"integrity\": \"sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz\",\n \"integrity\": \"sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz\",\n \"integrity\": \"sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/esbuild\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz\",\n \"integrity\": \"sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.21.5\",\n \"@esbuild/android-arm\": \"0.21.5\",\n \"@esbuild/android-arm64\": \"0.21.5\",\n \"@esbuild/android-x64\": \"0.21.5\",\n \"@esbuild/darwin-arm64\": \"0.21.5\",\n \"@esbuild/darwin-x64\": \"0.21.5\",\n \"@esbuild/freebsd-arm64\": \"0.21.5\",\n \"@esbuild/freebsd-x64\": \"0.21.5\",\n \"@esbuild/linux-arm\": \"0.21.5\",\n \"@esbuild/linux-arm64\": \"0.21.5\",\n \"@esbuild/linux-ia32\": \"0.21.5\",\n \"@esbuild/linux-loong64\": \"0.21.5\",\n \"@esbuild/linux-mips64el\": \"0.21.5\",\n \"@esbuild/linux-ppc64\": \"0.21.5\",\n \"@esbuild/linux-riscv64\": \"0.21.5\",\n \"@esbuild/linux-s390x\": \"0.21.5\",\n \"@esbuild/linux-x64\": \"0.21.5\",\n \"@esbuild/netbsd-x64\": \"0.21.5\",\n \"@esbuild/openbsd-x64\": \"0.21.5\",\n \"@esbuild/sunos-x64\": \"0.21.5\",\n \"@esbuild/win32-arm64\": \"0.21.5\",\n \"@esbuild/win32-ia32\": \"0.21.5\",\n \"@esbuild/win32-x64\": \"0.21.5\"\n }\n },\n \"node_modules/vitest\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/vitest/-/vitest-1.6.1.tgz\",\n \"integrity\": \"sha512-Ljb1cnSJSivGN0LqXd/zmDbWEM0RNNg2t1QW/XUhYl/qPqyu7CsqeWtqQXHVaJsecLPuDoak2oJcZN2QoRIOag==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/expect\": \"1.6.1\",\n \"@vitest/runner\": \"1.6.1\",\n \"@vitest/snapshot\": \"1.6.1\",\n \"@vitest/spy\": \"1.6.1\",\n \"@vitest/utils\": \"1.6.1\",\n \"acorn-walk\": \"^8.3.2\",\n \"chai\": \"^4.3.10\",\n \"debug\": \"^4.3.4\",\n \"execa\": \"^8.0.1\",\n \"local-pkg\": \"^0.5.0\",\n \"magic-string\": \"^0.30.5\",\n \"pathe\": \"^1.1.1\",\n \"picocolors\": \"^1.0.0\",\n \"std-env\": \"^3.5.0\",\n \"strip-literal\": \"^2.0.0\",\n \"tinybench\": \"^2.5.1\",\n \"tinypool\": \"^0.8.3\",\n \"vite\": \"^5.0.0\",\n \"vite-node\": \"1.6.1\",\n \"why-is-node-running\": \"^2.2.2\"\n },\n \"bin\": {\n \"vitest\": \"vitest.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"@edge-runtime/vm\": \"*\",\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"@vitest/browser\": \"1.6.1\",\n \"@vitest/ui\": \"1.6.1\",\n \"happy-dom\": \"*\",\n \"jsdom\": \"*\"\n },\n \"peerDependenciesMeta\": {\n \"@edge-runtime/vm\": {\n \"optional\": true\n },\n \"@types/node\": {\n \"optional\": true\n },\n \"@vitest/browser\": {\n \"optional\": true\n },\n \"@vitest/ui\": {\n \"optional\": true\n },\n \"happy-dom\": {\n \"optional\": true\n },\n \"jsdom\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/which\": {\n \"version\": \"2.0.2\",\n \"resolved\": \"https://registry.npmjs.org/which/-/which-2.0.2.tgz\",\n \"integrity\": \"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"isexe\": \"^2.0.0\"\n },\n \"bin\": {\n \"node-which\": \"bin/node-which\"\n },\n \"engines\": {\n \"node\": \">= 8\"\n }\n },\n \"node_modules/why-is-node-running\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz\",\n \"integrity\": \"sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"siginfo\": \"^2.0.0\",\n \"stackback\": \"0.0.2\"\n },\n \"bin\": {\n \"why-is-node-running\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/wrap-ansi\": {\n \"version\": \"7.0.0\",\n \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",\n \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.0.0\",\n \"string-width\": \"^4.1.0\",\n \"strip-ansi\": \"^6.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/wrap-ansi?sponsor=1\"\n }\n },\n \"node_modules/y18n\": {\n \"version\": \"5.0.8\",\n \"resolved\": \"https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz\",\n \"integrity\": \"sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/yallist\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz\",\n \"integrity\": \"sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/yargs\": {\n \"version\": \"17.7.2\",\n \"resolved\": \"https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz\",\n \"integrity\": \"sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cliui\": \"^8.0.1\",\n \"escalade\": \"^3.1.1\",\n \"get-caller-file\": \"^2.0.5\",\n \"require-directory\": \"^2.1.1\",\n \"string-width\": \"^4.2.3\",\n \"y18n\": \"^5.0.5\",\n \"yargs-parser\": \"^21.1.1\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yargs-parser\": {\n \"version\": \"21.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz\",\n \"integrity\": \"sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yocto-queue\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz\",\n \"integrity\": \"sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12.20\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/zod\": {\n \"version\": \"3.25.76\",\n \"resolved\": \"https://registry.npmjs.org/zod/-/zod-3.25.76.tgz\",\n \"integrity\": \"sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"funding\": {\n \"url\": \"https://github.com/sponsors/colinhacks\"\n }\n }\n }\n}\n",
- "package.json": "{\n \"name\": \"example-stream\",\n \"version\": \"1.0.0\",\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"concurrently \\\"tsx --watch src/backend/server.ts\\\" \\\"vite\\\"\",\n \"build\": \"vite build\",\n \"preview\": \"vite preview\",\n \"check-types\": \"tsc --noEmit\",\n \"test\": \"vitest\"\n },\n \"dependencies\": {\n \"@rivetkit/actor\": \"^0.9.1\",\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^20.0.0\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.0.0\",\n \"concurrently\": \"^8.2.0\",\n \"tsx\": \"^4.0.0\",\n \"typescript\": \"^5.0.0\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^1.0.0\"\n }\n}\n",
+ "package-lock.json": "{\n \"name\": \"example-stream\",\n \"version\": \"1.0.0\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n \"name\": \"example-stream\",\n \"version\": \"1.0.0\",\n \"dependencies\": {\n \"rivetkit\": \"^0.9.1\",\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^20.0.0\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.0.0\",\n \"concurrently\": \"^8.2.0\",\n \"tsx\": \"^4.0.0\",\n \"typescript\": \"^5.0.0\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^1.0.0\"\n }\n },\n \"node_modules/@ampproject/remapping\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz\",\n \"integrity\": \"sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@jridgewell/gen-mapping\": \"^0.3.5\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/code-frame\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz\",\n \"integrity\": \"sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"js-tokens\": \"^4.0.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/compat-data\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz\",\n \"integrity\": \"sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/core\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz\",\n \"integrity\": \"sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@ampproject/remapping\": \"^2.2.0\",\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-compilation-targets\": \"^7.27.2\",\n \"@babel/helper-module-transforms\": \"^7.27.3\",\n \"@babel/helpers\": \"^7.27.6\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/traverse\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"convert-source-map\": \"^2.0.0\",\n \"debug\": \"^4.1.0\",\n \"gensync\": \"^1.0.0-beta.2\",\n \"json5\": \"^2.2.3\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/babel\"\n }\n },\n \"node_modules/@babel/generator\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz\",\n \"integrity\": \"sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/types\": \"^7.28.0\",\n \"@jridgewell/gen-mapping\": \"^0.3.12\",\n \"@jridgewell/trace-mapping\": \"^0.3.28\",\n \"jsesc\": \"^3.0.2\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-compilation-targets\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz\",\n \"integrity\": \"sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/compat-data\": \"^7.27.2\",\n \"@babel/helper-validator-option\": \"^7.27.1\",\n \"browserslist\": \"^4.24.0\",\n \"lru-cache\": \"^5.1.1\",\n \"semver\": \"^6.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-globals\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz\",\n \"integrity\": \"sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-imports\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz\",\n \"integrity\": \"sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/traverse\": \"^7.27.1\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-module-transforms\": {\n \"version\": \"7.27.3\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz\",\n \"integrity\": \"sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-module-imports\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\",\n \"@babel/traverse\": \"^7.27.3\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0\"\n }\n },\n \"node_modules/@babel/helper-plugin-utils\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz\",\n \"integrity\": \"sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-string-parser\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz\",\n \"integrity\": \"sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-identifier\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz\",\n \"integrity\": \"sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helper-validator-option\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz\",\n \"integrity\": \"sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/helpers\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz\",\n \"integrity\": \"sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.6\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/parser\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz\",\n \"integrity\": \"sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.28.0\"\n },\n \"bin\": {\n \"parser\": \"bin/babel-parser.js\"\n },\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-self\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz\",\n \"integrity\": \"sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/plugin-transform-react-jsx-source\": {\n \"version\": \"7.27.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz\",\n \"integrity\": \"sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-plugin-utils\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n },\n \"peerDependencies\": {\n \"@babel/core\": \"^7.0.0-0\"\n }\n },\n \"node_modules/@babel/runtime\": {\n \"version\": \"7.27.6\",\n \"resolved\": \"https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz\",\n \"integrity\": \"sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/template\": {\n \"version\": \"7.27.2\",\n \"resolved\": \"https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz\",\n \"integrity\": \"sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/parser\": \"^7.27.2\",\n \"@babel/types\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/traverse\": {\n \"version\": \"7.28.0\",\n \"resolved\": \"https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz\",\n \"integrity\": \"sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/code-frame\": \"^7.27.1\",\n \"@babel/generator\": \"^7.28.0\",\n \"@babel/helper-globals\": \"^7.28.0\",\n \"@babel/parser\": \"^7.28.0\",\n \"@babel/template\": \"^7.27.2\",\n \"@babel/types\": \"^7.28.0\",\n \"debug\": \"^4.3.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@babel/types\": {\n \"version\": \"7.28.1\",\n \"resolved\": \"https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz\",\n \"integrity\": \"sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/helper-string-parser\": \"^7.27.1\",\n \"@babel/helper-validator-identifier\": \"^7.27.1\"\n },\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-darwin-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-x64/-/cbor-extract-darwin-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-1liF6fgowph0JxBbYnAS7ZlqNYLf000Qnj4KjqPNW4GViKrEql2MgZnAsExhY9LSy8dnvA4C0qHEBgPrll0z0w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm/-/cbor-extract-linux-arm-2.2.0.tgz\",\n \"integrity\": \"sha512-QeBcBXk964zOytiedMPQNZr7sg0TNavZeuUCD6ON4vEOU/25+pLhNN6EDIKJ9VLTKaZ7K7EaAriyYQ1NQ05s/Q==\",\n \"cpu\": [\n \"arm\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-arm64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-arm64/-/cbor-extract-linux-arm64-2.2.0.tgz\",\n \"integrity\": \"sha512-rQvhNmDuhjTVXSPFLolmQ47/ydGOFXtbR7+wgkSY0bdOxCFept1hvg59uiLPT2fVDuJFuEy16EImo5tE2x3RsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-linux-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-linux-x64/-/cbor-extract-linux-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-cWLAWtT3kNLHSvP4RKDzSTX9o0wvQEEAj4SKvhWuOVZxiDAeQazr9A+PSiRILK1VYMLeDml89ohxCnUNQNQNCw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"peer\": true\n },\n \"node_modules/@cbor-extract/cbor-extract-win32-x64\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/@cbor-extract/cbor-extract-win32-x64/-/cbor-extract-win32-x64-2.2.0.tgz\",\n \"integrity\": \"sha512-l2M+Z8DO2vbvADOBNLbbh9y5ST1RY5sqkWOg/58GkUPBYou/cuNZ68SGQ644f1CvZ8kcOxyZtw06+dxWHIoN/w==\",\n \"cpu\": [\n \"x64\"\n ],\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"peer\": true\n },\n \"node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.6.tgz\",\n \"integrity\": \"sha512-ShbM/3XxwuxjFiuVBHA+d3j5dyac0aEVVq1oluIDf71hUw0aRF59dV/efUsIwFnR6m8JNM2FjZOzmaZ8yG61kw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-arm\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.6.tgz\",\n \"integrity\": \"sha512-S8ToEOVfg++AU/bHwdksHNnyLyVM+eMVAOf6yRKFitnwnbwwPNqKr3srzFRe7nzV69RQKb5DgchIX5pt3L53xg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-hd5zdUarsK6strW+3Wxi5qWws+rJhCCbMiC9QZyzoxfk5uHRIE8T287giQxzVpEvCwuJ9Qjg6bEjcRJcgfLqoA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/android-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-0Z7KpHSr3VBIO9A/1wcT3NTy7EB4oNC4upJ5ye3R7taCc2GUdeynSLArnon5G8scPwaU866d3H4BCrE5xLW25A==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-FFCssz3XBavjxcFxKsGy2DYK5VSvJqa6y5HXljKzhRZ87LvEi13brPrf/wdyl/BbpbMKJNOr1Sd0jtW4Ge1pAA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-GfXs5kry/TkGM2vKqK2oyiLFygJRqKVhawu3+DOCk7OxLy/6jYkWXhlHwOoTb0WqGnWGAS7sooxbZowy+pK9Yg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-aoLF2c3OvDn2XDTRvn8hN6DRzVVpDlj2B/F66clWd/FHLiHaG3aVZjxQX2DYphA5y/evbdGvC6Us13tvyt4pWg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-2SkqTjTSo2dYi/jzFbU9Plt1vk0+nNg8YC8rOXXea+iA3hfNJWebKYPs3xnOUf9+ZWhKAaxnQNUf2X9LOpeiMQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.6.tgz\",\n \"integrity\": \"sha512-SZHQlzvqv4Du5PrKE2faN0qlbsaW/3QQfUUc6yO2EjFcA83xnwm91UbEEVx4ApZ9Z5oG8Bxz4qPE+HFwtVcfyw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-b967hU0gqKd9Drsh/UuAm21Khpoh6mPBSgz8mKRq4P5mVK8bpA+hQzmm/ZwGVULSNBzKdZPQBRT3+WuVavcWsQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.6.tgz\",\n \"integrity\": \"sha512-aHWdQ2AAltRkLPOsKdi3xv0mZ8fUGPdlKEjIEhxCPm5yKEThcUjHpWB1idN74lfXGnZ5SULQSgtr5Qos5B0bPw==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.6.tgz\",\n \"integrity\": \"sha512-VgKCsHdXRSQ7E1+QXGdRPlQ/e08bN6WMQb27/TMfV+vPjjTImuT9PmLXupRlC90S1JeNNW5lzkAEO/McKeJ2yg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.6.tgz\",\n \"integrity\": \"sha512-WViNlpivRKT9/py3kCmkHnn44GkGXVdXfdc4drNmRl15zVQ2+D2uFwdlGh6IuK5AAnGTo2qPB1Djppj+t78rzw==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.6.tgz\",\n \"integrity\": \"sha512-wyYKZ9NTdmAMb5730I38lBqVu6cKl4ZfYXIs31Baf8aoOtB4xSGi3THmDYt4BTFHk7/EcVixkOV2uZfwU3Q2Jw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.6.tgz\",\n \"integrity\": \"sha512-KZh7bAGGcrinEj4qzilJ4hqTY3Dg2U82c8bv+e1xqNqZCrCyc+TL9AUEn5WGKDzm3CfC5RODE/qc96OcbIe33w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.6.tgz\",\n \"integrity\": \"sha512-9N1LsTwAuE9oj6lHMyyAM+ucxGiVnEqUdp4v7IaMmrwb06ZTEVCIs3oPPplVsnjPfyjmxwHxHMF8b6vzUVAUGw==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-A6bJB41b4lKFWRKNrWoP2LHsjVzNiaurf7wyj/XtFNTsnPuxwEBWHLty+ZE0dWBKuSK1fvKgrKaNjBS7qbFKig==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/netbsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-IjA+DcwoVpjEvyxZddDqBY+uJ2Snc6duLpjmkXm/v4xuS3H+3FkLZlDm9ZsAbF9rsfP3zeA0/ArNDORZgrxR/Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-dUXuZr5WenIDlMHdMkvDc1FAu4xdWixTCRgP7RQLBOkkGgwuuzaGSYcOpW4jFxzpzL1ejb8yF620UxAqnBrR9g==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openbsd-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-l8ZCvXP0tbTJ3iaqdNf3pjaOSd5ex/e6/omLIQCVBLmHTlfXW3zAxQ4fnDmPLOB1x9xrcSi/xtCWFwCZRIaEwg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-hKrmDa0aOFOr71KQ/19JC7az1P0GWtCN1t2ahYAf4O007DHZt/dW8ym5+CUdJhQ/qkZmI1HAF8KkJbEFtCL7gw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/openharmony-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-+SqBcAWoB1fYKmpWoQP4pGtx+pUUC//RNYhFdbcSA16617cchuryuhOCRpPsjCblKukAckWsV+aQ3UKT/RMPcA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openharmony\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-dyCGxv1/Br7MiSC42qinGL8KkG4kX0pEsdb0+TKhmJZgCUDBGmyo1/ArCjNGiOLiIAgdbWgmWgib4HoCi5t7kA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.6.tgz\",\n \"integrity\": \"sha512-42QOgcZeZOvXfsCBJF5Afw73t4veOId//XD3i+/9gSkhSV6Gk3VPlWncctI+JcOyERv85FUo7RxuxGy+z8A43Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.6.tgz\",\n \"integrity\": \"sha512-4AWhgXmDuYN7rJI6ORB+uU9DHLq/erBbuMoAuB4VWJTu5KtCgcKYPynF0YI1VkBNuEfjNlLrFr9KZPJzrtLkrQ==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.6.tgz\",\n \"integrity\": \"sha512-NgJPHHbEpLQgDH2MjQu90pzW/5vvXIZ7KOnPyNBm92A6WgZ/7b6fJyUBjoumLqeOQQGqY2QjQxRo97ah4Sj0cA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=18\"\n }\n },\n \"node_modules/@jest/schemas\": {\n \"version\": \"29.6.3\",\n \"resolved\": \"https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz\",\n \"integrity\": \"sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@sinclair/typebox\": \"^0.27.8\"\n },\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/@jridgewell/gen-mapping\": {\n \"version\": \"0.3.12\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz\",\n \"integrity\": \"sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\",\n \"@jridgewell/trace-mapping\": \"^0.3.24\"\n }\n },\n \"node_modules/@jridgewell/resolve-uri\": {\n \"version\": \"3.1.2\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz\",\n \"integrity\": \"sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.0.0\"\n }\n },\n \"node_modules/@jridgewell/sourcemap-codec\": {\n \"version\": \"1.5.4\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz\",\n \"integrity\": \"sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@jridgewell/trace-mapping\": {\n \"version\": \"0.3.29\",\n \"resolved\": \"https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz\",\n \"integrity\": \"sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/resolve-uri\": \"^3.1.0\",\n \"@jridgewell/sourcemap-codec\": \"^1.4.14\"\n }\n },\n \"node_modules/rivetkit\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/rivetkit/-/actor-0.9.1.tgz\",\n \"integrity\": \"sha512-aVoWO81JrYql6hhXX+vRor0B+aeWrnh+9zkcrxbh0EXFBbS5XM8YE4sSFxNKmZThLbGNqfZ5enm1zuA92c7I1w==\",\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/core\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/core/-/core-0.9.1.tgz\",\n \"integrity\": \"sha512-0zYFKo08CQ72Rm6MaVKxcJSEEfn/ypGkkxTX06Q4meCGHuDJFbPA5wopa3NdxrKBPttcGg1QAmDd+1FZnlpubA==\",\n \"license\": \"Apache-2.0\",\n \"peer\": true,\n \"dependencies\": {\n \"cbor-x\": \"^1.6.0\",\n \"invariant\": \"^2.2.4\",\n \"on-change\": \"^5.0.1\",\n \"p-retry\": \"^6.2.1\",\n \"zod\": \"^3.25.67\"\n },\n \"engines\": {\n \"node\": \">=22.0.0\"\n },\n \"peerDependencies\": {\n \"@hono/node-server\": \"^1.14.0\",\n \"@hono/node-ws\": \"^1.1.1\",\n \"@hono/zod-openapi\": \"^0.19.6\",\n \"eventsource\": \"^3.0.5\",\n \"hono\": \"^4.7.0\",\n \"ws\": \"^8.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"@hono/node-server\": {\n \"optional\": true\n },\n \"@hono/node-ws\": {\n \"optional\": true\n },\n \"@hono/zod-openapi\": {\n \"optional\": true\n },\n \"eventsource\": {\n \"optional\": true\n },\n \"hono\": {\n \"optional\": true\n },\n \"ws\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/@rivetkit/framework-base\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/framework-base/-/framework-base-0.9.1.tgz\",\n \"integrity\": \"sha512-FxhSqGAtDsD4k7gKS2EhJ5hHsEwI1+QR0vYThUBOLcmXM7zjMZndqIjVperQO4ck/zfjRqjm3lw7znkc+k0wNQ==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@tanstack/store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\"\n }\n },\n \"node_modules/@rivetkit/react\": {\n \"version\": \"0.9.1\",\n \"resolved\": \"https://registry.npmjs.org/@rivetkit/react/-/react-0.9.1.tgz\",\n \"integrity\": \"sha512-0e0gNNj3qCrXHNIxE6ggEEX+E6HjdsSt9pJbWbaQQg+1bsywupRTSdgSDguDHjBvi9qhR9mh7UbNN3A9wYqXuA==\",\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"@rivetkit/framework-base\": \"0.9.1\",\n \"@tanstack/react-store\": \"^0.7.1\"\n },\n \"peerDependencies\": {\n \"@rivetkit/core\": \"*\",\n \"react\": \"^18 || ^19\",\n \"react-dom\": \"^18 || ^19\"\n }\n },\n \"node_modules/@rolldown/pluginutils\": {\n \"version\": \"1.0.0-beta.19\",\n \"resolved\": \"https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.19.tgz\",\n \"integrity\": \"sha512-3FL3mnMbPu0muGOCaKAhhFEYmqv9eTfPSJRJmANrCwtgK8VuxpsZDGK+m0LYAGoyO8+0j5uRe4PeyPDK1yA/hA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@rollup/rollup-android-arm-eabi\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.0.tgz\",\n \"integrity\": \"sha512-2o/FgACbji4tW1dzXOqAV15Eu7DdgbKsF2QKcxfG4xbh5iwU7yr5RRP5/U+0asQliSYv5M4o7BevlGIoSL0LXg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-android-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-PSZ0SvMOjEAxwZeTx32eI/j5xSYtDCRxGu5k9zvzoY77xUNssZM+WV6HYBLROpY5CkXsbQjvz40fBb7WPwDqtQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-BA4yPIPssPB2aRAWzmqzQ3y2/KotkLyZukVB7j3psK/U3nVJdceo6qr9pLM2xN6iRP/wKfxEbOb1yrlZH6sYZg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-darwin-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-Pr2o0lvTwsiG4HCr43Zy9xXrHspyMvsvEw4FwKYqhli4FuLE5FjcZzuQ4cfPe0iUFCvSQG6lACI0xj74FDZKRA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-arm64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.0.tgz\",\n \"integrity\": \"sha512-lYE8LkE5h4a/+6VnnLiL14zWMPnx6wNbDG23GcYFpRW1V9hYWHAw9lBZ6ZUIrOaoK7NliF1sdwYGiVmziUF4vA==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-freebsd-x64\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.0.tgz\",\n \"integrity\": \"sha512-PVQWZK9sbzpvqC9Q0GlehNNSVHR+4m7+wET+7FgSnKG3ci5nAMgGmr9mGBXzAuE5SvguCKJ6mHL6vq1JaJ/gvw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-gnueabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-hLrmRl53prCcD+YXTfNvXd776HTxNh8wPAMllusQ+amcQmtgo3V5i/nkhPN6FakW+QVLoUUr2AsbtIRPFU3xIA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm-musleabihf\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.0.tgz\",\n \"integrity\": \"sha512-XBKGSYcrkdiRRjl+8XvrUR3AosXU0NvF7VuqMsm7s5nRy+nt58ZMB19Jdp1RdqewLcaYnpk8zeVs/4MlLZEJxw==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-fRvZZPUiBz7NztBE/2QnCS5AtqLVhXmUOPj9IHlfGEXkapgImf4W9+FSkL8cWqoAjozyUzqFmSc4zh2ooaeF6g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-arm64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-Btv2WRZOcUGi8XU80XwIvzTg4U6+l6D0V6sZTrZx214nrwxw5nAi8hysaXj/mctyClWgesyuxbeLylCBNauimg==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-loongarch64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-Li0emNnwtUZdLwHjQPBxn4VWztcrw/h7mgLyHiEI5Z0MhpeFGlzaiBHpSNVOMB/xucjXTTcO+dhv469Djr16KA==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-powerpc64le-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-sB8+pfkYx2kvpDCfd63d5ScYT0Fz1LO6jIb2zLZvmK9ob2D8DeVqrmBDE0iDK8KlBVmsTNzrjr3G1xV4eUZhSw==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-5GQ6PFhh7E6jQm70p1aW05G2cap5zMOvO0se5JMecHeAdj5ZhWEHbJ4hiKpfi1nnnEdTauDXxPgXae/mqjow9w==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-riscv64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-N/euLsBd1rekWcuduakTo/dJw6U6sBP3eUq+RXM9RNfPuWTvG2w/WObDkIvJ2KChy6oxZmOSC08Ak2OJA0UiAA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-s390x-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-2l9sA7d7QdikL0xQwNMO3xURBUNEWyHVHfAsHsUdq+E/pgLTUcCE+gih5PCdmyHmfTDeXUWVhqL0WZzg0nua3g==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-gnu\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.0.tgz\",\n \"integrity\": \"sha512-XZdD3fEEQcwG2KrJDdEQu7NrHonPxxaV0/w2HpvINBdcqebz1aL+0vM2WFJq4DeiAVT6F5SUQas65HY5JDqoPw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-linux-x64-musl\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.0.tgz\",\n \"integrity\": \"sha512-7ayfgvtmmWgKWBkCGg5+xTQ0r5V1owVm67zTrsEY1008L5ro7mCyGYORomARt/OquB9KY7LpxVBZes+oSniAAQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-arm64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-B+IJgcBnE2bm93jEW5kHisqvPITs4ddLOROAcOc/diBgrEiQJJ6Qcjby75rFSmH5eMGrqJryUgJDhrfj942apQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-ia32-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-+CXwwG66g0/FpWOnP/v1HnrGVSOygK/osUbu3wPRy8ECXjoYKjRAyfxYpDQOfghC5qPJYLPH0oN4MCOjwgdMug==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@rollup/rollup-win32-x64-msvc\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.0.tgz\",\n \"integrity\": \"sha512-SRf1cytG7wqcHVLrBc9VtPK4pU5wxiB/lNIkNmW2ApKXIg+RpqwHfsaEK+e7eH4A1BpI6BX/aBWXxZCIrJg3uA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ]\n },\n \"node_modules/@sinclair/typebox\": {\n \"version\": \"0.27.8\",\n \"resolved\": \"https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz\",\n \"integrity\": \"sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@tanstack/react-store\": {\n \"version\": \"0.7.3\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.7.3.tgz\",\n \"integrity\": \"sha512-3Dnqtbw9P2P0gw8uUM8WP2fFfg8XMDSZCTsywRPZe/XqqYW8PGkXKZTvP0AHkE4mpqP9Y43GpOg9vwO44azu6Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@tanstack/store\": \"0.7.2\",\n \"use-sync-external-store\": \"^1.5.0\"\n },\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n },\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\",\n \"react-dom\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/@tanstack/store\": {\n \"version\": \"0.7.2\",\n \"resolved\": \"https://registry.npmjs.org/@tanstack/store/-/store-0.7.2.tgz\",\n \"integrity\": \"sha512-RP80Z30BYiPX2Pyo0Nyw4s1SJFH2jyM6f9i3HfX4pA+gm5jsnYryscdq2aIQLnL4TaGuQMO+zXmN9nh1Qck+Pg==\",\n \"license\": \"MIT\",\n \"funding\": {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/tannerlinsley\"\n }\n },\n \"node_modules/@types/babel__core\": {\n \"version\": \"7.20.5\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz\",\n \"integrity\": \"sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.20.7\",\n \"@babel/types\": \"^7.20.7\",\n \"@types/babel__generator\": \"*\",\n \"@types/babel__template\": \"*\",\n \"@types/babel__traverse\": \"*\"\n }\n },\n \"node_modules/@types/babel__generator\": {\n \"version\": \"7.27.0\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz\",\n \"integrity\": \"sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__template\": {\n \"version\": \"7.4.4\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz\",\n \"integrity\": \"sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/parser\": \"^7.1.0\",\n \"@babel/types\": \"^7.0.0\"\n }\n },\n \"node_modules/@types/babel__traverse\": {\n \"version\": \"7.20.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz\",\n \"integrity\": \"sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/types\": \"^7.20.7\"\n }\n },\n \"node_modules/@types/estree\": {\n \"version\": \"1.0.8\",\n \"resolved\": \"https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz\",\n \"integrity\": \"sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/node\": {\n \"version\": \"20.19.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/node/-/node-20.19.7.tgz\",\n \"integrity\": \"sha512-1GM9z6BJOv86qkPvzh2i6VW5+VVrXxCLknfmTkWEqz+6DqosiY28XUWCTmBcJ0ACzKqx/iwdIREfo1fwExIlkA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"undici-types\": \"~6.21.0\"\n }\n },\n \"node_modules/@types/prop-types\": {\n \"version\": \"15.7.15\",\n \"resolved\": \"https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz\",\n \"integrity\": \"sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/@types/react\": {\n \"version\": \"18.3.23\",\n \"resolved\": \"https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz\",\n \"integrity\": \"sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/prop-types\": \"*\",\n \"csstype\": \"^3.0.2\"\n }\n },\n \"node_modules/@types/react-dom\": {\n \"version\": \"18.3.7\",\n \"resolved\": \"https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz\",\n \"integrity\": \"sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"@types/react\": \"^18.0.0\"\n }\n },\n \"node_modules/@types/retry\": {\n \"version\": \"0.12.2\",\n \"resolved\": \"https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz\",\n \"integrity\": \"sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==\",\n \"license\": \"MIT\",\n \"peer\": true\n },\n \"node_modules/@vitejs/plugin-react\": {\n \"version\": \"4.6.0\",\n \"resolved\": \"https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.6.0.tgz\",\n \"integrity\": \"sha512-5Kgff+m8e2PB+9j51eGHEpn5kUzRKH2Ry0qGoe8ItJg7pqnkPrYPkDQZGgGmTa0EGarHrkjLvOdU3b1fzI8otQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/core\": \"^7.27.4\",\n \"@babel/plugin-transform-react-jsx-self\": \"^7.27.1\",\n \"@babel/plugin-transform-react-jsx-source\": \"^7.27.1\",\n \"@rolldown/pluginutils\": \"1.0.0-beta.19\",\n \"@types/babel__core\": \"^7.20.5\",\n \"react-refresh\": \"^0.17.0\"\n },\n \"engines\": {\n \"node\": \"^14.18.0 || >=16.0.0\"\n },\n \"peerDependencies\": {\n \"vite\": \"^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0\"\n }\n },\n \"node_modules/@vitest/expect\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/expect/-/expect-1.6.1.tgz\",\n \"integrity\": \"sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/spy\": \"1.6.1\",\n \"@vitest/utils\": \"1.6.1\",\n \"chai\": \"^4.3.10\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/runner\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/runner/-/runner-1.6.1.tgz\",\n \"integrity\": \"sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/utils\": \"1.6.1\",\n \"p-limit\": \"^5.0.0\",\n \"pathe\": \"^1.1.1\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/snapshot\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.1.tgz\",\n \"integrity\": \"sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"magic-string\": \"^0.30.5\",\n \"pathe\": \"^1.1.1\",\n \"pretty-format\": \"^29.7.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/spy\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/spy/-/spy-1.6.1.tgz\",\n \"integrity\": \"sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"tinyspy\": \"^2.2.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/@vitest/utils\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/@vitest/utils/-/utils-1.6.1.tgz\",\n \"integrity\": \"sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"diff-sequences\": \"^29.6.3\",\n \"estree-walker\": \"^3.0.3\",\n \"loupe\": \"^2.3.7\",\n \"pretty-format\": \"^29.7.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/acorn\": {\n \"version\": \"8.15.0\",\n \"resolved\": \"https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz\",\n \"integrity\": \"sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"acorn\": \"bin/acorn\"\n },\n \"engines\": {\n \"node\": \">=0.4.0\"\n }\n },\n \"node_modules/acorn-walk\": {\n \"version\": \"8.3.4\",\n \"resolved\": \"https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz\",\n \"integrity\": \"sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"acorn\": \"^8.11.0\"\n },\n \"engines\": {\n \"node\": \">=0.4.0\"\n }\n },\n \"node_modules/ansi-regex\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz\",\n \"integrity\": \"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/ansi-styles\": {\n \"version\": \"4.3.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz\",\n \"integrity\": \"sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-convert\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/assertion-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz\",\n \"integrity\": \"sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/browserslist\": {\n \"version\": \"4.25.1\",\n \"resolved\": \"https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz\",\n \"integrity\": \"sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"caniuse-lite\": \"^1.0.30001726\",\n \"electron-to-chromium\": \"^1.5.173\",\n \"node-releases\": \"^2.0.19\",\n \"update-browserslist-db\": \"^1.1.3\"\n },\n \"bin\": {\n \"browserslist\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \"^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7\"\n }\n },\n \"node_modules/cac\": {\n \"version\": \"6.7.14\",\n \"resolved\": \"https://registry.npmjs.org/cac/-/cac-6.7.14.tgz\",\n \"integrity\": \"sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/caniuse-lite\": {\n \"version\": \"1.0.30001727\",\n \"resolved\": \"https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz\",\n \"integrity\": \"sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/caniuse-lite\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"CC-BY-4.0\"\n },\n \"node_modules/cbor-extract\": {\n \"version\": \"2.2.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz\",\n \"integrity\": \"sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==\",\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"node-gyp-build-optional-packages\": \"5.1.1\"\n },\n \"bin\": {\n \"download-cbor-prebuilds\": \"bin/download-prebuilds.js\"\n },\n \"optionalDependencies\": {\n \"@cbor-extract/cbor-extract-darwin-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-darwin-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-arm64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-linux-x64\": \"2.2.0\",\n \"@cbor-extract/cbor-extract-win32-x64\": \"2.2.0\"\n }\n },\n \"node_modules/cbor-x\": {\n \"version\": \"1.6.0\",\n \"resolved\": \"https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz\",\n \"integrity\": \"sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"optionalDependencies\": {\n \"cbor-extract\": \"^2.2.0\"\n }\n },\n \"node_modules/chai\": {\n \"version\": \"4.5.0\",\n \"resolved\": \"https://registry.npmjs.org/chai/-/chai-4.5.0.tgz\",\n \"integrity\": \"sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"assertion-error\": \"^1.1.0\",\n \"check-error\": \"^1.0.3\",\n \"deep-eql\": \"^4.1.3\",\n \"get-func-name\": \"^2.0.2\",\n \"loupe\": \"^2.3.6\",\n \"pathval\": \"^1.1.1\",\n \"type-detect\": \"^4.1.0\"\n },\n \"engines\": {\n \"node\": \">=4\"\n }\n },\n \"node_modules/chalk\": {\n \"version\": \"4.1.2\",\n \"resolved\": \"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz\",\n \"integrity\": \"sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.1.0\",\n \"supports-color\": \"^7.1.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/chalk?sponsor=1\"\n }\n },\n \"node_modules/chalk/node_modules/supports-color\": {\n \"version\": \"7.2.0\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz\",\n \"integrity\": \"sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/check-error\": {\n \"version\": \"1.0.3\",\n \"resolved\": \"https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz\",\n \"integrity\": \"sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"get-func-name\": \"^2.0.2\"\n },\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/cliui\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz\",\n \"integrity\": \"sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"string-width\": \"^4.2.0\",\n \"strip-ansi\": \"^6.0.1\",\n \"wrap-ansi\": \"^7.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/color-convert\": {\n \"version\": \"2.0.1\",\n \"resolved\": \"https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz\",\n \"integrity\": \"sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"color-name\": \"~1.1.4\"\n },\n \"engines\": {\n \"node\": \">=7.0.0\"\n }\n },\n \"node_modules/color-name\": {\n \"version\": \"1.1.4\",\n \"resolved\": \"https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz\",\n \"integrity\": \"sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/concurrently\": {\n \"version\": \"8.2.2\",\n \"resolved\": \"https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz\",\n \"integrity\": \"sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"chalk\": \"^4.1.2\",\n \"date-fns\": \"^2.30.0\",\n \"lodash\": \"^4.17.21\",\n \"rxjs\": \"^7.8.1\",\n \"shell-quote\": \"^1.8.1\",\n \"spawn-command\": \"0.0.2\",\n \"supports-color\": \"^8.1.1\",\n \"tree-kill\": \"^1.2.2\",\n \"yargs\": \"^17.7.2\"\n },\n \"bin\": {\n \"conc\": \"dist/bin/concurrently.js\",\n \"concurrently\": \"dist/bin/concurrently.js\"\n },\n \"engines\": {\n \"node\": \"^14.13.0 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/open-cli-tools/concurrently?sponsor=1\"\n }\n },\n \"node_modules/confbox\": {\n \"version\": \"0.1.8\",\n \"resolved\": \"https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz\",\n \"integrity\": \"sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/convert-source-map\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz\",\n \"integrity\": \"sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/cross-spawn\": {\n \"version\": \"7.0.6\",\n \"resolved\": \"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz\",\n \"integrity\": \"sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^3.1.0\",\n \"shebang-command\": \"^2.0.0\",\n \"which\": \"^2.0.1\"\n },\n \"engines\": {\n \"node\": \">= 8\"\n }\n },\n \"node_modules/csstype\": {\n \"version\": \"3.1.3\",\n \"resolved\": \"https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz\",\n \"integrity\": \"sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/date-fns\": {\n \"version\": \"2.30.0\",\n \"resolved\": \"https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz\",\n \"integrity\": \"sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@babel/runtime\": \"^7.21.0\"\n },\n \"engines\": {\n \"node\": \">=0.11\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/date-fns\"\n }\n },\n \"node_modules/debug\": {\n \"version\": \"4.4.1\",\n \"resolved\": \"https://registry.npmjs.org/debug/-/debug-4.4.1.tgz\",\n \"integrity\": \"sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ms\": \"^2.1.3\"\n },\n \"engines\": {\n \"node\": \">=6.0\"\n },\n \"peerDependenciesMeta\": {\n \"supports-color\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/deep-eql\": {\n \"version\": \"4.1.4\",\n \"resolved\": \"https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz\",\n \"integrity\": \"sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"type-detect\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/detect-libc\": {\n \"version\": \"2.0.4\",\n \"resolved\": \"https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz\",\n \"integrity\": \"sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==\",\n \"license\": \"Apache-2.0\",\n \"optional\": true,\n \"peer\": true,\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/diff-sequences\": {\n \"version\": \"29.6.3\",\n \"resolved\": \"https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz\",\n \"integrity\": \"sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/electron-to-chromium\": {\n \"version\": \"1.5.183\",\n \"resolved\": \"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.183.tgz\",\n \"integrity\": \"sha512-vCrDBYjQCAEefWGjlK3EpoSKfKbT10pR4XXPdn65q7snuNOZnthoVpBfZPykmDapOKfoD+MMIPG8ZjKyyc9oHA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/emoji-regex\": {\n \"version\": \"8.0.0\",\n \"resolved\": \"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz\",\n \"integrity\": \"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/esbuild\": {\n \"version\": \"0.25.6\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.25.6.tgz\",\n \"integrity\": \"sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.25.6\",\n \"@esbuild/android-arm\": \"0.25.6\",\n \"@esbuild/android-arm64\": \"0.25.6\",\n \"@esbuild/android-x64\": \"0.25.6\",\n \"@esbuild/darwin-arm64\": \"0.25.6\",\n \"@esbuild/darwin-x64\": \"0.25.6\",\n \"@esbuild/freebsd-arm64\": \"0.25.6\",\n \"@esbuild/freebsd-x64\": \"0.25.6\",\n \"@esbuild/linux-arm\": \"0.25.6\",\n \"@esbuild/linux-arm64\": \"0.25.6\",\n \"@esbuild/linux-ia32\": \"0.25.6\",\n \"@esbuild/linux-loong64\": \"0.25.6\",\n \"@esbuild/linux-mips64el\": \"0.25.6\",\n \"@esbuild/linux-ppc64\": \"0.25.6\",\n \"@esbuild/linux-riscv64\": \"0.25.6\",\n \"@esbuild/linux-s390x\": \"0.25.6\",\n \"@esbuild/linux-x64\": \"0.25.6\",\n \"@esbuild/netbsd-arm64\": \"0.25.6\",\n \"@esbuild/netbsd-x64\": \"0.25.6\",\n \"@esbuild/openbsd-arm64\": \"0.25.6\",\n \"@esbuild/openbsd-x64\": \"0.25.6\",\n \"@esbuild/openharmony-arm64\": \"0.25.6\",\n \"@esbuild/sunos-x64\": \"0.25.6\",\n \"@esbuild/win32-arm64\": \"0.25.6\",\n \"@esbuild/win32-ia32\": \"0.25.6\",\n \"@esbuild/win32-x64\": \"0.25.6\"\n }\n },\n \"node_modules/escalade\": {\n \"version\": \"3.2.0\",\n \"resolved\": \"https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz\",\n \"integrity\": \"sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/estree-walker\": {\n \"version\": \"3.0.3\",\n \"resolved\": \"https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz\",\n \"integrity\": \"sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"^1.0.0\"\n }\n },\n \"node_modules/execa\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/execa/-/execa-8.0.1.tgz\",\n \"integrity\": \"sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cross-spawn\": \"^7.0.3\",\n \"get-stream\": \"^8.0.1\",\n \"human-signals\": \"^5.0.0\",\n \"is-stream\": \"^3.0.0\",\n \"merge-stream\": \"^2.0.0\",\n \"npm-run-path\": \"^5.1.0\",\n \"onetime\": \"^6.0.0\",\n \"signal-exit\": \"^4.1.0\",\n \"strip-final-newline\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/execa?sponsor=1\"\n }\n },\n \"node_modules/fsevents\": {\n \"version\": \"2.3.3\",\n \"resolved\": \"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz\",\n \"integrity\": \"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \"^8.16.0 || ^10.6.0 || >=11.0.0\"\n }\n },\n \"node_modules/gensync\": {\n \"version\": \"1.0.0-beta.2\",\n \"resolved\": \"https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz\",\n \"integrity\": \"sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=6.9.0\"\n }\n },\n \"node_modules/get-caller-file\": {\n \"version\": \"2.0.5\",\n \"resolved\": \"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz\",\n \"integrity\": \"sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \"6.* || 8.* || >= 10.*\"\n }\n },\n \"node_modules/get-func-name\": {\n \"version\": \"2.0.2\",\n \"resolved\": \"https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz\",\n \"integrity\": \"sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/get-stream\": {\n \"version\": \"8.0.1\",\n \"resolved\": \"https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz\",\n \"integrity\": \"sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/get-tsconfig\": {\n \"version\": \"4.10.1\",\n \"resolved\": \"https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz\",\n \"integrity\": \"sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"resolve-pkg-maps\": \"^1.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/get-tsconfig?sponsor=1\"\n }\n },\n \"node_modules/has-flag\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz\",\n \"integrity\": \"sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/human-signals\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz\",\n \"integrity\": \"sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"engines\": {\n \"node\": \">=16.17.0\"\n }\n },\n \"node_modules/invariant\": {\n \"version\": \"2.2.4\",\n \"resolved\": \"https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz\",\n \"integrity\": \"sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"loose-envify\": \"^1.0.0\"\n }\n },\n \"node_modules/is-fullwidth-code-point\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz\",\n \"integrity\": \"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/is-network-error\": {\n \"version\": \"1.1.0\",\n \"resolved\": \"https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz\",\n \"integrity\": \"sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=16\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/is-stream\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz\",\n \"integrity\": \"sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/isexe\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz\",\n \"integrity\": \"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/js-tokens\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz\",\n \"integrity\": \"sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==\",\n \"license\": \"MIT\"\n },\n \"node_modules/jsesc\": {\n \"version\": \"3.1.0\",\n \"resolved\": \"https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz\",\n \"integrity\": \"sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"jsesc\": \"bin/jsesc\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/json5\": {\n \"version\": \"2.2.3\",\n \"resolved\": \"https://registry.npmjs.org/json5/-/json5-2.2.3.tgz\",\n \"integrity\": \"sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"json5\": \"lib/cli.js\"\n },\n \"engines\": {\n \"node\": \">=6\"\n }\n },\n \"node_modules/local-pkg\": {\n \"version\": \"0.5.1\",\n \"resolved\": \"https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz\",\n \"integrity\": \"sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"mlly\": \"^1.7.3\",\n \"pkg-types\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \">=14\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/lodash\": {\n \"version\": \"4.17.21\",\n \"resolved\": \"https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz\",\n \"integrity\": \"sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/loose-envify\": {\n \"version\": \"1.4.0\",\n \"resolved\": \"https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz\",\n \"integrity\": \"sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^3.0.0 || ^4.0.0\"\n },\n \"bin\": {\n \"loose-envify\": \"cli.js\"\n }\n },\n \"node_modules/loupe\": {\n \"version\": \"2.3.7\",\n \"resolved\": \"https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz\",\n \"integrity\": \"sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"get-func-name\": \"^2.0.1\"\n }\n },\n \"node_modules/lru-cache\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz\",\n \"integrity\": \"sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"yallist\": \"^3.0.2\"\n }\n },\n \"node_modules/magic-string\": {\n \"version\": \"0.30.17\",\n \"resolved\": \"https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz\",\n \"integrity\": \"sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jridgewell/sourcemap-codec\": \"^1.5.0\"\n }\n },\n \"node_modules/merge-stream\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz\",\n \"integrity\": \"sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/mimic-fn\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz\",\n \"integrity\": \"sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/mlly\": {\n \"version\": \"1.7.4\",\n \"resolved\": \"https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz\",\n \"integrity\": \"sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"acorn\": \"^8.14.0\",\n \"pathe\": \"^2.0.1\",\n \"pkg-types\": \"^1.3.0\",\n \"ufo\": \"^1.5.4\"\n }\n },\n \"node_modules/mlly/node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/ms\": {\n \"version\": \"2.1.3\",\n \"resolved\": \"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz\",\n \"integrity\": \"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/nanoid\": {\n \"version\": \"3.3.11\",\n \"resolved\": \"https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz\",\n \"integrity\": \"sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"bin\": {\n \"nanoid\": \"bin/nanoid.cjs\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || ^13.7 || ^14 || >=15.0.1\"\n }\n },\n \"node_modules/node-gyp-build-optional-packages\": {\n \"version\": \"5.1.1\",\n \"resolved\": \"https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz\",\n \"integrity\": \"sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==\",\n \"license\": \"MIT\",\n \"optional\": true,\n \"peer\": true,\n \"dependencies\": {\n \"detect-libc\": \"^2.0.1\"\n },\n \"bin\": {\n \"node-gyp-build-optional-packages\": \"bin.js\",\n \"node-gyp-build-optional-packages-optional\": \"optional.js\",\n \"node-gyp-build-optional-packages-test\": \"build-test.js\"\n }\n },\n \"node_modules/node-releases\": {\n \"version\": \"2.0.19\",\n \"resolved\": \"https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz\",\n \"integrity\": \"sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/npm-run-path\": {\n \"version\": \"5.3.0\",\n \"resolved\": \"https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz\",\n \"integrity\": \"sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"path-key\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \"^12.20.0 || ^14.13.1 || >=16.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/npm-run-path/node_modules/path-key\": {\n \"version\": \"4.0.0\",\n \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz\",\n \"integrity\": \"sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/on-change\": {\n \"version\": \"5.0.1\",\n \"resolved\": \"https://registry.npmjs.org/on-change/-/on-change-5.0.1.tgz\",\n \"integrity\": \"sha512-n7THCP7RkyReRSLkJb8kUWoNsxUIBxTkIp3JKno+sEz6o/9AJ3w3P9fzQkITEkMwyTKJjZciF3v/pVoouxZZMg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sindresorhus/on-change?sponsor=1\"\n }\n },\n \"node_modules/onetime\": {\n \"version\": \"6.0.0\",\n \"resolved\": \"https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz\",\n \"integrity\": \"sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"mimic-fn\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/p-limit\": {\n \"version\": \"5.0.0\",\n \"resolved\": \"https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz\",\n \"integrity\": \"sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"yocto-queue\": \"^1.0.0\"\n },\n \"engines\": {\n \"node\": \">=18\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/p-retry\": {\n \"version\": \"6.2.1\",\n \"resolved\": \"https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz\",\n \"integrity\": \"sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"dependencies\": {\n \"@types/retry\": \"0.12.2\",\n \"is-network-error\": \"^1.0.0\",\n \"retry\": \"^0.13.1\"\n },\n \"engines\": {\n \"node\": \">=16.17\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/path-key\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz\",\n \"integrity\": \"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/pathe\": {\n \"version\": \"1.1.2\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz\",\n \"integrity\": \"sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/pathval\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz\",\n \"integrity\": \"sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \"*\"\n }\n },\n \"node_modules/picocolors\": {\n \"version\": \"1.1.1\",\n \"resolved\": \"https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz\",\n \"integrity\": \"sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/pkg-types\": {\n \"version\": \"1.3.1\",\n \"resolved\": \"https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz\",\n \"integrity\": \"sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"confbox\": \"^0.1.8\",\n \"mlly\": \"^1.7.4\",\n \"pathe\": \"^2.0.1\"\n }\n },\n \"node_modules/pkg-types/node_modules/pathe\": {\n \"version\": \"2.0.3\",\n \"resolved\": \"https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz\",\n \"integrity\": \"sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/postcss\": {\n \"version\": \"8.5.6\",\n \"resolved\": \"https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz\",\n \"integrity\": \"sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/postcss/\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/postcss\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"nanoid\": \"^3.3.11\",\n \"picocolors\": \"^1.1.1\",\n \"source-map-js\": \"^1.2.1\"\n },\n \"engines\": {\n \"node\": \"^10 || ^12 || >=14\"\n }\n },\n \"node_modules/pretty-format\": {\n \"version\": \"29.7.0\",\n \"resolved\": \"https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz\",\n \"integrity\": \"sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@jest/schemas\": \"^29.6.3\",\n \"ansi-styles\": \"^5.0.0\",\n \"react-is\": \"^18.0.0\"\n },\n \"engines\": {\n \"node\": \"^14.15.0 || ^16.10.0 || >=18.0.0\"\n }\n },\n \"node_modules/pretty-format/node_modules/ansi-styles\": {\n \"version\": \"5.2.0\",\n \"resolved\": \"https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz\",\n \"integrity\": \"sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/ansi-styles?sponsor=1\"\n }\n },\n \"node_modules/react\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react/-/react-18.3.1.tgz\",\n \"integrity\": \"sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n },\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/react-dom\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz\",\n \"integrity\": \"sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\",\n \"scheduler\": \"^0.23.2\"\n },\n \"peerDependencies\": {\n \"react\": \"^18.3.1\"\n }\n },\n \"node_modules/react-is\": {\n \"version\": \"18.3.1\",\n \"resolved\": \"https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz\",\n \"integrity\": \"sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/react-refresh\": {\n \"version\": \"0.17.0\",\n \"resolved\": \"https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz\",\n \"integrity\": \"sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/require-directory\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz\",\n \"integrity\": \"sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/resolve-pkg-maps\": {\n \"version\": \"1.0.0\",\n \"resolved\": \"https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz\",\n \"integrity\": \"sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"funding\": {\n \"url\": \"https://github.com/privatenumber/resolve-pkg-maps?sponsor=1\"\n }\n },\n \"node_modules/retry\": {\n \"version\": \"0.13.1\",\n \"resolved\": \"https://registry.npmjs.org/retry/-/retry-0.13.1.tgz\",\n \"integrity\": \"sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"engines\": {\n \"node\": \">= 4\"\n }\n },\n \"node_modules/rollup\": {\n \"version\": \"4.45.0\",\n \"resolved\": \"https://registry.npmjs.org/rollup/-/rollup-4.45.0.tgz\",\n \"integrity\": \"sha512-WLjEcJRIo7i3WDDgOIJqVI2d+lAC3EwvOGy+Xfq6hs+GQuAA4Di/H72xmXkOhrIWFg2PFYSKZYfH0f4vfKXN4A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@types/estree\": \"1.0.8\"\n },\n \"bin\": {\n \"rollup\": \"dist/bin/rollup\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\",\n \"npm\": \">=8.0.0\"\n },\n \"optionalDependencies\": {\n \"@rollup/rollup-android-arm-eabi\": \"4.45.0\",\n \"@rollup/rollup-android-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-arm64\": \"4.45.0\",\n \"@rollup/rollup-darwin-x64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-arm64\": \"4.45.0\",\n \"@rollup/rollup-freebsd-x64\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-gnueabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm-musleabihf\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-arm64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-loongarch64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-powerpc64le-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-riscv64-musl\": \"4.45.0\",\n \"@rollup/rollup-linux-s390x-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-gnu\": \"4.45.0\",\n \"@rollup/rollup-linux-x64-musl\": \"4.45.0\",\n \"@rollup/rollup-win32-arm64-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-ia32-msvc\": \"4.45.0\",\n \"@rollup/rollup-win32-x64-msvc\": \"4.45.0\",\n \"fsevents\": \"~2.3.2\"\n }\n },\n \"node_modules/rxjs\": {\n \"version\": \"7.8.2\",\n \"resolved\": \"https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz\",\n \"integrity\": \"sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"dependencies\": {\n \"tslib\": \"^2.1.0\"\n }\n },\n \"node_modules/scheduler\": {\n \"version\": \"0.23.2\",\n \"resolved\": \"https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz\",\n \"integrity\": \"sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"loose-envify\": \"^1.1.0\"\n }\n },\n \"node_modules/semver\": {\n \"version\": \"6.3.1\",\n \"resolved\": \"https://registry.npmjs.org/semver/-/semver-6.3.1.tgz\",\n \"integrity\": \"sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"bin\": {\n \"semver\": \"bin/semver.js\"\n }\n },\n \"node_modules/shebang-command\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz\",\n \"integrity\": \"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"shebang-regex\": \"^3.0.0\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/shebang-regex\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz\",\n \"integrity\": \"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/shell-quote\": {\n \"version\": \"1.8.3\",\n \"resolved\": \"https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz\",\n \"integrity\": \"sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">= 0.4\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/ljharb\"\n }\n },\n \"node_modules/siginfo\": {\n \"version\": \"2.0.0\",\n \"resolved\": \"https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz\",\n \"integrity\": \"sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/signal-exit\": {\n \"version\": \"4.1.0\",\n \"resolved\": \"https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz\",\n \"integrity\": \"sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=14\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/isaacs\"\n }\n },\n \"node_modules/source-map-js\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz\",\n \"integrity\": \"sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==\",\n \"dev\": true,\n \"license\": \"BSD-3-Clause\",\n \"engines\": {\n \"node\": \">=0.10.0\"\n }\n },\n \"node_modules/spawn-command\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz\",\n \"integrity\": \"sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==\",\n \"dev\": true\n },\n \"node_modules/stackback\": {\n \"version\": \"0.0.2\",\n \"resolved\": \"https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz\",\n \"integrity\": \"sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/std-env\": {\n \"version\": \"3.9.0\",\n \"resolved\": \"https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz\",\n \"integrity\": \"sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/string-width\": {\n \"version\": \"4.2.3\",\n \"resolved\": \"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz\",\n \"integrity\": \"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"emoji-regex\": \"^8.0.0\",\n \"is-fullwidth-code-point\": \"^3.0.0\",\n \"strip-ansi\": \"^6.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-ansi\": {\n \"version\": \"6.0.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz\",\n \"integrity\": \"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-regex\": \"^5.0.1\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/strip-final-newline\": {\n \"version\": \"3.0.0\",\n \"resolved\": \"https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz\",\n \"integrity\": \"sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/strip-literal\": {\n \"version\": \"2.1.1\",\n \"resolved\": \"https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.1.tgz\",\n \"integrity\": \"sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"js-tokens\": \"^9.0.1\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/antfu\"\n }\n },\n \"node_modules/strip-literal/node_modules/js-tokens\": {\n \"version\": \"9.0.1\",\n \"resolved\": \"https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz\",\n \"integrity\": \"sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/supports-color\": {\n \"version\": \"8.1.1\",\n \"resolved\": \"https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz\",\n \"integrity\": \"sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"has-flag\": \"^4.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/supports-color?sponsor=1\"\n }\n },\n \"node_modules/tinybench\": {\n \"version\": \"2.9.0\",\n \"resolved\": \"https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz\",\n \"integrity\": \"sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/tinypool\": {\n \"version\": \"0.8.4\",\n \"resolved\": \"https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz\",\n \"integrity\": \"sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tinyspy\": {\n \"version\": \"2.2.1\",\n \"resolved\": \"https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz\",\n \"integrity\": \"sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=14.0.0\"\n }\n },\n \"node_modules/tree-kill\": {\n \"version\": \"1.2.2\",\n \"resolved\": \"https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz\",\n \"integrity\": \"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"tree-kill\": \"cli.js\"\n }\n },\n \"node_modules/tslib\": {\n \"version\": \"2.8.1\",\n \"resolved\": \"https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz\",\n \"integrity\": \"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==\",\n \"dev\": true,\n \"license\": \"0BSD\"\n },\n \"node_modules/tsx\": {\n \"version\": \"4.20.3\",\n \"resolved\": \"https://registry.npmjs.org/tsx/-/tsx-4.20.3.tgz\",\n \"integrity\": \"sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"~0.25.0\",\n \"get-tsconfig\": \"^4.7.5\"\n },\n \"bin\": {\n \"tsx\": \"dist/cli.mjs\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n }\n },\n \"node_modules/type-detect\": {\n \"version\": \"4.1.0\",\n \"resolved\": \"https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz\",\n \"integrity\": \"sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=4\"\n }\n },\n \"node_modules/typescript\": {\n \"version\": \"5.8.3\",\n \"resolved\": \"https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz\",\n \"integrity\": \"sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==\",\n \"dev\": true,\n \"license\": \"Apache-2.0\",\n \"bin\": {\n \"tsc\": \"bin/tsc\",\n \"tsserver\": \"bin/tsserver\"\n },\n \"engines\": {\n \"node\": \">=14.17\"\n }\n },\n \"node_modules/ufo\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz\",\n \"integrity\": \"sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/undici-types\": {\n \"version\": \"6.21.0\",\n \"resolved\": \"https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz\",\n \"integrity\": \"sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==\",\n \"dev\": true,\n \"license\": \"MIT\"\n },\n \"node_modules/update-browserslist-db\": {\n \"version\": \"1.1.3\",\n \"resolved\": \"https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz\",\n \"integrity\": \"sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==\",\n \"dev\": true,\n \"funding\": [\n {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/browserslist\"\n },\n {\n \"type\": \"tidelift\",\n \"url\": \"https://tidelift.com/funding/github/npm/browserslist\"\n },\n {\n \"type\": \"github\",\n \"url\": \"https://github.com/sponsors/ai\"\n }\n ],\n \"license\": \"MIT\",\n \"dependencies\": {\n \"escalade\": \"^3.2.0\",\n \"picocolors\": \"^1.1.1\"\n },\n \"bin\": {\n \"update-browserslist-db\": \"cli.js\"\n },\n \"peerDependencies\": {\n \"browserslist\": \">= 4.21.0\"\n }\n },\n \"node_modules/use-sync-external-store\": {\n \"version\": \"1.5.0\",\n \"resolved\": \"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz\",\n \"integrity\": \"sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==\",\n \"license\": \"MIT\",\n \"peerDependencies\": {\n \"react\": \"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0\"\n }\n },\n \"node_modules/vite\": {\n \"version\": \"5.4.19\",\n \"resolved\": \"https://registry.npmjs.org/vite/-/vite-5.4.19.tgz\",\n \"integrity\": \"sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"esbuild\": \"^0.21.3\",\n \"postcss\": \"^8.4.43\",\n \"rollup\": \"^4.20.0\"\n },\n \"bin\": {\n \"vite\": \"bin/vite.js\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://github.com/vitejs/vite?sponsor=1\"\n },\n \"optionalDependencies\": {\n \"fsevents\": \"~2.3.3\"\n },\n \"peerDependencies\": {\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"less\": \"*\",\n \"lightningcss\": \"^1.21.0\",\n \"sass\": \"*\",\n \"sass-embedded\": \"*\",\n \"stylus\": \"*\",\n \"sugarss\": \"*\",\n \"terser\": \"^5.4.0\"\n },\n \"peerDependenciesMeta\": {\n \"@types/node\": {\n \"optional\": true\n },\n \"less\": {\n \"optional\": true\n },\n \"lightningcss\": {\n \"optional\": true\n },\n \"sass\": {\n \"optional\": true\n },\n \"sass-embedded\": {\n \"optional\": true\n },\n \"stylus\": {\n \"optional\": true\n },\n \"sugarss\": {\n \"optional\": true\n },\n \"terser\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/vite-node\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/vite-node/-/vite-node-1.6.1.tgz\",\n \"integrity\": \"sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cac\": \"^6.7.14\",\n \"debug\": \"^4.3.4\",\n \"pathe\": \"^1.1.1\",\n \"picocolors\": \"^1.0.0\",\n \"vite\": \"^5.0.0\"\n },\n \"bin\": {\n \"vite-node\": \"vite-node.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/aix-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"aix\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/android-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"android\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/darwin-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"darwin\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/freebsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"freebsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz\",\n \"integrity\": \"sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==\",\n \"cpu\": [\n \"arm\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-loong64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz\",\n \"integrity\": \"sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==\",\n \"cpu\": [\n \"loong64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-mips64el\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz\",\n \"integrity\": \"sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==\",\n \"cpu\": [\n \"mips64el\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-ppc64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz\",\n \"integrity\": \"sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==\",\n \"cpu\": [\n \"ppc64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-riscv64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz\",\n \"integrity\": \"sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==\",\n \"cpu\": [\n \"riscv64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-s390x\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz\",\n \"integrity\": \"sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==\",\n \"cpu\": [\n \"s390x\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/linux-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"linux\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/netbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"netbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/openbsd-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"openbsd\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/sunos-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"sunos\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-arm64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz\",\n \"integrity\": \"sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==\",\n \"cpu\": [\n \"arm64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-ia32\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz\",\n \"integrity\": \"sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==\",\n \"cpu\": [\n \"ia32\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/@esbuild/win32-x64\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz\",\n \"integrity\": \"sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==\",\n \"cpu\": [\n \"x64\"\n ],\n \"dev\": true,\n \"license\": \"MIT\",\n \"optional\": true,\n \"os\": [\n \"win32\"\n ],\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/vite/node_modules/esbuild\": {\n \"version\": \"0.21.5\",\n \"resolved\": \"https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz\",\n \"integrity\": \"sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==\",\n \"dev\": true,\n \"hasInstallScript\": true,\n \"license\": \"MIT\",\n \"bin\": {\n \"esbuild\": \"bin/esbuild\"\n },\n \"engines\": {\n \"node\": \">=12\"\n },\n \"optionalDependencies\": {\n \"@esbuild/aix-ppc64\": \"0.21.5\",\n \"@esbuild/android-arm\": \"0.21.5\",\n \"@esbuild/android-arm64\": \"0.21.5\",\n \"@esbuild/android-x64\": \"0.21.5\",\n \"@esbuild/darwin-arm64\": \"0.21.5\",\n \"@esbuild/darwin-x64\": \"0.21.5\",\n \"@esbuild/freebsd-arm64\": \"0.21.5\",\n \"@esbuild/freebsd-x64\": \"0.21.5\",\n \"@esbuild/linux-arm\": \"0.21.5\",\n \"@esbuild/linux-arm64\": \"0.21.5\",\n \"@esbuild/linux-ia32\": \"0.21.5\",\n \"@esbuild/linux-loong64\": \"0.21.5\",\n \"@esbuild/linux-mips64el\": \"0.21.5\",\n \"@esbuild/linux-ppc64\": \"0.21.5\",\n \"@esbuild/linux-riscv64\": \"0.21.5\",\n \"@esbuild/linux-s390x\": \"0.21.5\",\n \"@esbuild/linux-x64\": \"0.21.5\",\n \"@esbuild/netbsd-x64\": \"0.21.5\",\n \"@esbuild/openbsd-x64\": \"0.21.5\",\n \"@esbuild/sunos-x64\": \"0.21.5\",\n \"@esbuild/win32-arm64\": \"0.21.5\",\n \"@esbuild/win32-ia32\": \"0.21.5\",\n \"@esbuild/win32-x64\": \"0.21.5\"\n }\n },\n \"node_modules/vitest\": {\n \"version\": \"1.6.1\",\n \"resolved\": \"https://registry.npmjs.org/vitest/-/vitest-1.6.1.tgz\",\n \"integrity\": \"sha512-Ljb1cnSJSivGN0LqXd/zmDbWEM0RNNg2t1QW/XUhYl/qPqyu7CsqeWtqQXHVaJsecLPuDoak2oJcZN2QoRIOag==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@vitest/expect\": \"1.6.1\",\n \"@vitest/runner\": \"1.6.1\",\n \"@vitest/snapshot\": \"1.6.1\",\n \"@vitest/spy\": \"1.6.1\",\n \"@vitest/utils\": \"1.6.1\",\n \"acorn-walk\": \"^8.3.2\",\n \"chai\": \"^4.3.10\",\n \"debug\": \"^4.3.4\",\n \"execa\": \"^8.0.1\",\n \"local-pkg\": \"^0.5.0\",\n \"magic-string\": \"^0.30.5\",\n \"pathe\": \"^1.1.1\",\n \"picocolors\": \"^1.0.0\",\n \"std-env\": \"^3.5.0\",\n \"strip-literal\": \"^2.0.0\",\n \"tinybench\": \"^2.5.1\",\n \"tinypool\": \"^0.8.3\",\n \"vite\": \"^5.0.0\",\n \"vite-node\": \"1.6.1\",\n \"why-is-node-running\": \"^2.2.2\"\n },\n \"bin\": {\n \"vitest\": \"vitest.mjs\"\n },\n \"engines\": {\n \"node\": \"^18.0.0 || >=20.0.0\"\n },\n \"funding\": {\n \"url\": \"https://opencollective.com/vitest\"\n },\n \"peerDependencies\": {\n \"@edge-runtime/vm\": \"*\",\n \"@types/node\": \"^18.0.0 || >=20.0.0\",\n \"@vitest/browser\": \"1.6.1\",\n \"@vitest/ui\": \"1.6.1\",\n \"happy-dom\": \"*\",\n \"jsdom\": \"*\"\n },\n \"peerDependenciesMeta\": {\n \"@edge-runtime/vm\": {\n \"optional\": true\n },\n \"@types/node\": {\n \"optional\": true\n },\n \"@vitest/browser\": {\n \"optional\": true\n },\n \"@vitest/ui\": {\n \"optional\": true\n },\n \"happy-dom\": {\n \"optional\": true\n },\n \"jsdom\": {\n \"optional\": true\n }\n }\n },\n \"node_modules/which\": {\n \"version\": \"2.0.2\",\n \"resolved\": \"https://registry.npmjs.org/which/-/which-2.0.2.tgz\",\n \"integrity\": \"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"dependencies\": {\n \"isexe\": \"^2.0.0\"\n },\n \"bin\": {\n \"node-which\": \"bin/node-which\"\n },\n \"engines\": {\n \"node\": \">= 8\"\n }\n },\n \"node_modules/why-is-node-running\": {\n \"version\": \"2.3.0\",\n \"resolved\": \"https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz\",\n \"integrity\": \"sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"siginfo\": \"^2.0.0\",\n \"stackback\": \"0.0.2\"\n },\n \"bin\": {\n \"why-is-node-running\": \"cli.js\"\n },\n \"engines\": {\n \"node\": \">=8\"\n }\n },\n \"node_modules/wrap-ansi\": {\n \"version\": \"7.0.0\",\n \"resolved\": \"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz\",\n \"integrity\": \"sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"ansi-styles\": \"^4.0.0\",\n \"string-width\": \"^4.1.0\",\n \"strip-ansi\": \"^6.0.0\"\n },\n \"engines\": {\n \"node\": \">=10\"\n },\n \"funding\": {\n \"url\": \"https://github.com/chalk/wrap-ansi?sponsor=1\"\n }\n },\n \"node_modules/y18n\": {\n \"version\": \"5.0.8\",\n \"resolved\": \"https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz\",\n \"integrity\": \"sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=10\"\n }\n },\n \"node_modules/yallist\": {\n \"version\": \"3.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz\",\n \"integrity\": \"sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==\",\n \"dev\": true,\n \"license\": \"ISC\"\n },\n \"node_modules/yargs\": {\n \"version\": \"17.7.2\",\n \"resolved\": \"https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz\",\n \"integrity\": \"sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"dependencies\": {\n \"cliui\": \"^8.0.1\",\n \"escalade\": \"^3.1.1\",\n \"get-caller-file\": \"^2.0.5\",\n \"require-directory\": \"^2.1.1\",\n \"string-width\": \"^4.2.3\",\n \"y18n\": \"^5.0.5\",\n \"yargs-parser\": \"^21.1.1\"\n },\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yargs-parser\": {\n \"version\": \"21.1.1\",\n \"resolved\": \"https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz\",\n \"integrity\": \"sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==\",\n \"dev\": true,\n \"license\": \"ISC\",\n \"engines\": {\n \"node\": \">=12\"\n }\n },\n \"node_modules/yocto-queue\": {\n \"version\": \"1.2.1\",\n \"resolved\": \"https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz\",\n \"integrity\": \"sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==\",\n \"dev\": true,\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=12.20\"\n },\n \"funding\": {\n \"url\": \"https://github.com/sponsors/sindresorhus\"\n }\n },\n \"node_modules/zod\": {\n \"version\": \"3.25.76\",\n \"resolved\": \"https://registry.npmjs.org/zod/-/zod-3.25.76.tgz\",\n \"integrity\": \"sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==\",\n \"license\": \"MIT\",\n \"peer\": true,\n \"funding\": {\n \"url\": \"https://github.com/sponsors/colinhacks\"\n }\n }\n }\n}\n",
+ "package.json": "{\n \"name\": \"example-stream\",\n \"version\": \"1.0.0\",\n \"type\": \"module\",\n \"scripts\": {\n \"dev\": \"concurrently \\\"tsx --watch src/backend/server.ts\\\" \\\"vite\\\"\",\n \"build\": \"vite build\",\n \"preview\": \"vite preview\",\n \"check-types\": \"tsc --noEmit\",\n \"test\": \"vitest\"\n },\n \"dependencies\": {\n \"rivetkit\": \"^0.9.1\",\n \"@rivetkit/react\": \"^0.9.1\",\n \"react\": \"^18.2.0\",\n \"react-dom\": \"^18.2.0\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^20.0.0\",\n \"@types/react\": \"^18.2.0\",\n \"@types/react-dom\": \"^18.2.0\",\n \"@vitejs/plugin-react\": \"^4.0.0\",\n \"concurrently\": \"^8.2.0\",\n \"tsx\": \"^4.0.0\",\n \"typescript\": \"^5.0.0\",\n \"vite\": \"^5.0.0\",\n \"vitest\": \"^1.0.0\"\n }\n}\n",
"tsconfig.json": "{\n \"compilerOptions\": {\n \"target\": \"ES2020\",\n \"lib\": [\"ES2020\", \"DOM\", \"DOM.Iterable\"],\n \"module\": \"ESNext\",\n \"skipLibCheck\": true,\n \"moduleResolution\": \"bundler\",\n \"allowImportingTsExtensions\": true,\n \"resolveJsonModule\": true,\n \"isolatedModules\": true,\n \"noEmit\": true,\n \"jsx\": \"react-jsx\",\n \"strict\": true,\n \"noUnusedLocals\": true,\n \"noUnusedParameters\": true,\n \"noFallthroughCasesInSwitch\": true\n },\n \"include\": [\"src\", \"tests\"],\n \"exclude\": [\"node_modules\", \"dist\"]\n}\n",
"vite.config.ts": "import react from \"@vitejs/plugin-react\";\nimport { defineConfig } from \"vite\";\n\nexport default defineConfig({\n\tplugins: [react()],\n\troot: \"src/frontend\",\n\tserver: {\n\t\tport: 3000,\n\t},\n\tbuild: {\n\t\toutDir: \"../../dist\",\n\t\temptyOutDir: true,\n\t},\n});\n",
"vitest.config.ts": "import { defineConfig } from \"vitest/config\";\n\nexport default defineConfig({\n\ttest: {\n\t\tenvironment: \"node\",\n\t},\n});\n",
"src/frontend/App.tsx": "import { createClient, createRivetKit } from \"@rivetkit/react\";\nimport { useEffect, useState } from \"react\";\nimport type { registry } from \"../backend/registry\";\n\nconst client = createClient(\"http://localhost:8080\");\nconst { useActor } = createRivetKit(client);\n\nexport function App() {\n\tconst [topValues, setTopValues] = useState([]);\n\tconst [newValue, setNewValue] = useState(0);\n\tconst [totalCount, setTotalCount] = useState(0);\n\tconst [highestValue, setHighestValue] = useState(null);\n\n\tconst streamProcessor = useActor({\n\t\tname: \"streamProcessor\",\n\t\tkey: [\"global\"],\n\t});\n\n\t// Load initial stats\n\tuseEffect(() => {\n\t\tif (streamProcessor.connection) {\n\t\t\tstreamProcessor.connection.getStats().then((stats) => {\n\t\t\t\tsetTopValues(stats.topValues);\n\t\t\t\tsetTotalCount(stats.totalCount);\n\t\t\t\tsetHighestValue(stats.highestValue);\n\t\t\t});\n\t\t}\n\t}, [streamProcessor.connection]);\n\n\t// Listen for updates from other clients\n\tstreamProcessor.useEvent(\"updated\", ({ topValues, totalCount, highestValue }: {\n\t\ttopValues: number[];\n\t\ttotalCount: number;\n\t\thighestValue: number | null;\n\t}) => {\n\t\tsetTopValues(topValues);\n\t\tsetTotalCount(totalCount);\n\t\tsetHighestValue(highestValue);\n\t});\n\n\t// Add a new value to the stream\n\tconst handleAddValue = async () => {\n\t\tif (streamProcessor.connection && !isNaN(newValue)) {\n\t\t\tawait streamProcessor.connection.addValue(newValue);\n\t\t\tsetNewValue(0);\n\t\t}\n\t};\n\n\t// Reset the stream\n\tconst handleReset = async () => {\n\t\tif (streamProcessor.connection) {\n\t\t\tconst result = await streamProcessor.connection.reset();\n\t\t\tsetTopValues(result.topValues);\n\t\t\tsetTotalCount(result.totalCount);\n\t\t\tsetHighestValue(result.highestValue);\n\t\t}\n\t};\n\n\t// Handle form submission\n\tconst handleSubmit = (e: React.FormEvent) => {\n\t\te.preventDefault();\n\t\thandleAddValue();\n\t};\n\n\t// Handle random value generation\n\tconst handleRandomValue = () => {\n\t\tconst randomValue = Math.floor(Math.random() * 1000) + 1;\n\t\tsetNewValue(randomValue);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tStream Processor
\n\t\t\t\tReal-time top-3 value tracking with RivetKit
\n\t\t\t\n\n\t\t\t\n\t\t\t\tHow it works
\n\t\t\t\t\n\t\t\t\t\tThis stream processor maintains the top 3 highest values in real-time. \n\t\t\t\t\tAdd numbers and watch as the system automatically keeps track of the highest values. \n\t\t\t\t\tAll connected clients see updates immediately when new values are added.\n\t\t\t\t
\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t🏆 Top 3 Values
\n\t\t\t\t\t\t{topValues.length === 0 ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tNo values added yet.
\n\t\t\t\t\t\t\t\tAdd some numbers to get started!\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\ttopValues.map((value, index) => (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t#{index + 1}\n\t\t\t\t\t\t\t\t\t{value.toLocaleString()}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t))\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{totalCount}\n\t\t\t\t\tTotal Values\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{highestValue?.toLocaleString() || \"—\"}\n\t\t\t\t\tHighest Value\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{topValues.length}\n\t\t\t\t\tTop Values Count\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}",
"src/frontend/main.tsx": "import { StrictMode } from \"react\";\nimport { createRoot } from \"react-dom/client\";\nimport { App } from \"./App\";\n\nconst root = document.getElementById(\"root\");\nif (!root) throw new Error(\"Root element not found\");\n\ncreateRoot(root).render(\n\t\n\t\t \n\t \n);",
"src/frontend/index.html": "\n\n\n \n \n Stream Processor - RivetKit \n \n\n\n \n \n\n",
- "src/backend/registry.ts": "import { actor, setup } from \"@rivetkit/actor\";\n\nexport type StreamState = {\n\ttopValues: number[];\n};\n\nconst streamProcessor = actor({\n\tonAuth: () => {},\n\t// Persistent state that survives restarts: https://rivet.gg/docs/actors/state\n\tstate: {\n\t\ttopValues: [] as number[],\n\t\ttotalValues: 0,\n\t},\n\n\tactions: {\n\t\t// Callable functions from clients: https://rivet.gg/docs/actors/actions\n\t\tgetTopValues: (c) => c.state.topValues,\n\n\t\tgetStats: (c) => ({\n\t\t\ttopValues: c.state.topValues,\n\t\t\ttotalCount: c.state.totalValues,\n\t\t\thighestValue: c.state.topValues.length > 0 ? c.state.topValues[0] : null,\n\t\t}),\n\n\t\taddValue: (c, value: number) => {\n\t\t\t// State changes are automatically persisted\n\t\t\tc.state.totalValues++;\n\n\t\t\t// Insert new value if needed\n\t\t\tconst insertAt = c.state.topValues.findIndex((v) => value > v);\n\t\t\tif (insertAt === -1 && c.state.topValues.length < 3) {\n\t\t\t\t// Add to end if not better than existing values but we have space\n\t\t\t\tc.state.topValues.push(value);\n\t\t\t} else if (insertAt !== -1) {\n\t\t\t\t// Insert at the correct position\n\t\t\t\tc.state.topValues.splice(insertAt, 0, value);\n\t\t\t}\n\n\t\t\t// Keep only top 3\n\t\t\tif (c.state.topValues.length > 3) {\n\t\t\t\tc.state.topValues.length = 3;\n\t\t\t}\n\n\t\t\t// Sort descending to ensure correct order\n\t\t\tc.state.topValues.sort((a, b) => b - a);\n\n\t\t\tconst result = {\n\t\t\t\ttopValues: c.state.topValues,\n\t\t\t\ttotalCount: c.state.totalValues,\n\t\t\t\thighestValue:\n\t\t\t\t\tc.state.topValues.length > 0 ? c.state.topValues[0] : null,\n\t\t\t};\n\n\t\t\t// Send events to all connected clients: https://rivet.gg/docs/actors/events\n\t\t\tc.broadcast(\"updated\", result);\n\n\t\t\treturn c.state.topValues;\n\t\t},\n\n\t\treset: (c) => {\n\t\t\tc.state.topValues = [];\n\t\t\tc.state.totalValues = 0;\n\n\t\t\tconst result = {\n\t\t\t\ttopValues: c.state.topValues,\n\t\t\t\ttotalCount: c.state.totalValues,\n\t\t\t\thighestValue: null,\n\t\t\t};\n\n\t\t\tc.broadcast(\"updated\", result);\n\n\t\t\treturn result;\n\t\t},\n\t},\n});\n\n// Register actors for use: https://rivet.gg/docs/setup\nexport const registry = setup({\n\tuse: { streamProcessor },\n});\n",
+ "src/backend/registry.ts": "import { actor, setup } from \"rivetkit\";\n\nexport type StreamState = {\n\ttopValues: number[];\n};\n\nconst streamProcessor = actor({\n\tonAuth: () => {},\n\t// Persistent state that survives restarts: https://rivet.gg/docs/actors/state\n\tstate: {\n\t\ttopValues: [] as number[],\n\t\ttotalValues: 0,\n\t},\n\n\tactions: {\n\t\t// Callable functions from clients: https://rivet.gg/docs/actors/actions\n\t\tgetTopValues: (c) => c.state.topValues,\n\n\t\tgetStats: (c) => ({\n\t\t\ttopValues: c.state.topValues,\n\t\t\ttotalCount: c.state.totalValues,\n\t\t\thighestValue: c.state.topValues.length > 0 ? c.state.topValues[0] : null,\n\t\t}),\n\n\t\taddValue: (c, value: number) => {\n\t\t\t// State changes are automatically persisted\n\t\t\tc.state.totalValues++;\n\n\t\t\t// Insert new value if needed\n\t\t\tconst insertAt = c.state.topValues.findIndex((v) => value > v);\n\t\t\tif (insertAt === -1 && c.state.topValues.length < 3) {\n\t\t\t\t// Add to end if not better than existing values but we have space\n\t\t\t\tc.state.topValues.push(value);\n\t\t\t} else if (insertAt !== -1) {\n\t\t\t\t// Insert at the correct position\n\t\t\t\tc.state.topValues.splice(insertAt, 0, value);\n\t\t\t}\n\n\t\t\t// Keep only top 3\n\t\t\tif (c.state.topValues.length > 3) {\n\t\t\t\tc.state.topValues.length = 3;\n\t\t\t}\n\n\t\t\t// Sort descending to ensure correct order\n\t\t\tc.state.topValues.sort((a, b) => b - a);\n\n\t\t\tconst result = {\n\t\t\t\ttopValues: c.state.topValues,\n\t\t\t\ttotalCount: c.state.totalValues,\n\t\t\t\thighestValue:\n\t\t\t\t\tc.state.topValues.length > 0 ? c.state.topValues[0] : null,\n\t\t\t};\n\n\t\t\t// Send events to all connected clients: https://rivet.gg/docs/actors/events\n\t\t\tc.broadcast(\"updated\", result);\n\n\t\t\treturn c.state.topValues;\n\t\t},\n\n\t\treset: (c) => {\n\t\t\tc.state.topValues = [];\n\t\t\tc.state.totalValues = 0;\n\n\t\t\tconst result = {\n\t\t\t\ttopValues: c.state.topValues,\n\t\t\t\ttotalCount: c.state.totalValues,\n\t\t\t\thighestValue: null,\n\t\t\t};\n\n\t\t\tc.broadcast(\"updated\", result);\n\n\t\t\treturn result;\n\t\t},\n\t},\n});\n\n// Register actors for use: https://rivet.gg/docs/setup\nexport const registry = setup({\n\tuse: { streamProcessor },\n});\n",
"src/backend/server.ts": "import { registry } from \"./registry\";\n\nregistry.runServer({\n\tcors: {\n\t\torigin: \"*\",\n\t},\n});\n"
}
}
diff --git a/site/src/posts/2025-03-23-what-would-a-w3c-standard-look-like-for-stateful-serverless-/page.mdx b/site/src/posts/2025-03-23-what-would-a-w3c-standard-look-like-for-stateful-serverless-/page.mdx
index 6126cc4ed0..f3131ebdef 100644
--- a/site/src/posts/2025-03-23-what-would-a-w3c-standard-look-like-for-stateful-serverless-/page.mdx
+++ b/site/src/posts/2025-03-23-what-would-a-w3c-standard-look-like-for-stateful-serverless-/page.mdx
@@ -201,7 +201,7 @@ At Rivet, we also manage a framework called [RivetKit](https://github.com/rivet-
A Rivet Actor definition looks something like this:
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const chatRoom = actor({
state: { messages: [] },
@@ -387,7 +387,7 @@ export class Counter {
```typescript {{ "title": "RivetKit" }}
// client.js - Client side
-import { createClient } from '@rivetkit/actor';
+import { createClient } from 'rivetkit';
const client = createClient();
const counter = await client.counter.get('counter-1');
@@ -395,7 +395,7 @@ const result = await counter.increment(5);
console.log('Counter:', result);
// counter.js - Actor definition
-import { actor } from '@rivetkit/actor';
+import { actor } from 'rivetkit';
export const counter = actor({
state: { value: 0 },
diff --git a/site/src/posts/2025-07-01-introducing-rivetkit-backend-libraries-that-replace-saas/page.mdx b/site/src/posts/2025-07-01-introducing-rivetkit-backend-libraries-that-replace-saas/page.mdx
index ffeb84166a..e7ca42a0c0 100644
--- a/site/src/posts/2025-07-01-introducing-rivetkit-backend-libraries-that-replace-saas/page.mdx
+++ b/site/src/posts/2025-07-01-introducing-rivetkit-backend-libraries-that-replace-saas/page.mdx
@@ -34,7 +34,7 @@ Our decision to launch RivetKit as a library was underpinned by the following co
-### With @rivetkit/actors: Just A Library & Your Database
+### With rivetkits: Just A Library & Your Database
@@ -58,7 +58,7 @@ Rivet Actors excel at:
A simple Rivet actor that combines persistence & realtime looks like this:
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
const chatRoom = actor({
// FEATURE: Durable state
@@ -119,7 +119,7 @@ npx @actor-core/cli dev
Now, RivetKit is a lightweight library that can be integrated in to your existing backend like this:
```typescript
-import { actor, setup } from "@rivetkit/actor";
+import { actor, setup } from "rivetkit";
// Setup actors
const myActor = actor(/* ... */);
@@ -188,7 +188,7 @@ The new `onAuth` lifecycle hook provides a way to handle authentication to actor
For example:
```typescript
-import { actor, Unauthorized } from "@rivetkit/actor";
+import { actor, Unauthorized } from "rivetkit";
const chatRoom = actor({
// NEW: Auth hook
@@ -245,7 +245,7 @@ See the [RivetKit + Better Auth integration](/docs/integrations/better-auth).
Actors can now communicate with each other by using the client in the context. For example:
```typescript
-import { actor } from "@rivetkit/actor";
+import { actor } from "rivetkit";
import type { registry } from "./registry";
export const orderProcessor = actor({