diff --git a/apps/web/package.json b/apps/web/package.json
index 7fb84c6..a75337d 100644
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -26,6 +26,7 @@
"@ai-sdk/groq": "^3.0.4",
"@ai-sdk/mistral": "^3.0.5",
"@ai-sdk/openai": "3.0.7",
+ "@isoflow/isopacks": "^0.0.10",
"@modelcontextprotocol/sdk": "^1.25.2",
"@prisma/client": "^6.19.1",
"@react-three/drei": "^10.7.7",
@@ -50,6 +51,7 @@
"better-auth": "^1.4.10",
"bm25": "^0.1.1",
"d3": "^7.9.0",
+ "isoflow": "^1.1.1",
"next": "^16.1.1",
"next-themes": "^0.4.6",
"openai": "^6.15.0",
diff --git a/apps/web/src/app/tech/page.tsx b/apps/web/src/app/tech/page.tsx
new file mode 100644
index 0000000..aacd579
--- /dev/null
+++ b/apps/web/src/app/tech/page.tsx
@@ -0,0 +1,65 @@
+import type { Metadata } from 'next';
+import { AppHeader } from '~/components/AppHeader';
+import { TechDiagram } from '~/components/tech/TechDiagram';
+
+export const metadata: Metadata = {
+ title: 'Tech Stack | TPMJS',
+ description:
+ 'Interactive isometric diagram of the TPMJS ecosystem architecture. Explore external services, applications, published packages, internal packages, and official tools.',
+};
+
+export default function TechPage(): React.ReactElement {
+ return (
+
+
+
+
+ {/* Header */}
+
+
+ TPMJS Tech Stack
+
+
+ Interactive isometric view of the entire TPMJS ecosystem. Pan and zoom to explore how
+ services, apps, and packages connect.
+
+
+
+ {/* Diagram */}
+
+
+ {/* Legend */}
+
+ {[
+ {
+ label: 'External Services',
+ color: 'bg-orange-100 dark:bg-orange-900/30 border-orange-500',
+ },
+ {
+ label: 'Applications',
+ color: 'bg-blue-100 dark:bg-blue-900/30 border-blue-500',
+ },
+ {
+ label: 'Published Packages',
+ color: 'bg-green-100 dark:bg-green-900/30 border-green-500',
+ },
+ {
+ label: 'Internal Packages',
+ color: 'bg-purple-100 dark:bg-purple-900/30 border-purple-500',
+ },
+ {
+ label: 'Official Tools',
+ color: 'bg-pink-100 dark:bg-pink-900/30 border-pink-500',
+ },
+ ].map((item) => (
+
+ ))}
+
+
+
+
+ );
+}
diff --git a/apps/web/src/components/tech/TechDiagram.tsx b/apps/web/src/components/tech/TechDiagram.tsx
new file mode 100644
index 0000000..6cc187e
--- /dev/null
+++ b/apps/web/src/components/tech/TechDiagram.tsx
@@ -0,0 +1,63 @@
+'use client';
+
+import { Spinner } from '@tpmjs/ui/Spinner/Spinner';
+import dynamic from 'next/dynamic';
+import { Component, type ReactNode } from 'react';
+import { techDiagramData } from './techDiagramData';
+
+// Isoflow uses canvas/paper.js and must be loaded client-side only
+const Isoflow = dynamic(() => import('isoflow'), {
+ ssr: false,
+ loading: () => (
+
+
+
+ ),
+});
+
+// ── Error Boundary ──────────────────────────────────────────────────
+interface ErrorBoundaryState {
+ hasError: boolean;
+}
+
+class DiagramErrorBoundary extends Component<{ children: ReactNode }, ErrorBoundaryState> {
+ constructor(props: { children: ReactNode }) {
+ super(props);
+ this.state = { hasError: false };
+ }
+
+ static getDerivedStateFromError(): ErrorBoundaryState {
+ return { hasError: true };
+ }
+
+ render() {
+ if (this.state.hasError) {
+ return (
+
+ );
+ }
+ return this.props.children;
+ }
+}
+
+// ── Main Component ──────────────────────────────────────────────────
+export function TechDiagram() {
+ return (
+
+
+
+
+
+ );
+}
diff --git a/apps/web/src/components/tech/techDiagramData.ts b/apps/web/src/components/tech/techDiagramData.ts
new file mode 100644
index 0000000..cd17f49
--- /dev/null
+++ b/apps/web/src/components/tech/techDiagramData.ts
@@ -0,0 +1,424 @@
+// eslint-disable-next-line import/no-internal-modules
+import isoflowIsopack from '@isoflow/isopacks/dist/isoflow';
+// eslint-disable-next-line import/no-internal-modules -- @isoflow/isopacks requires deep imports for individual collections
+import { flattenCollections } from '@isoflow/isopacks/dist/utils';
+import type { InitialData } from 'isoflow';
+
+const icons = flattenCollections([isoflowIsopack]);
+
+// ── Colors (5 categories) ──────────────────────────────────────────
+const colors = [
+ { id: 'orange', value: '#f97316' }, // External Services
+ { id: 'blue', value: '#3b82f6' }, // Applications
+ { id: 'green', value: '#22c55e' }, // Published Packages
+ { id: 'purple', value: '#a855f7' }, // Internal Packages
+ { id: 'pink', value: '#ec4899' }, // Official Tools
+];
+
+// ── Items (nodes) ──────────────────────────────────────────────────
+
+// External Services (orange)
+const externalServices = [
+ {
+ id: 'npm-registry',
+ name: 'npm Registry',
+ icon: 'cloud',
+ description:
+ 'Source of truth for all TPMJS packages. Synced via changes feed and keyword search.',
+ },
+ {
+ id: 'github',
+ name: 'GitHub',
+ icon: 'document',
+ description: 'Source code hosting, CI/CD via GitHub Actions, and repository metadata.',
+ },
+ {
+ id: 'vercel',
+ name: 'Vercel',
+ icon: 'server',
+ description:
+ 'Hosting platform for Next.js apps. Handles deployments, cron jobs, and edge functions.',
+ },
+ {
+ id: 'postgresql',
+ name: 'PostgreSQL',
+ icon: 'storage',
+ description:
+ 'Primary database via Neon. Stores tools, sync checkpoints, users, and conversations.',
+ },
+ {
+ id: 'ai-providers',
+ name: 'AI Providers',
+ icon: 'diamond',
+ description:
+ 'OpenAI, Anthropic, Google, Groq, Mistral — LLM providers for tool execution and chat.',
+ },
+ {
+ id: 'discord',
+ name: 'Discord',
+ icon: 'speech',
+ description: 'Community platform for TPMJS users and contributors.',
+ },
+ {
+ id: 'resend',
+ name: 'Resend',
+ icon: 'mail',
+ description: 'Transactional email service for notifications and auth flows.',
+ },
+];
+
+// Applications (blue)
+const applications = [
+ {
+ id: 'web',
+ name: 'web (Next.js)',
+ icon: 'desktop',
+ description:
+ 'Main tpmjs.com application. Next.js 16 App Router with SSR, API routes, and cron syncing.',
+ },
+ {
+ id: 'playground',
+ name: 'Playground',
+ icon: 'laptop',
+ description:
+ 'Interactive tool testing environment where users can try TPMJS tools in the browser.',
+ },
+ {
+ id: 'tutorial',
+ name: 'Tutorial',
+ icon: 'document',
+ description: 'Step-by-step guide for creating and publishing TPMJS tools.',
+ },
+ {
+ id: 'railway-executor',
+ name: 'Railway Executor',
+ icon: 'vm',
+ description: 'Sandboxed tool execution engine deployed on Railway for secure code execution.',
+ },
+];
+
+// Published Packages (green) — @tpmjs/* on npm
+const publishedPackages = [
+ {
+ id: 'pkg-cli',
+ name: '@tpmjs/cli',
+ icon: 'function-module',
+ description: 'CLI tool for creating, validating, and publishing TPMJS tools.',
+ },
+ {
+ id: 'pkg-types',
+ name: '@tpmjs/types',
+ icon: 'cube',
+ description: 'Shared TypeScript types and Zod schemas used across the ecosystem.',
+ },
+ {
+ id: 'pkg-ui',
+ name: '@tpmjs/ui',
+ icon: 'block',
+ description: 'React component library with .ts-only components. Design system for TPMJS apps.',
+ },
+ {
+ id: 'pkg-utils',
+ name: '@tpmjs/utils',
+ icon: 'switch-module',
+ description: 'Utility functions: cn(), formatting helpers, and shared logic.',
+ },
+ {
+ id: 'pkg-env',
+ name: '@tpmjs/env',
+ icon: 'lock',
+ description: 'Environment variable validation with Zod schemas.',
+ },
+ {
+ id: 'pkg-bridge',
+ name: '@tpmjs/bridge',
+ icon: 'router',
+ description:
+ 'Bridge between TPMJS tools and AI SDK. Converts tool definitions to AI-compatible format.',
+ },
+ {
+ id: 'pkg-mcp-client',
+ name: '@tpmjs/mcp-client',
+ icon: 'loadbalancer',
+ description: 'MCP (Model Context Protocol) client for connecting TPMJS tools to AI agents.',
+ },
+ {
+ id: 'pkg-executor-test',
+ name: '@tpmjs/executor-test',
+ icon: 'cronjob',
+ description: 'Testing utilities for tool executors. Validates tool inputs/outputs.',
+ },
+ {
+ id: 'pkg-registry-search',
+ name: '@tpmjs/registry-search',
+ icon: 'dns',
+ description: 'Search client for querying the TPMJS tool registry.',
+ },
+ {
+ id: 'pkg-registry-execute',
+ name: '@tpmjs/registry-execute',
+ icon: 'queue',
+ description: 'Execution client for running tools from the TPMJS registry.',
+ },
+];
+
+// Internal Packages (purple)
+const internalPackages = [
+ {
+ id: 'int-db',
+ name: '@tpmjs/db',
+ icon: 'storage',
+ description: 'Prisma database client. Schema, migrations, and generated client.',
+ },
+ {
+ id: 'int-npm-client',
+ name: '@tpmjs/npm-client',
+ icon: 'package-module',
+ description: 'npm registry API client. Fetches package metadata, downloads, and changes feed.',
+ },
+ {
+ id: 'int-package-executor',
+ name: '@tpmjs/package-executor',
+ icon: 'vm',
+ description: 'Sandboxed package execution engine. Runs npm packages safely.',
+ },
+ {
+ id: 'int-config',
+ name: '@tpmjs/config',
+ icon: 'cube',
+ description: 'Shared configurations: Biome, ESLint, Tailwind, TypeScript.',
+ },
+ {
+ id: 'int-test',
+ name: '@tpmjs/test',
+ icon: 'cronjob',
+ description: 'Shared Vitest configuration for all packages.',
+ },
+ {
+ id: 'int-mocks',
+ name: '@tpmjs/mocks',
+ icon: 'sphere',
+ description: 'MSW mock server for testing. Mocks npm, GitHub, and internal APIs.',
+ },
+ {
+ id: 'int-logger',
+ name: '@tpmjs/logger',
+ icon: 'document',
+ description: 'Structured logging utility used across packages.',
+ },
+];
+
+// Official Tools (pink)
+const officialTools = [
+ {
+ id: 'official-tools',
+ name: '191 Official Tools',
+ icon: 'tower',
+ description:
+ 'The TPMJS official tool collection: AI-powered utilities published to npm and synced to the registry.',
+ },
+];
+
+const items = [
+ ...externalServices,
+ ...applications,
+ ...publishedPackages,
+ ...internalPackages,
+ ...officialTools,
+];
+
+// ── View: positions + connectors ────────────────────────────────────
+// Isometric grid layout. Items spaced ~4 tiles apart, grouped in rows.
+
+const viewItems = [
+ // Row y≈0: External Services (7 nodes)
+ { id: 'npm-registry', tile: { x: 0, y: 0 } },
+ { id: 'github', tile: { x: 4, y: 0 } },
+ { id: 'vercel', tile: { x: 8, y: 0 } },
+ { id: 'postgresql', tile: { x: 12, y: 0 } },
+ { id: 'ai-providers', tile: { x: 16, y: 0 } },
+ { id: 'discord', tile: { x: 20, y: 0 } },
+ { id: 'resend', tile: { x: 24, y: 0 } },
+
+ // Row y≈6: Applications (4 nodes)
+ { id: 'web', tile: { x: 4, y: 6 } },
+ { id: 'playground', tile: { x: 10, y: 6 } },
+ { id: 'tutorial', tile: { x: 16, y: 6 } },
+ { id: 'railway-executor', tile: { x: 22, y: 6 } },
+
+ // Row y≈12: Published Packages — row 1 (5 nodes)
+ { id: 'pkg-cli', tile: { x: 2, y: 12 } },
+ { id: 'pkg-types', tile: { x: 6, y: 12 } },
+ { id: 'pkg-ui', tile: { x: 10, y: 12 } },
+ { id: 'pkg-utils', tile: { x: 14, y: 12 } },
+ { id: 'pkg-env', tile: { x: 18, y: 12 } },
+
+ // Row y≈16: Published Packages — row 2 (5 nodes)
+ { id: 'pkg-bridge', tile: { x: 2, y: 16 } },
+ { id: 'pkg-mcp-client', tile: { x: 6, y: 16 } },
+ { id: 'pkg-executor-test', tile: { x: 10, y: 16 } },
+ { id: 'pkg-registry-search', tile: { x: 14, y: 16 } },
+ { id: 'pkg-registry-execute', tile: { x: 18, y: 16 } },
+
+ // Row y≈21: Internal Packages (7 nodes)
+ { id: 'int-db', tile: { x: 0, y: 21 } },
+ { id: 'int-npm-client', tile: { x: 4, y: 21 } },
+ { id: 'int-package-executor', tile: { x: 8, y: 21 } },
+ { id: 'int-config', tile: { x: 12, y: 21 } },
+ { id: 'int-test', tile: { x: 16, y: 21 } },
+ { id: 'int-mocks', tile: { x: 20, y: 21 } },
+ { id: 'int-logger', tile: { x: 24, y: 21 } },
+
+ // Row y≈26: Official Tools (1 aggregate node)
+ { id: 'official-tools', tile: { x: 12, y: 26 } },
+];
+
+// Helper to create a connector between two items
+let connectorId = 0;
+function conn(
+ fromItem: string,
+ toItem: string,
+ color: string,
+ style: 'SOLID' | 'DOTTED' | 'DASHED' = 'SOLID'
+) {
+ connectorId++;
+ return {
+ id: `c${connectorId}`,
+ color,
+ style,
+ anchors: [
+ { id: `c${connectorId}-a1`, ref: { item: fromItem } },
+ { id: `c${connectorId}-a2`, ref: { item: toItem } },
+ ],
+ };
+}
+
+const connectors = [
+ // External Services → Applications
+ conn('npm-registry', 'web', 'orange'),
+ conn('npm-registry', 'int-npm-client', 'orange', 'DASHED'),
+ conn('github', 'web', 'orange'),
+ conn('vercel', 'web', 'orange'),
+ conn('vercel', 'playground', 'orange', 'DASHED'),
+ conn('vercel', 'tutorial', 'orange', 'DASHED'),
+ conn('postgresql', 'int-db', 'orange'),
+ conn('ai-providers', 'web', 'orange'),
+ conn('ai-providers', 'railway-executor', 'orange', 'DASHED'),
+ conn('resend', 'web', 'orange', 'DASHED'),
+
+ // Applications → Published Packages
+ conn('web', 'pkg-types', 'blue'),
+ conn('web', 'pkg-ui', 'blue'),
+ conn('web', 'pkg-utils', 'blue'),
+ conn('web', 'pkg-env', 'blue'),
+ conn('web', 'pkg-registry-search', 'blue', 'DASHED'),
+ conn('web', 'pkg-registry-execute', 'blue', 'DASHED'),
+
+ // Internal → Applications
+ conn('int-db', 'web', 'purple'),
+ conn('int-npm-client', 'web', 'purple', 'DASHED'),
+ conn('int-package-executor', 'railway-executor', 'purple'),
+
+ // Official Tools → npm → web (publish & sync pipeline)
+ conn('official-tools', 'npm-registry', 'pink'),
+ conn('official-tools', 'pkg-cli', 'pink', 'DASHED'),
+
+ // Bridge / MCP connections
+ conn('pkg-bridge', 'web', 'green', 'DASHED'),
+ conn('pkg-mcp-client', 'web', 'green', 'DASHED'),
+];
+
+// Colored rectangles to group categories
+const rectangles = [
+ {
+ id: 'rect-external',
+ color: 'orange',
+ from: { x: -1, y: -1 },
+ to: { x: 26, y: 2 },
+ },
+ {
+ id: 'rect-apps',
+ color: 'blue',
+ from: { x: 3, y: 5 },
+ to: { x: 24, y: 8 },
+ },
+ {
+ id: 'rect-published',
+ color: 'green',
+ from: { x: 1, y: 11 },
+ to: { x: 20, y: 18 },
+ },
+ {
+ id: 'rect-internal',
+ color: 'purple',
+ from: { x: -1, y: 20 },
+ to: { x: 26, y: 23 },
+ },
+ {
+ id: 'rect-tools',
+ color: 'pink',
+ from: { x: 10, y: 25 },
+ to: { x: 15, y: 28 },
+ },
+];
+
+// Text labels for category regions
+const textBoxes = [
+ {
+ id: 'label-external',
+ tile: { x: -1, y: -2 },
+ content: 'External Services',
+ fontSize: 16,
+ orientation: 'X' as const,
+ },
+ {
+ id: 'label-apps',
+ tile: { x: 3, y: 4 },
+ content: 'Applications',
+ fontSize: 16,
+ orientation: 'X' as const,
+ },
+ {
+ id: 'label-published',
+ tile: { x: 1, y: 10 },
+ content: 'Published Packages (@tpmjs/*)',
+ fontSize: 16,
+ orientation: 'X' as const,
+ },
+ {
+ id: 'label-internal',
+ tile: { x: -1, y: 19 },
+ content: 'Internal Packages',
+ fontSize: 16,
+ orientation: 'X' as const,
+ },
+ {
+ id: 'label-tools',
+ tile: { x: 10, y: 24 },
+ content: 'Official Tools',
+ fontSize: 16,
+ orientation: 'X' as const,
+ },
+];
+
+export const techDiagramData: InitialData = {
+ title: 'TPMJS Ecosystem Architecture',
+ description:
+ 'Interactive isometric diagram of the TPMJS monorepo: external services, applications, published packages, internal packages, and official tools.',
+ icons,
+ colors,
+ items,
+ views: [
+ {
+ id: 'overview',
+ name: 'Ecosystem Overview',
+ description: 'Full view of the TPMJS architecture',
+ items: viewItems,
+ connectors,
+ rectangles,
+ textBoxes,
+ },
+ ],
+ fitToView: true,
+ view: 'overview',
+};
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index e76f104..24e8e63 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -178,7 +178,7 @@ importers:
version: link:../../packages/utils
framer-motion:
specifier: ^12.25.0
- version: 12.25.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ version: 12.25.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
next:
specifier: ^16.1.1
version: 16.1.1(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
@@ -246,6 +246,9 @@ importers:
'@ai-sdk/openai':
specifier: 3.0.7
version: 3.0.7(zod@4.3.5)
+ '@isoflow/isopacks':
+ specifier: ^0.0.10
+ version: 0.0.10
'@modelcontextprotocol/sdk':
specifier: ^1.25.2
version: 1.25.2(hono@4.10.6)(zod@4.3.5)
@@ -254,10 +257,10 @@ importers:
version: 6.19.1(prisma@6.19.1(typescript@5.9.3))(typescript@5.9.3)
'@react-three/drei':
specifier: ^10.7.7
- version: 10.7.7(@react-three/fiber@9.5.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(three@0.182.0))(@types/react@19.2.7)(@types/three@0.182.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(three@0.182.0)
+ version: 10.7.7(@react-three/fiber@9.5.0(@types/react@19.2.7)(immer@10.2.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(three@0.182.0))(@types/react@19.2.7)(@types/three@0.182.0)(immer@10.2.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(three@0.182.0)
'@react-three/fiber':
specifier: ^9.5.0
- version: 9.5.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(three@0.182.0)
+ version: 9.5.0(@types/react@19.2.7)(immer@10.2.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(three@0.182.0)
'@tpmjs/db':
specifier: workspace:*
version: link:../../packages/db
@@ -311,13 +314,16 @@ importers:
version: 3.0.1(ajv@8.17.1)
better-auth:
specifier: ^1.4.10
- version: 1.4.10(@prisma/client@6.19.1(prisma@6.19.1(typescript@5.9.3))(typescript@5.9.3))(better-sqlite3@12.5.0)(drizzle-kit@0.31.8)(drizzle-orm@0.45.1(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@6.19.1(prisma@6.19.1(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@upstash/redis@1.36.1)(better-sqlite3@12.5.0)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@6.19.1(typescript@5.9.3)))(mongodb@6.20.0)(mysql2@3.15.3)(next@16.1.1(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(pg@8.16.3)(prisma@6.19.1(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vitest@4.0.16(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(happy-dom@20.1.0)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
+ version: 1.4.10(@prisma/client@6.19.1(prisma@6.19.1(typescript@5.9.3))(typescript@5.9.3))(better-sqlite3@12.5.0)(drizzle-kit@0.31.8)(drizzle-orm@0.45.1(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@6.19.1(prisma@6.19.1(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(@upstash/redis@1.36.1)(better-sqlite3@12.5.0)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@6.19.1(typescript@5.9.3)))(mongodb@6.20.0)(mysql2@3.15.3)(next@16.1.1(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(pg@8.16.3)(prisma@6.19.1(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vitest@4.0.16(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(happy-dom@20.1.0)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))
bm25:
specifier: ^0.1.1
version: 0.1.1
d3:
specifier: ^7.9.0
version: 7.9.0
+ isoflow:
+ specifier: ^1.1.1
+ version: 1.1.1(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
next:
specifier: ^16.1.1
version: 16.1.1(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
@@ -632,6 +638,18 @@ importers:
specifier: ^4.0.16
version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@22.19.5)(happy-dom@20.1.0)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@22.19.5)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+ packages/logger:
+ devDependencies:
+ '@tpmjs/tsconfig':
+ specifier: workspace:*
+ version: link:../config/tsconfig
+ tsup:
+ specifier: ^8.5.1
+ version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
+ typescript:
+ specifier: ^5.9.3
+ version: 5.9.3
+
packages/mcp-client:
dependencies:
'@modelcontextprotocol/sdk':
@@ -797,7 +815,7 @@ importers:
version: 14.0.2
drizzle-orm:
specifier: ^0.45.1
- version: 0.45.1(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@upstash/redis@1.36.1)(better-sqlite3@12.5.0)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))
+ version: 0.45.1(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(@upstash/redis@1.36.1)(better-sqlite3@12.5.0)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))
ora:
specifier: ^9.0.0
version: 9.0.0
@@ -830,6 +848,22 @@ importers:
specifier: ^5.9.3
version: 5.9.3
+ packages/tool-test-utils:
+ dependencies:
+ ai:
+ specifier: 6.0.49
+ version: 6.0.49(zod@4.3.5)
+ devDependencies:
+ '@tpmjs/tsconfig':
+ specifier: workspace:*
+ version: link:../config/tsconfig
+ tsup:
+ specifier: ^8.5.1
+ version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
+ typescript:
+ specifier: ^5.9.3
+ version: 5.9.3
+
packages/tools:
dependencies:
ai:
@@ -1184,6 +1218,22 @@ importers:
specifier: ^5.9.3
version: 5.9.3
+ packages/tools/official/cloudflare:
+ dependencies:
+ ai:
+ specifier: 6.0.49
+ version: 6.0.49(zod@4.3.5)
+ devDependencies:
+ '@tpmjs/tsconfig':
+ specifier: workspace:*
+ version: link:../../../config/tsconfig
+ tsup:
+ specifier: ^8.5.1
+ version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
+ typescript:
+ specifier: ^5.9.3
+ version: 5.9.3
+
packages/tools/official/compare-pages:
dependencies:
ai:
@@ -1834,6 +1884,22 @@ importers:
specifier: ^5.9.3
version: 5.9.3
+ packages/tools/official/github:
+ dependencies:
+ ai:
+ specifier: 6.0.49
+ version: 6.0.49(zod@4.3.5)
+ devDependencies:
+ '@tpmjs/tsconfig':
+ specifier: workspace:*
+ version: link:../../../config/tsconfig
+ tsup:
+ specifier: ^8.5.1
+ version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
+ typescript:
+ specifier: ^5.9.3
+ version: 5.9.3
+
packages/tools/official/glossary-build:
dependencies:
ai:
@@ -2331,6 +2397,22 @@ importers:
specifier: ^5.9.3
version: 5.9.3
+ packages/tools/official/neon:
+ dependencies:
+ ai:
+ specifier: 6.0.49
+ version: 6.0.49(zod@4.3.5)
+ devDependencies:
+ '@tpmjs/tsconfig':
+ specifier: workspace:*
+ version: link:../../../config/tsconfig
+ tsup:
+ specifier: ^8.5.1
+ version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
+ typescript:
+ specifier: ^5.9.3
+ version: 5.9.3
+
packages/tools/official/normalize-whitespace:
dependencies:
ai:
@@ -2554,6 +2636,28 @@ importers:
specifier: ^5.9.3
version: 5.9.3
+ packages/tools/official/postgres:
+ dependencies:
+ ai:
+ specifier: 6.0.49
+ version: 6.0.49(zod@4.3.5)
+ devDependencies:
+ '@tpmjs/tool-test-utils':
+ specifier: workspace:*
+ version: link:../../../tool-test-utils
+ '@tpmjs/tsconfig':
+ specifier: workspace:*
+ version: link:../../../config/tsconfig
+ tsup:
+ specifier: ^8.5.1
+ version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
+ typescript:
+ specifier: ^5.9.3
+ version: 5.9.3
+ vitest:
+ specifier: ^4.0.16
+ version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(happy-dom@20.1.0)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+
packages/tools/official/postmark:
dependencies:
ai:
@@ -2698,6 +2802,22 @@ importers:
specifier: ^5.9.3
version: 5.9.3
+ packages/tools/official/railway:
+ dependencies:
+ ai:
+ specifier: 6.0.49
+ version: 6.0.49(zod@4.3.5)
+ devDependencies:
+ '@tpmjs/tsconfig':
+ specifier: workspace:*
+ version: link:../../../config/tsconfig
+ tsup:
+ specifier: ^8.5.1
+ version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
+ typescript:
+ specifier: ^5.9.3
+ version: 5.9.3
+
packages/tools/official/ratio-analysis:
dependencies:
ai:
@@ -2848,6 +2968,28 @@ importers:
specifier: ^5.9.3
version: 5.9.3
+ packages/tools/official/redis:
+ dependencies:
+ ai:
+ specifier: 6.0.49
+ version: 6.0.49(zod@4.3.5)
+ devDependencies:
+ '@tpmjs/tool-test-utils':
+ specifier: workspace:*
+ version: link:../../../tool-test-utils
+ '@tpmjs/tsconfig':
+ specifier: workspace:*
+ version: link:../../../config/tsconfig
+ tsup:
+ specifier: ^8.5.1
+ version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
+ typescript:
+ specifier: ^5.9.3
+ version: 5.9.3
+ vitest:
+ specifier: ^4.0.16
+ version: 4.0.16(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(happy-dom@20.1.0)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)
+
packages/tools/official/regex-extract:
dependencies:
ai:
@@ -3830,6 +3972,22 @@ importers:
specifier: ^5.9.3
version: 5.9.3
+ packages/tools/official/vercel:
+ dependencies:
+ ai:
+ specifier: 6.0.49
+ version: 6.0.49(zod@4.3.5)
+ devDependencies:
+ '@tpmjs/tsconfig':
+ specifier: workspace:*
+ version: link:../../../config/tsconfig
+ tsup:
+ specifier: ^8.5.1
+ version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
+ typescript:
+ specifier: ^5.9.3
+ version: 5.9.3
+
packages/tools/official/workflow-auto-repair:
dependencies:
ai:
@@ -4728,6 +4886,10 @@ packages:
resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==}
engines: {node: '>=18'}
+ '@ctrl/tinycolor@4.2.0':
+ resolution: {integrity: sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==}
+ engines: {node: '>=14'}
+
'@dimforge/rapier3d-compat@0.12.0':
resolution: {integrity: sha512-uekIGetywIgopfD97oDL5PfeezkFpNhwlzlaEYNOA0N6ghdsOvh/HYjSMek5Q2O1PYvRSDFcqFVJl4r4ZBwOow==}
@@ -4761,6 +4923,60 @@ packages:
'@emnapi/wasi-threads@1.1.0':
resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==}
+ '@emotion/babel-plugin@11.13.5':
+ resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==}
+
+ '@emotion/cache@11.14.0':
+ resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==}
+
+ '@emotion/hash@0.9.2':
+ resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==}
+
+ '@emotion/is-prop-valid@1.4.0':
+ resolution: {integrity: sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==}
+
+ '@emotion/memoize@0.9.0':
+ resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==}
+
+ '@emotion/react@11.14.0':
+ resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: '>=16.8.0'
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@emotion/serialize@1.3.3':
+ resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==}
+
+ '@emotion/sheet@1.4.0':
+ resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==}
+
+ '@emotion/styled@11.14.1':
+ resolution: {integrity: sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==}
+ peerDependencies:
+ '@emotion/react': ^11.0.0-rc.0
+ '@types/react': '*'
+ react: '>=16.8.0'
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@emotion/unitless@0.10.0':
+ resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==}
+
+ '@emotion/use-insertion-effect-with-fallbacks@1.2.0':
+ resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==}
+ peerDependencies:
+ react: '>=16.8.0'
+
+ '@emotion/utils@1.4.2':
+ resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==}
+
+ '@emotion/weak-memoize@0.4.0':
+ resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==}
+
'@esbuild-kit/core-utils@3.3.2':
resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==}
deprecated: 'Merged into tsx: https://tsx.is'
@@ -5755,6 +5971,9 @@ packages:
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
engines: {node: '>=12'}
+ '@isoflow/isopacks@0.0.10':
+ resolution: {integrity: sha512-pR5vj2A83mPBCxgswD+tE8+/ftXmesv5Qy6sgNAuYxiyDw7Dng1zA1QnRKgxdvgsGH9qTDwak+53KzJuHeVTNg==}
+
'@joshwooding/vite-plugin-react-docgen-typescript@0.5.0':
resolution: {integrity: sha512-qYDdL7fPwLRI+bJNurVcis+tNgJmvWjH4YTBGXTA8xMuxFrnAz6E5o35iyzyKbq5J5Lr8mJGfrR5GXl+WGwhgQ==}
peerDependencies:
@@ -5850,6 +6069,94 @@ packages:
resolution: {integrity: sha512-EFd6cVbHsgLa6wa4RljGj6Wk75qoHxUSyc5asLyyPSyuhIcdS2Q3Phw6ImS1q+CkALthJRShiYfKANcQMuMqsQ==}
engines: {node: '>=18'}
+ '@mui/core-downloads-tracker@5.18.0':
+ resolution: {integrity: sha512-jbhwoQ1AY200PSSOrNXmrFCaSDSJWP7qk6urkTmIirvRXDROkqe+QwcLlUiw/PrREwsIF/vm3/dAXvjlMHF0RA==}
+
+ '@mui/icons-material@5.18.0':
+ resolution: {integrity: sha512-1s0vEZj5XFXDMmz3Arl/R7IncFqJ+WQ95LDp1roHWGDE2oCO3IS4/hmiOv1/8SD9r6B7tv9GLiqVZYHo+6PkTg==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ '@mui/material': ^5.0.0
+ '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
+ react: ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@mui/material@5.18.0':
+ resolution: {integrity: sha512-bbH/HaJZpFtXGvWg3TsBWG4eyt3gah3E7nCNU8GLyRjVoWcA91Vm/T+sjHfUcwgJSw9iLtucfHBoq+qW/T30aA==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ '@emotion/react': ^11.5.0
+ '@emotion/styled': ^11.3.0
+ '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
+ react: ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@emotion/react':
+ optional: true
+ '@emotion/styled':
+ optional: true
+ '@types/react':
+ optional: true
+
+ '@mui/private-theming@5.17.1':
+ resolution: {integrity: sha512-XMxU0NTYcKqdsG8LRmSoxERPXwMbp16sIXPcLVgLGII/bVNagX0xaheWAwFv8+zDK7tI3ajllkuD3GZZE++ICQ==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
+ react: ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@mui/styled-engine@5.18.0':
+ resolution: {integrity: sha512-BN/vKV/O6uaQh2z5rXV+MBlVrEkwoS/TK75rFQ2mjxA7+NBo8qtTAOA4UaM0XeJfn7kh2wZ+xQw2HAx0u+TiBg==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ '@emotion/react': ^11.4.1
+ '@emotion/styled': ^11.3.0
+ react: ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@emotion/react':
+ optional: true
+ '@emotion/styled':
+ optional: true
+
+ '@mui/system@5.18.0':
+ resolution: {integrity: sha512-ojZGVcRWqWhu557cdO3pWHloIGJdzVtxs3rk0F9L+x55LsUjcMUVkEhiF7E4TMxZoF9MmIHGGs0ZX3FDLAf0Xw==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ '@emotion/react': ^11.5.0
+ '@emotion/styled': ^11.3.0
+ '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
+ react: ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@emotion/react':
+ optional: true
+ '@emotion/styled':
+ optional: true
+ '@types/react':
+ optional: true
+
+ '@mui/types@7.2.24':
+ resolution: {integrity: sha512-3c8tRt/CbWZ+pEg7QpSwbdxOk36EfmhbKf6AGZsD1EcLDLTSZoxxJ86FVtcjxvjuhdyBiWKSTGZFaXCnidO2kw==}
+ peerDependencies:
+ '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
+ '@mui/utils@5.17.1':
+ resolution: {integrity: sha512-jEZ8FTqInt2WzxDV8bhImWBqeQRD99c/id/fq83H0ER9tFl+sfZlaAoCdznGvbSQQ9ividMxqSV2c7cC1vBcQg==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
+ react: ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
'@napi-rs/wasm-runtime@0.2.12':
resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==}
@@ -6090,6 +6397,9 @@ packages:
resolution: {integrity: sha512-h104Kh26rR8tm+a3Qkc5S4VLYint3FE48as7+/5oCEcKR2idC/pF1G6AhIXKI+eHPJa/3J9i5z0Al47IeGHPkA==}
engines: {node: '>=12'}
+ '@popperjs/core@2.11.8':
+ resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
+
'@prisma/client-runtime-utils@7.2.0':
resolution: {integrity: sha512-dn7oB53v0tqkB0wBdMuTNFNPdEbfICEUe82Tn9FoKAhJCUkDH+fmyEp0ClciGh+9Hp2Tuu2K52kth2MTLstvmA==}
@@ -6237,6 +6547,10 @@ packages:
peerDependencies:
'@redis/client': ^1.0.0
+ '@remix-run/router@1.23.2':
+ resolution: {integrity: sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==}
+ engines: {node: '>=14.0.0'}
+
'@remotion/bundler@4.0.409':
resolution: {integrity: sha512-BSmpf3ooe1+pSIVDwd/LKlMbzboQHUDkToLZiPoDAsdbfjE45zZyVmEYKSiwx1kfPShr+zjnTv85CSdN85BsXQ==}
peerDependencies:
@@ -7212,9 +7526,21 @@ packages:
'@types/papaparse@5.5.2':
resolution: {integrity: sha512-gFnFp/JMzLHCwRf7tQHrNnfhN4eYBVYYI897CGX4MY1tzY9l2aLkVyx2IlKZ/SAqDbB3I1AOZW5gTMGGsqWliA==}
+ '@types/parse-json@4.0.2':
+ resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
+
+ '@types/pg@8.16.0':
+ resolution: {integrity: sha512-RmhMd/wD+CF8Dfo+cVIy3RR5cl8CyfXQ0tGgW6XBL8L4LM/UTEbNXYRbLwU6w+CgrKBNbrQWt4FUtTfaU5jSYQ==}
+
'@types/prismjs@1.26.5':
resolution: {integrity: sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==}
+ '@types/prop-types@15.7.15':
+ resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==}
+
+ '@types/quill@1.3.10':
+ resolution: {integrity: sha512-IhW3fPW+bkt9MLNlycw8u8fWb7oO7W5URC9MfZYHBlA24rex9rs23D5DETChu1zvgVdc5ka64ICjJOgQMr6Shw==}
+
'@types/react-dom@19.2.3':
resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==}
peerDependencies:
@@ -7228,6 +7554,11 @@ packages:
'@types/react-syntax-highlighter@15.5.13':
resolution: {integrity: sha512-uLGJ87j6Sz8UaBAooU0T6lWJ0dBmjZgN1PZTrj05TNql2/XpC6+4HhMT5syIdFUUt+FASfCeLLv4kBygNU+8qA==}
+ '@types/react-transition-group@4.4.12':
+ resolution: {integrity: sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==}
+ peerDependencies:
+ '@types/react': '*'
+
'@types/react@19.2.7':
resolution: {integrity: sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==}
@@ -7801,6 +8132,10 @@ packages:
atomically@2.1.0:
resolution: {integrity: sha512-+gDffFXRW6sl/HCwbta7zK4uNqbPjv4YJEAdz7Vu+FLQHe77eZ4bvbJGi4hE0QPeJlMYMA3piXEr1UL3dAwx7Q==}
+ auto-bind@5.0.1:
+ resolution: {integrity: sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
autoprefixer@10.4.23:
resolution: {integrity: sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==}
engines: {node: ^10 || ^12 || >=14}
@@ -7833,6 +8168,10 @@ packages:
resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
engines: {node: '>= 0.4'}
+ babel-plugin-macros@3.1.0:
+ resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==}
+ engines: {node: '>=10', npm: '>=6'}
+
bail@2.0.2:
resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
@@ -8144,6 +8483,9 @@ packages:
chownr@1.1.4:
resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
+ chroma-js@2.6.0:
+ resolution: {integrity: sha512-BLHvCB9s8Z1EV4ethr6xnkl/P2YRFOGqfgvuMG/MyCbZPrTA+NeiByY6XvgF0zP4/2deU2CXnWyMa3zu1LqQ3A==}
+
chrome-trace-event@1.0.4:
resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==}
engines: {node: '>=6.0'}
@@ -8190,6 +8532,10 @@ packages:
resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
engines: {node: '>=12'}
+ clone@2.1.2:
+ resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==}
+ engines: {node: '>=0.8'}
+
clsx@2.1.1:
resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
engines: {node: '>=6'}
@@ -8269,6 +8615,9 @@ packages:
resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
engines: {node: '>= 0.6'}
+ convert-source-map@1.9.0:
+ resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
+
convert-source-map@2.0.0:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
@@ -8301,6 +8650,10 @@ packages:
cose-base@2.2.0:
resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==}
+ cosmiconfig@7.1.0:
+ resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
+ engines: {node: '>=10'}
+
cross-env@7.0.3:
resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==}
engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'}
@@ -8559,6 +8912,10 @@ packages:
resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
engines: {node: '>=6'}
+ deep-equal@1.1.2:
+ resolution: {integrity: sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==}
+ engines: {node: '>= 0.4'}
+
deep-extend@0.6.0:
resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
engines: {node: '>=4.0.0'}
@@ -8682,9 +9039,15 @@ packages:
dom-accessibility-api@0.6.3:
resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==}
+ dom-helpers@5.2.1:
+ resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==}
+
dom-serializer@2.0.0:
resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
+ dom-to-image@2.6.0:
+ resolution: {integrity: sha512-Dt0QdaHmLpjURjU7Tnu3AgYSF2LuOmksSGsUcE6ItvJoCWTBEmiMXcqBdNSAm9+QbbwD7JMoVsuuKX6ZVQv1qA==}
+
domelementtype@2.3.0:
resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
@@ -9111,6 +9474,9 @@ packages:
resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
engines: {node: '>= 0.6'}
+ eventemitter3@2.0.3:
+ resolution: {integrity: sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==}
+
eventemitter3@4.0.7:
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
@@ -9173,6 +9539,9 @@ packages:
fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+ fast-diff@1.1.2:
+ resolution: {integrity: sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==}
+
fast-glob@3.3.1:
resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
engines: {node: '>=8.6.0'}
@@ -9239,6 +9608,9 @@ packages:
resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
engines: {node: '>=16.0.0'}
+ file-saver@2.0.5:
+ resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==}
+
file-uri-to-path@1.0.0:
resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
@@ -9253,6 +9625,9 @@ packages:
resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==}
engines: {node: '>= 18.0.0'}
+ find-root@1.1.0:
+ resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==}
+
find-up@4.1.0:
resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
engines: {node: '>=8'}
@@ -9515,6 +9890,9 @@ packages:
resolution: {integrity: sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ==}
engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0}
+ gsap@3.14.2:
+ resolution: {integrity: sha512-P8/mMxVLU7o4+55+1TCnQrPmgjPKnwkzkXOK1asnR9Jg2lna4tEY5qBJjMmAaOBDDZWtlRjBXjLa0w53G/uBLA==}
+
hachure-fill@0.5.2:
resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==}
@@ -9614,6 +9992,9 @@ packages:
headers-polyfill@4.0.3:
resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==}
+ heap@0.2.5:
+ resolution: {integrity: sha512-G7HLD+WKcrOyJP5VQwYZNC3Z6FcQ7YYjEFiFoIj8PfEr73mu421o8B1N5DKUcc8K37EsJ2XXWA8DtrDz/2dReg==}
+
hermes-estree@0.25.1:
resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==}
@@ -9629,6 +10010,9 @@ packages:
hls.js@1.6.15:
resolution: {integrity: sha512-E3a5VwgXimGHwpRGV+WxRTKeSp2DW5DI5MWv34ulL3t5UNmyJWCQ1KmLEHbYzcfThfXG8amBL+fCYPneGHC4VA==}
+ hoist-non-react-statics@3.3.2:
+ resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
+
hono@4.10.6:
resolution: {integrity: sha512-BIdolzGpDO9MQ4nu3AUuDwHZZ+KViNm+EZ75Ae55eMXMqLVhDFqEMXxtUe9Qh8hjL+pIna/frs2j6Y2yD5Ua/g==}
engines: {node: '>=16.9.0'}
@@ -9729,6 +10113,9 @@ packages:
immediate@3.0.6:
resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
+ immer@10.2.0:
+ resolution: {integrity: sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==}
+
import-fresh@3.3.1:
resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
engines: {node: '>=6'}
@@ -10002,6 +10389,12 @@ packages:
resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==}
engines: {node: '>=16'}
+ isoflow@1.1.1:
+ resolution: {integrity: sha512-XbrnygiiQwfj+u1SV5PYSae+A+9ii++xCyYc619E1MJAom1hUv9ZjNMJBb3VB+D+lO/PBygKJxnq61WTz1aLcA==}
+ peerDependencies:
+ react: '>=17'
+ react-dom: '>=17'
+
isomorphic-dompurify@2.35.0:
resolution: {integrity: sha512-a9+LQqylQCU8f1zmsYmg2tfrbdY2YS/Hc+xntcq/mDI2MY3Q108nq8K23BWDIg6YGC5JsUMC15fj2ZMqCzt/+A==}
engines: {node: '>=20.19.5'}
@@ -10827,6 +11220,19 @@ packages:
typescript:
optional: true
+ mui-color-input@2.0.3:
+ resolution: {integrity: sha512-rAd040qQ0Y+8dk4gE8kkCiJ/vCgA0j4vv1quJ43BfORTFE3uHarHj0xY1Vo9CPbojtx1f5vW+CjckYPRIZPIRg==}
+ peerDependencies:
+ '@emotion/react': ^11.5.0
+ '@emotion/styled': ^11.3.0
+ '@mui/material': ^5.0.0
+ '@types/react': ^18.0.0
+ react: ^18.0.0
+ react-dom: ^18.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
mustache@4.2.0:
resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==}
hasBin: true
@@ -11047,6 +11453,10 @@ packages:
resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
engines: {node: '>= 0.4'}
+ object-is@1.1.6:
+ resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
+ engines: {node: '>= 0.4'}
+
object-keys@1.1.1:
resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
engines: {node: '>= 0.4'}
@@ -11217,9 +11627,16 @@ packages:
papaparse@5.5.3:
resolution: {integrity: sha512-5QvjGxYVjxO59MGU2lHVYpRWBBtKHnlIAcSe1uNFCkkptUh63NFRj0FJQm7nR67puEruUci/ZkjmEFrjCAyP4A==}
+ paper@0.12.18:
+ resolution: {integrity: sha512-ZSLIEejQTJZuYHhSSqAf4jXOnii0kPhCJGAnYAANtdS72aNwXJ9cP95tZHgq1tnNpvEwgQhggy+4OarviqTCGw==}
+ engines: {node: '>=8.0.0'}
+
param-case@3.0.4:
resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==}
+ parchment@1.1.4:
+ resolution: {integrity: sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==}
+
parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
@@ -11231,6 +11648,10 @@ packages:
resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==}
engines: {node: '>=4'}
+ parse-json@5.2.0:
+ resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
+ engines: {node: '>=8'}
+
parse-srcset@1.0.2:
resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==}
@@ -11292,6 +11713,9 @@ packages:
pathe@2.0.3:
resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
+ pathfinding@0.4.18:
+ resolution: {integrity: sha512-R0TGEQ9GRcFCDvAWlJAWC+KGJ9SLbW4c0nuZRcioVlXVTlw+F5RvXQ8SQgSqI9KXWC1ew95vgmIiyaWTlCe9Ag==}
+
pathval@2.0.1:
resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==}
engines: {node: '>= 14.16'}
@@ -11624,6 +12048,13 @@ packages:
resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
engines: {node: '>=10'}
+ quill-delta@3.6.3:
+ resolution: {integrity: sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==}
+ engines: {node: '>=0.10'}
+
+ quill@1.3.7:
+ resolution: {integrity: sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==}
+
randombytes@2.1.0:
resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
@@ -11656,28 +12087,62 @@ packages:
peerDependencies:
react: ^19.2.3
+ react-hook-form@7.71.1:
+ resolution: {integrity: sha512-9SUJKCGKo8HUSsCO+y0CtqkqI5nNuaDqTxyqPsZPqIwudpj4rCrAz/jZV+jn57bx5gtZKOh3neQu94DXMc+w5w==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ react: ^16.8.0 || ^17 || ^18 || ^19
+
react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
react-is@17.0.2:
resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
+ react-is@19.2.4:
+ resolution: {integrity: sha512-W+EWGn2v0ApPKgKKCy/7s7WHXkboGcsrXE+2joLyVxkbyVQfO3MUEaUQDHoSmb8TFFrSKYa9mw64WZHNHSDzYA==}
+
react-markdown@10.1.0:
resolution: {integrity: sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==}
peerDependencies:
'@types/react': '>=18'
react: '>=18'
+ react-quill@2.0.0:
+ resolution: {integrity: sha512-4qQtv1FtCfLgoD3PXAur5RyxuUbPXQGOHgTlFie3jtxp43mXDtzCKaOgQ3mLyZfi1PUlyjycfivKelFhy13QUg==}
+ peerDependencies:
+ react: ^16 || ^17 || ^18
+ react-dom: ^16 || ^17 || ^18
+
react-refresh@0.9.0:
resolution: {integrity: sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==}
engines: {node: '>=0.10.0'}
+ react-router-dom@6.30.3:
+ resolution: {integrity: sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ react: '>=16.8'
+ react-dom: '>=16.8'
+
+ react-router@6.30.3:
+ resolution: {integrity: sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ react: '>=16.8'
+
react-syntax-highlighter@16.1.0:
resolution: {integrity: sha512-E40/hBiP5rCNwkeBN1vRP+xow1X0pndinO+z3h7HLsHyjztbyjfzNWNKuAsJj+7DLam9iT4AaaOZnueCU+Nplg==}
engines: {node: '>= 16.20.2'}
peerDependencies:
react: '>= 0.14.0'
+ react-transition-group@4.4.5:
+ resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==}
+ peerDependencies:
+ react: '>=16.6.0'
+ react-dom: '>=16.6.0'
+
react-use-measure@2.1.7:
resolution: {integrity: sha512-KrvcAo13I/60HpwGO5jpW7E9DfusKyLPLvuHlUyP5zqnmAPhNc6qTRjUQrdTADl0lpPpDVU2/Gg51UlOGHXbdg==}
peerDependencies:
@@ -12116,6 +12581,10 @@ packages:
source-map-support@0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+ source-map@0.5.7:
+ resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
+ engines: {node: '>=0.10.0'}
+
source-map@0.6.1:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
@@ -12346,6 +12815,9 @@ packages:
babel-plugin-macros:
optional: true
+ stylis@4.2.0:
+ resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==}
+
stylis@4.3.6:
resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==}
@@ -13173,6 +13645,10 @@ packages:
yallist@4.0.0:
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+ yaml@1.10.2:
+ resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
+ engines: {node: '>= 6'}
+
yaml@2.8.2:
resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==}
engines: {node: '>= 14.6'}
@@ -13224,6 +13700,9 @@ packages:
peerDependencies:
zod: ^3.25.0 || ^4.0.0
+ zod@3.22.2:
+ resolution: {integrity: sha512-wvWkphh5WQsJbVk1tbx1l1Ly4yg+XecD+Mq280uBGt9wa5BKSWf4Mhp6GmrkPixhMxmabYY7RbzlwVP32pbGCg==}
+
zod@3.22.3:
resolution: {integrity: sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==}
@@ -14375,6 +14854,8 @@ snapshots:
'@csstools/css-tokenizer@3.0.4': {}
+ '@ctrl/tinycolor@4.2.0': {}
+
'@dimforge/rapier3d-compat@0.12.0': {}
'@drizzle-team/brocli@0.10.2': {}
@@ -14412,6 +14893,89 @@ snapshots:
tslib: 2.8.1
optional: true
+ '@emotion/babel-plugin@11.13.5':
+ dependencies:
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/runtime': 7.28.4
+ '@emotion/hash': 0.9.2
+ '@emotion/memoize': 0.9.0
+ '@emotion/serialize': 1.3.3
+ babel-plugin-macros: 3.1.0
+ convert-source-map: 1.9.0
+ escape-string-regexp: 4.0.0
+ find-root: 1.1.0
+ source-map: 0.5.7
+ stylis: 4.2.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@emotion/cache@11.14.0':
+ dependencies:
+ '@emotion/memoize': 0.9.0
+ '@emotion/sheet': 1.4.0
+ '@emotion/utils': 1.4.2
+ '@emotion/weak-memoize': 0.4.0
+ stylis: 4.2.0
+
+ '@emotion/hash@0.9.2': {}
+
+ '@emotion/is-prop-valid@1.4.0':
+ dependencies:
+ '@emotion/memoize': 0.9.0
+
+ '@emotion/memoize@0.9.0': {}
+
+ '@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3)':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@emotion/babel-plugin': 11.13.5
+ '@emotion/cache': 11.14.0
+ '@emotion/serialize': 1.3.3
+ '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.3)
+ '@emotion/utils': 1.4.2
+ '@emotion/weak-memoize': 0.4.0
+ hoist-non-react-statics: 3.3.2
+ react: 19.2.3
+ optionalDependencies:
+ '@types/react': 19.2.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@emotion/serialize@1.3.3':
+ dependencies:
+ '@emotion/hash': 0.9.2
+ '@emotion/memoize': 0.9.0
+ '@emotion/unitless': 0.10.0
+ '@emotion/utils': 1.4.2
+ csstype: 3.2.3
+
+ '@emotion/sheet@1.4.0': {}
+
+ '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3)':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@emotion/babel-plugin': 11.13.5
+ '@emotion/is-prop-valid': 1.4.0
+ '@emotion/react': 11.14.0(@types/react@19.2.7)(react@19.2.3)
+ '@emotion/serialize': 1.3.3
+ '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.3)
+ '@emotion/utils': 1.4.2
+ react: 19.2.3
+ optionalDependencies:
+ '@types/react': 19.2.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@emotion/unitless@0.10.0': {}
+
+ '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.2.3)':
+ dependencies:
+ react: 19.2.3
+
+ '@emotion/utils@1.4.2': {}
+
+ '@emotion/weak-memoize@0.4.0': {}
+
'@esbuild-kit/core-utils@3.3.2':
dependencies:
esbuild: 0.18.20
@@ -15106,6 +15670,8 @@ snapshots:
wrap-ansi: 8.1.0
wrap-ansi-cjs: wrap-ansi@7.0.0
+ '@isoflow/isopacks@0.0.10': {}
+
'@joshwooding/vite-plugin-react-docgen-typescript@0.5.0(typescript@5.9.3)(vite@7.3.1(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))':
dependencies:
glob: 10.5.0
@@ -15234,6 +15800,90 @@ snapshots:
outvariant: 1.4.3
strict-event-emitter: 0.5.1
+ '@mui/core-downloads-tracker@5.18.0': {}
+
+ '@mui/icons-material@5.18.0(@mui/material@5.18.0(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react@19.2.3)':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@mui/material': 5.18.0(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ react: 19.2.3
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ '@mui/material@5.18.0(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@mui/core-downloads-tracker': 5.18.0
+ '@mui/system': 5.18.0(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3)
+ '@mui/types': 7.2.24(@types/react@19.2.7)
+ '@mui/utils': 5.17.1(@types/react@19.2.7)(react@19.2.3)
+ '@popperjs/core': 2.11.8
+ '@types/react-transition-group': 4.4.12(@types/react@19.2.7)
+ clsx: 2.1.1
+ csstype: 3.2.3
+ prop-types: 15.8.1
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
+ react-is: 19.2.4
+ react-transition-group: 4.4.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ optionalDependencies:
+ '@emotion/react': 11.14.0(@types/react@19.2.7)(react@19.2.3)
+ '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3)
+ '@types/react': 19.2.7
+
+ '@mui/private-theming@5.17.1(@types/react@19.2.7)(react@19.2.3)':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@mui/utils': 5.17.1(@types/react@19.2.7)(react@19.2.3)
+ prop-types: 15.8.1
+ react: 19.2.3
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ '@mui/styled-engine@5.18.0(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(react@19.2.3)':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@emotion/cache': 11.14.0
+ '@emotion/serialize': 1.3.3
+ csstype: 3.2.3
+ prop-types: 15.8.1
+ react: 19.2.3
+ optionalDependencies:
+ '@emotion/react': 11.14.0(@types/react@19.2.7)(react@19.2.3)
+ '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3)
+
+ '@mui/system@5.18.0(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3)':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@mui/private-theming': 5.17.1(@types/react@19.2.7)(react@19.2.3)
+ '@mui/styled-engine': 5.18.0(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(react@19.2.3)
+ '@mui/types': 7.2.24(@types/react@19.2.7)
+ '@mui/utils': 5.17.1(@types/react@19.2.7)(react@19.2.3)
+ clsx: 2.1.1
+ csstype: 3.2.3
+ prop-types: 15.8.1
+ react: 19.2.3
+ optionalDependencies:
+ '@emotion/react': 11.14.0(@types/react@19.2.7)(react@19.2.3)
+ '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3)
+ '@types/react': 19.2.7
+
+ '@mui/types@7.2.24(@types/react@19.2.7)':
+ optionalDependencies:
+ '@types/react': 19.2.7
+
+ '@mui/utils@5.17.1(@types/react@19.2.7)(react@19.2.3)':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@mui/types': 7.2.24(@types/react@19.2.7)
+ '@types/prop-types': 15.7.15
+ clsx: 2.1.1
+ prop-types: 15.8.1
+ react: 19.2.3
+ react-is: 19.2.4
+ optionalDependencies:
+ '@types/react': 19.2.7
+
'@napi-rs/wasm-runtime@0.2.12':
dependencies:
'@emnapi/core': 1.8.1
@@ -15457,6 +16107,8 @@ snapshots:
'@pnpm/network.ca-file': 1.0.2
config-chain: 1.1.13
+ '@popperjs/core@2.11.8': {}
+
'@prisma/client-runtime-utils@7.2.0':
optional: true
@@ -15580,12 +16232,12 @@ snapshots:
react-dom: 19.2.3(react@19.2.3)
optional: true
- '@react-three/drei@10.7.7(@react-three/fiber@9.5.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(three@0.182.0))(@types/react@19.2.7)(@types/three@0.182.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(three@0.182.0)':
+ '@react-three/drei@10.7.7(@react-three/fiber@9.5.0(@types/react@19.2.7)(immer@10.2.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(three@0.182.0))(@types/react@19.2.7)(@types/three@0.182.0)(immer@10.2.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(three@0.182.0)':
dependencies:
'@babel/runtime': 7.28.4
'@mediapipe/tasks-vision': 0.10.17
'@monogrid/gainmap-js': 3.4.0(three@0.182.0)
- '@react-three/fiber': 9.5.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(three@0.182.0)
+ '@react-three/fiber': 9.5.0(@types/react@19.2.7)(immer@10.2.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(three@0.182.0)
'@use-gesture/react': 10.3.1(react@19.2.3)
camera-controls: 3.1.2(three@0.182.0)
cross-env: 7.0.3
@@ -15602,10 +16254,10 @@ snapshots:
three-mesh-bvh: 0.8.3(three@0.182.0)
three-stdlib: 2.36.1(three@0.182.0)
troika-three-text: 0.52.4(three@0.182.0)
- tunnel-rat: 0.1.2(@types/react@19.2.7)(react@19.2.3)
+ tunnel-rat: 0.1.2(@types/react@19.2.7)(immer@10.2.0)(react@19.2.3)
use-sync-external-store: 1.6.0(react@19.2.3)
utility-types: 3.11.0
- zustand: 5.0.10(@types/react@19.2.7)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3))
+ zustand: 5.0.10(@types/react@19.2.7)(immer@10.2.0)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3))
optionalDependencies:
react-dom: 19.2.3(react@19.2.3)
transitivePeerDependencies:
@@ -15613,7 +16265,7 @@ snapshots:
- '@types/three'
- immer
- '@react-three/fiber@9.5.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(three@0.182.0)':
+ '@react-three/fiber@9.5.0(@types/react@19.2.7)(immer@10.2.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(three@0.182.0)':
dependencies:
'@babel/runtime': 7.28.4
'@types/webxr': 0.5.24
@@ -15626,7 +16278,7 @@ snapshots:
suspend-react: 0.1.3(react@19.2.3)
three: 0.182.0
use-sync-external-store: 1.6.0(react@19.2.3)
- zustand: 5.0.10(@types/react@19.2.7)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3))
+ zustand: 5.0.10(@types/react@19.2.7)(immer@10.2.0)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3))
optionalDependencies:
react-dom: 19.2.3(react@19.2.3)
transitivePeerDependencies:
@@ -15659,6 +16311,8 @@ snapshots:
dependencies:
'@redis/client': 1.6.1
+ '@remix-run/router@1.23.2': {}
+
'@remotion/bundler@4.0.409(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@remotion/media-parser': 4.0.409
@@ -16904,8 +17558,23 @@ snapshots:
dependencies:
'@types/node': 25.0.3
+ '@types/parse-json@4.0.2': {}
+
+ '@types/pg@8.16.0':
+ dependencies:
+ '@types/node': 25.0.3
+ pg-protocol: 1.10.3
+ pg-types: 2.2.0
+ optional: true
+
'@types/prismjs@1.26.5': {}
+ '@types/prop-types@15.7.15': {}
+
+ '@types/quill@1.3.10':
+ dependencies:
+ parchment: 1.1.4
+
'@types/react-dom@19.2.3(@types/react@19.2.7)':
dependencies:
'@types/react': 19.2.7
@@ -16918,6 +17587,10 @@ snapshots:
dependencies:
'@types/react': 19.2.7
+ '@types/react-transition-group@4.4.12(@types/react@19.2.7)':
+ dependencies:
+ '@types/react': 19.2.7
+
'@types/react@19.2.7':
dependencies:
csstype: 3.2.3
@@ -17540,6 +18213,8 @@ snapshots:
stubborn-fs: 2.0.0
when-exit: 2.1.5
+ auto-bind@5.0.1: {}
+
autoprefixer@10.4.23(postcss@8.5.6):
dependencies:
browserslist: 4.28.1
@@ -17572,6 +18247,12 @@ snapshots:
axobject-query@4.1.0: {}
+ babel-plugin-macros@3.1.0:
+ dependencies:
+ '@babel/runtime': 7.28.4
+ cosmiconfig: 7.1.0
+ resolve: 1.22.11
+
bail@2.0.2: {}
balanced-match@1.0.2: {}
@@ -17588,7 +18269,7 @@ snapshots:
dependencies:
tweetnacl: 0.14.5
- better-auth@1.4.10(@prisma/client@6.19.1(prisma@6.19.1(typescript@5.9.3))(typescript@5.9.3))(better-sqlite3@12.5.0)(drizzle-kit@0.31.8)(drizzle-orm@0.45.1(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@6.19.1(prisma@6.19.1(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@upstash/redis@1.36.1)(better-sqlite3@12.5.0)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@6.19.1(typescript@5.9.3)))(mongodb@6.20.0)(mysql2@3.15.3)(next@16.1.1(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(pg@8.16.3)(prisma@6.19.1(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vitest@4.0.16(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(happy-dom@20.1.0)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)):
+ better-auth@1.4.10(@prisma/client@6.19.1(prisma@6.19.1(typescript@5.9.3))(typescript@5.9.3))(better-sqlite3@12.5.0)(drizzle-kit@0.31.8)(drizzle-orm@0.45.1(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@6.19.1(prisma@6.19.1(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(@upstash/redis@1.36.1)(better-sqlite3@12.5.0)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@6.19.1(typescript@5.9.3)))(mongodb@6.20.0)(mysql2@3.15.3)(next@16.1.1(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(pg@8.16.3)(prisma@6.19.1(typescript@5.9.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(vitest@4.0.16(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(happy-dom@20.1.0)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.30.2)(msw@2.12.7(@types/node@25.0.3)(typescript@5.9.3))(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)):
dependencies:
'@better-auth/core': 1.4.10(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.7(zod@4.3.5))(jose@6.1.3)(kysely@0.28.9)(nanostores@1.1.0)
'@better-auth/telemetry': 1.4.10(@better-auth/core@1.4.10(@better-auth/utils@0.3.0)(@better-fetch/fetch@1.1.21)(better-call@1.1.7(zod@4.3.5))(jose@6.1.3)(kysely@0.28.9)(nanostores@1.1.0))
@@ -17606,7 +18287,7 @@ snapshots:
'@prisma/client': 6.19.1(prisma@6.19.1(typescript@5.9.3))(typescript@5.9.3)
better-sqlite3: 12.5.0
drizzle-kit: 0.31.8
- drizzle-orm: 0.45.1(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@6.19.1(prisma@6.19.1(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@upstash/redis@1.36.1)(better-sqlite3@12.5.0)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@6.19.1(typescript@5.9.3))
+ drizzle-orm: 0.45.1(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@6.19.1(prisma@6.19.1(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(@upstash/redis@1.36.1)(better-sqlite3@12.5.0)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@6.19.1(typescript@5.9.3))
mongodb: 6.20.0
mysql2: 3.15.3
next: 16.1.1(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
@@ -17911,6 +18592,8 @@ snapshots:
chownr@1.1.4: {}
+ chroma-js@2.6.0: {}
+
chrome-trace-event@1.0.4: {}
chrono-node@2.9.0: {}
@@ -17949,6 +18632,8 @@ snapshots:
strip-ansi: 6.0.1
wrap-ansi: 7.0.0
+ clone@2.1.2: {}
+
clsx@2.1.1: {}
cluster-key-slot@1.1.2: {}
@@ -18014,6 +18699,8 @@ snapshots:
content-type@1.0.5: {}
+ convert-source-map@1.9.0: {}
+
convert-source-map@2.0.0: {}
cookie-signature@1.2.2: {}
@@ -18039,6 +18726,14 @@ snapshots:
dependencies:
layout-base: 2.0.1
+ cosmiconfig@7.1.0:
+ dependencies:
+ '@types/parse-json': 4.0.2
+ import-fresh: 3.3.1
+ parse-json: 5.2.0
+ path-type: 4.0.0
+ yaml: 1.10.2
+
cross-env@7.0.3:
dependencies:
cross-spawn: 7.0.6
@@ -18332,6 +19027,15 @@ snapshots:
deep-eql@5.0.2: {}
+ deep-equal@1.1.2:
+ dependencies:
+ is-arguments: 1.2.0
+ is-date-object: 1.1.0
+ is-regex: 1.2.1
+ object-is: 1.1.6
+ object-keys: 1.1.1
+ regexp.prototype.flags: 1.5.4
+
deep-extend@0.6.0: {}
deep-is@0.1.4: {}
@@ -18441,12 +19145,19 @@ snapshots:
dom-accessibility-api@0.6.3: {}
+ dom-helpers@5.2.1:
+ dependencies:
+ '@babel/runtime': 7.28.4
+ csstype: 3.2.3
+
dom-serializer@2.0.0:
dependencies:
domelementtype: 2.3.0
domhandler: 5.0.3
entities: 4.5.0
+ dom-to-image@2.6.0: {}
+
domelementtype@2.3.0: {}
domhandler@5.0.3:
@@ -18489,12 +19200,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- drizzle-orm@0.45.1(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@6.19.1(prisma@6.19.1(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@upstash/redis@1.36.1)(better-sqlite3@12.5.0)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@6.19.1(typescript@5.9.3)):
+ drizzle-orm@0.45.1(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@6.19.1(prisma@6.19.1(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(@upstash/redis@1.36.1)(better-sqlite3@12.5.0)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@6.19.1(typescript@5.9.3)):
optionalDependencies:
'@electric-sql/pglite': 0.3.2
'@opentelemetry/api': 1.9.0
'@prisma/client': 6.19.1(prisma@6.19.1(typescript@5.9.3))(typescript@5.9.3)
'@types/better-sqlite3': 7.6.13
+ '@types/pg': 8.16.0
'@upstash/redis': 1.36.1
better-sqlite3: 12.5.0
gel: 2.2.0
@@ -18505,12 +19217,13 @@ snapshots:
prisma: 6.19.1(typescript@5.9.3)
optional: true
- drizzle-orm@0.45.1(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@upstash/redis@1.36.1)(better-sqlite3@12.5.0)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)):
+ drizzle-orm@0.45.1(@electric-sql/pglite@0.3.2)(@opentelemetry/api@1.9.0)(@prisma/client@7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3))(@types/better-sqlite3@7.6.13)(@types/pg@8.16.0)(@upstash/redis@1.36.1)(better-sqlite3@12.5.0)(gel@2.2.0)(kysely@0.28.9)(mysql2@3.15.3)(pg@8.16.3)(postgres@3.4.7)(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)):
optionalDependencies:
'@electric-sql/pglite': 0.3.2
'@opentelemetry/api': 1.9.0
'@prisma/client': 7.2.0(prisma@7.2.0(@types/react@19.2.7)(better-sqlite3@12.5.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(typescript@5.9.3)
'@types/better-sqlite3': 7.6.13
+ '@types/pg': 8.16.0
'@upstash/redis': 1.36.1
better-sqlite3: 12.5.0
gel: 2.2.0
@@ -18827,7 +19540,7 @@ snapshots:
'@next/eslint-plugin-next': 16.1.1
eslint: 9.39.2(jiti@2.6.1)
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))
+ eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1))
eslint-plugin-import: 2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1))
eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.6.1))
eslint-plugin-react: 7.37.5(eslint@9.39.2(jiti@2.6.1))
@@ -18850,7 +19563,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)):
+ eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1)):
dependencies:
'@nolyfill/is-core-module': 1.0.39
debug: 4.4.3(supports-color@8.1.1)
@@ -18875,13 +19588,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)):
+ eslint-module-utils@2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1)):
dependencies:
debug: 3.2.7
optionalDependencies:
eslint: 9.39.2(jiti@2.6.1)
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))
+ eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.2(jiti@2.6.1))
transitivePeerDependencies:
- supports-color
@@ -18925,7 +19638,7 @@ snapshots:
doctrine: 2.1.0
eslint: 9.39.2(jiti@2.6.1)
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))
+ eslint-module-utils: 2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.2(jiti@2.6.1))
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
@@ -19080,6 +19793,8 @@ snapshots:
etag@1.8.1: {}
+ eventemitter3@2.0.3: {}
+
eventemitter3@4.0.7: {}
events@3.3.0: {}
@@ -19167,6 +19882,8 @@ snapshots:
fast-deep-equal@3.1.3: {}
+ fast-diff@1.1.2: {}
+
fast-glob@3.3.1:
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -19233,6 +19950,8 @@ snapshots:
dependencies:
flat-cache: 4.0.1
+ file-saver@2.0.5: {}
+
file-uri-to-path@1.0.0: {}
filelist@1.0.4:
@@ -19254,6 +19973,8 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ find-root@1.1.0: {}
+
find-up@4.1.0:
dependencies:
locate-path: 5.0.0
@@ -19328,12 +20049,13 @@ snapshots:
fraction.js@5.3.4: {}
- framer-motion@12.25.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
+ framer-motion@12.25.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
dependencies:
motion-dom: 12.24.11
motion-utils: 12.24.10
tslib: 2.8.1
optionalDependencies:
+ '@emotion/is-prop-valid': 1.4.0
react: 19.2.3
react-dom: 19.2.3(react@19.2.3)
@@ -19532,6 +20254,8 @@ snapshots:
graphql@16.12.0: {}
+ gsap@3.14.2: {}
+
hachure-fill@0.5.2: {}
happy-dom@20.1.0:
@@ -19711,6 +20435,8 @@ snapshots:
headers-polyfill@4.0.3: {}
+ heap@0.2.5: {}
+
hermes-estree@0.25.1: {}
hermes-parser@0.25.1:
@@ -19723,6 +20449,10 @@ snapshots:
hls.js@1.6.15: {}
+ hoist-non-react-statics@3.3.2:
+ dependencies:
+ react-is: 16.13.1
+
hono@4.10.6: {}
hosted-git-info@7.0.2:
@@ -19850,6 +20580,8 @@ snapshots:
immediate@3.0.6: {}
+ immer@10.2.0: {}
+
import-fresh@3.3.1:
dependencies:
parent-module: 1.0.1
@@ -20081,6 +20813,33 @@ snapshots:
isexe@3.1.1: {}
+ isoflow@1.1.1(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
+ dependencies:
+ '@emotion/react': 11.14.0(@types/react@19.2.7)(react@19.2.3)
+ '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3)
+ '@mui/icons-material': 5.18.0(@mui/material@5.18.0(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react@19.2.3)
+ '@mui/material': 5.18.0(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ auto-bind: 5.0.1
+ chroma-js: 2.6.0
+ dom-to-image: 2.6.0
+ file-saver: 2.0.5
+ gsap: 3.14.2
+ immer: 10.2.0
+ mui-color-input: 2.0.3(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@mui/material@5.18.0(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ paper: 0.12.18
+ pathfinding: 0.4.18
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
+ react-hook-form: 7.71.1(react@19.2.3)
+ react-quill: 2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ react-router-dom: 6.30.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ uuid: 9.0.1
+ zod: 3.22.2
+ zustand: 4.5.7(@types/react@19.2.7)(immer@10.2.0)(react@19.2.3)
+ transitivePeerDependencies:
+ - '@types/react'
+ - supports-color
+
isomorphic-dompurify@2.35.0:
dependencies:
dompurify: 3.3.1
@@ -21140,6 +21899,17 @@ snapshots:
transitivePeerDependencies:
- '@types/node'
+ mui-color-input@2.0.3(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@mui/material@5.18.0(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
+ dependencies:
+ '@ctrl/tinycolor': 4.2.0
+ '@emotion/react': 11.14.0(@types/react@19.2.7)(react@19.2.3)
+ '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3)
+ '@mui/material': 5.18.0(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react@19.2.3))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
+ optionalDependencies:
+ '@types/react': 19.2.7
+
mustache@4.2.0: {}
mute-stream@1.0.0: {}
@@ -21305,6 +22075,11 @@ snapshots:
object-inspect@1.13.4: {}
+ object-is@1.1.6:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+
object-keys@1.1.1: {}
object-treeify@4.0.1: {}
@@ -21550,11 +22325,15 @@ snapshots:
papaparse@5.5.3: {}
+ paper@0.12.18: {}
+
param-case@3.0.4:
dependencies:
dot-case: 3.0.4
tslib: 2.8.1
+ parchment@1.1.4: {}
+
parent-module@1.0.1:
dependencies:
callsites: 3.1.0
@@ -21574,6 +22353,13 @@ snapshots:
error-ex: 1.3.4
json-parse-better-errors: 1.0.2
+ parse-json@5.2.0:
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ error-ex: 1.3.4
+ json-parse-even-better-errors: 2.3.1
+ lines-and-columns: 1.2.4
+
parse-srcset@1.0.2: {}
parse5-htmlparser2-tree-adapter@7.1.0:
@@ -21629,6 +22415,10 @@ snapshots:
pathe@2.0.3: {}
+ pathfinding@0.4.18:
+ dependencies:
+ heap: 0.2.5
+
pathval@2.0.1: {}
pend@1.2.0: {}
@@ -21937,6 +22727,21 @@ snapshots:
quick-lru@5.1.1: {}
+ quill-delta@3.6.3:
+ dependencies:
+ deep-equal: 1.1.2
+ extend: 3.0.2
+ fast-diff: 1.1.2
+
+ quill@1.3.7:
+ dependencies:
+ clone: 2.1.2
+ deep-equal: 1.1.2
+ eventemitter3: 2.0.3
+ extend: 3.0.2
+ parchment: 1.1.4
+ quill-delta: 3.6.3
+
randombytes@2.1.0:
dependencies:
safe-buffer: 5.2.1
@@ -21986,10 +22791,16 @@ snapshots:
react: 19.2.3
scheduler: 0.27.0
+ react-hook-form@7.71.1(react@19.2.3):
+ dependencies:
+ react: 19.2.3
+
react-is@16.13.1: {}
react-is@17.0.2: {}
+ react-is@19.2.4: {}
+
react-markdown@10.1.0(@types/react@19.2.7)(react@19.2.3):
dependencies:
'@types/hast': 3.0.4
@@ -22008,8 +22819,28 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ react-quill@2.0.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
+ dependencies:
+ '@types/quill': 1.3.10
+ lodash: 4.17.21
+ quill: 1.3.7
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
+
react-refresh@0.9.0: {}
+ react-router-dom@6.30.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
+ dependencies:
+ '@remix-run/router': 1.23.2
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
+ react-router: 6.30.3(react@19.2.3)
+
+ react-router@6.30.3(react@19.2.3):
+ dependencies:
+ '@remix-run/router': 1.23.2
+ react: 19.2.3
+
react-syntax-highlighter@16.1.0(react@19.2.3):
dependencies:
'@babel/runtime': 7.28.4
@@ -22020,6 +22851,15 @@ snapshots:
react: 19.2.3
refractor: 5.0.0
+ react-transition-group@4.4.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
+ dependencies:
+ '@babel/runtime': 7.28.4
+ dom-helpers: 5.2.1
+ loose-envify: 1.4.0
+ prop-types: 15.8.1
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
+
react-use-measure@2.1.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3):
dependencies:
react: 19.2.3
@@ -22635,6 +23475,8 @@ snapshots:
buffer-from: 1.1.2
source-map: 0.6.1
+ source-map@0.5.7: {}
+
source-map@0.6.1: {}
source-map@0.7.3: {}
@@ -22900,6 +23742,8 @@ snapshots:
client-only: 0.0.1
react: 19.2.3
+ stylis@4.2.0: {}
+
stylis@4.3.6: {}
sucrase@3.35.1:
@@ -23185,9 +24029,9 @@ snapshots:
dependencies:
safe-buffer: 5.2.1
- tunnel-rat@0.1.2(@types/react@19.2.7)(react@19.2.3):
+ tunnel-rat@0.1.2(@types/react@19.2.7)(immer@10.2.0)(react@19.2.3):
dependencies:
- zustand: 4.5.7(@types/react@19.2.7)(react@19.2.3)
+ zustand: 4.5.7(@types/react@19.2.7)(immer@10.2.0)(react@19.2.3)
transitivePeerDependencies:
- '@types/react'
- immer
@@ -23826,6 +24670,8 @@ snapshots:
yallist@4.0.0: {}
+ yaml@1.10.2: {}
+
yaml@2.8.2: {}
yargs-parser@21.1.1: {}
@@ -23872,22 +24718,26 @@ snapshots:
dependencies:
zod: 4.3.5
+ zod@3.22.2: {}
+
zod@3.22.3: {}
zod@3.25.76: {}
zod@4.3.5: {}
- zustand@4.5.7(@types/react@19.2.7)(react@19.2.3):
+ zustand@4.5.7(@types/react@19.2.7)(immer@10.2.0)(react@19.2.3):
dependencies:
use-sync-external-store: 1.6.0(react@19.2.3)
optionalDependencies:
'@types/react': 19.2.7
+ immer: 10.2.0
react: 19.2.3
- zustand@5.0.10(@types/react@19.2.7)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3)):
+ zustand@5.0.10(@types/react@19.2.7)(immer@10.2.0)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3)):
optionalDependencies:
'@types/react': 19.2.7
+ immer: 10.2.0
react: 19.2.3
use-sync-external-store: 1.6.0(react@19.2.3)