├── .gitignore ├── README.md ├── app ├── components │ └── ui │ │ ├── alert.tsx │ │ ├── clipboard.tsx │ │ ├── close-button.tsx │ │ ├── field.tsx │ │ └── pin-input.tsx ├── root.tsx ├── routes.ts ├── routes │ └── home.tsx ├── services │ ├── webRTC.ts │ └── webSocket.ts └── stores │ ├── auth.ts │ ├── webRTC.ts │ └── webSocket.ts ├── biome.json ├── package.json ├── pnpm-lock.yaml ├── public └── favicon.ico ├── react-router.config.ts ├── tsconfig.json ├── vite.config.ts └── worker ├── .gitignore ├── biome.json ├── package.json ├── pnpm-lock.yaml ├── src ├── durable │ └── signalling.ts └── index.ts ├── tsconfig.json ├── worker-configuration.d.ts └── wrangler.toml /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /node_modules/ 3 | 4 | # React Router 5 | /.react-router/ 6 | /build/ 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # WebRTC Screen Mirror 2 | 3 | 一个基于 WebRTC 和 Cloudflare Durable Objects 实现的简单高效的屏幕共享工具。通过 WebSocket 实现实时信令服务,配合 WebRTC 技术,实现低延迟的屏幕共享功能。只需输入投屏码,即可实现跨设备的屏幕分享。 4 | 5 | ## 🌟 特性 6 | 7 | - 🚀 基于 WebRTC 的低延迟屏幕共享 8 | - 🔌 使用 WebSocket 实现实时信令通信 9 | - 🔒 基于 Cloudflare Durable Objects 实现可靠的 WebSocket 信令服务器 10 | - 📱 支持跨平台、跨设备访问 11 | - 🎯 简单易用,无需安装,输入投屏码即可观看 12 | - 🆓 完全免费开源 13 | 14 | ## 🖥️ 在线体验 15 | 16 | 访问 [https://mirror.doveliao.com/](https://mirror.doveliao.com/) 即可体验。 17 | 18 | > 💡 **最佳使用环境**: 在同一局域网内使用效果最佳,可以获得最低的延迟和最流畅的体验。 19 | 20 | ## ⚠️ 使用注意事项 21 | 22 | - **网络环境**: 23 | - 同一局域网内使用效果最佳 24 | - 不同网络环境下可能无法建立连接,这是由于 NAT 穿透失败导致的 25 | - 某些 VPN 工具会屏蔽 UDP 连接,可能导致 WebRTC 连接失败 26 | - 如果连接失败,建议尝试关闭 VPN 或切换到同一网络环境 27 | 28 | - **浏览器支持**: 29 | - 推荐使用最新版本的 Chrome、Firefox、Edge 等现代浏览器 30 | - 需要允许浏览器的屏幕共享权限 31 | 32 | ## 🛠️ 技术栈 33 | 34 | - WebRTC - 实现端对端的屏幕共享 35 | - WebSocket - 实现实时信令通信 36 | - Cloudflare Workers - 提供边缘计算能力 37 | - Cloudflare Durable Objects - 维护 WebSocket 连接状态 38 | - TypeScript - 提供类型安全的代码实现 39 | 40 | ## 💡 工作原理 41 | 42 | 1. 打开网页, 系统会生成唯一的投屏码 43 | 2. 观看方输入投屏码后,通过 WebSocket 连接到对应的 Durable Object 44 | 3. Durable Object 作为信令服务器,帮助双方建立 WebRTC 连接 45 | 4. 建立 P2P 连接后,屏幕画面通过 WebRTC 直接传输,实现低延迟共享 46 | -------------------------------------------------------------------------------- /app/components/ui/alert.tsx: -------------------------------------------------------------------------------- 1 | import { Alert as ChakraAlert } from "@chakra-ui/react"; 2 | import { CloseButton } from "./close-button"; 3 | import * as React from "react"; 4 | 5 | export interface AlertProps extends Omit { 6 | startElement?: React.ReactNode; 7 | endElement?: React.ReactNode; 8 | title?: React.ReactNode; 9 | icon?: React.ReactElement; 10 | closable?: boolean; 11 | onClose?: () => void; 12 | } 13 | 14 | export const Alert = React.forwardRef( 15 | function Alert(props, ref) { 16 | const { 17 | title, 18 | children, 19 | icon, 20 | closable, 21 | onClose, 22 | startElement, 23 | endElement, 24 | ...rest 25 | } = props; 26 | return ( 27 | 28 | {startElement || {icon}} 29 | {children ? ( 30 | 31 | {title} 32 | {children} 33 | 34 | ) : ( 35 | {title} 36 | )} 37 | {endElement} 38 | {closable && ( 39 | 47 | )} 48 | 49 | ); 50 | }, 51 | ); 52 | -------------------------------------------------------------------------------- /app/components/ui/clipboard.tsx: -------------------------------------------------------------------------------- 1 | import type { ButtonProps, InputProps } from "@chakra-ui/react"; 2 | import { 3 | Button, 4 | Clipboard as ChakraClipboard, 5 | IconButton, 6 | Input, 7 | } from "@chakra-ui/react"; 8 | import * as React from "react"; 9 | import { LuCheck, LuClipboard, LuLink } from "react-icons/lu"; 10 | 11 | const ClipboardIcon = React.forwardRef< 12 | HTMLDivElement, 13 | ChakraClipboard.IndicatorProps 14 | >(function ClipboardIcon(props, ref) { 15 | return ( 16 | } {...props} ref={ref}> 17 | 18 | 19 | ); 20 | }); 21 | 22 | const ClipboardCopyText = React.forwardRef< 23 | HTMLDivElement, 24 | ChakraClipboard.IndicatorProps 25 | >(function ClipboardCopyText(props, ref) { 26 | return ( 27 | 28 | Copy 29 | 30 | ); 31 | }); 32 | 33 | export const ClipboardLabel = React.forwardRef< 34 | HTMLLabelElement, 35 | ChakraClipboard.LabelProps 36 | >(function ClipboardLabel(props, ref) { 37 | return ( 38 | 46 | ); 47 | }); 48 | 49 | export const ClipboardButton = React.forwardRef( 50 | function ClipboardButton(props, ref) { 51 | return ( 52 | 53 | 57 | 58 | ); 59 | }, 60 | ); 61 | 62 | export const ClipboardLink = React.forwardRef( 63 | function ClipboardLink(props, ref) { 64 | return ( 65 | 66 | 79 | 80 | ); 81 | }, 82 | ); 83 | 84 | export const ClipboardIconButton = React.forwardRef< 85 | HTMLButtonElement, 86 | ButtonProps 87 | >(function ClipboardIconButton(props, ref) { 88 | return ( 89 | 90 | 91 | 92 | 93 | 94 | 95 | ); 96 | }); 97 | 98 | export const ClipboardInput = React.forwardRef( 99 | function ClipboardInputElement(props, ref) { 100 | return ( 101 | 102 | 103 | 104 | ); 105 | }, 106 | ); 107 | 108 | export const ClipboardRoot = ChakraClipboard.Root; 109 | -------------------------------------------------------------------------------- /app/components/ui/close-button.tsx: -------------------------------------------------------------------------------- 1 | import type { ButtonProps } from "@chakra-ui/react"; 2 | import { IconButton as ChakraIconButton } from "@chakra-ui/react"; 3 | import * as React from "react"; 4 | import { LuX } from "react-icons/lu"; 5 | 6 | export type CloseButtonProps = ButtonProps; 7 | 8 | export const CloseButton = React.forwardRef< 9 | HTMLButtonElement, 10 | CloseButtonProps 11 | >(function CloseButton(props, ref) { 12 | return ( 13 | 14 | {props.children ?? } 15 | 16 | ); 17 | }); 18 | -------------------------------------------------------------------------------- /app/components/ui/field.tsx: -------------------------------------------------------------------------------- 1 | import { Field as ChakraField } from "@chakra-ui/react"; 2 | import * as React from "react"; 3 | 4 | export interface FieldProps extends Omit { 5 | label?: React.ReactNode; 6 | helperText?: React.ReactNode; 7 | errorText?: React.ReactNode; 8 | optionalText?: React.ReactNode; 9 | } 10 | 11 | export const Field = React.forwardRef( 12 | function Field(props, ref) { 13 | const { label, children, helperText, errorText, optionalText, ...rest } = 14 | props; 15 | return ( 16 | 17 | {label && ( 18 | 19 | {label} 20 | 21 | 22 | )} 23 | {children} 24 | {helperText && ( 25 | {helperText} 26 | )} 27 | {errorText && ( 28 | {errorText} 29 | )} 30 | 31 | ); 32 | }, 33 | ); 34 | -------------------------------------------------------------------------------- /app/components/ui/pin-input.tsx: -------------------------------------------------------------------------------- 1 | import { PinInput as ChakraPinInput, Group } from "@chakra-ui/react"; 2 | import * as React from "react"; 3 | 4 | export interface PinInputProps extends ChakraPinInput.RootProps { 5 | rootRef?: React.Ref; 6 | count?: number; 7 | inputProps?: React.InputHTMLAttributes; 8 | attached?: boolean; 9 | } 10 | 11 | export const PinInput = React.forwardRef( 12 | function PinInput(props, ref) { 13 | const { count = 4, inputProps, rootRef, attached, ...rest } = props; 14 | return ( 15 | 16 | 17 | 18 | 19 | {Array.from({ length: count }).map((_, index) => ( 20 | 21 | ))} 22 | 23 | 24 | 25 | ); 26 | }, 27 | ); 28 | -------------------------------------------------------------------------------- /app/root.tsx: -------------------------------------------------------------------------------- 1 | import { ChakraProvider, defaultSystem } from "@chakra-ui/react"; 2 | import { Links, Meta, Outlet, Scripts, ScrollRestoration } from "react-router"; 3 | 4 | export function Layout({ children }: { children: React.ReactNode }) { 5 | return ( 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | {children} 15 | 16 | 17 | 22 | 23 | 24 | ); 25 | } 26 | 27 | export default function App() { 28 | return ( 29 | 30 | 31 | 32 | ); 33 | } 34 | -------------------------------------------------------------------------------- /app/routes.ts: -------------------------------------------------------------------------------- 1 | import { type RouteConfig, index } from "@react-router/dev/routes"; 2 | 3 | export default [index("routes/home.tsx")] satisfies RouteConfig; 4 | -------------------------------------------------------------------------------- /app/routes/home.tsx: -------------------------------------------------------------------------------- 1 | import { 2 | Heading, 3 | VStack, 4 | Button, 5 | HStack, 6 | Spinner, 7 | Text, 8 | Spacer, 9 | } from "@chakra-ui/react"; 10 | import { useEffect, useRef } from "react"; 11 | import { customAlphabet } from "nanoid/non-secure"; 12 | import { TriangleAlertIcon } from "lucide-react"; 13 | import { z } from "zod"; 14 | import { zodResolver } from "@hookform/resolvers/zod"; 15 | import { useForm } from "react-hook-form"; 16 | import { useWebSocketStore } from "~/stores/webSocket"; 17 | import { webSocketService } from "~/services/webSocket"; 18 | import { useAuthStore } from "~/stores/auth"; 19 | import { Alert } from "~/components/ui/alert"; 20 | import { Field } from "~/components/ui/field"; 21 | import { PinInput } from "~/components/ui/pin-input"; 22 | import { webRTCService } from "~/services/webRTC"; 23 | import { useWebRTCStore } from "~/stores/webRTC"; 24 | 25 | export async function clientLoader() { 26 | const { id, setId } = useAuthStore.getState(); 27 | if (!id) { 28 | const id = customAlphabet("0123456789", 6)(); 29 | setId(id); 30 | } 31 | const url = `wss://signaling.pexni.com/connect?id=${id}`; 32 | webSocketService.connect(url); 33 | webSocketService.registerHandler("offer", (data) => { 34 | webRTCService.handleOffer(data.from, data.data); 35 | }); 36 | return null; 37 | } 38 | 39 | clientLoader.hydrate = true as const; 40 | 41 | const schema = z.object({ 42 | code: z 43 | .string() 44 | .min(1, { message: "投屏码不能为空" }) 45 | .length(6, { message: "投屏码长度为6位" }), 46 | }); 47 | 48 | export default function Home() { 49 | const { id } = useAuthStore(); 50 | const { remoteStream, connectionState } = useWebRTCStore(); 51 | 52 | const videoRef = useRef(null); 53 | 54 | useEffect(() => { 55 | if (videoRef.current && remoteStream && connectionState === "connected") { 56 | if (videoRef.current.srcObject !== remoteStream) { 57 | videoRef.current.srcObject = remoteStream; 58 | } 59 | } 60 | }, [remoteStream, connectionState]); 61 | 62 | const { 63 | register, 64 | handleSubmit, 65 | formState: { errors }, 66 | } = useForm>({ 67 | resolver: zodResolver(schema), 68 | }); 69 | 70 | const onSubmit = handleSubmit(async (data) => { 71 | const { code } = data; 72 | try { 73 | const stream = await navigator.mediaDevices.getDisplayMedia({ 74 | video: true, 75 | audio: true, 76 | }); 77 | const pc = await webRTCService.connect(code); 78 | stream.getTracks().forEach((track) => { 79 | pc.addTrack(track, stream); 80 | }); 81 | } catch (error) { 82 | console.error("Error in WebRTC setup:", error); 83 | } 84 | }); 85 | 86 | return ( 87 | 88 | 89 | 投屏码 90 | 99 | 145 | ); 146 | } 147 | 148 | function WebSocketStateComponent() { 149 | const { webSocketState } = useWebSocketStore(); 150 | return ( 151 | 190 | ); 191 | } 192 | -------------------------------------------------------------------------------- /app/services/webRTC.ts: -------------------------------------------------------------------------------- 1 | import { useWebRTCStore } from "~/stores/webRTC"; 2 | import { webSocketService } from "~/services/webSocket"; 3 | 4 | type PeerConnectionConfig = { 5 | iceServers: RTCIceServer[]; 6 | }; 7 | 8 | class WebRTCService { 9 | private static instance: WebRTCService; 10 | private peerId: string = ""; 11 | private peerConnection: RTCPeerConnection | null = null; 12 | private config: PeerConnectionConfig = { 13 | iceServers: [ 14 | { urls: "stun:stun.l.google.com:19302" }, 15 | { urls: "stun:stun1.l.google.com:19302" }, 16 | ], 17 | }; 18 | private constructor() { 19 | webSocketService.registerHandler("ice_candidate", (data) => { 20 | this.peerConnection?.addIceCandidate(new RTCIceCandidate(data.data)); 21 | }); 22 | webSocketService.registerHandler("answer", (data) => { 23 | this.peerConnection?.setRemoteDescription( 24 | new RTCSessionDescription(data.data), 25 | ); 26 | }); 27 | } 28 | 29 | public static getInstance(): WebRTCService { 30 | if (!WebRTCService.instance) { 31 | WebRTCService.instance = new WebRTCService(); 32 | } 33 | return WebRTCService.instance; 34 | } 35 | 36 | public async connect(to: string): Promise { 37 | if (this.peerConnection && this.peerId === to) { 38 | return this.peerConnection; 39 | } 40 | this.peerId = to; 41 | const pc = new RTCPeerConnection(this.config); 42 | 43 | pc.onicecandidate = (event) => { 44 | if (event.candidate) { 45 | webSocketService.sendMessage({ 46 | type: "ice_candidate", 47 | to: this.peerId, 48 | data: event.candidate, 49 | }); 50 | } 51 | }; 52 | pc.ontrack = (event) => { 53 | console.log("Track received:", event.track.kind); 54 | // 使用最新的流 55 | const [remoteStream] = event.streams; 56 | if (remoteStream) { 57 | console.log( 58 | "Setting remote stream with tracks:", 59 | remoteStream.getTracks(), 60 | ); 61 | useWebRTCStore.getState().setRemoteStream(remoteStream); 62 | } 63 | }; 64 | pc.onnegotiationneeded = async () => { 65 | if (pc.remoteDescription) return; 66 | const offer = await pc.createOffer(); 67 | await pc.setLocalDescription(offer); 68 | webSocketService.sendMessage({ 69 | type: "offer", 70 | to: this.peerId, 71 | data: offer, 72 | }); 73 | }; 74 | pc.onconnectionstatechange = (event) => { 75 | if (pc.connectionState) { 76 | useWebRTCStore.getState().setConnectionState(pc.connectionState); 77 | console.log("Connection state:", pc.connectionState); 78 | } 79 | }; 80 | pc.onicecandidateerror = (event) => { 81 | console.log("ICE candidate error:", event); 82 | }; 83 | pc.oniceconnectionstatechange = () => { 84 | console.log("ICE connection state:", pc.iceConnectionState); 85 | }; 86 | this.peerConnection = pc; 87 | return pc; 88 | } 89 | 90 | // 处理接收到的 offer 91 | public async handleOffer( 92 | peerId: string, 93 | offer: RTCSessionDescriptionInit, 94 | ): Promise { 95 | const pc = await this.connect(peerId); 96 | await pc.setRemoteDescription(new RTCSessionDescription(offer)); 97 | const answer = await pc.createAnswer(); 98 | await pc.setLocalDescription(answer); 99 | webSocketService.sendMessage({ 100 | type: "answer", 101 | to: peerId, 102 | data: answer, 103 | }); 104 | } 105 | 106 | public close(): void { 107 | useWebRTCStore.getState().setConnectionState("disconnected"); 108 | useWebRTCStore.getState().setRemoteStream(undefined); 109 | if (this.peerConnection) { 110 | this.peerConnection.close(); 111 | this.peerConnection = null; 112 | } 113 | this.peerId = ""; 114 | } 115 | } 116 | 117 | // 导出单例实例 118 | export const webRTCService = WebRTCService.getInstance(); 119 | -------------------------------------------------------------------------------- /app/services/webSocket.ts: -------------------------------------------------------------------------------- 1 | import { useWebSocketStore, type WebSocketState } from "~/stores/webSocket"; 2 | 3 | interface WebSocketMessage { 4 | type: string; 5 | to: string; 6 | data: T; 7 | } 8 | 9 | class WebSocketService { 10 | private static instance: WebSocketService; 11 | private ws: WebSocket | null = null; 12 | private url: string | null = null; 13 | private reconnectAttempts = 0; 14 | private maxRetryInterval = 300000; 15 | private maxReconnectAttempts = 5; 16 | private heartbeatInterval: number | null = null; 17 | private reconnectTimeout: number | null = null; 18 | private heartbeatTimeout: number | null = null; 19 | private readonly HEARTBEAT_INTERVAL = 15000; // 心跳间隔 20 | private readonly HEARTBEAT_TIMEOUT = 5000; // 心跳超时 21 | private messageHandlers: Map void> = new Map(); 22 | 23 | private constructor() {} 24 | 25 | // 单例 26 | static getInstance(): WebSocketService { 27 | if (!WebSocketService.instance) { 28 | WebSocketService.instance = new WebSocketService(); 29 | } 30 | return WebSocketService.instance; 31 | } 32 | 33 | // 心跳 34 | private startHeartbeat() { 35 | if (this.heartbeatInterval) { 36 | clearInterval(this.heartbeatInterval); 37 | } 38 | this.heartbeatInterval = window.setInterval(() => { 39 | if (this.ws && this.ws.readyState === WebSocket.OPEN) { 40 | this.ws.send("ping"); 41 | // Clear previous timeout 42 | if (this.heartbeatTimeout) { 43 | clearTimeout(this.heartbeatTimeout); 44 | } 45 | // Set timeout for pong response 46 | this.heartbeatTimeout = window.setTimeout(() => { 47 | console.log("Heartbeat timeout - no pong received"); 48 | if (this.ws) { 49 | this.ws.close(); 50 | } 51 | }, this.HEARTBEAT_TIMEOUT); 52 | } 53 | }, this.HEARTBEAT_INTERVAL); 54 | } 55 | 56 | private stopHeartbeat() { 57 | if (this.heartbeatInterval) { 58 | clearInterval(this.heartbeatInterval); 59 | this.heartbeatInterval = null; 60 | } 61 | if (this.heartbeatTimeout) { 62 | clearTimeout(this.heartbeatTimeout); 63 | this.heartbeatTimeout = null; 64 | } 65 | } 66 | 67 | private scheduleReconnect() { 68 | if (this.reconnectAttempts >= this.maxReconnectAttempts) { 69 | this.updateState("disconnected"); 70 | return; 71 | } 72 | // Exponential backoff 指数退避 73 | const backoffTime = Math.min( 74 | 1000 * 2 ** this.reconnectAttempts, 75 | this.maxRetryInterval, 76 | ); 77 | if (this.reconnectTimeout) { 78 | clearTimeout(this.reconnectTimeout); 79 | } 80 | this.reconnectTimeout = window.setTimeout(() => { 81 | this.reconnectAttempts++; 82 | this.reconnect(); 83 | }, backoffTime); 84 | } 85 | 86 | private updateState(status: WebSocketState) { 87 | useWebSocketStore.getState().setWebSocketState(status); 88 | } 89 | 90 | private getConnection(): WebSocket | null { 91 | return this.ws; 92 | } 93 | 94 | // 连接 95 | connect(url: string) { 96 | this.url = url; 97 | if (this.ws && this.ws.readyState === WebSocket.OPEN) { 98 | // 已连接 99 | this.updateState("connected"); 100 | return this.ws; 101 | } 102 | if (this.ws) { 103 | this.ws.close(); 104 | this.ws = null; 105 | } 106 | this.ws = new WebSocket(this.url); 107 | // 连接中 108 | this.updateState("connecting"); 109 | 110 | this.ws.onopen = () => { 111 | this.reconnectAttempts = 0; // 重置重连次数 112 | this.updateState("connected"); // 连接成功 113 | this.startHeartbeat(); // 开始心跳 114 | }; 115 | 116 | this.ws.onclose = () => { 117 | this.updateState("disconnected"); // 连接断开 118 | this.stopHeartbeat(); // 停止心跳 119 | this.scheduleReconnect(); // 调度重连 120 | }; 121 | this.ws.onerror = (error) => { 122 | this.updateState("disconnected"); 123 | }; 124 | 125 | this.ws.onmessage = (msg) => { 126 | // 心跳 127 | if (msg.data === "pong") { 128 | if (this.heartbeatTimeout) { 129 | clearTimeout(this.heartbeatTimeout); 130 | this.heartbeatTimeout = null; 131 | } 132 | return; 133 | } 134 | if (msg.data === "ping") { 135 | this.ws?.send("pong"); 136 | return; 137 | } 138 | // 消息 139 | try { 140 | const data = JSON.parse(msg.data); 141 | const handler = this.messageHandlers.get(data.type); 142 | if (handler) { 143 | handler(data); 144 | } else { 145 | console.log("unknown message type: ", data.type); 146 | } 147 | } catch (error) { 148 | console.error("Failed to parse message:", error); 149 | } 150 | }; 151 | return this.ws; 152 | } 153 | 154 | reconnect() { 155 | if (this.url) { 156 | if (this.ws && this.ws.readyState === WebSocket.OPEN) { 157 | console.log("ws already connected, skip reconnect"); 158 | return; 159 | } 160 | if (this.ws) { 161 | this.ws.close(); 162 | this.ws = null; 163 | } 164 | this.connect(this.url); 165 | } 166 | } 167 | 168 | disconnect() { 169 | this.stopHeartbeat(); 170 | if (this.reconnectTimeout) { 171 | clearTimeout(this.reconnectTimeout); 172 | this.reconnectTimeout = null; 173 | } 174 | if (this.ws) { 175 | this.ws.close(); 176 | this.ws = null; 177 | } 178 | this.url = null; // Clear the url 179 | this.reconnectAttempts = 0; 180 | } 181 | 182 | sendMessage(msg: WebSocketMessage) { 183 | const ws = this.getConnection(); 184 | if (!ws) return; 185 | ws.send(JSON.stringify(msg)); 186 | } 187 | 188 | // 注册消息处理器 189 | registerHandler(type: string, handler: (data: any) => void) { 190 | this.messageHandlers.set(type, handler); 191 | } 192 | 193 | isConnected(): boolean { 194 | return this.ws?.readyState === WebSocket.OPEN; 195 | } 196 | 197 | isConnecting(): boolean { 198 | return this.ws?.readyState === WebSocket.CONNECTING; 199 | } 200 | } 201 | 202 | export const webSocketService = WebSocketService.getInstance(); 203 | -------------------------------------------------------------------------------- /app/stores/auth.ts: -------------------------------------------------------------------------------- 1 | import { create } from "zustand"; 2 | import { persist } from "zustand/middleware"; 3 | 4 | interface AuthState { 5 | id: string; 6 | setId: (id: string) => void; 7 | } 8 | 9 | export const useAuthStore = create()( 10 | persist( 11 | (set) => ({ 12 | id: "", 13 | setId: (id) => set({ id }), 14 | }), 15 | { 16 | name: "auth", 17 | }, 18 | ), 19 | ); 20 | -------------------------------------------------------------------------------- /app/stores/webRTC.ts: -------------------------------------------------------------------------------- 1 | import { create } from "zustand"; 2 | 3 | interface WebRTCStore { 4 | connectionState?: RTCPeerConnectionState; 5 | remoteStream?: MediaStream; 6 | setConnectionState: (state: RTCPeerConnectionState) => void; 7 | setRemoteStream: (stream: MediaStream | undefined) => void; 8 | reset: () => void; 9 | } 10 | 11 | export const useWebRTCStore = create((set, get) => ({ 12 | connectionState: undefined, 13 | remoteStream: undefined, 14 | setConnectionState: (connectionState) => set({ connectionState }), 15 | setRemoteStream: (remoteStream) => set({ remoteStream }), 16 | reset: () => { 17 | set({ 18 | connectionState: undefined, 19 | remoteStream: undefined, 20 | }); 21 | }, 22 | })); 23 | -------------------------------------------------------------------------------- /app/stores/webSocket.ts: -------------------------------------------------------------------------------- 1 | import { create } from "zustand"; 2 | 3 | export type WebSocketState = 4 | | "disconnected" 5 | | "connecting" 6 | | "connected" 7 | | "reconnecting"; 8 | 9 | interface WebSocketStore { 10 | webSocketState: WebSocketState; 11 | setWebSocketState: (state: WebSocketState) => void; 12 | } 13 | 14 | export const useWebSocketStore = create((set) => ({ 15 | webSocketState: "disconnected", 16 | setWebSocketState: (state) => set({ webSocketState: state }), 17 | })); 18 | -------------------------------------------------------------------------------- /biome.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", 3 | "vcs": { 4 | "enabled": false, 5 | "clientKind": "git", 6 | "useIgnoreFile": false 7 | }, 8 | "files": { 9 | "ignoreUnknown": false, 10 | "ignore": [] 11 | }, 12 | "formatter": { 13 | "enabled": true, 14 | "indentStyle": "tab" 15 | }, 16 | "organizeImports": { 17 | "enabled": true 18 | }, 19 | "linter": { 20 | "enabled": true, 21 | "rules": { 22 | "recommended": true 23 | } 24 | }, 25 | "javascript": { 26 | "formatter": { 27 | "quoteStyle": "double" 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "airmirror", 3 | "private": true, 4 | "type": "module", 5 | "scripts": { 6 | "build": "cross-env NODE_ENV=production react-router build", 7 | "dev": "react-router dev", 8 | "start": "cross-env NODE_ENV=production react-router-serve ./build/server/index.js", 9 | "typecheck": "react-router typegen && tsc", 10 | "format": "biome format --write ." 11 | }, 12 | "dependencies": { 13 | "@chakra-ui/react": "^3.2.5", 14 | "@hookform/resolvers": "^3.9.1", 15 | "@react-router/node": "^7.1.1", 16 | "@react-router/serve": "^7.1.1", 17 | "isbot": "^5.1.17", 18 | "lucide-react": "^0.469.0", 19 | "nanoid": "^5.0.9", 20 | "react": "^19.0.0", 21 | "react-dom": "^19.0.0", 22 | "react-hook-form": "^7.54.2", 23 | "react-icons": "^5.4.0", 24 | "react-router": "^7.1.1", 25 | "zod": "^3.24.1", 26 | "zustand": "^5.0.2" 27 | }, 28 | "devDependencies": { 29 | "@biomejs/biome": "^1.9.4", 30 | "@react-router/dev": "^7.1.1", 31 | "@types/react": "^19.0.1", 32 | "@types/react-dom": "^19.0.1", 33 | "cross-env": "^7.0.3", 34 | "typescript": "^5.7.2", 35 | "vite": "^5.4.11", 36 | "vite-tsconfig-paths": "^5.1.4" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@chakra-ui/react': 12 | specifier: ^3.2.5 13 | version: 3.2.5(@emotion/react@11.14.0(@types/react@19.0.2)(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 14 | '@hookform/resolvers': 15 | specifier: ^3.9.1 16 | version: 3.9.1(react-hook-form@7.54.2(react@19.0.0)) 17 | '@react-router/node': 18 | specifier: ^7.1.1 19 | version: 7.1.1(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2) 20 | '@react-router/serve': 21 | specifier: ^7.1.1 22 | version: 7.1.1(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2) 23 | isbot: 24 | specifier: ^5.1.17 25 | version: 5.1.19 26 | lucide-react: 27 | specifier: ^0.469.0 28 | version: 0.469.0(react@19.0.0) 29 | nanoid: 30 | specifier: ^5.0.9 31 | version: 5.0.9 32 | react: 33 | specifier: ^19.0.0 34 | version: 19.0.0 35 | react-dom: 36 | specifier: ^19.0.0 37 | version: 19.0.0(react@19.0.0) 38 | react-hook-form: 39 | specifier: ^7.54.2 40 | version: 7.54.2(react@19.0.0) 41 | react-icons: 42 | specifier: ^5.4.0 43 | version: 5.4.0(react@19.0.0) 44 | react-router: 45 | specifier: ^7.1.1 46 | version: 7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 47 | zod: 48 | specifier: ^3.24.1 49 | version: 3.24.1 50 | zustand: 51 | specifier: ^5.0.2 52 | version: 5.0.2(@types/react@19.0.2)(react@19.0.0) 53 | devDependencies: 54 | '@biomejs/biome': 55 | specifier: ^1.9.4 56 | version: 1.9.4 57 | '@react-router/dev': 58 | specifier: ^7.1.1 59 | version: 7.1.1(@react-router/serve@7.1.1(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2))(@types/node@20.17.11)(babel-plugin-macros@3.1.0)(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2)(vite@5.4.11(@types/node@20.17.11)) 60 | '@types/react': 61 | specifier: ^19.0.1 62 | version: 19.0.2 63 | '@types/react-dom': 64 | specifier: ^19.0.1 65 | version: 19.0.2(@types/react@19.0.2) 66 | cross-env: 67 | specifier: ^7.0.3 68 | version: 7.0.3 69 | typescript: 70 | specifier: ^5.7.2 71 | version: 5.7.2 72 | vite: 73 | specifier: ^5.4.11 74 | version: 5.4.11(@types/node@20.17.11) 75 | vite-tsconfig-paths: 76 | specifier: ^5.1.4 77 | version: 5.1.4(typescript@5.7.2)(vite@5.4.11(@types/node@20.17.11)) 78 | 79 | packages: 80 | 81 | '@ampproject/remapping@2.3.0': 82 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 83 | engines: {node: '>=6.0.0'} 84 | 85 | '@ark-ui/react@4.6.0': 86 | resolution: {integrity: sha512-tOr0SdMwn1GrM5DzUC+ATLcGlvVVoan3g1rgYBZV/06LEKfs12+m0zbvJz9IpiOiy0dzBXvDQRgGsIlzL/6blg==} 87 | peerDependencies: 88 | react: '>=18.0.0' 89 | react-dom: '>=18.0.0' 90 | 91 | '@babel/code-frame@7.26.2': 92 | resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} 93 | engines: {node: '>=6.9.0'} 94 | 95 | '@babel/compat-data@7.26.3': 96 | resolution: {integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==} 97 | engines: {node: '>=6.9.0'} 98 | 99 | '@babel/core@7.26.0': 100 | resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} 101 | engines: {node: '>=6.9.0'} 102 | 103 | '@babel/generator@7.26.3': 104 | resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==} 105 | engines: {node: '>=6.9.0'} 106 | 107 | '@babel/helper-annotate-as-pure@7.25.9': 108 | resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} 109 | engines: {node: '>=6.9.0'} 110 | 111 | '@babel/helper-compilation-targets@7.25.9': 112 | resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} 113 | engines: {node: '>=6.9.0'} 114 | 115 | '@babel/helper-create-class-features-plugin@7.25.9': 116 | resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==} 117 | engines: {node: '>=6.9.0'} 118 | peerDependencies: 119 | '@babel/core': ^7.0.0 120 | 121 | '@babel/helper-member-expression-to-functions@7.25.9': 122 | resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} 123 | engines: {node: '>=6.9.0'} 124 | 125 | '@babel/helper-module-imports@7.25.9': 126 | resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} 127 | engines: {node: '>=6.9.0'} 128 | 129 | '@babel/helper-module-transforms@7.26.0': 130 | resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} 131 | engines: {node: '>=6.9.0'} 132 | peerDependencies: 133 | '@babel/core': ^7.0.0 134 | 135 | '@babel/helper-optimise-call-expression@7.25.9': 136 | resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} 137 | engines: {node: '>=6.9.0'} 138 | 139 | '@babel/helper-plugin-utils@7.25.9': 140 | resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} 141 | engines: {node: '>=6.9.0'} 142 | 143 | '@babel/helper-replace-supers@7.25.9': 144 | resolution: {integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==} 145 | engines: {node: '>=6.9.0'} 146 | peerDependencies: 147 | '@babel/core': ^7.0.0 148 | 149 | '@babel/helper-skip-transparent-expression-wrappers@7.25.9': 150 | resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} 151 | engines: {node: '>=6.9.0'} 152 | 153 | '@babel/helper-string-parser@7.25.9': 154 | resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} 155 | engines: {node: '>=6.9.0'} 156 | 157 | '@babel/helper-validator-identifier@7.25.9': 158 | resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} 159 | engines: {node: '>=6.9.0'} 160 | 161 | '@babel/helper-validator-option@7.25.9': 162 | resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} 163 | engines: {node: '>=6.9.0'} 164 | 165 | '@babel/helpers@7.26.0': 166 | resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} 167 | engines: {node: '>=6.9.0'} 168 | 169 | '@babel/parser@7.26.3': 170 | resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} 171 | engines: {node: '>=6.0.0'} 172 | hasBin: true 173 | 174 | '@babel/plugin-syntax-decorators@7.25.9': 175 | resolution: {integrity: sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==} 176 | engines: {node: '>=6.9.0'} 177 | peerDependencies: 178 | '@babel/core': ^7.0.0-0 179 | 180 | '@babel/plugin-syntax-jsx@7.25.9': 181 | resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} 182 | engines: {node: '>=6.9.0'} 183 | peerDependencies: 184 | '@babel/core': ^7.0.0-0 185 | 186 | '@babel/plugin-syntax-typescript@7.25.9': 187 | resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} 188 | engines: {node: '>=6.9.0'} 189 | peerDependencies: 190 | '@babel/core': ^7.0.0-0 191 | 192 | '@babel/plugin-transform-modules-commonjs@7.26.3': 193 | resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==} 194 | engines: {node: '>=6.9.0'} 195 | peerDependencies: 196 | '@babel/core': ^7.0.0-0 197 | 198 | '@babel/plugin-transform-typescript@7.26.3': 199 | resolution: {integrity: sha512-6+5hpdr6mETwSKjmJUdYw0EIkATiQhnELWlE3kJFBwSg/BGIVwVaVbX+gOXBCdc7Ln1RXZxyWGecIXhUfnl7oA==} 200 | engines: {node: '>=6.9.0'} 201 | peerDependencies: 202 | '@babel/core': ^7.0.0-0 203 | 204 | '@babel/preset-typescript@7.26.0': 205 | resolution: {integrity: sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==} 206 | engines: {node: '>=6.9.0'} 207 | peerDependencies: 208 | '@babel/core': ^7.0.0-0 209 | 210 | '@babel/runtime@7.26.0': 211 | resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} 212 | engines: {node: '>=6.9.0'} 213 | 214 | '@babel/template@7.25.9': 215 | resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} 216 | engines: {node: '>=6.9.0'} 217 | 218 | '@babel/traverse@7.26.4': 219 | resolution: {integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==} 220 | engines: {node: '>=6.9.0'} 221 | 222 | '@babel/types@7.26.3': 223 | resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} 224 | engines: {node: '>=6.9.0'} 225 | 226 | '@biomejs/biome@1.9.4': 227 | resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} 228 | engines: {node: '>=14.21.3'} 229 | hasBin: true 230 | 231 | '@biomejs/cli-darwin-arm64@1.9.4': 232 | resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==} 233 | engines: {node: '>=14.21.3'} 234 | cpu: [arm64] 235 | os: [darwin] 236 | 237 | '@biomejs/cli-darwin-x64@1.9.4': 238 | resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==} 239 | engines: {node: '>=14.21.3'} 240 | cpu: [x64] 241 | os: [darwin] 242 | 243 | '@biomejs/cli-linux-arm64-musl@1.9.4': 244 | resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==} 245 | engines: {node: '>=14.21.3'} 246 | cpu: [arm64] 247 | os: [linux] 248 | 249 | '@biomejs/cli-linux-arm64@1.9.4': 250 | resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==} 251 | engines: {node: '>=14.21.3'} 252 | cpu: [arm64] 253 | os: [linux] 254 | 255 | '@biomejs/cli-linux-x64-musl@1.9.4': 256 | resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==} 257 | engines: {node: '>=14.21.3'} 258 | cpu: [x64] 259 | os: [linux] 260 | 261 | '@biomejs/cli-linux-x64@1.9.4': 262 | resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==} 263 | engines: {node: '>=14.21.3'} 264 | cpu: [x64] 265 | os: [linux] 266 | 267 | '@biomejs/cli-win32-arm64@1.9.4': 268 | resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==} 269 | engines: {node: '>=14.21.3'} 270 | cpu: [arm64] 271 | os: [win32] 272 | 273 | '@biomejs/cli-win32-x64@1.9.4': 274 | resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==} 275 | engines: {node: '>=14.21.3'} 276 | cpu: [x64] 277 | os: [win32] 278 | 279 | '@chakra-ui/react@3.2.5': 280 | resolution: {integrity: sha512-ZoKHxHSdbnkybrem4D6TfQUCGcrLsZno/eYzK3msKPO7J6UF6ScWkDaDz2fjVn2SAE5B/lM10d71BB+5ENxiBw==} 281 | peerDependencies: 282 | '@emotion/react': '>=11' 283 | react: '>=18' 284 | react-dom: '>=18' 285 | 286 | '@emotion/babel-plugin@11.13.5': 287 | resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} 288 | 289 | '@emotion/cache@11.14.0': 290 | resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==} 291 | 292 | '@emotion/hash@0.9.2': 293 | resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} 294 | 295 | '@emotion/is-prop-valid@1.3.1': 296 | resolution: {integrity: sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==} 297 | 298 | '@emotion/memoize@0.9.0': 299 | resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} 300 | 301 | '@emotion/react@11.14.0': 302 | resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==} 303 | peerDependencies: 304 | '@types/react': '*' 305 | react: '>=16.8.0' 306 | peerDependenciesMeta: 307 | '@types/react': 308 | optional: true 309 | 310 | '@emotion/serialize@1.3.3': 311 | resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==} 312 | 313 | '@emotion/sheet@1.4.0': 314 | resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} 315 | 316 | '@emotion/unitless@0.10.0': 317 | resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} 318 | 319 | '@emotion/use-insertion-effect-with-fallbacks@1.2.0': 320 | resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==} 321 | peerDependencies: 322 | react: '>=16.8.0' 323 | 324 | '@emotion/utils@1.4.2': 325 | resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} 326 | 327 | '@emotion/weak-memoize@0.4.0': 328 | resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} 329 | 330 | '@esbuild/aix-ppc64@0.21.5': 331 | resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} 332 | engines: {node: '>=12'} 333 | cpu: [ppc64] 334 | os: [aix] 335 | 336 | '@esbuild/android-arm64@0.21.5': 337 | resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} 338 | engines: {node: '>=12'} 339 | cpu: [arm64] 340 | os: [android] 341 | 342 | '@esbuild/android-arm@0.21.5': 343 | resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} 344 | engines: {node: '>=12'} 345 | cpu: [arm] 346 | os: [android] 347 | 348 | '@esbuild/android-x64@0.21.5': 349 | resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} 350 | engines: {node: '>=12'} 351 | cpu: [x64] 352 | os: [android] 353 | 354 | '@esbuild/darwin-arm64@0.21.5': 355 | resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} 356 | engines: {node: '>=12'} 357 | cpu: [arm64] 358 | os: [darwin] 359 | 360 | '@esbuild/darwin-x64@0.21.5': 361 | resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} 362 | engines: {node: '>=12'} 363 | cpu: [x64] 364 | os: [darwin] 365 | 366 | '@esbuild/freebsd-arm64@0.21.5': 367 | resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} 368 | engines: {node: '>=12'} 369 | cpu: [arm64] 370 | os: [freebsd] 371 | 372 | '@esbuild/freebsd-x64@0.21.5': 373 | resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} 374 | engines: {node: '>=12'} 375 | cpu: [x64] 376 | os: [freebsd] 377 | 378 | '@esbuild/linux-arm64@0.21.5': 379 | resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} 380 | engines: {node: '>=12'} 381 | cpu: [arm64] 382 | os: [linux] 383 | 384 | '@esbuild/linux-arm@0.21.5': 385 | resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} 386 | engines: {node: '>=12'} 387 | cpu: [arm] 388 | os: [linux] 389 | 390 | '@esbuild/linux-ia32@0.21.5': 391 | resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} 392 | engines: {node: '>=12'} 393 | cpu: [ia32] 394 | os: [linux] 395 | 396 | '@esbuild/linux-loong64@0.21.5': 397 | resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} 398 | engines: {node: '>=12'} 399 | cpu: [loong64] 400 | os: [linux] 401 | 402 | '@esbuild/linux-mips64el@0.21.5': 403 | resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} 404 | engines: {node: '>=12'} 405 | cpu: [mips64el] 406 | os: [linux] 407 | 408 | '@esbuild/linux-ppc64@0.21.5': 409 | resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} 410 | engines: {node: '>=12'} 411 | cpu: [ppc64] 412 | os: [linux] 413 | 414 | '@esbuild/linux-riscv64@0.21.5': 415 | resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} 416 | engines: {node: '>=12'} 417 | cpu: [riscv64] 418 | os: [linux] 419 | 420 | '@esbuild/linux-s390x@0.21.5': 421 | resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} 422 | engines: {node: '>=12'} 423 | cpu: [s390x] 424 | os: [linux] 425 | 426 | '@esbuild/linux-x64@0.21.5': 427 | resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} 428 | engines: {node: '>=12'} 429 | cpu: [x64] 430 | os: [linux] 431 | 432 | '@esbuild/netbsd-x64@0.21.5': 433 | resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} 434 | engines: {node: '>=12'} 435 | cpu: [x64] 436 | os: [netbsd] 437 | 438 | '@esbuild/openbsd-x64@0.21.5': 439 | resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} 440 | engines: {node: '>=12'} 441 | cpu: [x64] 442 | os: [openbsd] 443 | 444 | '@esbuild/sunos-x64@0.21.5': 445 | resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} 446 | engines: {node: '>=12'} 447 | cpu: [x64] 448 | os: [sunos] 449 | 450 | '@esbuild/win32-arm64@0.21.5': 451 | resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} 452 | engines: {node: '>=12'} 453 | cpu: [arm64] 454 | os: [win32] 455 | 456 | '@esbuild/win32-ia32@0.21.5': 457 | resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} 458 | engines: {node: '>=12'} 459 | cpu: [ia32] 460 | os: [win32] 461 | 462 | '@esbuild/win32-x64@0.21.5': 463 | resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} 464 | engines: {node: '>=12'} 465 | cpu: [x64] 466 | os: [win32] 467 | 468 | '@floating-ui/core@1.6.8': 469 | resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} 470 | 471 | '@floating-ui/dom@1.6.12': 472 | resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==} 473 | 474 | '@floating-ui/utils@0.2.8': 475 | resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} 476 | 477 | '@hookform/resolvers@3.9.1': 478 | resolution: {integrity: sha512-ud2HqmGBM0P0IABqoskKWI6PEf6ZDDBZkFqe2Vnl+mTHCEHzr3ISjjZyCwTjC/qpL25JC9aIDkloQejvMeq0ug==} 479 | peerDependencies: 480 | react-hook-form: ^7.0.0 481 | 482 | '@internationalized/date@3.6.0': 483 | resolution: {integrity: sha512-+z6ti+CcJnRlLHok/emGEsWQhe7kfSmEW+/6qCzvKY67YPh7YOBfvc7+/+NXq+zJlbArg30tYpqLjNgcAYv2YQ==} 484 | 485 | '@internationalized/number@3.6.0': 486 | resolution: {integrity: sha512-PtrRcJVy7nw++wn4W2OuePQQfTqDzfusSuY1QTtui4wa7r+rGVtR75pO8CyKvHvzyQYi3Q1uO5sY0AsB4e65Bw==} 487 | 488 | '@isaacs/cliui@8.0.2': 489 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 490 | engines: {node: '>=12'} 491 | 492 | '@jridgewell/gen-mapping@0.3.8': 493 | resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} 494 | engines: {node: '>=6.0.0'} 495 | 496 | '@jridgewell/resolve-uri@3.1.2': 497 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 498 | engines: {node: '>=6.0.0'} 499 | 500 | '@jridgewell/set-array@1.2.1': 501 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 502 | engines: {node: '>=6.0.0'} 503 | 504 | '@jridgewell/sourcemap-codec@1.5.0': 505 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 506 | 507 | '@jridgewell/trace-mapping@0.3.25': 508 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 509 | 510 | '@mjackson/node-fetch-server@0.2.0': 511 | resolution: {integrity: sha512-EMlH1e30yzmTpGLQjlFmaDAjyOeZhng1/XCd7DExR8PNAnG/G1tyruZxEoUe11ClnwGhGrtsdnyyUx1frSzjng==} 512 | 513 | '@npmcli/git@4.1.0': 514 | resolution: {integrity: sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==} 515 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 516 | 517 | '@npmcli/package-json@4.0.1': 518 | resolution: {integrity: sha512-lRCEGdHZomFsURroh522YvA/2cVb9oPIJrjHanCJZkiasz1BzcnLr3tBJhlV7S86MBJBuAQ33is2D60YitZL2Q==} 519 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 520 | 521 | '@npmcli/promise-spawn@6.0.2': 522 | resolution: {integrity: sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==} 523 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 524 | 525 | '@pandacss/is-valid-prop@0.41.0': 526 | resolution: {integrity: sha512-BE6h6CsJk14ugIRrsazJtN3fcg+KDFRat1Bs93YFKH6jd4DOb1yUyVvC70jKqPVvg70zEcV8acZ7VdcU5TLu+w==} 527 | 528 | '@pkgjs/parseargs@0.11.0': 529 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 530 | engines: {node: '>=14'} 531 | 532 | '@react-router/dev@7.1.1': 533 | resolution: {integrity: sha512-+UCrQZBAmdRcC7Bx1ho89T/DeP+FzEErkzrTvdBCpstr8AzOQ6mKlaglXGty15o3fgihBSFF4/J67jGveYIR8Q==} 534 | engines: {node: '>=20.0.0'} 535 | hasBin: true 536 | peerDependencies: 537 | '@react-router/serve': ^7.1.1 538 | react-router: ^7.1.1 539 | typescript: ^5.1.0 540 | vite: ^5.1.0 || ^6.0.0 541 | wrangler: ^3.28.2 542 | peerDependenciesMeta: 543 | '@react-router/serve': 544 | optional: true 545 | typescript: 546 | optional: true 547 | wrangler: 548 | optional: true 549 | 550 | '@react-router/express@7.1.1': 551 | resolution: {integrity: sha512-oiL2ADor3byuh7piajLTPr6007GmVPZ1Gh4HiN0uuZlz3vQ1rd0xZMSD9LnSrXhsrKEbPFaeCk8E2O67ZoABsg==} 552 | engines: {node: '>=20.0.0'} 553 | peerDependencies: 554 | express: ^4.17.1 555 | react-router: 7.1.1 556 | typescript: ^5.1.0 557 | peerDependenciesMeta: 558 | typescript: 559 | optional: true 560 | 561 | '@react-router/node@7.1.1': 562 | resolution: {integrity: sha512-5X79SfJ1IEEsttt0oo9rhO9kgxXyBTKdVBsz3h0WHTkRzbRk0VEpVpBW3PQ1RpkgEaAHwJ8obVl4k4brdDSExA==} 563 | engines: {node: '>=20.0.0'} 564 | peerDependencies: 565 | react-router: 7.1.1 566 | typescript: ^5.1.0 567 | peerDependenciesMeta: 568 | typescript: 569 | optional: true 570 | 571 | '@react-router/serve@7.1.1': 572 | resolution: {integrity: sha512-rhV1yp72ZZQn4giQUzUiLVo/7/7dhxD98Z5pdDm6mKOTJPGoQ8TBPccQaKxzJIFNRHcn0sEdehfLOxl5ydnUKw==} 573 | engines: {node: '>=20.0.0'} 574 | hasBin: true 575 | peerDependencies: 576 | react-router: 7.1.1 577 | 578 | '@rollup/rollup-android-arm-eabi@4.29.1': 579 | resolution: {integrity: sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==} 580 | cpu: [arm] 581 | os: [android] 582 | 583 | '@rollup/rollup-android-arm64@4.29.1': 584 | resolution: {integrity: sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==} 585 | cpu: [arm64] 586 | os: [android] 587 | 588 | '@rollup/rollup-darwin-arm64@4.29.1': 589 | resolution: {integrity: sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==} 590 | cpu: [arm64] 591 | os: [darwin] 592 | 593 | '@rollup/rollup-darwin-x64@4.29.1': 594 | resolution: {integrity: sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==} 595 | cpu: [x64] 596 | os: [darwin] 597 | 598 | '@rollup/rollup-freebsd-arm64@4.29.1': 599 | resolution: {integrity: sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==} 600 | cpu: [arm64] 601 | os: [freebsd] 602 | 603 | '@rollup/rollup-freebsd-x64@4.29.1': 604 | resolution: {integrity: sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==} 605 | cpu: [x64] 606 | os: [freebsd] 607 | 608 | '@rollup/rollup-linux-arm-gnueabihf@4.29.1': 609 | resolution: {integrity: sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==} 610 | cpu: [arm] 611 | os: [linux] 612 | 613 | '@rollup/rollup-linux-arm-musleabihf@4.29.1': 614 | resolution: {integrity: sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==} 615 | cpu: [arm] 616 | os: [linux] 617 | 618 | '@rollup/rollup-linux-arm64-gnu@4.29.1': 619 | resolution: {integrity: sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==} 620 | cpu: [arm64] 621 | os: [linux] 622 | 623 | '@rollup/rollup-linux-arm64-musl@4.29.1': 624 | resolution: {integrity: sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==} 625 | cpu: [arm64] 626 | os: [linux] 627 | 628 | '@rollup/rollup-linux-loongarch64-gnu@4.29.1': 629 | resolution: {integrity: sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==} 630 | cpu: [loong64] 631 | os: [linux] 632 | 633 | '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': 634 | resolution: {integrity: sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==} 635 | cpu: [ppc64] 636 | os: [linux] 637 | 638 | '@rollup/rollup-linux-riscv64-gnu@4.29.1': 639 | resolution: {integrity: sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==} 640 | cpu: [riscv64] 641 | os: [linux] 642 | 643 | '@rollup/rollup-linux-s390x-gnu@4.29.1': 644 | resolution: {integrity: sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==} 645 | cpu: [s390x] 646 | os: [linux] 647 | 648 | '@rollup/rollup-linux-x64-gnu@4.29.1': 649 | resolution: {integrity: sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==} 650 | cpu: [x64] 651 | os: [linux] 652 | 653 | '@rollup/rollup-linux-x64-musl@4.29.1': 654 | resolution: {integrity: sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==} 655 | cpu: [x64] 656 | os: [linux] 657 | 658 | '@rollup/rollup-win32-arm64-msvc@4.29.1': 659 | resolution: {integrity: sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==} 660 | cpu: [arm64] 661 | os: [win32] 662 | 663 | '@rollup/rollup-win32-ia32-msvc@4.29.1': 664 | resolution: {integrity: sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==} 665 | cpu: [ia32] 666 | os: [win32] 667 | 668 | '@rollup/rollup-win32-x64-msvc@4.29.1': 669 | resolution: {integrity: sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==} 670 | cpu: [x64] 671 | os: [win32] 672 | 673 | '@swc/helpers@0.5.15': 674 | resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} 675 | 676 | '@types/cookie@0.6.0': 677 | resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} 678 | 679 | '@types/estree@1.0.6': 680 | resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} 681 | 682 | '@types/node@20.17.11': 683 | resolution: {integrity: sha512-Ept5glCK35R8yeyIeYlRIZtX6SLRyqMhOFTgj5SOkMpLTdw3SEHI9fHx60xaUZ+V1aJxQJODE+7/j5ocZydYTg==} 684 | 685 | '@types/parse-json@4.0.2': 686 | resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} 687 | 688 | '@types/react-dom@19.0.2': 689 | resolution: {integrity: sha512-c1s+7TKFaDRRxr1TxccIX2u7sfCnc3RxkVyBIUA2lCpyqCF+QoAwQ/CBg7bsMdVwP120HEH143VQezKtef5nCg==} 690 | peerDependencies: 691 | '@types/react': ^19.0.0 692 | 693 | '@types/react@19.0.2': 694 | resolution: {integrity: sha512-USU8ZI/xyKJwFTpjSVIrSeHBVAGagkHQKPNbxeWwql/vDmnTIBgx+TJnhFnj1NXgz8XfprU0egV2dROLGpsBEg==} 695 | 696 | '@zag-js/accordion@0.79.1': 697 | resolution: {integrity: sha512-GlyuRhc2Mwq0punW6dARPTM4EoIce4MxjNCuZLyMxEKt23xFEB5ICVNgz4X/4fyKu+0SaNpttztbBqzTv/fnpg==} 698 | 699 | '@zag-js/anatomy@0.79.1': 700 | resolution: {integrity: sha512-kdwGFERoVlxLfBKFVrtY/3UATaU/Tqyxe2DBiwccy9RcY8LQlVAoFuRRmK1hlV7Dz9IXrPoQEDYTNgSORz4NyA==} 701 | 702 | '@zag-js/aria-hidden@0.79.1': 703 | resolution: {integrity: sha512-UFp/u8ytJ4WASB1kUnJ+uJ/N6huRfIshAoRKnnfxJSE71QpJ0T8ncniuXv2L/rxjOXBr8nDRhRq9ZNZwwi69Vw==} 704 | 705 | '@zag-js/auto-resize@0.79.1': 706 | resolution: {integrity: sha512-eki2QeC3K7TLRizH7T/QKcIlwZnUMS+TsFO1fBJwWvW8oKESKfemWt05e6HsuORwVJGC/tkd2F5OTFGVVJXZkQ==} 707 | 708 | '@zag-js/avatar@0.79.1': 709 | resolution: {integrity: sha512-fPVJ1SDzZ9CqnyEXBwZpldrCC48mhwsjyWzjlid7NHlBYothSvjy9+C11FyDA9ms0ziwXMIXKbo2uSz3qfdgvg==} 710 | 711 | '@zag-js/carousel@0.79.1': 712 | resolution: {integrity: sha512-tc9BPbVWPutfJTw1WorgJxbMEQJN+7Ur5bkP+V5ght8BKl/wiHhaR6KFEGXVtQVgH/dUMaViFTX+OeGzegk6Wg==} 713 | 714 | '@zag-js/checkbox@0.79.1': 715 | resolution: {integrity: sha512-QF79sAfvJpw76+H5+7KkW3Lify8csV4CA9JLyGpL81m9LJTC8yeKXUnN5be9ZKjDKlNsg0INk9nVBI0a6Q037Q==} 716 | 717 | '@zag-js/clipboard@0.79.1': 718 | resolution: {integrity: sha512-LDIEAeaAm5lwWhijS+w4/Psa9rUppiarjKv6qPjNL2iBOGmlU2Tw2LukCbZpY4Sg12y7BqesyK0o+5BBjwetmg==} 719 | 720 | '@zag-js/collapsible@0.79.1': 721 | resolution: {integrity: sha512-NMg5zvWSrVq1uFA/TN/mRBYdsxw9/rWnaNSO0DT0h2gP+l5HUouz1wlz8Tkwa4VRhW0rrg20kGEhwAHZ8uPdrw==} 722 | 723 | '@zag-js/collection@0.79.1': 724 | resolution: {integrity: sha512-PeOqddL2M6+2cKJhTP3aahGxV4rJgwwGJz9hYVQs+H7+yHLDrG99vDpphWDL6g8kDlyQSpijwl5+gR/z52cw0A==} 725 | 726 | '@zag-js/color-picker@0.79.1': 727 | resolution: {integrity: sha512-2v0VX86G53kcB+OIjLDXK752iFM2GUQ1/UUHnLVXWvo5Wfi+Oa5wRDMaMDXt/nI35NU8C55k2Hnbk0dYTQZj5g==} 728 | 729 | '@zag-js/color-utils@0.79.1': 730 | resolution: {integrity: sha512-a+0HGl/vfhtTBEZzoLZjNVZMOMBFrDRXDZvkan1Wz6hk2oLHdgfpGoTt/Vu93A62queXlt2Q7gbn1mFocRNg7w==} 731 | 732 | '@zag-js/combobox@0.79.1': 733 | resolution: {integrity: sha512-elOshWIEHYqUfmbemnNF39xWinLwG5sQB+OgCaeo0Z9bc79yXHY83bOtquc3WceOasnqzpDeQeu19fmBmi+euw==} 734 | 735 | '@zag-js/core@0.79.1': 736 | resolution: {integrity: sha512-kfYas04BQnbdL46nDfBjELAHcba+Lq+D2xts1mKbFjgxb1HBDYh0mIngjilAP/8y2Pj2XsjuVlfn3wsuNldqCQ==} 737 | 738 | '@zag-js/date-picker@0.79.1': 739 | resolution: {integrity: sha512-IjSB7N4JmlKKNDOcIwoBdXNZCcjxO1AsDmty7k3mOJgGzsCGkxUY6kyTzB+HaTmr+6yyieu+4CrXmVueIEXn9w==} 740 | peerDependencies: 741 | '@internationalized/date': '>=3.0.0' 742 | 743 | '@zag-js/date-utils@0.79.1': 744 | resolution: {integrity: sha512-WKg2ks+G/sGgl/WaJu7OO9IYxFP2UdZq8yy0iMNIEQceIGCpYDjLr43Vov1+6mipQ9+oBgXxJQu4+VShpjyesA==} 745 | peerDependencies: 746 | '@internationalized/date': '>=3.0.0' 747 | 748 | '@zag-js/dialog@0.79.1': 749 | resolution: {integrity: sha512-OkOjAnElcxYBkylg/hXZaeKZGas5aNwKT6Tu2qnZp7bQpoNnECIkkpUMhYqJGRG+PGm1zIB8/J4oR/rUx6pdPA==} 750 | 751 | '@zag-js/dismissable@0.79.1': 752 | resolution: {integrity: sha512-KAEPoXKAZVztCKhKK6EuWnLqKfAfeE3ltUPGCV8eTPuYyPy6JsKl+pvumdmIJnMY0awi9IThLUwnDlPrg/UpuA==} 753 | 754 | '@zag-js/dom-event@0.79.1': 755 | resolution: {integrity: sha512-PMgtMfl7iPt9kbGMu8tgHYDSWBo/0bKOILWoKtuOZEsOI1QTud+8RhrYmWqvr/Go9W/99YmjzAIS4Dcd8jJDIg==} 756 | 757 | '@zag-js/dom-event@0.79.3': 758 | resolution: {integrity: sha512-L+D18nPdgLQvS7b1y+sDKE7DR+0AOirVg43XJ/p5/wBXvb5b5mOsVZw2dbeXIB/VFhObvPWNqPe7z2oqv6xfkQ==} 759 | 760 | '@zag-js/dom-query@0.79.1': 761 | resolution: {integrity: sha512-9z4IEK9q5m/yMyxoj8BPqIurMqRIvRiK2/nAY92n2mP3MTeTKf+AFpMHXGz7wArPx2NIRq+Q7TdfSMey3vKs2w==} 762 | 763 | '@zag-js/dom-query@0.79.3': 764 | resolution: {integrity: sha512-PMa5aEx71lP4i/Ip+YEtV7vDUu6QuLEyQF3UiO+tj0ijbmjZDVENERv7btVG0+ej+xhLlybdYwcTvTX6W3OvDA==} 765 | 766 | '@zag-js/editable@0.79.1': 767 | resolution: {integrity: sha512-sAK8CCb1L+jwUaxKpBIdtZWFuxCPUhx9pCtm2d2r9nbmsam3iFBbe52PjjcndEJcVB/n5TibUbfptkzI/4oGOQ==} 768 | 769 | '@zag-js/element-rect@0.79.1': 770 | resolution: {integrity: sha512-BO4n9vBB2MdEHYh6fxy5gMmJXwN65dt55xKxvQYUzrVI8ds2mHnQgDAVGwnZpnXvbXNAd2RLqjksketdhNIoBA==} 771 | 772 | '@zag-js/element-size@0.79.1': 773 | resolution: {integrity: sha512-a75L+5YBsubFgjyt/fnvZB/E00wUbDm3VM3JBdvWxX/7gyrazFMyC3kt8Yaf7GmoW8N+h8nZ4nbzhhHImFl8Ug==} 774 | 775 | '@zag-js/file-upload@0.79.1': 776 | resolution: {integrity: sha512-DnEIP34wVvH9F8F9qEUARP8rdMQCCtjiQX9WXHhqLJA5w3t+EVLL0zGtNASXqsUCWHiE4xCEJbgyHfSXYfcttA==} 777 | 778 | '@zag-js/file-utils@0.79.1': 779 | resolution: {integrity: sha512-Ss7A9vyDnw9gn0gSzO59JAsk3xb06mQTtGP1n9/iBi2ctkHLoeN41RTRPZ3jfSt4kRfUiK7Gon+y0VE/vUC9+w==} 780 | 781 | '@zag-js/focus-trap@0.79.1': 782 | resolution: {integrity: sha512-dofZPlwyBFYACmT6+afSOwcRgFFAJni3xMXL7qCb0E3LXYxbb7AgFIrSLNic0iMSfP4iAE1pd8THnQHdkH2tYQ==} 783 | 784 | '@zag-js/focus-visible@0.79.1': 785 | resolution: {integrity: sha512-yWNKy6ybkg6VA2uXarEg+1xIuz2iwbn9TD7FZXZPxDgd2RzUacXuyhhTJlENEwGVcweZQkg78XzOWUCbXR2+iQ==} 786 | 787 | '@zag-js/form-utils@0.79.1': 788 | resolution: {integrity: sha512-AcfqKWqlReo38OKQFlC2Jx6/wT7Zmx5x22C1dXN9TvxhvqolpiQPT7eZ/Un7xq4D55lhzdJOPfh/esQ+W6ErDQ==} 789 | 790 | '@zag-js/highlight-word@0.79.1': 791 | resolution: {integrity: sha512-D3yt9BmBUPMXZngIKxEFJO/D7sX/+3Dd3hcOPOilJD3gP9IFPZCC2YHkXUXJ/cv9kyzXdweAOAJY7b6bJST0dQ==} 792 | 793 | '@zag-js/hover-card@0.79.1': 794 | resolution: {integrity: sha512-QHMKCT56Gh+eqdhVFaApXqY1jXh2R+ROM3g5Qif06woN8/1tk4OmgsAx1TwSK7nPWp3iNqiSZUq6x9yZ3GFqCg==} 795 | 796 | '@zag-js/i18n-utils@0.79.1': 797 | resolution: {integrity: sha512-jw7oARe27Fy/6sRiRmX6nf86HxZ6nXW1jfEBc8X0Ciebm+IIowZbWywpHZJKDi9wlnWOsK6XxC1rINId453NVg==} 798 | 799 | '@zag-js/interact-outside@0.79.1': 800 | resolution: {integrity: sha512-baNBMvlv9GuMGt+Dj4JOuOj1djEHXTR1UruWn+6TNuwqKlYtB0jJY+qCjLvFxldfAaQU0i6oD3l6in5E86TEIg==} 801 | 802 | '@zag-js/live-region@0.79.1': 803 | resolution: {integrity: sha512-VnU/fem0/Ue9Cgqk+eVTgCu8QqnlixBBUay+PceFbsBjWl3jcA9cXSnwhP/lQzwdq958foEqh/N4fD+wDc9SBA==} 804 | 805 | '@zag-js/menu@0.79.1': 806 | resolution: {integrity: sha512-0Oryb9QRCRlu+Y1jndZdt4lTwZ4BZXiwHXsW6XF1uekks0C/AKbVzVUYUAQME58CFDbeMzf+wigQqsm+fuq0Xg==} 807 | 808 | '@zag-js/number-input@0.79.1': 809 | resolution: {integrity: sha512-oJXx8yA86WtMdIMCQdWbviPXQuE8HfOYhgEKBSliVjH1d3hBXTZjhYIrvfy/0x1M7sYWb/J+0Bt+AOzSj9t2dQ==} 810 | 811 | '@zag-js/number-utils@0.79.1': 812 | resolution: {integrity: sha512-SHmbXDkMBcTMtl+X7kQd55/a5JpRKzZZ2Gq1Ve8y2CoVKErX2mFHDR2nY8SBpwBO3J5/OoE5MTyNQ0slaRUi9w==} 813 | 814 | '@zag-js/numeric-range@0.79.1': 815 | resolution: {integrity: sha512-4bwwjqi/o2AwbPNlP25LY2z6OX8y9unOg+V+TfXjtAL/Ml1q0CMuvle4CxVm/gNBedvP9TrbmYzpj6SfxiXRGA==} 816 | 817 | '@zag-js/pagination@0.79.1': 818 | resolution: {integrity: sha512-kM93D+7kpHXz9Gea6ZkxywNBPVcCEfN1EhdJ/qQodvmHUoBpCR9/CiQFrxx1wznSz3W4Nagrg8LEqCu5+JjZwQ==} 819 | 820 | '@zag-js/pin-input@0.79.1': 821 | resolution: {integrity: sha512-uZ+rDDuLH1x03kA0rRa+vBjZT3p4c7ytoXp/XP2bcKw+QlrBtjijmXED3kw4Bp/oOkov4jRWERtGqj+8Ptz1tA==} 822 | 823 | '@zag-js/popover@0.79.1': 824 | resolution: {integrity: sha512-DCTwrL4PBQX0LVmn6GIv3t931QKZxztkzIZ6jKD1Tn/tu+d6dkdAaw8Ebp55xuK2mKKA9k0eKeUdI3p4ja91Hw==} 825 | 826 | '@zag-js/popper@0.79.1': 827 | resolution: {integrity: sha512-kvvkB4Z1auLguPWi5ed36E14V3Vs57dNjD9p6Kwugb/dYrGUXA1n7FTC6qgZ8IZKNF0xb5FN3Wx527u/n+OPwg==} 828 | 829 | '@zag-js/presence@0.79.1': 830 | resolution: {integrity: sha512-YJPFfqFCXs6vMVT/1w5gI60RcnC/JUz+FZRVXA8ElffStn/73HeKNa7XORX2Q2noEkRGEU5LUtkHzoiSxsmVAA==} 831 | 832 | '@zag-js/progress@0.79.1': 833 | resolution: {integrity: sha512-AsFoJOMyRdNW9ELhliMCqTNBvlKMvACQyolxzMn/5Lo6BsdDKGcGqTrhmc9OwgFYq9EAfrocrRs/ks2j6OGzaQ==} 834 | 835 | '@zag-js/qr-code@0.79.1': 836 | resolution: {integrity: sha512-qkBvAUEQLm2gEUkFZMOL12xH9vB55Y0NEU2G7T9MlTsaRjkvRApzcqrFgL90+EYuvXVSHBYnXNPHhFTTMqCZ0A==} 837 | 838 | '@zag-js/radio-group@0.79.1': 839 | resolution: {integrity: sha512-Lcci+UQVpqbvlJOxHMzxbAGILezBwedW3Q3SARs7AydLnikKh97CKidjEIsYdikN/fCb4dCtvAx5n3W2Flw7Pg==} 840 | 841 | '@zag-js/rating-group@0.79.1': 842 | resolution: {integrity: sha512-biwSdA42vmCW36Ys4Nr48uWt2tSmd0DHBhfo3yfH0cc8r6qDx85vj1TgHIOq89mPfrFLPvMR5/isWcw0bQpsdA==} 843 | 844 | '@zag-js/react@0.79.1': 845 | resolution: {integrity: sha512-DHxBW/Z2PQiCFxjxUcfxOCeqdzCQMy8Gz54CaIzy1Nh18BJEqwaoVAT7FPRB49iFY8Nqi4xYibMzFXItNHTmMQ==} 846 | peerDependencies: 847 | react: '>=18.0.0' 848 | react-dom: '>=18.0.0' 849 | 850 | '@zag-js/rect-utils@0.79.1': 851 | resolution: {integrity: sha512-nkSOiRLzcICs2/lQbCZayTcJZLP1czirFDxClCxj+Nv/p4GkYIegEQHDNXy0tstrkJNr1hypPop0q8N3HqcHzA==} 852 | 853 | '@zag-js/remove-scroll@0.79.1': 854 | resolution: {integrity: sha512-bBkS9ma49lNWZhqkl+B96PW107WD2MtJCQ14QzkoTBWHNCGYm8XoQg7tm/PuR+CuMsqpPul5NQgB8NO/dQIElw==} 855 | 856 | '@zag-js/scroll-snap@0.79.1': 857 | resolution: {integrity: sha512-ImlGIEQMYfwaC1WJR04FoxjgCWHWmcxY4RR5SmkHJcCOMSoAFWRLsPfkHaBJawpgWx4vYMQmRjtuyXWdL92Tdw==} 858 | 859 | '@zag-js/select@0.79.1': 860 | resolution: {integrity: sha512-0X6YW3ej+dmYDAgePvMgPSPJyVrdIQoaTBU1D5Kq3sPVk3wupSg3HGmBu1ckdLq7+Ijf3qWiESwLQFC6aRxWFw==} 861 | 862 | '@zag-js/signature-pad@0.79.1': 863 | resolution: {integrity: sha512-mfU3hccyfmHP29fNoeWYQYsV4qg7h32diyWNkM1zMYjjsoVwwtOROy3zAf7McNeYZgdDU8/XiDkriw7fnqFkAg==} 864 | 865 | '@zag-js/slider@0.79.1': 866 | resolution: {integrity: sha512-fMMPge9walxA2+w54K4JXFHdUshTwhtU3DZp7xbi5Fmv1vzCEu8qUue3uC+rCMB7728/uj/Gh7i24zjRaJTsaw==} 867 | 868 | '@zag-js/splitter@0.79.1': 869 | resolution: {integrity: sha512-GUnmAW7qt37nAyixckb+BKVgrvrjoi+nETgw0d1Q990oUCpYyUw6MdRbTpvO9w9TKOh7yydZC9zJLg3azSpDNA==} 870 | 871 | '@zag-js/steps@0.79.1': 872 | resolution: {integrity: sha512-eexfVZEX3aeMxymjr1+cduTgfIUbxftf5Sa9HDK8HiC+BmlO/Blju/In7kn1EwXJZ7pgVcwDibuJjng8KJRJTg==} 873 | 874 | '@zag-js/store@0.79.1': 875 | resolution: {integrity: sha512-mcXuiS7iqPTFU5sfli4v4kzBJcEAL3L3SVe8l9XezXED6UXYCGHjGQqpNuzsBfY29GPwUOwcF8FfFizxpCL1mQ==} 876 | 877 | '@zag-js/switch@0.79.1': 878 | resolution: {integrity: sha512-i+32oau7E1PQyHM6iIOxWDYjMgYHFoiDPg+DzMFQgykw49sXO5y4Ux+406MjXnqaGDA7nI8UhDOGqIl+AhvYKQ==} 879 | 880 | '@zag-js/tabs@0.79.1': 881 | resolution: {integrity: sha512-ZFJoggGOhvHszxZacXIvBKV2eKFOjJy5DT123d894RZjDy0yMOZwbN/J2T+dMw4ZttuetLvFJ6HAk26XR7iPhQ==} 882 | 883 | '@zag-js/tags-input@0.79.1': 884 | resolution: {integrity: sha512-3gPkNpk45eMaoERY81nEVgeW5S1hOug8rz1ZCJ/NBU1MWy/vuIcOyqWV7Ccc6Hxu6X07ujSyEz0MIdy6ddVcbg==} 885 | 886 | '@zag-js/text-selection@0.79.1': 887 | resolution: {integrity: sha512-lm+CzcNkX6HhbDh/msawCUKvbsw2ArS+FswDoet6ERG4hfz+6aCmw4LACUqYTsNd97usIdPEw8FeL9EakL+lMw==} 888 | 889 | '@zag-js/text-selection@0.79.3': 890 | resolution: {integrity: sha512-bkm5uCqL9wL5+rWVJDj9tphrNbb77Gdjb5ZA2+4wUZbvDecHnWkpOanV0LmStEt2rn6SJlr2czWBHZ/Acc+ylA==} 891 | 892 | '@zag-js/time-picker@0.79.1': 893 | resolution: {integrity: sha512-3OeDDhMzoWjjmHnyF1ranvIGbC5ZM8tA+sNXm6cwGneqL4PpA3ngjGYSB1G6VphI/3ovV6NwoRjs/QYuncCaZw==} 894 | peerDependencies: 895 | '@internationalized/date': '>=3.0.0' 896 | 897 | '@zag-js/timer@0.79.1': 898 | resolution: {integrity: sha512-NU93fyq+fDKqkdxu73j7HczWZdbihnUNpO6h9S08he4tTbw4NPFyQxh3mIDXeFrNVk6R+Mr4CSnN7KpfbeL5yg==} 899 | 900 | '@zag-js/toast@0.79.1': 901 | resolution: {integrity: sha512-tjtjCOlEKFabXNxKbfPKkGIm941e44L8vQGJWFgI+K+aJyO0SkQYc2RV/bqPGKFL8RMncqX8o6OEdFSzKOIZIA==} 902 | 903 | '@zag-js/toggle-group@0.79.1': 904 | resolution: {integrity: sha512-Fh611w1OxADNvZ+QYMoHr6+f1kr40gxXApQYIa7ug3RuCP0HFwuqi97PsjEckxhFVAhjNmt1G0qv8JWM5P7fnA==} 905 | 906 | '@zag-js/tooltip@0.79.1': 907 | resolution: {integrity: sha512-Lehi+kiWPt2WAzMD56Vmcvs+kvbFQcMui0MZhjM79NN1O8yjg+AxFiZuVgALVgkDbmPwhoR2ZWbom+1sgUPfcQ==} 908 | 909 | '@zag-js/tree-view@0.79.1': 910 | resolution: {integrity: sha512-fwi5P7IKxETciyS/hBIFipUfXThmfTNom6NwNwQ7Mo3jPJ3UawWzs3LC00prVVuI0OMQEzLRLMdxf6XtJxoxCg==} 911 | 912 | '@zag-js/types@0.79.1': 913 | resolution: {integrity: sha512-TwzaNwiEYpk/7XbUL8zqFiUtd/9Ru0zceuuisYRuNIAN2kBAaKSljx2VvymtAOgbP7IMX+nWcrWN1PywKT7hlw==} 914 | 915 | '@zag-js/types@0.79.3': 916 | resolution: {integrity: sha512-UPa8am7zHY8kq8bZhAJoPebyTOt0Mh0F9re/rrRO8HG69s1VBQh5i4lxNVso1/qWAafM8XBecAFcR4v0u1m3kQ==} 917 | 918 | '@zag-js/utils@0.79.1': 919 | resolution: {integrity: sha512-jW8+qG16vO2vGHWuf5h4ONISMrSJlapXUQqYhZW8rXP8uDfU5vh6sk2qTGL8i8G2TV8sFb7Xj29gyx9roOrBmQ==} 920 | 921 | accepts@1.3.8: 922 | resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} 923 | engines: {node: '>= 0.6'} 924 | 925 | ansi-regex@5.0.1: 926 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 927 | engines: {node: '>=8'} 928 | 929 | ansi-regex@6.1.0: 930 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 931 | engines: {node: '>=12'} 932 | 933 | ansi-styles@4.3.0: 934 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 935 | engines: {node: '>=8'} 936 | 937 | ansi-styles@6.2.1: 938 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 939 | engines: {node: '>=12'} 940 | 941 | arg@5.0.2: 942 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 943 | 944 | array-flatten@1.1.1: 945 | resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} 946 | 947 | babel-dead-code-elimination@1.0.8: 948 | resolution: {integrity: sha512-og6HQERk0Cmm+nTT4Od2wbPtgABXFMPaHACjbKLulZIFMkYyXZLkUGuAxdgpMJBrxyt/XFpSz++lNzjbcMnPkQ==} 949 | 950 | babel-plugin-macros@3.1.0: 951 | resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} 952 | engines: {node: '>=10', npm: '>=6'} 953 | 954 | balanced-match@1.0.2: 955 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 956 | 957 | basic-auth@2.0.1: 958 | resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} 959 | engines: {node: '>= 0.8'} 960 | 961 | body-parser@1.20.3: 962 | resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} 963 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 964 | 965 | brace-expansion@2.0.1: 966 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 967 | 968 | browserify-zlib@0.1.4: 969 | resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==} 970 | 971 | browserslist@4.24.3: 972 | resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==} 973 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 974 | hasBin: true 975 | 976 | buffer-from@1.1.2: 977 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 978 | 979 | bytes@3.1.2: 980 | resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} 981 | engines: {node: '>= 0.8'} 982 | 983 | cac@6.7.14: 984 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 985 | engines: {node: '>=8'} 986 | 987 | call-bind-apply-helpers@1.0.1: 988 | resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} 989 | engines: {node: '>= 0.4'} 990 | 991 | call-bound@1.0.3: 992 | resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} 993 | engines: {node: '>= 0.4'} 994 | 995 | callsites@3.1.0: 996 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 997 | engines: {node: '>=6'} 998 | 999 | caniuse-lite@1.0.30001690: 1000 | resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==} 1001 | 1002 | chokidar@4.0.3: 1003 | resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} 1004 | engines: {node: '>= 14.16.0'} 1005 | 1006 | color-convert@2.0.1: 1007 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1008 | engines: {node: '>=7.0.0'} 1009 | 1010 | color-name@1.1.4: 1011 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1012 | 1013 | compressible@2.0.18: 1014 | resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} 1015 | engines: {node: '>= 0.6'} 1016 | 1017 | compression@1.7.5: 1018 | resolution: {integrity: sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==} 1019 | engines: {node: '>= 0.8.0'} 1020 | 1021 | content-disposition@0.5.4: 1022 | resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} 1023 | engines: {node: '>= 0.6'} 1024 | 1025 | content-type@1.0.5: 1026 | resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} 1027 | engines: {node: '>= 0.6'} 1028 | 1029 | convert-source-map@1.9.0: 1030 | resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} 1031 | 1032 | convert-source-map@2.0.0: 1033 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 1034 | 1035 | cookie-signature@1.0.6: 1036 | resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} 1037 | 1038 | cookie@0.7.1: 1039 | resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} 1040 | engines: {node: '>= 0.6'} 1041 | 1042 | cookie@1.0.2: 1043 | resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} 1044 | engines: {node: '>=18'} 1045 | 1046 | core-util-is@1.0.3: 1047 | resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} 1048 | 1049 | cosmiconfig@7.1.0: 1050 | resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} 1051 | engines: {node: '>=10'} 1052 | 1053 | cross-env@7.0.3: 1054 | resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} 1055 | engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} 1056 | hasBin: true 1057 | 1058 | cross-spawn@7.0.6: 1059 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 1060 | engines: {node: '>= 8'} 1061 | 1062 | csstype@3.1.3: 1063 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 1064 | 1065 | debug@2.6.9: 1066 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 1067 | peerDependencies: 1068 | supports-color: '*' 1069 | peerDependenciesMeta: 1070 | supports-color: 1071 | optional: true 1072 | 1073 | debug@4.4.0: 1074 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} 1075 | engines: {node: '>=6.0'} 1076 | peerDependencies: 1077 | supports-color: '*' 1078 | peerDependenciesMeta: 1079 | supports-color: 1080 | optional: true 1081 | 1082 | dedent@1.5.3: 1083 | resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} 1084 | peerDependencies: 1085 | babel-plugin-macros: ^3.1.0 1086 | peerDependenciesMeta: 1087 | babel-plugin-macros: 1088 | optional: true 1089 | 1090 | depd@2.0.0: 1091 | resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} 1092 | engines: {node: '>= 0.8'} 1093 | 1094 | destroy@1.2.0: 1095 | resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} 1096 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 1097 | 1098 | dunder-proto@1.0.1: 1099 | resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} 1100 | engines: {node: '>= 0.4'} 1101 | 1102 | duplexify@3.7.1: 1103 | resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} 1104 | 1105 | eastasianwidth@0.2.0: 1106 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 1107 | 1108 | ee-first@1.1.1: 1109 | resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} 1110 | 1111 | electron-to-chromium@1.5.76: 1112 | resolution: {integrity: sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==} 1113 | 1114 | emoji-regex@8.0.0: 1115 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1116 | 1117 | emoji-regex@9.2.2: 1118 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1119 | 1120 | encodeurl@1.0.2: 1121 | resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} 1122 | engines: {node: '>= 0.8'} 1123 | 1124 | encodeurl@2.0.0: 1125 | resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} 1126 | engines: {node: '>= 0.8'} 1127 | 1128 | end-of-stream@1.4.4: 1129 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 1130 | 1131 | err-code@2.0.3: 1132 | resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} 1133 | 1134 | error-ex@1.3.2: 1135 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 1136 | 1137 | es-define-property@1.0.1: 1138 | resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} 1139 | engines: {node: '>= 0.4'} 1140 | 1141 | es-errors@1.3.0: 1142 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 1143 | engines: {node: '>= 0.4'} 1144 | 1145 | es-module-lexer@1.6.0: 1146 | resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} 1147 | 1148 | es-object-atoms@1.0.0: 1149 | resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} 1150 | engines: {node: '>= 0.4'} 1151 | 1152 | esbuild@0.21.5: 1153 | resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} 1154 | engines: {node: '>=12'} 1155 | hasBin: true 1156 | 1157 | escalade@3.2.0: 1158 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 1159 | engines: {node: '>=6'} 1160 | 1161 | escape-html@1.0.3: 1162 | resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} 1163 | 1164 | escape-string-regexp@4.0.0: 1165 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1166 | engines: {node: '>=10'} 1167 | 1168 | etag@1.8.1: 1169 | resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} 1170 | engines: {node: '>= 0.6'} 1171 | 1172 | exit-hook@2.2.1: 1173 | resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} 1174 | engines: {node: '>=6'} 1175 | 1176 | express@4.21.2: 1177 | resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} 1178 | engines: {node: '>= 0.10.0'} 1179 | 1180 | finalhandler@1.3.1: 1181 | resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} 1182 | engines: {node: '>= 0.8'} 1183 | 1184 | find-root@1.1.0: 1185 | resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} 1186 | 1187 | focus-trap@7.6.2: 1188 | resolution: {integrity: sha512-9FhUxK1hVju2+AiQIDJ5Dd//9R2n2RAfJ0qfhF4IHGHgcoEUTMpbTeG/zbEuwaiYXfuAH6XE0/aCyxDdRM+W5w==} 1189 | 1190 | foreground-child@3.3.0: 1191 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} 1192 | engines: {node: '>=14'} 1193 | 1194 | forwarded@0.2.0: 1195 | resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} 1196 | engines: {node: '>= 0.6'} 1197 | 1198 | fresh@0.5.2: 1199 | resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} 1200 | engines: {node: '>= 0.6'} 1201 | 1202 | fs-extra@10.1.0: 1203 | resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} 1204 | engines: {node: '>=12'} 1205 | 1206 | fsevents@2.3.3: 1207 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1208 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1209 | os: [darwin] 1210 | 1211 | function-bind@1.1.2: 1212 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1213 | 1214 | gensync@1.0.0-beta.2: 1215 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 1216 | engines: {node: '>=6.9.0'} 1217 | 1218 | get-intrinsic@1.2.7: 1219 | resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} 1220 | engines: {node: '>= 0.4'} 1221 | 1222 | get-port@5.1.1: 1223 | resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} 1224 | engines: {node: '>=8'} 1225 | 1226 | get-proto@1.0.1: 1227 | resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} 1228 | engines: {node: '>= 0.4'} 1229 | 1230 | glob@10.4.5: 1231 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 1232 | hasBin: true 1233 | 1234 | globals@11.12.0: 1235 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 1236 | engines: {node: '>=4'} 1237 | 1238 | globrex@0.1.2: 1239 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 1240 | 1241 | gopd@1.2.0: 1242 | resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} 1243 | engines: {node: '>= 0.4'} 1244 | 1245 | graceful-fs@4.2.11: 1246 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1247 | 1248 | gunzip-maybe@1.4.2: 1249 | resolution: {integrity: sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==} 1250 | hasBin: true 1251 | 1252 | has-symbols@1.1.0: 1253 | resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} 1254 | engines: {node: '>= 0.4'} 1255 | 1256 | hasown@2.0.2: 1257 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1258 | engines: {node: '>= 0.4'} 1259 | 1260 | hoist-non-react-statics@3.3.2: 1261 | resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} 1262 | 1263 | hosted-git-info@6.1.3: 1264 | resolution: {integrity: sha512-HVJyzUrLIL1c0QmviVh5E8VGyUS7xCFPS6yydaVd1UegW+ibV/CohqTH9MkOLDp5o+rb82DMo77PTuc9F/8GKw==} 1265 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 1266 | 1267 | http-errors@2.0.0: 1268 | resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} 1269 | engines: {node: '>= 0.8'} 1270 | 1271 | iconv-lite@0.4.24: 1272 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 1273 | engines: {node: '>=0.10.0'} 1274 | 1275 | import-fresh@3.3.0: 1276 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1277 | engines: {node: '>=6'} 1278 | 1279 | inherits@2.0.4: 1280 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1281 | 1282 | ipaddr.js@1.9.1: 1283 | resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} 1284 | engines: {node: '>= 0.10'} 1285 | 1286 | is-arrayish@0.2.1: 1287 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 1288 | 1289 | is-core-module@2.16.1: 1290 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 1291 | engines: {node: '>= 0.4'} 1292 | 1293 | is-deflate@1.0.0: 1294 | resolution: {integrity: sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==} 1295 | 1296 | is-fullwidth-code-point@3.0.0: 1297 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1298 | engines: {node: '>=8'} 1299 | 1300 | is-gzip@1.0.0: 1301 | resolution: {integrity: sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==} 1302 | engines: {node: '>=0.10.0'} 1303 | 1304 | isarray@1.0.0: 1305 | resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} 1306 | 1307 | isbot@5.1.19: 1308 | resolution: {integrity: sha512-8krWJBGKC3lVymkncvmBTpIEWMD5kKmjAvkM3/Xh6veE0bAydwgSNrI5h493DGrG2UNJCy0HuHpNPSKRy0dBJA==} 1309 | engines: {node: '>=18'} 1310 | 1311 | isexe@2.0.0: 1312 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1313 | 1314 | jackspeak@3.4.3: 1315 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 1316 | 1317 | js-tokens@4.0.0: 1318 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1319 | 1320 | jsesc@3.0.2: 1321 | resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} 1322 | engines: {node: '>=6'} 1323 | hasBin: true 1324 | 1325 | json-parse-even-better-errors@2.3.1: 1326 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1327 | 1328 | json-parse-even-better-errors@3.0.2: 1329 | resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} 1330 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 1331 | 1332 | json5@2.2.3: 1333 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1334 | engines: {node: '>=6'} 1335 | hasBin: true 1336 | 1337 | jsonfile@6.1.0: 1338 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} 1339 | 1340 | lines-and-columns@1.2.4: 1341 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1342 | 1343 | lodash@4.17.21: 1344 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1345 | 1346 | lru-cache@10.4.3: 1347 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 1348 | 1349 | lru-cache@5.1.1: 1350 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1351 | 1352 | lru-cache@7.18.3: 1353 | resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} 1354 | engines: {node: '>=12'} 1355 | 1356 | lucide-react@0.469.0: 1357 | resolution: {integrity: sha512-28vvUnnKQ/dBwiCQtwJw7QauYnE7yd2Cyp4tTTJpvglX4EMpbflcdBgrgToX2j71B3YvugK/NH3BGUk+E/p/Fw==} 1358 | peerDependencies: 1359 | react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 1360 | 1361 | math-intrinsics@1.1.0: 1362 | resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} 1363 | engines: {node: '>= 0.4'} 1364 | 1365 | media-typer@0.3.0: 1366 | resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} 1367 | engines: {node: '>= 0.6'} 1368 | 1369 | merge-descriptors@1.0.3: 1370 | resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} 1371 | 1372 | methods@1.1.2: 1373 | resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} 1374 | engines: {node: '>= 0.6'} 1375 | 1376 | mime-db@1.52.0: 1377 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1378 | engines: {node: '>= 0.6'} 1379 | 1380 | mime-db@1.53.0: 1381 | resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} 1382 | engines: {node: '>= 0.6'} 1383 | 1384 | mime-types@2.1.35: 1385 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1386 | engines: {node: '>= 0.6'} 1387 | 1388 | mime@1.6.0: 1389 | resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} 1390 | engines: {node: '>=4'} 1391 | hasBin: true 1392 | 1393 | minimatch@9.0.5: 1394 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1395 | engines: {node: '>=16 || 14 >=14.17'} 1396 | 1397 | minipass@7.1.2: 1398 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 1399 | engines: {node: '>=16 || 14 >=14.17'} 1400 | 1401 | morgan@1.10.0: 1402 | resolution: {integrity: sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==} 1403 | engines: {node: '>= 0.8.0'} 1404 | 1405 | ms@2.0.0: 1406 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 1407 | 1408 | ms@2.1.3: 1409 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1410 | 1411 | nanoid@3.3.8: 1412 | resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} 1413 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1414 | hasBin: true 1415 | 1416 | nanoid@5.0.9: 1417 | resolution: {integrity: sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==} 1418 | engines: {node: ^18 || >=20} 1419 | hasBin: true 1420 | 1421 | negotiator@0.6.3: 1422 | resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} 1423 | engines: {node: '>= 0.6'} 1424 | 1425 | negotiator@0.6.4: 1426 | resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} 1427 | engines: {node: '>= 0.6'} 1428 | 1429 | node-releases@2.0.19: 1430 | resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} 1431 | 1432 | normalize-package-data@5.0.0: 1433 | resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} 1434 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 1435 | 1436 | npm-install-checks@6.3.0: 1437 | resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} 1438 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 1439 | 1440 | npm-normalize-package-bin@3.0.1: 1441 | resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} 1442 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 1443 | 1444 | npm-package-arg@10.1.0: 1445 | resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} 1446 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 1447 | 1448 | npm-pick-manifest@8.0.2: 1449 | resolution: {integrity: sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==} 1450 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 1451 | 1452 | object-inspect@1.13.3: 1453 | resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} 1454 | engines: {node: '>= 0.4'} 1455 | 1456 | on-finished@2.3.0: 1457 | resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} 1458 | engines: {node: '>= 0.8'} 1459 | 1460 | on-finished@2.4.1: 1461 | resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} 1462 | engines: {node: '>= 0.8'} 1463 | 1464 | on-headers@1.0.2: 1465 | resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} 1466 | engines: {node: '>= 0.8'} 1467 | 1468 | once@1.4.0: 1469 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1470 | 1471 | package-json-from-dist@1.0.1: 1472 | resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} 1473 | 1474 | pako@0.2.9: 1475 | resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} 1476 | 1477 | parent-module@1.0.1: 1478 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1479 | engines: {node: '>=6'} 1480 | 1481 | parse-json@5.2.0: 1482 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 1483 | engines: {node: '>=8'} 1484 | 1485 | parseurl@1.3.3: 1486 | resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} 1487 | engines: {node: '>= 0.8'} 1488 | 1489 | path-key@3.1.1: 1490 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1491 | engines: {node: '>=8'} 1492 | 1493 | path-parse@1.0.7: 1494 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1495 | 1496 | path-scurry@1.11.1: 1497 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 1498 | engines: {node: '>=16 || 14 >=14.18'} 1499 | 1500 | path-to-regexp@0.1.12: 1501 | resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} 1502 | 1503 | path-type@4.0.0: 1504 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1505 | engines: {node: '>=8'} 1506 | 1507 | pathe@1.1.2: 1508 | resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} 1509 | 1510 | peek-stream@1.1.3: 1511 | resolution: {integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==} 1512 | 1513 | perfect-freehand@1.2.2: 1514 | resolution: {integrity: sha512-eh31l019WICQ03pkF3FSzHxB8n07ItqIQ++G5UV8JX0zVOXzgTGCqnRR0jJ2h9U8/2uW4W4mtGJELt9kEV0CFQ==} 1515 | 1516 | picocolors@1.1.1: 1517 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1518 | 1519 | picomatch@2.3.1: 1520 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1521 | engines: {node: '>=8.6'} 1522 | 1523 | postcss@8.4.49: 1524 | resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} 1525 | engines: {node: ^10 || ^12 || >=14} 1526 | 1527 | prettier@2.8.8: 1528 | resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} 1529 | engines: {node: '>=10.13.0'} 1530 | hasBin: true 1531 | 1532 | proc-log@3.0.0: 1533 | resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} 1534 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 1535 | 1536 | process-nextick-args@2.0.1: 1537 | resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} 1538 | 1539 | promise-inflight@1.0.1: 1540 | resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} 1541 | peerDependencies: 1542 | bluebird: '*' 1543 | peerDependenciesMeta: 1544 | bluebird: 1545 | optional: true 1546 | 1547 | promise-retry@2.0.1: 1548 | resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} 1549 | engines: {node: '>=10'} 1550 | 1551 | proxy-addr@2.0.7: 1552 | resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} 1553 | engines: {node: '>= 0.10'} 1554 | 1555 | proxy-compare@3.0.1: 1556 | resolution: {integrity: sha512-V9plBAt3qjMlS1+nC8771KNf6oJ12gExvaxnNzN/9yVRLdTv/lc+oJlnSzrdYDAvBfTStPCoiaCOTmTs0adv7Q==} 1557 | 1558 | proxy-memoize@3.0.1: 1559 | resolution: {integrity: sha512-VDdG/VYtOgdGkWJx7y0o7p+zArSf2383Isci8C+BP3YXgMYDoPd3cCBjw0JdWb6YBb9sFiOPbAADDVTPJnh+9g==} 1560 | 1561 | pump@2.0.1: 1562 | resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} 1563 | 1564 | pumpify@1.5.1: 1565 | resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} 1566 | 1567 | qs@6.13.0: 1568 | resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} 1569 | engines: {node: '>=0.6'} 1570 | 1571 | range-parser@1.2.1: 1572 | resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} 1573 | engines: {node: '>= 0.6'} 1574 | 1575 | raw-body@2.5.2: 1576 | resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} 1577 | engines: {node: '>= 0.8'} 1578 | 1579 | react-dom@19.0.0: 1580 | resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} 1581 | peerDependencies: 1582 | react: ^19.0.0 1583 | 1584 | react-hook-form@7.54.2: 1585 | resolution: {integrity: sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==} 1586 | engines: {node: '>=18.0.0'} 1587 | peerDependencies: 1588 | react: ^16.8.0 || ^17 || ^18 || ^19 1589 | 1590 | react-icons@5.4.0: 1591 | resolution: {integrity: sha512-7eltJxgVt7X64oHh6wSWNwwbKTCtMfK35hcjvJS0yxEAhPM8oUKdS3+kqaW1vicIltw+kR2unHaa12S9pPALoQ==} 1592 | peerDependencies: 1593 | react: '*' 1594 | 1595 | react-is@16.13.1: 1596 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 1597 | 1598 | react-refresh@0.14.2: 1599 | resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} 1600 | engines: {node: '>=0.10.0'} 1601 | 1602 | react-router@7.1.1: 1603 | resolution: {integrity: sha512-39sXJkftkKWRZ2oJtHhCxmoCrBCULr/HAH4IT5DHlgu/Q0FCPV0S4Lx+abjDTx/74xoZzNYDYbOZWlJjruyuDQ==} 1604 | engines: {node: '>=20.0.0'} 1605 | peerDependencies: 1606 | react: '>=18' 1607 | react-dom: '>=18' 1608 | peerDependenciesMeta: 1609 | react-dom: 1610 | optional: true 1611 | 1612 | react@19.0.0: 1613 | resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} 1614 | engines: {node: '>=0.10.0'} 1615 | 1616 | readable-stream@2.3.8: 1617 | resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} 1618 | 1619 | readdirp@4.0.2: 1620 | resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} 1621 | engines: {node: '>= 14.16.0'} 1622 | 1623 | regenerator-runtime@0.14.1: 1624 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 1625 | 1626 | resolve-from@4.0.0: 1627 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1628 | engines: {node: '>=4'} 1629 | 1630 | resolve@1.22.10: 1631 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} 1632 | engines: {node: '>= 0.4'} 1633 | hasBin: true 1634 | 1635 | retry@0.12.0: 1636 | resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} 1637 | engines: {node: '>= 4'} 1638 | 1639 | rollup@4.29.1: 1640 | resolution: {integrity: sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==} 1641 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1642 | hasBin: true 1643 | 1644 | safe-buffer@5.1.2: 1645 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 1646 | 1647 | safe-buffer@5.2.1: 1648 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1649 | 1650 | safer-buffer@2.1.2: 1651 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1652 | 1653 | scheduler@0.25.0: 1654 | resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} 1655 | 1656 | semver@6.3.1: 1657 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1658 | hasBin: true 1659 | 1660 | semver@7.6.3: 1661 | resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} 1662 | engines: {node: '>=10'} 1663 | hasBin: true 1664 | 1665 | send@0.19.0: 1666 | resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} 1667 | engines: {node: '>= 0.8.0'} 1668 | 1669 | serve-static@1.16.2: 1670 | resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} 1671 | engines: {node: '>= 0.8.0'} 1672 | 1673 | set-cookie-parser@2.7.1: 1674 | resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} 1675 | 1676 | setprototypeof@1.2.0: 1677 | resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} 1678 | 1679 | shebang-command@2.0.0: 1680 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1681 | engines: {node: '>=8'} 1682 | 1683 | shebang-regex@3.0.0: 1684 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1685 | engines: {node: '>=8'} 1686 | 1687 | side-channel-list@1.0.0: 1688 | resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} 1689 | engines: {node: '>= 0.4'} 1690 | 1691 | side-channel-map@1.0.1: 1692 | resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} 1693 | engines: {node: '>= 0.4'} 1694 | 1695 | side-channel-weakmap@1.0.2: 1696 | resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} 1697 | engines: {node: '>= 0.4'} 1698 | 1699 | side-channel@1.1.0: 1700 | resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} 1701 | engines: {node: '>= 0.4'} 1702 | 1703 | signal-exit@4.1.0: 1704 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1705 | engines: {node: '>=14'} 1706 | 1707 | source-map-js@1.2.1: 1708 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1709 | engines: {node: '>=0.10.0'} 1710 | 1711 | source-map-support@0.5.21: 1712 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 1713 | 1714 | source-map@0.5.7: 1715 | resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} 1716 | engines: {node: '>=0.10.0'} 1717 | 1718 | source-map@0.6.1: 1719 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1720 | engines: {node: '>=0.10.0'} 1721 | 1722 | spdx-correct@3.2.0: 1723 | resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} 1724 | 1725 | spdx-exceptions@2.5.0: 1726 | resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} 1727 | 1728 | spdx-expression-parse@3.0.1: 1729 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 1730 | 1731 | spdx-license-ids@3.0.20: 1732 | resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} 1733 | 1734 | statuses@2.0.1: 1735 | resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} 1736 | engines: {node: '>= 0.8'} 1737 | 1738 | stream-shift@1.0.3: 1739 | resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} 1740 | 1741 | stream-slice@0.1.2: 1742 | resolution: {integrity: sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==} 1743 | 1744 | string-width@4.2.3: 1745 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1746 | engines: {node: '>=8'} 1747 | 1748 | string-width@5.1.2: 1749 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1750 | engines: {node: '>=12'} 1751 | 1752 | string_decoder@1.1.1: 1753 | resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} 1754 | 1755 | strip-ansi@6.0.1: 1756 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1757 | engines: {node: '>=8'} 1758 | 1759 | strip-ansi@7.1.0: 1760 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1761 | engines: {node: '>=12'} 1762 | 1763 | stylis@4.2.0: 1764 | resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} 1765 | 1766 | supports-preserve-symlinks-flag@1.0.0: 1767 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1768 | engines: {node: '>= 0.4'} 1769 | 1770 | tabbable@6.2.0: 1771 | resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} 1772 | 1773 | through2@2.0.5: 1774 | resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} 1775 | 1776 | toidentifier@1.0.1: 1777 | resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} 1778 | engines: {node: '>=0.6'} 1779 | 1780 | tsconfck@3.1.4: 1781 | resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==} 1782 | engines: {node: ^18 || >=20} 1783 | hasBin: true 1784 | peerDependencies: 1785 | typescript: ^5.0.0 1786 | peerDependenciesMeta: 1787 | typescript: 1788 | optional: true 1789 | 1790 | tslib@2.8.1: 1791 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 1792 | 1793 | turbo-stream@2.4.0: 1794 | resolution: {integrity: sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==} 1795 | 1796 | type-is@1.6.18: 1797 | resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} 1798 | engines: {node: '>= 0.6'} 1799 | 1800 | typescript@5.7.2: 1801 | resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} 1802 | engines: {node: '>=14.17'} 1803 | hasBin: true 1804 | 1805 | undici-types@6.19.8: 1806 | resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} 1807 | 1808 | undici@6.21.0: 1809 | resolution: {integrity: sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==} 1810 | engines: {node: '>=18.17'} 1811 | 1812 | universalify@2.0.1: 1813 | resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} 1814 | engines: {node: '>= 10.0.0'} 1815 | 1816 | unpipe@1.0.0: 1817 | resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} 1818 | engines: {node: '>= 0.8'} 1819 | 1820 | update-browserslist-db@1.1.1: 1821 | resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} 1822 | hasBin: true 1823 | peerDependencies: 1824 | browserslist: '>= 4.21.0' 1825 | 1826 | uqr@0.1.2: 1827 | resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} 1828 | 1829 | util-deprecate@1.0.2: 1830 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1831 | 1832 | utils-merge@1.0.1: 1833 | resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} 1834 | engines: {node: '>= 0.4.0'} 1835 | 1836 | valibot@0.41.0: 1837 | resolution: {integrity: sha512-igDBb8CTYr8YTQlOKgaN9nSS0Be7z+WRuaeYqGf3Cjz3aKmSnqEmYnkfVjzIuumGqfHpa3fLIvMEAfhrpqN8ng==} 1838 | peerDependencies: 1839 | typescript: '>=5' 1840 | peerDependenciesMeta: 1841 | typescript: 1842 | optional: true 1843 | 1844 | validate-npm-package-license@3.0.4: 1845 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 1846 | 1847 | validate-npm-package-name@5.0.1: 1848 | resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} 1849 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 1850 | 1851 | vary@1.1.2: 1852 | resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} 1853 | engines: {node: '>= 0.8'} 1854 | 1855 | vite-node@3.0.0-beta.2: 1856 | resolution: {integrity: sha512-ofTf6cfRdL30Wbl9n/BX81EyIR5s4PReLmSurrxQ+koLaWUNOEo8E0lCM53OJkb8vpa2URM2nSrxZsIFyvY1rg==} 1857 | engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 1858 | hasBin: true 1859 | 1860 | vite-tsconfig-paths@5.1.4: 1861 | resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} 1862 | peerDependencies: 1863 | vite: '*' 1864 | peerDependenciesMeta: 1865 | vite: 1866 | optional: true 1867 | 1868 | vite@5.4.11: 1869 | resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} 1870 | engines: {node: ^18.0.0 || >=20.0.0} 1871 | hasBin: true 1872 | peerDependencies: 1873 | '@types/node': ^18.0.0 || >=20.0.0 1874 | less: '*' 1875 | lightningcss: ^1.21.0 1876 | sass: '*' 1877 | sass-embedded: '*' 1878 | stylus: '*' 1879 | sugarss: '*' 1880 | terser: ^5.4.0 1881 | peerDependenciesMeta: 1882 | '@types/node': 1883 | optional: true 1884 | less: 1885 | optional: true 1886 | lightningcss: 1887 | optional: true 1888 | sass: 1889 | optional: true 1890 | sass-embedded: 1891 | optional: true 1892 | stylus: 1893 | optional: true 1894 | sugarss: 1895 | optional: true 1896 | terser: 1897 | optional: true 1898 | 1899 | which@2.0.2: 1900 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1901 | engines: {node: '>= 8'} 1902 | hasBin: true 1903 | 1904 | which@3.0.1: 1905 | resolution: {integrity: sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==} 1906 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 1907 | hasBin: true 1908 | 1909 | wrap-ansi@7.0.0: 1910 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1911 | engines: {node: '>=10'} 1912 | 1913 | wrap-ansi@8.1.0: 1914 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 1915 | engines: {node: '>=12'} 1916 | 1917 | wrappy@1.0.2: 1918 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1919 | 1920 | xtend@4.0.2: 1921 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 1922 | engines: {node: '>=0.4'} 1923 | 1924 | yallist@3.1.1: 1925 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 1926 | 1927 | yaml@1.10.2: 1928 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 1929 | engines: {node: '>= 6'} 1930 | 1931 | zod@3.24.1: 1932 | resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} 1933 | 1934 | zustand@5.0.2: 1935 | resolution: {integrity: sha512-8qNdnJVJlHlrKXi50LDqqUNmUbuBjoKLrYQBnoChIbVph7vni+sY+YpvdjXG9YLd/Bxr6scMcR+rm5H3aSqPaw==} 1936 | engines: {node: '>=12.20.0'} 1937 | peerDependencies: 1938 | '@types/react': '>=18.0.0' 1939 | immer: '>=9.0.6' 1940 | react: '>=18.0.0' 1941 | use-sync-external-store: '>=1.2.0' 1942 | peerDependenciesMeta: 1943 | '@types/react': 1944 | optional: true 1945 | immer: 1946 | optional: true 1947 | react: 1948 | optional: true 1949 | use-sync-external-store: 1950 | optional: true 1951 | 1952 | snapshots: 1953 | 1954 | '@ampproject/remapping@2.3.0': 1955 | dependencies: 1956 | '@jridgewell/gen-mapping': 0.3.8 1957 | '@jridgewell/trace-mapping': 0.3.25 1958 | 1959 | '@ark-ui/react@4.6.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 1960 | dependencies: 1961 | '@internationalized/date': 3.6.0 1962 | '@zag-js/accordion': 0.79.1 1963 | '@zag-js/anatomy': 0.79.1 1964 | '@zag-js/auto-resize': 0.79.1 1965 | '@zag-js/avatar': 0.79.1 1966 | '@zag-js/carousel': 0.79.1 1967 | '@zag-js/checkbox': 0.79.1 1968 | '@zag-js/clipboard': 0.79.1 1969 | '@zag-js/collapsible': 0.79.1 1970 | '@zag-js/collection': 0.79.1 1971 | '@zag-js/color-picker': 0.79.1 1972 | '@zag-js/color-utils': 0.79.1 1973 | '@zag-js/combobox': 0.79.1 1974 | '@zag-js/core': 0.79.1 1975 | '@zag-js/date-picker': 0.79.1(@internationalized/date@3.6.0) 1976 | '@zag-js/date-utils': 0.79.1(@internationalized/date@3.6.0) 1977 | '@zag-js/dialog': 0.79.1 1978 | '@zag-js/dom-query': 0.79.1 1979 | '@zag-js/editable': 0.79.1 1980 | '@zag-js/file-upload': 0.79.1 1981 | '@zag-js/file-utils': 0.79.1 1982 | '@zag-js/highlight-word': 0.79.1 1983 | '@zag-js/hover-card': 0.79.1 1984 | '@zag-js/i18n-utils': 0.79.1 1985 | '@zag-js/menu': 0.79.1 1986 | '@zag-js/number-input': 0.79.1 1987 | '@zag-js/pagination': 0.79.1 1988 | '@zag-js/pin-input': 0.79.1 1989 | '@zag-js/popover': 0.79.1 1990 | '@zag-js/presence': 0.79.1 1991 | '@zag-js/progress': 0.79.1 1992 | '@zag-js/qr-code': 0.79.1 1993 | '@zag-js/radio-group': 0.79.1 1994 | '@zag-js/rating-group': 0.79.1 1995 | '@zag-js/react': 0.79.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1996 | '@zag-js/select': 0.79.1 1997 | '@zag-js/signature-pad': 0.79.1 1998 | '@zag-js/slider': 0.79.1 1999 | '@zag-js/splitter': 0.79.1 2000 | '@zag-js/steps': 0.79.1 2001 | '@zag-js/switch': 0.79.1 2002 | '@zag-js/tabs': 0.79.1 2003 | '@zag-js/tags-input': 0.79.1 2004 | '@zag-js/time-picker': 0.79.1(@internationalized/date@3.6.0) 2005 | '@zag-js/timer': 0.79.1 2006 | '@zag-js/toast': 0.79.1 2007 | '@zag-js/toggle-group': 0.79.1 2008 | '@zag-js/tooltip': 0.79.1 2009 | '@zag-js/tree-view': 0.79.1 2010 | '@zag-js/types': 0.79.1 2011 | react: 19.0.0 2012 | react-dom: 19.0.0(react@19.0.0) 2013 | 2014 | '@babel/code-frame@7.26.2': 2015 | dependencies: 2016 | '@babel/helper-validator-identifier': 7.25.9 2017 | js-tokens: 4.0.0 2018 | picocolors: 1.1.1 2019 | 2020 | '@babel/compat-data@7.26.3': {} 2021 | 2022 | '@babel/core@7.26.0': 2023 | dependencies: 2024 | '@ampproject/remapping': 2.3.0 2025 | '@babel/code-frame': 7.26.2 2026 | '@babel/generator': 7.26.3 2027 | '@babel/helper-compilation-targets': 7.25.9 2028 | '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) 2029 | '@babel/helpers': 7.26.0 2030 | '@babel/parser': 7.26.3 2031 | '@babel/template': 7.25.9 2032 | '@babel/traverse': 7.26.4 2033 | '@babel/types': 7.26.3 2034 | convert-source-map: 2.0.0 2035 | debug: 4.4.0 2036 | gensync: 1.0.0-beta.2 2037 | json5: 2.2.3 2038 | semver: 6.3.1 2039 | transitivePeerDependencies: 2040 | - supports-color 2041 | 2042 | '@babel/generator@7.26.3': 2043 | dependencies: 2044 | '@babel/parser': 7.26.3 2045 | '@babel/types': 7.26.3 2046 | '@jridgewell/gen-mapping': 0.3.8 2047 | '@jridgewell/trace-mapping': 0.3.25 2048 | jsesc: 3.0.2 2049 | 2050 | '@babel/helper-annotate-as-pure@7.25.9': 2051 | dependencies: 2052 | '@babel/types': 7.26.3 2053 | 2054 | '@babel/helper-compilation-targets@7.25.9': 2055 | dependencies: 2056 | '@babel/compat-data': 7.26.3 2057 | '@babel/helper-validator-option': 7.25.9 2058 | browserslist: 4.24.3 2059 | lru-cache: 5.1.1 2060 | semver: 6.3.1 2061 | 2062 | '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.0)': 2063 | dependencies: 2064 | '@babel/core': 7.26.0 2065 | '@babel/helper-annotate-as-pure': 7.25.9 2066 | '@babel/helper-member-expression-to-functions': 7.25.9 2067 | '@babel/helper-optimise-call-expression': 7.25.9 2068 | '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) 2069 | '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 2070 | '@babel/traverse': 7.26.4 2071 | semver: 6.3.1 2072 | transitivePeerDependencies: 2073 | - supports-color 2074 | 2075 | '@babel/helper-member-expression-to-functions@7.25.9': 2076 | dependencies: 2077 | '@babel/traverse': 7.26.4 2078 | '@babel/types': 7.26.3 2079 | transitivePeerDependencies: 2080 | - supports-color 2081 | 2082 | '@babel/helper-module-imports@7.25.9': 2083 | dependencies: 2084 | '@babel/traverse': 7.26.4 2085 | '@babel/types': 7.26.3 2086 | transitivePeerDependencies: 2087 | - supports-color 2088 | 2089 | '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': 2090 | dependencies: 2091 | '@babel/core': 7.26.0 2092 | '@babel/helper-module-imports': 7.25.9 2093 | '@babel/helper-validator-identifier': 7.25.9 2094 | '@babel/traverse': 7.26.4 2095 | transitivePeerDependencies: 2096 | - supports-color 2097 | 2098 | '@babel/helper-optimise-call-expression@7.25.9': 2099 | dependencies: 2100 | '@babel/types': 7.26.3 2101 | 2102 | '@babel/helper-plugin-utils@7.25.9': {} 2103 | 2104 | '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.0)': 2105 | dependencies: 2106 | '@babel/core': 7.26.0 2107 | '@babel/helper-member-expression-to-functions': 7.25.9 2108 | '@babel/helper-optimise-call-expression': 7.25.9 2109 | '@babel/traverse': 7.26.4 2110 | transitivePeerDependencies: 2111 | - supports-color 2112 | 2113 | '@babel/helper-skip-transparent-expression-wrappers@7.25.9': 2114 | dependencies: 2115 | '@babel/traverse': 7.26.4 2116 | '@babel/types': 7.26.3 2117 | transitivePeerDependencies: 2118 | - supports-color 2119 | 2120 | '@babel/helper-string-parser@7.25.9': {} 2121 | 2122 | '@babel/helper-validator-identifier@7.25.9': {} 2123 | 2124 | '@babel/helper-validator-option@7.25.9': {} 2125 | 2126 | '@babel/helpers@7.26.0': 2127 | dependencies: 2128 | '@babel/template': 7.25.9 2129 | '@babel/types': 7.26.3 2130 | 2131 | '@babel/parser@7.26.3': 2132 | dependencies: 2133 | '@babel/types': 7.26.3 2134 | 2135 | '@babel/plugin-syntax-decorators@7.25.9(@babel/core@7.26.0)': 2136 | dependencies: 2137 | '@babel/core': 7.26.0 2138 | '@babel/helper-plugin-utils': 7.25.9 2139 | 2140 | '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': 2141 | dependencies: 2142 | '@babel/core': 7.26.0 2143 | '@babel/helper-plugin-utils': 7.25.9 2144 | 2145 | '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': 2146 | dependencies: 2147 | '@babel/core': 7.26.0 2148 | '@babel/helper-plugin-utils': 7.25.9 2149 | 2150 | '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.0)': 2151 | dependencies: 2152 | '@babel/core': 7.26.0 2153 | '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) 2154 | '@babel/helper-plugin-utils': 7.25.9 2155 | transitivePeerDependencies: 2156 | - supports-color 2157 | 2158 | '@babel/plugin-transform-typescript@7.26.3(@babel/core@7.26.0)': 2159 | dependencies: 2160 | '@babel/core': 7.26.0 2161 | '@babel/helper-annotate-as-pure': 7.25.9 2162 | '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) 2163 | '@babel/helper-plugin-utils': 7.25.9 2164 | '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 2165 | '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) 2166 | transitivePeerDependencies: 2167 | - supports-color 2168 | 2169 | '@babel/preset-typescript@7.26.0(@babel/core@7.26.0)': 2170 | dependencies: 2171 | '@babel/core': 7.26.0 2172 | '@babel/helper-plugin-utils': 7.25.9 2173 | '@babel/helper-validator-option': 7.25.9 2174 | '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) 2175 | '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) 2176 | '@babel/plugin-transform-typescript': 7.26.3(@babel/core@7.26.0) 2177 | transitivePeerDependencies: 2178 | - supports-color 2179 | 2180 | '@babel/runtime@7.26.0': 2181 | dependencies: 2182 | regenerator-runtime: 0.14.1 2183 | 2184 | '@babel/template@7.25.9': 2185 | dependencies: 2186 | '@babel/code-frame': 7.26.2 2187 | '@babel/parser': 7.26.3 2188 | '@babel/types': 7.26.3 2189 | 2190 | '@babel/traverse@7.26.4': 2191 | dependencies: 2192 | '@babel/code-frame': 7.26.2 2193 | '@babel/generator': 7.26.3 2194 | '@babel/parser': 7.26.3 2195 | '@babel/template': 7.25.9 2196 | '@babel/types': 7.26.3 2197 | debug: 4.4.0 2198 | globals: 11.12.0 2199 | transitivePeerDependencies: 2200 | - supports-color 2201 | 2202 | '@babel/types@7.26.3': 2203 | dependencies: 2204 | '@babel/helper-string-parser': 7.25.9 2205 | '@babel/helper-validator-identifier': 7.25.9 2206 | 2207 | '@biomejs/biome@1.9.4': 2208 | optionalDependencies: 2209 | '@biomejs/cli-darwin-arm64': 1.9.4 2210 | '@biomejs/cli-darwin-x64': 1.9.4 2211 | '@biomejs/cli-linux-arm64': 1.9.4 2212 | '@biomejs/cli-linux-arm64-musl': 1.9.4 2213 | '@biomejs/cli-linux-x64': 1.9.4 2214 | '@biomejs/cli-linux-x64-musl': 1.9.4 2215 | '@biomejs/cli-win32-arm64': 1.9.4 2216 | '@biomejs/cli-win32-x64': 1.9.4 2217 | 2218 | '@biomejs/cli-darwin-arm64@1.9.4': 2219 | optional: true 2220 | 2221 | '@biomejs/cli-darwin-x64@1.9.4': 2222 | optional: true 2223 | 2224 | '@biomejs/cli-linux-arm64-musl@1.9.4': 2225 | optional: true 2226 | 2227 | '@biomejs/cli-linux-arm64@1.9.4': 2228 | optional: true 2229 | 2230 | '@biomejs/cli-linux-x64-musl@1.9.4': 2231 | optional: true 2232 | 2233 | '@biomejs/cli-linux-x64@1.9.4': 2234 | optional: true 2235 | 2236 | '@biomejs/cli-win32-arm64@1.9.4': 2237 | optional: true 2238 | 2239 | '@biomejs/cli-win32-x64@1.9.4': 2240 | optional: true 2241 | 2242 | '@chakra-ui/react@3.2.5(@emotion/react@11.14.0(@types/react@19.0.2)(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 2243 | dependencies: 2244 | '@ark-ui/react': 4.6.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 2245 | '@emotion/is-prop-valid': 1.3.1 2246 | '@emotion/react': 11.14.0(@types/react@19.0.2)(react@19.0.0) 2247 | '@emotion/serialize': 1.3.3 2248 | '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.0.0) 2249 | '@emotion/utils': 1.4.2 2250 | '@pandacss/is-valid-prop': 0.41.0 2251 | csstype: 3.1.3 2252 | react: 19.0.0 2253 | react-dom: 19.0.0(react@19.0.0) 2254 | 2255 | '@emotion/babel-plugin@11.13.5': 2256 | dependencies: 2257 | '@babel/helper-module-imports': 7.25.9 2258 | '@babel/runtime': 7.26.0 2259 | '@emotion/hash': 0.9.2 2260 | '@emotion/memoize': 0.9.0 2261 | '@emotion/serialize': 1.3.3 2262 | babel-plugin-macros: 3.1.0 2263 | convert-source-map: 1.9.0 2264 | escape-string-regexp: 4.0.0 2265 | find-root: 1.1.0 2266 | source-map: 0.5.7 2267 | stylis: 4.2.0 2268 | transitivePeerDependencies: 2269 | - supports-color 2270 | 2271 | '@emotion/cache@11.14.0': 2272 | dependencies: 2273 | '@emotion/memoize': 0.9.0 2274 | '@emotion/sheet': 1.4.0 2275 | '@emotion/utils': 1.4.2 2276 | '@emotion/weak-memoize': 0.4.0 2277 | stylis: 4.2.0 2278 | 2279 | '@emotion/hash@0.9.2': {} 2280 | 2281 | '@emotion/is-prop-valid@1.3.1': 2282 | dependencies: 2283 | '@emotion/memoize': 0.9.0 2284 | 2285 | '@emotion/memoize@0.9.0': {} 2286 | 2287 | '@emotion/react@11.14.0(@types/react@19.0.2)(react@19.0.0)': 2288 | dependencies: 2289 | '@babel/runtime': 7.26.0 2290 | '@emotion/babel-plugin': 11.13.5 2291 | '@emotion/cache': 11.14.0 2292 | '@emotion/serialize': 1.3.3 2293 | '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.0.0) 2294 | '@emotion/utils': 1.4.2 2295 | '@emotion/weak-memoize': 0.4.0 2296 | hoist-non-react-statics: 3.3.2 2297 | react: 19.0.0 2298 | optionalDependencies: 2299 | '@types/react': 19.0.2 2300 | transitivePeerDependencies: 2301 | - supports-color 2302 | 2303 | '@emotion/serialize@1.3.3': 2304 | dependencies: 2305 | '@emotion/hash': 0.9.2 2306 | '@emotion/memoize': 0.9.0 2307 | '@emotion/unitless': 0.10.0 2308 | '@emotion/utils': 1.4.2 2309 | csstype: 3.1.3 2310 | 2311 | '@emotion/sheet@1.4.0': {} 2312 | 2313 | '@emotion/unitless@0.10.0': {} 2314 | 2315 | '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.0.0)': 2316 | dependencies: 2317 | react: 19.0.0 2318 | 2319 | '@emotion/utils@1.4.2': {} 2320 | 2321 | '@emotion/weak-memoize@0.4.0': {} 2322 | 2323 | '@esbuild/aix-ppc64@0.21.5': 2324 | optional: true 2325 | 2326 | '@esbuild/android-arm64@0.21.5': 2327 | optional: true 2328 | 2329 | '@esbuild/android-arm@0.21.5': 2330 | optional: true 2331 | 2332 | '@esbuild/android-x64@0.21.5': 2333 | optional: true 2334 | 2335 | '@esbuild/darwin-arm64@0.21.5': 2336 | optional: true 2337 | 2338 | '@esbuild/darwin-x64@0.21.5': 2339 | optional: true 2340 | 2341 | '@esbuild/freebsd-arm64@0.21.5': 2342 | optional: true 2343 | 2344 | '@esbuild/freebsd-x64@0.21.5': 2345 | optional: true 2346 | 2347 | '@esbuild/linux-arm64@0.21.5': 2348 | optional: true 2349 | 2350 | '@esbuild/linux-arm@0.21.5': 2351 | optional: true 2352 | 2353 | '@esbuild/linux-ia32@0.21.5': 2354 | optional: true 2355 | 2356 | '@esbuild/linux-loong64@0.21.5': 2357 | optional: true 2358 | 2359 | '@esbuild/linux-mips64el@0.21.5': 2360 | optional: true 2361 | 2362 | '@esbuild/linux-ppc64@0.21.5': 2363 | optional: true 2364 | 2365 | '@esbuild/linux-riscv64@0.21.5': 2366 | optional: true 2367 | 2368 | '@esbuild/linux-s390x@0.21.5': 2369 | optional: true 2370 | 2371 | '@esbuild/linux-x64@0.21.5': 2372 | optional: true 2373 | 2374 | '@esbuild/netbsd-x64@0.21.5': 2375 | optional: true 2376 | 2377 | '@esbuild/openbsd-x64@0.21.5': 2378 | optional: true 2379 | 2380 | '@esbuild/sunos-x64@0.21.5': 2381 | optional: true 2382 | 2383 | '@esbuild/win32-arm64@0.21.5': 2384 | optional: true 2385 | 2386 | '@esbuild/win32-ia32@0.21.5': 2387 | optional: true 2388 | 2389 | '@esbuild/win32-x64@0.21.5': 2390 | optional: true 2391 | 2392 | '@floating-ui/core@1.6.8': 2393 | dependencies: 2394 | '@floating-ui/utils': 0.2.8 2395 | 2396 | '@floating-ui/dom@1.6.12': 2397 | dependencies: 2398 | '@floating-ui/core': 1.6.8 2399 | '@floating-ui/utils': 0.2.8 2400 | 2401 | '@floating-ui/utils@0.2.8': {} 2402 | 2403 | '@hookform/resolvers@3.9.1(react-hook-form@7.54.2(react@19.0.0))': 2404 | dependencies: 2405 | react-hook-form: 7.54.2(react@19.0.0) 2406 | 2407 | '@internationalized/date@3.6.0': 2408 | dependencies: 2409 | '@swc/helpers': 0.5.15 2410 | 2411 | '@internationalized/number@3.6.0': 2412 | dependencies: 2413 | '@swc/helpers': 0.5.15 2414 | 2415 | '@isaacs/cliui@8.0.2': 2416 | dependencies: 2417 | string-width: 5.1.2 2418 | string-width-cjs: string-width@4.2.3 2419 | strip-ansi: 7.1.0 2420 | strip-ansi-cjs: strip-ansi@6.0.1 2421 | wrap-ansi: 8.1.0 2422 | wrap-ansi-cjs: wrap-ansi@7.0.0 2423 | 2424 | '@jridgewell/gen-mapping@0.3.8': 2425 | dependencies: 2426 | '@jridgewell/set-array': 1.2.1 2427 | '@jridgewell/sourcemap-codec': 1.5.0 2428 | '@jridgewell/trace-mapping': 0.3.25 2429 | 2430 | '@jridgewell/resolve-uri@3.1.2': {} 2431 | 2432 | '@jridgewell/set-array@1.2.1': {} 2433 | 2434 | '@jridgewell/sourcemap-codec@1.5.0': {} 2435 | 2436 | '@jridgewell/trace-mapping@0.3.25': 2437 | dependencies: 2438 | '@jridgewell/resolve-uri': 3.1.2 2439 | '@jridgewell/sourcemap-codec': 1.5.0 2440 | 2441 | '@mjackson/node-fetch-server@0.2.0': {} 2442 | 2443 | '@npmcli/git@4.1.0': 2444 | dependencies: 2445 | '@npmcli/promise-spawn': 6.0.2 2446 | lru-cache: 7.18.3 2447 | npm-pick-manifest: 8.0.2 2448 | proc-log: 3.0.0 2449 | promise-inflight: 1.0.1 2450 | promise-retry: 2.0.1 2451 | semver: 7.6.3 2452 | which: 3.0.1 2453 | transitivePeerDependencies: 2454 | - bluebird 2455 | 2456 | '@npmcli/package-json@4.0.1': 2457 | dependencies: 2458 | '@npmcli/git': 4.1.0 2459 | glob: 10.4.5 2460 | hosted-git-info: 6.1.3 2461 | json-parse-even-better-errors: 3.0.2 2462 | normalize-package-data: 5.0.0 2463 | proc-log: 3.0.0 2464 | semver: 7.6.3 2465 | transitivePeerDependencies: 2466 | - bluebird 2467 | 2468 | '@npmcli/promise-spawn@6.0.2': 2469 | dependencies: 2470 | which: 3.0.1 2471 | 2472 | '@pandacss/is-valid-prop@0.41.0': {} 2473 | 2474 | '@pkgjs/parseargs@0.11.0': 2475 | optional: true 2476 | 2477 | '@react-router/dev@7.1.1(@react-router/serve@7.1.1(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2))(@types/node@20.17.11)(babel-plugin-macros@3.1.0)(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2)(vite@5.4.11(@types/node@20.17.11))': 2478 | dependencies: 2479 | '@babel/core': 7.26.0 2480 | '@babel/generator': 7.26.3 2481 | '@babel/parser': 7.26.3 2482 | '@babel/plugin-syntax-decorators': 7.25.9(@babel/core@7.26.0) 2483 | '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) 2484 | '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) 2485 | '@babel/traverse': 7.26.4 2486 | '@babel/types': 7.26.3 2487 | '@npmcli/package-json': 4.0.1 2488 | '@react-router/node': 7.1.1(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2) 2489 | arg: 5.0.2 2490 | babel-dead-code-elimination: 1.0.8 2491 | chokidar: 4.0.3 2492 | dedent: 1.5.3(babel-plugin-macros@3.1.0) 2493 | es-module-lexer: 1.6.0 2494 | exit-hook: 2.2.1 2495 | fs-extra: 10.1.0 2496 | gunzip-maybe: 1.4.2 2497 | jsesc: 3.0.2 2498 | lodash: 4.17.21 2499 | pathe: 1.1.2 2500 | picocolors: 1.1.1 2501 | picomatch: 2.3.1 2502 | prettier: 2.8.8 2503 | react-refresh: 0.14.2 2504 | react-router: 7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 2505 | semver: 7.6.3 2506 | set-cookie-parser: 2.7.1 2507 | valibot: 0.41.0(typescript@5.7.2) 2508 | vite: 5.4.11(@types/node@20.17.11) 2509 | vite-node: 3.0.0-beta.2(@types/node@20.17.11) 2510 | optionalDependencies: 2511 | '@react-router/serve': 7.1.1(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2) 2512 | typescript: 5.7.2 2513 | transitivePeerDependencies: 2514 | - '@types/node' 2515 | - babel-plugin-macros 2516 | - bluebird 2517 | - less 2518 | - lightningcss 2519 | - sass 2520 | - sass-embedded 2521 | - stylus 2522 | - sugarss 2523 | - supports-color 2524 | - terser 2525 | 2526 | '@react-router/express@7.1.1(express@4.21.2)(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2)': 2527 | dependencies: 2528 | '@react-router/node': 7.1.1(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2) 2529 | express: 4.21.2 2530 | react-router: 7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 2531 | optionalDependencies: 2532 | typescript: 5.7.2 2533 | 2534 | '@react-router/node@7.1.1(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2)': 2535 | dependencies: 2536 | '@mjackson/node-fetch-server': 0.2.0 2537 | react-router: 7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 2538 | source-map-support: 0.5.21 2539 | stream-slice: 0.1.2 2540 | undici: 6.21.0 2541 | optionalDependencies: 2542 | typescript: 5.7.2 2543 | 2544 | '@react-router/serve@7.1.1(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2)': 2545 | dependencies: 2546 | '@react-router/express': 7.1.1(express@4.21.2)(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2) 2547 | '@react-router/node': 7.1.1(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(typescript@5.7.2) 2548 | compression: 1.7.5 2549 | express: 4.21.2 2550 | get-port: 5.1.1 2551 | morgan: 1.10.0 2552 | react-router: 7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 2553 | source-map-support: 0.5.21 2554 | transitivePeerDependencies: 2555 | - supports-color 2556 | - typescript 2557 | 2558 | '@rollup/rollup-android-arm-eabi@4.29.1': 2559 | optional: true 2560 | 2561 | '@rollup/rollup-android-arm64@4.29.1': 2562 | optional: true 2563 | 2564 | '@rollup/rollup-darwin-arm64@4.29.1': 2565 | optional: true 2566 | 2567 | '@rollup/rollup-darwin-x64@4.29.1': 2568 | optional: true 2569 | 2570 | '@rollup/rollup-freebsd-arm64@4.29.1': 2571 | optional: true 2572 | 2573 | '@rollup/rollup-freebsd-x64@4.29.1': 2574 | optional: true 2575 | 2576 | '@rollup/rollup-linux-arm-gnueabihf@4.29.1': 2577 | optional: true 2578 | 2579 | '@rollup/rollup-linux-arm-musleabihf@4.29.1': 2580 | optional: true 2581 | 2582 | '@rollup/rollup-linux-arm64-gnu@4.29.1': 2583 | optional: true 2584 | 2585 | '@rollup/rollup-linux-arm64-musl@4.29.1': 2586 | optional: true 2587 | 2588 | '@rollup/rollup-linux-loongarch64-gnu@4.29.1': 2589 | optional: true 2590 | 2591 | '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': 2592 | optional: true 2593 | 2594 | '@rollup/rollup-linux-riscv64-gnu@4.29.1': 2595 | optional: true 2596 | 2597 | '@rollup/rollup-linux-s390x-gnu@4.29.1': 2598 | optional: true 2599 | 2600 | '@rollup/rollup-linux-x64-gnu@4.29.1': 2601 | optional: true 2602 | 2603 | '@rollup/rollup-linux-x64-musl@4.29.1': 2604 | optional: true 2605 | 2606 | '@rollup/rollup-win32-arm64-msvc@4.29.1': 2607 | optional: true 2608 | 2609 | '@rollup/rollup-win32-ia32-msvc@4.29.1': 2610 | optional: true 2611 | 2612 | '@rollup/rollup-win32-x64-msvc@4.29.1': 2613 | optional: true 2614 | 2615 | '@swc/helpers@0.5.15': 2616 | dependencies: 2617 | tslib: 2.8.1 2618 | 2619 | '@types/cookie@0.6.0': {} 2620 | 2621 | '@types/estree@1.0.6': {} 2622 | 2623 | '@types/node@20.17.11': 2624 | dependencies: 2625 | undici-types: 6.19.8 2626 | optional: true 2627 | 2628 | '@types/parse-json@4.0.2': {} 2629 | 2630 | '@types/react-dom@19.0.2(@types/react@19.0.2)': 2631 | dependencies: 2632 | '@types/react': 19.0.2 2633 | 2634 | '@types/react@19.0.2': 2635 | dependencies: 2636 | csstype: 3.1.3 2637 | 2638 | '@zag-js/accordion@0.79.1': 2639 | dependencies: 2640 | '@zag-js/anatomy': 0.79.1 2641 | '@zag-js/core': 0.79.1 2642 | '@zag-js/dom-event': 0.79.1 2643 | '@zag-js/dom-query': 0.79.1 2644 | '@zag-js/types': 0.79.1 2645 | '@zag-js/utils': 0.79.1 2646 | 2647 | '@zag-js/anatomy@0.79.1': {} 2648 | 2649 | '@zag-js/aria-hidden@0.79.1': {} 2650 | 2651 | '@zag-js/auto-resize@0.79.1': 2652 | dependencies: 2653 | '@zag-js/dom-query': 0.79.1 2654 | 2655 | '@zag-js/avatar@0.79.1': 2656 | dependencies: 2657 | '@zag-js/anatomy': 0.79.1 2658 | '@zag-js/core': 0.79.1 2659 | '@zag-js/dom-query': 0.79.1 2660 | '@zag-js/types': 0.79.1 2661 | '@zag-js/utils': 0.79.1 2662 | 2663 | '@zag-js/carousel@0.79.1': 2664 | dependencies: 2665 | '@zag-js/anatomy': 0.79.1 2666 | '@zag-js/core': 0.79.1 2667 | '@zag-js/dom-event': 0.79.1 2668 | '@zag-js/dom-query': 0.79.1 2669 | '@zag-js/scroll-snap': 0.79.1 2670 | '@zag-js/types': 0.79.1 2671 | '@zag-js/utils': 0.79.1 2672 | 2673 | '@zag-js/checkbox@0.79.1': 2674 | dependencies: 2675 | '@zag-js/anatomy': 0.79.1 2676 | '@zag-js/core': 0.79.1 2677 | '@zag-js/dom-event': 0.79.1 2678 | '@zag-js/dom-query': 0.79.1 2679 | '@zag-js/focus-visible': 0.79.1 2680 | '@zag-js/form-utils': 0.79.1 2681 | '@zag-js/types': 0.79.1 2682 | '@zag-js/utils': 0.79.1 2683 | 2684 | '@zag-js/clipboard@0.79.1': 2685 | dependencies: 2686 | '@zag-js/anatomy': 0.79.1 2687 | '@zag-js/core': 0.79.1 2688 | '@zag-js/dom-query': 0.79.1 2689 | '@zag-js/types': 0.79.1 2690 | '@zag-js/utils': 0.79.1 2691 | 2692 | '@zag-js/collapsible@0.79.1': 2693 | dependencies: 2694 | '@zag-js/anatomy': 0.79.1 2695 | '@zag-js/core': 0.79.1 2696 | '@zag-js/dom-query': 0.79.1 2697 | '@zag-js/types': 0.79.1 2698 | '@zag-js/utils': 0.79.1 2699 | 2700 | '@zag-js/collection@0.79.1': 2701 | dependencies: 2702 | '@zag-js/utils': 0.79.1 2703 | 2704 | '@zag-js/color-picker@0.79.1': 2705 | dependencies: 2706 | '@zag-js/anatomy': 0.79.1 2707 | '@zag-js/color-utils': 0.79.1 2708 | '@zag-js/core': 0.79.1 2709 | '@zag-js/dismissable': 0.79.1 2710 | '@zag-js/dom-event': 0.79.1 2711 | '@zag-js/dom-query': 0.79.1 2712 | '@zag-js/form-utils': 0.79.1 2713 | '@zag-js/popper': 0.79.1 2714 | '@zag-js/text-selection': 0.79.1 2715 | '@zag-js/types': 0.79.1 2716 | '@zag-js/utils': 0.79.1 2717 | 2718 | '@zag-js/color-utils@0.79.1': 2719 | dependencies: 2720 | '@zag-js/numeric-range': 0.79.1 2721 | 2722 | '@zag-js/combobox@0.79.1': 2723 | dependencies: 2724 | '@zag-js/anatomy': 0.79.1 2725 | '@zag-js/aria-hidden': 0.79.1 2726 | '@zag-js/collection': 0.79.1 2727 | '@zag-js/core': 0.79.1 2728 | '@zag-js/dismissable': 0.79.1 2729 | '@zag-js/dom-event': 0.79.1 2730 | '@zag-js/dom-query': 0.79.1 2731 | '@zag-js/popper': 0.79.1 2732 | '@zag-js/types': 0.79.1 2733 | '@zag-js/utils': 0.79.1 2734 | 2735 | '@zag-js/core@0.79.1': 2736 | dependencies: 2737 | '@zag-js/store': 0.79.1 2738 | '@zag-js/utils': 0.79.1 2739 | 2740 | '@zag-js/date-picker@0.79.1(@internationalized/date@3.6.0)': 2741 | dependencies: 2742 | '@internationalized/date': 3.6.0 2743 | '@zag-js/anatomy': 0.79.1 2744 | '@zag-js/core': 0.79.1 2745 | '@zag-js/date-utils': 0.79.1(@internationalized/date@3.6.0) 2746 | '@zag-js/dismissable': 0.79.1 2747 | '@zag-js/dom-event': 0.79.1 2748 | '@zag-js/dom-query': 0.79.1 2749 | '@zag-js/form-utils': 0.79.1 2750 | '@zag-js/live-region': 0.79.1 2751 | '@zag-js/popper': 0.79.1 2752 | '@zag-js/text-selection': 0.79.1 2753 | '@zag-js/types': 0.79.1 2754 | '@zag-js/utils': 0.79.1 2755 | 2756 | '@zag-js/date-utils@0.79.1(@internationalized/date@3.6.0)': 2757 | dependencies: 2758 | '@internationalized/date': 3.6.0 2759 | 2760 | '@zag-js/dialog@0.79.1': 2761 | dependencies: 2762 | '@zag-js/anatomy': 0.79.1 2763 | '@zag-js/aria-hidden': 0.79.1 2764 | '@zag-js/core': 0.79.1 2765 | '@zag-js/dismissable': 0.79.1 2766 | '@zag-js/dom-query': 0.79.1 2767 | '@zag-js/focus-trap': 0.79.1 2768 | '@zag-js/remove-scroll': 0.79.1 2769 | '@zag-js/types': 0.79.1 2770 | '@zag-js/utils': 0.79.1 2771 | 2772 | '@zag-js/dismissable@0.79.1': 2773 | dependencies: 2774 | '@zag-js/dom-event': 0.79.1 2775 | '@zag-js/dom-query': 0.79.1 2776 | '@zag-js/interact-outside': 0.79.1 2777 | '@zag-js/utils': 0.79.1 2778 | 2779 | '@zag-js/dom-event@0.79.1': 2780 | dependencies: 2781 | '@zag-js/dom-query': 0.79.1 2782 | '@zag-js/text-selection': 0.79.1 2783 | '@zag-js/types': 0.79.1 2784 | 2785 | '@zag-js/dom-event@0.79.3': 2786 | dependencies: 2787 | '@zag-js/dom-query': 0.79.3 2788 | '@zag-js/text-selection': 0.79.3 2789 | '@zag-js/types': 0.79.3 2790 | 2791 | '@zag-js/dom-query@0.79.1': {} 2792 | 2793 | '@zag-js/dom-query@0.79.3': {} 2794 | 2795 | '@zag-js/editable@0.79.1': 2796 | dependencies: 2797 | '@zag-js/anatomy': 0.79.1 2798 | '@zag-js/core': 0.79.1 2799 | '@zag-js/dom-event': 0.79.1 2800 | '@zag-js/dom-query': 0.79.1 2801 | '@zag-js/form-utils': 0.79.1 2802 | '@zag-js/interact-outside': 0.79.1 2803 | '@zag-js/types': 0.79.1 2804 | '@zag-js/utils': 0.79.1 2805 | 2806 | '@zag-js/element-rect@0.79.1': {} 2807 | 2808 | '@zag-js/element-size@0.79.1': {} 2809 | 2810 | '@zag-js/file-upload@0.79.1': 2811 | dependencies: 2812 | '@zag-js/anatomy': 0.79.1 2813 | '@zag-js/core': 0.79.1 2814 | '@zag-js/dom-query': 0.79.1 2815 | '@zag-js/file-utils': 0.79.1 2816 | '@zag-js/i18n-utils': 0.79.1 2817 | '@zag-js/types': 0.79.1 2818 | '@zag-js/utils': 0.79.1 2819 | 2820 | '@zag-js/file-utils@0.79.1': 2821 | dependencies: 2822 | '@zag-js/i18n-utils': 0.79.1 2823 | 2824 | '@zag-js/focus-trap@0.79.1': 2825 | dependencies: 2826 | '@zag-js/dom-query': 0.79.1 2827 | focus-trap: 7.6.2 2828 | 2829 | '@zag-js/focus-visible@0.79.1': 2830 | dependencies: 2831 | '@zag-js/dom-query': 0.79.1 2832 | 2833 | '@zag-js/form-utils@0.79.1': {} 2834 | 2835 | '@zag-js/highlight-word@0.79.1': {} 2836 | 2837 | '@zag-js/hover-card@0.79.1': 2838 | dependencies: 2839 | '@zag-js/anatomy': 0.79.1 2840 | '@zag-js/core': 0.79.1 2841 | '@zag-js/dismissable': 0.79.1 2842 | '@zag-js/dom-query': 0.79.1 2843 | '@zag-js/popper': 0.79.1 2844 | '@zag-js/types': 0.79.1 2845 | '@zag-js/utils': 0.79.1 2846 | 2847 | '@zag-js/i18n-utils@0.79.1': 2848 | dependencies: 2849 | '@zag-js/dom-query': 0.79.1 2850 | 2851 | '@zag-js/interact-outside@0.79.1': 2852 | dependencies: 2853 | '@zag-js/dom-event': 0.79.1 2854 | '@zag-js/dom-query': 0.79.1 2855 | '@zag-js/utils': 0.79.1 2856 | 2857 | '@zag-js/live-region@0.79.1': {} 2858 | 2859 | '@zag-js/menu@0.79.1': 2860 | dependencies: 2861 | '@zag-js/anatomy': 0.79.1 2862 | '@zag-js/core': 0.79.1 2863 | '@zag-js/dismissable': 0.79.1 2864 | '@zag-js/dom-event': 0.79.1 2865 | '@zag-js/dom-query': 0.79.1 2866 | '@zag-js/popper': 0.79.1 2867 | '@zag-js/rect-utils': 0.79.1 2868 | '@zag-js/types': 0.79.1 2869 | '@zag-js/utils': 0.79.1 2870 | 2871 | '@zag-js/number-input@0.79.1': 2872 | dependencies: 2873 | '@internationalized/number': 3.6.0 2874 | '@zag-js/anatomy': 0.79.1 2875 | '@zag-js/core': 0.79.1 2876 | '@zag-js/dom-event': 0.79.1 2877 | '@zag-js/dom-query': 0.79.1 2878 | '@zag-js/form-utils': 0.79.1 2879 | '@zag-js/number-utils': 0.79.1 2880 | '@zag-js/types': 0.79.1 2881 | '@zag-js/utils': 0.79.1 2882 | 2883 | '@zag-js/number-utils@0.79.1': {} 2884 | 2885 | '@zag-js/numeric-range@0.79.1': {} 2886 | 2887 | '@zag-js/pagination@0.79.1': 2888 | dependencies: 2889 | '@zag-js/anatomy': 0.79.1 2890 | '@zag-js/core': 0.79.1 2891 | '@zag-js/dom-query': 0.79.1 2892 | '@zag-js/types': 0.79.1 2893 | '@zag-js/utils': 0.79.1 2894 | 2895 | '@zag-js/pin-input@0.79.1': 2896 | dependencies: 2897 | '@zag-js/anatomy': 0.79.1 2898 | '@zag-js/core': 0.79.1 2899 | '@zag-js/dom-event': 0.79.1 2900 | '@zag-js/dom-query': 0.79.1 2901 | '@zag-js/form-utils': 0.79.1 2902 | '@zag-js/types': 0.79.1 2903 | '@zag-js/utils': 0.79.1 2904 | 2905 | '@zag-js/popover@0.79.1': 2906 | dependencies: 2907 | '@zag-js/anatomy': 0.79.1 2908 | '@zag-js/aria-hidden': 0.79.1 2909 | '@zag-js/core': 0.79.1 2910 | '@zag-js/dismissable': 0.79.1 2911 | '@zag-js/dom-query': 0.79.1 2912 | '@zag-js/focus-trap': 0.79.1 2913 | '@zag-js/popper': 0.79.1 2914 | '@zag-js/remove-scroll': 0.79.1 2915 | '@zag-js/types': 0.79.1 2916 | '@zag-js/utils': 0.79.1 2917 | 2918 | '@zag-js/popper@0.79.1': 2919 | dependencies: 2920 | '@floating-ui/dom': 1.6.12 2921 | '@zag-js/dom-query': 0.79.1 2922 | '@zag-js/utils': 0.79.1 2923 | 2924 | '@zag-js/presence@0.79.1': 2925 | dependencies: 2926 | '@zag-js/core': 0.79.1 2927 | '@zag-js/types': 0.79.1 2928 | 2929 | '@zag-js/progress@0.79.1': 2930 | dependencies: 2931 | '@zag-js/anatomy': 0.79.1 2932 | '@zag-js/core': 0.79.1 2933 | '@zag-js/dom-query': 0.79.1 2934 | '@zag-js/types': 0.79.1 2935 | '@zag-js/utils': 0.79.1 2936 | 2937 | '@zag-js/qr-code@0.79.1': 2938 | dependencies: 2939 | '@zag-js/anatomy': 0.79.1 2940 | '@zag-js/core': 0.79.1 2941 | '@zag-js/dom-query': 0.79.1 2942 | '@zag-js/types': 0.79.1 2943 | '@zag-js/utils': 0.79.1 2944 | proxy-memoize: 3.0.1 2945 | uqr: 0.1.2 2946 | 2947 | '@zag-js/radio-group@0.79.1': 2948 | dependencies: 2949 | '@zag-js/anatomy': 0.79.1 2950 | '@zag-js/core': 0.79.1 2951 | '@zag-js/dom-query': 0.79.1 2952 | '@zag-js/element-rect': 0.79.1 2953 | '@zag-js/focus-visible': 0.79.1 2954 | '@zag-js/form-utils': 0.79.1 2955 | '@zag-js/types': 0.79.1 2956 | '@zag-js/utils': 0.79.1 2957 | 2958 | '@zag-js/rating-group@0.79.1': 2959 | dependencies: 2960 | '@zag-js/anatomy': 0.79.1 2961 | '@zag-js/core': 0.79.1 2962 | '@zag-js/dom-event': 0.79.1 2963 | '@zag-js/dom-query': 0.79.1 2964 | '@zag-js/form-utils': 0.79.1 2965 | '@zag-js/types': 0.79.1 2966 | '@zag-js/utils': 0.79.1 2967 | 2968 | '@zag-js/react@0.79.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 2969 | dependencies: 2970 | '@zag-js/core': 0.79.1 2971 | '@zag-js/store': 0.79.1 2972 | '@zag-js/types': 0.79.1 2973 | proxy-compare: 3.0.1 2974 | react: 19.0.0 2975 | react-dom: 19.0.0(react@19.0.0) 2976 | 2977 | '@zag-js/rect-utils@0.79.1': {} 2978 | 2979 | '@zag-js/remove-scroll@0.79.1': 2980 | dependencies: 2981 | '@zag-js/dom-query': 0.79.1 2982 | 2983 | '@zag-js/scroll-snap@0.79.1': 2984 | dependencies: 2985 | '@zag-js/dom-query': 0.79.1 2986 | 2987 | '@zag-js/select@0.79.1': 2988 | dependencies: 2989 | '@zag-js/anatomy': 0.79.1 2990 | '@zag-js/collection': 0.79.1 2991 | '@zag-js/core': 0.79.1 2992 | '@zag-js/dismissable': 0.79.1 2993 | '@zag-js/dom-event': 0.79.1 2994 | '@zag-js/dom-query': 0.79.1 2995 | '@zag-js/form-utils': 0.79.1 2996 | '@zag-js/popper': 0.79.1 2997 | '@zag-js/types': 0.79.1 2998 | '@zag-js/utils': 0.79.1 2999 | 3000 | '@zag-js/signature-pad@0.79.1': 3001 | dependencies: 3002 | '@zag-js/anatomy': 0.79.1 3003 | '@zag-js/core': 0.79.1 3004 | '@zag-js/dom-event': 0.79.1 3005 | '@zag-js/dom-query': 0.79.1 3006 | '@zag-js/types': 0.79.1 3007 | '@zag-js/utils': 0.79.1 3008 | perfect-freehand: 1.2.2 3009 | 3010 | '@zag-js/slider@0.79.1': 3011 | dependencies: 3012 | '@zag-js/anatomy': 0.79.1 3013 | '@zag-js/core': 0.79.1 3014 | '@zag-js/dom-event': 0.79.1 3015 | '@zag-js/dom-query': 0.79.1 3016 | '@zag-js/element-size': 0.79.1 3017 | '@zag-js/form-utils': 0.79.1 3018 | '@zag-js/numeric-range': 0.79.1 3019 | '@zag-js/types': 0.79.1 3020 | '@zag-js/utils': 0.79.1 3021 | 3022 | '@zag-js/splitter@0.79.1': 3023 | dependencies: 3024 | '@zag-js/anatomy': 0.79.1 3025 | '@zag-js/core': 0.79.1 3026 | '@zag-js/dom-event': 0.79.1 3027 | '@zag-js/dom-query': 0.79.1 3028 | '@zag-js/number-utils': 0.79.1 3029 | '@zag-js/types': 0.79.1 3030 | '@zag-js/utils': 0.79.1 3031 | 3032 | '@zag-js/steps@0.79.1': 3033 | dependencies: 3034 | '@zag-js/anatomy': 0.79.1 3035 | '@zag-js/core': 0.79.1 3036 | '@zag-js/dom-query': 0.79.1 3037 | '@zag-js/types': 0.79.1 3038 | '@zag-js/utils': 0.79.1 3039 | 3040 | '@zag-js/store@0.79.1': 3041 | dependencies: 3042 | proxy-compare: 3.0.1 3043 | 3044 | '@zag-js/switch@0.79.1': 3045 | dependencies: 3046 | '@zag-js/anatomy': 0.79.1 3047 | '@zag-js/core': 0.79.1 3048 | '@zag-js/dom-event': 0.79.1 3049 | '@zag-js/dom-query': 0.79.1 3050 | '@zag-js/focus-visible': 0.79.1 3051 | '@zag-js/form-utils': 0.79.1 3052 | '@zag-js/types': 0.79.1 3053 | '@zag-js/utils': 0.79.1 3054 | 3055 | '@zag-js/tabs@0.79.1': 3056 | dependencies: 3057 | '@zag-js/anatomy': 0.79.1 3058 | '@zag-js/core': 0.79.1 3059 | '@zag-js/dom-event': 0.79.1 3060 | '@zag-js/dom-query': 0.79.1 3061 | '@zag-js/element-rect': 0.79.1 3062 | '@zag-js/types': 0.79.1 3063 | '@zag-js/utils': 0.79.1 3064 | 3065 | '@zag-js/tags-input@0.79.1': 3066 | dependencies: 3067 | '@zag-js/anatomy': 0.79.1 3068 | '@zag-js/auto-resize': 0.79.1 3069 | '@zag-js/core': 0.79.1 3070 | '@zag-js/dom-event': 0.79.1 3071 | '@zag-js/dom-query': 0.79.1 3072 | '@zag-js/form-utils': 0.79.1 3073 | '@zag-js/interact-outside': 0.79.1 3074 | '@zag-js/live-region': 0.79.1 3075 | '@zag-js/types': 0.79.1 3076 | '@zag-js/utils': 0.79.1 3077 | 3078 | '@zag-js/text-selection@0.79.1': 3079 | dependencies: 3080 | '@zag-js/dom-query': 0.79.1 3081 | 3082 | '@zag-js/text-selection@0.79.3': 3083 | dependencies: 3084 | '@zag-js/dom-query': 0.79.3 3085 | 3086 | '@zag-js/time-picker@0.79.1(@internationalized/date@3.6.0)': 3087 | dependencies: 3088 | '@internationalized/date': 3.6.0 3089 | '@zag-js/anatomy': 0.79.1 3090 | '@zag-js/core': 0.79.1 3091 | '@zag-js/dismissable': 0.79.1 3092 | '@zag-js/dom-event': 0.79.3 3093 | '@zag-js/dom-query': 0.79.1 3094 | '@zag-js/popper': 0.79.1 3095 | '@zag-js/types': 0.79.1 3096 | '@zag-js/utils': 0.79.1 3097 | 3098 | '@zag-js/timer@0.79.1': 3099 | dependencies: 3100 | '@zag-js/anatomy': 0.79.1 3101 | '@zag-js/core': 0.79.1 3102 | '@zag-js/dom-query': 0.79.1 3103 | '@zag-js/types': 0.79.1 3104 | '@zag-js/utils': 0.79.1 3105 | 3106 | '@zag-js/toast@0.79.1': 3107 | dependencies: 3108 | '@zag-js/anatomy': 0.79.1 3109 | '@zag-js/core': 0.79.1 3110 | '@zag-js/dismissable': 0.79.1 3111 | '@zag-js/dom-event': 0.79.1 3112 | '@zag-js/dom-query': 0.79.1 3113 | '@zag-js/types': 0.79.1 3114 | '@zag-js/utils': 0.79.1 3115 | 3116 | '@zag-js/toggle-group@0.79.1': 3117 | dependencies: 3118 | '@zag-js/anatomy': 0.79.1 3119 | '@zag-js/core': 0.79.1 3120 | '@zag-js/dom-event': 0.79.1 3121 | '@zag-js/dom-query': 0.79.1 3122 | '@zag-js/types': 0.79.1 3123 | '@zag-js/utils': 0.79.1 3124 | 3125 | '@zag-js/tooltip@0.79.1': 3126 | dependencies: 3127 | '@zag-js/anatomy': 0.79.1 3128 | '@zag-js/core': 0.79.1 3129 | '@zag-js/dom-event': 0.79.1 3130 | '@zag-js/dom-query': 0.79.1 3131 | '@zag-js/focus-visible': 0.79.1 3132 | '@zag-js/popper': 0.79.1 3133 | '@zag-js/types': 0.79.1 3134 | '@zag-js/utils': 0.79.1 3135 | 3136 | '@zag-js/tree-view@0.79.1': 3137 | dependencies: 3138 | '@zag-js/anatomy': 0.79.1 3139 | '@zag-js/collection': 0.79.1 3140 | '@zag-js/core': 0.79.1 3141 | '@zag-js/dom-event': 0.79.1 3142 | '@zag-js/dom-query': 0.79.1 3143 | '@zag-js/types': 0.79.1 3144 | '@zag-js/utils': 0.79.1 3145 | 3146 | '@zag-js/types@0.79.1': 3147 | dependencies: 3148 | csstype: 3.1.3 3149 | 3150 | '@zag-js/types@0.79.3': 3151 | dependencies: 3152 | csstype: 3.1.3 3153 | 3154 | '@zag-js/utils@0.79.1': {} 3155 | 3156 | accepts@1.3.8: 3157 | dependencies: 3158 | mime-types: 2.1.35 3159 | negotiator: 0.6.3 3160 | 3161 | ansi-regex@5.0.1: {} 3162 | 3163 | ansi-regex@6.1.0: {} 3164 | 3165 | ansi-styles@4.3.0: 3166 | dependencies: 3167 | color-convert: 2.0.1 3168 | 3169 | ansi-styles@6.2.1: {} 3170 | 3171 | arg@5.0.2: {} 3172 | 3173 | array-flatten@1.1.1: {} 3174 | 3175 | babel-dead-code-elimination@1.0.8: 3176 | dependencies: 3177 | '@babel/core': 7.26.0 3178 | '@babel/parser': 7.26.3 3179 | '@babel/traverse': 7.26.4 3180 | '@babel/types': 7.26.3 3181 | transitivePeerDependencies: 3182 | - supports-color 3183 | 3184 | babel-plugin-macros@3.1.0: 3185 | dependencies: 3186 | '@babel/runtime': 7.26.0 3187 | cosmiconfig: 7.1.0 3188 | resolve: 1.22.10 3189 | 3190 | balanced-match@1.0.2: {} 3191 | 3192 | basic-auth@2.0.1: 3193 | dependencies: 3194 | safe-buffer: 5.1.2 3195 | 3196 | body-parser@1.20.3: 3197 | dependencies: 3198 | bytes: 3.1.2 3199 | content-type: 1.0.5 3200 | debug: 2.6.9 3201 | depd: 2.0.0 3202 | destroy: 1.2.0 3203 | http-errors: 2.0.0 3204 | iconv-lite: 0.4.24 3205 | on-finished: 2.4.1 3206 | qs: 6.13.0 3207 | raw-body: 2.5.2 3208 | type-is: 1.6.18 3209 | unpipe: 1.0.0 3210 | transitivePeerDependencies: 3211 | - supports-color 3212 | 3213 | brace-expansion@2.0.1: 3214 | dependencies: 3215 | balanced-match: 1.0.2 3216 | 3217 | browserify-zlib@0.1.4: 3218 | dependencies: 3219 | pako: 0.2.9 3220 | 3221 | browserslist@4.24.3: 3222 | dependencies: 3223 | caniuse-lite: 1.0.30001690 3224 | electron-to-chromium: 1.5.76 3225 | node-releases: 2.0.19 3226 | update-browserslist-db: 1.1.1(browserslist@4.24.3) 3227 | 3228 | buffer-from@1.1.2: {} 3229 | 3230 | bytes@3.1.2: {} 3231 | 3232 | cac@6.7.14: {} 3233 | 3234 | call-bind-apply-helpers@1.0.1: 3235 | dependencies: 3236 | es-errors: 1.3.0 3237 | function-bind: 1.1.2 3238 | 3239 | call-bound@1.0.3: 3240 | dependencies: 3241 | call-bind-apply-helpers: 1.0.1 3242 | get-intrinsic: 1.2.7 3243 | 3244 | callsites@3.1.0: {} 3245 | 3246 | caniuse-lite@1.0.30001690: {} 3247 | 3248 | chokidar@4.0.3: 3249 | dependencies: 3250 | readdirp: 4.0.2 3251 | 3252 | color-convert@2.0.1: 3253 | dependencies: 3254 | color-name: 1.1.4 3255 | 3256 | color-name@1.1.4: {} 3257 | 3258 | compressible@2.0.18: 3259 | dependencies: 3260 | mime-db: 1.53.0 3261 | 3262 | compression@1.7.5: 3263 | dependencies: 3264 | bytes: 3.1.2 3265 | compressible: 2.0.18 3266 | debug: 2.6.9 3267 | negotiator: 0.6.4 3268 | on-headers: 1.0.2 3269 | safe-buffer: 5.2.1 3270 | vary: 1.1.2 3271 | transitivePeerDependencies: 3272 | - supports-color 3273 | 3274 | content-disposition@0.5.4: 3275 | dependencies: 3276 | safe-buffer: 5.2.1 3277 | 3278 | content-type@1.0.5: {} 3279 | 3280 | convert-source-map@1.9.0: {} 3281 | 3282 | convert-source-map@2.0.0: {} 3283 | 3284 | cookie-signature@1.0.6: {} 3285 | 3286 | cookie@0.7.1: {} 3287 | 3288 | cookie@1.0.2: {} 3289 | 3290 | core-util-is@1.0.3: {} 3291 | 3292 | cosmiconfig@7.1.0: 3293 | dependencies: 3294 | '@types/parse-json': 4.0.2 3295 | import-fresh: 3.3.0 3296 | parse-json: 5.2.0 3297 | path-type: 4.0.0 3298 | yaml: 1.10.2 3299 | 3300 | cross-env@7.0.3: 3301 | dependencies: 3302 | cross-spawn: 7.0.6 3303 | 3304 | cross-spawn@7.0.6: 3305 | dependencies: 3306 | path-key: 3.1.1 3307 | shebang-command: 2.0.0 3308 | which: 2.0.2 3309 | 3310 | csstype@3.1.3: {} 3311 | 3312 | debug@2.6.9: 3313 | dependencies: 3314 | ms: 2.0.0 3315 | 3316 | debug@4.4.0: 3317 | dependencies: 3318 | ms: 2.1.3 3319 | 3320 | dedent@1.5.3(babel-plugin-macros@3.1.0): 3321 | optionalDependencies: 3322 | babel-plugin-macros: 3.1.0 3323 | 3324 | depd@2.0.0: {} 3325 | 3326 | destroy@1.2.0: {} 3327 | 3328 | dunder-proto@1.0.1: 3329 | dependencies: 3330 | call-bind-apply-helpers: 1.0.1 3331 | es-errors: 1.3.0 3332 | gopd: 1.2.0 3333 | 3334 | duplexify@3.7.1: 3335 | dependencies: 3336 | end-of-stream: 1.4.4 3337 | inherits: 2.0.4 3338 | readable-stream: 2.3.8 3339 | stream-shift: 1.0.3 3340 | 3341 | eastasianwidth@0.2.0: {} 3342 | 3343 | ee-first@1.1.1: {} 3344 | 3345 | electron-to-chromium@1.5.76: {} 3346 | 3347 | emoji-regex@8.0.0: {} 3348 | 3349 | emoji-regex@9.2.2: {} 3350 | 3351 | encodeurl@1.0.2: {} 3352 | 3353 | encodeurl@2.0.0: {} 3354 | 3355 | end-of-stream@1.4.4: 3356 | dependencies: 3357 | once: 1.4.0 3358 | 3359 | err-code@2.0.3: {} 3360 | 3361 | error-ex@1.3.2: 3362 | dependencies: 3363 | is-arrayish: 0.2.1 3364 | 3365 | es-define-property@1.0.1: {} 3366 | 3367 | es-errors@1.3.0: {} 3368 | 3369 | es-module-lexer@1.6.0: {} 3370 | 3371 | es-object-atoms@1.0.0: 3372 | dependencies: 3373 | es-errors: 1.3.0 3374 | 3375 | esbuild@0.21.5: 3376 | optionalDependencies: 3377 | '@esbuild/aix-ppc64': 0.21.5 3378 | '@esbuild/android-arm': 0.21.5 3379 | '@esbuild/android-arm64': 0.21.5 3380 | '@esbuild/android-x64': 0.21.5 3381 | '@esbuild/darwin-arm64': 0.21.5 3382 | '@esbuild/darwin-x64': 0.21.5 3383 | '@esbuild/freebsd-arm64': 0.21.5 3384 | '@esbuild/freebsd-x64': 0.21.5 3385 | '@esbuild/linux-arm': 0.21.5 3386 | '@esbuild/linux-arm64': 0.21.5 3387 | '@esbuild/linux-ia32': 0.21.5 3388 | '@esbuild/linux-loong64': 0.21.5 3389 | '@esbuild/linux-mips64el': 0.21.5 3390 | '@esbuild/linux-ppc64': 0.21.5 3391 | '@esbuild/linux-riscv64': 0.21.5 3392 | '@esbuild/linux-s390x': 0.21.5 3393 | '@esbuild/linux-x64': 0.21.5 3394 | '@esbuild/netbsd-x64': 0.21.5 3395 | '@esbuild/openbsd-x64': 0.21.5 3396 | '@esbuild/sunos-x64': 0.21.5 3397 | '@esbuild/win32-arm64': 0.21.5 3398 | '@esbuild/win32-ia32': 0.21.5 3399 | '@esbuild/win32-x64': 0.21.5 3400 | 3401 | escalade@3.2.0: {} 3402 | 3403 | escape-html@1.0.3: {} 3404 | 3405 | escape-string-regexp@4.0.0: {} 3406 | 3407 | etag@1.8.1: {} 3408 | 3409 | exit-hook@2.2.1: {} 3410 | 3411 | express@4.21.2: 3412 | dependencies: 3413 | accepts: 1.3.8 3414 | array-flatten: 1.1.1 3415 | body-parser: 1.20.3 3416 | content-disposition: 0.5.4 3417 | content-type: 1.0.5 3418 | cookie: 0.7.1 3419 | cookie-signature: 1.0.6 3420 | debug: 2.6.9 3421 | depd: 2.0.0 3422 | encodeurl: 2.0.0 3423 | escape-html: 1.0.3 3424 | etag: 1.8.1 3425 | finalhandler: 1.3.1 3426 | fresh: 0.5.2 3427 | http-errors: 2.0.0 3428 | merge-descriptors: 1.0.3 3429 | methods: 1.1.2 3430 | on-finished: 2.4.1 3431 | parseurl: 1.3.3 3432 | path-to-regexp: 0.1.12 3433 | proxy-addr: 2.0.7 3434 | qs: 6.13.0 3435 | range-parser: 1.2.1 3436 | safe-buffer: 5.2.1 3437 | send: 0.19.0 3438 | serve-static: 1.16.2 3439 | setprototypeof: 1.2.0 3440 | statuses: 2.0.1 3441 | type-is: 1.6.18 3442 | utils-merge: 1.0.1 3443 | vary: 1.1.2 3444 | transitivePeerDependencies: 3445 | - supports-color 3446 | 3447 | finalhandler@1.3.1: 3448 | dependencies: 3449 | debug: 2.6.9 3450 | encodeurl: 2.0.0 3451 | escape-html: 1.0.3 3452 | on-finished: 2.4.1 3453 | parseurl: 1.3.3 3454 | statuses: 2.0.1 3455 | unpipe: 1.0.0 3456 | transitivePeerDependencies: 3457 | - supports-color 3458 | 3459 | find-root@1.1.0: {} 3460 | 3461 | focus-trap@7.6.2: 3462 | dependencies: 3463 | tabbable: 6.2.0 3464 | 3465 | foreground-child@3.3.0: 3466 | dependencies: 3467 | cross-spawn: 7.0.6 3468 | signal-exit: 4.1.0 3469 | 3470 | forwarded@0.2.0: {} 3471 | 3472 | fresh@0.5.2: {} 3473 | 3474 | fs-extra@10.1.0: 3475 | dependencies: 3476 | graceful-fs: 4.2.11 3477 | jsonfile: 6.1.0 3478 | universalify: 2.0.1 3479 | 3480 | fsevents@2.3.3: 3481 | optional: true 3482 | 3483 | function-bind@1.1.2: {} 3484 | 3485 | gensync@1.0.0-beta.2: {} 3486 | 3487 | get-intrinsic@1.2.7: 3488 | dependencies: 3489 | call-bind-apply-helpers: 1.0.1 3490 | es-define-property: 1.0.1 3491 | es-errors: 1.3.0 3492 | es-object-atoms: 1.0.0 3493 | function-bind: 1.1.2 3494 | get-proto: 1.0.1 3495 | gopd: 1.2.0 3496 | has-symbols: 1.1.0 3497 | hasown: 2.0.2 3498 | math-intrinsics: 1.1.0 3499 | 3500 | get-port@5.1.1: {} 3501 | 3502 | get-proto@1.0.1: 3503 | dependencies: 3504 | dunder-proto: 1.0.1 3505 | es-object-atoms: 1.0.0 3506 | 3507 | glob@10.4.5: 3508 | dependencies: 3509 | foreground-child: 3.3.0 3510 | jackspeak: 3.4.3 3511 | minimatch: 9.0.5 3512 | minipass: 7.1.2 3513 | package-json-from-dist: 1.0.1 3514 | path-scurry: 1.11.1 3515 | 3516 | globals@11.12.0: {} 3517 | 3518 | globrex@0.1.2: {} 3519 | 3520 | gopd@1.2.0: {} 3521 | 3522 | graceful-fs@4.2.11: {} 3523 | 3524 | gunzip-maybe@1.4.2: 3525 | dependencies: 3526 | browserify-zlib: 0.1.4 3527 | is-deflate: 1.0.0 3528 | is-gzip: 1.0.0 3529 | peek-stream: 1.1.3 3530 | pumpify: 1.5.1 3531 | through2: 2.0.5 3532 | 3533 | has-symbols@1.1.0: {} 3534 | 3535 | hasown@2.0.2: 3536 | dependencies: 3537 | function-bind: 1.1.2 3538 | 3539 | hoist-non-react-statics@3.3.2: 3540 | dependencies: 3541 | react-is: 16.13.1 3542 | 3543 | hosted-git-info@6.1.3: 3544 | dependencies: 3545 | lru-cache: 7.18.3 3546 | 3547 | http-errors@2.0.0: 3548 | dependencies: 3549 | depd: 2.0.0 3550 | inherits: 2.0.4 3551 | setprototypeof: 1.2.0 3552 | statuses: 2.0.1 3553 | toidentifier: 1.0.1 3554 | 3555 | iconv-lite@0.4.24: 3556 | dependencies: 3557 | safer-buffer: 2.1.2 3558 | 3559 | import-fresh@3.3.0: 3560 | dependencies: 3561 | parent-module: 1.0.1 3562 | resolve-from: 4.0.0 3563 | 3564 | inherits@2.0.4: {} 3565 | 3566 | ipaddr.js@1.9.1: {} 3567 | 3568 | is-arrayish@0.2.1: {} 3569 | 3570 | is-core-module@2.16.1: 3571 | dependencies: 3572 | hasown: 2.0.2 3573 | 3574 | is-deflate@1.0.0: {} 3575 | 3576 | is-fullwidth-code-point@3.0.0: {} 3577 | 3578 | is-gzip@1.0.0: {} 3579 | 3580 | isarray@1.0.0: {} 3581 | 3582 | isbot@5.1.19: {} 3583 | 3584 | isexe@2.0.0: {} 3585 | 3586 | jackspeak@3.4.3: 3587 | dependencies: 3588 | '@isaacs/cliui': 8.0.2 3589 | optionalDependencies: 3590 | '@pkgjs/parseargs': 0.11.0 3591 | 3592 | js-tokens@4.0.0: {} 3593 | 3594 | jsesc@3.0.2: {} 3595 | 3596 | json-parse-even-better-errors@2.3.1: {} 3597 | 3598 | json-parse-even-better-errors@3.0.2: {} 3599 | 3600 | json5@2.2.3: {} 3601 | 3602 | jsonfile@6.1.0: 3603 | dependencies: 3604 | universalify: 2.0.1 3605 | optionalDependencies: 3606 | graceful-fs: 4.2.11 3607 | 3608 | lines-and-columns@1.2.4: {} 3609 | 3610 | lodash@4.17.21: {} 3611 | 3612 | lru-cache@10.4.3: {} 3613 | 3614 | lru-cache@5.1.1: 3615 | dependencies: 3616 | yallist: 3.1.1 3617 | 3618 | lru-cache@7.18.3: {} 3619 | 3620 | lucide-react@0.469.0(react@19.0.0): 3621 | dependencies: 3622 | react: 19.0.0 3623 | 3624 | math-intrinsics@1.1.0: {} 3625 | 3626 | media-typer@0.3.0: {} 3627 | 3628 | merge-descriptors@1.0.3: {} 3629 | 3630 | methods@1.1.2: {} 3631 | 3632 | mime-db@1.52.0: {} 3633 | 3634 | mime-db@1.53.0: {} 3635 | 3636 | mime-types@2.1.35: 3637 | dependencies: 3638 | mime-db: 1.52.0 3639 | 3640 | mime@1.6.0: {} 3641 | 3642 | minimatch@9.0.5: 3643 | dependencies: 3644 | brace-expansion: 2.0.1 3645 | 3646 | minipass@7.1.2: {} 3647 | 3648 | morgan@1.10.0: 3649 | dependencies: 3650 | basic-auth: 2.0.1 3651 | debug: 2.6.9 3652 | depd: 2.0.0 3653 | on-finished: 2.3.0 3654 | on-headers: 1.0.2 3655 | transitivePeerDependencies: 3656 | - supports-color 3657 | 3658 | ms@2.0.0: {} 3659 | 3660 | ms@2.1.3: {} 3661 | 3662 | nanoid@3.3.8: {} 3663 | 3664 | nanoid@5.0.9: {} 3665 | 3666 | negotiator@0.6.3: {} 3667 | 3668 | negotiator@0.6.4: {} 3669 | 3670 | node-releases@2.0.19: {} 3671 | 3672 | normalize-package-data@5.0.0: 3673 | dependencies: 3674 | hosted-git-info: 6.1.3 3675 | is-core-module: 2.16.1 3676 | semver: 7.6.3 3677 | validate-npm-package-license: 3.0.4 3678 | 3679 | npm-install-checks@6.3.0: 3680 | dependencies: 3681 | semver: 7.6.3 3682 | 3683 | npm-normalize-package-bin@3.0.1: {} 3684 | 3685 | npm-package-arg@10.1.0: 3686 | dependencies: 3687 | hosted-git-info: 6.1.3 3688 | proc-log: 3.0.0 3689 | semver: 7.6.3 3690 | validate-npm-package-name: 5.0.1 3691 | 3692 | npm-pick-manifest@8.0.2: 3693 | dependencies: 3694 | npm-install-checks: 6.3.0 3695 | npm-normalize-package-bin: 3.0.1 3696 | npm-package-arg: 10.1.0 3697 | semver: 7.6.3 3698 | 3699 | object-inspect@1.13.3: {} 3700 | 3701 | on-finished@2.3.0: 3702 | dependencies: 3703 | ee-first: 1.1.1 3704 | 3705 | on-finished@2.4.1: 3706 | dependencies: 3707 | ee-first: 1.1.1 3708 | 3709 | on-headers@1.0.2: {} 3710 | 3711 | once@1.4.0: 3712 | dependencies: 3713 | wrappy: 1.0.2 3714 | 3715 | package-json-from-dist@1.0.1: {} 3716 | 3717 | pako@0.2.9: {} 3718 | 3719 | parent-module@1.0.1: 3720 | dependencies: 3721 | callsites: 3.1.0 3722 | 3723 | parse-json@5.2.0: 3724 | dependencies: 3725 | '@babel/code-frame': 7.26.2 3726 | error-ex: 1.3.2 3727 | json-parse-even-better-errors: 2.3.1 3728 | lines-and-columns: 1.2.4 3729 | 3730 | parseurl@1.3.3: {} 3731 | 3732 | path-key@3.1.1: {} 3733 | 3734 | path-parse@1.0.7: {} 3735 | 3736 | path-scurry@1.11.1: 3737 | dependencies: 3738 | lru-cache: 10.4.3 3739 | minipass: 7.1.2 3740 | 3741 | path-to-regexp@0.1.12: {} 3742 | 3743 | path-type@4.0.0: {} 3744 | 3745 | pathe@1.1.2: {} 3746 | 3747 | peek-stream@1.1.3: 3748 | dependencies: 3749 | buffer-from: 1.1.2 3750 | duplexify: 3.7.1 3751 | through2: 2.0.5 3752 | 3753 | perfect-freehand@1.2.2: {} 3754 | 3755 | picocolors@1.1.1: {} 3756 | 3757 | picomatch@2.3.1: {} 3758 | 3759 | postcss@8.4.49: 3760 | dependencies: 3761 | nanoid: 3.3.8 3762 | picocolors: 1.1.1 3763 | source-map-js: 1.2.1 3764 | 3765 | prettier@2.8.8: {} 3766 | 3767 | proc-log@3.0.0: {} 3768 | 3769 | process-nextick-args@2.0.1: {} 3770 | 3771 | promise-inflight@1.0.1: {} 3772 | 3773 | promise-retry@2.0.1: 3774 | dependencies: 3775 | err-code: 2.0.3 3776 | retry: 0.12.0 3777 | 3778 | proxy-addr@2.0.7: 3779 | dependencies: 3780 | forwarded: 0.2.0 3781 | ipaddr.js: 1.9.1 3782 | 3783 | proxy-compare@3.0.1: {} 3784 | 3785 | proxy-memoize@3.0.1: 3786 | dependencies: 3787 | proxy-compare: 3.0.1 3788 | 3789 | pump@2.0.1: 3790 | dependencies: 3791 | end-of-stream: 1.4.4 3792 | once: 1.4.0 3793 | 3794 | pumpify@1.5.1: 3795 | dependencies: 3796 | duplexify: 3.7.1 3797 | inherits: 2.0.4 3798 | pump: 2.0.1 3799 | 3800 | qs@6.13.0: 3801 | dependencies: 3802 | side-channel: 1.1.0 3803 | 3804 | range-parser@1.2.1: {} 3805 | 3806 | raw-body@2.5.2: 3807 | dependencies: 3808 | bytes: 3.1.2 3809 | http-errors: 2.0.0 3810 | iconv-lite: 0.4.24 3811 | unpipe: 1.0.0 3812 | 3813 | react-dom@19.0.0(react@19.0.0): 3814 | dependencies: 3815 | react: 19.0.0 3816 | scheduler: 0.25.0 3817 | 3818 | react-hook-form@7.54.2(react@19.0.0): 3819 | dependencies: 3820 | react: 19.0.0 3821 | 3822 | react-icons@5.4.0(react@19.0.0): 3823 | dependencies: 3824 | react: 19.0.0 3825 | 3826 | react-is@16.13.1: {} 3827 | 3828 | react-refresh@0.14.2: {} 3829 | 3830 | react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): 3831 | dependencies: 3832 | '@types/cookie': 0.6.0 3833 | cookie: 1.0.2 3834 | react: 19.0.0 3835 | set-cookie-parser: 2.7.1 3836 | turbo-stream: 2.4.0 3837 | optionalDependencies: 3838 | react-dom: 19.0.0(react@19.0.0) 3839 | 3840 | react@19.0.0: {} 3841 | 3842 | readable-stream@2.3.8: 3843 | dependencies: 3844 | core-util-is: 1.0.3 3845 | inherits: 2.0.4 3846 | isarray: 1.0.0 3847 | process-nextick-args: 2.0.1 3848 | safe-buffer: 5.1.2 3849 | string_decoder: 1.1.1 3850 | util-deprecate: 1.0.2 3851 | 3852 | readdirp@4.0.2: {} 3853 | 3854 | regenerator-runtime@0.14.1: {} 3855 | 3856 | resolve-from@4.0.0: {} 3857 | 3858 | resolve@1.22.10: 3859 | dependencies: 3860 | is-core-module: 2.16.1 3861 | path-parse: 1.0.7 3862 | supports-preserve-symlinks-flag: 1.0.0 3863 | 3864 | retry@0.12.0: {} 3865 | 3866 | rollup@4.29.1: 3867 | dependencies: 3868 | '@types/estree': 1.0.6 3869 | optionalDependencies: 3870 | '@rollup/rollup-android-arm-eabi': 4.29.1 3871 | '@rollup/rollup-android-arm64': 4.29.1 3872 | '@rollup/rollup-darwin-arm64': 4.29.1 3873 | '@rollup/rollup-darwin-x64': 4.29.1 3874 | '@rollup/rollup-freebsd-arm64': 4.29.1 3875 | '@rollup/rollup-freebsd-x64': 4.29.1 3876 | '@rollup/rollup-linux-arm-gnueabihf': 4.29.1 3877 | '@rollup/rollup-linux-arm-musleabihf': 4.29.1 3878 | '@rollup/rollup-linux-arm64-gnu': 4.29.1 3879 | '@rollup/rollup-linux-arm64-musl': 4.29.1 3880 | '@rollup/rollup-linux-loongarch64-gnu': 4.29.1 3881 | '@rollup/rollup-linux-powerpc64le-gnu': 4.29.1 3882 | '@rollup/rollup-linux-riscv64-gnu': 4.29.1 3883 | '@rollup/rollup-linux-s390x-gnu': 4.29.1 3884 | '@rollup/rollup-linux-x64-gnu': 4.29.1 3885 | '@rollup/rollup-linux-x64-musl': 4.29.1 3886 | '@rollup/rollup-win32-arm64-msvc': 4.29.1 3887 | '@rollup/rollup-win32-ia32-msvc': 4.29.1 3888 | '@rollup/rollup-win32-x64-msvc': 4.29.1 3889 | fsevents: 2.3.3 3890 | 3891 | safe-buffer@5.1.2: {} 3892 | 3893 | safe-buffer@5.2.1: {} 3894 | 3895 | safer-buffer@2.1.2: {} 3896 | 3897 | scheduler@0.25.0: {} 3898 | 3899 | semver@6.3.1: {} 3900 | 3901 | semver@7.6.3: {} 3902 | 3903 | send@0.19.0: 3904 | dependencies: 3905 | debug: 2.6.9 3906 | depd: 2.0.0 3907 | destroy: 1.2.0 3908 | encodeurl: 1.0.2 3909 | escape-html: 1.0.3 3910 | etag: 1.8.1 3911 | fresh: 0.5.2 3912 | http-errors: 2.0.0 3913 | mime: 1.6.0 3914 | ms: 2.1.3 3915 | on-finished: 2.4.1 3916 | range-parser: 1.2.1 3917 | statuses: 2.0.1 3918 | transitivePeerDependencies: 3919 | - supports-color 3920 | 3921 | serve-static@1.16.2: 3922 | dependencies: 3923 | encodeurl: 2.0.0 3924 | escape-html: 1.0.3 3925 | parseurl: 1.3.3 3926 | send: 0.19.0 3927 | transitivePeerDependencies: 3928 | - supports-color 3929 | 3930 | set-cookie-parser@2.7.1: {} 3931 | 3932 | setprototypeof@1.2.0: {} 3933 | 3934 | shebang-command@2.0.0: 3935 | dependencies: 3936 | shebang-regex: 3.0.0 3937 | 3938 | shebang-regex@3.0.0: {} 3939 | 3940 | side-channel-list@1.0.0: 3941 | dependencies: 3942 | es-errors: 1.3.0 3943 | object-inspect: 1.13.3 3944 | 3945 | side-channel-map@1.0.1: 3946 | dependencies: 3947 | call-bound: 1.0.3 3948 | es-errors: 1.3.0 3949 | get-intrinsic: 1.2.7 3950 | object-inspect: 1.13.3 3951 | 3952 | side-channel-weakmap@1.0.2: 3953 | dependencies: 3954 | call-bound: 1.0.3 3955 | es-errors: 1.3.0 3956 | get-intrinsic: 1.2.7 3957 | object-inspect: 1.13.3 3958 | side-channel-map: 1.0.1 3959 | 3960 | side-channel@1.1.0: 3961 | dependencies: 3962 | es-errors: 1.3.0 3963 | object-inspect: 1.13.3 3964 | side-channel-list: 1.0.0 3965 | side-channel-map: 1.0.1 3966 | side-channel-weakmap: 1.0.2 3967 | 3968 | signal-exit@4.1.0: {} 3969 | 3970 | source-map-js@1.2.1: {} 3971 | 3972 | source-map-support@0.5.21: 3973 | dependencies: 3974 | buffer-from: 1.1.2 3975 | source-map: 0.6.1 3976 | 3977 | source-map@0.5.7: {} 3978 | 3979 | source-map@0.6.1: {} 3980 | 3981 | spdx-correct@3.2.0: 3982 | dependencies: 3983 | spdx-expression-parse: 3.0.1 3984 | spdx-license-ids: 3.0.20 3985 | 3986 | spdx-exceptions@2.5.0: {} 3987 | 3988 | spdx-expression-parse@3.0.1: 3989 | dependencies: 3990 | spdx-exceptions: 2.5.0 3991 | spdx-license-ids: 3.0.20 3992 | 3993 | spdx-license-ids@3.0.20: {} 3994 | 3995 | statuses@2.0.1: {} 3996 | 3997 | stream-shift@1.0.3: {} 3998 | 3999 | stream-slice@0.1.2: {} 4000 | 4001 | string-width@4.2.3: 4002 | dependencies: 4003 | emoji-regex: 8.0.0 4004 | is-fullwidth-code-point: 3.0.0 4005 | strip-ansi: 6.0.1 4006 | 4007 | string-width@5.1.2: 4008 | dependencies: 4009 | eastasianwidth: 0.2.0 4010 | emoji-regex: 9.2.2 4011 | strip-ansi: 7.1.0 4012 | 4013 | string_decoder@1.1.1: 4014 | dependencies: 4015 | safe-buffer: 5.1.2 4016 | 4017 | strip-ansi@6.0.1: 4018 | dependencies: 4019 | ansi-regex: 5.0.1 4020 | 4021 | strip-ansi@7.1.0: 4022 | dependencies: 4023 | ansi-regex: 6.1.0 4024 | 4025 | stylis@4.2.0: {} 4026 | 4027 | supports-preserve-symlinks-flag@1.0.0: {} 4028 | 4029 | tabbable@6.2.0: {} 4030 | 4031 | through2@2.0.5: 4032 | dependencies: 4033 | readable-stream: 2.3.8 4034 | xtend: 4.0.2 4035 | 4036 | toidentifier@1.0.1: {} 4037 | 4038 | tsconfck@3.1.4(typescript@5.7.2): 4039 | optionalDependencies: 4040 | typescript: 5.7.2 4041 | 4042 | tslib@2.8.1: {} 4043 | 4044 | turbo-stream@2.4.0: {} 4045 | 4046 | type-is@1.6.18: 4047 | dependencies: 4048 | media-typer: 0.3.0 4049 | mime-types: 2.1.35 4050 | 4051 | typescript@5.7.2: {} 4052 | 4053 | undici-types@6.19.8: 4054 | optional: true 4055 | 4056 | undici@6.21.0: {} 4057 | 4058 | universalify@2.0.1: {} 4059 | 4060 | unpipe@1.0.0: {} 4061 | 4062 | update-browserslist-db@1.1.1(browserslist@4.24.3): 4063 | dependencies: 4064 | browserslist: 4.24.3 4065 | escalade: 3.2.0 4066 | picocolors: 1.1.1 4067 | 4068 | uqr@0.1.2: {} 4069 | 4070 | util-deprecate@1.0.2: {} 4071 | 4072 | utils-merge@1.0.1: {} 4073 | 4074 | valibot@0.41.0(typescript@5.7.2): 4075 | optionalDependencies: 4076 | typescript: 5.7.2 4077 | 4078 | validate-npm-package-license@3.0.4: 4079 | dependencies: 4080 | spdx-correct: 3.2.0 4081 | spdx-expression-parse: 3.0.1 4082 | 4083 | validate-npm-package-name@5.0.1: {} 4084 | 4085 | vary@1.1.2: {} 4086 | 4087 | vite-node@3.0.0-beta.2(@types/node@20.17.11): 4088 | dependencies: 4089 | cac: 6.7.14 4090 | debug: 4.4.0 4091 | es-module-lexer: 1.6.0 4092 | pathe: 1.1.2 4093 | vite: 5.4.11(@types/node@20.17.11) 4094 | transitivePeerDependencies: 4095 | - '@types/node' 4096 | - less 4097 | - lightningcss 4098 | - sass 4099 | - sass-embedded 4100 | - stylus 4101 | - sugarss 4102 | - supports-color 4103 | - terser 4104 | 4105 | vite-tsconfig-paths@5.1.4(typescript@5.7.2)(vite@5.4.11(@types/node@20.17.11)): 4106 | dependencies: 4107 | debug: 4.4.0 4108 | globrex: 0.1.2 4109 | tsconfck: 3.1.4(typescript@5.7.2) 4110 | optionalDependencies: 4111 | vite: 5.4.11(@types/node@20.17.11) 4112 | transitivePeerDependencies: 4113 | - supports-color 4114 | - typescript 4115 | 4116 | vite@5.4.11(@types/node@20.17.11): 4117 | dependencies: 4118 | esbuild: 0.21.5 4119 | postcss: 8.4.49 4120 | rollup: 4.29.1 4121 | optionalDependencies: 4122 | '@types/node': 20.17.11 4123 | fsevents: 2.3.3 4124 | 4125 | which@2.0.2: 4126 | dependencies: 4127 | isexe: 2.0.0 4128 | 4129 | which@3.0.1: 4130 | dependencies: 4131 | isexe: 2.0.0 4132 | 4133 | wrap-ansi@7.0.0: 4134 | dependencies: 4135 | ansi-styles: 4.3.0 4136 | string-width: 4.2.3 4137 | strip-ansi: 6.0.1 4138 | 4139 | wrap-ansi@8.1.0: 4140 | dependencies: 4141 | ansi-styles: 6.2.1 4142 | string-width: 5.1.2 4143 | strip-ansi: 7.1.0 4144 | 4145 | wrappy@1.0.2: {} 4146 | 4147 | xtend@4.0.2: {} 4148 | 4149 | yallist@3.1.1: {} 4150 | 4151 | yaml@1.10.2: {} 4152 | 4153 | zod@3.24.1: {} 4154 | 4155 | zustand@5.0.2(@types/react@19.0.2)(react@19.0.0): 4156 | optionalDependencies: 4157 | '@types/react': 19.0.2 4158 | react: 19.0.0 4159 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/akazwz/WebRTC-Screen-Mirror/b5856b6944d7503a1623cd08b8deac2d6ebd8c2f/public/favicon.ico -------------------------------------------------------------------------------- /react-router.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from "@react-router/dev/config"; 2 | 3 | export default { 4 | // Config options... 5 | // Server-side render by default, to enable SPA mode set this to `false` 6 | ssr: false, 7 | prerender: true, 8 | } satisfies Config; 9 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "include": [ 3 | "**/*", 4 | "**/.server/**/*", 5 | "**/.client/**/*", 6 | ".react-router/types/**/*" 7 | ], 8 | "compilerOptions": { 9 | "lib": ["DOM", "DOM.Iterable", "ES2022"], 10 | "types": ["vite/client"], 11 | "target": "ES2022", 12 | "module": "ES2022", 13 | "moduleResolution": "bundler", 14 | "jsx": "react-jsx", 15 | "rootDirs": [".", "./.react-router/types"], 16 | "baseUrl": ".", 17 | "paths": { 18 | "~/*": ["./app/*"] 19 | }, 20 | "esModuleInterop": true, 21 | "verbatimModuleSyntax": true, 22 | "noEmit": true, 23 | "resolveJsonModule": true, 24 | "skipLibCheck": true, 25 | "strict": true 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { reactRouter } from "@react-router/dev/vite"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [reactRouter(), tsconfigPaths()], 7 | }); 8 | -------------------------------------------------------------------------------- /worker/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | 3 | logs 4 | _.log 5 | npm-debug.log_ 6 | yarn-debug.log* 7 | yarn-error.log* 8 | lerna-debug.log* 9 | .pnpm-debug.log* 10 | 11 | # Diagnostic reports (https://nodejs.org/api/report.html) 12 | 13 | report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json 14 | 15 | # Runtime data 16 | 17 | pids 18 | _.pid 19 | _.seed 20 | \*.pid.lock 21 | 22 | # Directory for instrumented libs generated by jscoverage/JSCover 23 | 24 | lib-cov 25 | 26 | # Coverage directory used by tools like istanbul 27 | 28 | coverage 29 | \*.lcov 30 | 31 | # nyc test coverage 32 | 33 | .nyc_output 34 | 35 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 36 | 37 | .grunt 38 | 39 | # Bower dependency directory (https://bower.io/) 40 | 41 | bower_components 42 | 43 | # node-waf configuration 44 | 45 | .lock-wscript 46 | 47 | # Compiled binary addons (https://nodejs.org/api/addons.html) 48 | 49 | build/Release 50 | 51 | # Dependency directories 52 | 53 | node_modules/ 54 | jspm_packages/ 55 | 56 | # Snowpack dependency directory (https://snowpack.dev/) 57 | 58 | web_modules/ 59 | 60 | # TypeScript cache 61 | 62 | \*.tsbuildinfo 63 | 64 | # Optional npm cache directory 65 | 66 | .npm 67 | 68 | # Optional eslint cache 69 | 70 | .eslintcache 71 | 72 | # Optional stylelint cache 73 | 74 | .stylelintcache 75 | 76 | # Microbundle cache 77 | 78 | .rpt2_cache/ 79 | .rts2_cache_cjs/ 80 | .rts2_cache_es/ 81 | .rts2_cache_umd/ 82 | 83 | # Optional REPL history 84 | 85 | .node_repl_history 86 | 87 | # Output of 'npm pack' 88 | 89 | \*.tgz 90 | 91 | # Yarn Integrity file 92 | 93 | .yarn-integrity 94 | 95 | # dotenv environment variable files 96 | 97 | .env 98 | .env.development.local 99 | .env.test.local 100 | .env.production.local 101 | .env.local 102 | 103 | # parcel-bundler cache (https://parceljs.org/) 104 | 105 | .cache 106 | .parcel-cache 107 | 108 | # Next.js build output 109 | 110 | .next 111 | out 112 | 113 | # Nuxt.js build / generate output 114 | 115 | .nuxt 116 | dist 117 | 118 | # Gatsby files 119 | 120 | .cache/ 121 | 122 | # Comment in the public line in if your project uses Gatsby and not Next.js 123 | 124 | # https://nextjs.org/blog/next-9-1#public-directory-support 125 | 126 | # public 127 | 128 | # vuepress build output 129 | 130 | .vuepress/dist 131 | 132 | # vuepress v2.x temp and cache directory 133 | 134 | .temp 135 | .cache 136 | 137 | # Docusaurus cache and generated files 138 | 139 | .docusaurus 140 | 141 | # Serverless directories 142 | 143 | .serverless/ 144 | 145 | # FuseBox cache 146 | 147 | .fusebox/ 148 | 149 | # DynamoDB Local files 150 | 151 | .dynamodb/ 152 | 153 | # TernJS port file 154 | 155 | .tern-port 156 | 157 | # Stores VSCode versions used for testing VSCode extensions 158 | 159 | .vscode-test 160 | 161 | # yarn v2 162 | 163 | .yarn/cache 164 | .yarn/unplugged 165 | .yarn/build-state.yml 166 | .yarn/install-state.gz 167 | .pnp.\* 168 | 169 | # wrangler project 170 | 171 | .dev.vars 172 | .wrangler/ 173 | -------------------------------------------------------------------------------- /worker/biome.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", 3 | "vcs": { 4 | "enabled": false, 5 | "clientKind": "git", 6 | "useIgnoreFile": false 7 | }, 8 | "files": { 9 | "ignoreUnknown": false, 10 | "ignore": [] 11 | }, 12 | "formatter": { 13 | "enabled": true, 14 | "indentStyle": "tab" 15 | }, 16 | "organizeImports": { 17 | "enabled": true 18 | }, 19 | "linter": { 20 | "enabled": true, 21 | "rules": { 22 | "recommended": true 23 | } 24 | }, 25 | "javascript": { 26 | "formatter": { 27 | "quoteStyle": "double" 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /worker/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "signaling-server", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "deploy": "wrangler deploy", 7 | "dev": "wrangler dev", 8 | "start": "wrangler dev", 9 | "cf-typegen": "wrangler types", 10 | "format": "biome format --write ." 11 | }, 12 | "devDependencies": { 13 | "@biomejs/biome": "^1.9.4", 14 | "@cloudflare/workers-types": "^4.20241224.0", 15 | "typescript": "^5.7.2", 16 | "wrangler": "^3.99.0" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /worker/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | devDependencies: 11 | '@biomejs/biome': 12 | specifier: ^1.9.4 13 | version: 1.9.4 14 | '@cloudflare/workers-types': 15 | specifier: ^4.20241224.0 16 | version: 4.20241224.0 17 | typescript: 18 | specifier: ^5.7.2 19 | version: 5.7.2 20 | wrangler: 21 | specifier: ^3.99.0 22 | version: 3.99.0(@cloudflare/workers-types@4.20241224.0) 23 | 24 | packages: 25 | 26 | '@biomejs/biome@1.9.4': 27 | resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} 28 | engines: {node: '>=14.21.3'} 29 | hasBin: true 30 | 31 | '@biomejs/cli-darwin-arm64@1.9.4': 32 | resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==} 33 | engines: {node: '>=14.21.3'} 34 | cpu: [arm64] 35 | os: [darwin] 36 | 37 | '@biomejs/cli-darwin-x64@1.9.4': 38 | resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==} 39 | engines: {node: '>=14.21.3'} 40 | cpu: [x64] 41 | os: [darwin] 42 | 43 | '@biomejs/cli-linux-arm64-musl@1.9.4': 44 | resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==} 45 | engines: {node: '>=14.21.3'} 46 | cpu: [arm64] 47 | os: [linux] 48 | 49 | '@biomejs/cli-linux-arm64@1.9.4': 50 | resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==} 51 | engines: {node: '>=14.21.3'} 52 | cpu: [arm64] 53 | os: [linux] 54 | 55 | '@biomejs/cli-linux-x64-musl@1.9.4': 56 | resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==} 57 | engines: {node: '>=14.21.3'} 58 | cpu: [x64] 59 | os: [linux] 60 | 61 | '@biomejs/cli-linux-x64@1.9.4': 62 | resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==} 63 | engines: {node: '>=14.21.3'} 64 | cpu: [x64] 65 | os: [linux] 66 | 67 | '@biomejs/cli-win32-arm64@1.9.4': 68 | resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==} 69 | engines: {node: '>=14.21.3'} 70 | cpu: [arm64] 71 | os: [win32] 72 | 73 | '@biomejs/cli-win32-x64@1.9.4': 74 | resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==} 75 | engines: {node: '>=14.21.3'} 76 | cpu: [x64] 77 | os: [win32] 78 | 79 | '@cloudflare/kv-asset-handler@0.3.4': 80 | resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} 81 | engines: {node: '>=16.13'} 82 | 83 | '@cloudflare/workerd-darwin-64@1.20241218.0': 84 | resolution: {integrity: sha512-8rveQoxtUvlmORKqTWgjv2ycM8uqWox0u9evn3zd2iWKdou5sncFwH517ZRLI3rq9P31ZLmCQBZ0gloFsTeY6w==} 85 | engines: {node: '>=16'} 86 | cpu: [x64] 87 | os: [darwin] 88 | 89 | '@cloudflare/workerd-darwin-arm64@1.20241218.0': 90 | resolution: {integrity: sha512-be59Ad9nmM9lCkhHqmTs/uZ3JVZt8NJ9Z0PY+B0xnc5z6WwmV2lj0RVLtq7xJhQsQJA189zt5rXqDP6J+2mu7Q==} 91 | engines: {node: '>=16'} 92 | cpu: [arm64] 93 | os: [darwin] 94 | 95 | '@cloudflare/workerd-linux-64@1.20241218.0': 96 | resolution: {integrity: sha512-MzpSBcfZXRxrYWxQ4pVDYDrUbkQuM62ssl4ZtHH8J35OAeGsWFAYji6MkS2SpVwVcvacPwJXIF4JSzp4xKImKw==} 97 | engines: {node: '>=16'} 98 | cpu: [x64] 99 | os: [linux] 100 | 101 | '@cloudflare/workerd-linux-arm64@1.20241218.0': 102 | resolution: {integrity: sha512-RIuJjPxpNqvwIs52vQsXeRMttvhIjgg9NLjjFa3jK8Ijnj8c3ZDru9Wqi48lJP07yDFIRr4uDMMqh/y29YQi2A==} 103 | engines: {node: '>=16'} 104 | cpu: [arm64] 105 | os: [linux] 106 | 107 | '@cloudflare/workerd-windows-64@1.20241218.0': 108 | resolution: {integrity: sha512-tO1VjlvK3F6Yb2d1jgEy/QBYl//9Pyv3K0j+lq8Eu7qdfm0IgKwSRgDWLept84/qmNsQfausZ4JdNGxTf9xsxQ==} 109 | engines: {node: '>=16'} 110 | cpu: [x64] 111 | os: [win32] 112 | 113 | '@cloudflare/workers-types@4.20241224.0': 114 | resolution: {integrity: sha512-1ZmFc8qqM7S/HUGmLplc4P8n8DoMqiJmc47r9Lr7VbuaotoqCXVljz09w1V1mc4K3pbFPgvqSy4XYStZ08HrlQ==} 115 | 116 | '@cspotcode/source-map-support@0.8.1': 117 | resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} 118 | engines: {node: '>=12'} 119 | 120 | '@esbuild-plugins/node-globals-polyfill@0.2.3': 121 | resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} 122 | peerDependencies: 123 | esbuild: '*' 124 | 125 | '@esbuild-plugins/node-modules-polyfill@0.2.2': 126 | resolution: {integrity: sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==} 127 | peerDependencies: 128 | esbuild: '*' 129 | 130 | '@esbuild/android-arm64@0.17.19': 131 | resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} 132 | engines: {node: '>=12'} 133 | cpu: [arm64] 134 | os: [android] 135 | 136 | '@esbuild/android-arm@0.17.19': 137 | resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} 138 | engines: {node: '>=12'} 139 | cpu: [arm] 140 | os: [android] 141 | 142 | '@esbuild/android-x64@0.17.19': 143 | resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} 144 | engines: {node: '>=12'} 145 | cpu: [x64] 146 | os: [android] 147 | 148 | '@esbuild/darwin-arm64@0.17.19': 149 | resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} 150 | engines: {node: '>=12'} 151 | cpu: [arm64] 152 | os: [darwin] 153 | 154 | '@esbuild/darwin-x64@0.17.19': 155 | resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} 156 | engines: {node: '>=12'} 157 | cpu: [x64] 158 | os: [darwin] 159 | 160 | '@esbuild/freebsd-arm64@0.17.19': 161 | resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} 162 | engines: {node: '>=12'} 163 | cpu: [arm64] 164 | os: [freebsd] 165 | 166 | '@esbuild/freebsd-x64@0.17.19': 167 | resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} 168 | engines: {node: '>=12'} 169 | cpu: [x64] 170 | os: [freebsd] 171 | 172 | '@esbuild/linux-arm64@0.17.19': 173 | resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} 174 | engines: {node: '>=12'} 175 | cpu: [arm64] 176 | os: [linux] 177 | 178 | '@esbuild/linux-arm@0.17.19': 179 | resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} 180 | engines: {node: '>=12'} 181 | cpu: [arm] 182 | os: [linux] 183 | 184 | '@esbuild/linux-ia32@0.17.19': 185 | resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} 186 | engines: {node: '>=12'} 187 | cpu: [ia32] 188 | os: [linux] 189 | 190 | '@esbuild/linux-loong64@0.17.19': 191 | resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} 192 | engines: {node: '>=12'} 193 | cpu: [loong64] 194 | os: [linux] 195 | 196 | '@esbuild/linux-mips64el@0.17.19': 197 | resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} 198 | engines: {node: '>=12'} 199 | cpu: [mips64el] 200 | os: [linux] 201 | 202 | '@esbuild/linux-ppc64@0.17.19': 203 | resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} 204 | engines: {node: '>=12'} 205 | cpu: [ppc64] 206 | os: [linux] 207 | 208 | '@esbuild/linux-riscv64@0.17.19': 209 | resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} 210 | engines: {node: '>=12'} 211 | cpu: [riscv64] 212 | os: [linux] 213 | 214 | '@esbuild/linux-s390x@0.17.19': 215 | resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} 216 | engines: {node: '>=12'} 217 | cpu: [s390x] 218 | os: [linux] 219 | 220 | '@esbuild/linux-x64@0.17.19': 221 | resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} 222 | engines: {node: '>=12'} 223 | cpu: [x64] 224 | os: [linux] 225 | 226 | '@esbuild/netbsd-x64@0.17.19': 227 | resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} 228 | engines: {node: '>=12'} 229 | cpu: [x64] 230 | os: [netbsd] 231 | 232 | '@esbuild/openbsd-x64@0.17.19': 233 | resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} 234 | engines: {node: '>=12'} 235 | cpu: [x64] 236 | os: [openbsd] 237 | 238 | '@esbuild/sunos-x64@0.17.19': 239 | resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} 240 | engines: {node: '>=12'} 241 | cpu: [x64] 242 | os: [sunos] 243 | 244 | '@esbuild/win32-arm64@0.17.19': 245 | resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} 246 | engines: {node: '>=12'} 247 | cpu: [arm64] 248 | os: [win32] 249 | 250 | '@esbuild/win32-ia32@0.17.19': 251 | resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} 252 | engines: {node: '>=12'} 253 | cpu: [ia32] 254 | os: [win32] 255 | 256 | '@esbuild/win32-x64@0.17.19': 257 | resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} 258 | engines: {node: '>=12'} 259 | cpu: [x64] 260 | os: [win32] 261 | 262 | '@fastify/busboy@2.1.1': 263 | resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} 264 | engines: {node: '>=14'} 265 | 266 | '@jridgewell/resolve-uri@3.1.2': 267 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 268 | engines: {node: '>=6.0.0'} 269 | 270 | '@jridgewell/sourcemap-codec@1.5.0': 271 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 272 | 273 | '@jridgewell/trace-mapping@0.3.9': 274 | resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} 275 | 276 | '@types/node-forge@1.3.11': 277 | resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} 278 | 279 | '@types/node@22.10.2': 280 | resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} 281 | 282 | acorn-walk@8.3.4: 283 | resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} 284 | engines: {node: '>=0.4.0'} 285 | 286 | acorn@8.14.0: 287 | resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} 288 | engines: {node: '>=0.4.0'} 289 | hasBin: true 290 | 291 | as-table@1.0.55: 292 | resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} 293 | 294 | blake3-wasm@2.1.5: 295 | resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} 296 | 297 | capnp-ts@0.7.0: 298 | resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==} 299 | 300 | chokidar@4.0.3: 301 | resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} 302 | engines: {node: '>= 14.16.0'} 303 | 304 | cookie@0.7.2: 305 | resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} 306 | engines: {node: '>= 0.6'} 307 | 308 | data-uri-to-buffer@2.0.2: 309 | resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==} 310 | 311 | date-fns@4.1.0: 312 | resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} 313 | 314 | debug@4.4.0: 315 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} 316 | engines: {node: '>=6.0'} 317 | peerDependencies: 318 | supports-color: '*' 319 | peerDependenciesMeta: 320 | supports-color: 321 | optional: true 322 | 323 | defu@6.1.4: 324 | resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} 325 | 326 | esbuild@0.17.19: 327 | resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} 328 | engines: {node: '>=12'} 329 | hasBin: true 330 | 331 | escape-string-regexp@4.0.0: 332 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 333 | engines: {node: '>=10'} 334 | 335 | estree-walker@0.6.1: 336 | resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} 337 | 338 | exit-hook@2.2.1: 339 | resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} 340 | engines: {node: '>=6'} 341 | 342 | fsevents@2.3.3: 343 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 344 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 345 | os: [darwin] 346 | 347 | function-bind@1.1.2: 348 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 349 | 350 | get-source@2.0.12: 351 | resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} 352 | 353 | glob-to-regexp@0.4.1: 354 | resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} 355 | 356 | hasown@2.0.2: 357 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 358 | engines: {node: '>= 0.4'} 359 | 360 | is-core-module@2.16.1: 361 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 362 | engines: {node: '>= 0.4'} 363 | 364 | itty-time@1.0.6: 365 | resolution: {integrity: sha512-+P8IZaLLBtFv8hCkIjcymZOp4UJ+xW6bSlQsXGqrkmJh7vSiMFSlNne0mCYagEE0N7HDNR5jJBRxwN0oYv61Rw==} 366 | 367 | magic-string@0.25.9: 368 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 369 | 370 | mime@3.0.0: 371 | resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 372 | engines: {node: '>=10.0.0'} 373 | hasBin: true 374 | 375 | miniflare@3.20241218.0: 376 | resolution: {integrity: sha512-spYFDArH0wd+wJSTrzBrWrXJrbyJhRMJa35mat947y1jYhVV8I5V8vnD3LwjfpLr0SaEilojz1OIW7ekmnRe+w==} 377 | engines: {node: '>=16.13'} 378 | hasBin: true 379 | 380 | ms@2.1.3: 381 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 382 | 383 | mustache@4.2.0: 384 | resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} 385 | hasBin: true 386 | 387 | nanoid@3.3.8: 388 | resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} 389 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 390 | hasBin: true 391 | 392 | node-forge@1.3.1: 393 | resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} 394 | engines: {node: '>= 6.13.0'} 395 | 396 | ohash@1.1.4: 397 | resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} 398 | 399 | path-parse@1.0.7: 400 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 401 | 402 | path-to-regexp@6.3.0: 403 | resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} 404 | 405 | pathe@1.1.2: 406 | resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} 407 | 408 | printable-characters@1.0.42: 409 | resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} 410 | 411 | readdirp@4.0.2: 412 | resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} 413 | engines: {node: '>= 14.16.0'} 414 | 415 | resolve@1.22.10: 416 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} 417 | engines: {node: '>= 0.4'} 418 | hasBin: true 419 | 420 | rollup-plugin-inject@3.0.2: 421 | resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} 422 | deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. 423 | 424 | rollup-plugin-node-polyfills@0.2.1: 425 | resolution: {integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==} 426 | 427 | rollup-pluginutils@2.8.2: 428 | resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} 429 | 430 | selfsigned@2.4.1: 431 | resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} 432 | engines: {node: '>=10'} 433 | 434 | source-map@0.6.1: 435 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 436 | engines: {node: '>=0.10.0'} 437 | 438 | sourcemap-codec@1.4.8: 439 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 440 | deprecated: Please use @jridgewell/sourcemap-codec instead 441 | 442 | stacktracey@2.1.8: 443 | resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} 444 | 445 | stoppable@1.1.0: 446 | resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==} 447 | engines: {node: '>=4', npm: '>=6'} 448 | 449 | supports-preserve-symlinks-flag@1.0.0: 450 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 451 | engines: {node: '>= 0.4'} 452 | 453 | tslib@2.8.1: 454 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 455 | 456 | typescript@5.7.2: 457 | resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} 458 | engines: {node: '>=14.17'} 459 | hasBin: true 460 | 461 | ufo@1.5.4: 462 | resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} 463 | 464 | undici-types@6.20.0: 465 | resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} 466 | 467 | undici@5.28.4: 468 | resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} 469 | engines: {node: '>=14.0'} 470 | 471 | unenv-nightly@2.0.0-20241204-140205-a5d5190: 472 | resolution: {integrity: sha512-jpmAytLeiiW01pl5bhVn9wYJ4vtiLdhGe10oXlJBuQEX8mxjxO8BlEXGHU4vr4yEikjFP1wsomTHt/CLU8kUwg==} 473 | 474 | workerd@1.20241218.0: 475 | resolution: {integrity: sha512-7Z3D4vOVChMz9mWDffE299oQxUWm/pbkeAWx1btVamPcAK/2IuoNBhwflWo3jyuKuxvYuFAdIucgYxc8ICqXiA==} 476 | engines: {node: '>=16'} 477 | hasBin: true 478 | 479 | wrangler@3.99.0: 480 | resolution: {integrity: sha512-k0x4rT3G/QCbxcoZY7CHRVlAIS8WMmKdga6lf4d2c3gXFqssh44vwlTDuARA9QANBxKJTcA7JPTJRfUDhd9QBA==} 481 | engines: {node: '>=16.17.0'} 482 | hasBin: true 483 | peerDependencies: 484 | '@cloudflare/workers-types': ^4.20241218.0 485 | peerDependenciesMeta: 486 | '@cloudflare/workers-types': 487 | optional: true 488 | 489 | ws@8.18.0: 490 | resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} 491 | engines: {node: '>=10.0.0'} 492 | peerDependencies: 493 | bufferutil: ^4.0.1 494 | utf-8-validate: '>=5.0.2' 495 | peerDependenciesMeta: 496 | bufferutil: 497 | optional: true 498 | utf-8-validate: 499 | optional: true 500 | 501 | xxhash-wasm@1.1.0: 502 | resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} 503 | 504 | youch@3.3.4: 505 | resolution: {integrity: sha512-UeVBXie8cA35DS6+nBkls68xaBBXCye0CNznrhszZjTbRVnJKQuNsyLKBTTL4ln1o1rh2PKtv35twV7irj5SEg==} 506 | 507 | zod@3.24.1: 508 | resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} 509 | 510 | snapshots: 511 | 512 | '@biomejs/biome@1.9.4': 513 | optionalDependencies: 514 | '@biomejs/cli-darwin-arm64': 1.9.4 515 | '@biomejs/cli-darwin-x64': 1.9.4 516 | '@biomejs/cli-linux-arm64': 1.9.4 517 | '@biomejs/cli-linux-arm64-musl': 1.9.4 518 | '@biomejs/cli-linux-x64': 1.9.4 519 | '@biomejs/cli-linux-x64-musl': 1.9.4 520 | '@biomejs/cli-win32-arm64': 1.9.4 521 | '@biomejs/cli-win32-x64': 1.9.4 522 | 523 | '@biomejs/cli-darwin-arm64@1.9.4': 524 | optional: true 525 | 526 | '@biomejs/cli-darwin-x64@1.9.4': 527 | optional: true 528 | 529 | '@biomejs/cli-linux-arm64-musl@1.9.4': 530 | optional: true 531 | 532 | '@biomejs/cli-linux-arm64@1.9.4': 533 | optional: true 534 | 535 | '@biomejs/cli-linux-x64-musl@1.9.4': 536 | optional: true 537 | 538 | '@biomejs/cli-linux-x64@1.9.4': 539 | optional: true 540 | 541 | '@biomejs/cli-win32-arm64@1.9.4': 542 | optional: true 543 | 544 | '@biomejs/cli-win32-x64@1.9.4': 545 | optional: true 546 | 547 | '@cloudflare/kv-asset-handler@0.3.4': 548 | dependencies: 549 | mime: 3.0.0 550 | 551 | '@cloudflare/workerd-darwin-64@1.20241218.0': 552 | optional: true 553 | 554 | '@cloudflare/workerd-darwin-arm64@1.20241218.0': 555 | optional: true 556 | 557 | '@cloudflare/workerd-linux-64@1.20241218.0': 558 | optional: true 559 | 560 | '@cloudflare/workerd-linux-arm64@1.20241218.0': 561 | optional: true 562 | 563 | '@cloudflare/workerd-windows-64@1.20241218.0': 564 | optional: true 565 | 566 | '@cloudflare/workers-types@4.20241224.0': {} 567 | 568 | '@cspotcode/source-map-support@0.8.1': 569 | dependencies: 570 | '@jridgewell/trace-mapping': 0.3.9 571 | 572 | '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.17.19)': 573 | dependencies: 574 | esbuild: 0.17.19 575 | 576 | '@esbuild-plugins/node-modules-polyfill@0.2.2(esbuild@0.17.19)': 577 | dependencies: 578 | esbuild: 0.17.19 579 | escape-string-regexp: 4.0.0 580 | rollup-plugin-node-polyfills: 0.2.1 581 | 582 | '@esbuild/android-arm64@0.17.19': 583 | optional: true 584 | 585 | '@esbuild/android-arm@0.17.19': 586 | optional: true 587 | 588 | '@esbuild/android-x64@0.17.19': 589 | optional: true 590 | 591 | '@esbuild/darwin-arm64@0.17.19': 592 | optional: true 593 | 594 | '@esbuild/darwin-x64@0.17.19': 595 | optional: true 596 | 597 | '@esbuild/freebsd-arm64@0.17.19': 598 | optional: true 599 | 600 | '@esbuild/freebsd-x64@0.17.19': 601 | optional: true 602 | 603 | '@esbuild/linux-arm64@0.17.19': 604 | optional: true 605 | 606 | '@esbuild/linux-arm@0.17.19': 607 | optional: true 608 | 609 | '@esbuild/linux-ia32@0.17.19': 610 | optional: true 611 | 612 | '@esbuild/linux-loong64@0.17.19': 613 | optional: true 614 | 615 | '@esbuild/linux-mips64el@0.17.19': 616 | optional: true 617 | 618 | '@esbuild/linux-ppc64@0.17.19': 619 | optional: true 620 | 621 | '@esbuild/linux-riscv64@0.17.19': 622 | optional: true 623 | 624 | '@esbuild/linux-s390x@0.17.19': 625 | optional: true 626 | 627 | '@esbuild/linux-x64@0.17.19': 628 | optional: true 629 | 630 | '@esbuild/netbsd-x64@0.17.19': 631 | optional: true 632 | 633 | '@esbuild/openbsd-x64@0.17.19': 634 | optional: true 635 | 636 | '@esbuild/sunos-x64@0.17.19': 637 | optional: true 638 | 639 | '@esbuild/win32-arm64@0.17.19': 640 | optional: true 641 | 642 | '@esbuild/win32-ia32@0.17.19': 643 | optional: true 644 | 645 | '@esbuild/win32-x64@0.17.19': 646 | optional: true 647 | 648 | '@fastify/busboy@2.1.1': {} 649 | 650 | '@jridgewell/resolve-uri@3.1.2': {} 651 | 652 | '@jridgewell/sourcemap-codec@1.5.0': {} 653 | 654 | '@jridgewell/trace-mapping@0.3.9': 655 | dependencies: 656 | '@jridgewell/resolve-uri': 3.1.2 657 | '@jridgewell/sourcemap-codec': 1.5.0 658 | 659 | '@types/node-forge@1.3.11': 660 | dependencies: 661 | '@types/node': 22.10.2 662 | 663 | '@types/node@22.10.2': 664 | dependencies: 665 | undici-types: 6.20.0 666 | 667 | acorn-walk@8.3.4: 668 | dependencies: 669 | acorn: 8.14.0 670 | 671 | acorn@8.14.0: {} 672 | 673 | as-table@1.0.55: 674 | dependencies: 675 | printable-characters: 1.0.42 676 | 677 | blake3-wasm@2.1.5: {} 678 | 679 | capnp-ts@0.7.0: 680 | dependencies: 681 | debug: 4.4.0 682 | tslib: 2.8.1 683 | transitivePeerDependencies: 684 | - supports-color 685 | 686 | chokidar@4.0.3: 687 | dependencies: 688 | readdirp: 4.0.2 689 | 690 | cookie@0.7.2: {} 691 | 692 | data-uri-to-buffer@2.0.2: {} 693 | 694 | date-fns@4.1.0: {} 695 | 696 | debug@4.4.0: 697 | dependencies: 698 | ms: 2.1.3 699 | 700 | defu@6.1.4: {} 701 | 702 | esbuild@0.17.19: 703 | optionalDependencies: 704 | '@esbuild/android-arm': 0.17.19 705 | '@esbuild/android-arm64': 0.17.19 706 | '@esbuild/android-x64': 0.17.19 707 | '@esbuild/darwin-arm64': 0.17.19 708 | '@esbuild/darwin-x64': 0.17.19 709 | '@esbuild/freebsd-arm64': 0.17.19 710 | '@esbuild/freebsd-x64': 0.17.19 711 | '@esbuild/linux-arm': 0.17.19 712 | '@esbuild/linux-arm64': 0.17.19 713 | '@esbuild/linux-ia32': 0.17.19 714 | '@esbuild/linux-loong64': 0.17.19 715 | '@esbuild/linux-mips64el': 0.17.19 716 | '@esbuild/linux-ppc64': 0.17.19 717 | '@esbuild/linux-riscv64': 0.17.19 718 | '@esbuild/linux-s390x': 0.17.19 719 | '@esbuild/linux-x64': 0.17.19 720 | '@esbuild/netbsd-x64': 0.17.19 721 | '@esbuild/openbsd-x64': 0.17.19 722 | '@esbuild/sunos-x64': 0.17.19 723 | '@esbuild/win32-arm64': 0.17.19 724 | '@esbuild/win32-ia32': 0.17.19 725 | '@esbuild/win32-x64': 0.17.19 726 | 727 | escape-string-regexp@4.0.0: {} 728 | 729 | estree-walker@0.6.1: {} 730 | 731 | exit-hook@2.2.1: {} 732 | 733 | fsevents@2.3.3: 734 | optional: true 735 | 736 | function-bind@1.1.2: {} 737 | 738 | get-source@2.0.12: 739 | dependencies: 740 | data-uri-to-buffer: 2.0.2 741 | source-map: 0.6.1 742 | 743 | glob-to-regexp@0.4.1: {} 744 | 745 | hasown@2.0.2: 746 | dependencies: 747 | function-bind: 1.1.2 748 | 749 | is-core-module@2.16.1: 750 | dependencies: 751 | hasown: 2.0.2 752 | 753 | itty-time@1.0.6: {} 754 | 755 | magic-string@0.25.9: 756 | dependencies: 757 | sourcemap-codec: 1.4.8 758 | 759 | mime@3.0.0: {} 760 | 761 | miniflare@3.20241218.0: 762 | dependencies: 763 | '@cspotcode/source-map-support': 0.8.1 764 | acorn: 8.14.0 765 | acorn-walk: 8.3.4 766 | capnp-ts: 0.7.0 767 | exit-hook: 2.2.1 768 | glob-to-regexp: 0.4.1 769 | stoppable: 1.1.0 770 | undici: 5.28.4 771 | workerd: 1.20241218.0 772 | ws: 8.18.0 773 | youch: 3.3.4 774 | zod: 3.24.1 775 | transitivePeerDependencies: 776 | - bufferutil 777 | - supports-color 778 | - utf-8-validate 779 | 780 | ms@2.1.3: {} 781 | 782 | mustache@4.2.0: {} 783 | 784 | nanoid@3.3.8: {} 785 | 786 | node-forge@1.3.1: {} 787 | 788 | ohash@1.1.4: {} 789 | 790 | path-parse@1.0.7: {} 791 | 792 | path-to-regexp@6.3.0: {} 793 | 794 | pathe@1.1.2: {} 795 | 796 | printable-characters@1.0.42: {} 797 | 798 | readdirp@4.0.2: {} 799 | 800 | resolve@1.22.10: 801 | dependencies: 802 | is-core-module: 2.16.1 803 | path-parse: 1.0.7 804 | supports-preserve-symlinks-flag: 1.0.0 805 | 806 | rollup-plugin-inject@3.0.2: 807 | dependencies: 808 | estree-walker: 0.6.1 809 | magic-string: 0.25.9 810 | rollup-pluginutils: 2.8.2 811 | 812 | rollup-plugin-node-polyfills@0.2.1: 813 | dependencies: 814 | rollup-plugin-inject: 3.0.2 815 | 816 | rollup-pluginutils@2.8.2: 817 | dependencies: 818 | estree-walker: 0.6.1 819 | 820 | selfsigned@2.4.1: 821 | dependencies: 822 | '@types/node-forge': 1.3.11 823 | node-forge: 1.3.1 824 | 825 | source-map@0.6.1: {} 826 | 827 | sourcemap-codec@1.4.8: {} 828 | 829 | stacktracey@2.1.8: 830 | dependencies: 831 | as-table: 1.0.55 832 | get-source: 2.0.12 833 | 834 | stoppable@1.1.0: {} 835 | 836 | supports-preserve-symlinks-flag@1.0.0: {} 837 | 838 | tslib@2.8.1: {} 839 | 840 | typescript@5.7.2: {} 841 | 842 | ufo@1.5.4: {} 843 | 844 | undici-types@6.20.0: {} 845 | 846 | undici@5.28.4: 847 | dependencies: 848 | '@fastify/busboy': 2.1.1 849 | 850 | unenv-nightly@2.0.0-20241204-140205-a5d5190: 851 | dependencies: 852 | defu: 6.1.4 853 | ohash: 1.1.4 854 | pathe: 1.1.2 855 | ufo: 1.5.4 856 | 857 | workerd@1.20241218.0: 858 | optionalDependencies: 859 | '@cloudflare/workerd-darwin-64': 1.20241218.0 860 | '@cloudflare/workerd-darwin-arm64': 1.20241218.0 861 | '@cloudflare/workerd-linux-64': 1.20241218.0 862 | '@cloudflare/workerd-linux-arm64': 1.20241218.0 863 | '@cloudflare/workerd-windows-64': 1.20241218.0 864 | 865 | wrangler@3.99.0(@cloudflare/workers-types@4.20241224.0): 866 | dependencies: 867 | '@cloudflare/kv-asset-handler': 0.3.4 868 | '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) 869 | '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) 870 | blake3-wasm: 2.1.5 871 | chokidar: 4.0.3 872 | date-fns: 4.1.0 873 | esbuild: 0.17.19 874 | itty-time: 1.0.6 875 | miniflare: 3.20241218.0 876 | nanoid: 3.3.8 877 | path-to-regexp: 6.3.0 878 | resolve: 1.22.10 879 | selfsigned: 2.4.1 880 | source-map: 0.6.1 881 | unenv: unenv-nightly@2.0.0-20241204-140205-a5d5190 882 | workerd: 1.20241218.0 883 | xxhash-wasm: 1.1.0 884 | optionalDependencies: 885 | '@cloudflare/workers-types': 4.20241224.0 886 | fsevents: 2.3.3 887 | transitivePeerDependencies: 888 | - bufferutil 889 | - supports-color 890 | - utf-8-validate 891 | 892 | ws@8.18.0: {} 893 | 894 | xxhash-wasm@1.1.0: {} 895 | 896 | youch@3.3.4: 897 | dependencies: 898 | cookie: 0.7.2 899 | mustache: 4.2.0 900 | stacktracey: 2.1.8 901 | 902 | zod@3.24.1: {} 903 | -------------------------------------------------------------------------------- /worker/src/durable/signalling.ts: -------------------------------------------------------------------------------- 1 | import { DurableObject } from "cloudflare:workers"; 2 | import type { WebSocketRequestResponsePair } from "@cloudflare/workers-types"; 3 | 4 | export class SignallingServer extends DurableObject { 5 | env: Env; 6 | constructor(state: DurableObjectState, env: Env) { 7 | super(state, env); 8 | this.env = env; 9 | this.ctx.setWebSocketAutoResponse( 10 | // @ts-ignore 11 | new WebSocketRequestResponsePair("ping", "pong"), 12 | ); 13 | } 14 | 15 | async fetch(request: Request) { 16 | const id = new URL(request.url).searchParams.get("id"); 17 | if (typeof id !== "string") { 18 | return new Response("Missing id", { status: 400 }); 19 | } 20 | return this.connectWebSocket(id); 21 | } 22 | 23 | async connectWebSocket(id: string) { 24 | const webSocketPair = new WebSocketPair(); 25 | const [client, server] = Object.values(webSocketPair); 26 | server.serializeAttachment({ 27 | id, 28 | }); 29 | this.ctx.acceptWebSocket(server, [id]); 30 | return new Response(null, { 31 | status: 101, 32 | webSocket: client, 33 | }); 34 | } 35 | 36 | async webSocketMessage(ws: WebSocket, message: string | ArrayBuffer) { 37 | const { id } = ws.deserializeAttachment(); 38 | const msg = JSON.parse(message.toString()); 39 | msg.from = id; 40 | for (const client of this.ctx.getWebSockets(msg.to)) { 41 | client.send(JSON.stringify(msg)); 42 | } 43 | } 44 | 45 | async webSocketClose(ws: WebSocket) { 46 | ws.close(); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /worker/src/index.ts: -------------------------------------------------------------------------------- 1 | export { SignallingServer } from "@/durable/signalling"; 2 | 3 | function CorsHeaders(origin: string): Headers { 4 | return new Headers({ 5 | "Access-Control-Allow-Origin": origin, 6 | "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", 7 | "Access-Control-Allow-Headers": "*", 8 | "Access-Control-Max-Age": "86400", 9 | }); 10 | } 11 | 12 | export default { 13 | async fetch(request, env, ctx): Promise { 14 | const url = new URL(request.url); 15 | const method = request.method; 16 | if (method === "OPTIONS") { 17 | const origin = request.headers.get("Origin") || "*"; 18 | return new Response(null, { 19 | status: 204, 20 | headers: CorsHeaders(origin), 21 | }); 22 | } 23 | switch (url.pathname) { 24 | case "/connect": { 25 | const id: DurableObjectId = env.SIGNALLING_SERVER.idFromName("default"); 26 | const stub = env.SIGNALLING_SERVER.get(id); 27 | return stub.fetch(request); 28 | } 29 | } 30 | return new Response("Not found", { status: 404 }); 31 | }, 32 | } satisfies ExportedHandler; 33 | -------------------------------------------------------------------------------- /worker/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "module": "ESNext", 5 | "moduleResolution": "Bundler", 6 | "strict": true, 7 | "skipLibCheck": true, 8 | "lib": ["ESNext", "DOM"], 9 | "types": ["@cloudflare/workers-types"], 10 | "jsx": "react-jsx", 11 | "jsxImportSource": "hono/jsx", 12 | "baseUrl": ".", 13 | "paths": { 14 | "@/*": ["src/*"] 15 | }, 16 | "composite": true, 17 | "declaration": true 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /worker/worker-configuration.d.ts: -------------------------------------------------------------------------------- 1 | // Generated by Wrangler by running `wrangler types` 2 | 3 | interface Env { 4 | SIGNALLING_SERVER: DurableObjectNamespace< 5 | import("./src/index").SignallingServer 6 | >; 7 | } 8 | -------------------------------------------------------------------------------- /worker/wrangler.toml: -------------------------------------------------------------------------------- 1 | #:schema node_modules/wrangler/config-schema.json 2 | name = "signaling-server" 3 | main = "src/index.ts" 4 | compatibility_date = "2024-12-24" 5 | 6 | [observability] 7 | enabled = true 8 | 9 | # Variable bindings. These are arbitrary, plaintext strings (similar to environment variables) 10 | # Docs: 11 | # - https://developers.cloudflare.com/workers/wrangler/configuration/#environment-variables 12 | # Note: Use secrets to store sensitive data. 13 | # - https://developers.cloudflare.com/workers/configuration/secrets/ 14 | # [vars] 15 | # MY_VARIABLE = "production_value" 16 | 17 | # Bind the Workers AI model catalog. Run machine learning models, powered by serverless GPUs, on Cloudflare’s global network 18 | # Docs: https://developers.cloudflare.com/workers/wrangler/configuration/#workers-ai 19 | # [ai] 20 | # binding = "AI" 21 | 22 | # Bind an Analytics Engine dataset. Use Analytics Engine to write analytics within your Pages Function. 23 | # Docs: https://developers.cloudflare.com/workers/wrangler/configuration/#analytics-engine-datasets 24 | # [[analytics_engine_datasets]] 25 | # binding = "MY_DATASET" 26 | 27 | # Bind a headless browser instance running on Cloudflare's global network. 28 | # Docs: https://developers.cloudflare.com/workers/wrangler/configuration/#browser-rendering 29 | # [browser] 30 | # binding = "MY_BROWSER" 31 | 32 | # Bind a D1 database. D1 is Cloudflare’s native serverless SQL database. 33 | # Docs: https://developers.cloudflare.com/workers/wrangler/configuration/#d1-databases 34 | # [[d1_databases]] 35 | # binding = "MY_DB" 36 | # database_name = "my-database" 37 | # database_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 38 | 39 | # Bind a dispatch namespace. Use Workers for Platforms to deploy serverless functions programmatically on behalf of your customers. 40 | # Docs: https://developers.cloudflare.com/workers/wrangler/configuration/#dispatch-namespace-bindings-workers-for-platforms 41 | # [[dispatch_namespaces]] 42 | # binding = "MY_DISPATCHER" 43 | # namespace = "my-namespace" 44 | 45 | [[durable_objects.bindings]] 46 | name = "SIGNALLING_SERVER" 47 | class_name = "SignallingServer" 48 | 49 | [[migrations]] 50 | tag = "v1" 51 | new_sqlite_classes = ["SignallingServer"] 52 | 53 | # Bind a Hyperdrive configuration. Use to accelerate access to your existing databases from Cloudflare Workers. 54 | # Docs: https://developers.cloudflare.com/workers/wrangler/configuration/#hyperdrive 55 | # [[hyperdrive]] 56 | # binding = "MY_HYPERDRIVE" 57 | # id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 58 | 59 | # Bind a KV Namespace. Use KV as persistent storage for small key-value pairs. 60 | # Docs: https://developers.cloudflare.com/workers/wrangler/configuration/#kv-namespaces 61 | # [[kv_namespaces]] 62 | # binding = "MY_KV_NAMESPACE" 63 | # id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 64 | 65 | # Bind an mTLS certificate. Use to present a client certificate when communicating with another service. 66 | # Docs: https://developers.cloudflare.com/workers/wrangler/configuration/#mtls-certificates 67 | # [[mtls_certificates]] 68 | # binding = "MY_CERTIFICATE" 69 | # certificate_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 70 | 71 | # Bind a Queue producer. Use this binding to schedule an arbitrary task that may be processed later by a Queue consumer. 72 | # Docs: https://developers.cloudflare.com/workers/wrangler/configuration/#queues 73 | # [[queues.producers]] 74 | # binding = "MY_QUEUE" 75 | # queue = "my-queue" 76 | 77 | # Bind a Queue consumer. Queue Consumers can retrieve tasks scheduled by Producers to act on them. 78 | # Docs: https://developers.cloudflare.com/workers/wrangler/configuration/#queues 79 | # [[queues.consumers]] 80 | # queue = "my-queue" 81 | 82 | # Bind an R2 Bucket. Use R2 to store arbitrarily large blobs of data, such as files. 83 | # Docs: https://developers.cloudflare.com/workers/wrangler/configuration/#r2-buckets 84 | # [[r2_buckets]] 85 | # binding = "MY_BUCKET" 86 | # bucket_name = "my-bucket" 87 | 88 | # Bind another Worker service. Use this binding to call another Worker without network overhead. 89 | # Docs: https://developers.cloudflare.com/workers/wrangler/configuration/#service-bindings 90 | # [[services]] 91 | # binding = "MY_SERVICE" 92 | # service = "my-service" 93 | 94 | # Bind a Vectorize index. Use to store and query vector embeddings for semantic search, classification and other vector search use-cases. 95 | # Docs: https://developers.cloudflare.com/workers/wrangler/configuration/#vectorize-indexes 96 | # [[vectorize]] 97 | # binding = "MY_INDEX" 98 | # index_name = "my-index" 99 | --------------------------------------------------------------------------------