-
+
diff --git a/packages/ui/components/Sidebar.tsx b/packages/ui/components/Sidebar.tsx
index b55578f..d17ccae 100644
--- a/packages/ui/components/Sidebar.tsx
+++ b/packages/ui/components/Sidebar.tsx
@@ -2,12 +2,13 @@
'use client';
import { cn } from '@/lib/utils';
-import { BookOpenText, SquarePen, Settings } from 'lucide-react';
+import { BookOpenText, SquarePen, Settings, Home, Sun, Moon, Monitor } from 'lucide-react';
import Link from 'next/link';
import { useSelectedLayoutSegments } from 'next/navigation';
import React, { useState, type ReactNode } from 'react';
import Layout from './Layout';
-import SettingsDialog from './SettingsDialog';
+import Image from 'next/image';
+import { useTheme } from 'next-themes';
const VerticalIconContainer = ({ children }: { children: ReactNode }) => {
return (
@@ -15,17 +16,24 @@ const VerticalIconContainer = ({ children }: { children: ReactNode }) => {
);
};
-const Sidebar = ({ children }: { children: React.ReactNode }) => {
+const Sidebar = ({
+ children,
+ onLogoClick
+}: {
+ children: React.ReactNode;
+ onLogoClick?: () => void;
+}) => {
const segments = useSelectedLayoutSegments();
+ const { theme, setTheme } = useTheme();
- const [isSettingsOpen, setIsSettingsOpen] = useState(false);
+ const [isThemePickerOpen, setIsThemePickerOpen] = useState(false);
const navLinks = [
{
icon: SquarePen,
- href: '/',
- active: segments.length === 0 || segments.includes('c'),
- label: 'Home',
+ href: '/chat',
+ active: segments.includes('chat') || segments.includes('c'),
+ label: 'Chat',
},
{
icon: BookOpenText,
@@ -33,20 +41,56 @@ const Sidebar = ({ children }: { children: React.ReactNode }) => {
active: segments.includes('history'),
label: 'History',
},
+ {
+ icon: Home,
+ href: '/',
+ active: segments.length === 0,
+ label: 'Home',
+ },
];
return (
-
-
-
-

-
+
+
+ {onLogoClick ? (
+
+ ) : (
+
+
+
+
+ )}
{navLinks.map((link, i) => (
@@ -54,49 +98,96 @@ const Sidebar = ({ children }: { children: React.ReactNode }) => {
key={i}
href={link.href}
className={cn(
- 'relative flex flex-row items-center justify-center cursor-pointer hover:bg-black/10 dark:hover:bg-white/10 duration-150 transition w-full py-2 rounded-lg',
+ 'relative flex flex-row items-center justify-center cursor-pointer hover:scale-110 duration-200 transition-transform w-full py-2 rounded-lg',
link.active
? 'text-black dark:text-white'
: 'text-black/70 dark:text-white/70',
)}
>
- {link.active && (
-
- )}
))}
- setIsSettingsOpen(!isSettingsOpen)}
- className="cursor-pointer relative flex flex-row items-center justify-center hover:bg-black/10 dark:hover:bg-white/10 duration-150 transition w-full py-2 rounded-lg text-black/70 dark:text-white/70"
- >
-
+
+ {/* Theme Picker Section */}
+
+
setIsThemePickerOpen(!isThemePickerOpen)}
+ className="cursor-pointer flex flex-row items-center justify-center hover:scale-110 duration-200 transition-transform w-full py-2 rounded-lg text-black/70 dark:text-white/70"
+ >
+
+
-
+
+ {/* Theme Icons Slide-out - positioned next to Settings icon */}
+ {isThemePickerOpen && (
+
+
+
+
+
+ )}
-
+
{navLinks.map((link, i) => (
- {link.active && (
-
- )}
-
-
{link.label}
+
+
{link.label}
))}
diff --git a/packages/ui/components/theme/Switcher.tsx b/packages/ui/components/theme/Switcher.tsx
index 43bbdc8..39e1df1 100644
--- a/packages/ui/components/theme/Switcher.tsx
+++ b/packages/ui/components/theme/Switcher.tsx
@@ -53,6 +53,7 @@ const ThemeSwitcher = ({ className }: { className?: string }) => {
options={[
{ value: 'light', label: 'Light' },
{ value: 'dark', label: 'Dark' },
+ { value: 'system', label: 'System' },
]}
/>
);
diff --git a/packages/ui/lib/mcpDeepLink.ts b/packages/ui/lib/mcpDeepLink.ts
new file mode 100644
index 0000000..845d0dd
--- /dev/null
+++ b/packages/ui/lib/mcpDeepLink.ts
@@ -0,0 +1,223 @@
+/**
+ * Utility functions for generating MCP deep links following the Smithery protocol
+ * @see https://docs.smithery.ai/deep-linking
+ */
+
+export interface MCPClient {
+ id: string;
+ name: string;
+ scheme: string;
+ handler?: string;
+ icon: string;
+ description: string;
+}
+
+export interface MCPStdioConfig {
+ type: 'stdio';
+ command: string;
+ args: string[];
+ env?: Record
;
+}
+
+export interface MCPHttpConfig {
+ type: 'http';
+ url: string;
+}
+
+export type MCPConfig = MCPStdioConfig | MCPHttpConfig;
+
+/**
+ * Supported MCP clients with their protocol schemes and handlers
+ */
+export const MCP_CLIENTS: MCPClient[] = [
+ {
+ id: 'cursor',
+ name: 'Cursor',
+ scheme: 'cursor',
+ handler: 'anysphere.cursor-deeplink',
+ icon: '/cursor.avif',
+ description: 'AI-first code editor',
+ },
+ {
+ id: 'vscode',
+ name: 'VS Code',
+ scheme: 'vscode',
+ handler: 'mcp',
+ icon: '/vscode.svg',
+ description: 'Visual Studio Code',
+ },
+ {
+ id: 'claude',
+ name: 'Claude',
+ scheme: 'claude',
+ handler: 'mcp',
+ icon: '/claude-code.svg',
+ description: 'Claude AI Assistant',
+ },
+ {
+ id: 'raycast',
+ name: 'Raycast',
+ scheme: 'raycast',
+ handler: 'mcp',
+ icon: '/raycast.svg',
+ description: 'Raycast productivity tool',
+ },
+];
+
+/**
+ * Generates a deep link for installing an MCP server in a specific client
+ *
+ * @param clientId - The ID of the client (cursor, vscode, etc.)
+ * @param displayName - The display name for the MCP server
+ * @param config - The MCP configuration (stdio or http)
+ * @param includeEnv - Whether to include environment variables (default: false for security)
+ * @returns The generated deep link URL
+ *
+ * @example
+ * ```typescript
+ * const link = generateMCPDeepLink('cursor', 'My MCP Server', {
+ * type: 'stdio',
+ * command: 'npx',
+ * args: ['-y', '@my/mcp-server']
+ * });
+ * // Returns: cursor://anysphere.cursor-deeplink/mcp/install?name=...&config=...
+ * ```
+ */
+export function generateMCPDeepLink(
+ clientId: string,
+ displayName: string,
+ config: MCPConfig,
+ includeEnv: boolean = false
+): string {
+ const client = MCP_CLIENTS.find((c) => c.id === clientId);
+ if (!client) {
+ throw new Error(`Unknown MCP client: ${clientId}`);
+ }
+
+ // For security, exclude environment variables by default
+ let configToEncode: MCPConfig;
+ if (config.type === 'stdio' && !includeEnv) {
+ configToEncode = {
+ type: config.type,
+ command: config.command,
+ args: config.args,
+ };
+ } else {
+ configToEncode = config;
+ }
+
+ const configJson = JSON.stringify(configToEncode);
+ const encodedConfig = encodeURIComponent(configJson);
+ const encodedName = encodeURIComponent(displayName);
+
+ const handler = client.handler ? `${client.handler}/` : '';
+ return `${client.scheme}://${handler}mcp/install?name=${encodedName}&config=${encodedConfig}`;
+}
+
+/**
+ * Parses a deep link URL to extract the MCP configuration
+ *
+ * @param url - The deep link URL to parse
+ * @returns An object containing the display name and configuration
+ *
+ * @example
+ * ```typescript
+ * const { displayName, config } = parseMCPDeepLink(deepLinkUrl);
+ * console.log(displayName); // "My MCP Server"
+ * console.log(config.type); // "stdio"
+ * ```
+ */
+export function parseMCPDeepLink(url: string): {
+ displayName: string;
+ config: MCPConfig;
+} {
+ try {
+ const urlObj = new URL(url);
+ const name = urlObj.searchParams.get('name');
+ const configParam = urlObj.searchParams.get('config');
+
+ if (!name || !configParam) {
+ throw new Error('Missing name or config parameter');
+ }
+
+ const displayName = decodeURIComponent(name);
+ const config = JSON.parse(decodeURIComponent(configParam)) as MCPConfig;
+
+ return { displayName, config };
+ } catch (error) {
+ throw new Error(`Invalid MCP deep link: ${error instanceof Error ? error.message : 'Unknown error'}`);
+ }
+}
+
+/**
+ * Validates an MCP configuration object
+ *
+ * @param config - The configuration to validate
+ * @returns True if valid, false otherwise
+ */
+export function validateMCPConfig(config: unknown): config is MCPConfig {
+ if (!config || typeof config !== 'object') {
+ return false;
+ }
+
+ const cfg = config as Record;
+
+ if (cfg.type === 'stdio') {
+ return (
+ typeof cfg.command === 'string' &&
+ Array.isArray(cfg.args) &&
+ cfg.args.every((arg) => typeof arg === 'string')
+ );
+ }
+
+ if (cfg.type === 'http') {
+ return typeof cfg.url === 'string' && isValidUrl(cfg.url);
+ }
+
+ return false;
+}
+
+/**
+ * Checks if a string is a valid URL
+ */
+function isValidUrl(urlString: string): boolean {
+ try {
+ new URL(urlString);
+ return true;
+ } catch {
+ return false;
+ }
+}
+
+/**
+ * Opens a deep link in the user's system
+ *
+ * @param url - The deep link URL to open
+ * @returns True if the link was successfully opened, false otherwise
+ */
+export function openDeepLink(url: string): boolean {
+ try {
+ window.open(url, '_blank');
+ return true;
+ } catch (error) {
+ console.error('Failed to open deep link:', error);
+ return false;
+ }
+}
+
+/**
+ * Copies text to the clipboard
+ *
+ * @param text - The text to copy
+ * @returns A promise that resolves to true if successful, false otherwise
+ */
+export async function copyToClipboard(text: string): Promise {
+ try {
+ await navigator.clipboard.writeText(text);
+ return true;
+ } catch (error) {
+ console.error('Failed to copy to clipboard:', error);
+ return false;
+ }
+}
+
diff --git a/packages/ui/next.config.mjs b/packages/ui/next.config.mjs
index c3f2e1a..4b3a22b 100644
--- a/packages/ui/next.config.mjs
+++ b/packages/ui/next.config.mjs
@@ -5,8 +5,26 @@ const nextConfig = {
{
hostname: 's2.googleusercontent.com',
},
+ {
+ hostname: 'pbs.twimg.com',
+ },
],
},
+ // Optimize compilation
+ experimental: {
+ optimizePackageImports: [
+ 'lucide-react',
+ '@headlessui/react',
+ 'better-react-mathjax',
+ 'react-syntax-highlighter',
+ ],
+ },
+ // Remove console logs in production
+ compiler: {
+ removeConsole: process.env.NODE_ENV === 'production' ? {
+ exclude: ['error', 'warn'],
+ } : false,
+ },
};
export default nextConfig;
diff --git a/packages/ui/public/ask_full_grey.png b/packages/ui/public/ask_full_grey.png
new file mode 100644
index 0000000..28a0f92
Binary files /dev/null and b/packages/ui/public/ask_full_grey.png differ
diff --git a/packages/ui/public/ask_full_logo_black_alpha.png b/packages/ui/public/ask_full_logo_black_alpha.png
new file mode 100644
index 0000000..faed60e
Binary files /dev/null and b/packages/ui/public/ask_full_logo_black_alpha.png differ
diff --git a/packages/ui/public/ask_full_logo_grey_alpha.png b/packages/ui/public/ask_full_logo_grey_alpha.png
new file mode 100644
index 0000000..ecb47f9
Binary files /dev/null and b/packages/ui/public/ask_full_logo_grey_alpha.png differ
diff --git a/packages/ui/public/ask_full_logo_white_alpha.png b/packages/ui/public/ask_full_logo_white_alpha.png
new file mode 100644
index 0000000..ccc6cfe
Binary files /dev/null and b/packages/ui/public/ask_full_logo_white_alpha.png differ
diff --git a/packages/ui/public/ask_logo_black_alpha.png b/packages/ui/public/ask_logo_black_alpha.png
new file mode 100644
index 0000000..517afdd
Binary files /dev/null and b/packages/ui/public/ask_logo_black_alpha.png differ
diff --git a/packages/ui/public/ask_logo_white_alpha.png b/packages/ui/public/ask_logo_white_alpha.png
new file mode 100644
index 0000000..f9072cc
Binary files /dev/null and b/packages/ui/public/ask_logo_white_alpha.png differ
diff --git a/packages/ui/public/claude-code.svg b/packages/ui/public/claude-code.svg
new file mode 100644
index 0000000..9f3de2f
--- /dev/null
+++ b/packages/ui/public/claude-code.svg
@@ -0,0 +1,16 @@
+
\ No newline at end of file
diff --git a/packages/ui/public/cursor.avif b/packages/ui/public/cursor.avif
new file mode 100644
index 0000000..c6d8dd9
Binary files /dev/null and b/packages/ui/public/cursor.avif differ
diff --git a/packages/ui/public/favicon.ico b/packages/ui/public/favicon.ico
new file mode 100644
index 0000000..ccc6cfe
Binary files /dev/null and b/packages/ui/public/favicon.ico differ
diff --git a/packages/ui/public/raycast.svg b/packages/ui/public/raycast.svg
new file mode 100644
index 0000000..5bb9199
--- /dev/null
+++ b/packages/ui/public/raycast.svg
@@ -0,0 +1,12 @@
+
\ No newline at end of file
diff --git a/packages/ui/public/starknet_logo_grey.png b/packages/ui/public/starknet_logo_grey.png
new file mode 100644
index 0000000..5b8defe
Binary files /dev/null and b/packages/ui/public/starknet_logo_grey.png differ
diff --git a/packages/ui/public/vscode.svg b/packages/ui/public/vscode.svg
new file mode 100644
index 0000000..c453e63
--- /dev/null
+++ b/packages/ui/public/vscode.svg
@@ -0,0 +1,41 @@
+
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ca2b866..cb50128 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -10,7 +10,7 @@ importers:
devDependencies:
turbo:
specifier: latest
- version: 2.5.3
+ version: 2.5.8
typescript:
specifier: ^5.7.2
version: 5.7.3
@@ -268,6 +268,12 @@ importers:
'@langchain/core':
specifier: ^0.2.36
version: 0.2.36(openai@4.85.4(ws@8.18.1)(zod@3.22.4))
+ '@react-three/drei':
+ specifier: ^10.7.6
+ version: 10.7.6(@react-three/fiber@9.4.0(@types/react@18.0.0)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(three@0.180.0))(@types/react@18.0.0)(@types/three@0.180.0)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(three@0.180.0)
+ '@react-three/fiber':
+ specifier: ^9.4.0
+ version: 9.4.0(@types/react@18.0.0)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(three@0.180.0)
'@tailwindcss/typography':
specifier: ^0.5.12
version: 0.5.12(tailwindcss@3.3.0(postcss@8.5.3)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.5.4)))
@@ -280,6 +286,9 @@ importers:
clsx:
specifier: ^2.1.0
version: 2.1.0
+ gsap:
+ specifier: ^3.13.0
+ version: 3.13.0
katex:
specifier: ^0.16.21
version: 0.16.21
@@ -322,6 +331,9 @@ importers:
tailwind-merge:
specifier: ^2.2.2
version: 2.2.2
+ three:
+ specifier: ^0.180.0
+ version: 0.180.0
uuid:
specifier: ^11.1.0
version: 11.1.0
@@ -592,6 +604,9 @@ packages:
'@dabh/diagnostics@2.0.3':
resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==}
+ '@dimforge/rapier3d-compat@0.12.0':
+ resolution: {integrity: sha512-uekIGetywIgopfD97oDL5PfeezkFpNhwlzlaEYNOA0N6ghdsOvh/HYjSMek5Q2O1PYvRSDFcqFVJl4r4ZBwOow==}
+
'@emnapi/runtime@1.3.1':
resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==}
@@ -1286,9 +1301,17 @@ packages:
peerDependencies:
'@langchain/core': '>=0.2.21 <0.4.0'
+ '@mediapipe/tasks-vision@0.10.17':
+ resolution: {integrity: sha512-CZWV/q6TTe8ta61cZXjfnnHsfWIdFhms03M9T7Cnd5y2mdpylJM0rF1qRq+wsQVRMLz1OYPVEBU9ph2Bx8cxrg==}
+
'@mongodb-js/saslprep@1.2.0':
resolution: {integrity: sha512-+ywrb0AqkfaYuhHs6LxKWgqbh3I72EpEgESCw37o+9qPx9WTCkgDm2B+eMrwehGtHBWHFU4GXvnSCNiFhhausg==}
+ '@monogrid/gainmap-js@3.1.0':
+ resolution: {integrity: sha512-Obb0/gEd/HReTlg8ttaYk+0m62gQJmCblMOjHSMHRrBP2zdfKMHLCRbh/6ex9fSUJMKdjjIEiohwkbGD3wj2Nw==}
+ peerDependencies:
+ three: '>= 0.159.0'
+
'@next/env@15.1.7':
resolution: {integrity: sha512-d9jnRrkuOH7Mhi+LHav2XW91HOgTAWHxjMPkXMGBc9B2b7614P7kjt8tAplRvJpbSt4nbO1lugcT/kAaWzjlLQ==}
@@ -1368,6 +1391,42 @@ packages:
engines: {node: '>=18'}
hasBin: true
+ '@react-three/drei@10.7.6':
+ resolution: {integrity: sha512-ZSFwRlRaa4zjtB7yHO6Q9xQGuyDCzE7whXBhum92JslcMRC3aouivp0rAzszcVymIoJx6PXmibyP+xr+zKdwLg==}
+ peerDependencies:
+ '@react-three/fiber': ^9.0.0
+ react: ^19
+ react-dom: ^19
+ three: '>=0.159'
+ peerDependenciesMeta:
+ react-dom:
+ optional: true
+
+ '@react-three/fiber@9.4.0':
+ resolution: {integrity: sha512-k4iu1R6e5D54918V4sqmISUkI5OgTw3v7/sDRKEC632Wd5g2WBtUS5gyG63X0GJO/HZUj1tsjSXfyzwrUHZl1g==}
+ peerDependencies:
+ expo: '>=43.0'
+ expo-asset: '>=8.4'
+ expo-file-system: '>=11.0'
+ expo-gl: '>=11.0'
+ react: ^19.0.0
+ react-dom: ^19.0.0
+ react-native: '>=0.78'
+ three: '>=0.156'
+ peerDependenciesMeta:
+ expo:
+ optional: true
+ expo-asset:
+ optional: true
+ expo-file-system:
+ optional: true
+ expo-gl:
+ optional: true
+ react-dom:
+ optional: true
+ react-native:
+ optional: true
+
'@rrweb/types@2.0.0-alpha.17':
resolution: {integrity: sha512-AfDTVUuCyCaIG0lTSqYtrZqJX39ZEYzs4fYKnexhQ+id+kbZIpIJtaut5cto6dWZbB3SEe4fW0o90Po3LvTmfg==}
@@ -1424,6 +1483,9 @@ packages:
'@tsconfig/node16@1.0.4':
resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
+ '@tweenjs/tween.js@23.1.3':
+ resolution: {integrity: sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==}
+
'@types/babel__core@7.20.5':
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
@@ -1451,6 +1513,9 @@ packages:
'@types/debug@4.1.12':
resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
+ '@types/draco3d@1.4.10':
+ resolution: {integrity: sha512-AX22jp8Y7wwaBgAixaSvkoG4M/+PlAcm3Qs4OW8yT9DM4xUpWKeFhLueTAyZF39pviAdcDdeJoACapiAceqNcw==}
+
'@types/estree@1.0.6':
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
@@ -1511,6 +1576,9 @@ packages:
'@types/node@20.0.0':
resolution: {integrity: sha512-cD2uPTDnQQCVpmRefonO98/PPijuOnnEy5oytWJFPY1N9aJCz2wJ5kSGWO+zJoed2cY2JxQh6yBuUq4vIn61hw==}
+ '@types/offscreencanvas@2019.7.3':
+ resolution: {integrity: sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==}
+
'@types/prop-types@15.7.14':
resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==}
@@ -1526,6 +1594,16 @@ packages:
'@types/react-katex@3.0.4':
resolution: {integrity: sha512-aLkykKzSKLpXI6REJ3uClao6P47HAFfR1gcHOZwDeTuALsyjgMhz+oynLV4gX0kiJVnvHrBKF/TLXqyNTpHDUg==}
+ '@types/react-reconciler@0.28.9':
+ resolution: {integrity: sha512-HHM3nxyUZ3zAylX8ZEyrDNd2XZOnQ0D5XfunJF5FLQnZbHHYq4UWvW1QfelQNXv1ICNkwYhfxjwfnqivYB6bFg==}
+ peerDependencies:
+ '@types/react': '*'
+
+ '@types/react-reconciler@0.32.1':
+ resolution: {integrity: sha512-RsqPttsBQ+6af0nATFXJJpemYQH7kL9+xLNm1z+0MjQFDKBZDM2R6SBrjdvRmHu9i9fM6povACj57Ft+pKRNOA==}
+ peerDependencies:
+ '@types/react': '*'
+
'@types/react-syntax-highlighter@15.5.13':
resolution: {integrity: sha512-uLGJ87j6Sz8UaBAooU0T6lWJ0dBmjZgN1PZTrj05TNql2/XpC6+4HhMT5syIdFUUt+FASfCeLLv4kBygNU+8qA==}
@@ -1547,12 +1625,18 @@ packages:
'@types/stack-utils@2.0.3':
resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
+ '@types/stats.js@0.17.4':
+ resolution: {integrity: sha512-jIBvWWShCvlBqBNIZt0KAshWpvSjhkwkEu4ZUcASoAvhmrgAUI2t1dXrjSL4xXVLB4FznPrIsX3nKXFl/Dt4vA==}
+
'@types/superagent@8.1.9':
resolution: {integrity: sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==}
'@types/supertest@6.0.2':
resolution: {integrity: sha512-137ypx2lk/wTQbW6An6safu9hXmajAifU/s7szAHLN/FeIm5w7yR0Wkl9fdJMRSHwOn4HLAI0DaB2TOORuhPDg==}
+ '@types/three@0.180.0':
+ resolution: {integrity: sha512-ykFtgCqNnY0IPvDro7h+9ZeLY+qjgUWv+qEvUt84grhenO60Hqd4hScHE7VTB9nOQ/3QM8lkbNE+4vKjEpUxKg==}
+
'@types/tough-cookie@4.0.5':
resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
@@ -1568,6 +1652,9 @@ packages:
'@types/webidl-conversions@7.0.3':
resolution: {integrity: sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==}
+ '@types/webxr@0.5.24':
+ resolution: {integrity: sha512-h8fgEd/DpoS9CBrjEQXR+dIDraopAEfu4wYVNY2tEPwk60stPWhvZMf4Foo5FakuQ7HFZoa8WceaWFervK2Ovg==}
+
'@types/whatwg-url@11.0.5':
resolution: {integrity: sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==}
@@ -1648,6 +1735,17 @@ packages:
resolution: {integrity: sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@use-gesture/core@10.3.1':
+ resolution: {integrity: sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==}
+
+ '@use-gesture/react@10.3.1':
+ resolution: {integrity: sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==}
+ peerDependencies:
+ react: '>= 16.8.0'
+
+ '@webgpu/types@0.1.66':
+ resolution: {integrity: sha512-YA2hLrwLpDsRueNDXIMqN9NTzD6bCDkuXbOSe0heS+f8YE8usA6Gbv1prj81pzVHrbaAma7zObnIC+I6/sXJgA==}
+
'@xmldom/xmldom@0.9.8':
resolution: {integrity: sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A==}
engines: {node: '>=14.6'}
@@ -1865,6 +1963,9 @@ packages:
peerDependencies:
react: '>=16.8'
+ bidi-js@1.0.3:
+ resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==}
+
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
@@ -1947,6 +2048,12 @@ packages:
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
engines: {node: '>=10'}
+ camera-controls@3.1.0:
+ resolution: {integrity: sha512-w5oULNpijgTRH0ARFJJ0R5ct1nUM3R3WP7/b8A6j9uTGpRfnsypc/RBMPQV8JQDPayUe37p/TZZY1PcUr4czOQ==}
+ engines: {node: '>=20.11.0', npm: '>=10.8.2'}
+ peerDependencies:
+ three: '>=0.126.1'
+
caniuse-lite@1.0.30001700:
resolution: {integrity: sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==}
@@ -2116,6 +2223,11 @@ packages:
create-require@1.1.1:
resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
+ cross-env@7.0.3:
+ resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==}
+ engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'}
+ hasBin: true
+
cross-spawn@7.0.6:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
engines: {node: '>= 8'}
@@ -2211,6 +2323,9 @@ packages:
resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
+ detect-gpu@5.0.70:
+ resolution: {integrity: sha512-bqerEP1Ese6nt3rFkwPnGbsUF9a4q+gMmpTVVOEzoCyeCc+y7/RvJnQZJx1JwhgQI5Ntg0Kgat8Uu7XpBqnz1w==}
+
detect-libc@2.0.3:
resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
engines: {node: '>=8'}
@@ -2269,6 +2384,9 @@ packages:
engines: {node: '>=16.17.0'}
hasBin: true
+ draco3d@1.5.7:
+ resolution: {integrity: sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==}
+
dunder-proto@1.0.1:
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
engines: {node: '>= 0.4'}
@@ -2582,6 +2700,12 @@ packages:
fflate@0.4.8:
resolution: {integrity: sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==}
+ fflate@0.6.10:
+ resolution: {integrity: sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg==}
+
+ fflate@0.8.2:
+ resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==}
+
file-entry-cache@8.0.0:
resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
engines: {node: '>=16.0.0'}
@@ -2772,6 +2896,9 @@ packages:
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
engines: {node: '>=10'}
+ glsl-noise@0.0.0:
+ resolution: {integrity: sha512-b/ZCF6amfAUb7dJM/MxRs7AetQEahYzJ8PtgfrmEdtw6uyGOr+ZSGtgjFm6mfsBkxJ4d2W7kg+Nlqzqvn3Bc0w==}
+
gopd@1.2.0:
resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
engines: {node: '>= 0.4'}
@@ -2782,6 +2909,9 @@ packages:
graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
+ gsap@3.13.0:
+ resolution: {integrity: sha512-QL7MJ2WMjm1PHWsoFrAQH/J8wUeqZvMtHO58qdekHpCfhvhSL4gSiz6vJf5EeMP0LOn3ZCprL2ki/gjED8ghVw==}
+
handlebars@4.7.8:
resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==}
engines: {node: '>=0.4.7'}
@@ -2831,6 +2961,9 @@ packages:
highlight.js@10.7.3:
resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==}
+ hls.js@1.6.13:
+ resolution: {integrity: sha512-hNEzjZNHf5bFrUNvdS4/1RjIanuJ6szpWNfTaX5I6WfGynWXGT7K/YQLYtemSvFExzeMdgdE4SsyVLJbd5PcZA==}
+
html-escaper@2.0.2:
resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
@@ -2873,6 +3006,9 @@ packages:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: '>= 4'}
+ immediate@3.0.6:
+ resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
+
import-fresh@3.3.1:
resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
engines: {node: '>=6'}
@@ -3080,6 +3216,11 @@ packages:
resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==}
engines: {node: '>= 0.4'}
+ its-fine@2.0.0:
+ resolution: {integrity: sha512-KLViCmWx94zOvpLwSlsx6yOCeMhZYaxrJV87Po5k/FoZzcPSahvK5qJ7fYhS61sZi5ikmh2S3Hz55A2l3U69ng==}
+ peerDependencies:
+ react: ^19.0.0
+
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
@@ -3398,6 +3539,9 @@ packages:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
+ lie@3.3.0:
+ resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
+
lilconfig@2.1.0:
resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
engines: {node: '>=10'}
@@ -3471,6 +3615,12 @@ packages:
lunr@2.3.9:
resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==}
+ maath@0.10.8:
+ resolution: {integrity: sha512-tRvbDF0Pgqz+9XUa4jjfgAQ8/aPKmQdWXilFu2tMy4GWj4NOsx99HlULO4IeREfbO3a0sA145DZYyvXPkybm0g==}
+ peerDependencies:
+ '@types/three': '>=0.134.0'
+ three: '>=0.134.0'
+
make-dir@4.0.0:
resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
engines: {node: '>=10'}
@@ -3511,6 +3661,14 @@ packages:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
+ meshline@3.3.1:
+ resolution: {integrity: sha512-/TQj+JdZkeSUOl5Mk2J7eLcYTLiQm2IDzmlSvYm7ov15anEcDJ92GHqqazxTSreeNgfnYu24kiEvvv0WlbCdFQ==}
+ peerDependencies:
+ three: '>=0.137'
+
+ meshoptimizer@0.22.0:
+ resolution: {integrity: sha512-IebiK79sqIy+E4EgOr+CAw+Ke8hAspXKzBd0JdgEmPHiAwmvEj2S4h1rfvo+o/BnfEYd/jAOg5IeeIjzlzSnDg==}
+
methods@1.1.2:
resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
engines: {node: '>= 0.6'}
@@ -3672,6 +3830,7 @@ packages:
node-domexception@1.0.0:
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
engines: {node: '>=10.5.0'}
+ deprecated: Use your platform's native DOMException instead
node-fetch@2.7.0:
resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
@@ -3989,6 +4148,9 @@ packages:
peerDependencies:
'@rrweb/types': 2.0.0-alpha.17
+ potpack@1.0.2:
+ resolution: {integrity: sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==}
+
preact@10.26.2:
resolution: {integrity: sha512-0gNmv4qpS9HaN3+40CLBAnKe0ZfyE4ZWo5xKlC1rVrr0ckkEvJvAQqKaHANdFKsGstoxrY4AItZ7kZSGVoVjgg==}
@@ -4022,6 +4184,9 @@ packages:
resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
engines: {node: '>= 0.6.0'}
+ promise-worker-transferable@1.0.4:
+ resolution: {integrity: sha512-bN+0ehEnrXfxV2ZQvU2PetO0n4gqBD4ulq3MI1WOPLgr7/Mg9yRQkX5+0v1vagr74ZTsl7XtzlaYDo2EuCeYJw==}
+
promise@7.3.1:
resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==}
@@ -4130,6 +4295,12 @@ packages:
prop-types: ^15.8.1
react: '>=15.3.2 <=18'
+ react-reconciler@0.31.0:
+ resolution: {integrity: sha512-7Ob7Z+URmesIsIVRjnLoDGwBEG/tVitidU0nMsqX/eeJaLY89RISO/10ERe0MqmzuKUUB1rmY+h1itMbUHg9BQ==}
+ engines: {node: '>=0.10.0'}
+ peerDependencies:
+ react: ^19.0.0
+
react-syntax-highlighter@15.5.0:
resolution: {integrity: sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==}
peerDependencies:
@@ -4147,6 +4318,15 @@ packages:
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
+ react-use-measure@2.1.7:
+ resolution: {integrity: sha512-KrvcAo13I/60HpwGO5jpW7E9DfusKyLPLvuHlUyP5zqnmAPhNc6qTRjUQrdTADl0lpPpDVU2/Gg51UlOGHXbdg==}
+ peerDependencies:
+ react: '>=16.13'
+ react-dom: '>=16.13'
+ peerDependenciesMeta:
+ react-dom:
+ optional: true
+
react@18.0.0:
resolution: {integrity: sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A==}
engines: {node: '>=0.10.0'}
@@ -4188,6 +4368,10 @@ packages:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
+ require-from-string@2.0.2:
+ resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
+ engines: {node: '>=0.10.0'}
+
requires-port@1.0.0:
resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
@@ -4264,6 +4448,9 @@ packages:
scheduler@0.21.0:
resolution: {integrity: sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==}
+ scheduler@0.25.0:
+ resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==}
+
selderee@0.11.0:
resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==}
@@ -4391,6 +4578,15 @@ packages:
resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
engines: {node: '>=10'}
+ stats-gl@2.4.2:
+ resolution: {integrity: sha512-g5O9B0hm9CvnM36+v7SFl39T7hmAlv541tU81ME8YeSb3i1CIP5/QdDeSB3A0la0bKNHpxpwxOVRo2wFTYEosQ==}
+ peerDependencies:
+ '@types/three': '*'
+ three: '*'
+
+ stats.js@0.17.0:
+ resolution: {integrity: sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw==}
+
statuses@2.0.1:
resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
engines: {node: '>= 0.8'}
@@ -4489,10 +4685,12 @@ packages:
superagent@9.0.2:
resolution: {integrity: sha512-xuW7dzkUpcJq7QnhOsnNUgtYp3xRwpt2F7abdRYIpCsAt0hhUqia0EdxyXZQQpNmGtsCzYHryaKSV3q3GJnq7w==}
engines: {node: '>=14.18.0'}
+ deprecated: Please upgrade to superagent v10.2.2+, see release notes at https://github.com/forwardemail/superagent/releases/tag/v10.2.2 - maintenance is supported by Forward Email @ https://forwardemail.net
supertest@7.0.0:
resolution: {integrity: sha512-qlsr7fIC0lSddmA3tzojvzubYxvlGtzumcdHgPwbFWMISQwL22MhM2Y3LNt+6w9Yyx7559VW5ab70dgphm8qQA==}
engines: {node: '>=14.18.0'}
+ deprecated: Please upgrade to supertest v7.1.3+, see release notes at https://github.com/forwardemail/supertest/releases/tag/v7.1.3 - maintenance is supported by Forward Email @ https://forwardemail.net
supports-color@5.5.0:
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
@@ -4510,6 +4708,11 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
+ suspend-react@0.1.3:
+ resolution: {integrity: sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==}
+ peerDependencies:
+ react: '>=17.0'
+
tailwind-merge@2.2.2:
resolution: {integrity: sha512-tWANXsnmJzgw6mQ07nE3aCDkCK4QdT3ThPMCzawoYA2Pws7vSTCvz3Vrjg61jVUGfFZPJzxEP+NimbcW+EdaDw==}
@@ -4538,6 +4741,19 @@ packages:
thenify@3.3.1:
resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
+ three-mesh-bvh@0.8.3:
+ resolution: {integrity: sha512-4G5lBaF+g2auKX3P0yqx+MJC6oVt6sB5k+CchS6Ob0qvH0YIhuUk1eYr7ktsIpY+albCqE80/FVQGV190PmiAg==}
+ peerDependencies:
+ three: '>= 0.159.0'
+
+ three-stdlib@2.36.0:
+ resolution: {integrity: sha512-kv0Byb++AXztEGsULgMAs8U2jgUdz6HPpAB/wDJnLiLlaWQX2APHhiTJIN7rqW+Of0eRgcp7jn05U1BsCP3xBA==}
+ peerDependencies:
+ three: '>=0.128.0'
+
+ three@0.180.0:
+ resolution: {integrity: sha512-o+qycAMZrh+TsE01GqWUxUIKR1AL0S8pq7zDkYOQw8GqfX8b8VoCKYUoHbhiX5j+7hr8XsuHDVU6+gkQJQKg9w==}
+
tinyglobby@0.2.12:
resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==}
engines: {node: '>=12.0.0'}
@@ -4579,6 +4795,19 @@ packages:
resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==}
engines: {node: '>= 14.0.0'}
+ troika-three-text@0.52.4:
+ resolution: {integrity: sha512-V50EwcYGruV5rUZ9F4aNsrytGdKcXKALjEtQXIOBfhVoZU9VAqZNIoGQ3TMiooVqFAbR1w15T+f+8gkzoFzawg==}
+ peerDependencies:
+ three: '>=0.125.0'
+
+ troika-three-utils@0.52.4:
+ resolution: {integrity: sha512-NORAStSVa/BDiG52Mfudk4j1FG4jC4ILutB3foPnfGbOeIs9+G5vZLa0pnmnaftZUGm4UwSoqEpWdqvC7zms3A==}
+ peerDependencies:
+ three: '>=0.125.0'
+
+ troika-worker-utils@0.52.0:
+ resolution: {integrity: sha512-W1CpvTHykaPH5brv5VHLfQo9D1OYuo0cSBEUQFFT/nBUzM8iD6Lq2/tgG/f1OelbAS1WtaTPQzE5uM49egnngw==}
+
ts-api-utils@1.4.3:
resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==}
engines: {node: '>=16'}
@@ -4646,38 +4875,41 @@ packages:
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
- turbo-darwin-64@2.5.3:
- resolution: {integrity: sha512-YSItEVBUIvAGPUDpAB9etEmSqZI3T6BHrkBkeSErvICXn3dfqXUfeLx35LfptLDEbrzFUdwYFNmt8QXOwe9yaw==}
+ tunnel-rat@0.1.2:
+ resolution: {integrity: sha512-lR5VHmkPhzdhrM092lI2nACsLO4QubF0/yoOhzX7c+wIpbN1GjHNzCc91QlpxBi+cnx8vVJ+Ur6vL5cEoQPFpQ==}
+
+ turbo-darwin-64@2.5.8:
+ resolution: {integrity: sha512-Dh5bCACiHO8rUXZLpKw+m3FiHtAp2CkanSyJre+SInEvEr5kIxjGvCK/8MFX8SFRjQuhjtvpIvYYZJB4AGCxNQ==}
cpu: [x64]
os: [darwin]
- turbo-darwin-arm64@2.5.3:
- resolution: {integrity: sha512-5PefrwHd42UiZX7YA9m1LPW6x9YJBDErXmsegCkVp+GjmWrADfEOxpFrGQNonH3ZMj77WZB2PVE5Aw3gA+IOhg==}
+ turbo-darwin-arm64@2.5.8:
+ resolution: {integrity: sha512-f1H/tQC9px7+hmXn6Kx/w8Jd/FneIUnvLlcI/7RGHunxfOkKJKvsoiNzySkoHQ8uq1pJnhJ0xNGTlYM48ZaJOQ==}
cpu: [arm64]
os: [darwin]
- turbo-linux-64@2.5.3:
- resolution: {integrity: sha512-M9xigFgawn5ofTmRzvjjLj3Lqc05O8VHKuOlWNUlnHPUltFquyEeSkpQNkE/vpPdOR14AzxqHbhhxtfS4qvb1w==}
+ turbo-linux-64@2.5.8:
+ resolution: {integrity: sha512-hMyvc7w7yadBlZBGl/bnR6O+dJTx3XkTeyTTH4zEjERO6ChEs0SrN8jTFj1lueNXKIHh1SnALmy6VctKMGnWfw==}
cpu: [x64]
os: [linux]
- turbo-linux-arm64@2.5.3:
- resolution: {integrity: sha512-auJRbYZ8SGJVqvzTikpg1bsRAsiI9Tk0/SDkA5Xgg0GdiHDH/BOzv1ZjDE2mjmlrO/obr19Dw+39OlMhwLffrw==}
+ turbo-linux-arm64@2.5.8:
+ resolution: {integrity: sha512-LQELGa7bAqV2f+3rTMRPnj5G/OHAe2U+0N9BwsZvfMvHSUbsQ3bBMWdSQaYNicok7wOZcHjz2TkESn1hYK6xIQ==}
cpu: [arm64]
os: [linux]
- turbo-windows-64@2.5.3:
- resolution: {integrity: sha512-arLQYohuHtIEKkmQSCU9vtrKUg+/1TTstWB9VYRSsz+khvg81eX6LYHtXJfH/dK7Ho6ck+JaEh5G+QrE1jEmCQ==}
+ turbo-windows-64@2.5.8:
+ resolution: {integrity: sha512-3YdcaW34TrN1AWwqgYL9gUqmZsMT4T7g8Y5Azz+uwwEJW+4sgcJkIi9pYFyU4ZBSjBvkfuPZkGgfStir5BBDJQ==}
cpu: [x64]
os: [win32]
- turbo-windows-arm64@2.5.3:
- resolution: {integrity: sha512-3JPn66HAynJ0gtr6H+hjY4VHpu1RPKcEwGATvGUTmLmYSYBQieVlnGDRMMoYN066YfyPqnNGCfhYbXfH92Cm0g==}
+ turbo-windows-arm64@2.5.8:
+ resolution: {integrity: sha512-eFC5XzLmgXJfnAK3UMTmVECCwuBcORrWdewoiXBnUm934DY6QN8YowC/srhNnROMpaKaqNeRpoB5FxCww3eteQ==}
cpu: [arm64]
os: [win32]
- turbo@2.5.3:
- resolution: {integrity: sha512-iHuaNcq5GZZnr3XDZNuu2LSyCzAOPwDuo5Qt+q64DfsTP1i3T2bKfxJhni2ZQxsvAoxRbuUK5QetJki4qc5aYA==}
+ turbo@2.5.8:
+ resolution: {integrity: sha512-5c9Fdsr9qfpT3hA0EyYSFRZj1dVVsb6KIWubA9JBYZ/9ZEAijgUEae0BBR/Xl/wekt4w65/lYLTFaP3JmwSO8w==}
hasBin: true
type-check@0.4.0:
@@ -4788,9 +5020,18 @@ packages:
'@types/react':
optional: true
+ use-sync-external-store@1.6.0:
+ resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+ utility-types@3.11.0:
+ resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==}
+ engines: {node: '>= 4'}
+
utils-merge@1.0.1:
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
engines: {node: '>= 0.4.0'}
@@ -4842,6 +5083,12 @@ packages:
web-vitals@4.2.4:
resolution: {integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==}
+ webgl-constants@1.1.1:
+ resolution: {integrity: sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg==}
+
+ webgl-sdf-generator@1.1.1:
+ resolution: {integrity: sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA==}
+
webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
@@ -4977,6 +5224,39 @@ packages:
zod@3.24.2:
resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==}
+ zustand@4.5.7:
+ resolution: {integrity: sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==}
+ engines: {node: '>=12.7.0'}
+ peerDependencies:
+ '@types/react': '>=16.8'
+ immer: '>=9.0.6'
+ react: '>=16.8'
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ immer:
+ optional: true
+ react:
+ optional: true
+
+ zustand@5.0.8:
+ resolution: {integrity: sha512-gyPKpIaxY9XcO2vSMrLbiER7QMAMGOQZVRdJ6Zi782jkbzZygq5GI9nG8g+sMgitRtndwaBSl7uiqC49o1SSiw==}
+ engines: {node: '>=12.20.0'}
+ peerDependencies:
+ '@types/react': '>=18.0.0'
+ immer: '>=9.0.6'
+ react: '>=18.0.0'
+ use-sync-external-store: '>=1.2.0'
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ immer:
+ optional: true
+ react:
+ optional: true
+ use-sync-external-store:
+ optional: true
+
snapshots:
'@ampproject/remapping@2.3.0':
@@ -5278,6 +5558,8 @@ snapshots:
enabled: 2.0.0
kuler: 2.0.0
+ '@dimforge/rapier3d-compat@0.12.0': {}
+
'@emnapi/runtime@1.3.1':
dependencies:
tslib: 2.8.1
@@ -5888,10 +6170,17 @@ snapshots:
'@langchain/core': 0.2.36(openai@4.85.4(ws@8.18.1)(zod@3.24.2))
js-tiktoken: 1.0.19
+ '@mediapipe/tasks-vision@0.10.17': {}
+
'@mongodb-js/saslprep@1.2.0':
dependencies:
sparse-bitfield: 3.0.3
+ '@monogrid/gainmap-js@3.1.0(three@0.180.0)':
+ dependencies:
+ promise-worker-transferable: 1.0.4
+ three: 0.180.0
+
'@next/env@15.1.7': {}
'@next/eslint-plugin-next@15.1.7':
@@ -5943,6 +6232,61 @@ snapshots:
dependencies:
playwright: 1.50.1
+ '@react-three/drei@10.7.6(@react-three/fiber@9.4.0(@types/react@18.0.0)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(three@0.180.0))(@types/react@18.0.0)(@types/three@0.180.0)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(three@0.180.0)':
+ dependencies:
+ '@babel/runtime': 7.26.9
+ '@mediapipe/tasks-vision': 0.10.17
+ '@monogrid/gainmap-js': 3.1.0(three@0.180.0)
+ '@react-three/fiber': 9.4.0(@types/react@18.0.0)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(three@0.180.0)
+ '@use-gesture/react': 10.3.1(react@18.0.0)
+ camera-controls: 3.1.0(three@0.180.0)
+ cross-env: 7.0.3
+ detect-gpu: 5.0.70
+ glsl-noise: 0.0.0
+ hls.js: 1.6.13
+ maath: 0.10.8(@types/three@0.180.0)(three@0.180.0)
+ meshline: 3.3.1(three@0.180.0)
+ react: 18.0.0
+ stats-gl: 2.4.2(@types/three@0.180.0)(three@0.180.0)
+ stats.js: 0.17.0
+ suspend-react: 0.1.3(react@18.0.0)
+ three: 0.180.0
+ three-mesh-bvh: 0.8.3(three@0.180.0)
+ three-stdlib: 2.36.0(three@0.180.0)
+ troika-three-text: 0.52.4(three@0.180.0)
+ tunnel-rat: 0.1.2(@types/react@18.0.0)(react@18.0.0)
+ use-sync-external-store: 1.6.0(react@18.0.0)
+ utility-types: 3.11.0
+ zustand: 5.0.8(@types/react@18.0.0)(react@18.0.0)(use-sync-external-store@1.6.0(react@18.0.0))
+ optionalDependencies:
+ react-dom: 18.0.0(react@18.0.0)
+ transitivePeerDependencies:
+ - '@types/react'
+ - '@types/three'
+ - immer
+
+ '@react-three/fiber@9.4.0(@types/react@18.0.0)(react-dom@18.0.0(react@18.0.0))(react@18.0.0)(three@0.180.0)':
+ dependencies:
+ '@babel/runtime': 7.26.9
+ '@types/react-reconciler': 0.32.1(@types/react@18.0.0)
+ '@types/webxr': 0.5.24
+ base64-js: 1.5.1
+ buffer: 6.0.3
+ its-fine: 2.0.0(@types/react@18.0.0)(react@18.0.0)
+ react: 18.0.0
+ react-reconciler: 0.31.0(react@18.0.0)
+ react-use-measure: 2.1.7(react-dom@18.0.0(react@18.0.0))(react@18.0.0)
+ scheduler: 0.25.0
+ suspend-react: 0.1.3(react@18.0.0)
+ three: 0.180.0
+ use-sync-external-store: 1.6.0(react@18.0.0)
+ zustand: 5.0.8(@types/react@18.0.0)(react@18.0.0)(use-sync-external-store@1.6.0(react@18.0.0))
+ optionalDependencies:
+ react-dom: 18.0.0(react@18.0.0)
+ transitivePeerDependencies:
+ - '@types/react'
+ - immer
+
'@rrweb/types@2.0.0-alpha.17':
dependencies:
rrweb-snapshot: 2.0.0-alpha.18
@@ -5999,6 +6343,8 @@ snapshots:
'@tsconfig/node16@1.0.4': {}
+ '@tweenjs/tween.js@23.1.3': {}
+
'@types/babel__core@7.20.5':
dependencies:
'@babel/parser': 7.26.9
@@ -6039,6 +6385,8 @@ snapshots:
dependencies:
'@types/ms': 2.1.0
+ '@types/draco3d@1.4.10': {}
+
'@types/estree@1.0.6': {}
'@types/express-serve-static-core@4.19.6':
@@ -6105,6 +6453,8 @@ snapshots:
'@types/node@20.0.0': {}
+ '@types/offscreencanvas@2019.7.3': {}
+
'@types/prop-types@15.7.14': {}
'@types/qs@6.9.18': {}
@@ -6119,6 +6469,14 @@ snapshots:
dependencies:
'@types/react': 18.0.0
+ '@types/react-reconciler@0.28.9(@types/react@18.0.0)':
+ dependencies:
+ '@types/react': 18.0.0
+
+ '@types/react-reconciler@0.32.1(@types/react@18.0.0)':
+ dependencies:
+ '@types/react': 18.0.0
+
'@types/react-syntax-highlighter@15.5.13':
dependencies:
'@types/react': 18.0.0
@@ -6146,6 +6504,8 @@ snapshots:
'@types/stack-utils@2.0.3': {}
+ '@types/stats.js@0.17.4': {}
+
'@types/superagent@8.1.9':
dependencies:
'@types/cookiejar': 2.1.5
@@ -6158,6 +6518,16 @@ snapshots:
'@types/methods': 1.1.4
'@types/superagent': 8.1.9
+ '@types/three@0.180.0':
+ dependencies:
+ '@dimforge/rapier3d-compat': 0.12.0
+ '@tweenjs/tween.js': 23.1.3
+ '@types/stats.js': 0.17.4
+ '@types/webxr': 0.5.24
+ '@webgpu/types': 0.1.66
+ fflate: 0.8.2
+ meshoptimizer: 0.22.0
+
'@types/tough-cookie@4.0.5': {}
'@types/triple-beam@1.3.5': {}
@@ -6168,6 +6538,8 @@ snapshots:
'@types/webidl-conversions@7.0.3': {}
+ '@types/webxr@0.5.24': {}
+
'@types/whatwg-url@11.0.5':
dependencies:
'@types/webidl-conversions': 7.0.3
@@ -6283,6 +6655,15 @@ snapshots:
'@typescript-eslint/types': 8.24.1
eslint-visitor-keys: 4.2.0
+ '@use-gesture/core@10.3.1': {}
+
+ '@use-gesture/react@10.3.1(react@18.0.0)':
+ dependencies:
+ '@use-gesture/core': 10.3.1
+ react: 18.0.0
+
+ '@webgpu/types@0.1.66': {}
+
'@xmldom/xmldom@0.9.8': {}
a-sync-waterfall@1.0.1: {}
@@ -6541,6 +6922,10 @@ snapshots:
mathjax-full: 3.2.2
react: 18.0.0
+ bidi-js@1.0.3:
+ dependencies:
+ require-from-string: 2.0.2
+
binary-extensions@2.3.0: {}
binary-search@1.3.6: {}
@@ -6632,6 +7017,10 @@ snapshots:
camelcase@6.3.0: {}
+ camera-controls@3.1.0(three@0.180.0):
+ dependencies:
+ three: 0.180.0
+
caniuse-lite@1.0.30001700: {}
chalk@4.1.2:
@@ -6806,6 +7195,10 @@ snapshots:
create-require@1.1.1: {}
+ cross-env@7.0.3:
+ dependencies:
+ cross-spawn: 7.0.6
+
cross-spawn@7.0.6:
dependencies:
path-key: 3.1.1
@@ -6878,6 +7271,10 @@ snapshots:
destroy@1.2.0: {}
+ detect-gpu@5.0.70:
+ dependencies:
+ webgl-constants: 1.1.1
+
detect-libc@2.0.3:
optional: true
@@ -6928,6 +7325,8 @@ snapshots:
downdoc@1.0.2-stable: {}
+ draco3d@1.5.7: {}
+
dunder-proto@1.0.1:
dependencies:
call-bind-apply-helpers: 1.0.2
@@ -7120,7 +7519,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.12.0(@typescript-eslint/parser@6.21.0(eslint@9.21.0(jiti@1.21.7))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.8.3(eslint-plugin-import@2.31.0)(eslint@9.21.0(jiti@1.21.7)))(eslint@9.21.0(jiti@1.21.7)):
+ eslint-module-utils@2.12.0(@typescript-eslint/parser@6.21.0(eslint@9.21.0(jiti@1.21.7))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.8.3)(eslint@9.21.0(jiti@1.21.7)):
dependencies:
debug: 3.2.7
optionalDependencies:
@@ -7142,7 +7541,7 @@ snapshots:
doctrine: 2.1.0
eslint: 9.21.0(jiti@1.21.7)
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@9.21.0(jiti@1.21.7))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.8.3(eslint-plugin-import@2.31.0)(eslint@9.21.0(jiti@1.21.7)))(eslint@9.21.0(jiti@1.21.7))
+ eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@9.21.0(jiti@1.21.7))(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.8.3)(eslint@9.21.0(jiti@1.21.7))
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
@@ -7400,6 +7799,10 @@ snapshots:
fflate@0.4.8: {}
+ fflate@0.6.10: {}
+
+ fflate@0.8.2: {}
+
file-entry-cache@8.0.0:
dependencies:
flat-cache: 4.0.1
@@ -7624,12 +8027,16 @@ snapshots:
merge2: 1.4.1
slash: 3.0.0
+ glsl-noise@0.0.0: {}
+
gopd@1.2.0: {}
graceful-fs@4.2.11: {}
graphemer@1.4.0: {}
+ gsap@3.13.0: {}
+
handlebars@4.7.8:
dependencies:
minimist: 1.2.8
@@ -7677,6 +8084,8 @@ snapshots:
highlight.js@10.7.3: {}
+ hls.js@1.6.13: {}
+
html-escaper@2.0.2: {}
html-to-text@9.0.5:
@@ -7747,6 +8156,8 @@ snapshots:
ignore@5.3.2: {}
+ immediate@3.0.6: {}
+
import-fresh@3.3.1:
dependencies:
parent-module: 1.0.1
@@ -7973,6 +8384,13 @@ snapshots:
has-symbols: 1.1.0
set-function-name: 2.0.2
+ its-fine@2.0.0(@types/react@18.0.0)(react@18.0.0):
+ dependencies:
+ '@types/react-reconciler': 0.28.9(@types/react@18.0.0)
+ react: 18.0.0
+ transitivePeerDependencies:
+ - '@types/react'
+
jackspeak@3.4.3:
dependencies:
'@isaacs/cliui': 8.0.2
@@ -8510,6 +8928,10 @@ snapshots:
prelude-ls: 1.2.1
type-check: 0.4.0
+ lie@3.3.0:
+ dependencies:
+ immediate: 3.0.6
+
lilconfig@2.1.0: {}
lines-and-columns@1.2.4: {}
@@ -8574,6 +8996,11 @@ snapshots:
lunr@2.3.9: {}
+ maath@0.10.8(@types/three@0.180.0)(three@0.180.0):
+ dependencies:
+ '@types/three': 0.180.0
+ three: 0.180.0
+
make-dir@4.0.0:
dependencies:
semver: 7.7.1
@@ -8607,6 +9034,12 @@ snapshots:
merge2@1.4.1: {}
+ meshline@3.3.1(three@0.180.0):
+ dependencies:
+ three: 0.180.0
+
+ meshoptimizer@0.22.0: {}
+
methods@1.1.2: {}
mhchemparser@4.2.1: {}
@@ -9069,6 +9502,8 @@ snapshots:
preact: 10.26.2
web-vitals: 4.2.4
+ potpack@1.0.2: {}
+
preact@10.26.2: {}
prelude-ls@1.2.1: {}
@@ -9089,6 +9524,11 @@ snapshots:
process@0.11.10: {}
+ promise-worker-transferable@1.0.4:
+ dependencies:
+ is-promise: 2.2.2
+ lie: 3.3.0
+
promise@7.3.1:
dependencies:
asap: 2.0.6
@@ -9227,6 +9667,11 @@ snapshots:
prop-types: 15.8.1
react: 18.0.0
+ react-reconciler@0.31.0(react@18.0.0):
+ dependencies:
+ react: 18.0.0
+ scheduler: 0.25.0
+
react-syntax-highlighter@15.5.0(react@18.0.0):
dependencies:
'@babel/runtime': 7.26.9
@@ -9250,6 +9695,12 @@ snapshots:
transitivePeerDependencies:
- '@types/react'
+ react-use-measure@2.1.7(react-dom@18.0.0(react@18.0.0))(react@18.0.0):
+ dependencies:
+ react: 18.0.0
+ optionalDependencies:
+ react-dom: 18.0.0(react@18.0.0)
+
react@18.0.0:
dependencies:
loose-envify: 1.4.0
@@ -9310,6 +9761,8 @@ snapshots:
require-directory@2.1.1: {}
+ require-from-string@2.0.2: {}
+
requires-port@1.0.0: {}
resolve-cwd@3.0.0:
@@ -9381,6 +9834,8 @@ snapshots:
dependencies:
loose-envify: 1.4.0
+ scheduler@0.25.0: {}
+
selderee@0.11.0:
dependencies:
parseley: 0.12.1
@@ -9556,6 +10011,13 @@ snapshots:
dependencies:
escape-string-regexp: 2.0.0
+ stats-gl@2.4.2(@types/three@0.180.0)(three@0.180.0):
+ dependencies:
+ '@types/three': 0.180.0
+ three: 0.180.0
+
+ stats.js@0.17.0: {}
+
statuses@2.0.1: {}
streamsearch@1.1.0: {}
@@ -9704,6 +10166,10 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
+ suspend-react@0.1.3(react@18.0.0):
+ dependencies:
+ react: 18.0.0
+
tailwind-merge@2.2.2:
dependencies:
'@babel/runtime': 7.26.9
@@ -9755,6 +10221,22 @@ snapshots:
dependencies:
any-promise: 1.3.0
+ three-mesh-bvh@0.8.3(three@0.180.0):
+ dependencies:
+ three: 0.180.0
+
+ three-stdlib@2.36.0(three@0.180.0):
+ dependencies:
+ '@types/draco3d': 1.4.10
+ '@types/offscreencanvas': 2019.7.3
+ '@types/webxr': 0.5.24
+ draco3d: 1.5.7
+ fflate: 0.6.10
+ potpack: 1.0.2
+ three: 0.180.0
+
+ three@0.180.0: {}
+
tinyglobby@0.2.12:
dependencies:
fdir: 6.4.3(picomatch@4.0.2)
@@ -9792,6 +10274,20 @@ snapshots:
triple-beam@1.4.1: {}
+ troika-three-text@0.52.4(three@0.180.0):
+ dependencies:
+ bidi-js: 1.0.3
+ three: 0.180.0
+ troika-three-utils: 0.52.4(three@0.180.0)
+ troika-worker-utils: 0.52.0
+ webgl-sdf-generator: 1.1.1
+
+ troika-three-utils@0.52.4(three@0.180.0):
+ dependencies:
+ three: 0.180.0
+
+ troika-worker-utils@0.52.0: {}
+
ts-api-utils@1.4.3(typescript@5.5.4):
dependencies:
typescript: 5.5.4
@@ -9871,32 +10367,40 @@ snapshots:
tslib@2.8.1: {}
- turbo-darwin-64@2.5.3:
+ tunnel-rat@0.1.2(@types/react@18.0.0)(react@18.0.0):
+ dependencies:
+ zustand: 4.5.7(@types/react@18.0.0)(react@18.0.0)
+ transitivePeerDependencies:
+ - '@types/react'
+ - immer
+ - react
+
+ turbo-darwin-64@2.5.8:
optional: true
- turbo-darwin-arm64@2.5.3:
+ turbo-darwin-arm64@2.5.8:
optional: true
- turbo-linux-64@2.5.3:
+ turbo-linux-64@2.5.8:
optional: true
- turbo-linux-arm64@2.5.3:
+ turbo-linux-arm64@2.5.8:
optional: true
- turbo-windows-64@2.5.3:
+ turbo-windows-64@2.5.8:
optional: true
- turbo-windows-arm64@2.5.3:
+ turbo-windows-arm64@2.5.8:
optional: true
- turbo@2.5.3:
+ turbo@2.5.8:
optionalDependencies:
- turbo-darwin-64: 2.5.3
- turbo-darwin-arm64: 2.5.3
- turbo-linux-64: 2.5.3
- turbo-linux-arm64: 2.5.3
- turbo-windows-64: 2.5.3
- turbo-windows-arm64: 2.5.3
+ turbo-darwin-64: 2.5.8
+ turbo-darwin-arm64: 2.5.8
+ turbo-linux-64: 2.5.8
+ turbo-linux-arm64: 2.5.8
+ turbo-windows-64: 2.5.8
+ turbo-windows-arm64: 2.5.8
type-check@0.4.0:
dependencies:
@@ -10002,8 +10506,14 @@ snapshots:
optionalDependencies:
'@types/react': 18.0.0
+ use-sync-external-store@1.6.0(react@18.0.0):
+ dependencies:
+ react: 18.0.0
+
util-deprecate@1.0.2: {}
+ utility-types@3.11.0: {}
+
utils-merge@1.0.1: {}
uuid@10.0.0: {}
@@ -10038,6 +10548,10 @@ snapshots:
web-vitals@4.2.4: {}
+ webgl-constants@1.1.1: {}
+
+ webgl-sdf-generator@1.1.1: {}
+
webidl-conversions@3.0.1: {}
webidl-conversions@7.0.0: {}
@@ -10193,3 +10707,16 @@ snapshots:
zod@3.22.4: {}
zod@3.24.2: {}
+
+ zustand@4.5.7(@types/react@18.0.0)(react@18.0.0):
+ dependencies:
+ use-sync-external-store: 1.6.0(react@18.0.0)
+ optionalDependencies:
+ '@types/react': 18.0.0
+ react: 18.0.0
+
+ zustand@5.0.8(@types/react@18.0.0)(react@18.0.0)(use-sync-external-store@1.6.0(react@18.0.0)):
+ optionalDependencies:
+ '@types/react': 18.0.0
+ react: 18.0.0
+ use-sync-external-store: 1.6.0(react@18.0.0)