From d4e85a5b88119d48c353ce9d54ff1381dd37c5bd Mon Sep 17 00:00:00 2001 From: Muhammad Amin Saffari Taheri Date: Sat, 16 May 2026 09:22:20 +0330 Subject: [PATCH 1/4] Solidjs support. Initial work. --- Cargo.lock | 9 + Cargo.toml | 34 +- crates/bindings-typescript/package.json | 10 + .../src/solid/SpacetimeDBProvider.ts | 97 + .../src/solid/connection_state.ts | 6 + crates/bindings-typescript/src/solid/index.ts | 5 + .../src/solid/useProcedure.ts | 57 + .../src/solid/useReducer.ts | 50 + .../src/solid/useSpacetimeDB.ts | 18 + .../bindings-typescript/src/solid/useTable.ts | 209 ++ .../test-solid-router/README.md | 43 + .../test-solid-router/index.html | 15 + .../test-solid-router/package-lock.json | 2772 +++++++++++++++++ .../test-solid-router/package.json | 31 + .../test-solid-router/postcss.config.js | 5 + .../test-solid-router/server/.gitignore | 17 + .../test-solid-router/server/Cargo.toml | 14 + .../test-solid-router/server/src/lib.rs | 80 + .../test-solid-router/spacetime.json | 6 + .../test-solid-router/spacetime.local.json | 3 + .../test-solid-router/src/app.tsx | 41 + .../test-solid-router/src/errors/404.tsx | 8 + .../test-solid-router/src/index.css | 19 + .../test-solid-router/src/index.tsx | 51 + .../module_bindings/clear_counter_reducer.ts | 13 + .../client_connected_reducer.ts | 13 + .../client_disconnected_reducer.ts | 13 + .../src/module_bindings/counter_table.ts | 16 + .../src/module_bindings/counter_type.ts | 16 + .../increment_counter_reducer.ts | 13 + .../src/module_bindings/index.ts | 182 ++ .../src/module_bindings/offline_user_table.ts | 16 + .../src/module_bindings/types/index.ts | 13 + .../src/module_bindings/types/procedures.ts | 8 + .../src/module_bindings/types/reducers.ts | 13 + .../src/module_bindings/user_table.ts | 16 + .../src/module_bindings/user_type.ts | 16 + .../test-solid-router/src/pages/UserPage.tsx | 33 + .../test-solid-router/src/pages/home.tsx | 38 + .../test-solid-router/src/routes.ts | 20 + .../test-solid-router/tsconfig.json | 20 + .../test-solid-router/vite.config.ts | 13 + crates/bindings-typescript/tsup.config.ts | 32 + pnpm-lock.yaml | 706 +++-- 44 files changed, 4564 insertions(+), 246 deletions(-) create mode 100644 crates/bindings-typescript/src/solid/SpacetimeDBProvider.ts create mode 100644 crates/bindings-typescript/src/solid/connection_state.ts create mode 100644 crates/bindings-typescript/src/solid/index.ts create mode 100644 crates/bindings-typescript/src/solid/useProcedure.ts create mode 100644 crates/bindings-typescript/src/solid/useReducer.ts create mode 100644 crates/bindings-typescript/src/solid/useSpacetimeDB.ts create mode 100644 crates/bindings-typescript/src/solid/useTable.ts create mode 100644 crates/bindings-typescript/test-solid-router/README.md create mode 100644 crates/bindings-typescript/test-solid-router/index.html create mode 100644 crates/bindings-typescript/test-solid-router/package-lock.json create mode 100644 crates/bindings-typescript/test-solid-router/package.json create mode 100644 crates/bindings-typescript/test-solid-router/postcss.config.js create mode 100644 crates/bindings-typescript/test-solid-router/server/.gitignore create mode 100644 crates/bindings-typescript/test-solid-router/server/Cargo.toml create mode 100644 crates/bindings-typescript/test-solid-router/server/src/lib.rs create mode 100644 crates/bindings-typescript/test-solid-router/spacetime.json create mode 100644 crates/bindings-typescript/test-solid-router/spacetime.local.json create mode 100644 crates/bindings-typescript/test-solid-router/src/app.tsx create mode 100644 crates/bindings-typescript/test-solid-router/src/errors/404.tsx create mode 100644 crates/bindings-typescript/test-solid-router/src/index.css create mode 100644 crates/bindings-typescript/test-solid-router/src/index.tsx create mode 100644 crates/bindings-typescript/test-solid-router/src/module_bindings/clear_counter_reducer.ts create mode 100644 crates/bindings-typescript/test-solid-router/src/module_bindings/client_connected_reducer.ts create mode 100644 crates/bindings-typescript/test-solid-router/src/module_bindings/client_disconnected_reducer.ts create mode 100644 crates/bindings-typescript/test-solid-router/src/module_bindings/counter_table.ts create mode 100644 crates/bindings-typescript/test-solid-router/src/module_bindings/counter_type.ts create mode 100644 crates/bindings-typescript/test-solid-router/src/module_bindings/increment_counter_reducer.ts create mode 100644 crates/bindings-typescript/test-solid-router/src/module_bindings/index.ts create mode 100644 crates/bindings-typescript/test-solid-router/src/module_bindings/offline_user_table.ts create mode 100644 crates/bindings-typescript/test-solid-router/src/module_bindings/types/index.ts create mode 100644 crates/bindings-typescript/test-solid-router/src/module_bindings/types/procedures.ts create mode 100644 crates/bindings-typescript/test-solid-router/src/module_bindings/types/reducers.ts create mode 100644 crates/bindings-typescript/test-solid-router/src/module_bindings/user_table.ts create mode 100644 crates/bindings-typescript/test-solid-router/src/module_bindings/user_type.ts create mode 100644 crates/bindings-typescript/test-solid-router/src/pages/UserPage.tsx create mode 100644 crates/bindings-typescript/test-solid-router/src/pages/home.tsx create mode 100644 crates/bindings-typescript/test-solid-router/src/routes.ts create mode 100644 crates/bindings-typescript/test-solid-router/tsconfig.json create mode 100644 crates/bindings-typescript/test-solid-router/vite.config.ts diff --git a/Cargo.lock b/Cargo.lock index 151a10a774a..587ffa4211f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10087,6 +10087,15 @@ dependencies = [ "spacetimedb 2.2.0", ] +[[package]] +name = "typescript-test-solid-router-app" +version = "0.1.0" +dependencies = [ + "anyhow", + "log", + "spacetimedb 2.2.0", +] + [[package]] name = "ucd-trie" version = "0.1.7" diff --git a/Cargo.toml b/Cargo.toml index d1488e186df..dde87f037d7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -69,6 +69,7 @@ members = [ "tools/xtask-llm-benchmark", "crates/bindings-typescript/test-app/server", "crates/bindings-typescript/test-react-router-app/server", + "crates/bindings-typescript/test-solid-router/server", "crates/query-builder", ] default-members = ["crates/cli", "crates/standalone", "crates/update"] @@ -179,10 +180,16 @@ colored = "2.0.0" console = { version = "0.15.6" } convert_case = "0.6.0" crc32c = "0.6.4" -criterion = { version = "0.5.1", features = ["async", "async_tokio", "html_reports"] } +criterion = { version = "0.5.1", features = [ + "async", + "async_tokio", + "html_reports", +] } crossbeam-channel = "0.5" crossbeam-queue = "0.3.12" -cursive = { version = "0.20", default-features = false, features = ["crossterm-backend"] } +cursive = { version = "0.20", default-features = false, features = [ + "crossterm-backend", +] } decorum = { version = "0.3.1", default-features = false, features = ["std"] } derive_more = "0.99" dialoguer = { version = "0.11", default-features = false } @@ -205,14 +212,19 @@ futures-util = "0.3" getrandom02 = { package = "getrandom", version = "0.2" } git2 = "0.19" glob = "0.3.1" -hashbrown = { version = "0.16.1", default-features = false, features = ["equivalent", "inline-more", "rayon", "serde"] } +hashbrown = { version = "0.16.1", default-features = false, features = [ + "equivalent", + "inline-more", + "rayon", + "serde", +] } headers = "0.4" heck = "0.4" hex = "0.4.3" home = "0.5" hostname = "^0.3" http = "1.0" -http-body-util= "0.1.3" +http-body-util = "0.1.3" humantime = "2.3" hyper = "1.0" hyper-util = { version = "0.1", features = ["tokio"] } @@ -245,7 +257,10 @@ paste = "1.0" percent-encoding = "2.3" petgraph = { version = "0.6.5", default-features = false } pin-project-lite = "0.2.9" -pgwire = { version = "0.37", default-features = false, features = ["server-api", "pg-ext-types"] } +pgwire = { version = "0.37", default-features = false, features = [ + "server-api", + "pg-ext-types", +] } postgres-types = "0.2.5" pretty_assertions = { version = "1.4", features = ["unstable"] } proc-macro2 = "1.0" @@ -278,7 +293,10 @@ second-stack = "0.3" self-replace = "1.5" semver = "1" serde = { version = "1.0.136", features = ["derive"] } -serde_json = { version = "1.0.128", features = ["raw_value", "arbitrary_precision"] } +serde_json = { version = "1.0.128", features = [ + "raw_value", + "arbitrary_precision", +] } serde_path_to_error = "0.1.9" serde_with = { version = "3.3.0", features = ["base64", "hex"] } serial_test = "2.0.0" @@ -295,7 +313,9 @@ sqllogictest-engines = "0.17" sqlparser = "0.38.0" strum = { version = "0.25.0", features = ["derive"] } syn = { version = "2", features = ["full", "extra-traits"] } -syntect = { version = "5.0.0", default-features = false, features = ["default-fancy"] } +syntect = { version = "5.0.0", default-features = false, features = [ + "default-fancy", +] } tabled = "0.14.0" tar = "0.4" tempdir = "0.3.7" diff --git a/crates/bindings-typescript/package.json b/crates/bindings-typescript/package.json index c7bef474278..25ad8a02433 100644 --- a/crates/bindings-typescript/package.json +++ b/crates/bindings-typescript/package.json @@ -95,6 +95,12 @@ "import": "./dist/angular/index.mjs", "require": "./dist/angular/index.cjs", "default": "./dist/angular/index.mjs" + }, + "./solid": { + "types": "./dist/solid/index.d.ts", + "import": "./dist/solid/index.mjs", + "require": "./dist/solid/index.cjs", + "default": "./dist/solid/index.mjs" } }, "size-limit": [ @@ -189,6 +195,7 @@ "@angular/core": ">=17.0.0", "@tanstack/react-query": "^5.0.0", "react": "^18.0.0 || ^19.0.0-0 || ^19.0.0", + "solid-js": "^1.6.0", "svelte": "^4.0.0 || ^5.0.0", "undici": "^6.19.2", "vue": "^3.3.0" @@ -200,6 +207,9 @@ "react": { "optional": true }, + "solid-js": { + "optional": true + }, "svelte": { "optional": true }, diff --git a/crates/bindings-typescript/src/solid/SpacetimeDBProvider.ts b/crates/bindings-typescript/src/solid/SpacetimeDBProvider.ts new file mode 100644 index 00000000000..716596803ff --- /dev/null +++ b/crates/bindings-typescript/src/solid/SpacetimeDBProvider.ts @@ -0,0 +1,97 @@ +import { + DbConnectionBuilder, + type DbConnectionImpl, +} from '../sdk/db_connection_impl'; +import { createEffect, onCleanup, createMemo } from 'solid-js'; +import { createStore } from 'solid-js/store'; +import { SpacetimeDBContext } from './useSpacetimeDB'; +import type { ConnectionState } from './connection_state'; +import { ConnectionId } from '../lib/connection_id'; +import { + ConnectionManager, + type ConnectionState as ManagerConnectionState, +} from '../sdk/connection_manager'; + +export interface SpacetimeDBProviderProps< + DbConnection extends DbConnectionImpl, +> { + connectionBuilder: DbConnectionBuilder; + children?: any; +} + +export function SpacetimeDBProvider>( + props: SpacetimeDBProviderProps +) { + const uri = () => props.connectionBuilder.getUri(); + const moduleName = () => props.connectionBuilder.getModuleName(); + + const key = createMemo(() => ConnectionManager.getKey(uri(), moduleName())); + + const fallbackState: ManagerConnectionState = { + isActive: false, + identity: undefined, + token: undefined, + connectionId: ConnectionId.random(), + connectionError: undefined, + }; + + const [state, setState] = createStore(fallbackState); + + // Subscribe to ConnectionManager state changes + createEffect(() => { + const currentKey = key(); + + const unsubscribe = ConnectionManager.subscribe(currentKey, () => { + const snapshot = + ConnectionManager.getSnapshot(currentKey) ?? fallbackState; + setState(snapshot); + }); + + // Load initial snapshot + const snapshot = ConnectionManager.getSnapshot(currentKey) ?? fallbackState; + setState(snapshot); + + onCleanup(() => { + unsubscribe(); + }); + }); + + const getConnection = () => + ConnectionManager.getConnection(key()); + + const contextValue: ConnectionState = { + get isActive() { + return state.isActive; + }, + get identity() { + return state.identity; + }, + get token() { + return state.token; + }, + get connectionId() { + return state.connectionId; + }, + get connectionError() { + return state.connectionError; + }, + getConnection, + }; + + // Retain / release lifecycle + createEffect(() => { + const currentKey = key(); + ConnectionManager.retain(currentKey, props.connectionBuilder); + + onCleanup(() => { + ConnectionManager.release(currentKey); + }); + }); + + return SpacetimeDBContext.Provider({ + value: contextValue, + get children() { + return props.children; + }, + }); +} diff --git a/crates/bindings-typescript/src/solid/connection_state.ts b/crates/bindings-typescript/src/solid/connection_state.ts new file mode 100644 index 00000000000..5ad565f9be6 --- /dev/null +++ b/crates/bindings-typescript/src/solid/connection_state.ts @@ -0,0 +1,6 @@ +import type { DbConnectionImpl } from '../sdk/db_connection_impl'; +import type { ConnectionState as ManagerConnectionState } from '../sdk/connection_manager'; + +export type ConnectionState = ManagerConnectionState & { + getConnection(): DbConnectionImpl | null; +}; diff --git a/crates/bindings-typescript/src/solid/index.ts b/crates/bindings-typescript/src/solid/index.ts new file mode 100644 index 00000000000..3b3e64aba48 --- /dev/null +++ b/crates/bindings-typescript/src/solid/index.ts @@ -0,0 +1,5 @@ +export * from './SpacetimeDBProvider.ts'; +export { useSpacetimeDB } from './useSpacetimeDB.ts'; +export { useTable } from './useTable.ts'; +export { useReducer } from './useReducer.ts'; +export { useProcedure } from './useProcedure.ts'; diff --git a/crates/bindings-typescript/src/solid/useProcedure.ts b/crates/bindings-typescript/src/solid/useProcedure.ts new file mode 100644 index 00000000000..a5db86dc434 --- /dev/null +++ b/crates/bindings-typescript/src/solid/useProcedure.ts @@ -0,0 +1,57 @@ +import { createEffect } from 'solid-js'; +import type { UntypedProcedureDef } from '../sdk/procedures'; +import { useSpacetimeDB } from './useSpacetimeDB'; +import type { + ProcedureParamsType, + ProcedureReturnType, +} from '../sdk/type_utils'; + +export function useProcedure( + procedureDef: ProcedureDef +): ( + ...params: ProcedureParamsType +) => Promise> { + const { getConnection, isActive } = useSpacetimeDB(); + const procedureName = procedureDef.accessorName; + + // Holds calls made before the connection exists + const queue: { + params: ProcedureParamsType; + resolve: (val: any) => void; + reject: (err: unknown) => void; + }[] = []; + + // Flush when we finally have a connection + createEffect(() => { + if (!isActive) return; + + const conn = getConnection(); + if (!conn) return; + + const fn = (conn.procedures as any)[procedureName] as ( + ...p: ProcedureParamsType + ) => Promise>; + + if (queue.length) { + const pending = queue.splice(0); + for (const item of pending) { + fn(...item.params).then(item.resolve, item.reject); + } + } + }); + + return (...params: ProcedureParamsType) => { + const conn = getConnection(); + if (!conn) { + return new Promise>( + (resolve, reject) => { + queue.push({ params, resolve, reject }); + } + ); + } + const fn = (conn.procedures as any)[procedureName] as ( + ...p: ProcedureParamsType + ) => Promise>; + return fn(...params); + }; +} diff --git a/crates/bindings-typescript/src/solid/useReducer.ts b/crates/bindings-typescript/src/solid/useReducer.ts new file mode 100644 index 00000000000..c9a6968f4b1 --- /dev/null +++ b/crates/bindings-typescript/src/solid/useReducer.ts @@ -0,0 +1,50 @@ +import { createEffect } from 'solid-js'; +import type { UntypedReducerDef } from '../sdk/reducers'; +import { useSpacetimeDB } from './useSpacetimeDB'; +import type { ParamsType } from '../sdk'; + +export function useReducer( + reducerDef: ReducerDef +): (...params: ParamsType) => Promise { + const { getConnection, isActive } = useSpacetimeDB(); + const reducerName = reducerDef.accessorName; + + // Holds calls made before the connection exists + const queue: { + params: ParamsType; + resolve: () => void; + reject: (err: unknown) => void; + }[] = []; + + // Flush when we finally have a connection + createEffect(() => { + if (!isActive) return; + + const conn = getConnection(); + if (!conn) return; + + const fn = (conn.reducers as any)[reducerName] as ( + ...p: ParamsType + ) => Promise; + + if (queue.length) { + const pending = queue.splice(0); + for (const item of pending) { + fn(...item.params).then(item.resolve, item.reject); + } + } + }); + + return (...params: ParamsType) => { + const conn = getConnection(); + if (!conn) { + return new Promise((resolve, reject) => { + queue.push({ params, resolve, reject }); + }); + } + const fn = (conn.reducers as any)[reducerName] as ( + ...p: ParamsType + ) => Promise; + return fn(...params); + }; +} diff --git a/crates/bindings-typescript/src/solid/useSpacetimeDB.ts b/crates/bindings-typescript/src/solid/useSpacetimeDB.ts new file mode 100644 index 00000000000..4eed7c2d41c --- /dev/null +++ b/crates/bindings-typescript/src/solid/useSpacetimeDB.ts @@ -0,0 +1,18 @@ +import { createContext, useContext } from 'solid-js'; +import type { ConnectionState } from './connection_state'; + +export const SpacetimeDBContext = createContext( + undefined +); + +// Throws an error if used outside of a SpacetimeDBProvider +// Error is caught by other hooks like useTable so they can provide better error messages +export function useSpacetimeDB(): ConnectionState { + const context = useContext(SpacetimeDBContext) as ConnectionState | undefined; + if (!context) { + throw new Error( + 'useSpacetimeDB must be used within a SpacetimeDBProvider component. Did you forget to add a `SpacetimeDBProvider` to your component tree?' + ); + } + return context; +} diff --git a/crates/bindings-typescript/src/solid/useTable.ts b/crates/bindings-typescript/src/solid/useTable.ts new file mode 100644 index 00000000000..b10b25992a8 --- /dev/null +++ b/crates/bindings-typescript/src/solid/useTable.ts @@ -0,0 +1,209 @@ +import { createSignal, createEffect, onCleanup } from 'solid-js'; +import { useSpacetimeDB } from './useSpacetimeDB'; +import { type EventContextInterface } from '../sdk/db_connection_impl'; +import type { UntypedRemoteModule } from '../sdk/spacetime_module'; +import type { RowType, UntypedTableDef } from '../lib/table'; +import type { Prettify } from '../lib/type_util'; +import { + type Query, + type BooleanExpr, + toSql, + evaluateBooleanExpr, + getQueryAccessorName, + getQueryWhereClause, +} from '../lib/query'; + +export interface UseTableCallbacks { + onInsert?: (row: RowType) => void; + onDelete?: (row: RowType) => void; + onUpdate?: (oldRow: RowType, newRow: RowType) => void; + /** Whether the subscription is active. Defaults to `true`. */ + enabled?: boolean; +} + +type MembershipChange = 'enter' | 'leave' | 'stayIn' | 'stayOut'; + +function classifyMembership( + whereExpr: BooleanExpr | undefined, + oldRow: Record, + newRow: Record +): MembershipChange { + if (!whereExpr) return 'stayIn'; + const oldIn = evaluateBooleanExpr(whereExpr, oldRow); + const newIn = evaluateBooleanExpr(whereExpr, newRow); + if (oldIn && !newIn) return 'leave'; + if (!oldIn && newIn) return 'enter'; + if (oldIn && newIn) return 'stayIn'; + return 'stayOut'; +} + +/** + * SolidJS primitive to subscribe to a table in SpacetimeDB and receive live updates. + * + * Accepts a query builder expression as the first argument: + * - `tables.user` — subscribe to all rows + * - `tables.user.where(r => r.online.eq(true))` — subscribe with a filter + * + * @param query - A query builder expression (table reference or filtered query). + * @param callbacks - Optional callbacks for row insert, delete, and update events. + * @returns A tuple of [rows, isReady]. + * + * @example + * ```tsx + * const [rows, isReady] = useTable(tables.user); + * const [onlineUsers, isReady] = useTable( + * tables.user.where(r => r.online.eq(true)), + * { onInsert: (row) => console.log('New user:', row) } + * ); + * ``` + */ +export function useTable( + query: Query, + callbacks?: UseTableCallbacks>> +): [readonly Prettify>[], boolean] { + type UseTableRowType = RowType; + const enabled = callbacks?.enabled ?? true; + const accessorName = getQueryAccessorName(query); + const whereExpr = getQueryWhereClause(query); + const querySql = toSql(query); + + let connectionState: import('./connection_state').ConnectionState; + try { + connectionState = useSpacetimeDB(); + } catch { + throw new Error( + 'Could not find SpacetimeDB client! Did you forget to add a ' + + '`SpacetimeDBProvider`? `useTable` must be used in the SolidJS component tree ' + + 'under a `SpacetimeDBProvider` component.' + ); + } + + const [rows, setRows] = createSignal[]>( + [], + { equals: false } + ); + const [isReady, setIsReady] = createSignal(false); + + let latestTransactionEventId: string | null = null; + + const computeSnapshot = (): readonly Prettify[] => { + if (!enabled) { + return []; + } + const connection = connectionState.getConnection(); + if (!connection) { + return []; + } + const table = connection.db[accessorName]; + const result: readonly Prettify[] = whereExpr + ? (Array.from(table.iter()).filter(row => + evaluateBooleanExpr(whereExpr, row as Record) + ) as Prettify[]) + : (Array.from(table.iter()) as Prettify[]); + return result; + }; + + // Manage SQL subscription + createEffect(() => { + if (!enabled) { + setIsReady(false); + setRows([]); + return; + } + + const connection = connectionState.getConnection(); + if (!connectionState.isActive || !connection) return; + + const cancel = connection + .subscriptionBuilder() + .onApplied(() => { + setIsReady(true); + setRows(computeSnapshot()); + }) + .subscribe(querySql); + + onCleanup(() => { + cancel.unsubscribe(); + }); + }); + + // Bind to table events + createEffect(() => { + if (!enabled) return; + + const connection = connectionState.getConnection(); + if (!connectionState.isActive || !connection) return; + + const table = connection.db[accessorName]; + + const onInsert = ( + ctx: EventContextInterface, + row: any + ) => { + if (whereExpr && !evaluateBooleanExpr(whereExpr, row)) { + return; + } + callbacks?.onInsert?.(row); + if (ctx.event.id !== latestTransactionEventId) { + latestTransactionEventId = ctx.event.id; + setRows(computeSnapshot()); + } + }; + + const onDelete = ( + ctx: EventContextInterface, + row: any + ) => { + if (whereExpr && !evaluateBooleanExpr(whereExpr, row)) { + return; + } + callbacks?.onDelete?.(row); + if (ctx.event.id !== latestTransactionEventId) { + latestTransactionEventId = ctx.event.id; + setRows(computeSnapshot()); + } + }; + + const onUpdate = ( + ctx: EventContextInterface, + oldRow: any, + newRow: any + ) => { + const change = classifyMembership(whereExpr, oldRow, newRow); + + switch (change) { + case 'leave': + callbacks?.onDelete?.(oldRow); + break; + case 'enter': + callbacks?.onInsert?.(newRow); + break; + case 'stayIn': + callbacks?.onUpdate?.(oldRow, newRow); + break; + case 'stayOut': + return; // no-op + } + + if (ctx.event.id !== latestTransactionEventId) { + latestTransactionEventId = ctx.event.id; + setRows(computeSnapshot()); + } + }; + + table.onInsert(onInsert); + table.onDelete(onDelete); + table.onUpdate?.(onUpdate); + + // Load initial snapshot + setRows(computeSnapshot()); + + onCleanup(() => { + table.removeOnInsert(onInsert); + table.removeOnDelete(onDelete); + table.removeOnUpdate?.(onUpdate); + }); + }); + + return [rows(), isReady()]; +} diff --git a/crates/bindings-typescript/test-solid-router/README.md b/crates/bindings-typescript/test-solid-router/README.md new file mode 100644 index 00000000000..b4ba3d38ff2 --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/README.md @@ -0,0 +1,43 @@ +## Usage + +Those templates dependencies are maintained via [pnpm](https://pnpm.io) via `pnpm up -Lri`. + +This is the reason you see a `pnpm-lock.yaml`. That being said, any package manager will work. This file can be safely be removed once you clone a template. + +```bash +$ npm install # or pnpm install or yarn install +``` + +## Exploring the template + +This template's goal is to showcase the routing features of Solid. +It also showcase how the router and Suspense work together to parallelize data fetching tied to a route via the `.data.ts` pattern. + +You can learn more about it on the [`@solidjs/router` repository](https://github.com/solidjs/solid-router) + +### Learn more on the [Solid Website](https://solidjs.com) and come chat with us on our [Discord](https://discord.com/invite/solidjs) + +## Available Scripts + +In the project directory, you can run: + +### `npm run dev` or `npm start` + +Runs the app in the development mode.
+Open [http://localhost:3000](http://localhost:3000) to view it in the browser. + +The page will reload if you make edits.
+ +### `npm run build` + +Builds the app for production to the `dist` folder.
+It correctly bundles Solid in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.
+Your app is ready to be deployed! + +## Deployment + +You can deploy the `dist` folder to any static host provider (netlify, surge, now, etc.) + +## This project was created with the [Solid CLI](https://github.com/solidjs-community/solid-cli) diff --git a/crates/bindings-typescript/test-solid-router/index.html b/crates/bindings-typescript/test-solid-router/index.html new file mode 100644 index 00000000000..d31331b270d --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/index.html @@ -0,0 +1,15 @@ + + + + + + + SpacetimeDB Solid Router Example + + + +
+ + + + diff --git a/crates/bindings-typescript/test-solid-router/package-lock.json b/crates/bindings-typescript/test-solid-router/package-lock.json new file mode 100644 index 00000000000..47392943f76 --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/package-lock.json @@ -0,0 +1,2772 @@ +{ + "name": "@clockworklabs/test-solid-router", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@clockworklabs/test-solid-router", + "version": "0.0.1", + "license": "MIT", + "dependencies": { + "@solidjs/router": "^0.15.1", + "solid-js": "^1.9.5" + }, + "devDependencies": { + "@tailwindcss/postcss": "^4.1.13", + "postcss": "^8.4.49", + "solid-devtools": "^0.34.3", + "tailwindcss": "^4.1.13", + "vite": "^7.1.4", + "vite-plugin-solid": "^2.11.8" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.3.tgz", + "integrity": "sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", + "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.3.tgz", + "integrity": "sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", + "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", + "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", + "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", + "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", + "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", + "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", + "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", + "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", + "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", + "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", + "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", + "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", + "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", + "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", + "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", + "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", + "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", + "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", + "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", + "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", + "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", + "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", + "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", + "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", + "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", + "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", + "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", + "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nothing-but/utils": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@nothing-but/utils/-/utils-0.17.0.tgz", + "integrity": "sha512-TuCHcHLOqDL0SnaAxACfuRHBNRgNJcNn9X0GiH5H3YSDBVquCr3qEIG3FOQAuMyZCbu9w8nk2CHhOsn7IvhIwQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.4.tgz", + "integrity": "sha512-F5QXMSiFebS9hKZj02XhWLLnRpJ3B3AROP0tWbFBSj+6kCbg5m9j5JoHKd4mmSVy5mS/IMQloYgYxCuJC0fxEQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.4.tgz", + "integrity": "sha512-GxxTKApUpzRhof7poWvCJHRF51C67u1R7D6DiluBE8wKU1u5GWE8t+v81JvJYtbawoBFX1hLv5Ei4eVjkWokaw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.4.tgz", + "integrity": "sha512-tua0TaJxMOB1R0V0RS1jFZ/RpURFDJIOR2A6jWwQeawuFyS4gBW+rntLRaQd0EQ4bd6Vp44Z2rXW+YYDBsj6IA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.4.tgz", + "integrity": "sha512-CSKq7MsP+5PFIcydhAiR1K0UhEI1A2jWXVKHPCBZ151yOutENwvnPocgVHkivu2kviURtCEB6zUQw0vs8RrhMg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.4.tgz", + "integrity": "sha512-+O8OkVdyvXMtJEciu2wS/pzm1IxntEEQx3z5TAVy4l32G0etZn+RsA48ARRrFm6Ri8fvqPQfgrvNxSjKAbnd3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.4.tgz", + "integrity": "sha512-Iw3oMskH3AfNuhU0MSN7vNbdi4me/NiYo2azqPz/Le16zHSa+3RRmliCMWWQmh4lcndccU40xcJuTYJZxNo/lw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.4.tgz", + "integrity": "sha512-EIPRXTVQpHyF8WOo219AD2yEltPehLTcTMz2fn6JsatLYSzQf00hj3rulF+yauOlF9/FtM2WpkT/hJh/KJFGhA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.4.tgz", + "integrity": "sha512-J3Yh9PzzF1Ovah2At+lHiGQdsYgArxBbXv/zHfSyaiFQEqvNv7DcW98pCrmdjCZBrqBiKrKKe2V+aaSGWuBe/w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.4.tgz", + "integrity": "sha512-BFDEZMYfUvLn37ONE1yMBojPxnMlTFsdyNoqncT0qFq1mAfllL+ATMMJd8TeuVMiX84s1KbcxcZbXInmcO2mRg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.4.tgz", + "integrity": "sha512-pc9EYOSlOgdQ2uPl1o9PF6/kLSgaUosia7gOuS8mB69IxJvlclko1MECXysjs5ryez1/5zjYqx3+xYU0TU6R1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.4.tgz", + "integrity": "sha512-NxnomyxYerDh5n4iLrNa+sH+Z+U4BMEE46V2PgQ/hoB909i8gV1M5wPojWg9fk1jWpO3IQnOs20K4wyZuFLEFQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.4.tgz", + "integrity": "sha512-nbJnQ8a3z1mtmrwImCYhc6BGpThAyYVRQxw9uKSKG4wR6aAYno9sVjJ0zaZcW9BPJX1GbrDPf+SvdWjgTuDmnw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.4.tgz", + "integrity": "sha512-2EU6acNrQLd8tYvo/LXW535wupT3m6fo7HKo6lr7ktQoItxTyOL1ZCR/GfGCuXl2vR+zmfI6eRXkSemafv+iVg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.4.tgz", + "integrity": "sha512-WeBtoMuaMxiiIrO2IYP3xs6GMWkJP2C0EoT8beTLkUPmzV1i/UcOSVw1d5r9KBODtHKilG5yFxsGRnBbK3wJ4A==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.4.tgz", + "integrity": "sha512-FJHFfqpKUI3A10WrWKiFbBZ7yVbGT4q4B5o1qKFFojqpaYoh9LrQgqWCmmcxQzVSXYtyB5bzkXrYzlHTs21MYA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.4.tgz", + "integrity": "sha512-mcEl6CUT5IAUmQf1m9FYSmVqCJlpQ8r8eyftFUHG8i9OhY7BkBXSUdnLH5DOf0wCOjcP9v/QO93zpmF1SptCCw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.4.tgz", + "integrity": "sha512-ynt3JxVd2w2buzoKDWIyiV1pJW93xlQic1THVLXilz429oijRpSHivZAgp65KBu+cMcgf1eVVjdnTLvPxgCuoQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.4.tgz", + "integrity": "sha512-Boiz5+MsaROEWDf+GGEwF8VMHGhlUoQMtIPjOgA5fv4osupqTVnJteQNKJwUcnUog2G55jYXH7KZFFiJe0TEzQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.4.tgz", + "integrity": "sha512-+qfSY27qIrFfI/Hom04KYFw3GKZSGU4lXus51wsb5EuySfFlWRwjkKWoE9emgRw/ukoT4Udsj4W/+xxG8VbPKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.4.tgz", + "integrity": "sha512-VpTfOPHgVXEBeeR8hZ2O0F3aSso+JDWqTWmTmzcQKted54IAdUVbxE+j/MVxUsKa8L20HJhv3vUezVPoquqWjA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.4.tgz", + "integrity": "sha512-IPOsh5aRYuLv/nkU51X10Bf75Bsf6+gZdx1X+QP5QM6lIJFHHqbHLG0uJn/hWthzo13UAc2umiUorqZy3axoZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.4.tgz", + "integrity": "sha512-4QzE9E81OohJ/HKzHhsqU+zcYYojVOXlFMs1DdyMT6qXl/niOH7AVElmmEdUNHHS/oRkc++d5k6Vy85zFs0DEw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.4.tgz", + "integrity": "sha512-zTPgT1YuHHcd+Tmx7h8aml0FWFVelV5N54oHow9SLj+GfoDy/huQ+UV396N/C7KpMDMiPspRktzM1/0r1usYEA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.4.tgz", + "integrity": "sha512-DRS4G7mi9lJxqEDezIkKCaUIKCrLUUDCUaCsTPCi/rtqaC6D/jjwslMQyiDU50Ka0JKpeXeRBFBAXwArY52vBw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.4.tgz", + "integrity": "sha512-QVTUovf40zgTqlFVrKA1uXMVvU2QWEFWfAH8Wdc48IxLvrJMQVMBRjuQyUpzZCDkakImib9eVazbWlC6ksWtJw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@solid-devtools/debugger": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@solid-devtools/debugger/-/debugger-0.28.1.tgz", + "integrity": "sha512-6qIUI6VYkXoRnL8oF5bvh2KgH71qlJ18hNw/mwSyY6v48eb80ZR48/5PDXufUa3q+MBSuYa1uqTMwLewpay9eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nothing-but/utils": "~0.17.0", + "@solid-devtools/shared": "^0.20.0", + "@solid-primitives/bounds": "^0.1.1", + "@solid-primitives/event-listener": "^2.4.1", + "@solid-primitives/keyboard": "^1.3.1", + "@solid-primitives/rootless": "^1.5.1", + "@solid-primitives/scheduled": "^1.5.1", + "@solid-primitives/static-store": "^0.1.1", + "@solid-primitives/utils": "^6.3.1" + }, + "peerDependencies": { + "solid-js": "^1.9.0" + } + }, + "node_modules/@solid-devtools/shared": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@solid-devtools/shared/-/shared-0.20.0.tgz", + "integrity": "sha512-o5TACmUOQsxpzpOKCjbQqGk8wL8PMi+frXG9WNu4Lh3PQVUB6hs95Kl/S8xc++zwcMguUKZJn8h5URUiMOca6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nothing-but/utils": "~0.17.0", + "@solid-primitives/event-listener": "^2.4.1", + "@solid-primitives/media": "^2.3.1", + "@solid-primitives/refs": "^1.1.1", + "@solid-primitives/rootless": "^1.5.1", + "@solid-primitives/scheduled": "^1.5.1", + "@solid-primitives/static-store": "^0.1.1", + "@solid-primitives/styles": "^0.1.1", + "@solid-primitives/utils": "^6.3.1" + }, + "peerDependencies": { + "solid-js": "^1.9.0" + } + }, + "node_modules/@solid-primitives/bounds": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@solid-primitives/bounds/-/bounds-0.1.5.tgz", + "integrity": "sha512-JFym8zijMfWp1FaAmJlH3xMfenCuhjaUsoBn3kt9FtoWwLj+yt+EGYt+p3SkOKwF7h4gaGtZ5PIdSbSNVWkRmg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@solid-primitives/event-listener": "^2.4.5", + "@solid-primitives/resize-observer": "^2.1.5", + "@solid-primitives/static-store": "^0.1.3", + "@solid-primitives/utils": "^6.4.0" + }, + "peerDependencies": { + "solid-js": "^1.6.12" + } + }, + "node_modules/@solid-primitives/event-listener": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/@solid-primitives/event-listener/-/event-listener-2.4.5.tgz", + "integrity": "sha512-nwRV558mIabl4yVAhZKY8cb6G+O1F0M6Z75ttTu5hk+SxdOnKSGj+eetDIu7Oax1P138ZdUU01qnBPR8rnxaEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@solid-primitives/utils": "^6.4.0" + }, + "peerDependencies": { + "solid-js": "^1.6.12" + } + }, + "node_modules/@solid-primitives/keyboard": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@solid-primitives/keyboard/-/keyboard-1.3.5.tgz", + "integrity": "sha512-sav+l+PL+74z3yaftVs7qd8c2SXkqzuxPOVibUe5wYMt+U5Hxp3V3XCPgBPN2I6cANjvoFtz0NiU8uHVLdi9FQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@solid-primitives/event-listener": "^2.4.5", + "@solid-primitives/rootless": "^1.5.3", + "@solid-primitives/utils": "^6.4.0" + }, + "peerDependencies": { + "solid-js": "^1.6.12" + } + }, + "node_modules/@solid-primitives/media": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@solid-primitives/media/-/media-2.3.5.tgz", + "integrity": "sha512-LX9fB5WDaK87FMDtUB1qokBOfT2et9Uobv/zZaKLH9caFSz4+P70MBKEIBHcZQy+9MV5M2XvGYLTbLskjkzMjA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@solid-primitives/event-listener": "^2.4.5", + "@solid-primitives/rootless": "^1.5.3", + "@solid-primitives/static-store": "^0.1.3", + "@solid-primitives/utils": "^6.4.0" + }, + "peerDependencies": { + "solid-js": "^1.6.12" + } + }, + "node_modules/@solid-primitives/refs": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@solid-primitives/refs/-/refs-1.1.3.tgz", + "integrity": "sha512-aam02fjNKpBteewF/UliPSQCVJsIIGOLEWQOh+ll6R/QePzBOOBMcC4G+5jTaO75JuUS1d/14Q1YXT3X0Ow6iA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@solid-primitives/utils": "^6.4.0" + }, + "peerDependencies": { + "solid-js": "^1.6.12" + } + }, + "node_modules/@solid-primitives/resize-observer": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@solid-primitives/resize-observer/-/resize-observer-2.1.5.tgz", + "integrity": "sha512-AiyTknKcNBaKHbcSMuxtSNM8FjIuiSuFyFghdD0TcCMU9hKi9EmsC5pjfjDwxE+5EueB1a+T/34PLRI5vbBbKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@solid-primitives/event-listener": "^2.4.5", + "@solid-primitives/rootless": "^1.5.3", + "@solid-primitives/static-store": "^0.1.3", + "@solid-primitives/utils": "^6.4.0" + }, + "peerDependencies": { + "solid-js": "^1.6.12" + } + }, + "node_modules/@solid-primitives/rootless": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@solid-primitives/rootless/-/rootless-1.5.3.tgz", + "integrity": "sha512-N8cIDAHbWcLahNRLr0knAAQvXyEdEMoAZvIMZKmhNb1mlx9e2UOv9BRD5YNwQUJwbNoYVhhLwFOEOcVXFx0HqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@solid-primitives/utils": "^6.4.0" + }, + "peerDependencies": { + "solid-js": "^1.6.12" + } + }, + "node_modules/@solid-primitives/scheduled": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@solid-primitives/scheduled/-/scheduled-1.5.3.tgz", + "integrity": "sha512-oNwLE6E6lxJAWrc8QXuwM0k2oU1BnANnkChwMw82aK1j3+mWGJkG1IFe5gCwbV+afYmjI76t9JJV3md/8tLw+g==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "solid-js": "^1.6.12" + } + }, + "node_modules/@solid-primitives/static-store": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@solid-primitives/static-store/-/static-store-0.1.3.tgz", + "integrity": "sha512-uxez7SXnr5GiRnzqO2IEDjOJRIXaG+0LZLBizmUA1FwSi+hrpuMzVBwyk70m4prcl8X6FDDXUl9O8hSq8wHbBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@solid-primitives/utils": "^6.4.0" + }, + "peerDependencies": { + "solid-js": "^1.6.12" + } + }, + "node_modules/@solid-primitives/styles": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@solid-primitives/styles/-/styles-0.1.3.tgz", + "integrity": "sha512-7YdA21prMeCX+oOF/1RAn02+cGz/pG4dyPWtHBC2H8aZvnC7IfThBt80mP+TioejrdfE7Lc54Uh18f7Pig+gRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@solid-primitives/rootless": "^1.5.3", + "@solid-primitives/utils": "^6.4.0" + }, + "peerDependencies": { + "solid-js": "^1.6.12" + } + }, + "node_modules/@solid-primitives/utils": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@solid-primitives/utils/-/utils-6.4.0.tgz", + "integrity": "sha512-AeGTBg8Wtkh/0s+evyLtP8piQoS4wyqqQaAFs2HJcFMMjYAtUgo+ZPduRXLjPlqKVc2ejeR544oeqpbn8Egn8A==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "solid-js": "^1.6.12" + } + }, + "node_modules/@solidjs/router": { + "version": "0.15.4", + "resolved": "https://registry.npmjs.org/@solidjs/router/-/router-0.15.4.tgz", + "integrity": "sha512-WOpgg9a9T638cR+5FGbFi/IV4l2FpmBs1GpIMSPa0Ce9vyJN7Wts+X2PqMf9IYn0zUj2MlSJtm1gp7/HI/n5TQ==", + "license": "MIT", + "peerDependencies": { + "solid-js": "^1.8.6" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.0.tgz", + "integrity": "sha512-aFb4gUhFOgdh9AXo4IzBEOzBkkAxm9VigwDJnMIYv3lcfXCJVesNfbEaBl4BNgVRyid92AmdviqwBUBRKSeY3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "^5.21.0", + "jiti": "^2.6.1", + "lightningcss": "1.32.0", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.3.0" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.0.tgz", + "integrity": "sha512-F7HZGBeN9I0/AuuJS5PwcD8xayx5ri5GhjYUDBEVYUkexyA/giwbDNjRVrxSezE3T250OU2K/wp/ltWx3UOefg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.3.0", + "@tailwindcss/oxide-darwin-arm64": "4.3.0", + "@tailwindcss/oxide-darwin-x64": "4.3.0", + "@tailwindcss/oxide-freebsd-x64": "4.3.0", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.0", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.0", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.0", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.0", + "@tailwindcss/oxide-linux-x64-musl": "4.3.0", + "@tailwindcss/oxide-wasm32-wasi": "4.3.0", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.0", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.0" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.0.tgz", + "integrity": "sha512-TJPiq67tKlLuObP6RkwvVGDoxCMBVtDgKkLfa/uyj7/FyxvQwHS+UOnVrXXgbEsfUaMgiVvC4KbJnRr26ho4Ng==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.0.tgz", + "integrity": "sha512-oMN/WZRb+SO37BmUElEgeEWuU8E/HXRkiODxJxLe1UTHVXLrdVSgfaJV7pSlhRGMSOiXLuxTIjfsF3wYvz8cgQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.0.tgz", + "integrity": "sha512-N6CUmu4a6bKVADfw77p+iw6Yd9Q3OBhe0veaDX+QazfuVYlQsHfDgxBrsjQ/IW+zywL8mTrNd0SdJT/zgtvMdA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.0.tgz", + "integrity": "sha512-zDL5hBkQdH5C6MpqbK3gQAgP80tsMwSI26vjOzjJtNCMUo0lFgOItzHKBIupOZNQxt3ouPH7RPhvNhiTfCe5CQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.0.tgz", + "integrity": "sha512-R06HdNi7A7OEoMsf6d4tjZ71RCWnZQPHj2mnotSFURjNLdBC+cIgXQ7l81CqeoiQftjf6OOblxXMInMgN2VzMA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.0.tgz", + "integrity": "sha512-qTJHELX8jetjhRQHCLilkVLmybpzNQAtaI/gaoVoidn/ufbNDbAo8KlK2J+yPoc8wQxvDxCmh/5lr8nC1+lTbg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.0.tgz", + "integrity": "sha512-Z6sukiQsngnWO+l39X4pPbiWT81IC+PLKF+PHxIlyZbGNb9MODfYlXEVlFvej5BOZInWX01kVyzeLvHsXhfczQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.0.tgz", + "integrity": "sha512-DRNdQRpSGzRGfARVuVkxvM8Q12nh19l4BF/G7zGA1oe+9wcC6saFBHTISrpIcKzhiXtSrlSrluCfvMuledoCTQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.0.tgz", + "integrity": "sha512-Z0IADbDo8bh6I7h2IQMx601AdXBLfFpEdUotft86evd/8ZPflZe9COPO8Q1vw+pfLWIUo9zN/JGZvwuAJqduqg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.0.tgz", + "integrity": "sha512-HNZGOUxEmElksYR7S6sC5jTeNGpobAsy9u7Gu0AskJ8/20FR9GqebUyB+HBcU/ax6BHuiuJi+Oda4B+YX6H1yA==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.10.0", + "@emnapi/runtime": "^1.10.0", + "@emnapi/wasi-threads": "^1.2.1", + "@napi-rs/wasm-runtime": "^1.1.4", + "@tybys/wasm-util": "^0.10.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.0.tgz", + "integrity": "sha512-Pe+RPVTi1T+qymuuRpcdvwSVZjnll/f7n8gBxMMh3xLTctMDKqpdfGimbMyioqtLhUYZxdJ9wGNhV7MKHvgZsQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.0.tgz", + "integrity": "sha512-Mvrf2kXW/yeW/OTezZlCGOirXRcUuLIBx/5Y12BaPM7wJoryG6dfS/NJL8aBPqtTEx/Vm4T4vKzFUcKDT+TKUA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/postcss": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.3.0.tgz", + "integrity": "sha512-Jm05Tjx+9yCLGv5qw1c+84Psds8MnyrEQYCB+FFk2lgGiUjlRqdxke4mVTuYrj2xnVZqKim2Apr5ySuQRYAw/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "@tailwindcss/node": "4.3.0", + "@tailwindcss/oxide": "4.3.0", + "postcss": "^8.5.10", + "tailwindcss": "4.3.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/babel-plugin-jsx-dom-expressions": { + "version": "0.40.7", + "resolved": "https://registry.npmjs.org/babel-plugin-jsx-dom-expressions/-/babel-plugin-jsx-dom-expressions-0.40.7.tgz", + "integrity": "sha512-/O6JWUmjv03OI9lL2ry9bUjpD5S3PclM55RRJEyCdcFZ5W2SEA/59d+l2hNsk3gI6kiWRdRPdOtqZmsQzFN1pQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "7.18.6", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.20.7", + "html-entities": "2.3.3", + "parse5": "^7.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.20.12" + } + }, + "node_modules/babel-plugin-jsx-dom-expressions/node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/babel-preset-solid": { + "version": "1.9.12", + "resolved": "https://registry.npmjs.org/babel-preset-solid/-/babel-preset-solid-1.9.12.tgz", + "integrity": "sha512-LLqnuKVDlKpyBlMPcH6qEvs/wmS9a+NczppxJ3ryS/c0O5IiSFOIBQi9GzyiGDSbcJpx4Gr87jyFTos1MyEuWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jsx-dom-expressions": "^0.40.6" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "solid-js": "^1.9.12" + }, + "peerDependenciesMeta": { + "solid-js": { + "optional": true + } + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.29", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.29.tgz", + "integrity": "sha512-Asa2krT+XTPZINCS+2QcyS8WTkObE77RwkydwF7h6DmnKqbvlalz93m/dnphUyCa6SWSP51VgtEUf2FN+gelFQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/browserslist": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001792", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001792.tgz", + "integrity": "sha512-hVLMUZFgR4JJ6ACt1uEESvQN1/dBVqPAKY0hgrV70eN3391K6juAfTjKZLKvOMsx8PxA7gsY1/tLMMTcfFLLpw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.356", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.356.tgz", + "integrity": "sha512-9NgFd7m5t5MCJ5rUSjJITUXAH9mEGlrlofnMf4YEr+pz6JlP7cWmTAH+JFmbPnaSW8koVTkuW7pacORWAnA5Yw==", + "dev": true, + "license": "ISC" + }, + "node_modules/enhanced-resolve": { + "version": "5.21.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.3.tgz", + "integrity": "sha512-QyL119InA+XXEkNLNTPCXPugSvOfhwv0JOlGNzvxs0hZaiHLNvXSpudUWsOlsXGWJh8G6ckCScEkVHfX3kw/2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", + "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.7", + "@esbuild/android-arm": "0.27.7", + "@esbuild/android-arm64": "0.27.7", + "@esbuild/android-x64": "0.27.7", + "@esbuild/darwin-arm64": "0.27.7", + "@esbuild/darwin-x64": "0.27.7", + "@esbuild/freebsd-arm64": "0.27.7", + "@esbuild/freebsd-x64": "0.27.7", + "@esbuild/linux-arm": "0.27.7", + "@esbuild/linux-arm64": "0.27.7", + "@esbuild/linux-ia32": "0.27.7", + "@esbuild/linux-loong64": "0.27.7", + "@esbuild/linux-mips64el": "0.27.7", + "@esbuild/linux-ppc64": "0.27.7", + "@esbuild/linux-riscv64": "0.27.7", + "@esbuild/linux-s390x": "0.27.7", + "@esbuild/linux-x64": "0.27.7", + "@esbuild/netbsd-arm64": "0.27.7", + "@esbuild/netbsd-x64": "0.27.7", + "@esbuild/openbsd-arm64": "0.27.7", + "@esbuild/openbsd-x64": "0.27.7", + "@esbuild/openharmony-arm64": "0.27.7", + "@esbuild/sunos-x64": "0.27.7", + "@esbuild/win32-arm64": "0.27.7", + "@esbuild/win32-ia32": "0.27.7", + "@esbuild/win32-x64": "0.27.7" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/jiti": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/merge-anything": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/merge-anything/-/merge-anything-5.1.7.tgz", + "integrity": "sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.44", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.44.tgz", + "integrity": "sha512-5WUyunoPMsvvEhS8AxHtRzP+oA8UCkJ7YRxatWKjngndhDGLiqEVAQKWjFAiAiuL8zMRGzGSJxFnLetoa43qGQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz", + "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/rollup": { + "version": "4.60.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.4.tgz", + "integrity": "sha512-WHeFSbZYsPu3+bLoNRUuAO+wavNlocOPf3wSHTP7hcFKVnJeWsYlCDbr3mTS14FCizf9ccIxXA8sGL8zKeQN3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.4", + "@rollup/rollup-android-arm64": "4.60.4", + "@rollup/rollup-darwin-arm64": "4.60.4", + "@rollup/rollup-darwin-x64": "4.60.4", + "@rollup/rollup-freebsd-arm64": "4.60.4", + "@rollup/rollup-freebsd-x64": "4.60.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.4", + "@rollup/rollup-linux-arm-musleabihf": "4.60.4", + "@rollup/rollup-linux-arm64-gnu": "4.60.4", + "@rollup/rollup-linux-arm64-musl": "4.60.4", + "@rollup/rollup-linux-loong64-gnu": "4.60.4", + "@rollup/rollup-linux-loong64-musl": "4.60.4", + "@rollup/rollup-linux-ppc64-gnu": "4.60.4", + "@rollup/rollup-linux-ppc64-musl": "4.60.4", + "@rollup/rollup-linux-riscv64-gnu": "4.60.4", + "@rollup/rollup-linux-riscv64-musl": "4.60.4", + "@rollup/rollup-linux-s390x-gnu": "4.60.4", + "@rollup/rollup-linux-x64-gnu": "4.60.4", + "@rollup/rollup-linux-x64-musl": "4.60.4", + "@rollup/rollup-openbsd-x64": "4.60.4", + "@rollup/rollup-openharmony-arm64": "4.60.4", + "@rollup/rollup-win32-arm64-msvc": "4.60.4", + "@rollup/rollup-win32-ia32-msvc": "4.60.4", + "@rollup/rollup-win32-x64-gnu": "4.60.4", + "@rollup/rollup-win32-x64-msvc": "4.60.4", + "fsevents": "~2.3.2" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/seroval": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/seroval/-/seroval-1.5.4.tgz", + "integrity": "sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/seroval-plugins": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/seroval-plugins/-/seroval-plugins-1.5.4.tgz", + "integrity": "sha512-S0xQPhUTefAhNvNWFg0c1J8qJArHt5KdtJ/cFAofo06KD1MVSeFWyl4iiu+ApDIuw0WhjpOfCdgConOfAnLgkw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "seroval": "^1.0" + } + }, + "node_modules/solid-devtools": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/solid-devtools/-/solid-devtools-0.34.5.tgz", + "integrity": "sha512-KNVdS9MQzzeVS++Vmg4JeU0fM6ZMuBEmkBA7SmqPS2s5UHpRjv1PNH8gShmlN9L/tki6OUAzJP3H1aKq2AcOSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@babel/plugin-syntax-typescript": "^7.27.1", + "@babel/types": "^7.27.6", + "@solid-devtools/debugger": "^0.28.1", + "@solid-devtools/shared": "^0.20.0" + }, + "peerDependencies": { + "solid-js": "^1.9.0", + "vite": "^2.2.3 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/solid-js": { + "version": "1.9.13", + "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.9.13.tgz", + "integrity": "sha512-6hJeJMOcEX8ktqjpDoJZEmld3ijvcvWBDtiXBm7f4332SiFN66QeAQI1REQshvyUoISsSeJ4PHDauKYbwao9JQ==", + "license": "MIT", + "dependencies": { + "csstype": "^3.1.0", + "seroval": "~1.5.0", + "seroval-plugins": "~1.5.0" + } + }, + "node_modules/solid-refresh": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/solid-refresh/-/solid-refresh-0.6.3.tgz", + "integrity": "sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/generator": "^7.23.6", + "@babel/helper-module-imports": "^7.22.15", + "@babel/types": "^7.23.6" + }, + "peerDependencies": { + "solid-js": "^1.3" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tailwindcss": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.0.tgz", + "integrity": "sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/vite": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.3.tgz", + "integrity": "sha512-/4XH147Ui7OGTjg3HbdWe5arnZQSbfuRzdr9Ec7TQi5I7R+ir0Rlc9GIvD4v0XZurELqA035KVXJXpR61xhiTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-plugin-solid": { + "version": "2.11.12", + "resolved": "https://registry.npmjs.org/vite-plugin-solid/-/vite-plugin-solid-2.11.12.tgz", + "integrity": "sha512-FgjPcx2OwX9h6f28jli7A4bG7PP3te8uyakE5iqsmpq3Jqi1TWLgSroC9N6cMfGRU2zXsl4Q6ISvTr2VL0QHpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.23.3", + "@types/babel__core": "^7.20.4", + "babel-preset-solid": "^1.8.4", + "merge-anything": "^5.1.7", + "solid-refresh": "^0.6.3", + "vitefu": "^1.0.4" + }, + "peerDependencies": { + "@testing-library/jest-dom": "^5.16.6 || ^5.17.0 || ^6.*", + "solid-js": "^1.7.2", + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@testing-library/jest-dom": { + "optional": true + } + } + }, + "node_modules/vitefu": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.3.tgz", + "integrity": "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==", + "dev": true, + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*", + "tests/projects/workspace/packages/*" + ], + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + } + } +} diff --git a/crates/bindings-typescript/test-solid-router/package.json b/crates/bindings-typescript/test-solid-router/package.json new file mode 100644 index 00000000000..c9ac05b8a40 --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/package.json @@ -0,0 +1,31 @@ +{ + "name": "@clockworklabs/test-solid-router", + "private": true, + "version": "0.0.1", + "description": "SpacetimeDB Solid Router example app", + "type": "module", + "scripts": { + "start": "vite", + "dev": "vite", + "build": "vite build", + "serve": "vite preview", + "generate": "cargo run -p gen-bindings -- --replacement ../../../src/index && prettier --write src/module_bindings", + "spacetime:generate": "spacetime generate --lang typescript --out-dir src/module_bindings --module-path server", + "spacetime:start": "spacetime start", + "spacetime:publish:local": "spacetime publish game --module-path server --server local", + "spacetime:publish": "spacetime publish game --module-path server --server maincloud" + }, + "license": "MIT", + "devDependencies": { + "@tailwindcss/postcss": "^4.1.13", + "postcss": "^8.4.49", + "solid-devtools": "^0.34.3", + "tailwindcss": "^4.1.13", + "vite": "^7.1.4", + "vite-plugin-solid": "^2.11.8" + }, + "dependencies": { + "@solidjs/router": "^0.15.1", + "solid-js": "^1.9.5" + } +} \ No newline at end of file diff --git a/crates/bindings-typescript/test-solid-router/postcss.config.js b/crates/bindings-typescript/test-solid-router/postcss.config.js new file mode 100644 index 00000000000..a34a3d560dc --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/postcss.config.js @@ -0,0 +1,5 @@ +export default { + plugins: { + '@tailwindcss/postcss': {}, + }, +}; diff --git a/crates/bindings-typescript/test-solid-router/server/.gitignore b/crates/bindings-typescript/test-solid-router/server/.gitignore new file mode 100644 index 00000000000..31b13f058aa --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/server/.gitignore @@ -0,0 +1,17 @@ +# Generated by Cargo +# will have compiled files and executables +debug/ +target/ + +# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries +# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html +Cargo.lock + +# These are backup files generated by rustfmt +**/*.rs.bk + +# MSVC Windows builds of rustc generate these, which store debugging information +*.pdb + +# Spacetime ignore +/.spacetime \ No newline at end of file diff --git a/crates/bindings-typescript/test-solid-router/server/Cargo.toml b/crates/bindings-typescript/test-solid-router/server/Cargo.toml new file mode 100644 index 00000000000..a7ad32478e1 --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/server/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "typescript-test-solid-router-app" +version = "0.1.0" +edition = "2024" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[lib] +crate-type = ["cdylib"] + +[dependencies] +spacetimedb.workspace = true +log = "0.4" +anyhow = "1.0" diff --git a/crates/bindings-typescript/test-solid-router/server/src/lib.rs b/crates/bindings-typescript/test-solid-router/server/src/lib.rs new file mode 100644 index 00000000000..fe2f325f560 --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/server/src/lib.rs @@ -0,0 +1,80 @@ +use spacetimedb::{reducer, table, Identity, ReducerContext, Table}; + +#[table(public, accessor = counter)] +struct Counter { + #[primary_key] + id: u32, + count: u32, +} + +#[table(public, accessor = user)] +#[table(public, accessor = offline_user)] +struct User { + #[primary_key] + identity: Identity, + has_incremented_count: u32, +} + +#[reducer(init)] +fn init(ctx: &ReducerContext) { + ctx.db.counter().insert(Counter { id: 0, count: 0 }); +} + +#[reducer(client_connected)] +fn client_connected(ctx: &ReducerContext) { + let existing_user = ctx.db.offline_user().identity().find(ctx.sender()); + if let Some(user) = existing_user { + ctx.db.user().insert(user); + ctx.db.offline_user().identity().delete(ctx.sender()); + return; + } + ctx.db.offline_user().insert(User { + identity: ctx.sender(), + has_incremented_count: 0, + }); +} + +#[reducer(client_disconnected)] +fn client_disconnected(ctx: &ReducerContext) -> Result<(), String> { + let existing_user = ctx.db.user().identity().find(ctx.sender()).ok_or("User not found")?; + ctx.db.offline_user().insert(existing_user); + ctx.db.user().identity().delete(ctx.sender()); + Ok(()) +} + +#[reducer] +fn increment_counter(ctx: &ReducerContext) -> Result<(), String> { + let mut counter = ctx.db.counter().id().find(0).ok_or("Counter not found")?; + counter.count += 1; + ctx.db.counter().id().update(counter); + + let mut user = ctx.db.user().identity().find(ctx.sender()).ok_or("User not found")?; + user.has_incremented_count += 1; + ctx.db.user().identity().update(user); + + Ok(()) +} + +#[reducer] +fn clear_counter(ctx: &ReducerContext) { + for row in ctx.db.counter().iter() { + ctx.db.counter().id().delete(row.id); + ctx.db.counter().insert(Counter { id: 0, count: 0 }); + } + + for row in ctx.db.user().iter() { + let user = User { + identity: row.identity, + has_incremented_count: 0, + }; + ctx.db.user().identity().update(user); + } + + for row in ctx.db.offline_user().iter() { + let user = User { + identity: row.identity, + has_incremented_count: 0, + }; + ctx.db.offline_user().identity().update(user); + } +} diff --git a/crates/bindings-typescript/test-solid-router/spacetime.json b/crates/bindings-typescript/test-solid-router/spacetime.json new file mode 100644 index 00000000000..d8fead2b202 --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/spacetime.json @@ -0,0 +1,6 @@ +{ + "dev": { + "run": "npm run dev" + }, + "server": "maincloud" +} \ No newline at end of file diff --git a/crates/bindings-typescript/test-solid-router/spacetime.local.json b/crates/bindings-typescript/test-solid-router/spacetime.local.json new file mode 100644 index 00000000000..34bd65bd378 --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/spacetime.local.json @@ -0,0 +1,3 @@ +{ + "database": "piquant-ear-2184" +} \ No newline at end of file diff --git a/crates/bindings-typescript/test-solid-router/src/app.tsx b/crates/bindings-typescript/test-solid-router/src/app.tsx new file mode 100644 index 00000000000..c3c65763ab3 --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/src/app.tsx @@ -0,0 +1,41 @@ +import { Suspense, type Component } from 'solid-js'; +import { A, useLocation } from '@solidjs/router'; + +const App: Component<{ children: Element }> = props => { + const location = useLocation(); + + return ( + <> + + +
+ {props.children} +
+ + ); +}; + +export default App; diff --git a/crates/bindings-typescript/test-solid-router/src/errors/404.tsx b/crates/bindings-typescript/test-solid-router/src/errors/404.tsx new file mode 100644 index 00000000000..56e5ad5e3be --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/src/errors/404.tsx @@ -0,0 +1,8 @@ +export default function NotFound() { + return ( +
+

404: Not Found

+

It's gone 😞

+
+ ); +} diff --git a/crates/bindings-typescript/test-solid-router/src/index.css b/crates/bindings-typescript/test-solid-router/src/index.css new file mode 100644 index 00000000000..ab3d907a065 --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/src/index.css @@ -0,0 +1,19 @@ +@import 'tailwindcss'; + +/* + The default border color has changed to `currentcolor` in Tailwind CSS v4, + so we've added these compatibility styles to make sure everything still + looks the same as it did with Tailwind CSS v3. + + If we ever want to remove these styles, we need to add an explicit border + color utility to any element that depends on these defaults. +*/ +@layer base { + *, + ::after, + ::before, + ::backdrop, + ::file-selector-button { + border-color: var(--color-gray-200, currentcolor); + } +} diff --git a/crates/bindings-typescript/test-solid-router/src/index.tsx b/crates/bindings-typescript/test-solid-router/src/index.tsx new file mode 100644 index 00000000000..4033e0cca1f --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/src/index.tsx @@ -0,0 +1,51 @@ +/* @refresh reload */ +import './index.css'; + +import { render, Suspense } from 'solid-js/web'; + +import App from './app'; +import { Router } from '@solidjs/router'; +import { routes } from './routes'; +import { SpacetimeDBProvider } from '../../src/solid'; +import { DbConnection, ErrorContext } from './module_bindings/index.ts'; +import { Identity } from '../../src/index.ts'; + +const root = document.getElementById('root'); + +if (import.meta.env.DEV && !(root instanceof HTMLElement)) { + throw new Error( + 'Root element not found. Did you forget to add it to your index.html? Or maybe the id attribute got misspelled?' + ); +} + +const onConnect = (_conn: DbConnection, identity: Identity, token: string) => { + localStorage.setItem('stdbToken', token); + console.log('Connected to SpacetimeDB! [' + identity.toHexString() + ']'); +}; + +const onDisconnect = () => { + console.log('Disconnected from SpacetimeDB!'); +}; + +const onConnectError = (_ctx: ErrorContext, err: Error) => { + console.log('Error connecting to SpacetimeDB! ', err); +}; + +// we DO NOT .build() the builder here, that's done automatically in the component +// set all the settings you need, be sure your Uri and Module Name are correct +const connBuilder = DbConnection.builder() + .withUri('ws://localhost:3000') + .withDatabaseName('simple-stdb-solid-hooks-example') + .withToken(localStorage.getItem('stdbToken') || '') + .onConnect(onConnect) + .onConnectError(onConnectError) + .onDisconnect(onDisconnect); + +render( + () => ( + + {props.children}}>{routes} + + ), + root! +); diff --git a/crates/bindings-typescript/test-solid-router/src/module_bindings/clear_counter_reducer.ts b/crates/bindings-typescript/test-solid-router/src/module_bindings/clear_counter_reducer.ts new file mode 100644 index 00000000000..2454b459929 --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/src/module_bindings/clear_counter_reducer.ts @@ -0,0 +1,13 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +/* eslint-disable */ +/* tslint:disable */ +import { + TypeBuilder as __TypeBuilder, + t as __t, + type AlgebraicTypeType as __AlgebraicTypeType, + type Infer as __Infer, +} from '../../../src/index'; + +export default {}; diff --git a/crates/bindings-typescript/test-solid-router/src/module_bindings/client_connected_reducer.ts b/crates/bindings-typescript/test-solid-router/src/module_bindings/client_connected_reducer.ts new file mode 100644 index 00000000000..2454b459929 --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/src/module_bindings/client_connected_reducer.ts @@ -0,0 +1,13 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +/* eslint-disable */ +/* tslint:disable */ +import { + TypeBuilder as __TypeBuilder, + t as __t, + type AlgebraicTypeType as __AlgebraicTypeType, + type Infer as __Infer, +} from '../../../src/index'; + +export default {}; diff --git a/crates/bindings-typescript/test-solid-router/src/module_bindings/client_disconnected_reducer.ts b/crates/bindings-typescript/test-solid-router/src/module_bindings/client_disconnected_reducer.ts new file mode 100644 index 00000000000..2454b459929 --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/src/module_bindings/client_disconnected_reducer.ts @@ -0,0 +1,13 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +/* eslint-disable */ +/* tslint:disable */ +import { + TypeBuilder as __TypeBuilder, + t as __t, + type AlgebraicTypeType as __AlgebraicTypeType, + type Infer as __Infer, +} from '../../../src/index'; + +export default {}; diff --git a/crates/bindings-typescript/test-solid-router/src/module_bindings/counter_table.ts b/crates/bindings-typescript/test-solid-router/src/module_bindings/counter_table.ts new file mode 100644 index 00000000000..97d74912ab2 --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/src/module_bindings/counter_table.ts @@ -0,0 +1,16 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +/* eslint-disable */ +/* tslint:disable */ +import { + TypeBuilder as __TypeBuilder, + t as __t, + type AlgebraicTypeType as __AlgebraicTypeType, + type Infer as __Infer, +} from '../../../src/index'; + +export default __t.row({ + id: __t.u32().primaryKey(), + count: __t.u32(), +}); diff --git a/crates/bindings-typescript/test-solid-router/src/module_bindings/counter_type.ts b/crates/bindings-typescript/test-solid-router/src/module_bindings/counter_type.ts new file mode 100644 index 00000000000..419b8dbfe5b --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/src/module_bindings/counter_type.ts @@ -0,0 +1,16 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +/* eslint-disable */ +/* tslint:disable */ +import { + TypeBuilder as __TypeBuilder, + t as __t, + type AlgebraicTypeType as __AlgebraicTypeType, + type Infer as __Infer, +} from '../../../src/index'; + +export default __t.object('Counter', { + id: __t.u32(), + count: __t.u32(), +}); diff --git a/crates/bindings-typescript/test-solid-router/src/module_bindings/increment_counter_reducer.ts b/crates/bindings-typescript/test-solid-router/src/module_bindings/increment_counter_reducer.ts new file mode 100644 index 00000000000..2454b459929 --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/src/module_bindings/increment_counter_reducer.ts @@ -0,0 +1,13 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +/* eslint-disable */ +/* tslint:disable */ +import { + TypeBuilder as __TypeBuilder, + t as __t, + type AlgebraicTypeType as __AlgebraicTypeType, + type Infer as __Infer, +} from '../../../src/index'; + +export default {}; diff --git a/crates/bindings-typescript/test-solid-router/src/module_bindings/index.ts b/crates/bindings-typescript/test-solid-router/src/module_bindings/index.ts new file mode 100644 index 00000000000..b9d553082d4 --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/src/module_bindings/index.ts @@ -0,0 +1,182 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +// This was generated using spacetimedb cli version 2.0.0 (commit ed2408b3d1fb8b634b143fcc289b8bfda5d385ee). + +/* eslint-disable */ +/* tslint:disable */ +import { + DbConnectionBuilder as __DbConnectionBuilder, + DbConnectionImpl as __DbConnectionImpl, + SubscriptionBuilderImpl as __SubscriptionBuilderImpl, + TypeBuilder as __TypeBuilder, + Uuid as __Uuid, + convertToAccessorMap as __convertToAccessorMap, + makeQueryBuilder as __makeQueryBuilder, + procedureSchema as __procedureSchema, + procedures as __procedures, + reducerSchema as __reducerSchema, + reducers as __reducers, + schema as __schema, + t as __t, + table as __table, + type AlgebraicTypeType as __AlgebraicTypeType, + type DbConnectionConfig as __DbConnectionConfig, + type ErrorContextInterface as __ErrorContextInterface, + type Event as __Event, + type EventContextInterface as __EventContextInterface, + type Infer as __Infer, + type QueryBuilder as __QueryBuilder, + type ReducerEventContextInterface as __ReducerEventContextInterface, + type RemoteModule as __RemoteModule, + type SubscriptionEventContextInterface as __SubscriptionEventContextInterface, + type SubscriptionHandleImpl as __SubscriptionHandleImpl, +} from '../../../src/index'; + +// Import all reducer arg schemas +import ClearCounterReducer from './clear_counter_reducer'; +import IncrementCounterReducer from './increment_counter_reducer'; + +// Import all procedure arg schemas + +// Import all table schema definitions +import CounterRow from './counter_table'; +import OfflineUserRow from './offline_user_table'; +import UserRow from './user_table'; + +/** Type-only namespace exports for generated type groups. */ + +/** The schema information for all tables in this module. This is defined the same was as the tables would have been defined in the server. */ +const tablesSchema = __schema({ + counter: __table( + { + name: 'counter', + indexes: [ + { + accessor: 'id', + name: 'counter_id_idx_btree', + algorithm: 'btree', + columns: ['id'], + }, + ], + constraints: [ + { name: 'counter_id_key', constraint: 'unique', columns: ['id'] }, + ], + }, + CounterRow + ), + offline_user: __table( + { + name: 'offline_user', + indexes: [ + { + accessor: 'identity', + name: 'offline_user_identity_idx_btree', + algorithm: 'btree', + columns: ['identity'], + }, + ], + constraints: [ + { + name: 'offline_user_identity_key', + constraint: 'unique', + columns: ['identity'], + }, + ], + }, + OfflineUserRow + ), + user: __table( + { + name: 'user', + indexes: [ + { + accessor: 'identity', + name: 'user_identity_idx_btree', + algorithm: 'btree', + columns: ['identity'], + }, + ], + constraints: [ + { + name: 'user_identity_key', + constraint: 'unique', + columns: ['identity'], + }, + ], + }, + UserRow + ), +}); + +/** The schema information for all reducers in this module. This is defined the same way as the reducers would have been defined in the server, except the body of the reducer is omitted in code generation. */ +const reducersSchema = __reducers( + __reducerSchema('clear_counter', ClearCounterReducer), + __reducerSchema('increment_counter', IncrementCounterReducer) +); + +/** The schema information for all procedures in this module. This is defined the same way as the procedures would have been defined in the server. */ +const proceduresSchema = __procedures(); + +/** The remote SpacetimeDB module schema, both runtime and type information. */ +const REMOTE_MODULE = { + versionInfo: { + cliVersion: '2.0.0' as const, + }, + tables: tablesSchema.schemaType.tables, + reducers: reducersSchema.reducersType.reducers, + ...proceduresSchema, +} satisfies __RemoteModule< + typeof tablesSchema.schemaType, + typeof reducersSchema.reducersType, + typeof proceduresSchema +>; + +/** The tables available in this remote SpacetimeDB module. Each table reference doubles as a query builder. */ +export const tables: __QueryBuilder = + __makeQueryBuilder(tablesSchema.schemaType); + +/** The reducers available in this remote SpacetimeDB module. */ +export const reducers = __convertToAccessorMap( + reducersSchema.reducersType.reducers +); + +/** The context type returned in callbacks for all possible events. */ +export type EventContext = __EventContextInterface; +/** The context type returned in callbacks for reducer events. */ +export type ReducerEventContext = __ReducerEventContextInterface< + typeof REMOTE_MODULE +>; +/** The context type returned in callbacks for subscription events. */ +export type SubscriptionEventContext = __SubscriptionEventContextInterface< + typeof REMOTE_MODULE +>; +/** The context type returned in callbacks for error events. */ +export type ErrorContext = __ErrorContextInterface; +/** The subscription handle type to manage active subscriptions created from a {@link SubscriptionBuilder}. */ +export type SubscriptionHandle = __SubscriptionHandleImpl; + +/** Builder class to configure a new subscription to the remote SpacetimeDB instance. */ +export class SubscriptionBuilder extends __SubscriptionBuilderImpl< + typeof REMOTE_MODULE +> {} + +/** Builder class to configure a new database connection to the remote SpacetimeDB instance. */ +export class DbConnectionBuilder extends __DbConnectionBuilder {} + +/** The typed database connection to manage connections to the remote SpacetimeDB instance. This class has type information specific to the generated module. */ +export class DbConnection extends __DbConnectionImpl { + /** Creates a new {@link DbConnectionBuilder} to configure and connect to the remote SpacetimeDB instance. */ + static builder = (): DbConnectionBuilder => { + return new DbConnectionBuilder( + REMOTE_MODULE, + (config: __DbConnectionConfig) => + new DbConnection(config) + ); + }; + + /** Creates a new {@link SubscriptionBuilder} to configure a subscription to the remote SpacetimeDB instance. */ + override subscriptionBuilder = (): SubscriptionBuilder => { + return new SubscriptionBuilder(this); + }; +} diff --git a/crates/bindings-typescript/test-solid-router/src/module_bindings/offline_user_table.ts b/crates/bindings-typescript/test-solid-router/src/module_bindings/offline_user_table.ts new file mode 100644 index 00000000000..66041140a28 --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/src/module_bindings/offline_user_table.ts @@ -0,0 +1,16 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +/* eslint-disable */ +/* tslint:disable */ +import { + TypeBuilder as __TypeBuilder, + t as __t, + type AlgebraicTypeType as __AlgebraicTypeType, + type Infer as __Infer, +} from '../../../src/index'; + +export default __t.row({ + identity: __t.identity().primaryKey(), + hasIncrementedCount: __t.u32().name('has_incremented_count'), +}); diff --git a/crates/bindings-typescript/test-solid-router/src/module_bindings/types/index.ts b/crates/bindings-typescript/test-solid-router/src/module_bindings/types/index.ts new file mode 100644 index 00000000000..971fd23a7e8 --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/src/module_bindings/types/index.ts @@ -0,0 +1,13 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +/* eslint-disable */ +/* tslint:disable */ +import { type Infer as __Infer } from '../../../../src/index'; + +// Import all non-reducer types +import Counter from '../counter_type'; +import User from '../user_type'; + +export type Counter = __Infer; +export type User = __Infer; diff --git a/crates/bindings-typescript/test-solid-router/src/module_bindings/types/procedures.ts b/crates/bindings-typescript/test-solid-router/src/module_bindings/types/procedures.ts new file mode 100644 index 00000000000..a39363a990e --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/src/module_bindings/types/procedures.ts @@ -0,0 +1,8 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +/* eslint-disable */ +/* tslint:disable */ +import { type Infer as __Infer } from '../../../../src/index'; + +// Import all procedure arg schemas diff --git a/crates/bindings-typescript/test-solid-router/src/module_bindings/types/reducers.ts b/crates/bindings-typescript/test-solid-router/src/module_bindings/types/reducers.ts new file mode 100644 index 00000000000..636548e076f --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/src/module_bindings/types/reducers.ts @@ -0,0 +1,13 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +/* eslint-disable */ +/* tslint:disable */ +import { type Infer as __Infer } from '../../../../src/index'; + +// Import all reducer arg schemas +import ClearCounterReducer from '../clear_counter_reducer'; +import IncrementCounterReducer from '../increment_counter_reducer'; + +export type ClearCounterParams = __Infer; +export type IncrementCounterParams = __Infer; diff --git a/crates/bindings-typescript/test-solid-router/src/module_bindings/user_table.ts b/crates/bindings-typescript/test-solid-router/src/module_bindings/user_table.ts new file mode 100644 index 00000000000..66041140a28 --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/src/module_bindings/user_table.ts @@ -0,0 +1,16 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +/* eslint-disable */ +/* tslint:disable */ +import { + TypeBuilder as __TypeBuilder, + t as __t, + type AlgebraicTypeType as __AlgebraicTypeType, + type Infer as __Infer, +} from '../../../src/index'; + +export default __t.row({ + identity: __t.identity().primaryKey(), + hasIncrementedCount: __t.u32().name('has_incremented_count'), +}); diff --git a/crates/bindings-typescript/test-solid-router/src/module_bindings/user_type.ts b/crates/bindings-typescript/test-solid-router/src/module_bindings/user_type.ts new file mode 100644 index 00000000000..ad6fb447e3c --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/src/module_bindings/user_type.ts @@ -0,0 +1,16 @@ +// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE +// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD. + +/* eslint-disable */ +/* tslint:disable */ +import { + TypeBuilder as __TypeBuilder, + t as __t, + type AlgebraicTypeType as __AlgebraicTypeType, + type Infer as __Infer, +} from '../../../src/index'; + +export default __t.object('User', { + identity: __t.identity(), + hasIncrementedCount: __t.u32(), +}); diff --git a/crates/bindings-typescript/test-solid-router/src/pages/UserPage.tsx b/crates/bindings-typescript/test-solid-router/src/pages/UserPage.tsx new file mode 100644 index 00000000000..d52729d66a2 --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/src/pages/UserPage.tsx @@ -0,0 +1,33 @@ +import { useSpacetimeDB, useTable } from '../../../src/solid'; +import { tables, User } from '../module_bindings'; +import { Infer } from '../../../src'; + +export default function UserPage() { + const connection = useSpacetimeDB(); + const [users] = useTable(tables.user); + + const identityHex = connection.identity?.toHexString(); + const currentUser = users.find( + (u: Infer) => u.identity.toHexString() === identityHex + ); + + return ( +
+

User Page

+ + {currentUser ? ( +
+

+ Identity: {identityHex} +

+

+ Times Incremented:{' '} + {currentUser.hasIncrementedCount} +

+
+ ) : ( +

No user record found. Are you connected?

+ )} +
+ ); +} diff --git a/crates/bindings-typescript/test-solid-router/src/pages/home.tsx b/crates/bindings-typescript/test-solid-router/src/pages/home.tsx new file mode 100644 index 00000000000..ad31961f40d --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/src/pages/home.tsx @@ -0,0 +1,38 @@ +import { useReducer, useTable } from '../../../src/solid'; +import { tables, reducers } from '../module_bindings'; + +export default function Home() { + const [counter] = useTable(tables.counter); + const incrementCounter = useReducer(reducers.incrementCounter); + const clearCounter = useReducer(reducers.clearCounter); + + console.log('Rendering CounterPage, current counter:', counter); + + return ( +
+

Counter

+ +
+ + + +
+ +

+ Click above to increment the count, click below to clear the count. +

+
+ ); +} diff --git a/crates/bindings-typescript/test-solid-router/src/routes.ts b/crates/bindings-typescript/test-solid-router/src/routes.ts new file mode 100644 index 00000000000..f698c749225 --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/src/routes.ts @@ -0,0 +1,20 @@ +import { lazy } from 'solid-js'; +import type { RouteDefinition } from '@solidjs/router'; + +import Home from './pages/home'; +import UserPage from './pages/UserPage'; + +export const routes: RouteDefinition[] = [ + { + path: '/', + component: Home, + }, + { + path: '/user', + component: UserPage, + }, + { + path: '**', + component: lazy(() => import('./errors/404')), + }, +]; diff --git a/crates/bindings-typescript/test-solid-router/tsconfig.json b/crates/bindings-typescript/test-solid-router/tsconfig.json new file mode 100644 index 00000000000..8b4ebee2ba6 --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + // General + "jsx": "preserve", + "jsxImportSource": "solid-js", + "target": "ESNext", + + // Modules + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "isolatedModules": true, + "module": "ESNext", + "moduleResolution": "bundler", + "noEmit": true, + + // Type Checking & Safety + "strict": true, + "types": ["vite/client"] + } +} diff --git a/crates/bindings-typescript/test-solid-router/vite.config.ts b/crates/bindings-typescript/test-solid-router/vite.config.ts new file mode 100644 index 00000000000..d73f3ef2dab --- /dev/null +++ b/crates/bindings-typescript/test-solid-router/vite.config.ts @@ -0,0 +1,13 @@ +import { defineConfig } from 'vite'; +import solidPlugin from 'vite-plugin-solid'; +import devtools from 'solid-devtools/vite'; + +export default defineConfig({ + plugins: [devtools(), solidPlugin()], + server: { + port: 3000, + }, + build: { + target: 'esnext', + }, +}); diff --git a/crates/bindings-typescript/tsup.config.ts b/crates/bindings-typescript/tsup.config.ts index 17ff802a05d..80c4af53d31 100644 --- a/crates/bindings-typescript/tsup.config.ts +++ b/crates/bindings-typescript/tsup.config.ts @@ -172,6 +172,38 @@ export default defineConfig([ esbuildOptions: commonEsbuildTweaks(), }, + // Solid subpath (SSR-friendly): dist/solid/index.{mjs,cjs} + { + entry: { index: 'src/solid/index.ts' }, + format: ['esm', 'cjs'], + target: 'es2022', + outDir: 'dist/solid', + dts: false, + sourcemap: true, + clean: true, + platform: 'neutral', + treeshake: 'smallest', + external: ['solid-js'], + outExtension, + esbuildOptions: commonEsbuildTweaks(), + }, + + // Solid subpath (browser ESM): dist/browser/solid/index.mjs + { + entry: { index: 'src/solid/index.ts' }, + format: ['esm'], + target: 'es2022', + outDir: 'dist/browser/solid', + dts: false, + sourcemap: true, + clean: true, + platform: 'browser', + treeshake: 'smallest', + external: ['solid-js'], + outExtension, + esbuildOptions: commonEsbuildTweaks(), + }, + // SDK subpath (SSR-friendly): dist/sdk/index.{mjs,cjs} { entry: { index: 'src/sdk/index.ts' }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 15e42cbe7b6..f33287bd19f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -46,7 +46,7 @@ importers: version: 5.6.3 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(jiti@2.6.1)(jsdom@26.1.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) crates/bindings-typescript: dependencies: @@ -71,6 +71,9 @@ importers: safe-stable-stringify: specifier: ^2.5.0 version: 2.5.0 + solid-js: + specifier: ^1.6.0 + version: 1.9.13 statuses: specifier: ^2.0.2 version: 2.0.2 @@ -119,7 +122,7 @@ importers: version: 8.40.0(eslint@9.33.0(jiti@2.6.1))(typescript@5.9.3) '@vitest/coverage-v8': specifier: ^3.2.4 - version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.6.1)(jsdom@26.1.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) brotli-size-cli: specifier: ^1.0.0 version: 1.0.0 @@ -143,7 +146,7 @@ importers: version: 10.9.2(@types/node@24.3.0)(typescript@5.9.3) tsup: specifier: ^8.1.0 - version: 8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) + version: 8.5.0(jiti@2.6.1)(postcss@8.5.14)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) typescript: specifier: ^5.9.3 version: 5.9.3 @@ -152,10 +155,10 @@ importers: version: 8.40.0(eslint@9.33.0(jiti@2.6.1))(typescript@5.9.3) vite: specifier: ^7.1.5 - version: 7.1.5(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + version: 7.1.5(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.6.1)(jsdom@26.1.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) crates/bindings-typescript/case-conversion-test-client: dependencies: @@ -190,34 +193,34 @@ importers: version: 18.3.7(@types/react@18.3.23) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.7.0(vite@7.1.5(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 4.7.0(vite@7.1.5(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) typescript: specifier: ^5.2.2 version: 5.9.2 vite: specifier: ^7.1.5 - version: 7.1.5(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + version: 7.1.5(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) docs: dependencies: '@docusaurus/core': specifier: 3.9.2 - version: 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + version: 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/plugin-client-redirects': specifier: ^3.9.2 - version: 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + version: 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/plugin-content-docs': specifier: 3.9.2 - version: 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + version: 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/preset-classic': specifier: 3.9.2 - version: 3.9.2(@algolia/client-search@5.46.2)(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3) + version: 3.9.2(@algolia/client-search@5.46.2)(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(@types/react@18.3.23)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3) '@docusaurus/theme-common': specifier: 3.9.2 - version: 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@easyops-cn/docusaurus-search-local': specifier: ^0.49.2 - version: 0.49.2(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + version: 0.49.2(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@fontsource-variable/inter': specifier: ^5.2.8 version: 5.2.8 @@ -266,7 +269,7 @@ importers: version: 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@signalwire/docusaurus-plugin-llms-txt': specifier: ^1.2.2 - version: 1.2.2(@docusaurus/core@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)) + version: 1.2.2(@docusaurus/core@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)) '@types/react': specifier: ^18.3.23 version: 18.3.23 @@ -339,7 +342,7 @@ importers: devDependencies: '@angular/build': specifier: ^21.1.1 - version: 21.1.4(@angular/compiler-cli@21.1.4(@angular/compiler@21.1.4)(typescript@5.9.3))(@angular/compiler@21.1.4)(@angular/core@21.1.4(@angular/compiler@21.1.4)(rxjs@7.8.2))(@angular/platform-browser@21.1.4(@angular/common@21.1.4(@angular/core@21.1.4(@angular/compiler@21.1.4)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.1.4(@angular/compiler@21.1.4)(rxjs@7.8.2)))(@types/node@24.3.0)(chokidar@5.0.0)(jiti@2.6.1)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(jiti@2.6.1)(jsdom@26.1.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2) + version: 21.1.4(@angular/compiler-cli@21.1.4(@angular/compiler@21.1.4)(typescript@5.9.3))(@angular/compiler@21.1.4)(@angular/core@21.1.4(@angular/compiler@21.1.4)(rxjs@7.8.2))(@angular/platform-browser@21.1.4(@angular/common@21.1.4(@angular/core@21.1.4(@angular/compiler@21.1.4)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.1.4(@angular/compiler@21.1.4)(rxjs@7.8.2)))(@types/node@24.3.0)(chokidar@5.0.0)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.14)(tailwindcss@4.3.0)(terser@5.43.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2) '@angular/cli': specifier: ^21.1.1 version: 21.1.4(@types/node@24.3.0)(chokidar@5.0.0) @@ -377,7 +380,7 @@ importers: version: 5.6.3 vite: specifier: ^7.1.5 - version: 7.1.5(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + version: 7.1.5(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) templates/bun-ts: dependencies: @@ -427,7 +430,7 @@ importers: version: 18.3.7(@types/react@18.3.23) '@vitejs/plugin-react': specifier: ^5.0.2 - version: 5.0.2(vite@7.1.5(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 5.0.2(vite@7.1.5(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) eslint: specifier: ^9.17.0 version: 9.33.0(jiti@2.6.1) @@ -454,10 +457,10 @@ importers: version: 8.40.0(eslint@9.33.0(jiti@2.6.1))(typescript@5.6.3) vite: specifier: ^7.1.5 - version: 7.1.5(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + version: 7.1.5(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) vitest: specifier: 3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.6.1)(jsdom@26.1.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) templates/chat-react-ts/spacetimedb: dependencies: @@ -549,7 +552,7 @@ importers: dependencies: nuxt: specifier: ~3.16.0 - version: 3.16.2(@parcel/watcher@2.5.6)(@types/node@24.3.0)(better-sqlite3@12.6.2)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(@types/sql.js@1.4.9)(better-sqlite3@12.6.2)(bun-types@1.3.11)(pg@8.18.0)(sql.js@1.14.0)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(@types/sql.js@1.4.9)(better-sqlite3@12.6.2)(bun-types@1.3.11)(pg@8.18.0)(sql.js@1.14.0))(encoding@0.1.13)(eslint@9.33.0(jiti@2.6.1))(ioredis@5.9.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.56.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(typescript@5.6.3)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.6.3))(yaml@2.8.2) + version: 3.16.2(@parcel/watcher@2.5.6)(@types/node@24.3.0)(better-sqlite3@12.6.2)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(@types/sql.js@1.4.9)(better-sqlite3@12.6.2)(bun-types@1.3.11)(pg@8.18.0)(sql.js@1.14.0)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(@types/sql.js@1.4.9)(better-sqlite3@12.6.2)(bun-types@1.3.11)(pg@8.18.0)(sql.js@1.14.0))(encoding@0.1.13)(eslint@9.33.0(jiti@2.6.1))(ioredis@5.9.2)(lightningcss@1.32.0)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.56.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(typescript@5.6.3)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.6.3))(yaml@2.8.2) spacetimedb: specifier: workspace:* version: link:../../crates/bindings-typescript @@ -581,13 +584,13 @@ importers: version: 18.3.7(@types/react@18.3.23) '@vitejs/plugin-react': specifier: ^5.0.2 - version: 5.0.2(vite@7.1.5(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 5.0.2(vite@7.1.5(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) typescript: specifier: ~5.6.2 version: 5.6.3 vite: specifier: ^7.1.5 - version: 7.1.5(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + version: 7.1.5(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) templates/remix-ts: dependencies: @@ -615,7 +618,7 @@ importers: devDependencies: '@remix-run/dev': specifier: ^2.16.0 - version: 2.17.4(@remix-run/react@2.17.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@remix-run/serve@2.17.4(typescript@5.6.3))(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(ts-node@10.9.2(@types/node@24.3.0)(typescript@5.6.3))(tsx@4.21.0)(typescript@5.6.3)(vite@5.4.21(@types/node@24.3.0)(sass@1.97.1)(terser@5.43.1))(yaml@2.8.2) + version: 2.17.4(@remix-run/react@2.17.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@remix-run/serve@2.17.4(typescript@5.6.3))(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(ts-node@10.9.2(@types/node@24.3.0)(typescript@5.6.3))(tsx@4.21.0)(typescript@5.6.3)(vite@5.4.21(@types/node@24.3.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1))(yaml@2.8.2) '@types/react': specifier: ^18.3.18 version: 18.3.23 @@ -627,7 +630,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.0 - version: 5.4.21(@types/node@24.3.0)(sass@1.97.1)(terser@5.43.1) + version: 5.4.21(@types/node@24.3.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1) templates/svelte-ts: dependencies: @@ -637,7 +640,7 @@ importers: devDependencies: '@sveltejs/vite-plugin-svelte': specifier: ^5.1.1 - version: 5.1.1(svelte@5.46.4)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 5.1.1(svelte@5.46.4)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) svelte: specifier: ^5.0.0 version: 5.46.4 @@ -649,7 +652,7 @@ importers: version: 5.6.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + version: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) templates/tanstack-ts: dependencies: @@ -670,7 +673,7 @@ importers: version: 1.162.8(@tanstack/query-core@5.90.19)(@tanstack/react-query@5.90.19(react@19.2.4))(@tanstack/react-router@1.162.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(@tanstack/router-core@1.162.6)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-start': specifier: ^1.162.0 - version: 1.162.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.102.0) + version: 1.162.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.7.0)(solid-js@1.9.13)(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)))(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.102.0) react: specifier: ^19.0.0 version: 19.2.4 @@ -692,16 +695,16 @@ importers: version: 19.2.3(@types/react@19.1.13) '@vitejs/plugin-react': specifier: ^4.3.0 - version: 4.7.0(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 4.7.0(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) typescript: specifier: ^5.7.2 version: 5.9.3 vite: specifier: ^7.1.5 - version: 7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + version: 7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.9.3)(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 5.1.4(typescript@5.9.3)(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) templates/vue-ts: dependencies: @@ -714,13 +717,13 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.4 - version: 5.2.4(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3)) + version: 5.2.4(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3)) typescript: specifier: ~5.6.2 version: 5.6.3 vite: specifier: ^6.4.1 - version: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + version: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) vue-tsc: specifier: ^2.2.0 version: 2.2.12(typescript@5.6.3) @@ -1111,6 +1114,10 @@ packages: resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.18.6': + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.27.1': resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} @@ -1201,11 +1208,6 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@7.28.5': - resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} - engines: {node: '>=6.0.0'} - hasBin: true - '@babel/parser@7.28.6': resolution: {integrity: sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==} engines: {node: '>=6.0.0'} @@ -1703,10 +1705,6 @@ packages: resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} engines: {node: '>=6.9.0'} - '@babel/types@7.28.5': - resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} - engines: {node: '>=6.9.0'} - '@babel/types@7.28.6': resolution: {integrity: sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==} engines: {node: '>=6.9.0'} @@ -7174,6 +7172,11 @@ packages: babel-plugin-dynamic-import-node@2.3.3: resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} + babel-plugin-jsx-dom-expressions@0.40.7: + resolution: {integrity: sha512-/O6JWUmjv03OI9lL2ry9bUjpD5S3PclM55RRJEyCdcFZ5W2SEA/59d+l2hNsk3gI6kiWRdRPdOtqZmsQzFN1pQ==} + peerDependencies: + '@babel/core': ^7.20.12 + babel-plugin-polyfill-corejs2@0.4.14: resolution: {integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==} peerDependencies: @@ -7189,6 +7192,15 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-preset-solid@1.9.12: + resolution: {integrity: sha512-LLqnuKVDlKpyBlMPcH6qEvs/wmS9a+NczppxJ3ryS/c0O5IiSFOIBQi9GzyiGDSbcJpx4Gr87jyFTos1MyEuWg==} + peerDependencies: + '@babel/core': ^7.0.0 + solid-js: ^1.9.12 + peerDependenciesMeta: + solid-js: + optional: true + bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -9298,6 +9310,9 @@ packages: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} engines: {node: '>=18'} + html-entities@2.3.3: + resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} + html-entities@2.6.0: resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==} @@ -9980,6 +9995,76 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + lightningcss-android-arm64@1.32.0: + resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [android] + + lightningcss-darwin-arm64@1.32.0: + resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.32.0: + resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.32.0: + resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.32.0: + resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.32.0: + resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.32.0: + resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.32.0: + resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.32.0: + resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.32.0: + resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.32.0: + resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.32.0: + resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} + engines: {node: '>= 12.0.0'} + lil-fp@1.4.5: resolution: {integrity: sha512-RrMQ2dB7SDXriFPZMMHEmroaSP6lFw3QEV7FOfSkf19kvJnDzHqKMc2P9HOf5uE8fOp5YxodSrq7XxWjdeC2sw==} @@ -11989,6 +12074,10 @@ packages: peerDependencies: postcss: ^8.4.31 + postcss@8.5.14: + resolution: {integrity: sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==} + engines: {node: ^10 || ^12 || >=14} + postcss@8.5.6: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} @@ -12939,6 +13028,14 @@ packages: resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + solid-js@1.9.13: + resolution: {integrity: sha512-6hJeJMOcEX8ktqjpDoJZEmld3ijvcvWBDtiXBm7f4332SiFN66QeAQI1REQshvyUoISsSeJ4PHDauKYbwao9JQ==} + + solid-refresh@0.6.3: + resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==} + peerDependencies: + solid-js: ^1.3 + sort-css-media-queries@2.2.0: resolution: {integrity: sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==} engines: {node: '>= 6.3.0'} @@ -13245,6 +13342,9 @@ packages: tailwind-merge@2.6.0: resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==} + tailwindcss@4.3.0: + resolution: {integrity: sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q==} + tapable@2.3.0: resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} @@ -14050,6 +14150,16 @@ packages: '@nuxt/kit': optional: true + vite-plugin-solid@2.11.12: + resolution: {integrity: sha512-FgjPcx2OwX9h6f28jli7A4bG7PP3te8uyakE5iqsmpq3Jqi1TWLgSroC9N6cMfGRU2zXsl4Q6ISvTr2VL0QHpA==} + peerDependencies: + '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.* + solid-js: ^1.7.2 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + '@testing-library/jest-dom': + optional: true + vite-plugin-vue-tracer@1.2.0: resolution: {integrity: sha512-a9Z/TLpxwmoE9kIcv28wqQmiszM7ec4zgndXWEsVD/2lEZLRGzcg7ONXmplzGF/UP5W59QNtS809OdywwpUWQQ==} peerDependencies: @@ -14889,7 +14999,7 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular/build@21.1.4(@angular/compiler-cli@21.1.4(@angular/compiler@21.1.4)(typescript@5.9.3))(@angular/compiler@21.1.4)(@angular/core@21.1.4(@angular/compiler@21.1.4)(rxjs@7.8.2))(@angular/platform-browser@21.1.4(@angular/common@21.1.4(@angular/core@21.1.4(@angular/compiler@21.1.4)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.1.4(@angular/compiler@21.1.4)(rxjs@7.8.2)))(@types/node@24.3.0)(chokidar@5.0.0)(jiti@2.6.1)(postcss@8.5.6)(terser@5.43.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(jiti@2.6.1)(jsdom@26.1.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2)': + '@angular/build@21.1.4(@angular/compiler-cli@21.1.4(@angular/compiler@21.1.4)(typescript@5.9.3))(@angular/compiler@21.1.4)(@angular/core@21.1.4(@angular/compiler@21.1.4)(rxjs@7.8.2))(@angular/platform-browser@21.1.4(@angular/common@21.1.4(@angular/core@21.1.4(@angular/compiler@21.1.4)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.1.4(@angular/compiler@21.1.4)(rxjs@7.8.2)))(@types/node@24.3.0)(chokidar@5.0.0)(jiti@2.6.1)(lightningcss@1.32.0)(postcss@8.5.14)(tailwindcss@4.3.0)(terser@5.43.1)(tslib@2.8.1)(tsx@4.21.0)(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.2101.4(chokidar@5.0.0) @@ -14899,7 +15009,7 @@ snapshots: '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-split-export-declaration': 7.24.7 '@inquirer/confirm': 5.1.21(@types/node@24.3.0) - '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + '@vitejs/plugin-basic-ssl': 2.1.0(vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) beasties: 0.3.5 browserslist: 4.28.1 esbuild: 0.27.2 @@ -14920,14 +15030,15 @@ snapshots: tslib: 2.8.1 typescript: 5.9.3 undici: 7.20.0 - vite: 7.3.0(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.0(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) watchpack: 2.5.0 optionalDependencies: '@angular/core': 21.1.4(@angular/compiler@21.1.4)(rxjs@7.8.2) '@angular/platform-browser': 21.1.4(@angular/common@21.1.4(@angular/core@21.1.4(@angular/compiler@21.1.4)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@21.1.4(@angular/compiler@21.1.4)(rxjs@7.8.2)) lmdb: 3.4.4 - postcss: 8.5.6 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(jiti@2.6.1)(jsdom@26.1.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + postcss: 8.5.14 + tailwindcss: 4.3.0 + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - '@types/node' - chokidar @@ -15302,6 +15413,11 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-imports@7.18.6': + dependencies: + '@babel/types': 7.28.6 + optional: true + '@babel/helper-module-imports@7.27.1': dependencies: '@babel/traverse': 7.28.6 @@ -15441,10 +15557,6 @@ snapshots: dependencies: '@babel/types': 7.28.4 - '@babel/parser@7.28.5': - dependencies: - '@babel/types': 7.28.5 - '@babel/parser@7.28.6': dependencies: '@babel/types': 7.28.6 @@ -15560,22 +15672,22 @@ snapshots: '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.6)': dependencies: '@babel/core': 7.28.6 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.6)': dependencies: '@babel/core': 7.28.6 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.3)': dependencies: @@ -16626,11 +16738,6 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/types@7.28.5': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - '@babel/types@7.28.6': dependencies: '@babel/helper-string-parser': 7.27.1 @@ -17013,7 +17120,7 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/bundler@3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': + '@docusaurus/bundler@3.9.2(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: '@babel/core': 7.28.3 '@docusaurus/babel': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -17025,7 +17132,7 @@ snapshots: clean-css: 5.3.3 copy-webpack-plugin: 11.0.0(webpack@5.102.0) css-loader: 6.11.0(webpack@5.102.0) - css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.102.0) + css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(lightningcss@1.32.0)(webpack@5.102.0) cssnano: 6.1.2(postcss@8.5.6) file-loader: 6.2.0(webpack@5.102.0) html-minifier-terser: 7.2.0 @@ -17054,10 +17161,10 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/core@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': + '@docusaurus/core@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: '@docusaurus/babel': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/bundler': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/bundler': 3.9.2(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/logger': 3.9.2 '@docusaurus/mdx-loader': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -17188,9 +17295,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/plugin-client-redirects@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': + '@docusaurus/plugin-client-redirects@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/logger': 3.9.2 '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils-common': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -17219,13 +17326,13 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-blog@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': + '@docusaurus/plugin-content-blog@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/logger': 3.9.2 '@docusaurus/mdx-loader': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils-common': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -17260,13 +17367,13 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': + '@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/logger': 3.9.2 '@docusaurus/mdx-loader': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/module-type-aliases': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils-common': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -17300,13 +17407,13 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': + '@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/logger': 3.9.2 '@docusaurus/mdx-loader': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/module-type-aliases': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils-common': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -17340,9 +17447,9 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-content-pages@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': + '@docusaurus/plugin-content-pages@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/mdx-loader': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -17370,9 +17477,9 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-css-cascade-layers@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': + '@docusaurus/plugin-css-cascade-layers@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -17397,9 +17504,9 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-debug@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': + '@docusaurus/plugin-debug@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) fs-extra: 11.3.2 @@ -17425,9 +17532,9 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-analytics@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': + '@docusaurus/plugin-google-analytics@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -17451,9 +17558,9 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-gtag@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': + '@docusaurus/plugin-google-gtag@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/gtag.js': 0.0.12 @@ -17478,9 +17585,9 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-google-tag-manager@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': + '@docusaurus/plugin-google-tag-manager@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -17504,9 +17611,9 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-sitemap@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': + '@docusaurus/plugin-sitemap@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/logger': 3.9.2 '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -17535,9 +17642,9 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/plugin-svgr@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': + '@docusaurus/plugin-svgr@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -17565,22 +17672,22 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/preset-classic@3.9.2(@algolia/client-search@5.46.2)(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)': - dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - '@docusaurus/plugin-content-pages': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - '@docusaurus/plugin-css-cascade-layers': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - '@docusaurus/plugin-debug': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - '@docusaurus/plugin-google-analytics': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - '@docusaurus/plugin-google-gtag': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - '@docusaurus/plugin-google-tag-manager': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - '@docusaurus/plugin-sitemap': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - '@docusaurus/plugin-svgr': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - '@docusaurus/theme-classic': 3.9.2(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/theme-search-algolia': 3.9.2(@algolia/client-search@5.46.2)(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3) + '@docusaurus/preset-classic@3.9.2(@algolia/client-search@5.46.2)(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(@types/react@18.3.23)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)': + dependencies: + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-content-pages': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-css-cascade-layers': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-debug': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-google-analytics': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-google-gtag': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-google-tag-manager': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-sitemap': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-svgr': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/theme-classic': 3.9.2(@types/react@18.3.23)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/theme-search-algolia': 3.9.2(@algolia/client-search@5.46.2)(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(@types/react@18.3.23)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3) '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -17610,16 +17717,16 @@ snapshots: '@types/react': 18.3.23 react: 18.3.1 - '@docusaurus/theme-classic@3.9.2(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': + '@docusaurus/theme-classic@3.9.2(@types/react@18.3.23)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/logger': 3.9.2 '@docusaurus/mdx-loader': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/module-type-aliases': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - '@docusaurus/plugin-content-pages': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/plugin-content-blog': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-content-pages': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/theme-translations': 3.9.2 '@docusaurus/types': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -17657,11 +17764,11 @@ snapshots: - utf-8-validate - webpack-cli - '@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@docusaurus/mdx-loader': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/module-type-aliases': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils-common': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/history': 4.7.11 @@ -17681,11 +17788,11 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@docusaurus/mdx-loader': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/module-type-aliases': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils-common': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/history': 4.7.11 @@ -17705,13 +17812,13 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/theme-search-algolia@3.9.2(@algolia/client-search@5.46.2)(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)': + '@docusaurus/theme-search-algolia@3.9.2(@algolia/client-search@5.46.2)(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(@types/react@18.3.23)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.6.3)': dependencies: '@docsearch/react': 4.2.0(@algolia/client-search@5.46.2)(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) '@docusaurus/logger': 3.9.2 - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/theme-translations': 3.9.2 '@docusaurus/utils': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils-validation': 3.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -17933,10 +18040,10 @@ snapshots: cssesc: 3.0.0 immediate: 3.3.0 - '@easyops-cn/docusaurus-search-local@0.49.2(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': + '@easyops-cn/docusaurus-search-local@0.49.2(@docusaurus/theme-common@3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)': dependencies: - '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/plugin-content-docs': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/theme-common': 3.9.2(@docusaurus/plugin-content-docs@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/theme-translations': 3.9.1 '@docusaurus/utils': 3.9.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/utils-common': 3.9.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -19535,11 +19642,11 @@ snapshots: '@nuxt/devalue@2.0.2': {} - '@nuxt/devtools-kit@2.7.0(magicast@0.3.5)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))': + '@nuxt/devtools-kit@2.7.0(magicast@0.3.5)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@nuxt/kit': 3.21.1(magicast@0.3.5) execa: 8.0.1 - vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - magicast @@ -19554,12 +19661,12 @@ snapshots: prompts: 2.4.2 semver: 7.7.4 - '@nuxt/devtools@2.7.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3))': + '@nuxt/devtools@2.7.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3))': dependencies: - '@nuxt/devtools-kit': 2.7.0(magicast@0.3.5)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + '@nuxt/devtools-kit': 2.7.0(magicast@0.3.5)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) '@nuxt/devtools-wizard': 2.7.0 '@nuxt/kit': 3.21.1(magicast@0.3.5) - '@vue/devtools-core': 7.7.9(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3)) + '@vue/devtools-core': 7.7.9(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3)) '@vue/devtools-kit': 7.7.9 birpc: 2.9.0 consola: 3.4.2 @@ -19584,9 +19691,9 @@ snapshots: sirv: 3.0.2 structured-clone-es: 1.0.0 tinyglobby: 0.2.15 - vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) - vite-plugin-inspect: 11.3.3(@nuxt/kit@3.21.1(magicast@0.3.5))(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) - vite-plugin-vue-tracer: 1.2.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3)) + vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite-plugin-inspect: 11.3.3(@nuxt/kit@3.21.1(magicast@0.3.5))(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + vite-plugin-vue-tracer: 1.2.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3)) which: 5.0.0 ws: 8.18.3 transitivePeerDependencies: @@ -19664,12 +19771,12 @@ snapshots: rc9: 3.0.0 std-env: 3.10.0 - '@nuxt/vite-builder@3.16.2(@types/node@24.3.0)(eslint@9.33.0(jiti@2.6.1))(magicast@0.5.1)(optionator@0.9.4)(rollup@4.56.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(typescript@5.6.3)(vue-tsc@2.2.12(typescript@5.6.3))(vue@3.5.26(typescript@5.6.3))(yaml@2.8.2)': + '@nuxt/vite-builder@3.16.2(@types/node@24.3.0)(eslint@9.33.0(jiti@2.6.1))(lightningcss@1.32.0)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.56.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(typescript@5.6.3)(vue-tsc@2.2.12(typescript@5.6.3))(vue@3.5.26(typescript@5.6.3))(yaml@2.8.2)': dependencies: '@nuxt/kit': 3.16.2(magicast@0.5.1) '@rollup/plugin-replace': 6.0.3(rollup@4.56.0) - '@vitejs/plugin-vue': 5.2.4(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3)) - '@vitejs/plugin-vue-jsx': 4.2.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3)) + '@vitejs/plugin-vue': 5.2.4(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3)) + '@vitejs/plugin-vue-jsx': 4.2.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3)) autoprefixer: 10.4.21(postcss@8.5.6) consola: 3.4.2 cssnano: 7.1.2(postcss@8.5.6) @@ -19695,9 +19802,9 @@ snapshots: ufo: 1.6.3 unenv: 2.0.0-rc.24 unplugin: 2.3.11 - vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) - vite-node: 3.2.4(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) - vite-plugin-checker: 0.9.3(eslint@9.33.0(jiti@2.6.1))(optionator@0.9.4)(typescript@5.6.3)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.6.3)) + vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite-node: 3.2.4(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite-plugin-checker: 0.9.3(eslint@9.33.0(jiti@2.6.1))(optionator@0.9.4)(typescript@5.6.3)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.6.3)) vue: 3.5.26(typescript@5.6.3) vue-bundle-renderer: 2.2.0 transitivePeerDependencies: @@ -20647,7 +20754,7 @@ snapshots: '@radix-ui/rect@1.1.1': {} - '@remix-run/dev@2.17.4(@remix-run/react@2.17.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@remix-run/serve@2.17.4(typescript@5.6.3))(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(ts-node@10.9.2(@types/node@24.3.0)(typescript@5.6.3))(tsx@4.21.0)(typescript@5.6.3)(vite@5.4.21(@types/node@24.3.0)(sass@1.97.1)(terser@5.43.1))(yaml@2.8.2)': + '@remix-run/dev@2.17.4(@remix-run/react@2.17.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@remix-run/serve@2.17.4(typescript@5.6.3))(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(ts-node@10.9.2(@types/node@24.3.0)(typescript@5.6.3))(tsx@4.21.0)(typescript@5.6.3)(vite@5.4.21(@types/node@24.3.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1))(yaml@2.8.2)': dependencies: '@babel/core': 7.28.6 '@babel/generator': 7.28.6 @@ -20664,7 +20771,7 @@ snapshots: '@remix-run/router': 1.23.2 '@remix-run/server-runtime': 2.17.4(typescript@5.6.3) '@types/mdx': 2.0.13 - '@vanilla-extract/integration': 6.5.0(@types/node@24.3.0)(sass@1.97.1)(terser@5.43.1) + '@vanilla-extract/integration': 6.5.0(@types/node@24.3.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1) arg: 5.0.2 cacache: 17.1.4 chalk: 4.1.2 @@ -20704,12 +20811,12 @@ snapshots: tar-fs: 2.1.4 tsconfig-paths: 4.2.0 valibot: 1.2.0(typescript@5.6.3) - vite-node: 3.2.4(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite-node: 3.2.4(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) ws: 7.5.10 optionalDependencies: '@remix-run/serve': 2.17.4(typescript@5.6.3) typescript: 5.6.3 - vite: 5.4.21(@types/node@24.3.0)(sass@1.97.1)(terser@5.43.1) + vite: 5.4.21(@types/node@24.3.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -21124,9 +21231,9 @@ snapshots: '@sideway/pinpoint@2.0.0': {} - '@signalwire/docusaurus-plugin-llms-txt@1.2.2(@docusaurus/core@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))': + '@signalwire/docusaurus-plugin-llms-txt@1.2.2(@docusaurus/core@3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))': dependencies: - '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + '@docusaurus/core': 3.9.2(@mdx-js/react@3.1.1(@types/react@18.3.23)(react@18.3.1))(debug@4.4.3)(lightningcss@1.32.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) fs-extra: 11.3.2 hast-util-select: 6.0.4 hast-util-to-html: 9.0.5 @@ -21254,25 +21361,25 @@ snapshots: dependencies: acorn: 8.15.0 - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.46.4)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.46.4)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.46.4)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.46.4)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.46.4)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + '@sveltejs/vite-plugin-svelte': 5.1.1(svelte@5.46.4)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) debug: 4.4.3 svelte: 5.46.4 - vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.46.4)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))': + '@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.46.4)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.46.4)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.46.4)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.1(svelte@5.46.4)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)))(svelte@5.46.4)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) debug: 4.4.3 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.21 svelte: 5.46.4 - vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) - vitefu: 1.1.1(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vitefu: 1.1.1(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) transitivePeerDependencies: - supports-color @@ -21460,19 +21567,19 @@ snapshots: transitivePeerDependencies: - crossws - '@tanstack/react-start@1.162.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.102.0)': + '@tanstack/react-start@1.162.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.7.0)(solid-js@1.9.13)(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)))(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.102.0)': dependencies: '@tanstack/react-router': 1.162.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-start-client': 1.162.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-start-server': 1.162.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/router-utils': 1.161.4 '@tanstack/start-client-core': 1.162.6 - '@tanstack/start-plugin-core': 1.162.8(@tanstack/react-router@1.162.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.102.0) + '@tanstack/start-plugin-core': 1.162.8(@tanstack/react-router@1.162.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.7.0)(solid-js@1.9.13)(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)))(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.102.0) '@tanstack/start-server-core': 1.162.6 pathe: 2.0.3 react: 19.2.4 react-dom: 19.2.4(react@19.2.4) - vite: 7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - '@rsbuild/core' - crossws @@ -21519,7 +21626,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.162.8(@tanstack/react-router@1.162.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.102.0)': + '@tanstack/router-plugin@1.162.8(@tanstack/react-router@1.162.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.7.0)(solid-js@1.9.13)(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)))(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.102.0)': dependencies: '@babel/core': 7.28.6 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.6) @@ -21536,7 +21643,8 @@ snapshots: zod: 3.25.76 optionalDependencies: '@tanstack/react-router': 1.162.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - vite: 7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite-plugin-solid: 2.11.12(@testing-library/jest-dom@6.7.0)(solid-js@1.9.13)(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) webpack: 5.102.0 transitivePeerDependencies: - supports-color @@ -21571,7 +21679,7 @@ snapshots: '@tanstack/start-fn-stubs@1.161.4': {} - '@tanstack/start-plugin-core@1.162.8(@tanstack/react-router@1.162.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.102.0)': + '@tanstack/start-plugin-core@1.162.8(@tanstack/react-router@1.162.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.7.0)(solid-js@1.9.13)(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)))(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.102.0)': dependencies: '@babel/code-frame': 7.27.1 '@babel/core': 7.28.6 @@ -21579,7 +21687,7 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.40 '@tanstack/router-core': 1.162.6 '@tanstack/router-generator': 1.162.6 - '@tanstack/router-plugin': 1.162.8(@tanstack/react-router@1.162.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.102.0) + '@tanstack/router-plugin': 1.162.8(@tanstack/react-router@1.162.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.7.0)(solid-js@1.9.13)(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)))(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(webpack@5.102.0) '@tanstack/router-utils': 1.161.4 '@tanstack/start-client-core': 1.162.6 '@tanstack/start-server-core': 1.162.6 @@ -21591,8 +21699,8 @@ snapshots: srvx: 0.11.7 tinyglobby: 0.2.15 ufo: 1.6.3 - vite: 7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) - vitefu: 1.1.1(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + vite: 7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vitefu: 1.1.1(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) xmlbuilder2: 4.0.3 zod: 3.25.76 transitivePeerDependencies: @@ -21694,24 +21802,24 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 + '@babel/parser': 7.28.6 + '@babel/types': 7.28.6 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.28.0 '@types/babel__generator@7.27.0': dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.28.6 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 + '@babel/parser': 7.28.6 + '@babel/types': 7.28.6 '@types/babel__traverse@7.28.0': dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.28.6 '@types/better-sqlite3@7.6.13': dependencies: @@ -22197,7 +22305,7 @@ snapshots: transitivePeerDependencies: - babel-plugin-macros - '@vanilla-extract/integration@6.5.0(@types/node@24.3.0)(sass@1.97.1)(terser@5.43.1)': + '@vanilla-extract/integration@6.5.0(@types/node@24.3.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)': dependencies: '@babel/core': 7.28.6 '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.6) @@ -22210,8 +22318,8 @@ snapshots: lodash: 4.17.21 mlly: 1.8.0 outdent: 0.8.0 - vite: 5.4.21(@types/node@24.3.0)(sass@1.97.1)(terser@5.43.1) - vite-node: 1.6.1(@types/node@24.3.0)(sass@1.97.1)(terser@5.43.1) + vite: 5.4.21(@types/node@24.3.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1) + vite-node: 1.6.1(@types/node@24.3.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -22247,11 +22355,11 @@ snapshots: '@vercel/oidc@3.0.3': {} - '@vitejs/plugin-basic-ssl@2.1.0(vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitejs/plugin-basic-ssl@2.1.0(vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: - vite: 7.3.0(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.0(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) - '@vitejs/plugin-react@4.7.0(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitejs/plugin-react@4.7.0(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@babel/core': 7.28.3 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.3) @@ -22259,11 +22367,11 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.7.0(vite@7.1.5(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitejs/plugin-react@4.7.0(vite@7.1.5(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@babel/core': 7.28.3 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.3) @@ -22271,11 +22379,11 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.1.5(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.1.5(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@5.0.2(vite@7.1.5(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitejs/plugin-react@5.0.2(vite@7.1.5(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@babel/core': 7.28.3 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.3) @@ -22283,27 +22391,27 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.34 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.1.5(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.1.5(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@4.2.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3))': + '@vitejs/plugin-vue-jsx@4.2.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3))': dependencies: '@babel/core': 7.28.6 '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.6) '@rolldown/pluginutils': 1.0.0-beta.34 '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.6) - vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) vue: 3.5.26(typescript@5.6.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.4(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3))': + '@vitejs/plugin-vue@5.2.4(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3))': dependencies: - vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) vue: 3.5.26(typescript@5.6.3) - '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.6.1)(jsdom@26.1.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -22318,7 +22426,7 @@ snapshots: std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.6.1)(jsdom@26.1.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color @@ -22330,21 +22438,21 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.19 optionalDependencies: - vite: 7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) - '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.19 optionalDependencies: - vite: 7.1.5(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.1.5(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) '@vitest/pretty-format@3.2.4': dependencies: @@ -22434,7 +22542,7 @@ snapshots: '@vue/compiler-core@3.5.26': dependencies: - '@babel/parser': 7.28.5 + '@babel/parser': 7.28.6 '@vue/shared': 3.5.26 entities: 7.0.0 estree-walker: 2.0.2 @@ -22464,7 +22572,7 @@ snapshots: '@vue/compiler-sfc@3.5.26': dependencies: - '@babel/parser': 7.28.5 + '@babel/parser': 7.28.6 '@vue/compiler-core': 3.5.26 '@vue/compiler-dom': 3.5.26 '@vue/compiler-ssr': 3.5.26 @@ -22491,14 +22599,14 @@ snapshots: '@vue/devtools-api@6.6.4': {} - '@vue/devtools-core@7.7.9(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3))': + '@vue/devtools-core@7.7.9(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3))': dependencies: '@vue/devtools-kit': 7.7.9 '@vue/devtools-shared': 7.7.9 mitt: 3.0.1 nanoid: 5.1.6 pathe: 2.0.3 - vite-hot-client: 2.1.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + vite-hot-client: 2.1.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) vue: 3.5.26(typescript@5.6.3) transitivePeerDependencies: - vite @@ -23833,6 +23941,16 @@ snapshots: dependencies: object.assign: 4.1.7 + babel-plugin-jsx-dom-expressions@0.40.7(@babel/core@7.28.6): + dependencies: + '@babel/core': 7.28.6 + '@babel/helper-module-imports': 7.18.6 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.6) + '@babel/types': 7.28.6 + html-entities: 2.3.3 + parse5: 7.3.0 + optional: true + babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.3): dependencies: '@babel/compat-data': 7.28.0 @@ -23881,6 +23999,14 @@ snapshots: transitivePeerDependencies: - supports-color + babel-preset-solid@1.9.12(@babel/core@7.28.6)(solid-js@1.9.13): + dependencies: + '@babel/core': 7.28.6 + babel-plugin-jsx-dom-expressions: 0.40.7(@babel/core@7.28.6) + optionalDependencies: + solid-js: 1.9.13 + optional: true + bail@2.0.2: {} balanced-match@1.0.2: {} @@ -24613,7 +24739,7 @@ snapshots: optionalDependencies: webpack: 5.102.0 - css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.102.0): + css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(lightningcss@1.32.0)(webpack@5.102.0): dependencies: '@jridgewell/trace-mapping': 0.3.30 cssnano: 6.1.2(postcss@8.5.6) @@ -24624,6 +24750,7 @@ snapshots: webpack: 5.102.0 optionalDependencies: clean-css: 5.3.3 + lightningcss: 1.32.0 css-prefers-color-scheme@10.0.0(postcss@8.5.6): dependencies: @@ -26410,6 +26537,9 @@ snapshots: dependencies: whatwg-encoding: 3.1.1 + html-entities@2.3.3: + optional: true + html-entities@2.6.0: {} html-escaper@2.0.2: {} @@ -27042,6 +27172,56 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + lightningcss-android-arm64@1.32.0: + optional: true + + lightningcss-darwin-arm64@1.32.0: + optional: true + + lightningcss-darwin-x64@1.32.0: + optional: true + + lightningcss-freebsd-x64@1.32.0: + optional: true + + lightningcss-linux-arm-gnueabihf@1.32.0: + optional: true + + lightningcss-linux-arm64-gnu@1.32.0: + optional: true + + lightningcss-linux-arm64-musl@1.32.0: + optional: true + + lightningcss-linux-x64-gnu@1.32.0: + optional: true + + lightningcss-linux-x64-musl@1.32.0: + optional: true + + lightningcss-win32-arm64-msvc@1.32.0: + optional: true + + lightningcss-win32-x64-msvc@1.32.0: + optional: true + + lightningcss@1.32.0: + dependencies: + detect-libc: 2.1.2 + optionalDependencies: + lightningcss-android-arm64: 1.32.0 + lightningcss-darwin-arm64: 1.32.0 + lightningcss-darwin-x64: 1.32.0 + lightningcss-freebsd-x64: 1.32.0 + lightningcss-linux-arm-gnueabihf: 1.32.0 + lightningcss-linux-arm64-gnu: 1.32.0 + lightningcss-linux-arm64-musl: 1.32.0 + lightningcss-linux-x64-gnu: 1.32.0 + lightningcss-linux-x64-musl: 1.32.0 + lightningcss-win32-arm64-msvc: 1.32.0 + lightningcss-win32-x64-msvc: 1.32.0 + optional: true + lil-fp@1.4.5: {} lilconfig@3.1.3: {} @@ -28591,15 +28771,15 @@ snapshots: schema-utils: 3.3.0 webpack: 5.102.0 - nuxt@3.16.2(@parcel/watcher@2.5.6)(@types/node@24.3.0)(better-sqlite3@12.6.2)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(@types/sql.js@1.4.9)(better-sqlite3@12.6.2)(bun-types@1.3.11)(pg@8.18.0)(sql.js@1.14.0)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(@types/sql.js@1.4.9)(better-sqlite3@12.6.2)(bun-types@1.3.11)(pg@8.18.0)(sql.js@1.14.0))(encoding@0.1.13)(eslint@9.33.0(jiti@2.6.1))(ioredis@5.9.2)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.56.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(typescript@5.6.3)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.6.3))(yaml@2.8.2): + nuxt@3.16.2(@parcel/watcher@2.5.6)(@types/node@24.3.0)(better-sqlite3@12.6.2)(cac@6.7.14)(db0@0.3.4(better-sqlite3@12.6.2)(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(@types/sql.js@1.4.9)(better-sqlite3@12.6.2)(bun-types@1.3.11)(pg@8.18.0)(sql.js@1.14.0)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(@types/sql.js@1.4.9)(better-sqlite3@12.6.2)(bun-types@1.3.11)(pg@8.18.0)(sql.js@1.14.0))(encoding@0.1.13)(eslint@9.33.0(jiti@2.6.1))(ioredis@5.9.2)(lightningcss@1.32.0)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.56.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(typescript@5.6.3)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.6.3))(yaml@2.8.2): dependencies: '@nuxt/cli': 3.33.1(@nuxt/schema@3.16.2)(cac@6.7.14)(magicast@0.5.1) '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 2.7.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3)) + '@nuxt/devtools': 2.7.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3)) '@nuxt/kit': 3.16.2(magicast@0.5.1) '@nuxt/schema': 3.16.2 '@nuxt/telemetry': 2.7.0(@nuxt/kit@3.16.2(magicast@0.5.1)) - '@nuxt/vite-builder': 3.16.2(@types/node@24.3.0)(eslint@9.33.0(jiti@2.6.1))(magicast@0.5.1)(optionator@0.9.4)(rollup@4.56.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(typescript@5.6.3)(vue-tsc@2.2.12(typescript@5.6.3))(vue@3.5.26(typescript@5.6.3))(yaml@2.8.2) + '@nuxt/vite-builder': 3.16.2(@types/node@24.3.0)(eslint@9.33.0(jiti@2.6.1))(lightningcss@1.32.0)(magicast@0.5.1)(optionator@0.9.4)(rollup@4.56.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(typescript@5.6.3)(vue-tsc@2.2.12(typescript@5.6.3))(vue@3.5.26(typescript@5.6.3))(yaml@2.8.2) '@oxc-parser/wasm': 0.60.0 '@unhead/vue': 2.1.4(vue@3.5.26(typescript@5.6.3)) '@vue/shared': 3.5.26 @@ -29388,12 +29568,12 @@ snapshots: postcss: 8.5.6 ts-node: 10.9.2(@types/node@24.3.0)(typescript@5.6.3) - postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.2): + postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.14)(tsx@4.21.0)(yaml@2.8.2): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 2.6.1 - postcss: 8.5.6 + postcss: 8.5.14 tsx: 4.21.0 yaml: 2.8.2 @@ -29817,6 +29997,13 @@ snapshots: dependencies: postcss: 8.5.6 + postcss@8.5.14: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + optional: true + postcss@8.5.6: dependencies: nanoid: 3.3.11 @@ -31015,6 +31202,22 @@ snapshots: ip-address: 10.1.0 smart-buffer: 4.2.0 + solid-js@1.9.13: + dependencies: + csstype: 3.2.3 + seroval: 1.5.0 + seroval-plugins: 1.5.0(seroval@1.5.0) + + solid-refresh@0.6.3(solid-js@1.9.13): + dependencies: + '@babel/generator': 7.28.6 + '@babel/helper-module-imports': 7.28.6 + '@babel/types': 7.28.6 + solid-js: 1.9.13 + transitivePeerDependencies: + - supports-color + optional: true + sort-css-media-queries@2.2.0: {} source-map-js@1.2.1: {} @@ -31292,7 +31495,7 @@ snapshots: esrap: 2.2.1 is-reference: 3.0.3 locate-character: 3.0.0 - magic-string: 0.30.19 + magic-string: 0.30.21 zimmerframe: 1.1.4 svg-parser@2.0.4: {} @@ -31335,6 +31538,9 @@ snapshots: tailwind-merge@2.6.0: {} + tailwindcss@4.3.0: + optional: true + tapable@2.3.0: {} tar-fs@2.1.4: @@ -31583,7 +31789,7 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.0(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2): + tsup@8.5.0(jiti@2.6.1)(postcss@8.5.14)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2): dependencies: bundle-require: 5.1.0(esbuild@0.25.9) cac: 6.7.14 @@ -31594,7 +31800,7 @@ snapshots: fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.2) + postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.14)(tsx@4.21.0)(yaml@2.8.2) resolve-from: 5.0.0 rollup: 4.50.2 source-map: 0.8.0-beta.0 @@ -31603,7 +31809,7 @@ snapshots: tinyglobby: 0.2.15 tree-kill: 1.2.2 optionalDependencies: - postcss: 8.5.6 + postcss: 8.5.14 typescript: 5.9.3 transitivePeerDependencies: - jiti @@ -32129,23 +32335,23 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-dev-rpc@1.1.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)): + vite-dev-rpc@1.1.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)): dependencies: birpc: 2.9.0 - vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) - vite-hot-client: 2.1.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite-hot-client: 2.1.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) - vite-hot-client@2.1.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)): + vite-hot-client@2.1.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)): dependencies: - vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) - vite-node@1.6.1(@types/node@24.3.0)(sass@1.97.1)(terser@5.43.1): + vite-node@1.6.1(@types/node@24.3.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1): dependencies: cac: 6.7.14 debug: 4.4.3 pathe: 1.1.2 picocolors: 1.1.1 - vite: 5.4.21(@types/node@24.3.0)(sass@1.97.1)(terser@5.43.1) + vite: 5.4.21(@types/node@24.3.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1) transitivePeerDependencies: - '@types/node' - less @@ -32157,13 +32363,13 @@ snapshots: - supports-color - terser - vite-node@3.2.4(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2): + vite-node@3.2.4(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: cac: 6.7.14 debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.3.0(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.0(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - '@types/node' - jiti @@ -32178,13 +32384,13 @@ snapshots: - tsx - yaml - vite-node@3.2.4(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2): + vite-node@3.2.4(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: cac: 6.7.14 debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.3.0(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.3.0(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - '@types/node' - jiti @@ -32199,7 +32405,7 @@ snapshots: - tsx - yaml - vite-plugin-checker@0.9.3(eslint@9.33.0(jiti@2.6.1))(optionator@0.9.4)(typescript@5.6.3)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.6.3)): + vite-plugin-checker@0.9.3(eslint@9.33.0(jiti@2.6.1))(optionator@0.9.4)(typescript@5.6.3)(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@2.2.12(typescript@5.6.3)): dependencies: '@babel/code-frame': 7.28.6 chokidar: 4.0.3 @@ -32209,7 +32415,7 @@ snapshots: strip-ansi: 7.1.2 tiny-invariant: 1.3.3 tinyglobby: 0.2.15 - vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) vscode-uri: 3.1.0 optionalDependencies: eslint: 9.33.0(jiti@2.6.1) @@ -32217,7 +32423,7 @@ snapshots: typescript: 5.6.3 vue-tsc: 2.2.12(typescript@5.6.3) - vite-plugin-inspect@11.3.3(@nuxt/kit@3.21.1(magicast@0.3.5))(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)): + vite-plugin-inspect@11.3.3(@nuxt/kit@3.21.1(magicast@0.3.5))(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)): dependencies: ansis: 4.2.0 debug: 4.4.3 @@ -32227,35 +32433,51 @@ snapshots: perfect-debounce: 2.1.0 sirv: 3.0.2 unplugin-utils: 0.3.1 - vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) - vite-dev-rpc: 1.1.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite-dev-rpc: 1.1.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) optionalDependencies: '@nuxt/kit': 3.21.1(magicast@0.3.5) transitivePeerDependencies: - supports-color - vite-plugin-vue-tracer@1.2.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3)): + vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.7.0)(solid-js@1.9.13)(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)): + dependencies: + '@babel/core': 7.28.6 + '@types/babel__core': 7.20.5 + babel-preset-solid: 1.9.12(@babel/core@7.28.6)(solid-js@1.9.13) + merge-anything: 5.1.7 + solid-js: 1.9.13 + solid-refresh: 0.6.3(solid-js@1.9.13) + vite: 7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vitefu: 1.1.1(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + optionalDependencies: + '@testing-library/jest-dom': 6.7.0 + transitivePeerDependencies: + - supports-color + optional: true + + vite-plugin-vue-tracer@1.2.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3)): dependencies: estree-walker: 3.0.3 exsolve: 1.0.8 magic-string: 0.30.21 pathe: 2.0.3 source-map-js: 1.2.1 - vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) vue: 3.5.26(typescript@5.6.3) - vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)): + vite-tsconfig-paths@5.1.4(typescript@5.9.3)(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)): dependencies: debug: 4.4.3 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.3) optionalDependencies: - vite: 7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color - typescript - vite@5.4.21(@types/node@24.3.0)(sass@1.97.1)(terser@5.43.1): + vite@5.4.21(@types/node@24.3.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1): dependencies: esbuild: 0.21.5 postcss: 8.5.6 @@ -32263,10 +32485,11 @@ snapshots: optionalDependencies: '@types/node': 24.3.0 fsevents: 2.3.3 + lightningcss: 1.32.0 sass: 1.97.1 terser: 5.43.1 - vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2): + vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -32278,12 +32501,13 @@ snapshots: '@types/node': 24.3.0 fsevents: 2.3.3 jiti: 2.6.1 + lightningcss: 1.32.0 sass: 1.97.1 terser: 5.43.1 tsx: 4.21.0 yaml: 2.8.2 - vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2): + vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -32295,12 +32519,13 @@ snapshots: '@types/node': 22.18.0 fsevents: 2.3.3 jiti: 2.6.1 + lightningcss: 1.32.0 sass: 1.97.1 terser: 5.43.1 tsx: 4.21.0 yaml: 2.8.2 - vite@7.1.5(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2): + vite@7.1.5(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -32312,12 +32537,13 @@ snapshots: '@types/node': 24.3.0 fsevents: 2.3.3 jiti: 2.6.1 + lightningcss: 1.32.0 sass: 1.97.1 terser: 5.43.1 tsx: 4.21.0 yaml: 2.8.2 - vite@7.3.0(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2): + vite@7.3.0(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: esbuild: 0.27.2 fdir: 6.5.0(picomatch@4.0.3) @@ -32329,12 +32555,13 @@ snapshots: '@types/node': 22.18.0 fsevents: 2.3.3 jiti: 2.6.1 + lightningcss: 1.32.0 sass: 1.97.1 terser: 5.43.1 tsx: 4.21.0 yaml: 2.8.2 - vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2): + vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: esbuild: 0.27.2 fdir: 6.5.0(picomatch@4.0.3) @@ -32346,24 +32573,25 @@ snapshots: '@types/node': 24.3.0 fsevents: 2.3.3 jiti: 2.6.1 + lightningcss: 1.32.0 sass: 1.97.1 terser: 5.43.1 tsx: 4.21.0 yaml: 2.8.2 - vitefu@1.1.1(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)): + vitefu@1.1.1(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)): optionalDependencies: - vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) - vitefu@1.1.1(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)): + vitefu@1.1.1(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)): optionalDependencies: - vite: 7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) - vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(jiti@2.6.1)(jsdom@26.1.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -32381,8 +32609,8 @@ snapshots: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.5(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) - vite-node: 3.2.4(@types/node@22.18.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite-node: 3.2.4(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 @@ -32402,11 +32630,11 @@ snapshots: - tsx - yaml - vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.6.1)(jsdom@26.1.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -32424,8 +32652,8 @@ snapshots: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.5(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) - vite-node: 3.2.4(@types/node@24.3.0)(jiti@2.6.1)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite: 7.1.5(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite-node: 3.2.4(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 From 892921739c6149f53540087b29f2abeade4c1661 Mon Sep 17 00:00:00 2001 From: Muhammad Amin Saffari Taheri Date: Sat, 16 May 2026 10:13:10 +0330 Subject: [PATCH 2/4] fix: store not showing values. --- .../src/solid/SpacetimeDBProvider.ts | 6 +- .../bindings-typescript/src/solid/useTable.ts | 76 +++++++++---------- .../test-solid-router/src/pages/UserPage.tsx | 2 +- .../test-solid-router/src/pages/home.tsx | 4 +- 4 files changed, 40 insertions(+), 48 deletions(-) diff --git a/crates/bindings-typescript/src/solid/SpacetimeDBProvider.ts b/crates/bindings-typescript/src/solid/SpacetimeDBProvider.ts index 716596803ff..ec473a208ae 100644 --- a/crates/bindings-typescript/src/solid/SpacetimeDBProvider.ts +++ b/crates/bindings-typescript/src/solid/SpacetimeDBProvider.ts @@ -2,7 +2,7 @@ import { DbConnectionBuilder, type DbConnectionImpl, } from '../sdk/db_connection_impl'; -import { createEffect, onCleanup, createMemo } from 'solid-js'; +import { createEffect, onCleanup, createMemo, createComputed } from 'solid-js'; import { createStore } from 'solid-js/store'; import { SpacetimeDBContext } from './useSpacetimeDB'; import type { ConnectionState } from './connection_state'; @@ -38,7 +38,7 @@ export function SpacetimeDBProvider>( const [state, setState] = createStore(fallbackState); // Subscribe to ConnectionManager state changes - createEffect(() => { + createComputed(() => { const currentKey = key(); const unsubscribe = ConnectionManager.subscribe(currentKey, () => { @@ -79,7 +79,7 @@ export function SpacetimeDBProvider>( }; // Retain / release lifecycle - createEffect(() => { + createComputed(() => { const currentKey = key(); ConnectionManager.retain(currentKey, props.connectionBuilder); diff --git a/crates/bindings-typescript/src/solid/useTable.ts b/crates/bindings-typescript/src/solid/useTable.ts index b10b25992a8..70e4064b971 100644 --- a/crates/bindings-typescript/src/solid/useTable.ts +++ b/crates/bindings-typescript/src/solid/useTable.ts @@ -1,4 +1,4 @@ -import { createSignal, createEffect, onCleanup } from 'solid-js'; +import { createSignal, onCleanup, createMemo, createComputed } from 'solid-js'; import { useSpacetimeDB } from './useSpacetimeDB'; import { type EventContextInterface } from '../sdk/db_connection_impl'; import type { UntypedRemoteModule } from '../sdk/spacetime_module'; @@ -12,13 +12,14 @@ import { getQueryAccessorName, getQueryWhereClause, } from '../lib/query'; +import { createStore, reconcile } from 'solid-js/store'; export interface UseTableCallbacks { onInsert?: (row: RowType) => void; onDelete?: (row: RowType) => void; onUpdate?: (oldRow: RowType, newRow: RowType) => void; /** Whether the subscription is active. Defaults to `true`. */ - enabled?: boolean; + enabled?: () => boolean; } type MembershipChange = 'enter' | 'leave' | 'stayIn' | 'stayOut'; @@ -58,14 +59,15 @@ function classifyMembership( * ``` */ export function useTable( - query: Query, + query: () => Query, callbacks?: UseTableCallbacks>> -): [readonly Prettify>[], boolean] { +): [readonly Prettify>[], () => boolean] { type UseTableRowType = RowType; - const enabled = callbacks?.enabled ?? true; - const accessorName = getQueryAccessorName(query); - const whereExpr = getQueryWhereClause(query); - const querySql = toSql(query); + const enabled = callbacks?.enabled ?? (() => true); + const q = createMemo(query); + const accessorName = createMemo(() => getQueryAccessorName(q())); + const whereExpr = createMemo(() => getQueryWhereClause(q())); + const querySql = createMemo(() => toSql(q())); let connectionState: import('./connection_state').ConnectionState; try { @@ -78,75 +80,67 @@ export function useTable( ); } - const [rows, setRows] = createSignal[]>( - [], - { equals: false } - ); - const [isReady, setIsReady] = createSignal(false); + const [rows, setRows] = createStore[]>([]); let latestTransactionEventId: string | null = null; const computeSnapshot = (): readonly Prettify[] => { - if (!enabled) { + if (!enabled()) { return []; } + const connection = connectionState.getConnection(); if (!connection) { return []; } - const table = connection.db[accessorName]; - const result: readonly Prettify[] = whereExpr + const table = connection.db[accessorName()]; + const result: readonly Prettify[] = whereExpr() ? (Array.from(table.iter()).filter(row => - evaluateBooleanExpr(whereExpr, row as Record) + evaluateBooleanExpr(whereExpr()!, row as Record) ) as Prettify[]) : (Array.from(table.iter()) as Prettify[]); return result; }; - // Manage SQL subscription - createEffect(() => { - if (!enabled) { + const [isReady, setIsReady] = createSignal(false); + + createComputed(() => { + if (!enabled()) { setIsReady(false); - setRows([]); return; } const connection = connectionState.getConnection(); - if (!connectionState.isActive || !connection) return; + if (!connectionState.isActive || !connection) { + setIsReady(false); + return; + } const cancel = connection .subscriptionBuilder() .onApplied(() => { setIsReady(true); - setRows(computeSnapshot()); }) - .subscribe(querySql); + .subscribe(querySql()); onCleanup(() => { cancel.unsubscribe(); }); - }); - - // Bind to table events - createEffect(() => { - if (!enabled) return; - - const connection = connectionState.getConnection(); - if (!connectionState.isActive || !connection) return; - const table = connection.db[accessorName]; + // Bind to table events + const table = connection.db[accessorName()]; const onInsert = ( ctx: EventContextInterface, row: any ) => { - if (whereExpr && !evaluateBooleanExpr(whereExpr, row)) { + if (whereExpr() && !evaluateBooleanExpr(whereExpr()!, row)) { return; } callbacks?.onInsert?.(row); if (ctx.event.id !== latestTransactionEventId) { latestTransactionEventId = ctx.event.id; - setRows(computeSnapshot()); + setRows(reconcile(computeSnapshot())); } }; @@ -154,13 +148,13 @@ export function useTable( ctx: EventContextInterface, row: any ) => { - if (whereExpr && !evaluateBooleanExpr(whereExpr, row)) { + if (whereExpr() && !evaluateBooleanExpr(whereExpr()!, row)) { return; } callbacks?.onDelete?.(row); if (ctx.event.id !== latestTransactionEventId) { latestTransactionEventId = ctx.event.id; - setRows(computeSnapshot()); + setRows(reconcile(computeSnapshot())); } }; @@ -169,7 +163,7 @@ export function useTable( oldRow: any, newRow: any ) => { - const change = classifyMembership(whereExpr, oldRow, newRow); + const change = classifyMembership(whereExpr(), oldRow, newRow); switch (change) { case 'leave': @@ -187,7 +181,7 @@ export function useTable( if (ctx.event.id !== latestTransactionEventId) { latestTransactionEventId = ctx.event.id; - setRows(computeSnapshot()); + setRows(reconcile(computeSnapshot())); } }; @@ -196,7 +190,7 @@ export function useTable( table.onUpdate?.(onUpdate); // Load initial snapshot - setRows(computeSnapshot()); + setRows(reconcile(computeSnapshot())); onCleanup(() => { table.removeOnInsert(onInsert); @@ -205,5 +199,5 @@ export function useTable( }); }); - return [rows(), isReady()]; + return [rows, isReady]; } diff --git a/crates/bindings-typescript/test-solid-router/src/pages/UserPage.tsx b/crates/bindings-typescript/test-solid-router/src/pages/UserPage.tsx index d52729d66a2..cbecc67c240 100644 --- a/crates/bindings-typescript/test-solid-router/src/pages/UserPage.tsx +++ b/crates/bindings-typescript/test-solid-router/src/pages/UserPage.tsx @@ -4,7 +4,7 @@ import { Infer } from '../../../src'; export default function UserPage() { const connection = useSpacetimeDB(); - const [users] = useTable(tables.user); + const [users] = useTable(() => tables.user); const identityHex = connection.identity?.toHexString(); const currentUser = users.find( diff --git a/crates/bindings-typescript/test-solid-router/src/pages/home.tsx b/crates/bindings-typescript/test-solid-router/src/pages/home.tsx index ad31961f40d..4c2e0ec7cb6 100644 --- a/crates/bindings-typescript/test-solid-router/src/pages/home.tsx +++ b/crates/bindings-typescript/test-solid-router/src/pages/home.tsx @@ -2,12 +2,10 @@ import { useReducer, useTable } from '../../../src/solid'; import { tables, reducers } from '../module_bindings'; export default function Home() { - const [counter] = useTable(tables.counter); + const [counter] = useTable(() => tables.counter); const incrementCounter = useReducer(reducers.incrementCounter); const clearCounter = useReducer(reducers.clearCounter); - console.log('Rendering CounterPage, current counter:', counter); - return (

Counter

From 9a1aad51ea484f291ac2be94781412e633bcac10 Mon Sep 17 00:00:00 2001 From: Muhammad Amin Saffari Taheri Date: Sat, 16 May 2026 10:43:51 +0330 Subject: [PATCH 3/4] feat: add docs/template for solidjs. --- crates/bindings-typescript/README.md | 85 +++++++++++ .../00200-quickstarts/00162-solid.md | 133 ++++++++++++++++++ pnpm-workspace.yaml | 1 + templates/solid-ts/.gitignore | 7 + templates/solid-ts/.template.json | 13 ++ templates/solid-ts/README.md | 114 +++++++++++++++ templates/solid-ts/index.html | 12 ++ templates/solid-ts/package.json | 24 ++++ templates/solid-ts/spacetimedb/package.json | 18 +++ templates/solid-ts/spacetimedb/src/index.ts | 37 +++++ templates/solid-ts/spacetimedb/tsconfig.json | 23 +++ templates/solid-ts/src/App.tsx | 70 +++++++++ templates/solid-ts/src/main.tsx | 39 +++++ templates/solid-ts/tsconfig.json | 20 +++ templates/solid-ts/vite.config.ts | 9 ++ 15 files changed, 605 insertions(+) create mode 100644 docs/docs/00100-intro/00200-quickstarts/00162-solid.md create mode 100644 templates/solid-ts/.gitignore create mode 100644 templates/solid-ts/.template.json create mode 100644 templates/solid-ts/README.md create mode 100644 templates/solid-ts/index.html create mode 100644 templates/solid-ts/package.json create mode 100644 templates/solid-ts/spacetimedb/package.json create mode 100644 templates/solid-ts/spacetimedb/src/index.ts create mode 100644 templates/solid-ts/spacetimedb/tsconfig.json create mode 100644 templates/solid-ts/src/App.tsx create mode 100644 templates/solid-ts/src/main.tsx create mode 100644 templates/solid-ts/tsconfig.json create mode 100644 templates/solid-ts/vite.config.ts diff --git a/crates/bindings-typescript/README.md b/crates/bindings-typescript/README.md index 5eb0acc19a4..eccd6cf3d01 100644 --- a/crates/bindings-typescript/README.md +++ b/crates/bindings-typescript/README.md @@ -111,6 +111,91 @@ function App() { } ``` +#### SolidJS Usage + +This module also includes SolidJS primitives to subscribe to tables under the `spacetimedb/solid` subpath. The SolidJS integration uses Solid's fine-grained reactivity system (`createSignal`, `createStore`, `createMemo`, `createComputed`) for optimal rendering performance. Reactive updates are scoped to only the data that actually changed. + +In order to use SpacetimeDB SolidJS primitives in your project, first add a `SpacetimeDBProvider` at the top of your component hierarchy: + +```tsx +import { SpacetimeDBProvider } from 'spacetimedb/solid'; +import { DbConnection, tables } from './module_bindings'; + +const connectionBuilder = DbConnection.builder() + .withUri('ws://localhost:3000') + .withDatabaseName('MODULE_NAME') + .withLightMode(true) + .onDisconnect(() => { + console.log('disconnected'); + }) + .onConnectError(() => { + console.log('client_error'); + }) + .onConnect((conn, identity, _token) => { + console.log( + 'Connected to SpacetimeDB with identity:', + identity.toHexString() + ); + + conn.subscriptionBuilder().subscribe(tables.player); + }) + .withToken('TOKEN'); + +render(() => ( + + + +), document.getElementById('root')!); +``` + +Once you add a `SpacetimeDBProvider` to your hierarchy, you can use the SpacetimeDB SolidJS primitives in your components: + +```tsx +import { useSpacetimeDB, useTable, useReducer, useProcedure } from 'spacetimedb/solid'; + +function App() { + // Access the connection state (identity, token, connection error, etc.) + const conn = useSpacetimeDB(); + + // Subscribe to a table — returns a reactive store of rows and an isReady accessor + const [rows, isReady] = useTable(() => tables.message); + + // Subscribe to a filtered view + const [onlineUsers, onlineReady] = useTable( + () => tables.user.where(r => r.online.eq(true)), + { + onInsert: (row) => console.log('User came online:', row), + onDelete: (row) => console.log('User went offline:', row), + } + ); + + // Call a reducer — queues calls made before the connection is ready + const sendMessage = useReducer(reducers.sendMessage); + + // Call a procedure — queues calls made before the connection is ready + const getResult = useProcedure(procedures.getSomeResult); + + return ( +
+ Loading...

}> +

{rows.length} messages

+ + {(row) =>
{row.text}
} +
+
+ +
+ ); +} +``` + +**Key differences from the React API:** + +- `useTable` takes a _getter function_ `() => Query` instead of a plain value, so the query can be reactive and update when signals change. +- `useTable` returns `[rows, isReady]` where `rows` is a Solid reactive store and `isReady` is an accessor function `() => boolean`. +- The `enabled` callback option is a getter `() => boolean` instead of a plain boolean, allowing it to depend on reactive state. +- `useReducer` and `useProcedure` queue calls made before the connection is ready and flush them once connected. + ### Developer notes To run the tests, do: diff --git a/docs/docs/00100-intro/00200-quickstarts/00162-solid.md b/docs/docs/00100-intro/00200-quickstarts/00162-solid.md new file mode 100644 index 00000000000..14dc09d45e8 --- /dev/null +++ b/docs/docs/00100-intro/00200-quickstarts/00162-solid.md @@ -0,0 +1,133 @@ +--- +title: SolidJS Quickstart +sidebar_label: SolidJS +slug: /quickstarts/solid +hide_table_of_contents: true +--- + +import { InstallCardLink } from "@site/src/components/InstallCardLink"; +import { StepByStep, Step, StepText, StepCode } from "@site/src/components/Steps"; + + +Get a SpacetimeDB SolidJS app running in under 5 minutes. + +## Prerequisites + +- [Node.js](https://nodejs.org/) 18+ installed +- [SpacetimeDB CLI](https://spacetimedb.com/install) installed + + + +--- + + + + + Run the `spacetime dev` command to create a new project with a SpacetimeDB module and SolidJS client. + + This will start the local SpacetimeDB server, publish your module, generate TypeScript bindings, and start the SolidJS development server. + + +```bash +spacetime dev --template solid-ts +``` + + + + + + Navigate to [http://localhost:5173](http://localhost:5173) to see your app running. + + The template includes a basic SolidJS app connected to SpacetimeDB. + + + + + + Your project contains both server and client code. + + Edit `spacetimedb/src/index.ts` to add tables and reducers. Edit `src/App.tsx` to build your UI. + + +``` +my-spacetime-app/ +├── spacetimedb/ # Your SpacetimeDB module +│ └── src/ +│ └── index.ts # Server-side logic +├── src/ # SolidJS frontend +│ ├── App.tsx +│ └── module_bindings/ # Auto-generated types +└── package.json +``` + + + + + + Open `spacetimedb/src/index.ts` to see the module code. The template includes a `person` table and two reducers: `add` to insert a person, and `sayHello` to greet everyone. + + Tables store your data. Reducers are functions that modify data — they're the only way to write to the database. + + +```typescript +import { schema, table, t } from 'spacetimedb/server'; + +const spacetimedb = schema({ + person: table( + { public: true }, + { + name: t.string(), + } + ), +}); +export default spacetimedb; + +export const add = spacetimedb.reducer( + { name: t.string() }, + (ctx, { name }) => { + ctx.db.person.insert({ name }); + } +); + +export const sayHello = spacetimedb.reducer(ctx => { + for (const person of ctx.db.person.iter()) { + console.info(`Hello, ${person.name}!`); + } + console.info('Hello, World!'); +}); +``` + + + + + + Open a new terminal and navigate to your project directory. Then use the SpacetimeDB CLI to call reducers and query your data directly. + + +```bash +cd my-spacetime-app + +# Call the add reducer to insert a person +spacetime call add Alice + +# Query the person table +spacetime sql "SELECT * FROM person" + name +--------- + "Alice" + +# Call sayHello to greet everyone +spacetime call say_hello + +# View the module logs +spacetime logs +2025-01-13T12:00:00.000000Z INFO: Hello, Alice! +2025-01-13T12:00:00.000000Z INFO: Hello, World! +``` + + + + +## Next steps + +- Read the [TypeScript SDK Reference](../../00200-core-concepts/00600-clients/00700-typescript-reference.md) for detailed API docs diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 16900ae8a39..ff9c132ab03 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -9,6 +9,7 @@ packages: - 'templates/tanstack-ts' - 'templates/browser-ts' - 'templates/svelte-ts' + - 'templates/solid-ts' - 'templates/angular-ts' - 'templates/nuxt-ts' - 'templates/remix-ts' diff --git a/templates/solid-ts/.gitignore b/templates/solid-ts/.gitignore new file mode 100644 index 00000000000..63a103aa772 --- /dev/null +++ b/templates/solid-ts/.gitignore @@ -0,0 +1,7 @@ +node_modules +dist +*.log + +.DS_Store + +spacetime.local.json diff --git a/templates/solid-ts/.template.json b/templates/solid-ts/.template.json new file mode 100644 index 00000000000..d6e0937ff12 --- /dev/null +++ b/templates/solid-ts/.template.json @@ -0,0 +1,13 @@ +{ + "description": "SolidJS web app with TypeScript server", + "client_framework": "SolidJS", + "client_lang": "typescript", + "server_lang": "typescript", + "builtWith": [ + "solid-js", + "vite-plugin-solid", + "typescript", + "vite", + "spacetimedb" + ] +} diff --git a/templates/solid-ts/README.md b/templates/solid-ts/README.md new file mode 100644 index 00000000000..386a51f1986 --- /dev/null +++ b/templates/solid-ts/README.md @@ -0,0 +1,114 @@ +Get a SpacetimeDB SolidJS app running in under 5 minutes. + +## Prerequisites + +- [Node.js](https://nodejs.org/) 18+ installed +- [SpacetimeDB CLI](https://spacetimedb.com/install) installed + +Install the [SpacetimeDB CLI](https://spacetimedb.com/install) before continuing. + +--- + +## Create your project + +Run the `spacetime dev` command to create a new project with a SpacetimeDB module and SolidJS client. + +This will start the local SpacetimeDB server, publish your module, generate TypeScript bindings, and start the SolidJS development server. + +```bash +spacetime dev --template solid-ts +``` + + + +## Open your app + +Navigate to [http://localhost:5173](http://localhost:5173) to see your app running. + +The template includes a basic SolidJS app connected to SpacetimeDB. + + + +## Explore the project structure + +Your project contains both server and client code. + +Edit `spacetimedb/src/index.ts` to add tables and reducers. Edit `src/App.tsx` to build your UI. + +``` +my-spacetime-app/ +├── spacetimedb/ # Your SpacetimeDB module +│ └── src/ +│ └── index.ts # Server-side logic +├── src/ # SolidJS frontend +│ ├── App.tsx +│ └── module_bindings/ # Auto-generated types +└── package.json +``` + + + +## Understand tables and reducers + +Open `spacetimedb/src/index.ts` to see the module code. The template includes a `person` table and two reducers: `add` to insert a person, and `sayHello` to greet everyone. + +Tables store your data. Reducers are functions that modify data — they're the only way to write to the database. + +```typescript +import { schema, table, t } from 'spacetimedb/server'; + +const spacetimedb = schema({ + person: table( + { public: true }, + { + name: t.string(), + } + ), +}); +export default spacetimedb; + +export const add = spacetimedb.reducer( + { name: t.string() }, + (ctx, { name }) => { + ctx.db.person.insert({ name }); + } +); + +export const sayHello = spacetimedb.reducer(ctx => { + for (const person of ctx.db.person.iter()) { + console.info(`Hello, ${person.name}!`); + } + console.info('Hello, World!'); +}); +``` + + + +## Test with the CLI + +Open a new terminal and navigate to your project directory. Then use the SpacetimeDB CLI to call reducers and query your data directly. + +```bash +cd my-spacetime-app + +# Call the add reducer to insert a person +spacetime call add Alice + +# Query the person table +spacetime sql "SELECT * FROM person" + name +--------- + "Alice" + +# Call sayHello to greet everyone +spacetime call say_hello + +# View the module logs +spacetime logs +2025-01-13T12:00:00.000000Z INFO: Hello, Alice! +2025-01-13T12:00:00.000Z INFO: Hello, World! +``` + +## Next steps + +- Read the [TypeScript SDK Reference](https://spacetimedb.com/docs/intro/core-concepts/clients/typescript-reference) for detailed API docs diff --git a/templates/solid-ts/index.html b/templates/solid-ts/index.html new file mode 100644 index 00000000000..16a4c1b6471 --- /dev/null +++ b/templates/solid-ts/index.html @@ -0,0 +1,12 @@ + + + + + + SpacetimeDB SolidJS App + + +
+ + + diff --git a/templates/solid-ts/package.json b/templates/solid-ts/package.json new file mode 100644 index 00000000000..ed5cf238373 --- /dev/null +++ b/templates/solid-ts/package.json @@ -0,0 +1,24 @@ +{ + "name": "@clockworklabs/solid-ts", + "private": true, + "version": "0.0.1", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "generate": "pnpm --dir spacetimedb install && cargo run -p gen-bindings -- --out-dir src/module_bindings --module-path spacetimedb && prettier --write src/module_bindings", + "spacetime:generate": "spacetime generate --lang typescript --out-dir src/module_bindings --module-path spacetimedb", + "spacetime:publish:local": "spacetime publish --module-path spacetimedb --server local", + "spacetime:publish": "spacetime publish --module-path spacetimedb --server maincloud" + }, + "dependencies": { + "spacetimedb": "workspace:*", + "solid-js": "^1.9.5" + }, + "devDependencies": { + "typescript": "~5.6.2", + "vite": "^7.1.5", + "vite-plugin-solid": "^2.11.8" + } +} diff --git a/templates/solid-ts/spacetimedb/package.json b/templates/solid-ts/spacetimedb/package.json new file mode 100644 index 00000000000..8a263dc97a6 --- /dev/null +++ b/templates/solid-ts/spacetimedb/package.json @@ -0,0 +1,18 @@ +{ + "name": "spacetime-module", + "version": "1.0.0", + "description": "", + "scripts": { + "build": "spacetime build", + "publish": "spacetime publish" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "spacetimedb": "workspace:*" + }, + "devDependencies": { + "typescript": "~5.6.2" + } +} diff --git a/templates/solid-ts/spacetimedb/src/index.ts b/templates/solid-ts/spacetimedb/src/index.ts new file mode 100644 index 00000000000..ac6004baa81 --- /dev/null +++ b/templates/solid-ts/spacetimedb/src/index.ts @@ -0,0 +1,37 @@ +import { schema, table, t } from 'spacetimedb/server'; + +const spacetimedb = schema({ + person: table( + { public: true }, + { + name: t.string(), + } + ), +}); +export default spacetimedb; + +export const init = spacetimedb.init(_ctx => { + // Called when the module is initially published +}); + +export const onConnect = spacetimedb.clientConnected(_ctx => { + // Called every time a new client connects +}); + +export const onDisconnect = spacetimedb.clientDisconnected(_ctx => { + // Called every time a client disconnects +}); + +export const add = spacetimedb.reducer( + { name: t.string() }, + (ctx, { name }) => { + ctx.db.person.insert({ name }); + } +); + +export const sayHello = spacetimedb.reducer(ctx => { + for (const person of ctx.db.person.iter()) { + console.info(`Hello, ${person.name}!`); + } + console.info('Hello, World!'); +}); diff --git a/templates/solid-ts/spacetimedb/tsconfig.json b/templates/solid-ts/spacetimedb/tsconfig.json new file mode 100644 index 00000000000..c97c980cf80 --- /dev/null +++ b/templates/solid-ts/spacetimedb/tsconfig.json @@ -0,0 +1,23 @@ + +/* + * This tsconfig is used for TypeScript projects created with `spacetimedb init + * --lang typescript`. You can modify it as needed for your project, although + * some options are required by SpacetimeDB. + */ +{ + "compilerOptions": { + "strict": true, + "skipLibCheck": true, + "moduleResolution": "bundler", + + /* The following options are required by SpacetimeDB + * and should not be modified + */ + "target": "ESNext", + "lib": ["ES2021", "dom"], + "module": "ESNext", + "isolatedModules": true, + "noEmit": true + }, + "include": ["./**/*"] +} diff --git a/templates/solid-ts/src/App.tsx b/templates/solid-ts/src/App.tsx new file mode 100644 index 00000000000..2d494409f86 --- /dev/null +++ b/templates/solid-ts/src/App.tsx @@ -0,0 +1,70 @@ +import { createSignal, For, Show } from 'solid-js'; +import { tables, reducers } from './module_bindings'; +import { useSpacetimeDB, useTable, useReducer } from 'spacetimedb/solid'; + +function App() { + const [name, setName] = createSignal(''); + + const conn = useSpacetimeDB(); + + // Subscribe to all people in the database + const [people] = useTable(() => tables.person); + + const addReducer = useReducer(reducers.add); + + const addPerson = (e: Event) => { + e.preventDefault(); + if (!name().trim() || !conn.isActive) return; + + // Call the add reducer + addReducer({ name: name() }); + setName(''); + }; + + return ( +
+

SpacetimeDB SolidJS App

+ +
+ Status:{' '} + + {conn.isActive ? 'Connected' : 'Disconnected'} + +
+ +
+ setName(e.currentTarget.value)} + style={{ padding: '0.5rem', 'margin-right': '0.5rem' }} + disabled={!conn.isActive} + /> + +
+ +
+

People ({people.length})

+ 0} + fallback={

No people yet. Add someone above!

} + > +
    + + {(person) =>
  • {person.name}
  • } +
    +
+
+
+
+ ); +} + +export default App; diff --git a/templates/solid-ts/src/main.tsx b/templates/solid-ts/src/main.tsx new file mode 100644 index 00000000000..b1275e8d57c --- /dev/null +++ b/templates/solid-ts/src/main.tsx @@ -0,0 +1,39 @@ +import { render } from 'solid-js/web'; +import App from './App'; +import { Identity } from 'spacetimedb'; +import { SpacetimeDBProvider } from 'spacetimedb/solid'; +import { DbConnection, type ErrorContext } from './module_bindings'; + +const HOST = import.meta.env.VITE_SPACETIMEDB_HOST ?? 'ws://localhost:3000'; +const DB_NAME = import.meta.env.VITE_SPACETIMEDB_DB_NAME ?? 'solid-ts'; +const TOKEN_KEY = `${HOST}/${DB_NAME}/auth_token`; + +const onConnect = (_conn: DbConnection, identity: Identity, token: string) => { + localStorage.setItem(TOKEN_KEY, token); + console.log( + 'Connected to SpacetimeDB with identity:', + identity.toHexString() + ); +}; + +const onDisconnect = () => { + console.log('Disconnected from SpacetimeDB'); +}; + +const onConnectError = (_ctx: ErrorContext, err: Error) => { + console.log('Error connecting to SpacetimeDB:', err); +}; + +const connectionBuilder = DbConnection.builder() + .withUri(HOST) + .withDatabaseName(DB_NAME) + .withToken(localStorage.getItem(TOKEN_KEY) || undefined) + .onConnect(onConnect) + .onDisconnect(onDisconnect) + .onConnectError(onConnectError); + +render(() => ( + + + +), document.getElementById('root')!); diff --git a/templates/solid-ts/tsconfig.json b/templates/solid-ts/tsconfig.json new file mode 100644 index 00000000000..a6bd240deaa --- /dev/null +++ b/templates/solid-ts/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "jsx": "preserve", + "jsxImportSource": "solid-js", + "target": "ESNext", + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "isolatedModules": true, + "module": "ESNext", + "moduleResolution": "bundler", + "noEmit": true, + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true, + "types": ["vite/client"] + }, + "include": ["src", "vite.config.ts"] +} diff --git a/templates/solid-ts/vite.config.ts b/templates/solid-ts/vite.config.ts new file mode 100644 index 00000000000..afc5ead3479 --- /dev/null +++ b/templates/solid-ts/vite.config.ts @@ -0,0 +1,9 @@ +import { defineConfig } from 'vite'; +import solidPlugin from 'vite-plugin-solid'; + +export default defineConfig({ + plugins: [solidPlugin()], + build: { + target: 'esnext', + }, +}); From 55adb17e53aa40721dad3aa2ddf9ab450a8c7e33 Mon Sep 17 00:00:00 2001 From: Muhammad Amin Saffari Taheri Date: Sat, 16 May 2026 10:59:17 +0330 Subject: [PATCH 4/4] chore: format for cargo.toml and add solid template. --- Cargo.toml | 33 +-- pnpm-lock.yaml | 600 +++++++++++++++++++++++++++++++++++-------------- 2 files changed, 441 insertions(+), 192 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index dde87f037d7..b8a5c19513d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -180,16 +180,10 @@ colored = "2.0.0" console = { version = "0.15.6" } convert_case = "0.6.0" crc32c = "0.6.4" -criterion = { version = "0.5.1", features = [ - "async", - "async_tokio", - "html_reports", -] } +criterion = { version = "0.5.1", features = ["async", "async_tokio", "html_reports"] } crossbeam-channel = "0.5" crossbeam-queue = "0.3.12" -cursive = { version = "0.20", default-features = false, features = [ - "crossterm-backend", -] } +cursive = { version = "0.20", default-features = false, features = ["crossterm-backend"] } decorum = { version = "0.3.1", default-features = false, features = ["std"] } derive_more = "0.99" dialoguer = { version = "0.11", default-features = false } @@ -212,19 +206,14 @@ futures-util = "0.3" getrandom02 = { package = "getrandom", version = "0.2" } git2 = "0.19" glob = "0.3.1" -hashbrown = { version = "0.16.1", default-features = false, features = [ - "equivalent", - "inline-more", - "rayon", - "serde", -] } +hashbrown = { version = "0.16.1", default-features = false, features = ["equivalent", "inline-more", "rayon", "serde"] } headers = "0.4" heck = "0.4" hex = "0.4.3" home = "0.5" hostname = "^0.3" http = "1.0" -http-body-util = "0.1.3" +http-body-util= "0.1.3" humantime = "2.3" hyper = "1.0" hyper-util = { version = "0.1", features = ["tokio"] } @@ -257,10 +246,7 @@ paste = "1.0" percent-encoding = "2.3" petgraph = { version = "0.6.5", default-features = false } pin-project-lite = "0.2.9" -pgwire = { version = "0.37", default-features = false, features = [ - "server-api", - "pg-ext-types", -] } +pgwire = { version = "0.37", default-features = false, features = ["server-api", "pg-ext-types"] } postgres-types = "0.2.5" pretty_assertions = { version = "1.4", features = ["unstable"] } proc-macro2 = "1.0" @@ -293,10 +279,7 @@ second-stack = "0.3" self-replace = "1.5" semver = "1" serde = { version = "1.0.136", features = ["derive"] } -serde_json = { version = "1.0.128", features = [ - "raw_value", - "arbitrary_precision", -] } +serde_json = { version = "1.0.128", features = ["raw_value", "arbitrary_precision"] } serde_path_to_error = "0.1.9" serde_with = { version = "3.3.0", features = ["base64", "hex"] } serial_test = "2.0.0" @@ -313,9 +296,7 @@ sqllogictest-engines = "0.17" sqlparser = "0.38.0" strum = { version = "0.25.0", features = ["derive"] } syn = { version = "2", features = ["full", "extra-traits"] } -syntect = { version = "5.0.0", default-features = false, features = [ - "default-fancy", -] } +syntect = { version = "5.0.0", default-features = false, features = ["default-fancy"] } tabled = "0.14.0" tar = "0.4" tempdir = "0.3.7" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f33287bd19f..fc20e08ba4b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -632,6 +632,25 @@ importers: specifier: ^5.4.0 version: 5.4.21(@types/node@24.3.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1) + templates/solid-ts: + dependencies: + solid-js: + specifier: ^1.9.5 + version: 1.9.13 + spacetimedb: + specifier: workspace:* + version: link:../../crates/bindings-typescript + devDependencies: + typescript: + specifier: ~5.6.2 + version: 5.6.3 + vite: + specifier: ^7.1.5 + version: 7.3.0(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vite-plugin-solid: + specifier: ^2.11.8 + version: 2.11.12(@testing-library/jest-dom@6.7.0)(solid-js@1.9.13)(vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + templates/svelte-ts: dependencies: spacetimedb: @@ -15416,7 +15435,6 @@ snapshots: '@babel/helper-module-imports@7.18.6': dependencies: '@babel/types': 7.28.6 - optional: true '@babel/helper-module-imports@7.27.1': dependencies: @@ -15732,7 +15750,7 @@ snapshots: '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 - '@babel/helper-module-imports': 7.27.1 + '@babel/helper-module-imports': 7.28.6 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.3) transitivePeerDependencies: @@ -15741,7 +15759,7 @@ snapshots: '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.6)': dependencies: '@babel/core': 7.28.6 - '@babel/helper-module-imports': 7.27.1 + '@babel/helper-module-imports': 7.28.6 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.6) transitivePeerDependencies: @@ -16276,7 +16294,7 @@ snapshots: dependencies: '@babel/core': 7.28.3 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-module-imports': 7.27.1 + '@babel/helper-module-imports': 7.28.6 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.3) '@babel/types': 7.28.6 @@ -16287,7 +16305,7 @@ snapshots: dependencies: '@babel/core': 7.28.6 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-module-imports': 7.27.1 + '@babel/helper-module-imports': 7.28.6 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.6) '@babel/types': 7.28.6 @@ -16341,7 +16359,7 @@ snapshots: '@babel/plugin-transform-runtime@7.28.3(@babel/core@7.28.3)': dependencies: '@babel/core': 7.28.3 - '@babel/helper-module-imports': 7.27.1 + '@babel/helper-module-imports': 7.28.6 '@babel/helper-plugin-utils': 7.27.1 babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.3) babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.3) @@ -16478,7 +16496,7 @@ snapshots: dependencies: '@babel/compat-data': 7.28.0 '@babel/core': 7.28.3 - '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.28.3) @@ -16554,7 +16572,7 @@ snapshots: dependencies: '@babel/compat-data': 7.28.0 '@babel/core': 7.28.6 - '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-compilation-targets': 7.28.6 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.28.6) @@ -17227,9 +17245,9 @@ snapshots: '@docusaurus/cssnano-preset@3.9.2': dependencies: - cssnano-preset-advanced: 6.1.2(postcss@8.5.6) - postcss: 8.5.6 - postcss-sort-media-queries: 5.2.0(postcss@8.5.6) + cssnano-preset-advanced: 6.1.2(postcss@8.5.14) + postcss: 8.5.14 + postcss-sort-media-queries: 5.2.0(postcss@8.5.14) tslib: 2.8.1 '@docusaurus/logger@3.9.1': @@ -19777,9 +19795,9 @@ snapshots: '@rollup/plugin-replace': 6.0.3(rollup@4.56.0) '@vitejs/plugin-vue': 5.2.4(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3)) '@vitejs/plugin-vue-jsx': 4.2.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3)) - autoprefixer: 10.4.21(postcss@8.5.6) + autoprefixer: 10.4.21(postcss@8.5.14) consola: 3.4.2 - cssnano: 7.1.2(postcss@8.5.6) + cssnano: 7.1.2(postcss@8.5.14) defu: 6.1.4 esbuild: 0.25.9 escape-string-regexp: 5.0.0 @@ -19796,7 +19814,7 @@ snapshots: pathe: 2.0.3 perfect-debounce: 1.0.0 pkg-types: 2.3.0 - postcss: 8.5.6 + postcss: 8.5.14 rollup-plugin-visualizer: 5.14.0(rollup@4.56.0) std-env: 3.10.0 ufo: 1.6.3 @@ -19947,16 +19965,16 @@ snapshots: '@pandacss/shared': 0.22.1 '@pandacss/token-dictionary': 0.22.1 '@pandacss/types': 0.22.1 - autoprefixer: 10.4.15(postcss@8.5.6) + autoprefixer: 10.4.15(postcss@8.5.14) hookable: 5.5.3 lodash.merge: 4.6.2 - postcss: 8.5.6 - postcss-discard-duplicates: 6.0.3(postcss@8.5.6) - postcss-discard-empty: 6.0.3(postcss@8.5.6) - postcss-merge-rules: 6.1.1(postcss@8.5.6) - postcss-minify-selectors: 6.0.4(postcss@8.5.6) - postcss-nested: 6.0.1(postcss@8.5.6) - postcss-normalize-whitespace: 6.0.2(postcss@8.5.6) + postcss: 8.5.14 + postcss-discard-duplicates: 6.0.3(postcss@8.5.14) + postcss-discard-empty: 6.0.3(postcss@8.5.14) + postcss-merge-rules: 6.1.1(postcss@8.5.14) + postcss-minify-selectors: 6.0.4(postcss@8.5.14) + postcss-nested: 6.0.1(postcss@8.5.14) + postcss-normalize-whitespace: 6.0.2(postcss@8.5.14) postcss-selector-parser: 6.1.2 ts-pattern: 5.0.5 @@ -20001,7 +20019,7 @@ snapshots: lil-fp: 1.4.5 outdent: 0.8.0 pluralize: 8.0.0 - postcss: 8.5.6 + postcss: 8.5.14 ts-pattern: 5.0.5 '@pandacss/is-valid-prop@0.22.1': {} @@ -20040,7 +20058,7 @@ snapshots: pathe: 1.1.2 pkg-types: 1.0.3 pluralize: 8.0.0 - postcss: 8.5.6 + postcss: 8.5.14 preferred-pm: 3.1.4 prettier: 2.8.8 ts-morph: 19.0.0 @@ -20070,7 +20088,7 @@ snapshots: '@pandacss/postcss@0.22.1(jsdom@26.1.0)(typescript@5.6.3)': dependencies: '@pandacss/node': 0.22.1(jsdom@26.1.0)(typescript@5.6.3) - postcss: 8.5.6 + postcss: 8.5.14 transitivePeerDependencies: - jsdom - typescript @@ -22567,7 +22585,7 @@ snapshots: '@vue/shared': 3.5.22 estree-walker: 2.0.2 magic-string: 0.30.21 - postcss: 8.5.6 + postcss: 8.5.14 source-map-js: 1.2.1 '@vue/compiler-sfc@3.5.26': @@ -23893,14 +23911,24 @@ snapshots: asynckit@0.4.0: {} - autoprefixer@10.4.15(postcss@8.5.6): + autoprefixer@10.4.15(postcss@8.5.14): dependencies: browserslist: 4.28.1 caniuse-lite: 1.0.30001769 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 - postcss: 8.5.6 + postcss: 8.5.14 + postcss-value-parser: 4.2.0 + + autoprefixer@10.4.21(postcss@8.5.14): + dependencies: + browserslist: 4.28.1 + caniuse-lite: 1.0.30001769 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.5.14 postcss-value-parser: 4.2.0 autoprefixer@10.4.21(postcss@8.5.6): @@ -23949,11 +23977,10 @@ snapshots: '@babel/types': 7.28.6 html-entities: 2.3.3 parse5: 7.3.0 - optional: true babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.3): dependencies: - '@babel/compat-data': 7.28.0 + '@babel/compat-data': 7.28.6 '@babel/core': 7.28.3 '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.3) semver: 6.3.1 @@ -23962,7 +23989,7 @@ snapshots: babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.6): dependencies: - '@babel/compat-data': 7.28.0 + '@babel/compat-data': 7.28.6 '@babel/core': 7.28.6 '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.6) semver: 6.3.1 @@ -24005,7 +24032,6 @@ snapshots: babel-plugin-jsx-dom-expressions: 0.40.7(@babel/core@7.28.6) optionalDependencies: solid-js: 1.9.13 - optional: true bail@2.0.2: {} @@ -24035,7 +24061,7 @@ snapshots: domhandler: 5.0.3 htmlparser2: 10.0.0 picocolors: 1.1.1 - postcss: 8.5.6 + postcss: 8.5.14 postcss-media-query-parser: 0.2.3 better-sqlite3@12.6.2: @@ -24715,6 +24741,10 @@ snapshots: postcss: 8.5.6 postcss-selector-parser: 7.1.0 + css-declaration-sorter@7.3.0(postcss@8.5.14): + dependencies: + postcss: 8.5.14 + css-declaration-sorter@7.3.0(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -24728,12 +24758,12 @@ snapshots: css-loader@6.11.0(webpack@5.102.0): dependencies: - icss-utils: 5.1.0(postcss@8.5.6) - postcss: 8.5.6 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.6) - postcss-modules-scope: 3.2.1(postcss@8.5.6) - postcss-modules-values: 4.0.0(postcss@8.5.6) + icss-utils: 5.1.0(postcss@8.5.14) + postcss: 8.5.14 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.14) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.14) + postcss-modules-scope: 3.2.1(postcss@8.5.14) + postcss-modules-values: 4.0.0(postcss@8.5.14) postcss-value-parser: 4.2.0 semver: 7.7.4 optionalDependencies: @@ -24742,9 +24772,9 @@ snapshots: css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(lightningcss@1.32.0)(webpack@5.102.0): dependencies: '@jridgewell/trace-mapping': 0.3.30 - cssnano: 6.1.2(postcss@8.5.6) + cssnano: 6.1.2(postcss@8.5.14) jest-worker: 29.7.0 - postcss: 8.5.6 + postcss: 8.5.14 schema-utils: 4.3.3 serialize-javascript: 6.0.2 webpack: 5.102.0 @@ -24807,16 +24837,50 @@ snapshots: cssesc@3.0.0: {} - cssnano-preset-advanced@6.1.2(postcss@8.5.6): + cssnano-preset-advanced@6.1.2(postcss@8.5.14): dependencies: - autoprefixer: 10.4.21(postcss@8.5.6) + autoprefixer: 10.4.21(postcss@8.5.14) browserslist: 4.28.1 - cssnano-preset-default: 6.1.2(postcss@8.5.6) - postcss: 8.5.6 - postcss-discard-unused: 6.0.5(postcss@8.5.6) - postcss-merge-idents: 6.0.3(postcss@8.5.6) - postcss-reduce-idents: 6.0.3(postcss@8.5.6) - postcss-zindex: 6.0.2(postcss@8.5.6) + cssnano-preset-default: 6.1.2(postcss@8.5.14) + postcss: 8.5.14 + postcss-discard-unused: 6.0.5(postcss@8.5.14) + postcss-merge-idents: 6.0.3(postcss@8.5.14) + postcss-reduce-idents: 6.0.3(postcss@8.5.14) + postcss-zindex: 6.0.2(postcss@8.5.14) + + cssnano-preset-default@6.1.2(postcss@8.5.14): + dependencies: + browserslist: 4.28.1 + css-declaration-sorter: 7.3.0(postcss@8.5.14) + cssnano-utils: 4.0.2(postcss@8.5.14) + postcss: 8.5.14 + postcss-calc: 9.0.1(postcss@8.5.14) + postcss-colormin: 6.1.0(postcss@8.5.14) + postcss-convert-values: 6.1.0(postcss@8.5.14) + postcss-discard-comments: 6.0.2(postcss@8.5.14) + postcss-discard-duplicates: 6.0.3(postcss@8.5.14) + postcss-discard-empty: 6.0.3(postcss@8.5.14) + postcss-discard-overridden: 6.0.2(postcss@8.5.14) + postcss-merge-longhand: 6.0.5(postcss@8.5.14) + postcss-merge-rules: 6.1.1(postcss@8.5.14) + postcss-minify-font-values: 6.1.0(postcss@8.5.14) + postcss-minify-gradients: 6.0.3(postcss@8.5.14) + postcss-minify-params: 6.1.0(postcss@8.5.14) + postcss-minify-selectors: 6.0.4(postcss@8.5.14) + postcss-normalize-charset: 6.0.2(postcss@8.5.14) + postcss-normalize-display-values: 6.0.2(postcss@8.5.14) + postcss-normalize-positions: 6.0.2(postcss@8.5.14) + postcss-normalize-repeat-style: 6.0.2(postcss@8.5.14) + postcss-normalize-string: 6.0.2(postcss@8.5.14) + postcss-normalize-timing-functions: 6.0.2(postcss@8.5.14) + postcss-normalize-unicode: 6.1.0(postcss@8.5.14) + postcss-normalize-url: 6.0.2(postcss@8.5.14) + postcss-normalize-whitespace: 6.0.2(postcss@8.5.14) + postcss-ordered-values: 6.0.2(postcss@8.5.14) + postcss-reduce-initial: 6.1.0(postcss@8.5.14) + postcss-reduce-transforms: 6.0.2(postcss@8.5.14) + postcss-svgo: 6.0.3(postcss@8.5.14) + postcss-unique-selectors: 6.0.4(postcss@8.5.14) cssnano-preset-default@6.1.2(postcss@8.5.6): dependencies: @@ -24852,47 +24916,57 @@ snapshots: postcss-svgo: 6.0.3(postcss@8.5.6) postcss-unique-selectors: 6.0.4(postcss@8.5.6) - cssnano-preset-default@7.0.10(postcss@8.5.6): + cssnano-preset-default@7.0.10(postcss@8.5.14): dependencies: browserslist: 4.28.1 - css-declaration-sorter: 7.3.0(postcss@8.5.6) - cssnano-utils: 5.0.1(postcss@8.5.6) - postcss: 8.5.6 - postcss-calc: 10.1.1(postcss@8.5.6) - postcss-colormin: 7.0.5(postcss@8.5.6) - postcss-convert-values: 7.0.8(postcss@8.5.6) - postcss-discard-comments: 7.0.5(postcss@8.5.6) - postcss-discard-duplicates: 7.0.2(postcss@8.5.6) - postcss-discard-empty: 7.0.1(postcss@8.5.6) - postcss-discard-overridden: 7.0.1(postcss@8.5.6) - postcss-merge-longhand: 7.0.5(postcss@8.5.6) - postcss-merge-rules: 7.0.7(postcss@8.5.6) - postcss-minify-font-values: 7.0.1(postcss@8.5.6) - postcss-minify-gradients: 7.0.1(postcss@8.5.6) - postcss-minify-params: 7.0.5(postcss@8.5.6) - postcss-minify-selectors: 7.0.5(postcss@8.5.6) - postcss-normalize-charset: 7.0.1(postcss@8.5.6) - postcss-normalize-display-values: 7.0.1(postcss@8.5.6) - postcss-normalize-positions: 7.0.1(postcss@8.5.6) - postcss-normalize-repeat-style: 7.0.1(postcss@8.5.6) - postcss-normalize-string: 7.0.1(postcss@8.5.6) - postcss-normalize-timing-functions: 7.0.1(postcss@8.5.6) - postcss-normalize-unicode: 7.0.5(postcss@8.5.6) - postcss-normalize-url: 7.0.1(postcss@8.5.6) - postcss-normalize-whitespace: 7.0.1(postcss@8.5.6) - postcss-ordered-values: 7.0.2(postcss@8.5.6) - postcss-reduce-initial: 7.0.5(postcss@8.5.6) - postcss-reduce-transforms: 7.0.1(postcss@8.5.6) - postcss-svgo: 7.1.0(postcss@8.5.6) - postcss-unique-selectors: 7.0.4(postcss@8.5.6) + css-declaration-sorter: 7.3.0(postcss@8.5.14) + cssnano-utils: 5.0.1(postcss@8.5.14) + postcss: 8.5.14 + postcss-calc: 10.1.1(postcss@8.5.14) + postcss-colormin: 7.0.5(postcss@8.5.14) + postcss-convert-values: 7.0.8(postcss@8.5.14) + postcss-discard-comments: 7.0.5(postcss@8.5.14) + postcss-discard-duplicates: 7.0.2(postcss@8.5.14) + postcss-discard-empty: 7.0.1(postcss@8.5.14) + postcss-discard-overridden: 7.0.1(postcss@8.5.14) + postcss-merge-longhand: 7.0.5(postcss@8.5.14) + postcss-merge-rules: 7.0.7(postcss@8.5.14) + postcss-minify-font-values: 7.0.1(postcss@8.5.14) + postcss-minify-gradients: 7.0.1(postcss@8.5.14) + postcss-minify-params: 7.0.5(postcss@8.5.14) + postcss-minify-selectors: 7.0.5(postcss@8.5.14) + postcss-normalize-charset: 7.0.1(postcss@8.5.14) + postcss-normalize-display-values: 7.0.1(postcss@8.5.14) + postcss-normalize-positions: 7.0.1(postcss@8.5.14) + postcss-normalize-repeat-style: 7.0.1(postcss@8.5.14) + postcss-normalize-string: 7.0.1(postcss@8.5.14) + postcss-normalize-timing-functions: 7.0.1(postcss@8.5.14) + postcss-normalize-unicode: 7.0.5(postcss@8.5.14) + postcss-normalize-url: 7.0.1(postcss@8.5.14) + postcss-normalize-whitespace: 7.0.1(postcss@8.5.14) + postcss-ordered-values: 7.0.2(postcss@8.5.14) + postcss-reduce-initial: 7.0.5(postcss@8.5.14) + postcss-reduce-transforms: 7.0.1(postcss@8.5.14) + postcss-svgo: 7.1.0(postcss@8.5.14) + postcss-unique-selectors: 7.0.4(postcss@8.5.14) + + cssnano-utils@4.0.2(postcss@8.5.14): + dependencies: + postcss: 8.5.14 cssnano-utils@4.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 - cssnano-utils@5.0.1(postcss@8.5.6): + cssnano-utils@5.0.1(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 + + cssnano@6.1.2(postcss@8.5.14): + dependencies: + cssnano-preset-default: 6.1.2(postcss@8.5.14) + lilconfig: 3.1.3 + postcss: 8.5.14 cssnano@6.1.2(postcss@8.5.6): dependencies: @@ -24900,11 +24974,11 @@ snapshots: lilconfig: 3.1.3 postcss: 8.5.6 - cssnano@7.1.2(postcss@8.5.6): + cssnano@7.1.2(postcss@8.5.14): dependencies: - cssnano-preset-default: 7.0.10(postcss@8.5.6) + cssnano-preset-default: 7.0.10(postcss@8.5.14) lilconfig: 3.1.3 - postcss: 8.5.6 + postcss: 8.5.14 csso@5.0.5: dependencies: @@ -26537,8 +26611,7 @@ snapshots: dependencies: whatwg-encoding: 3.1.1 - html-entities@2.3.3: - optional: true + html-entities@2.3.3: {} html-entities@2.6.0: {} @@ -26709,6 +26782,10 @@ snapshots: dependencies: safer-buffer: 2.1.2 + icss-utils@5.1.0(postcss@8.5.14): + dependencies: + postcss: 8.5.14 + icss-utils@5.1.0(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -29382,12 +29459,18 @@ snapshots: postcss: 8.5.6 postcss-selector-parser: 7.1.0 - postcss-calc@10.1.1(postcss@8.5.6): + postcss-calc@10.1.1(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 + postcss-calc@9.0.1(postcss@8.5.14): + dependencies: + postcss: 8.5.14 + postcss-selector-parser: 6.1.2 + postcss-value-parser: 4.2.0 + postcss-calc@9.0.1(postcss@8.5.6): dependencies: postcss: 8.5.6 @@ -29420,6 +29503,14 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 + postcss-colormin@6.1.0(postcss@8.5.14): + dependencies: + browserslist: 4.28.1 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.5.14 + postcss-value-parser: 4.2.0 + postcss-colormin@6.1.0(postcss@8.5.6): dependencies: browserslist: 4.28.1 @@ -29428,12 +29519,18 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-colormin@7.0.5(postcss@8.5.6): + postcss-colormin@7.0.5(postcss@8.5.14): dependencies: browserslist: 4.28.1 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.5.6 + postcss: 8.5.14 + postcss-value-parser: 4.2.0 + + postcss-convert-values@6.1.0(postcss@8.5.14): + dependencies: + browserslist: 4.28.1 + postcss: 8.5.14 postcss-value-parser: 4.2.0 postcss-convert-values@6.1.0(postcss@8.5.6): @@ -29442,10 +29539,10 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-convert-values@7.0.8(postcss@8.5.6): + postcss-convert-values@7.0.8(postcss@8.5.14): dependencies: browserslist: 4.28.1 - postcss: 8.5.6 + postcss: 8.5.14 postcss-value-parser: 4.2.0 postcss-custom-media@11.0.6(postcss@8.5.6): @@ -29478,46 +29575,62 @@ snapshots: postcss: 8.5.6 postcss-selector-parser: 7.1.0 + postcss-discard-comments@6.0.2(postcss@8.5.14): + dependencies: + postcss: 8.5.14 + postcss-discard-comments@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-discard-comments@7.0.5(postcss@8.5.6): + postcss-discard-comments@7.0.5(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 postcss-selector-parser: 7.1.0 postcss-discard-duplicates@5.1.0(postcss@8.5.6): dependencies: postcss: 8.5.6 + postcss-discard-duplicates@6.0.3(postcss@8.5.14): + dependencies: + postcss: 8.5.14 + postcss-discard-duplicates@6.0.3(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-discard-duplicates@7.0.2(postcss@8.5.6): + postcss-discard-duplicates@7.0.2(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 + + postcss-discard-empty@6.0.3(postcss@8.5.14): + dependencies: + postcss: 8.5.14 postcss-discard-empty@6.0.3(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-discard-empty@7.0.1(postcss@8.5.6): + postcss-discard-empty@7.0.1(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 + + postcss-discard-overridden@6.0.2(postcss@8.5.14): + dependencies: + postcss: 8.5.14 postcss-discard-overridden@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-discard-overridden@7.0.1(postcss@8.5.6): + postcss-discard-overridden@7.0.1(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 - postcss-discard-unused@6.0.5(postcss@8.5.6): + postcss-discard-unused@6.0.5(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 postcss-selector-parser: 6.1.2 postcss-double-position-gradients@6.0.4(postcss@8.5.6): @@ -29594,23 +29707,37 @@ snapshots: postcss-media-query-parser@0.2.3: {} - postcss-merge-idents@6.0.3(postcss@8.5.6): + postcss-merge-idents@6.0.3(postcss@8.5.14): dependencies: - cssnano-utils: 4.0.2(postcss@8.5.6) - postcss: 8.5.6 + cssnano-utils: 4.0.2(postcss@8.5.14) + postcss: 8.5.14 postcss-value-parser: 4.2.0 + postcss-merge-longhand@6.0.5(postcss@8.5.14): + dependencies: + postcss: 8.5.14 + postcss-value-parser: 4.2.0 + stylehacks: 6.1.1(postcss@8.5.14) + postcss-merge-longhand@6.0.5(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 stylehacks: 6.1.1(postcss@8.5.6) - postcss-merge-longhand@7.0.5(postcss@8.5.6): + postcss-merge-longhand@7.0.5(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 postcss-value-parser: 4.2.0 - stylehacks: 7.0.7(postcss@8.5.6) + stylehacks: 7.0.7(postcss@8.5.14) + + postcss-merge-rules@6.1.1(postcss@8.5.14): + dependencies: + browserslist: 4.28.1 + caniuse-api: 3.0.0 + cssnano-utils: 4.0.2(postcss@8.5.14) + postcss: 8.5.14 + postcss-selector-parser: 6.1.2 postcss-merge-rules@6.1.1(postcss@8.5.6): dependencies: @@ -29620,22 +29747,34 @@ snapshots: postcss: 8.5.6 postcss-selector-parser: 6.1.2 - postcss-merge-rules@7.0.7(postcss@8.5.6): + postcss-merge-rules@7.0.7(postcss@8.5.14): dependencies: browserslist: 4.28.1 caniuse-api: 3.0.0 - cssnano-utils: 5.0.1(postcss@8.5.6) - postcss: 8.5.6 + cssnano-utils: 5.0.1(postcss@8.5.14) + postcss: 8.5.14 postcss-selector-parser: 7.1.0 + postcss-minify-font-values@6.1.0(postcss@8.5.14): + dependencies: + postcss: 8.5.14 + postcss-value-parser: 4.2.0 + postcss-minify-font-values@6.1.0(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-minify-font-values@7.0.1(postcss@8.5.6): + postcss-minify-font-values@7.0.1(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 + postcss-value-parser: 4.2.0 + + postcss-minify-gradients@6.0.3(postcss@8.5.14): + dependencies: + colord: 2.9.3 + cssnano-utils: 4.0.2(postcss@8.5.14) + postcss: 8.5.14 postcss-value-parser: 4.2.0 postcss-minify-gradients@6.0.3(postcss@8.5.6): @@ -29645,11 +29784,18 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-minify-gradients@7.0.1(postcss@8.5.6): + postcss-minify-gradients@7.0.1(postcss@8.5.14): dependencies: colord: 2.9.3 - cssnano-utils: 5.0.1(postcss@8.5.6) - postcss: 8.5.6 + cssnano-utils: 5.0.1(postcss@8.5.14) + postcss: 8.5.14 + postcss-value-parser: 4.2.0 + + postcss-minify-params@6.1.0(postcss@8.5.14): + dependencies: + browserslist: 4.28.1 + cssnano-utils: 4.0.2(postcss@8.5.14) + postcss: 8.5.14 postcss-value-parser: 4.2.0 postcss-minify-params@6.1.0(postcss@8.5.6): @@ -29659,28 +29805,44 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-minify-params@7.0.5(postcss@8.5.6): + postcss-minify-params@7.0.5(postcss@8.5.14): dependencies: browserslist: 4.28.1 - cssnano-utils: 5.0.1(postcss@8.5.6) - postcss: 8.5.6 + cssnano-utils: 5.0.1(postcss@8.5.14) + postcss: 8.5.14 postcss-value-parser: 4.2.0 + postcss-minify-selectors@6.0.4(postcss@8.5.14): + dependencies: + postcss: 8.5.14 + postcss-selector-parser: 6.1.2 + postcss-minify-selectors@6.0.4(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-selector-parser: 6.1.2 - postcss-minify-selectors@7.0.5(postcss@8.5.6): + postcss-minify-selectors@7.0.5(postcss@8.5.14): dependencies: cssesc: 3.0.0 - postcss: 8.5.6 + postcss: 8.5.14 postcss-selector-parser: 7.1.0 + postcss-modules-extract-imports@3.1.0(postcss@8.5.14): + dependencies: + postcss: 8.5.14 + postcss-modules-extract-imports@3.1.0(postcss@8.5.6): dependencies: postcss: 8.5.6 + postcss-modules-local-by-default@4.2.0(postcss@8.5.14): + dependencies: + icss-utils: 5.1.0(postcss@8.5.14) + postcss: 8.5.14 + postcss-selector-parser: 7.1.0 + postcss-value-parser: 4.2.0 + postcss-modules-local-by-default@4.2.0(postcss@8.5.6): dependencies: icss-utils: 5.1.0(postcss@8.5.6) @@ -29688,11 +29850,21 @@ snapshots: postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 + postcss-modules-scope@3.2.1(postcss@8.5.14): + dependencies: + postcss: 8.5.14 + postcss-selector-parser: 7.1.0 + postcss-modules-scope@3.2.1(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-selector-parser: 7.1.0 + postcss-modules-values@4.0.0(postcss@8.5.14): + dependencies: + icss-utils: 5.1.0(postcss@8.5.14) + postcss: 8.5.14 + postcss-modules-values@4.0.0(postcss@8.5.6): dependencies: icss-utils: 5.1.0(postcss@8.5.6) @@ -29710,9 +29882,9 @@ snapshots: postcss-modules-values: 4.0.0(postcss@8.5.6) string-hash: 1.1.3 - postcss-nested@6.0.1(postcss@8.5.6): + postcss-nested@6.0.1(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 postcss-selector-parser: 6.1.2 postcss-nesting@13.0.2(postcss@8.5.6): @@ -29722,22 +29894,36 @@ snapshots: postcss: 8.5.6 postcss-selector-parser: 7.1.0 + postcss-normalize-charset@6.0.2(postcss@8.5.14): + dependencies: + postcss: 8.5.14 + postcss-normalize-charset@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-normalize-charset@7.0.1(postcss@8.5.6): + postcss-normalize-charset@7.0.1(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 + + postcss-normalize-display-values@6.0.2(postcss@8.5.14): + dependencies: + postcss: 8.5.14 + postcss-value-parser: 4.2.0 postcss-normalize-display-values@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-display-values@7.0.1(postcss@8.5.6): + postcss-normalize-display-values@7.0.1(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 + postcss-value-parser: 4.2.0 + + postcss-normalize-positions@6.0.2(postcss@8.5.14): + dependencies: + postcss: 8.5.14 postcss-value-parser: 4.2.0 postcss-normalize-positions@6.0.2(postcss@8.5.6): @@ -29745,9 +29931,14 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-positions@7.0.1(postcss@8.5.6): + postcss-normalize-positions@7.0.1(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 + postcss-value-parser: 4.2.0 + + postcss-normalize-repeat-style@6.0.2(postcss@8.5.14): + dependencies: + postcss: 8.5.14 postcss-value-parser: 4.2.0 postcss-normalize-repeat-style@6.0.2(postcss@8.5.6): @@ -29755,9 +29946,14 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@7.0.1(postcss@8.5.6): + postcss-normalize-repeat-style@7.0.1(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 + postcss-value-parser: 4.2.0 + + postcss-normalize-string@6.0.2(postcss@8.5.14): + dependencies: + postcss: 8.5.14 postcss-value-parser: 4.2.0 postcss-normalize-string@6.0.2(postcss@8.5.6): @@ -29765,9 +29961,14 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-string@7.0.1(postcss@8.5.6): + postcss-normalize-string@7.0.1(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 + postcss-value-parser: 4.2.0 + + postcss-normalize-timing-functions@6.0.2(postcss@8.5.14): + dependencies: + postcss: 8.5.14 postcss-value-parser: 4.2.0 postcss-normalize-timing-functions@6.0.2(postcss@8.5.6): @@ -29775,9 +29976,15 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@7.0.1(postcss@8.5.6): + postcss-normalize-timing-functions@7.0.1(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 + postcss-value-parser: 4.2.0 + + postcss-normalize-unicode@6.1.0(postcss@8.5.14): + dependencies: + browserslist: 4.28.1 + postcss: 8.5.14 postcss-value-parser: 4.2.0 postcss-normalize-unicode@6.1.0(postcss@8.5.6): @@ -29786,10 +29993,15 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@7.0.5(postcss@8.5.6): + postcss-normalize-unicode@7.0.5(postcss@8.5.14): dependencies: browserslist: 4.28.1 - postcss: 8.5.6 + postcss: 8.5.14 + postcss-value-parser: 4.2.0 + + postcss-normalize-url@6.0.2(postcss@8.5.14): + dependencies: + postcss: 8.5.14 postcss-value-parser: 4.2.0 postcss-normalize-url@6.0.2(postcss@8.5.6): @@ -29797,9 +30009,14 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-url@7.0.1(postcss@8.5.6): + postcss-normalize-url@7.0.1(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 + postcss-value-parser: 4.2.0 + + postcss-normalize-whitespace@6.0.2(postcss@8.5.14): + dependencies: + postcss: 8.5.14 postcss-value-parser: 4.2.0 postcss-normalize-whitespace@6.0.2(postcss@8.5.6): @@ -29807,25 +30024,31 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@7.0.1(postcss@8.5.6): + postcss-normalize-whitespace@7.0.1(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 postcss-value-parser: 4.2.0 postcss-opacity-percentage@3.0.0(postcss@8.5.6): dependencies: postcss: 8.5.6 + postcss-ordered-values@6.0.2(postcss@8.5.14): + dependencies: + cssnano-utils: 4.0.2(postcss@8.5.14) + postcss: 8.5.14 + postcss-value-parser: 4.2.0 + postcss-ordered-values@6.0.2(postcss@8.5.6): dependencies: cssnano-utils: 4.0.2(postcss@8.5.6) postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-ordered-values@7.0.2(postcss@8.5.6): + postcss-ordered-values@7.0.2(postcss@8.5.14): dependencies: - cssnano-utils: 5.0.1(postcss@8.5.6) - postcss: 8.5.6 + cssnano-utils: 5.0.1(postcss@8.5.14) + postcss: 8.5.14 postcss-value-parser: 4.2.0 postcss-overflow-shorthand@6.0.0(postcss@8.5.6): @@ -29918,31 +30141,42 @@ snapshots: postcss: 8.5.6 postcss-selector-parser: 7.1.0 - postcss-reduce-idents@6.0.3(postcss@8.5.6): + postcss-reduce-idents@6.0.3(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 postcss-value-parser: 4.2.0 + postcss-reduce-initial@6.1.0(postcss@8.5.14): + dependencies: + browserslist: 4.28.1 + caniuse-api: 3.0.0 + postcss: 8.5.14 + postcss-reduce-initial@6.1.0(postcss@8.5.6): dependencies: browserslist: 4.28.1 caniuse-api: 3.0.0 postcss: 8.5.6 - postcss-reduce-initial@7.0.5(postcss@8.5.6): + postcss-reduce-initial@7.0.5(postcss@8.5.14): dependencies: browserslist: 4.28.1 caniuse-api: 3.0.0 - postcss: 8.5.6 + postcss: 8.5.14 + + postcss-reduce-transforms@6.0.2(postcss@8.5.14): + dependencies: + postcss: 8.5.14 + postcss-value-parser: 4.2.0 postcss-reduce-transforms@6.0.2(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-reduce-transforms@7.0.1(postcss@8.5.6): + postcss-reduce-transforms@7.0.1(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 postcss-value-parser: 4.2.0 postcss-replace-overflow-wrap@4.0.0(postcss@8.5.6): @@ -29964,45 +30198,55 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-sort-media-queries@5.2.0(postcss@8.5.6): + postcss-sort-media-queries@5.2.0(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 sort-css-media-queries: 2.2.0 + postcss-svgo@6.0.3(postcss@8.5.14): + dependencies: + postcss: 8.5.14 + postcss-value-parser: 4.2.0 + svgo: 3.3.2 + postcss-svgo@6.0.3(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 svgo: 3.3.2 - postcss-svgo@7.1.0(postcss@8.5.6): + postcss-svgo@7.1.0(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 postcss-value-parser: 4.2.0 svgo: 4.0.0 + postcss-unique-selectors@6.0.4(postcss@8.5.14): + dependencies: + postcss: 8.5.14 + postcss-selector-parser: 6.1.2 + postcss-unique-selectors@6.0.4(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-selector-parser: 6.1.2 - postcss-unique-selectors@7.0.4(postcss@8.5.6): + postcss-unique-selectors@7.0.4(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 postcss-selector-parser: 7.1.0 postcss-value-parser@4.2.0: {} - postcss-zindex@6.0.2(postcss@8.5.6): + postcss-zindex@6.0.2(postcss@8.5.14): dependencies: - postcss: 8.5.6 + postcss: 8.5.14 postcss@8.5.14: dependencies: nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 - optional: true postcss@8.5.6: dependencies: @@ -30845,7 +31089,7 @@ snapshots: dependencies: escalade: 3.2.0 picocolors: 1.1.1 - postcss: 8.5.6 + postcss: 8.5.14 strip-json-comments: 3.1.1 run-applescript@7.1.0: {} @@ -31216,7 +31460,6 @@ snapshots: solid-js: 1.9.13 transitivePeerDependencies: - supports-color - optional: true sort-css-media-queries@2.2.0: {} @@ -31430,16 +31673,22 @@ snapshots: dependencies: inline-style-parser: 0.2.4 + stylehacks@6.1.1(postcss@8.5.14): + dependencies: + browserslist: 4.28.1 + postcss: 8.5.14 + postcss-selector-parser: 6.1.2 + stylehacks@6.1.1(postcss@8.5.6): dependencies: browserslist: 4.28.1 postcss: 8.5.6 postcss-selector-parser: 6.1.2 - stylehacks@7.0.7(postcss@8.5.6): + stylehacks@7.0.7(postcss@8.5.14): dependencies: browserslist: 4.28.1 - postcss: 8.5.6 + postcss: 8.5.14 postcss-selector-parser: 7.1.0 sucrase@3.35.0: @@ -32456,6 +32705,21 @@ snapshots: - supports-color optional: true + vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.7.0)(solid-js@1.9.13)(vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)): + dependencies: + '@babel/core': 7.28.6 + '@types/babel__core': 7.20.5 + babel-preset-solid: 1.9.12(@babel/core@7.28.6)(solid-js@1.9.13) + merge-anything: 5.1.7 + solid-js: 1.9.13 + solid-refresh: 0.6.3(solid-js@1.9.13) + vite: 7.3.0(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vitefu: 1.1.1(vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)) + optionalDependencies: + '@testing-library/jest-dom': 6.7.0 + transitivePeerDependencies: + - supports-color + vite-plugin-vue-tracer@1.2.0(vite@6.4.1(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.26(typescript@5.6.3)): dependencies: estree-walker: 3.0.3 @@ -32548,7 +32812,7 @@ snapshots: esbuild: 0.27.2 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 - postcss: 8.5.6 + postcss: 8.5.14 rollup: 4.56.0 tinyglobby: 0.2.15 optionalDependencies: @@ -32566,7 +32830,7 @@ snapshots: esbuild: 0.27.2 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 - postcss: 8.5.6 + postcss: 8.5.14 rollup: 4.56.0 tinyglobby: 0.2.15 optionalDependencies: @@ -32587,6 +32851,10 @@ snapshots: optionalDependencies: vite: 7.1.5(@types/node@22.18.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vitefu@1.1.1(vite@7.3.0(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2)): + optionalDependencies: + vite: 7.3.0(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2) + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.18.0)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(sass@1.97.1)(terser@5.43.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: '@types/chai': 5.2.2