├── LICENSE ├── PhonePal ├── .env.example ├── .eslintrc.json ├── .gitignore ├── LICENSE ├── README.md ├── app │ ├── favicon.ico │ ├── globals.css │ ├── layout.tsx │ ├── lib │ │ ├── icons.tsx │ │ └── usePlayer.ts │ └── page.tsx ├── demo.gif ├── next.config.mjs ├── package.json ├── pnpm-lock.yaml ├── postcss.config.mjs ├── server.mjs ├── tailwind.config.ts ├── tsconfig.json └── vercel.json ├── README.md └── studypal ├── README.md ├── env.example ├── requirements.txt ├── runner.py └── studypal.py /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Cartesia 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /PhonePal/.env.example: -------------------------------------------------------------------------------- 1 | # Groq is used to transcribe speech and generate the text response. 2 | # Create a key here: https://console.groq.com/keys 3 | GROQ_API_KEY= 4 | 5 | # Cartesia is used to synthesize the text response into speech. 6 | # Create a key here: https://play.cartesia.ai/console 7 | NEXT_PUBLIC_CARTESIA_API_KEY= 8 | -------------------------------------------------------------------------------- /PhonePal/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /PhonePal/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | .yarn/install-state.gz 8 | 9 | # testing 10 | /coverage 11 | 12 | # next.js 13 | /.next/ 14 | /out/ 15 | 16 | # production 17 | /build 18 | 19 | # misc 20 | .DS_Store 21 | *.pem 22 | 23 | # debug 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | 28 | # local env files 29 | .env*.local 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | 38 | # files copied from npm modules 39 | public/ 40 | 41 | # misc 42 | todo.js 43 | clean_server.mjs 44 | old_server.mjs -------------------------------------------------------------------------------- /PhonePal/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 ai-ng 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /PhonePal/README.md: -------------------------------------------------------------------------------- 1 | # PhonePal 2 | 3 | Real-time translation of voice calls 4 | 5 | ![demo](demo.gif) 6 | 7 | The audio processing pipeline uses Groq for fast inference of Whisper to transcribe the sender. The sender's transcription is then translated into the receiver's target language with Groq `llama3-8b-8192` as a zero-shot translator. The audio of the translation is then generated using Cartesia `sonic-english` or `sonic-multilingual` in the voice of the original sender using voice cloning and sent to the receiver over a Websocket. 8 | 9 | Current languages supported on PhonePal: English, Spanish, German, and French. 10 | 11 | This project was bootstrapped from [swift](https://github.com/ai-ng/swift.git). 12 | 13 | ## Set up 14 | 15 | - Clone repo 16 | - Copy `.env.example` to `.env.local` and add environment variables. 17 | - Run `pnpm install` to install dependencies. 18 | - Run `node server.mjs` to run the server-side. 19 | - Run `pnpm dev` to start the client-side. 20 | - To simulate a call, open two seperate `localhost:3000` on your browser and have them join the same call 21 | -------------------------------------------------------------------------------- /PhonePal/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cartesia-ai/dev-showcase/43f8c2c6e20b1b82ac519ccde3ce0d8591c49fec/PhonePal/app/favicon.ico -------------------------------------------------------------------------------- /PhonePal/app/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | -------------------------------------------------------------------------------- /PhonePal/app/layout.tsx: -------------------------------------------------------------------------------- 1 | import type { Metadata } from "next"; 2 | import { GeistSans } from "geist/font/sans"; 3 | import { GeistMono } from "geist/font/mono"; 4 | import clsx from "clsx"; 5 | import "./globals.css"; 6 | import { Toaster } from "sonner"; 7 | import { Analytics } from "@vercel/analytics/react"; 8 | 9 | export const metadata: Metadata = { 10 | title: "PhonePal", 11 | description: 12 | "Real-time translation of voice calls.", 13 | }; 14 | 15 | export default function RootLayout({ 16 | children, 17 | }: Readonly<{ 18 | children: React.ReactNode; 19 | }>) { 20 | return ( 21 | 22 | 29 |
30 | {children} 31 |
32 | 33 | 34 | 35 | 36 | 37 | ); 38 | } 39 | -------------------------------------------------------------------------------- /PhonePal/app/lib/icons.tsx: -------------------------------------------------------------------------------- 1 | export function LoadingIcon() { 2 | return ( 3 | 15 | 16 | 17 | 18 | ); 19 | } 20 | 21 | export function EnterIcon() { 22 | return ( 23 | 34 | 35 | 36 | 37 | ); 38 | } 39 | -------------------------------------------------------------------------------- /PhonePal/app/lib/usePlayer.ts: -------------------------------------------------------------------------------- 1 | import { useRef, useState } from "react"; 2 | 3 | export function usePlayer() { 4 | const [isPlaying, setIsPlaying] = useState(false); 5 | const audioContext = useRef(null); 6 | const source = useRef(null); 7 | 8 | async function play(stream: ReadableStream, callback: () => void) { 9 | stop(); 10 | audioContext.current = new AudioContext({ sampleRate: 24000 }); 11 | 12 | let nextStartTime = audioContext.current.currentTime; 13 | const reader = stream.getReader(); 14 | let leftover = new Uint8Array(); 15 | let result = await reader.read(); 16 | setIsPlaying(true); 17 | 18 | while (!result.done && audioContext.current) { 19 | const data = new Uint8Array(leftover.length + result.value.length); 20 | data.set(leftover); 21 | data.set(result.value, leftover.length); 22 | 23 | const length = Math.floor(data.length / 4) * 4; 24 | const remainder = data.length % 4; 25 | const buffer = new Float32Array(data.buffer, 0, length / 4); 26 | 27 | leftover = new Uint8Array(data.buffer, length, remainder); 28 | 29 | const audioBuffer = audioContext.current.createBuffer( 30 | 1, 31 | buffer.length, 32 | audioContext.current.sampleRate 33 | ); 34 | audioBuffer.copyToChannel(buffer, 0); 35 | 36 | source.current = audioContext.current.createBufferSource(); 37 | source.current.buffer = audioBuffer; 38 | source.current.connect(audioContext.current.destination); 39 | source.current.start(nextStartTime); 40 | 41 | nextStartTime += audioBuffer.duration; 42 | 43 | result = await reader.read(); 44 | if (result.done) { 45 | source.current.onended = () => { 46 | stop(); 47 | callback(); 48 | }; 49 | } 50 | } 51 | } 52 | 53 | function stop() { 54 | audioContext.current?.close(); 55 | audioContext.current = null; 56 | setIsPlaying(false); 57 | } 58 | 59 | return { 60 | isPlaying, 61 | play, 62 | stop, 63 | }; 64 | } 65 | -------------------------------------------------------------------------------- /PhonePal/app/page.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | import React, { useEffect, useRef, useState } from "react"; 4 | import { usePlayer } from "@/lib/usePlayer"; 5 | import { useMicVAD, utils } from "@ricky0123/vad-react"; 6 | import { WebPlayer, Cartesia } from "@cartesia/cartesia-js"; 7 | import { Phone, Plus, Mic, MicOff } from 'lucide-react'; 8 | 9 | // Languages supported on phonepal 10 | const languages = [ 11 | { code: "", name: "Not Selected" }, 12 | { code: "en", name: "English" }, 13 | { code: "es", name: "Spanish" }, 14 | { code: "fr", name: "French" }, 15 | { code: "de", name: "German" }, 16 | ]; 17 | 18 | interface CustomWebSocket extends WebSocket { 19 | clientId?: string; 20 | } 21 | 22 | export default function Home() { 23 | 24 | const [step, setStep] = useState<'initial' | 'joinCall' | 'profile' | 'inCall'>('initial'); 25 | const [selectedLanguage, setSelectedLanguage] = useState(""); 26 | const [userVoiceId, setUserVoiceId] = useState(null); 27 | const [websocket, setWebsocket] = useState(null); 28 | const [partnerLanguage, setPartnerLanguage] = useState(""); 29 | const [gender, setGender] = useState("male"); 30 | const [input, setInput] = useState(""); 31 | const player = usePlayer(); 32 | const cartesiaPlayer = useRef(new WebPlayer({ bufferDuration: 0.5 })); 33 | const [callId, setCallId] = useState(""); 34 | const [isInCall, setIsInCall] = useState(false); 35 | const cartesiaClient = useRef(new Cartesia({ apiKey: process.env.NEXT_PUBLIC_CARTESIA_API_KEY })); 36 | const ttsWebsocket = useRef(null); 37 | const [isPlaying, setIsPlaying] = useState(false); 38 | const [isMuted, setIsMuted] = useState(false); 39 | 40 | useEffect(() => { 41 | const initTTSWebsocket = async () => { 42 | ttsWebsocket.current = cartesiaClient.current.tts.websocket({ 43 | container: "raw", 44 | encoding: "pcm_f32le", 45 | sampleRate: 44100 46 | }); 47 | await ttsWebsocket.current.connect(); 48 | }; 49 | 50 | initTTSWebsocket(); 51 | 52 | return () => { 53 | if (ttsWebsocket.current) { 54 | ttsWebsocket.current.disconnect(); 55 | } 56 | }; 57 | }, []); 58 | 59 | useEffect(() => { 60 | const ws = new WebSocket('ws://localhost:3010') as CustomWebSocket; 61 | setWebsocket(ws); 62 | 63 | ws.onopen = () => { 64 | console.log('Connected to WebSocket server'); 65 | ws.send(JSON.stringify({ type: 'language', language: selectedLanguage })); 66 | if (userVoiceId) { 67 | ws.send(JSON.stringify({ type: 'voiceId', voiceId: userVoiceId })); 68 | } 69 | }; 70 | 71 | ws.onmessage = async (event) => { 72 | if (typeof event.data === 'string') { 73 | try { 74 | const data = JSON.parse(event.data); 75 | if (data.type === 'language') { 76 | setPartnerLanguage(data.language); 77 | } else if (data.type === 'callCreated' || data.type === 'callJoined') { 78 | setCallId(data.callId); 79 | setIsInCall(true); 80 | setStep('inCall'); 81 | } else if (data.type === 'translation') { 82 | console.log("Received translation:", data); 83 | await generateAndPlayAudio(data.translation, data.voiceId, data.language); 84 | 85 | } 86 | } catch (error) { 87 | console.error('Error parsing WebSocket message:', error); 88 | } 89 | } 90 | }; 91 | 92 | return () => { 93 | ws.close(); 94 | }; 95 | }, []); 96 | 97 | const generateAndPlayAudio = async (text, voiceId, language) => { 98 | 99 | if (!ttsWebsocket.current) return; // Only play if the user is the receiver 100 | 101 | const contextId = Date.now().toString(); 102 | const chunks = text.split(/(?<=[.!?])\s+/); 103 | 104 | setIsPlaying(true); 105 | 106 | try { 107 | // Send the first chunk and start playing 108 | const initialResponse = await ttsWebsocket.current.send({ 109 | model_id: language === "en" ? "sonic-english" : "sonic-multilingual", 110 | voice: { mode: "id", id: voiceId }, 111 | transcript: chunks[0], 112 | context_id: contextId, 113 | continue: chunks.length > 1, 114 | language: language 115 | }); 116 | 117 | // Start playing the first chunk 118 | cartesiaPlayer.current.play(initialResponse.source); 119 | console.log(chunks[0]) 120 | 121 | // Send the remaining chunks 122 | for (let i = 1; i < chunks.length; i++) { 123 | const response = await ttsWebsocket.current.send({ 124 | model_id: language === "en" ? "sonic-english" : "sonic-multilingual", 125 | voice: { mode: "id", id: voiceId }, 126 | transcript: chunks[i], 127 | context_id: contextId, 128 | continue: i < chunks.length - 1, 129 | language: language 130 | }); 131 | 132 | } 133 | 134 | } catch (error) { 135 | console.error("Error in audio generation or playback:", error); 136 | } finally { 137 | setIsPlaying(false); 138 | } 139 | }; 140 | 141 | const vad = useMicVAD({ 142 | startOnLoad: true, 143 | onSpeechEnd: async (audio) => { 144 | if (isMuted) return; // Don't process audio if muted 145 | player.stop(); 146 | const wav = utils.encodeWAV(audio); 147 | const blob = new Blob([wav], { type: "audio/wav" }); 148 | if (websocket && websocket.readyState === WebSocket.OPEN && isInCall) { 149 | 150 | const formData = new FormData(); 151 | formData.append('audio', blob); 152 | formData.append('voiceId', userVoiceId || 'a0e99841-438c-4a64-b679-ae501e7d6091'); 153 | formData.append('senderLanguage', selectedLanguage); 154 | formData.append('receiverLanguage', partnerLanguage || 'es'); 155 | formData.append('callId', callId); 156 | 157 | const response = await fetch(`http://localhost:3010/process-audio`, { 158 | method: 'POST', 159 | body: formData 160 | }); 161 | 162 | if (response.ok) { 163 | const data = await response.json(); 164 | console.log("Received response from server:", data); 165 | } else { 166 | console.error('Failed to process audio'); 167 | } 168 | } 169 | const isFirefox = navigator.userAgent.includes("Firefox"); 170 | if (isFirefox) vad.pause(); 171 | }, 172 | workletURL: "/vad.worklet.bundle.min.js", 173 | modelURL: "/silero_vad.onnx", 174 | positiveSpeechThreshold: 0.6, 175 | minSpeechFrames: 4, 176 | ortConfig(ort) { 177 | const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); 178 | ort.env.wasm = { 179 | wasmPaths: { 180 | "ort-wasm-simd-threaded.wasm": "/ort-wasm-simd-threaded.wasm", 181 | "ort-wasm-simd.wasm": "/ort-wasm-simd.wasm", 182 | "ort-wasm.wasm": "/ort-wasm.wasm", 183 | "ort-wasm-threaded.wasm": "/ort-wasm-threaded.wasm", 184 | "ort-wasm-simd-threaded.mjs": "/ort-wasm-simd-threaded.mjs", 185 | }, 186 | numThreads: isSafari ? 1 : 4, 187 | }; 188 | }, 189 | }); 190 | 191 | const toggleMute = () => { 192 | setIsMuted(!isMuted); 193 | if (!isMuted) { 194 | vad.pause(); 195 | } else { 196 | vad.start(); 197 | } 198 | }; 199 | 200 | useEffect(() => { 201 | if (websocket && websocket.readyState === WebSocket.OPEN) { 202 | websocket.send(JSON.stringify({ type: 'language', language: selectedLanguage })); 203 | } 204 | }, [selectedLanguage, websocket]); 205 | 206 | useEffect(() => { 207 | if (websocket && websocket.readyState === WebSocket.OPEN && userVoiceId) { 208 | websocket.send(JSON.stringify({ type: 'voiceId', voiceId: userVoiceId })); 209 | } 210 | }, [userVoiceId, websocket]); 211 | 212 | const createCall = () => { 213 | if (websocket && websocket.readyState === WebSocket.OPEN) { 214 | websocket.send(JSON.stringify({ type: 'createCall' })); 215 | setStep('profile'); 216 | } 217 | }; 218 | 219 | const joinCall = () => { 220 | if (websocket && websocket.readyState === WebSocket.OPEN) { 221 | websocket.send(JSON.stringify({ type: 'joinCall', callId: input })); 222 | setStep('profile'); 223 | } 224 | }; 225 | 226 | const handleLanguageChange = (e: React.ChangeEvent) => { 227 | const newLanguage = e.target.value; 228 | setSelectedLanguage(newLanguage); 229 | }; 230 | 231 | const handleVoiceClone = async (e: React.ChangeEvent) => { 232 | const file = e.target.files?.[0]; 233 | if (file) { 234 | const formData = new FormData(); 235 | console.log("gender", gender) 236 | console.log("partnerLanguage", partnerLanguage) 237 | formData.append('voiceSample', file); 238 | formData.append('gender', gender); 239 | formData.append('receiverLanguage', partnerLanguage || 'en'); 240 | 241 | const response = await fetch(`http://localhost:3010/clone-voice`, { 242 | method: 'POST', 243 | body: formData 244 | }); 245 | if (response.ok) { 246 | const { voiceId } = await response.json(); 247 | setUserVoiceId(voiceId); 248 | if (websocket && websocket.readyState === WebSocket.OPEN) { 249 | websocket.send(JSON.stringify({ type: 'voiceId', voiceId })); 250 | } 251 | } else { 252 | console.error('Failed to clone voice'); 253 | } 254 | } 255 | }; 256 | 257 | return ( 258 |
259 | {step === 'initial' && ( 260 | <> 261 |
262 |

PhonePal

263 |
264 |
265 | 272 | 279 |
280 | 281 | )} 282 | 283 | {step === 'joinCall' && ( 284 |
285 | setInput(e.target.value)} 290 | className="border-2 border-gray-300 bg-white h-12 px-5 rounded-lg text-sm focus:outline-none focus:border-blue-500 w-64" 291 | /> 292 | 298 |
299 | )} 300 | 301 | {(step === 'profile' || step === 'inCall') && ( 302 |
303 | {step === 'inCall' && ( 304 | <> 305 |
306 |

In call: {callId}

307 |

{vad.userSpeaking && !isMuted ? "Speaking..." : "Not speaking"}

308 | 317 |
318 |
319 |

{"Partner's language:"}

320 |

{languages.find(lang => lang.code === partnerLanguage)?.name || 'Not selected'}

321 |
322 | 323 | )} 324 | 325 |
326 |
327 | 328 | 338 |
339 | 340 |
341 | 342 | 351 |
352 | 353 |
354 | 355 | 367 | {userVoiceId &&

Voice ID: {userVoiceId}

} 368 |
369 |
370 | 371 |
372 | )} 373 | 374 | {vad.loading &&

Loading speech detection...

} 375 | {vad.errored &&

Failed to load speech detection.

} 376 | 377 |
386 |
387 | ); 388 | 389 | } -------------------------------------------------------------------------------- /PhonePal/demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cartesia-ai/dev-showcase/43f8c2c6e20b1b82ac519ccde3ce0d8591c49fec/PhonePal/demo.gif -------------------------------------------------------------------------------- /PhonePal/next.config.mjs: -------------------------------------------------------------------------------- 1 | import fs from "node:fs/promises"; 2 | import path from "node:path"; 3 | 4 | /** @type {import('next').NextConfig} */ 5 | const nextConfig = { 6 | experimental: { 7 | after: true, 8 | }, 9 | async headers() { 10 | return [ 11 | { 12 | source: "/(.*)", 13 | headers: [ 14 | { 15 | key: "Cross-Origin-Opener-Policy", 16 | value: "same-origin", 17 | }, 18 | { 19 | key: "Cross-Origin-Embedder-Policy", 20 | value: "require-corp", 21 | }, 22 | ], 23 | }, 24 | ]; 25 | }, 26 | }; 27 | 28 | export default nextConfig; 29 | 30 | async function copyFiles() { 31 | try { 32 | await fs.access("public/"); 33 | } catch { 34 | await fs.mkdir("public/", { recursive: true }); 35 | } 36 | 37 | const wasmFiles = ( 38 | await fs.readdir("node_modules/onnxruntime-web/dist/") 39 | ).filter((file) => path.extname(file) === ".wasm"); 40 | 41 | await Promise.all([ 42 | fs.copyFile( 43 | "node_modules/@ricky0123/vad-web/dist/vad.worklet.bundle.min.js", 44 | "public/vad.worklet.bundle.min.js" 45 | ), 46 | fs.copyFile( 47 | "node_modules/@ricky0123/vad-web/dist/silero_vad.onnx", 48 | "public/silero_vad.onnx" 49 | ), 50 | ...wasmFiles.map((file) => 51 | fs.copyFile( 52 | `node_modules/onnxruntime-web/dist/${file}`, 53 | `public/${file}` 54 | ) 55 | ), 56 | ]); 57 | } 58 | 59 | copyFiles(); 60 | -------------------------------------------------------------------------------- /PhonePal/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "phonepal", 3 | "version": "0.1.0", 4 | "type": "module", 5 | "private": true, 6 | "scripts": { 7 | "dev": "next dev", 8 | "build": "next build", 9 | "start": "next start", 10 | "lint": "next lint" 11 | }, 12 | "dependencies": { 13 | "@cartesia/cartesia-js": "^1.0.2", 14 | "@ricky0123/vad-react": "^0.0.24", 15 | "@ricky0123/vad-web": "^0.0.18", 16 | "@vercel/analytics": "^1.2.2", 17 | "clsx": "^2.1.1", 18 | "cors": "^2.8.5", 19 | "dotenv": "^16.4.5", 20 | "express": "^4.19.2", 21 | "form-data": "^4.0.0", 22 | "geist": "^1.3.0", 23 | "groq-sdk": "^0.3.3", 24 | "http": "0.0.1-security", 25 | "human-id": "^4.1.1", 26 | "lucide-react": "^0.435.0", 27 | "multer": "1.4.5-lts.1", 28 | "next": "15.0.0-rc.0", 29 | "node-fetch": "^2.7.0", 30 | "onnxruntime-web": "^1.18.0", 31 | "react": "19.0.0-rc-100dfd7dab-20240701", 32 | "react-dom": "19.0.0-rc-100dfd7dab-20240701", 33 | "sonner": "^1.4.41", 34 | "ws": "^8.18.0", 35 | "zod": "^3.23.8", 36 | "zod-form-data": "^2.0.2" 37 | }, 38 | "devDependencies": { 39 | "@types/node": "^20", 40 | "@types/react": "^18", 41 | "@types/react-dom": "^18", 42 | "autoprefixer": "^10.4.19", 43 | "eslint": "^8", 44 | "eslint-config-next": "14.2.3", 45 | "postcss": "^8", 46 | "tailwindcss": "^3.4.1", 47 | "typescript": "^5" 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /PhonePal/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@cartesia/cartesia-js': 12 | specifier: ^1.0.2 13 | version: 1.0.2(@types/react@18.3.2)(react@19.0.0-rc-100dfd7dab-20240701) 14 | '@ricky0123/vad-react': 15 | specifier: ^0.0.24 16 | version: 0.0.24(react-dom@19.0.0-rc-100dfd7dab-20240701(react@19.0.0-rc-100dfd7dab-20240701))(react@19.0.0-rc-100dfd7dab-20240701) 17 | '@ricky0123/vad-web': 18 | specifier: ^0.0.18 19 | version: 0.0.18 20 | '@vercel/analytics': 21 | specifier: ^1.2.2 22 | version: 1.2.2(next@15.0.0-rc.0(react-dom@19.0.0-rc-100dfd7dab-20240701(react@19.0.0-rc-100dfd7dab-20240701))(react@19.0.0-rc-100dfd7dab-20240701))(react@19.0.0-rc-100dfd7dab-20240701) 23 | clsx: 24 | specifier: ^2.1.1 25 | version: 2.1.1 26 | cors: 27 | specifier: ^2.8.5 28 | version: 2.8.5 29 | dotenv: 30 | specifier: ^16.4.5 31 | version: 16.4.5 32 | express: 33 | specifier: ^4.19.2 34 | version: 4.19.2 35 | form-data: 36 | specifier: ^4.0.0 37 | version: 4.0.0 38 | geist: 39 | specifier: ^1.3.0 40 | version: 1.3.0(next@15.0.0-rc.0(react-dom@19.0.0-rc-100dfd7dab-20240701(react@19.0.0-rc-100dfd7dab-20240701))(react@19.0.0-rc-100dfd7dab-20240701)) 41 | groq-sdk: 42 | specifier: ^0.3.3 43 | version: 0.3.3 44 | http: 45 | specifier: 0.0.1-security 46 | version: 0.0.1-security 47 | human-id: 48 | specifier: ^4.1.1 49 | version: 4.1.1 50 | lucide-react: 51 | specifier: ^0.435.0 52 | version: 0.435.0(react@19.0.0-rc-100dfd7dab-20240701) 53 | multer: 54 | specifier: 1.4.5-lts.1 55 | version: 1.4.5-lts.1 56 | next: 57 | specifier: 15.0.0-rc.0 58 | version: 15.0.0-rc.0(react-dom@19.0.0-rc-100dfd7dab-20240701(react@19.0.0-rc-100dfd7dab-20240701))(react@19.0.0-rc-100dfd7dab-20240701) 59 | node-fetch: 60 | specifier: ^2.7.0 61 | version: 2.7.0 62 | onnxruntime-web: 63 | specifier: ^1.18.0 64 | version: 1.18.0 65 | react: 66 | specifier: 19.0.0-rc-100dfd7dab-20240701 67 | version: 19.0.0-rc-100dfd7dab-20240701 68 | react-dom: 69 | specifier: 19.0.0-rc-100dfd7dab-20240701 70 | version: 19.0.0-rc-100dfd7dab-20240701(react@19.0.0-rc-100dfd7dab-20240701) 71 | sonner: 72 | specifier: ^1.4.41 73 | version: 1.4.41(react-dom@19.0.0-rc-100dfd7dab-20240701(react@19.0.0-rc-100dfd7dab-20240701))(react@19.0.0-rc-100dfd7dab-20240701) 74 | ws: 75 | specifier: ^8.18.0 76 | version: 8.18.0 77 | zod: 78 | specifier: ^3.23.8 79 | version: 3.23.8 80 | zod-form-data: 81 | specifier: ^2.0.2 82 | version: 2.0.2(zod@3.23.8) 83 | devDependencies: 84 | '@types/node': 85 | specifier: ^20 86 | version: 20.12.12 87 | '@types/react': 88 | specifier: ^18 89 | version: 18.3.2 90 | '@types/react-dom': 91 | specifier: ^18 92 | version: 18.3.0 93 | autoprefixer: 94 | specifier: ^10.4.19 95 | version: 10.4.19(postcss@8.4.38) 96 | eslint: 97 | specifier: ^8 98 | version: 8.57.0 99 | eslint-config-next: 100 | specifier: 14.2.3 101 | version: 14.2.3(eslint@8.57.0)(typescript@5.4.5) 102 | postcss: 103 | specifier: ^8 104 | version: 8.4.38 105 | tailwindcss: 106 | specifier: ^3.4.1 107 | version: 3.4.3 108 | typescript: 109 | specifier: ^5 110 | version: 5.4.5 111 | 112 | packages: 113 | 114 | '@alloc/quick-lru@5.2.0': 115 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 116 | engines: {node: '>=10'} 117 | 118 | '@babel/runtime@7.24.5': 119 | resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==} 120 | engines: {node: '>=6.9.0'} 121 | 122 | '@cartesia/cartesia-js@1.0.2': 123 | resolution: {integrity: sha512-/1ld9ckpuI9Q8oTqDNx21g42pZzlV1TVYlz+VJp9kRRp7aXC3ILV7PLmXMooYDvpAimZkJwkv/SlWgr35KKh8Q==} 124 | engines: {node: '>=18'} 125 | peerDependencies: 126 | '@types/react': ^18.2.58 127 | react: ^18.2.0 128 | peerDependenciesMeta: 129 | '@types/react': 130 | optional: true 131 | react: 132 | optional: true 133 | 134 | '@emnapi/runtime@1.2.0': 135 | resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} 136 | 137 | '@eslint-community/eslint-utils@4.4.0': 138 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 139 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 140 | peerDependencies: 141 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 142 | 143 | '@eslint-community/regexpp@4.10.0': 144 | resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} 145 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 146 | 147 | '@eslint/eslintrc@2.1.4': 148 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} 149 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 150 | 151 | '@eslint/js@8.57.0': 152 | resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} 153 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 154 | 155 | '@humanwhocodes/config-array@0.11.14': 156 | resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} 157 | engines: {node: '>=10.10.0'} 158 | 159 | '@humanwhocodes/module-importer@1.0.1': 160 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 161 | engines: {node: '>=12.22'} 162 | 163 | '@humanwhocodes/object-schema@2.0.3': 164 | resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} 165 | 166 | '@img/sharp-darwin-arm64@0.33.4': 167 | resolution: {integrity: sha512-p0suNqXufJs9t3RqLBO6vvrgr5OhgbWp76s5gTRvdmxmuv9E1rcaqGUsl3l4mKVmXPkTkTErXediAui4x+8PSA==} 168 | engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 169 | cpu: [arm64] 170 | os: [darwin] 171 | 172 | '@img/sharp-darwin-x64@0.33.4': 173 | resolution: {integrity: sha512-0l7yRObwtTi82Z6ebVI2PnHT8EB2NxBgpK2MiKJZJ7cz32R4lxd001ecMhzzsZig3Yv9oclvqqdV93jo9hy+Dw==} 174 | engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 175 | cpu: [x64] 176 | os: [darwin] 177 | 178 | '@img/sharp-libvips-darwin-arm64@1.0.2': 179 | resolution: {integrity: sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==} 180 | engines: {macos: '>=11', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 181 | cpu: [arm64] 182 | os: [darwin] 183 | 184 | '@img/sharp-libvips-darwin-x64@1.0.2': 185 | resolution: {integrity: sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==} 186 | engines: {macos: '>=10.13', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 187 | cpu: [x64] 188 | os: [darwin] 189 | 190 | '@img/sharp-libvips-linux-arm64@1.0.2': 191 | resolution: {integrity: sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==} 192 | engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 193 | cpu: [arm64] 194 | os: [linux] 195 | 196 | '@img/sharp-libvips-linux-arm@1.0.2': 197 | resolution: {integrity: sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==} 198 | engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 199 | cpu: [arm] 200 | os: [linux] 201 | 202 | '@img/sharp-libvips-linux-s390x@1.0.2': 203 | resolution: {integrity: sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==} 204 | engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 205 | cpu: [s390x] 206 | os: [linux] 207 | 208 | '@img/sharp-libvips-linux-x64@1.0.2': 209 | resolution: {integrity: sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==} 210 | engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 211 | cpu: [x64] 212 | os: [linux] 213 | 214 | '@img/sharp-libvips-linuxmusl-arm64@1.0.2': 215 | resolution: {integrity: sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==} 216 | engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 217 | cpu: [arm64] 218 | os: [linux] 219 | 220 | '@img/sharp-libvips-linuxmusl-x64@1.0.2': 221 | resolution: {integrity: sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==} 222 | engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 223 | cpu: [x64] 224 | os: [linux] 225 | 226 | '@img/sharp-linux-arm64@0.33.4': 227 | resolution: {integrity: sha512-2800clwVg1ZQtxwSoTlHvtm9ObgAax7V6MTAB/hDT945Tfyy3hVkmiHpeLPCKYqYR1Gcmv1uDZ3a4OFwkdBL7Q==} 228 | engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 229 | cpu: [arm64] 230 | os: [linux] 231 | 232 | '@img/sharp-linux-arm@0.33.4': 233 | resolution: {integrity: sha512-RUgBD1c0+gCYZGCCe6mMdTiOFS0Zc/XrN0fYd6hISIKcDUbAW5NtSQW9g/powkrXYm6Vzwd6y+fqmExDuCdHNQ==} 234 | engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 235 | cpu: [arm] 236 | os: [linux] 237 | 238 | '@img/sharp-linux-s390x@0.33.4': 239 | resolution: {integrity: sha512-h3RAL3siQoyzSoH36tUeS0PDmb5wINKGYzcLB5C6DIiAn2F3udeFAum+gj8IbA/82+8RGCTn7XW8WTFnqag4tQ==} 240 | engines: {glibc: '>=2.31', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 241 | cpu: [s390x] 242 | os: [linux] 243 | 244 | '@img/sharp-linux-x64@0.33.4': 245 | resolution: {integrity: sha512-GoR++s0XW9DGVi8SUGQ/U4AeIzLdNjHka6jidVwapQ/JebGVQIpi52OdyxCNVRE++n1FCLzjDovJNozif7w/Aw==} 246 | engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 247 | cpu: [x64] 248 | os: [linux] 249 | 250 | '@img/sharp-linuxmusl-arm64@0.33.4': 251 | resolution: {integrity: sha512-nhr1yC3BlVrKDTl6cO12gTpXMl4ITBUZieehFvMntlCXFzH2bvKG76tBL2Y/OqhupZt81pR7R+Q5YhJxW0rGgQ==} 252 | engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 253 | cpu: [arm64] 254 | os: [linux] 255 | 256 | '@img/sharp-linuxmusl-x64@0.33.4': 257 | resolution: {integrity: sha512-uCPTku0zwqDmZEOi4ILyGdmW76tH7dm8kKlOIV1XC5cLyJ71ENAAqarOHQh0RLfpIpbV5KOpXzdU6XkJtS0daw==} 258 | engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 259 | cpu: [x64] 260 | os: [linux] 261 | 262 | '@img/sharp-wasm32@0.33.4': 263 | resolution: {integrity: sha512-Bmmauh4sXUsUqkleQahpdNXKvo+wa1V9KhT2pDA4VJGKwnKMJXiSTGphn0gnJrlooda0QxCtXc6RX1XAU6hMnQ==} 264 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 265 | cpu: [wasm32] 266 | 267 | '@img/sharp-win32-ia32@0.33.4': 268 | resolution: {integrity: sha512-99SJ91XzUhYHbx7uhK3+9Lf7+LjwMGQZMDlO/E/YVJ7Nc3lyDFZPGhjwiYdctoH2BOzW9+TnfqcaMKt0jHLdqw==} 269 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 270 | cpu: [ia32] 271 | os: [win32] 272 | 273 | '@img/sharp-win32-x64@0.33.4': 274 | resolution: {integrity: sha512-3QLocdTRVIrFNye5YocZl+KKpYKP+fksi1QhmOArgx7GyhIbQp/WrJRu176jm8IxromS7RIkzMiMINVdBtC8Aw==} 275 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 276 | cpu: [x64] 277 | os: [win32] 278 | 279 | '@isaacs/cliui@8.0.2': 280 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 281 | engines: {node: '>=12'} 282 | 283 | '@jridgewell/gen-mapping@0.3.5': 284 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 285 | engines: {node: '>=6.0.0'} 286 | 287 | '@jridgewell/resolve-uri@3.1.2': 288 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 289 | engines: {node: '>=6.0.0'} 290 | 291 | '@jridgewell/set-array@1.2.1': 292 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 293 | engines: {node: '>=6.0.0'} 294 | 295 | '@jridgewell/sourcemap-codec@1.4.15': 296 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 297 | 298 | '@jridgewell/trace-mapping@0.3.25': 299 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 300 | 301 | '@next/env@15.0.0-rc.0': 302 | resolution: {integrity: sha512-6W0ndQvHR9sXcqcKeR/inD2UTRCs9+VkSK3lfaGmEuZs7EjwwXMO2BPYjz9oBrtfPL3xuTjtXsHKSsalYQ5l1Q==} 303 | 304 | '@next/eslint-plugin-next@14.2.3': 305 | resolution: {integrity: sha512-L3oDricIIjgj1AVnRdRor21gI7mShlSwU/1ZGHmqM3LzHhXXhdkrfeNY5zif25Bi5Dd7fiJHsbhoZCHfXYvlAw==} 306 | 307 | '@next/swc-darwin-arm64@15.0.0-rc.0': 308 | resolution: {integrity: sha512-4OpTXvAWcSabXA5d688zdUwa3sfT9QrLnHMdpv4q2UDnnuqmOI0xLb6lrOxwpi+vHJNkneuNLqyc5HGBhkqL6A==} 309 | engines: {node: '>= 10'} 310 | cpu: [arm64] 311 | os: [darwin] 312 | 313 | '@next/swc-darwin-x64@15.0.0-rc.0': 314 | resolution: {integrity: sha512-/TD8M9DT244uhtFA8P/0DUbM7ftg2zio6yOo6ajV16vNjkcug9Kt9//Wa4SrJjWcsGZpViLctOlwn3/6JFAuAA==} 315 | engines: {node: '>= 10'} 316 | cpu: [x64] 317 | os: [darwin] 318 | 319 | '@next/swc-linux-arm64-gnu@15.0.0-rc.0': 320 | resolution: {integrity: sha512-3VTO32938AcqOlOI/U61/MIpeYrblP22VU1GrgmMQJozsAXEJgLCgf3wxZtn61/FG4Yc0tp7rPZE2t1fIGe0+w==} 321 | engines: {node: '>= 10'} 322 | cpu: [arm64] 323 | os: [linux] 324 | 325 | '@next/swc-linux-arm64-musl@15.0.0-rc.0': 326 | resolution: {integrity: sha512-0kDnxM3AfrrHFJ/wTkjkv7cVHIaGwv+CzDg9lL2BoLEM4kMQhH20DTsBOMqpTpo1K2KCg67LuTGd3QOITT5uFQ==} 327 | engines: {node: '>= 10'} 328 | cpu: [arm64] 329 | os: [linux] 330 | 331 | '@next/swc-linux-x64-gnu@15.0.0-rc.0': 332 | resolution: {integrity: sha512-fPMNahzqYFjm5h0ncJ5+F3NrShmWhpusM+zrQl01MMU0Ed5xsL4pJJDSuXV4wPkNUSjCP3XstTjxR5kBdO4juQ==} 333 | engines: {node: '>= 10'} 334 | cpu: [x64] 335 | os: [linux] 336 | 337 | '@next/swc-linux-x64-musl@15.0.0-rc.0': 338 | resolution: {integrity: sha512-7/FLgOqrrQAxOVQrxfr3bGgZ83pSCmc2S3TXBILnHw0S8qLxmFjhSjH5ogaDmjrES/PSYMaX1FsP5Af88hp7Gw==} 339 | engines: {node: '>= 10'} 340 | cpu: [x64] 341 | os: [linux] 342 | 343 | '@next/swc-win32-arm64-msvc@15.0.0-rc.0': 344 | resolution: {integrity: sha512-5wcqoYHh7hbdghjH6Xs3i5/f0ov+i1Xw2E3O+BzZNESYVLgCM1q7KJu5gdGFoXA2gz5XaKF/VBcYHikLzyjgmA==} 345 | engines: {node: '>= 10'} 346 | cpu: [arm64] 347 | os: [win32] 348 | 349 | '@next/swc-win32-ia32-msvc@15.0.0-rc.0': 350 | resolution: {integrity: sha512-/hqOmYRTvtBPToE4Dbl9n+sLYU7DPd52R+TtjIrrEzTMgFo2/d7un3sD7GKmb2OwOj/ExyGv6Bd/JzytBVxXlw==} 351 | engines: {node: '>= 10'} 352 | cpu: [ia32] 353 | os: [win32] 354 | 355 | '@next/swc-win32-x64-msvc@15.0.0-rc.0': 356 | resolution: {integrity: sha512-2Jly5nShvCUzzngP3RzdQ3JcuEcHcnIEvkvZDCXqFAK+bWks4+qOkEUO1QIAERQ99J5J9/1AN/8zFBme3Mm57A==} 357 | engines: {node: '>= 10'} 358 | cpu: [x64] 359 | os: [win32] 360 | 361 | '@nodelib/fs.scandir@2.1.5': 362 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 363 | engines: {node: '>= 8'} 364 | 365 | '@nodelib/fs.stat@2.0.5': 366 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 367 | engines: {node: '>= 8'} 368 | 369 | '@nodelib/fs.walk@1.2.8': 370 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 371 | engines: {node: '>= 8'} 372 | 373 | '@pkgjs/parseargs@0.11.0': 374 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 375 | engines: {node: '>=14'} 376 | 377 | '@protobufjs/aspromise@1.1.2': 378 | resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} 379 | 380 | '@protobufjs/base64@1.1.2': 381 | resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} 382 | 383 | '@protobufjs/codegen@2.0.4': 384 | resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} 385 | 386 | '@protobufjs/eventemitter@1.1.0': 387 | resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} 388 | 389 | '@protobufjs/fetch@1.1.0': 390 | resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} 391 | 392 | '@protobufjs/float@1.0.2': 393 | resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} 394 | 395 | '@protobufjs/inquire@1.1.0': 396 | resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} 397 | 398 | '@protobufjs/path@1.1.2': 399 | resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} 400 | 401 | '@protobufjs/pool@1.1.0': 402 | resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} 403 | 404 | '@protobufjs/utf8@1.1.0': 405 | resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} 406 | 407 | '@ricky0123/vad-react@0.0.24': 408 | resolution: {integrity: sha512-WTwGR23nv/Hm3TVJbHp7g+d3JGujrNGMI6MMJ9sFDwVClpiplqYu9vEWzviK1i8M1Jo8QHMK1i2FPh/q5zTMFg==} 409 | peerDependencies: 410 | react: ^18 411 | react-dom: ^18 412 | 413 | '@ricky0123/vad-web@0.0.18': 414 | resolution: {integrity: sha512-qaw1r8PsFADtxCRybieKTrhI/eO0JaEVH5oy0/oJS/bpq8eJu9mh1myCOR1ncBYYOzEkiJNJRQ638yG6X6WUNA==} 415 | 416 | '@rushstack/eslint-patch@1.10.3': 417 | resolution: {integrity: sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==} 418 | 419 | '@swc/helpers@0.5.11': 420 | resolution: {integrity: sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==} 421 | 422 | '@types/json5@0.0.29': 423 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 424 | 425 | '@types/node-fetch@2.6.11': 426 | resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} 427 | 428 | '@types/node@18.19.33': 429 | resolution: {integrity: sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==} 430 | 431 | '@types/node@20.12.12': 432 | resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==} 433 | 434 | '@types/prop-types@15.7.12': 435 | resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} 436 | 437 | '@types/react-dom@18.3.0': 438 | resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} 439 | 440 | '@types/react@18.3.2': 441 | resolution: {integrity: sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==} 442 | 443 | '@typescript-eslint/parser@7.2.0': 444 | resolution: {integrity: sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==} 445 | engines: {node: ^16.0.0 || >=18.0.0} 446 | peerDependencies: 447 | eslint: ^8.56.0 448 | typescript: '*' 449 | peerDependenciesMeta: 450 | typescript: 451 | optional: true 452 | 453 | '@typescript-eslint/scope-manager@7.2.0': 454 | resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==} 455 | engines: {node: ^16.0.0 || >=18.0.0} 456 | 457 | '@typescript-eslint/types@7.2.0': 458 | resolution: {integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==} 459 | engines: {node: ^16.0.0 || >=18.0.0} 460 | 461 | '@typescript-eslint/typescript-estree@7.2.0': 462 | resolution: {integrity: sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==} 463 | engines: {node: ^16.0.0 || >=18.0.0} 464 | peerDependencies: 465 | typescript: '*' 466 | peerDependenciesMeta: 467 | typescript: 468 | optional: true 469 | 470 | '@typescript-eslint/visitor-keys@7.2.0': 471 | resolution: {integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==} 472 | engines: {node: ^16.0.0 || >=18.0.0} 473 | 474 | '@ungap/structured-clone@1.2.0': 475 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 476 | 477 | '@vercel/analytics@1.2.2': 478 | resolution: {integrity: sha512-X0rctVWkQV1e5Y300ehVNqpOfSOufo7ieA5PIdna8yX/U7Vjz0GFsGf4qvAhxV02uQ2CVt7GYcrFfddXXK2Y4A==} 479 | peerDependencies: 480 | next: '>= 13' 481 | react: ^18 || ^19 482 | peerDependenciesMeta: 483 | next: 484 | optional: true 485 | react: 486 | optional: true 487 | 488 | abort-controller@3.0.0: 489 | resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} 490 | engines: {node: '>=6.5'} 491 | 492 | accepts@1.3.8: 493 | resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} 494 | engines: {node: '>= 0.6'} 495 | 496 | acorn-jsx@5.3.2: 497 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 498 | peerDependencies: 499 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 500 | 501 | acorn@8.11.3: 502 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} 503 | engines: {node: '>=0.4.0'} 504 | hasBin: true 505 | 506 | agentkeepalive@4.5.0: 507 | resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} 508 | engines: {node: '>= 8.0.0'} 509 | 510 | ajv@6.12.6: 511 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 512 | 513 | ansi-regex@5.0.1: 514 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 515 | engines: {node: '>=8'} 516 | 517 | ansi-regex@6.0.1: 518 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 519 | engines: {node: '>=12'} 520 | 521 | ansi-styles@4.3.0: 522 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 523 | engines: {node: '>=8'} 524 | 525 | ansi-styles@6.2.1: 526 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 527 | engines: {node: '>=12'} 528 | 529 | any-promise@1.3.0: 530 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 531 | 532 | anymatch@3.1.3: 533 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 534 | engines: {node: '>= 8'} 535 | 536 | append-field@1.0.0: 537 | resolution: {integrity: sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==} 538 | 539 | arg@5.0.2: 540 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 541 | 542 | argparse@2.0.1: 543 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 544 | 545 | aria-query@5.3.0: 546 | resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} 547 | 548 | array-buffer-byte-length@1.0.1: 549 | resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} 550 | engines: {node: '>= 0.4'} 551 | 552 | array-flatten@1.1.1: 553 | resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} 554 | 555 | array-includes@3.1.8: 556 | resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} 557 | engines: {node: '>= 0.4'} 558 | 559 | array-union@2.1.0: 560 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 561 | engines: {node: '>=8'} 562 | 563 | array.prototype.findlast@1.2.5: 564 | resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} 565 | engines: {node: '>= 0.4'} 566 | 567 | array.prototype.findlastindex@1.2.5: 568 | resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} 569 | engines: {node: '>= 0.4'} 570 | 571 | array.prototype.flat@1.3.2: 572 | resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} 573 | engines: {node: '>= 0.4'} 574 | 575 | array.prototype.flatmap@1.3.2: 576 | resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} 577 | engines: {node: '>= 0.4'} 578 | 579 | array.prototype.toreversed@1.1.2: 580 | resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} 581 | 582 | array.prototype.tosorted@1.1.3: 583 | resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} 584 | 585 | arraybuffer.prototype.slice@1.0.3: 586 | resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} 587 | engines: {node: '>= 0.4'} 588 | 589 | ast-types-flow@0.0.8: 590 | resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} 591 | 592 | asynckit@0.4.0: 593 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 594 | 595 | autoprefixer@10.4.19: 596 | resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} 597 | engines: {node: ^10 || ^12 || >=14} 598 | hasBin: true 599 | peerDependencies: 600 | postcss: ^8.1.0 601 | 602 | available-typed-arrays@1.0.7: 603 | resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} 604 | engines: {node: '>= 0.4'} 605 | 606 | axe-core@4.7.0: 607 | resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} 608 | engines: {node: '>=4'} 609 | 610 | axobject-query@3.2.1: 611 | resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} 612 | 613 | balanced-match@1.0.2: 614 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 615 | 616 | base-64@0.1.0: 617 | resolution: {integrity: sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==} 618 | 619 | base64-js@1.5.1: 620 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 621 | 622 | binary-extensions@2.3.0: 623 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 624 | engines: {node: '>=8'} 625 | 626 | body-parser@1.20.2: 627 | resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} 628 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 629 | 630 | brace-expansion@1.1.11: 631 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 632 | 633 | brace-expansion@2.0.1: 634 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 635 | 636 | braces@3.0.2: 637 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 638 | engines: {node: '>=8'} 639 | 640 | browserslist@4.23.1: 641 | resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} 642 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 643 | hasBin: true 644 | 645 | buffer-from@1.1.2: 646 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 647 | 648 | busboy@1.6.0: 649 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 650 | engines: {node: '>=10.16.0'} 651 | 652 | bytes@3.1.2: 653 | resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} 654 | engines: {node: '>= 0.8'} 655 | 656 | call-bind@1.0.7: 657 | resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} 658 | engines: {node: '>= 0.4'} 659 | 660 | callsites@3.1.0: 661 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 662 | engines: {node: '>=6'} 663 | 664 | camelcase-css@2.0.1: 665 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 666 | engines: {node: '>= 6'} 667 | 668 | caniuse-lite@1.0.30001620: 669 | resolution: {integrity: sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==} 670 | 671 | caniuse-lite@1.0.30001639: 672 | resolution: {integrity: sha512-eFHflNTBIlFwP2AIKaYuBQN/apnUoKNhBdza8ZnW/h2di4LCZ4xFqYlxUxo+LQ76KFI1PGcC1QDxMbxTZpSCAg==} 673 | 674 | chalk@4.1.2: 675 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 676 | engines: {node: '>=10'} 677 | 678 | charenc@0.0.2: 679 | resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} 680 | 681 | chokidar@3.6.0: 682 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 683 | engines: {node: '>= 8.10.0'} 684 | 685 | client-only@0.0.1: 686 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 687 | 688 | clsx@2.1.1: 689 | resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 690 | engines: {node: '>=6'} 691 | 692 | color-convert@2.0.1: 693 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 694 | engines: {node: '>=7.0.0'} 695 | 696 | color-name@1.1.4: 697 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 698 | 699 | color-string@1.9.1: 700 | resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} 701 | 702 | color@4.2.3: 703 | resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} 704 | engines: {node: '>=12.5.0'} 705 | 706 | combined-stream@1.0.8: 707 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 708 | engines: {node: '>= 0.8'} 709 | 710 | commander@4.1.1: 711 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 712 | engines: {node: '>= 6'} 713 | 714 | concat-map@0.0.1: 715 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 716 | 717 | concat-stream@1.6.2: 718 | resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} 719 | engines: {'0': node >= 0.8} 720 | 721 | content-disposition@0.5.4: 722 | resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} 723 | engines: {node: '>= 0.6'} 724 | 725 | content-type@1.0.5: 726 | resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} 727 | engines: {node: '>= 0.6'} 728 | 729 | cookie-signature@1.0.6: 730 | resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} 731 | 732 | cookie@0.6.0: 733 | resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} 734 | engines: {node: '>= 0.6'} 735 | 736 | core-util-is@1.0.3: 737 | resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} 738 | 739 | cors@2.8.5: 740 | resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} 741 | engines: {node: '>= 0.10'} 742 | 743 | cross-fetch@4.0.0: 744 | resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==} 745 | 746 | cross-spawn@7.0.3: 747 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 748 | engines: {node: '>= 8'} 749 | 750 | crypt@0.0.2: 751 | resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} 752 | 753 | cssesc@3.0.0: 754 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 755 | engines: {node: '>=4'} 756 | hasBin: true 757 | 758 | csstype@3.1.3: 759 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 760 | 761 | damerau-levenshtein@1.0.8: 762 | resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} 763 | 764 | data-view-buffer@1.0.1: 765 | resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} 766 | engines: {node: '>= 0.4'} 767 | 768 | data-view-byte-length@1.0.1: 769 | resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} 770 | engines: {node: '>= 0.4'} 771 | 772 | data-view-byte-offset@1.0.0: 773 | resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} 774 | engines: {node: '>= 0.4'} 775 | 776 | debug@2.6.9: 777 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 778 | peerDependencies: 779 | supports-color: '*' 780 | peerDependenciesMeta: 781 | supports-color: 782 | optional: true 783 | 784 | debug@3.2.7: 785 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 786 | peerDependencies: 787 | supports-color: '*' 788 | peerDependenciesMeta: 789 | supports-color: 790 | optional: true 791 | 792 | debug@4.3.4: 793 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 794 | engines: {node: '>=6.0'} 795 | peerDependencies: 796 | supports-color: '*' 797 | peerDependenciesMeta: 798 | supports-color: 799 | optional: true 800 | 801 | deep-is@0.1.4: 802 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 803 | 804 | define-data-property@1.1.4: 805 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 806 | engines: {node: '>= 0.4'} 807 | 808 | define-properties@1.2.1: 809 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 810 | engines: {node: '>= 0.4'} 811 | 812 | delayed-stream@1.0.0: 813 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 814 | engines: {node: '>=0.4.0'} 815 | 816 | depd@2.0.0: 817 | resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} 818 | engines: {node: '>= 0.8'} 819 | 820 | dequal@2.0.3: 821 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 822 | engines: {node: '>=6'} 823 | 824 | destroy@1.2.0: 825 | resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} 826 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 827 | 828 | detect-libc@2.0.3: 829 | resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} 830 | engines: {node: '>=8'} 831 | 832 | didyoumean@1.2.2: 833 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 834 | 835 | digest-fetch@1.3.0: 836 | resolution: {integrity: sha512-CGJuv6iKNM7QyZlM2T3sPAdZWd/p9zQiRNS9G+9COUCwzWFTs0Xp8NF5iePx7wtvhDykReiRRrSeNb4oMmB8lA==} 837 | 838 | dir-glob@3.0.1: 839 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 840 | engines: {node: '>=8'} 841 | 842 | dlv@1.1.3: 843 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 844 | 845 | doctrine@2.1.0: 846 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 847 | engines: {node: '>=0.10.0'} 848 | 849 | doctrine@3.0.0: 850 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 851 | engines: {node: '>=6.0.0'} 852 | 853 | dotenv@16.4.5: 854 | resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} 855 | engines: {node: '>=12'} 856 | 857 | eastasianwidth@0.2.0: 858 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 859 | 860 | ee-first@1.1.1: 861 | resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} 862 | 863 | electron-to-chromium@1.4.816: 864 | resolution: {integrity: sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==} 865 | 866 | emittery@1.0.3: 867 | resolution: {integrity: sha512-tJdCJitoy2lrC2ldJcqN4vkqJ00lT+tOWNT1hBJjO/3FDMJa5TTIiYGCKGkn/WfCyOzUMObeohbVTj00fhiLiA==} 868 | engines: {node: '>=14.16'} 869 | 870 | emoji-regex@8.0.0: 871 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 872 | 873 | emoji-regex@9.2.2: 874 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 875 | 876 | encodeurl@1.0.2: 877 | resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} 878 | engines: {node: '>= 0.8'} 879 | 880 | enhanced-resolve@5.16.1: 881 | resolution: {integrity: sha512-4U5pNsuDl0EhuZpq46M5xPslstkviJuhrdobaRDBk2Jy2KO37FDAJl4lb2KlNabxT0m4MTK2UHNrsAcphE8nyw==} 882 | engines: {node: '>=10.13.0'} 883 | 884 | es-abstract@1.23.3: 885 | resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} 886 | engines: {node: '>= 0.4'} 887 | 888 | es-define-property@1.0.0: 889 | resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} 890 | engines: {node: '>= 0.4'} 891 | 892 | es-errors@1.3.0: 893 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 894 | engines: {node: '>= 0.4'} 895 | 896 | es-iterator-helpers@1.0.19: 897 | resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} 898 | engines: {node: '>= 0.4'} 899 | 900 | es-object-atoms@1.0.0: 901 | resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} 902 | engines: {node: '>= 0.4'} 903 | 904 | es-set-tostringtag@2.0.3: 905 | resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} 906 | engines: {node: '>= 0.4'} 907 | 908 | es-shim-unscopables@1.0.2: 909 | resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} 910 | 911 | es-to-primitive@1.2.1: 912 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 913 | engines: {node: '>= 0.4'} 914 | 915 | escalade@3.1.2: 916 | resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} 917 | engines: {node: '>=6'} 918 | 919 | escape-html@1.0.3: 920 | resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} 921 | 922 | escape-string-regexp@4.0.0: 923 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 924 | engines: {node: '>=10'} 925 | 926 | eslint-config-next@14.2.3: 927 | resolution: {integrity: sha512-ZkNztm3Q7hjqvB1rRlOX8P9E/cXRL9ajRcs8jufEtwMfTVYRqnmtnaSu57QqHyBlovMuiB8LEzfLBkh5RYV6Fg==} 928 | peerDependencies: 929 | eslint: ^7.23.0 || ^8.0.0 930 | typescript: '>=3.3.1' 931 | peerDependenciesMeta: 932 | typescript: 933 | optional: true 934 | 935 | eslint-import-resolver-node@0.3.9: 936 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} 937 | 938 | eslint-import-resolver-typescript@3.6.1: 939 | resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} 940 | engines: {node: ^14.18.0 || >=16.0.0} 941 | peerDependencies: 942 | eslint: '*' 943 | eslint-plugin-import: '*' 944 | 945 | eslint-module-utils@2.8.1: 946 | resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} 947 | engines: {node: '>=4'} 948 | peerDependencies: 949 | '@typescript-eslint/parser': '*' 950 | eslint: '*' 951 | eslint-import-resolver-node: '*' 952 | eslint-import-resolver-typescript: '*' 953 | eslint-import-resolver-webpack: '*' 954 | peerDependenciesMeta: 955 | '@typescript-eslint/parser': 956 | optional: true 957 | eslint: 958 | optional: true 959 | eslint-import-resolver-node: 960 | optional: true 961 | eslint-import-resolver-typescript: 962 | optional: true 963 | eslint-import-resolver-webpack: 964 | optional: true 965 | 966 | eslint-plugin-import@2.29.1: 967 | resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} 968 | engines: {node: '>=4'} 969 | peerDependencies: 970 | '@typescript-eslint/parser': '*' 971 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 972 | peerDependenciesMeta: 973 | '@typescript-eslint/parser': 974 | optional: true 975 | 976 | eslint-plugin-jsx-a11y@6.8.0: 977 | resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} 978 | engines: {node: '>=4.0'} 979 | peerDependencies: 980 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 981 | 982 | eslint-plugin-react-hooks@4.6.2: 983 | resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} 984 | engines: {node: '>=10'} 985 | peerDependencies: 986 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 987 | 988 | eslint-plugin-react@7.34.1: 989 | resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} 990 | engines: {node: '>=4'} 991 | peerDependencies: 992 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 993 | 994 | eslint-scope@7.2.2: 995 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 996 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 997 | 998 | eslint-visitor-keys@3.4.3: 999 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 1000 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1001 | 1002 | eslint@8.57.0: 1003 | resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} 1004 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1005 | hasBin: true 1006 | 1007 | espree@9.6.1: 1008 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 1009 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1010 | 1011 | esquery@1.5.0: 1012 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 1013 | engines: {node: '>=0.10'} 1014 | 1015 | esrecurse@4.3.0: 1016 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1017 | engines: {node: '>=4.0'} 1018 | 1019 | estraverse@5.3.0: 1020 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1021 | engines: {node: '>=4.0'} 1022 | 1023 | esutils@2.0.3: 1024 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1025 | engines: {node: '>=0.10.0'} 1026 | 1027 | etag@1.8.1: 1028 | resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} 1029 | engines: {node: '>= 0.6'} 1030 | 1031 | event-target-shim@5.0.1: 1032 | resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} 1033 | engines: {node: '>=6'} 1034 | 1035 | event-target-shim@6.0.2: 1036 | resolution: {integrity: sha512-8q3LsZjRezbFZ2PN+uP+Q7pnHUMmAOziU2vA2OwoFaKIXxlxl38IylhSSgUorWu/rf4er67w0ikBqjBFk/pomA==} 1037 | engines: {node: '>=10.13.0'} 1038 | 1039 | express@4.19.2: 1040 | resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} 1041 | engines: {node: '>= 0.10.0'} 1042 | 1043 | fast-deep-equal@3.1.3: 1044 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1045 | 1046 | fast-glob@3.3.2: 1047 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 1048 | engines: {node: '>=8.6.0'} 1049 | 1050 | fast-json-stable-stringify@2.1.0: 1051 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1052 | 1053 | fast-levenshtein@2.0.6: 1054 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1055 | 1056 | fastq@1.17.1: 1057 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 1058 | 1059 | file-entry-cache@6.0.1: 1060 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1061 | engines: {node: ^10.12.0 || >=12.0.0} 1062 | 1063 | fill-range@7.0.1: 1064 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1065 | engines: {node: '>=8'} 1066 | 1067 | finalhandler@1.2.0: 1068 | resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} 1069 | engines: {node: '>= 0.8'} 1070 | 1071 | find-up@5.0.0: 1072 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1073 | engines: {node: '>=10'} 1074 | 1075 | flat-cache@3.2.0: 1076 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 1077 | engines: {node: ^10.12.0 || >=12.0.0} 1078 | 1079 | flatbuffers@1.12.0: 1080 | resolution: {integrity: sha512-c7CZADjRcl6j0PlvFy0ZqXQ67qSEZfrVPynmnL+2zPc+NtMvrF8Y0QceMo7QqnSPc7+uWjUIAbvCQ5WIKlMVdQ==} 1081 | 1082 | flatted@3.3.1: 1083 | resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} 1084 | 1085 | for-each@0.3.3: 1086 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 1087 | 1088 | foreground-child@3.1.1: 1089 | resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} 1090 | engines: {node: '>=14'} 1091 | 1092 | form-data-encoder@1.7.2: 1093 | resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} 1094 | 1095 | form-data@4.0.0: 1096 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} 1097 | engines: {node: '>= 6'} 1098 | 1099 | formdata-node@4.4.1: 1100 | resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} 1101 | engines: {node: '>= 12.20'} 1102 | 1103 | forwarded@0.2.0: 1104 | resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} 1105 | engines: {node: '>= 0.6'} 1106 | 1107 | fraction.js@4.3.7: 1108 | resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} 1109 | 1110 | fresh@0.5.2: 1111 | resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} 1112 | engines: {node: '>= 0.6'} 1113 | 1114 | fs.realpath@1.0.0: 1115 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1116 | 1117 | fsevents@2.3.3: 1118 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1119 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1120 | os: [darwin] 1121 | 1122 | function-bind@1.1.2: 1123 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1124 | 1125 | function.prototype.name@1.1.6: 1126 | resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} 1127 | engines: {node: '>= 0.4'} 1128 | 1129 | functions-have-names@1.2.3: 1130 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 1131 | 1132 | geist@1.3.0: 1133 | resolution: {integrity: sha512-IoGBfcqVEYB4bEwsfHd35jF4+X9LHRPYZymHL4YOltHSs9LJa24DYs1Z7rEMQ/lsEvaAIc61Y9aUxgcJaQ8lrg==} 1134 | peerDependencies: 1135 | next: '>=13.2.0 <15.0.0-0' 1136 | 1137 | get-intrinsic@1.2.4: 1138 | resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} 1139 | engines: {node: '>= 0.4'} 1140 | 1141 | get-symbol-description@1.0.2: 1142 | resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} 1143 | engines: {node: '>= 0.4'} 1144 | 1145 | get-tsconfig@4.7.5: 1146 | resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} 1147 | 1148 | glob-parent@5.1.2: 1149 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1150 | engines: {node: '>= 6'} 1151 | 1152 | glob-parent@6.0.2: 1153 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1154 | engines: {node: '>=10.13.0'} 1155 | 1156 | glob@10.3.10: 1157 | resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} 1158 | engines: {node: '>=16 || 14 >=14.17'} 1159 | hasBin: true 1160 | 1161 | glob@10.3.15: 1162 | resolution: {integrity: sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==} 1163 | engines: {node: '>=16 || 14 >=14.18'} 1164 | hasBin: true 1165 | 1166 | glob@7.2.3: 1167 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1168 | 1169 | globals@13.24.0: 1170 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 1171 | engines: {node: '>=8'} 1172 | 1173 | globalthis@1.0.4: 1174 | resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} 1175 | engines: {node: '>= 0.4'} 1176 | 1177 | globby@11.1.0: 1178 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1179 | engines: {node: '>=10'} 1180 | 1181 | gopd@1.0.1: 1182 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 1183 | 1184 | graceful-fs@4.2.11: 1185 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1186 | 1187 | graphemer@1.4.0: 1188 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 1189 | 1190 | groq-sdk@0.3.3: 1191 | resolution: {integrity: sha512-wdOeZ2QymPjjP3tmFpUAnfMisoLbt7xF2MfpROeFAngcqWbfTyB9j9pMWSEAMF/E4gZx8f2Y+5zswO0q92CSxA==} 1192 | 1193 | guid-typescript@1.0.9: 1194 | resolution: {integrity: sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ==} 1195 | 1196 | has-bigints@1.0.2: 1197 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 1198 | 1199 | has-flag@4.0.0: 1200 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1201 | engines: {node: '>=8'} 1202 | 1203 | has-property-descriptors@1.0.2: 1204 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} 1205 | 1206 | has-proto@1.0.3: 1207 | resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} 1208 | engines: {node: '>= 0.4'} 1209 | 1210 | has-symbols@1.0.3: 1211 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 1212 | engines: {node: '>= 0.4'} 1213 | 1214 | has-tostringtag@1.0.2: 1215 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 1216 | engines: {node: '>= 0.4'} 1217 | 1218 | hasown@2.0.2: 1219 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1220 | engines: {node: '>= 0.4'} 1221 | 1222 | http-errors@2.0.0: 1223 | resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} 1224 | engines: {node: '>= 0.8'} 1225 | 1226 | http@0.0.1-security: 1227 | resolution: {integrity: sha512-RnDvP10Ty9FxqOtPZuxtebw1j4L/WiqNMDtuc1YMH1XQm5TgDRaR1G9u8upL6KD1bXHSp9eSXo/ED+8Q7FAr+g==} 1228 | 1229 | human-id@4.1.1: 1230 | resolution: {integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==} 1231 | hasBin: true 1232 | 1233 | humanize-ms@1.2.1: 1234 | resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} 1235 | 1236 | iconv-lite@0.4.24: 1237 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 1238 | engines: {node: '>=0.10.0'} 1239 | 1240 | ignore@5.3.1: 1241 | resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} 1242 | engines: {node: '>= 4'} 1243 | 1244 | import-fresh@3.3.0: 1245 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1246 | engines: {node: '>=6'} 1247 | 1248 | imurmurhash@0.1.4: 1249 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1250 | engines: {node: '>=0.8.19'} 1251 | 1252 | inflight@1.0.6: 1253 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1254 | 1255 | inherits@2.0.4: 1256 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1257 | 1258 | internal-slot@1.0.7: 1259 | resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} 1260 | engines: {node: '>= 0.4'} 1261 | 1262 | ipaddr.js@1.9.1: 1263 | resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} 1264 | engines: {node: '>= 0.10'} 1265 | 1266 | is-array-buffer@3.0.4: 1267 | resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} 1268 | engines: {node: '>= 0.4'} 1269 | 1270 | is-arrayish@0.3.2: 1271 | resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} 1272 | 1273 | is-async-function@2.0.0: 1274 | resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} 1275 | engines: {node: '>= 0.4'} 1276 | 1277 | is-bigint@1.0.4: 1278 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 1279 | 1280 | is-binary-path@2.1.0: 1281 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1282 | engines: {node: '>=8'} 1283 | 1284 | is-boolean-object@1.1.2: 1285 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 1286 | engines: {node: '>= 0.4'} 1287 | 1288 | is-buffer@1.1.6: 1289 | resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} 1290 | 1291 | is-callable@1.2.7: 1292 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 1293 | engines: {node: '>= 0.4'} 1294 | 1295 | is-core-module@2.13.1: 1296 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 1297 | 1298 | is-data-view@1.0.1: 1299 | resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} 1300 | engines: {node: '>= 0.4'} 1301 | 1302 | is-date-object@1.0.5: 1303 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 1304 | engines: {node: '>= 0.4'} 1305 | 1306 | is-extglob@2.1.1: 1307 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1308 | engines: {node: '>=0.10.0'} 1309 | 1310 | is-finalizationregistry@1.0.2: 1311 | resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} 1312 | 1313 | is-fullwidth-code-point@3.0.0: 1314 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1315 | engines: {node: '>=8'} 1316 | 1317 | is-generator-function@1.0.10: 1318 | resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} 1319 | engines: {node: '>= 0.4'} 1320 | 1321 | is-glob@4.0.3: 1322 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1323 | engines: {node: '>=0.10.0'} 1324 | 1325 | is-map@2.0.3: 1326 | resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} 1327 | engines: {node: '>= 0.4'} 1328 | 1329 | is-negative-zero@2.0.3: 1330 | resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} 1331 | engines: {node: '>= 0.4'} 1332 | 1333 | is-number-object@1.0.7: 1334 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 1335 | engines: {node: '>= 0.4'} 1336 | 1337 | is-number@7.0.0: 1338 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1339 | engines: {node: '>=0.12.0'} 1340 | 1341 | is-path-inside@3.0.3: 1342 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1343 | engines: {node: '>=8'} 1344 | 1345 | is-regex@1.1.4: 1346 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 1347 | engines: {node: '>= 0.4'} 1348 | 1349 | is-set@2.0.3: 1350 | resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} 1351 | engines: {node: '>= 0.4'} 1352 | 1353 | is-shared-array-buffer@1.0.3: 1354 | resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} 1355 | engines: {node: '>= 0.4'} 1356 | 1357 | is-string@1.0.7: 1358 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 1359 | engines: {node: '>= 0.4'} 1360 | 1361 | is-symbol@1.0.4: 1362 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 1363 | engines: {node: '>= 0.4'} 1364 | 1365 | is-typed-array@1.1.13: 1366 | resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} 1367 | engines: {node: '>= 0.4'} 1368 | 1369 | is-weakmap@2.0.2: 1370 | resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} 1371 | engines: {node: '>= 0.4'} 1372 | 1373 | is-weakref@1.0.2: 1374 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 1375 | 1376 | is-weakset@2.0.3: 1377 | resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} 1378 | engines: {node: '>= 0.4'} 1379 | 1380 | isarray@1.0.0: 1381 | resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} 1382 | 1383 | isarray@2.0.5: 1384 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 1385 | 1386 | isexe@2.0.0: 1387 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1388 | 1389 | iterator.prototype@1.1.2: 1390 | resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} 1391 | 1392 | jackspeak@2.3.6: 1393 | resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} 1394 | engines: {node: '>=14'} 1395 | 1396 | jiti@1.21.0: 1397 | resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} 1398 | hasBin: true 1399 | 1400 | js-tokens@4.0.0: 1401 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1402 | 1403 | js-yaml@4.1.0: 1404 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1405 | hasBin: true 1406 | 1407 | json-buffer@3.0.1: 1408 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1409 | 1410 | json-schema-traverse@0.4.1: 1411 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1412 | 1413 | json-stable-stringify-without-jsonify@1.0.1: 1414 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1415 | 1416 | json5@1.0.2: 1417 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} 1418 | hasBin: true 1419 | 1420 | jsx-ast-utils@3.3.5: 1421 | resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} 1422 | engines: {node: '>=4.0'} 1423 | 1424 | keyv@4.5.4: 1425 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1426 | 1427 | language-subtag-registry@0.3.22: 1428 | resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} 1429 | 1430 | language-tags@1.0.9: 1431 | resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} 1432 | engines: {node: '>=0.10'} 1433 | 1434 | levn@0.4.1: 1435 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1436 | engines: {node: '>= 0.8.0'} 1437 | 1438 | lilconfig@2.1.0: 1439 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 1440 | engines: {node: '>=10'} 1441 | 1442 | lilconfig@3.1.1: 1443 | resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} 1444 | engines: {node: '>=14'} 1445 | 1446 | lines-and-columns@1.2.4: 1447 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1448 | 1449 | locate-path@6.0.0: 1450 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1451 | engines: {node: '>=10'} 1452 | 1453 | lodash.merge@4.6.2: 1454 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1455 | 1456 | long@5.2.3: 1457 | resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} 1458 | 1459 | loose-envify@1.4.0: 1460 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1461 | hasBin: true 1462 | 1463 | lru-cache@10.2.2: 1464 | resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} 1465 | engines: {node: 14 || >=16.14} 1466 | 1467 | lucide-react@0.435.0: 1468 | resolution: {integrity: sha512-we5GKfzjMDw9m9SsyZJvWim9qaT+Ya5kaRS+OGFqgLqXUrPM1h+7CiMw5pKdEIoaBqfXz2pyv9TASAdpIAJs0Q==} 1469 | peerDependencies: 1470 | react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc 1471 | 1472 | md5@2.3.0: 1473 | resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} 1474 | 1475 | media-typer@0.3.0: 1476 | resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} 1477 | engines: {node: '>= 0.6'} 1478 | 1479 | merge-descriptors@1.0.1: 1480 | resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} 1481 | 1482 | merge2@1.4.1: 1483 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1484 | engines: {node: '>= 8'} 1485 | 1486 | methods@1.1.2: 1487 | resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} 1488 | engines: {node: '>= 0.6'} 1489 | 1490 | micromatch@4.0.5: 1491 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1492 | engines: {node: '>=8.6'} 1493 | 1494 | mime-db@1.52.0: 1495 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1496 | engines: {node: '>= 0.6'} 1497 | 1498 | mime-types@2.1.35: 1499 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1500 | engines: {node: '>= 0.6'} 1501 | 1502 | mime@1.6.0: 1503 | resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} 1504 | engines: {node: '>=4'} 1505 | hasBin: true 1506 | 1507 | minimatch@3.1.2: 1508 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1509 | 1510 | minimatch@9.0.3: 1511 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} 1512 | engines: {node: '>=16 || 14 >=14.17'} 1513 | 1514 | minimatch@9.0.4: 1515 | resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} 1516 | engines: {node: '>=16 || 14 >=14.17'} 1517 | 1518 | minimist@1.2.8: 1519 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1520 | 1521 | minipass@7.1.1: 1522 | resolution: {integrity: sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==} 1523 | engines: {node: '>=16 || 14 >=14.17'} 1524 | 1525 | mkdirp@0.5.6: 1526 | resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} 1527 | hasBin: true 1528 | 1529 | ms@2.0.0: 1530 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 1531 | 1532 | ms@2.1.2: 1533 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1534 | 1535 | ms@2.1.3: 1536 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1537 | 1538 | multer@1.4.5-lts.1: 1539 | resolution: {integrity: sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==} 1540 | engines: {node: '>= 6.0.0'} 1541 | 1542 | mz@2.7.0: 1543 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 1544 | 1545 | nanoid@3.3.7: 1546 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 1547 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1548 | hasBin: true 1549 | 1550 | natural-compare@1.4.0: 1551 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1552 | 1553 | negotiator@0.6.3: 1554 | resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} 1555 | engines: {node: '>= 0.6'} 1556 | 1557 | next@15.0.0-rc.0: 1558 | resolution: {integrity: sha512-IWcCvxUSCAuOK5gig4+9yiyt/dLKpIa+WT01Qcx4CBE4TtwJljyTDnCVVn64jDZ4qmSzsaEYXpb4DTI8qbk03A==} 1559 | engines: {node: '>=18.17.0'} 1560 | hasBin: true 1561 | peerDependencies: 1562 | '@opentelemetry/api': ^1.1.0 1563 | '@playwright/test': ^1.41.2 1564 | babel-plugin-react-compiler: '*' 1565 | react: 19.0.0-rc-f994737d14-20240522 1566 | react-dom: 19.0.0-rc-f994737d14-20240522 1567 | sass: ^1.3.0 1568 | peerDependenciesMeta: 1569 | '@opentelemetry/api': 1570 | optional: true 1571 | '@playwright/test': 1572 | optional: true 1573 | babel-plugin-react-compiler: 1574 | optional: true 1575 | sass: 1576 | optional: true 1577 | 1578 | node-domexception@1.0.0: 1579 | resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} 1580 | engines: {node: '>=10.5.0'} 1581 | 1582 | node-fetch@2.7.0: 1583 | resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} 1584 | engines: {node: 4.x || >=6.0.0} 1585 | peerDependencies: 1586 | encoding: ^0.1.0 1587 | peerDependenciesMeta: 1588 | encoding: 1589 | optional: true 1590 | 1591 | node-releases@2.0.14: 1592 | resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} 1593 | 1594 | normalize-path@3.0.0: 1595 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1596 | engines: {node: '>=0.10.0'} 1597 | 1598 | normalize-range@0.1.2: 1599 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 1600 | engines: {node: '>=0.10.0'} 1601 | 1602 | object-assign@4.1.1: 1603 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1604 | engines: {node: '>=0.10.0'} 1605 | 1606 | object-hash@3.0.0: 1607 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 1608 | engines: {node: '>= 6'} 1609 | 1610 | object-inspect@1.13.1: 1611 | resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} 1612 | 1613 | object-keys@1.1.1: 1614 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 1615 | engines: {node: '>= 0.4'} 1616 | 1617 | object.assign@4.1.5: 1618 | resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} 1619 | engines: {node: '>= 0.4'} 1620 | 1621 | object.entries@1.1.8: 1622 | resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} 1623 | engines: {node: '>= 0.4'} 1624 | 1625 | object.fromentries@2.0.8: 1626 | resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} 1627 | engines: {node: '>= 0.4'} 1628 | 1629 | object.groupby@1.0.3: 1630 | resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} 1631 | engines: {node: '>= 0.4'} 1632 | 1633 | object.hasown@1.1.4: 1634 | resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} 1635 | engines: {node: '>= 0.4'} 1636 | 1637 | object.values@1.2.0: 1638 | resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} 1639 | engines: {node: '>= 0.4'} 1640 | 1641 | on-finished@2.4.1: 1642 | resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} 1643 | engines: {node: '>= 0.8'} 1644 | 1645 | once@1.4.0: 1646 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1647 | 1648 | onnxruntime-common@1.18.0: 1649 | resolution: {integrity: sha512-lufrSzX6QdKrktAELG5x5VkBpapbCeS3dQwrXbN0eD9rHvU0yAWl7Ztju9FvgAKWvwd/teEKJNj3OwM6eTZh3Q==} 1650 | 1651 | onnxruntime-web@1.18.0: 1652 | resolution: {integrity: sha512-o1UKj4ABIj1gmG7ae0RKJ3/GT+3yoF0RRpfDfeoe0huzRW4FDRLfbkDETmdFAvnJEXuYDE0YT+hhkia0352StQ==} 1653 | 1654 | optionator@0.9.4: 1655 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1656 | engines: {node: '>= 0.8.0'} 1657 | 1658 | p-limit@3.1.0: 1659 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1660 | engines: {node: '>=10'} 1661 | 1662 | p-locate@5.0.0: 1663 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1664 | engines: {node: '>=10'} 1665 | 1666 | parent-module@1.0.1: 1667 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1668 | engines: {node: '>=6'} 1669 | 1670 | parseurl@1.3.3: 1671 | resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} 1672 | engines: {node: '>= 0.8'} 1673 | 1674 | partysocket@1.0.2: 1675 | resolution: {integrity: sha512-rAFOUKImaq+VBk2B+2RTBsWEvlnarEP53nchoUHzpVs8V6fG2/estihOTslTQUWHVuHEKDL5k8htG8K3TngyFA==} 1676 | 1677 | path-exists@4.0.0: 1678 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1679 | engines: {node: '>=8'} 1680 | 1681 | path-is-absolute@1.0.1: 1682 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1683 | engines: {node: '>=0.10.0'} 1684 | 1685 | path-key@3.1.1: 1686 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1687 | engines: {node: '>=8'} 1688 | 1689 | path-parse@1.0.7: 1690 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1691 | 1692 | path-scurry@1.11.1: 1693 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 1694 | engines: {node: '>=16 || 14 >=14.18'} 1695 | 1696 | path-to-regexp@0.1.7: 1697 | resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} 1698 | 1699 | path-type@4.0.0: 1700 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1701 | engines: {node: '>=8'} 1702 | 1703 | picocolors@1.0.1: 1704 | resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} 1705 | 1706 | picomatch@2.3.1: 1707 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1708 | engines: {node: '>=8.6'} 1709 | 1710 | pify@2.3.0: 1711 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 1712 | engines: {node: '>=0.10.0'} 1713 | 1714 | pirates@4.0.6: 1715 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 1716 | engines: {node: '>= 6'} 1717 | 1718 | platform@1.3.6: 1719 | resolution: {integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==} 1720 | 1721 | possible-typed-array-names@1.0.0: 1722 | resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} 1723 | engines: {node: '>= 0.4'} 1724 | 1725 | postcss-import@15.1.0: 1726 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} 1727 | engines: {node: '>=14.0.0'} 1728 | peerDependencies: 1729 | postcss: ^8.0.0 1730 | 1731 | postcss-js@4.0.1: 1732 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 1733 | engines: {node: ^12 || ^14 || >= 16} 1734 | peerDependencies: 1735 | postcss: ^8.4.21 1736 | 1737 | postcss-load-config@4.0.2: 1738 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} 1739 | engines: {node: '>= 14'} 1740 | peerDependencies: 1741 | postcss: '>=8.0.9' 1742 | ts-node: '>=9.0.0' 1743 | peerDependenciesMeta: 1744 | postcss: 1745 | optional: true 1746 | ts-node: 1747 | optional: true 1748 | 1749 | postcss-nested@6.0.1: 1750 | resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} 1751 | engines: {node: '>=12.0'} 1752 | peerDependencies: 1753 | postcss: ^8.2.14 1754 | 1755 | postcss-selector-parser@6.0.16: 1756 | resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} 1757 | engines: {node: '>=4'} 1758 | 1759 | postcss-value-parser@4.2.0: 1760 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 1761 | 1762 | postcss@8.4.31: 1763 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 1764 | engines: {node: ^10 || ^12 || >=14} 1765 | 1766 | postcss@8.4.38: 1767 | resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} 1768 | engines: {node: ^10 || ^12 || >=14} 1769 | 1770 | prelude-ls@1.2.1: 1771 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1772 | engines: {node: '>= 0.8.0'} 1773 | 1774 | process-nextick-args@2.0.1: 1775 | resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} 1776 | 1777 | prop-types@15.8.1: 1778 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 1779 | 1780 | protobufjs@7.3.2: 1781 | resolution: {integrity: sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg==} 1782 | engines: {node: '>=12.0.0'} 1783 | 1784 | proxy-addr@2.0.7: 1785 | resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} 1786 | engines: {node: '>= 0.10'} 1787 | 1788 | punycode@2.3.1: 1789 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1790 | engines: {node: '>=6'} 1791 | 1792 | qs@6.11.0: 1793 | resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} 1794 | engines: {node: '>=0.6'} 1795 | 1796 | queue-microtask@1.2.3: 1797 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1798 | 1799 | range-parser@1.2.1: 1800 | resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} 1801 | engines: {node: '>= 0.6'} 1802 | 1803 | raw-body@2.5.2: 1804 | resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} 1805 | engines: {node: '>= 0.8'} 1806 | 1807 | react-dom@19.0.0-rc-100dfd7dab-20240701: 1808 | resolution: {integrity: sha512-1VQkUQegr8ejWp6YANC6HAtS5L12Ym6cAFlPOOFvaY0tgfOf37dduR3iynsyRkxfEQi42D1HwTEyBi03KxuLOQ==} 1809 | peerDependencies: 1810 | react: 19.0.0-rc-100dfd7dab-20240701 1811 | 1812 | react-is@16.13.1: 1813 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 1814 | 1815 | react@19.0.0-rc-100dfd7dab-20240701: 1816 | resolution: {integrity: sha512-qy+1N8lIy1TC1Tj5yhOW4EaRqVWHCtO94OjhxJYjTa6/lwn+ZI49D3Xk4RkdZyWDgclUK8HAALxhsgiHibowMQ==} 1817 | engines: {node: '>=0.10.0'} 1818 | 1819 | read-cache@1.0.0: 1820 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 1821 | 1822 | readable-stream@2.3.8: 1823 | resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} 1824 | 1825 | readdirp@3.6.0: 1826 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1827 | engines: {node: '>=8.10.0'} 1828 | 1829 | reflect.getprototypeof@1.0.6: 1830 | resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} 1831 | engines: {node: '>= 0.4'} 1832 | 1833 | regenerator-runtime@0.14.1: 1834 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 1835 | 1836 | regexp.prototype.flags@1.5.2: 1837 | resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} 1838 | engines: {node: '>= 0.4'} 1839 | 1840 | resolve-from@4.0.0: 1841 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1842 | engines: {node: '>=4'} 1843 | 1844 | resolve-pkg-maps@1.0.0: 1845 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 1846 | 1847 | resolve@1.22.8: 1848 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 1849 | hasBin: true 1850 | 1851 | resolve@2.0.0-next.5: 1852 | resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} 1853 | hasBin: true 1854 | 1855 | reusify@1.0.4: 1856 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1857 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1858 | 1859 | rimraf@3.0.2: 1860 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1861 | hasBin: true 1862 | 1863 | run-parallel@1.2.0: 1864 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1865 | 1866 | safe-array-concat@1.1.2: 1867 | resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} 1868 | engines: {node: '>=0.4'} 1869 | 1870 | safe-buffer@5.1.2: 1871 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 1872 | 1873 | safe-buffer@5.2.1: 1874 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1875 | 1876 | safe-regex-test@1.0.3: 1877 | resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} 1878 | engines: {node: '>= 0.4'} 1879 | 1880 | safer-buffer@2.1.2: 1881 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1882 | 1883 | scheduler@0.25.0-rc-100dfd7dab-20240701: 1884 | resolution: {integrity: sha512-aEBSd2lcLFsvlbWbwGXpttfGyMfyJjSvQ13o3kiSeCduKa8WlW5Go0b8c8hQ+p6CHLeXKWnKL+TC/vjbyFqSCw==} 1885 | 1886 | semver@6.3.1: 1887 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1888 | hasBin: true 1889 | 1890 | semver@7.6.2: 1891 | resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} 1892 | engines: {node: '>=10'} 1893 | hasBin: true 1894 | 1895 | send@0.18.0: 1896 | resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} 1897 | engines: {node: '>= 0.8.0'} 1898 | 1899 | serve-static@1.15.0: 1900 | resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} 1901 | engines: {node: '>= 0.8.0'} 1902 | 1903 | server-only@0.0.1: 1904 | resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} 1905 | 1906 | set-function-length@1.2.2: 1907 | resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} 1908 | engines: {node: '>= 0.4'} 1909 | 1910 | set-function-name@2.0.2: 1911 | resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} 1912 | engines: {node: '>= 0.4'} 1913 | 1914 | setprototypeof@1.2.0: 1915 | resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} 1916 | 1917 | sharp@0.33.4: 1918 | resolution: {integrity: sha512-7i/dt5kGl7qR4gwPRD2biwD2/SvBn3O04J77XKFgL2OnZtQw+AG9wnuS/csmu80nPRHLYE9E41fyEiG8nhH6/Q==} 1919 | engines: {libvips: '>=8.15.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0} 1920 | 1921 | shebang-command@2.0.0: 1922 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1923 | engines: {node: '>=8'} 1924 | 1925 | shebang-regex@3.0.0: 1926 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1927 | engines: {node: '>=8'} 1928 | 1929 | side-channel@1.0.6: 1930 | resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} 1931 | engines: {node: '>= 0.4'} 1932 | 1933 | signal-exit@4.1.0: 1934 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1935 | engines: {node: '>=14'} 1936 | 1937 | simple-swizzle@0.2.2: 1938 | resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} 1939 | 1940 | slash@3.0.0: 1941 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1942 | engines: {node: '>=8'} 1943 | 1944 | sonner@1.4.41: 1945 | resolution: {integrity: sha512-uG511ggnnsw6gcn/X+YKkWPo5ep9il9wYi3QJxHsYe7yTZ4+cOd1wuodOUmOpFuXL+/RE3R04LczdNCDygTDgQ==} 1946 | peerDependencies: 1947 | react: ^18.0.0 1948 | react-dom: ^18.0.0 1949 | 1950 | source-map-js@1.2.0: 1951 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 1952 | engines: {node: '>=0.10.0'} 1953 | 1954 | statuses@2.0.1: 1955 | resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} 1956 | engines: {node: '>= 0.8'} 1957 | 1958 | streamsearch@1.1.0: 1959 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 1960 | engines: {node: '>=10.0.0'} 1961 | 1962 | string-width@4.2.3: 1963 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1964 | engines: {node: '>=8'} 1965 | 1966 | string-width@5.1.2: 1967 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1968 | engines: {node: '>=12'} 1969 | 1970 | string.prototype.matchall@4.0.11: 1971 | resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} 1972 | engines: {node: '>= 0.4'} 1973 | 1974 | string.prototype.trim@1.2.9: 1975 | resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} 1976 | engines: {node: '>= 0.4'} 1977 | 1978 | string.prototype.trimend@1.0.8: 1979 | resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} 1980 | 1981 | string.prototype.trimstart@1.0.8: 1982 | resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} 1983 | engines: {node: '>= 0.4'} 1984 | 1985 | string_decoder@1.1.1: 1986 | resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} 1987 | 1988 | strip-ansi@6.0.1: 1989 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1990 | engines: {node: '>=8'} 1991 | 1992 | strip-ansi@7.1.0: 1993 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1994 | engines: {node: '>=12'} 1995 | 1996 | strip-bom@3.0.0: 1997 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 1998 | engines: {node: '>=4'} 1999 | 2000 | strip-json-comments@3.1.1: 2001 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 2002 | engines: {node: '>=8'} 2003 | 2004 | styled-jsx@5.1.3: 2005 | resolution: {integrity: sha512-qLRShOWTE/Mf6Bvl72kFeKBl8N2Eq9WIFfoAuvbtP/6tqlnj1SCjv117n2MIjOPpa1jTorYqLJgsHKy5Y3ziww==} 2006 | engines: {node: '>= 12.0.0'} 2007 | peerDependencies: 2008 | '@babel/core': '*' 2009 | babel-plugin-macros: '*' 2010 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' 2011 | peerDependenciesMeta: 2012 | '@babel/core': 2013 | optional: true 2014 | babel-plugin-macros: 2015 | optional: true 2016 | 2017 | sucrase@3.35.0: 2018 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 2019 | engines: {node: '>=16 || 14 >=14.17'} 2020 | hasBin: true 2021 | 2022 | supports-color@7.2.0: 2023 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2024 | engines: {node: '>=8'} 2025 | 2026 | supports-preserve-symlinks-flag@1.0.0: 2027 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2028 | engines: {node: '>= 0.4'} 2029 | 2030 | tailwindcss@3.4.3: 2031 | resolution: {integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==} 2032 | engines: {node: '>=14.0.0'} 2033 | hasBin: true 2034 | 2035 | tapable@2.2.1: 2036 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 2037 | engines: {node: '>=6'} 2038 | 2039 | text-table@0.2.0: 2040 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 2041 | 2042 | thenify-all@1.6.0: 2043 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 2044 | engines: {node: '>=0.8'} 2045 | 2046 | thenify@3.3.1: 2047 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 2048 | 2049 | to-regex-range@5.0.1: 2050 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2051 | engines: {node: '>=8.0'} 2052 | 2053 | toidentifier@1.0.1: 2054 | resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} 2055 | engines: {node: '>=0.6'} 2056 | 2057 | tr46@0.0.3: 2058 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 2059 | 2060 | ts-api-utils@1.3.0: 2061 | resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} 2062 | engines: {node: '>=16'} 2063 | peerDependencies: 2064 | typescript: '>=4.2.0' 2065 | 2066 | ts-interface-checker@0.1.13: 2067 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 2068 | 2069 | tsconfig-paths@3.15.0: 2070 | resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} 2071 | 2072 | tslib@2.6.2: 2073 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 2074 | 2075 | type-check@0.4.0: 2076 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 2077 | engines: {node: '>= 0.8.0'} 2078 | 2079 | type-fest@0.20.2: 2080 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 2081 | engines: {node: '>=10'} 2082 | 2083 | type-is@1.6.18: 2084 | resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} 2085 | engines: {node: '>= 0.6'} 2086 | 2087 | typed-array-buffer@1.0.2: 2088 | resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} 2089 | engines: {node: '>= 0.4'} 2090 | 2091 | typed-array-byte-length@1.0.1: 2092 | resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} 2093 | engines: {node: '>= 0.4'} 2094 | 2095 | typed-array-byte-offset@1.0.2: 2096 | resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} 2097 | engines: {node: '>= 0.4'} 2098 | 2099 | typed-array-length@1.0.6: 2100 | resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} 2101 | engines: {node: '>= 0.4'} 2102 | 2103 | typedarray@0.0.6: 2104 | resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} 2105 | 2106 | typescript@5.4.5: 2107 | resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} 2108 | engines: {node: '>=14.17'} 2109 | hasBin: true 2110 | 2111 | unbox-primitive@1.0.2: 2112 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 2113 | 2114 | undici-types@5.26.5: 2115 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} 2116 | 2117 | unpipe@1.0.0: 2118 | resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} 2119 | engines: {node: '>= 0.8'} 2120 | 2121 | update-browserslist-db@1.0.16: 2122 | resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} 2123 | hasBin: true 2124 | peerDependencies: 2125 | browserslist: '>= 4.21.0' 2126 | 2127 | uri-js@4.4.1: 2128 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 2129 | 2130 | util-deprecate@1.0.2: 2131 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 2132 | 2133 | utils-merge@1.0.1: 2134 | resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} 2135 | engines: {node: '>= 0.4.0'} 2136 | 2137 | vary@1.1.2: 2138 | resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} 2139 | engines: {node: '>= 0.8'} 2140 | 2141 | web-streams-polyfill@3.3.3: 2142 | resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} 2143 | engines: {node: '>= 8'} 2144 | 2145 | web-streams-polyfill@4.0.0-beta.3: 2146 | resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} 2147 | engines: {node: '>= 14'} 2148 | 2149 | webidl-conversions@3.0.1: 2150 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 2151 | 2152 | whatwg-url@5.0.0: 2153 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 2154 | 2155 | which-boxed-primitive@1.0.2: 2156 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 2157 | 2158 | which-builtin-type@1.1.3: 2159 | resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} 2160 | engines: {node: '>= 0.4'} 2161 | 2162 | which-collection@1.0.2: 2163 | resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} 2164 | engines: {node: '>= 0.4'} 2165 | 2166 | which-typed-array@1.1.15: 2167 | resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} 2168 | engines: {node: '>= 0.4'} 2169 | 2170 | which@2.0.2: 2171 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2172 | engines: {node: '>= 8'} 2173 | hasBin: true 2174 | 2175 | word-wrap@1.2.5: 2176 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 2177 | engines: {node: '>=0.10.0'} 2178 | 2179 | wrap-ansi@7.0.0: 2180 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 2181 | engines: {node: '>=10'} 2182 | 2183 | wrap-ansi@8.1.0: 2184 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 2185 | engines: {node: '>=12'} 2186 | 2187 | wrappy@1.0.2: 2188 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2189 | 2190 | ws@8.18.0: 2191 | resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} 2192 | engines: {node: '>=10.0.0'} 2193 | peerDependencies: 2194 | bufferutil: ^4.0.1 2195 | utf-8-validate: '>=5.0.2' 2196 | peerDependenciesMeta: 2197 | bufferutil: 2198 | optional: true 2199 | utf-8-validate: 2200 | optional: true 2201 | 2202 | xtend@4.0.2: 2203 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 2204 | engines: {node: '>=0.4'} 2205 | 2206 | yaml@2.4.2: 2207 | resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} 2208 | engines: {node: '>= 14'} 2209 | hasBin: true 2210 | 2211 | yocto-queue@0.1.0: 2212 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2213 | engines: {node: '>=10'} 2214 | 2215 | zod-form-data@2.0.2: 2216 | resolution: {integrity: sha512-sKTi+k0fvkxdakD0V5rq+9WVJA3cuTQUfEmNqvHrTzPLvjfLmkkBLfR0ed3qOi9MScJXTHIDH/jUNnEJ3CBX4g==} 2217 | peerDependencies: 2218 | zod: '>= 3.11.0' 2219 | 2220 | zod@3.23.8: 2221 | resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} 2222 | 2223 | snapshots: 2224 | 2225 | '@alloc/quick-lru@5.2.0': {} 2226 | 2227 | '@babel/runtime@7.24.5': 2228 | dependencies: 2229 | regenerator-runtime: 0.14.1 2230 | 2231 | '@cartesia/cartesia-js@1.0.2(@types/react@18.3.2)(react@19.0.0-rc-100dfd7dab-20240701)': 2232 | dependencies: 2233 | base64-js: 1.5.1 2234 | cross-fetch: 4.0.0 2235 | emittery: 1.0.3 2236 | human-id: 4.1.1 2237 | partysocket: 1.0.2 2238 | optionalDependencies: 2239 | '@types/react': 18.3.2 2240 | react: 19.0.0-rc-100dfd7dab-20240701 2241 | transitivePeerDependencies: 2242 | - encoding 2243 | 2244 | '@emnapi/runtime@1.2.0': 2245 | dependencies: 2246 | tslib: 2.6.2 2247 | optional: true 2248 | 2249 | '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': 2250 | dependencies: 2251 | eslint: 8.57.0 2252 | eslint-visitor-keys: 3.4.3 2253 | 2254 | '@eslint-community/regexpp@4.10.0': {} 2255 | 2256 | '@eslint/eslintrc@2.1.4': 2257 | dependencies: 2258 | ajv: 6.12.6 2259 | debug: 4.3.4 2260 | espree: 9.6.1 2261 | globals: 13.24.0 2262 | ignore: 5.3.1 2263 | import-fresh: 3.3.0 2264 | js-yaml: 4.1.0 2265 | minimatch: 3.1.2 2266 | strip-json-comments: 3.1.1 2267 | transitivePeerDependencies: 2268 | - supports-color 2269 | 2270 | '@eslint/js@8.57.0': {} 2271 | 2272 | '@humanwhocodes/config-array@0.11.14': 2273 | dependencies: 2274 | '@humanwhocodes/object-schema': 2.0.3 2275 | debug: 4.3.4 2276 | minimatch: 3.1.2 2277 | transitivePeerDependencies: 2278 | - supports-color 2279 | 2280 | '@humanwhocodes/module-importer@1.0.1': {} 2281 | 2282 | '@humanwhocodes/object-schema@2.0.3': {} 2283 | 2284 | '@img/sharp-darwin-arm64@0.33.4': 2285 | optionalDependencies: 2286 | '@img/sharp-libvips-darwin-arm64': 1.0.2 2287 | optional: true 2288 | 2289 | '@img/sharp-darwin-x64@0.33.4': 2290 | optionalDependencies: 2291 | '@img/sharp-libvips-darwin-x64': 1.0.2 2292 | optional: true 2293 | 2294 | '@img/sharp-libvips-darwin-arm64@1.0.2': 2295 | optional: true 2296 | 2297 | '@img/sharp-libvips-darwin-x64@1.0.2': 2298 | optional: true 2299 | 2300 | '@img/sharp-libvips-linux-arm64@1.0.2': 2301 | optional: true 2302 | 2303 | '@img/sharp-libvips-linux-arm@1.0.2': 2304 | optional: true 2305 | 2306 | '@img/sharp-libvips-linux-s390x@1.0.2': 2307 | optional: true 2308 | 2309 | '@img/sharp-libvips-linux-x64@1.0.2': 2310 | optional: true 2311 | 2312 | '@img/sharp-libvips-linuxmusl-arm64@1.0.2': 2313 | optional: true 2314 | 2315 | '@img/sharp-libvips-linuxmusl-x64@1.0.2': 2316 | optional: true 2317 | 2318 | '@img/sharp-linux-arm64@0.33.4': 2319 | optionalDependencies: 2320 | '@img/sharp-libvips-linux-arm64': 1.0.2 2321 | optional: true 2322 | 2323 | '@img/sharp-linux-arm@0.33.4': 2324 | optionalDependencies: 2325 | '@img/sharp-libvips-linux-arm': 1.0.2 2326 | optional: true 2327 | 2328 | '@img/sharp-linux-s390x@0.33.4': 2329 | optionalDependencies: 2330 | '@img/sharp-libvips-linux-s390x': 1.0.2 2331 | optional: true 2332 | 2333 | '@img/sharp-linux-x64@0.33.4': 2334 | optionalDependencies: 2335 | '@img/sharp-libvips-linux-x64': 1.0.2 2336 | optional: true 2337 | 2338 | '@img/sharp-linuxmusl-arm64@0.33.4': 2339 | optionalDependencies: 2340 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 2341 | optional: true 2342 | 2343 | '@img/sharp-linuxmusl-x64@0.33.4': 2344 | optionalDependencies: 2345 | '@img/sharp-libvips-linuxmusl-x64': 1.0.2 2346 | optional: true 2347 | 2348 | '@img/sharp-wasm32@0.33.4': 2349 | dependencies: 2350 | '@emnapi/runtime': 1.2.0 2351 | optional: true 2352 | 2353 | '@img/sharp-win32-ia32@0.33.4': 2354 | optional: true 2355 | 2356 | '@img/sharp-win32-x64@0.33.4': 2357 | optional: true 2358 | 2359 | '@isaacs/cliui@8.0.2': 2360 | dependencies: 2361 | string-width: 5.1.2 2362 | string-width-cjs: string-width@4.2.3 2363 | strip-ansi: 7.1.0 2364 | strip-ansi-cjs: strip-ansi@6.0.1 2365 | wrap-ansi: 8.1.0 2366 | wrap-ansi-cjs: wrap-ansi@7.0.0 2367 | 2368 | '@jridgewell/gen-mapping@0.3.5': 2369 | dependencies: 2370 | '@jridgewell/set-array': 1.2.1 2371 | '@jridgewell/sourcemap-codec': 1.4.15 2372 | '@jridgewell/trace-mapping': 0.3.25 2373 | 2374 | '@jridgewell/resolve-uri@3.1.2': {} 2375 | 2376 | '@jridgewell/set-array@1.2.1': {} 2377 | 2378 | '@jridgewell/sourcemap-codec@1.4.15': {} 2379 | 2380 | '@jridgewell/trace-mapping@0.3.25': 2381 | dependencies: 2382 | '@jridgewell/resolve-uri': 3.1.2 2383 | '@jridgewell/sourcemap-codec': 1.4.15 2384 | 2385 | '@next/env@15.0.0-rc.0': {} 2386 | 2387 | '@next/eslint-plugin-next@14.2.3': 2388 | dependencies: 2389 | glob: 10.3.10 2390 | 2391 | '@next/swc-darwin-arm64@15.0.0-rc.0': 2392 | optional: true 2393 | 2394 | '@next/swc-darwin-x64@15.0.0-rc.0': 2395 | optional: true 2396 | 2397 | '@next/swc-linux-arm64-gnu@15.0.0-rc.0': 2398 | optional: true 2399 | 2400 | '@next/swc-linux-arm64-musl@15.0.0-rc.0': 2401 | optional: true 2402 | 2403 | '@next/swc-linux-x64-gnu@15.0.0-rc.0': 2404 | optional: true 2405 | 2406 | '@next/swc-linux-x64-musl@15.0.0-rc.0': 2407 | optional: true 2408 | 2409 | '@next/swc-win32-arm64-msvc@15.0.0-rc.0': 2410 | optional: true 2411 | 2412 | '@next/swc-win32-ia32-msvc@15.0.0-rc.0': 2413 | optional: true 2414 | 2415 | '@next/swc-win32-x64-msvc@15.0.0-rc.0': 2416 | optional: true 2417 | 2418 | '@nodelib/fs.scandir@2.1.5': 2419 | dependencies: 2420 | '@nodelib/fs.stat': 2.0.5 2421 | run-parallel: 1.2.0 2422 | 2423 | '@nodelib/fs.stat@2.0.5': {} 2424 | 2425 | '@nodelib/fs.walk@1.2.8': 2426 | dependencies: 2427 | '@nodelib/fs.scandir': 2.1.5 2428 | fastq: 1.17.1 2429 | 2430 | '@pkgjs/parseargs@0.11.0': 2431 | optional: true 2432 | 2433 | '@protobufjs/aspromise@1.1.2': {} 2434 | 2435 | '@protobufjs/base64@1.1.2': {} 2436 | 2437 | '@protobufjs/codegen@2.0.4': {} 2438 | 2439 | '@protobufjs/eventemitter@1.1.0': {} 2440 | 2441 | '@protobufjs/fetch@1.1.0': 2442 | dependencies: 2443 | '@protobufjs/aspromise': 1.1.2 2444 | '@protobufjs/inquire': 1.1.0 2445 | 2446 | '@protobufjs/float@1.0.2': {} 2447 | 2448 | '@protobufjs/inquire@1.1.0': {} 2449 | 2450 | '@protobufjs/path@1.1.2': {} 2451 | 2452 | '@protobufjs/pool@1.1.0': {} 2453 | 2454 | '@protobufjs/utf8@1.1.0': {} 2455 | 2456 | '@ricky0123/vad-react@0.0.24(react-dom@19.0.0-rc-100dfd7dab-20240701(react@19.0.0-rc-100dfd7dab-20240701))(react@19.0.0-rc-100dfd7dab-20240701)': 2457 | dependencies: 2458 | '@ricky0123/vad-web': 0.0.18 2459 | onnxruntime-web: 1.18.0 2460 | react: 19.0.0-rc-100dfd7dab-20240701 2461 | react-dom: 19.0.0-rc-100dfd7dab-20240701(react@19.0.0-rc-100dfd7dab-20240701) 2462 | 2463 | '@ricky0123/vad-web@0.0.18': 2464 | dependencies: 2465 | onnxruntime-web: 1.18.0 2466 | 2467 | '@rushstack/eslint-patch@1.10.3': {} 2468 | 2469 | '@swc/helpers@0.5.11': 2470 | dependencies: 2471 | tslib: 2.6.2 2472 | 2473 | '@types/json5@0.0.29': {} 2474 | 2475 | '@types/node-fetch@2.6.11': 2476 | dependencies: 2477 | '@types/node': 20.12.12 2478 | form-data: 4.0.0 2479 | 2480 | '@types/node@18.19.33': 2481 | dependencies: 2482 | undici-types: 5.26.5 2483 | 2484 | '@types/node@20.12.12': 2485 | dependencies: 2486 | undici-types: 5.26.5 2487 | 2488 | '@types/prop-types@15.7.12': {} 2489 | 2490 | '@types/react-dom@18.3.0': 2491 | dependencies: 2492 | '@types/react': 18.3.2 2493 | 2494 | '@types/react@18.3.2': 2495 | dependencies: 2496 | '@types/prop-types': 15.7.12 2497 | csstype: 3.1.3 2498 | 2499 | '@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5)': 2500 | dependencies: 2501 | '@typescript-eslint/scope-manager': 7.2.0 2502 | '@typescript-eslint/types': 7.2.0 2503 | '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.4.5) 2504 | '@typescript-eslint/visitor-keys': 7.2.0 2505 | debug: 4.3.4 2506 | eslint: 8.57.0 2507 | optionalDependencies: 2508 | typescript: 5.4.5 2509 | transitivePeerDependencies: 2510 | - supports-color 2511 | 2512 | '@typescript-eslint/scope-manager@7.2.0': 2513 | dependencies: 2514 | '@typescript-eslint/types': 7.2.0 2515 | '@typescript-eslint/visitor-keys': 7.2.0 2516 | 2517 | '@typescript-eslint/types@7.2.0': {} 2518 | 2519 | '@typescript-eslint/typescript-estree@7.2.0(typescript@5.4.5)': 2520 | dependencies: 2521 | '@typescript-eslint/types': 7.2.0 2522 | '@typescript-eslint/visitor-keys': 7.2.0 2523 | debug: 4.3.4 2524 | globby: 11.1.0 2525 | is-glob: 4.0.3 2526 | minimatch: 9.0.3 2527 | semver: 7.6.2 2528 | ts-api-utils: 1.3.0(typescript@5.4.5) 2529 | optionalDependencies: 2530 | typescript: 5.4.5 2531 | transitivePeerDependencies: 2532 | - supports-color 2533 | 2534 | '@typescript-eslint/visitor-keys@7.2.0': 2535 | dependencies: 2536 | '@typescript-eslint/types': 7.2.0 2537 | eslint-visitor-keys: 3.4.3 2538 | 2539 | '@ungap/structured-clone@1.2.0': {} 2540 | 2541 | '@vercel/analytics@1.2.2(next@15.0.0-rc.0(react-dom@19.0.0-rc-100dfd7dab-20240701(react@19.0.0-rc-100dfd7dab-20240701))(react@19.0.0-rc-100dfd7dab-20240701))(react@19.0.0-rc-100dfd7dab-20240701)': 2542 | dependencies: 2543 | server-only: 0.0.1 2544 | optionalDependencies: 2545 | next: 15.0.0-rc.0(react-dom@19.0.0-rc-100dfd7dab-20240701(react@19.0.0-rc-100dfd7dab-20240701))(react@19.0.0-rc-100dfd7dab-20240701) 2546 | react: 19.0.0-rc-100dfd7dab-20240701 2547 | 2548 | abort-controller@3.0.0: 2549 | dependencies: 2550 | event-target-shim: 5.0.1 2551 | 2552 | accepts@1.3.8: 2553 | dependencies: 2554 | mime-types: 2.1.35 2555 | negotiator: 0.6.3 2556 | 2557 | acorn-jsx@5.3.2(acorn@8.11.3): 2558 | dependencies: 2559 | acorn: 8.11.3 2560 | 2561 | acorn@8.11.3: {} 2562 | 2563 | agentkeepalive@4.5.0: 2564 | dependencies: 2565 | humanize-ms: 1.2.1 2566 | 2567 | ajv@6.12.6: 2568 | dependencies: 2569 | fast-deep-equal: 3.1.3 2570 | fast-json-stable-stringify: 2.1.0 2571 | json-schema-traverse: 0.4.1 2572 | uri-js: 4.4.1 2573 | 2574 | ansi-regex@5.0.1: {} 2575 | 2576 | ansi-regex@6.0.1: {} 2577 | 2578 | ansi-styles@4.3.0: 2579 | dependencies: 2580 | color-convert: 2.0.1 2581 | 2582 | ansi-styles@6.2.1: {} 2583 | 2584 | any-promise@1.3.0: {} 2585 | 2586 | anymatch@3.1.3: 2587 | dependencies: 2588 | normalize-path: 3.0.0 2589 | picomatch: 2.3.1 2590 | 2591 | append-field@1.0.0: {} 2592 | 2593 | arg@5.0.2: {} 2594 | 2595 | argparse@2.0.1: {} 2596 | 2597 | aria-query@5.3.0: 2598 | dependencies: 2599 | dequal: 2.0.3 2600 | 2601 | array-buffer-byte-length@1.0.1: 2602 | dependencies: 2603 | call-bind: 1.0.7 2604 | is-array-buffer: 3.0.4 2605 | 2606 | array-flatten@1.1.1: {} 2607 | 2608 | array-includes@3.1.8: 2609 | dependencies: 2610 | call-bind: 1.0.7 2611 | define-properties: 1.2.1 2612 | es-abstract: 1.23.3 2613 | es-object-atoms: 1.0.0 2614 | get-intrinsic: 1.2.4 2615 | is-string: 1.0.7 2616 | 2617 | array-union@2.1.0: {} 2618 | 2619 | array.prototype.findlast@1.2.5: 2620 | dependencies: 2621 | call-bind: 1.0.7 2622 | define-properties: 1.2.1 2623 | es-abstract: 1.23.3 2624 | es-errors: 1.3.0 2625 | es-object-atoms: 1.0.0 2626 | es-shim-unscopables: 1.0.2 2627 | 2628 | array.prototype.findlastindex@1.2.5: 2629 | dependencies: 2630 | call-bind: 1.0.7 2631 | define-properties: 1.2.1 2632 | es-abstract: 1.23.3 2633 | es-errors: 1.3.0 2634 | es-object-atoms: 1.0.0 2635 | es-shim-unscopables: 1.0.2 2636 | 2637 | array.prototype.flat@1.3.2: 2638 | dependencies: 2639 | call-bind: 1.0.7 2640 | define-properties: 1.2.1 2641 | es-abstract: 1.23.3 2642 | es-shim-unscopables: 1.0.2 2643 | 2644 | array.prototype.flatmap@1.3.2: 2645 | dependencies: 2646 | call-bind: 1.0.7 2647 | define-properties: 1.2.1 2648 | es-abstract: 1.23.3 2649 | es-shim-unscopables: 1.0.2 2650 | 2651 | array.prototype.toreversed@1.1.2: 2652 | dependencies: 2653 | call-bind: 1.0.7 2654 | define-properties: 1.2.1 2655 | es-abstract: 1.23.3 2656 | es-shim-unscopables: 1.0.2 2657 | 2658 | array.prototype.tosorted@1.1.3: 2659 | dependencies: 2660 | call-bind: 1.0.7 2661 | define-properties: 1.2.1 2662 | es-abstract: 1.23.3 2663 | es-errors: 1.3.0 2664 | es-shim-unscopables: 1.0.2 2665 | 2666 | arraybuffer.prototype.slice@1.0.3: 2667 | dependencies: 2668 | array-buffer-byte-length: 1.0.1 2669 | call-bind: 1.0.7 2670 | define-properties: 1.2.1 2671 | es-abstract: 1.23.3 2672 | es-errors: 1.3.0 2673 | get-intrinsic: 1.2.4 2674 | is-array-buffer: 3.0.4 2675 | is-shared-array-buffer: 1.0.3 2676 | 2677 | ast-types-flow@0.0.8: {} 2678 | 2679 | asynckit@0.4.0: {} 2680 | 2681 | autoprefixer@10.4.19(postcss@8.4.38): 2682 | dependencies: 2683 | browserslist: 4.23.1 2684 | caniuse-lite: 1.0.30001620 2685 | fraction.js: 4.3.7 2686 | normalize-range: 0.1.2 2687 | picocolors: 1.0.1 2688 | postcss: 8.4.38 2689 | postcss-value-parser: 4.2.0 2690 | 2691 | available-typed-arrays@1.0.7: 2692 | dependencies: 2693 | possible-typed-array-names: 1.0.0 2694 | 2695 | axe-core@4.7.0: {} 2696 | 2697 | axobject-query@3.2.1: 2698 | dependencies: 2699 | dequal: 2.0.3 2700 | 2701 | balanced-match@1.0.2: {} 2702 | 2703 | base-64@0.1.0: {} 2704 | 2705 | base64-js@1.5.1: {} 2706 | 2707 | binary-extensions@2.3.0: {} 2708 | 2709 | body-parser@1.20.2: 2710 | dependencies: 2711 | bytes: 3.1.2 2712 | content-type: 1.0.5 2713 | debug: 2.6.9 2714 | depd: 2.0.0 2715 | destroy: 1.2.0 2716 | http-errors: 2.0.0 2717 | iconv-lite: 0.4.24 2718 | on-finished: 2.4.1 2719 | qs: 6.11.0 2720 | raw-body: 2.5.2 2721 | type-is: 1.6.18 2722 | unpipe: 1.0.0 2723 | transitivePeerDependencies: 2724 | - supports-color 2725 | 2726 | brace-expansion@1.1.11: 2727 | dependencies: 2728 | balanced-match: 1.0.2 2729 | concat-map: 0.0.1 2730 | 2731 | brace-expansion@2.0.1: 2732 | dependencies: 2733 | balanced-match: 1.0.2 2734 | 2735 | braces@3.0.2: 2736 | dependencies: 2737 | fill-range: 7.0.1 2738 | 2739 | browserslist@4.23.1: 2740 | dependencies: 2741 | caniuse-lite: 1.0.30001639 2742 | electron-to-chromium: 1.4.816 2743 | node-releases: 2.0.14 2744 | update-browserslist-db: 1.0.16(browserslist@4.23.1) 2745 | 2746 | buffer-from@1.1.2: {} 2747 | 2748 | busboy@1.6.0: 2749 | dependencies: 2750 | streamsearch: 1.1.0 2751 | 2752 | bytes@3.1.2: {} 2753 | 2754 | call-bind@1.0.7: 2755 | dependencies: 2756 | es-define-property: 1.0.0 2757 | es-errors: 1.3.0 2758 | function-bind: 1.1.2 2759 | get-intrinsic: 1.2.4 2760 | set-function-length: 1.2.2 2761 | 2762 | callsites@3.1.0: {} 2763 | 2764 | camelcase-css@2.0.1: {} 2765 | 2766 | caniuse-lite@1.0.30001620: {} 2767 | 2768 | caniuse-lite@1.0.30001639: {} 2769 | 2770 | chalk@4.1.2: 2771 | dependencies: 2772 | ansi-styles: 4.3.0 2773 | supports-color: 7.2.0 2774 | 2775 | charenc@0.0.2: {} 2776 | 2777 | chokidar@3.6.0: 2778 | dependencies: 2779 | anymatch: 3.1.3 2780 | braces: 3.0.2 2781 | glob-parent: 5.1.2 2782 | is-binary-path: 2.1.0 2783 | is-glob: 4.0.3 2784 | normalize-path: 3.0.0 2785 | readdirp: 3.6.0 2786 | optionalDependencies: 2787 | fsevents: 2.3.3 2788 | 2789 | client-only@0.0.1: {} 2790 | 2791 | clsx@2.1.1: {} 2792 | 2793 | color-convert@2.0.1: 2794 | dependencies: 2795 | color-name: 1.1.4 2796 | 2797 | color-name@1.1.4: {} 2798 | 2799 | color-string@1.9.1: 2800 | dependencies: 2801 | color-name: 1.1.4 2802 | simple-swizzle: 0.2.2 2803 | optional: true 2804 | 2805 | color@4.2.3: 2806 | dependencies: 2807 | color-convert: 2.0.1 2808 | color-string: 1.9.1 2809 | optional: true 2810 | 2811 | combined-stream@1.0.8: 2812 | dependencies: 2813 | delayed-stream: 1.0.0 2814 | 2815 | commander@4.1.1: {} 2816 | 2817 | concat-map@0.0.1: {} 2818 | 2819 | concat-stream@1.6.2: 2820 | dependencies: 2821 | buffer-from: 1.1.2 2822 | inherits: 2.0.4 2823 | readable-stream: 2.3.8 2824 | typedarray: 0.0.6 2825 | 2826 | content-disposition@0.5.4: 2827 | dependencies: 2828 | safe-buffer: 5.2.1 2829 | 2830 | content-type@1.0.5: {} 2831 | 2832 | cookie-signature@1.0.6: {} 2833 | 2834 | cookie@0.6.0: {} 2835 | 2836 | core-util-is@1.0.3: {} 2837 | 2838 | cors@2.8.5: 2839 | dependencies: 2840 | object-assign: 4.1.1 2841 | vary: 1.1.2 2842 | 2843 | cross-fetch@4.0.0: 2844 | dependencies: 2845 | node-fetch: 2.7.0 2846 | transitivePeerDependencies: 2847 | - encoding 2848 | 2849 | cross-spawn@7.0.3: 2850 | dependencies: 2851 | path-key: 3.1.1 2852 | shebang-command: 2.0.0 2853 | which: 2.0.2 2854 | 2855 | crypt@0.0.2: {} 2856 | 2857 | cssesc@3.0.0: {} 2858 | 2859 | csstype@3.1.3: {} 2860 | 2861 | damerau-levenshtein@1.0.8: {} 2862 | 2863 | data-view-buffer@1.0.1: 2864 | dependencies: 2865 | call-bind: 1.0.7 2866 | es-errors: 1.3.0 2867 | is-data-view: 1.0.1 2868 | 2869 | data-view-byte-length@1.0.1: 2870 | dependencies: 2871 | call-bind: 1.0.7 2872 | es-errors: 1.3.0 2873 | is-data-view: 1.0.1 2874 | 2875 | data-view-byte-offset@1.0.0: 2876 | dependencies: 2877 | call-bind: 1.0.7 2878 | es-errors: 1.3.0 2879 | is-data-view: 1.0.1 2880 | 2881 | debug@2.6.9: 2882 | dependencies: 2883 | ms: 2.0.0 2884 | 2885 | debug@3.2.7: 2886 | dependencies: 2887 | ms: 2.1.3 2888 | 2889 | debug@4.3.4: 2890 | dependencies: 2891 | ms: 2.1.2 2892 | 2893 | deep-is@0.1.4: {} 2894 | 2895 | define-data-property@1.1.4: 2896 | dependencies: 2897 | es-define-property: 1.0.0 2898 | es-errors: 1.3.0 2899 | gopd: 1.0.1 2900 | 2901 | define-properties@1.2.1: 2902 | dependencies: 2903 | define-data-property: 1.1.4 2904 | has-property-descriptors: 1.0.2 2905 | object-keys: 1.1.1 2906 | 2907 | delayed-stream@1.0.0: {} 2908 | 2909 | depd@2.0.0: {} 2910 | 2911 | dequal@2.0.3: {} 2912 | 2913 | destroy@1.2.0: {} 2914 | 2915 | detect-libc@2.0.3: 2916 | optional: true 2917 | 2918 | didyoumean@1.2.2: {} 2919 | 2920 | digest-fetch@1.3.0: 2921 | dependencies: 2922 | base-64: 0.1.0 2923 | md5: 2.3.0 2924 | 2925 | dir-glob@3.0.1: 2926 | dependencies: 2927 | path-type: 4.0.0 2928 | 2929 | dlv@1.1.3: {} 2930 | 2931 | doctrine@2.1.0: 2932 | dependencies: 2933 | esutils: 2.0.3 2934 | 2935 | doctrine@3.0.0: 2936 | dependencies: 2937 | esutils: 2.0.3 2938 | 2939 | dotenv@16.4.5: {} 2940 | 2941 | eastasianwidth@0.2.0: {} 2942 | 2943 | ee-first@1.1.1: {} 2944 | 2945 | electron-to-chromium@1.4.816: {} 2946 | 2947 | emittery@1.0.3: {} 2948 | 2949 | emoji-regex@8.0.0: {} 2950 | 2951 | emoji-regex@9.2.2: {} 2952 | 2953 | encodeurl@1.0.2: {} 2954 | 2955 | enhanced-resolve@5.16.1: 2956 | dependencies: 2957 | graceful-fs: 4.2.11 2958 | tapable: 2.2.1 2959 | 2960 | es-abstract@1.23.3: 2961 | dependencies: 2962 | array-buffer-byte-length: 1.0.1 2963 | arraybuffer.prototype.slice: 1.0.3 2964 | available-typed-arrays: 1.0.7 2965 | call-bind: 1.0.7 2966 | data-view-buffer: 1.0.1 2967 | data-view-byte-length: 1.0.1 2968 | data-view-byte-offset: 1.0.0 2969 | es-define-property: 1.0.0 2970 | es-errors: 1.3.0 2971 | es-object-atoms: 1.0.0 2972 | es-set-tostringtag: 2.0.3 2973 | es-to-primitive: 1.2.1 2974 | function.prototype.name: 1.1.6 2975 | get-intrinsic: 1.2.4 2976 | get-symbol-description: 1.0.2 2977 | globalthis: 1.0.4 2978 | gopd: 1.0.1 2979 | has-property-descriptors: 1.0.2 2980 | has-proto: 1.0.3 2981 | has-symbols: 1.0.3 2982 | hasown: 2.0.2 2983 | internal-slot: 1.0.7 2984 | is-array-buffer: 3.0.4 2985 | is-callable: 1.2.7 2986 | is-data-view: 1.0.1 2987 | is-negative-zero: 2.0.3 2988 | is-regex: 1.1.4 2989 | is-shared-array-buffer: 1.0.3 2990 | is-string: 1.0.7 2991 | is-typed-array: 1.1.13 2992 | is-weakref: 1.0.2 2993 | object-inspect: 1.13.1 2994 | object-keys: 1.1.1 2995 | object.assign: 4.1.5 2996 | regexp.prototype.flags: 1.5.2 2997 | safe-array-concat: 1.1.2 2998 | safe-regex-test: 1.0.3 2999 | string.prototype.trim: 1.2.9 3000 | string.prototype.trimend: 1.0.8 3001 | string.prototype.trimstart: 1.0.8 3002 | typed-array-buffer: 1.0.2 3003 | typed-array-byte-length: 1.0.1 3004 | typed-array-byte-offset: 1.0.2 3005 | typed-array-length: 1.0.6 3006 | unbox-primitive: 1.0.2 3007 | which-typed-array: 1.1.15 3008 | 3009 | es-define-property@1.0.0: 3010 | dependencies: 3011 | get-intrinsic: 1.2.4 3012 | 3013 | es-errors@1.3.0: {} 3014 | 3015 | es-iterator-helpers@1.0.19: 3016 | dependencies: 3017 | call-bind: 1.0.7 3018 | define-properties: 1.2.1 3019 | es-abstract: 1.23.3 3020 | es-errors: 1.3.0 3021 | es-set-tostringtag: 2.0.3 3022 | function-bind: 1.1.2 3023 | get-intrinsic: 1.2.4 3024 | globalthis: 1.0.4 3025 | has-property-descriptors: 1.0.2 3026 | has-proto: 1.0.3 3027 | has-symbols: 1.0.3 3028 | internal-slot: 1.0.7 3029 | iterator.prototype: 1.1.2 3030 | safe-array-concat: 1.1.2 3031 | 3032 | es-object-atoms@1.0.0: 3033 | dependencies: 3034 | es-errors: 1.3.0 3035 | 3036 | es-set-tostringtag@2.0.3: 3037 | dependencies: 3038 | get-intrinsic: 1.2.4 3039 | has-tostringtag: 1.0.2 3040 | hasown: 2.0.2 3041 | 3042 | es-shim-unscopables@1.0.2: 3043 | dependencies: 3044 | hasown: 2.0.2 3045 | 3046 | es-to-primitive@1.2.1: 3047 | dependencies: 3048 | is-callable: 1.2.7 3049 | is-date-object: 1.0.5 3050 | is-symbol: 1.0.4 3051 | 3052 | escalade@3.1.2: {} 3053 | 3054 | escape-html@1.0.3: {} 3055 | 3056 | escape-string-regexp@4.0.0: {} 3057 | 3058 | eslint-config-next@14.2.3(eslint@8.57.0)(typescript@5.4.5): 3059 | dependencies: 3060 | '@next/eslint-plugin-next': 14.2.3 3061 | '@rushstack/eslint-patch': 1.10.3 3062 | '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.4.5) 3063 | eslint: 8.57.0 3064 | eslint-import-resolver-node: 0.3.9 3065 | eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0) 3066 | eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) 3067 | eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) 3068 | eslint-plugin-react: 7.34.1(eslint@8.57.0) 3069 | eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) 3070 | optionalDependencies: 3071 | typescript: 5.4.5 3072 | transitivePeerDependencies: 3073 | - eslint-import-resolver-webpack 3074 | - supports-color 3075 | 3076 | eslint-import-resolver-node@0.3.9: 3077 | dependencies: 3078 | debug: 3.2.7 3079 | is-core-module: 2.13.1 3080 | resolve: 1.22.8 3081 | transitivePeerDependencies: 3082 | - supports-color 3083 | 3084 | eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0): 3085 | dependencies: 3086 | debug: 4.3.4 3087 | enhanced-resolve: 5.16.1 3088 | eslint: 8.57.0 3089 | eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) 3090 | eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) 3091 | fast-glob: 3.3.2 3092 | get-tsconfig: 4.7.5 3093 | is-core-module: 2.13.1 3094 | is-glob: 4.0.3 3095 | transitivePeerDependencies: 3096 | - '@typescript-eslint/parser' 3097 | - eslint-import-resolver-node 3098 | - eslint-import-resolver-webpack 3099 | - supports-color 3100 | 3101 | eslint-module-utils@2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0): 3102 | dependencies: 3103 | debug: 3.2.7 3104 | optionalDependencies: 3105 | '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.4.5) 3106 | eslint: 8.57.0 3107 | eslint-import-resolver-node: 0.3.9 3108 | eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0) 3109 | transitivePeerDependencies: 3110 | - supports-color 3111 | 3112 | eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0): 3113 | dependencies: 3114 | array-includes: 3.1.8 3115 | array.prototype.findlastindex: 1.2.5 3116 | array.prototype.flat: 1.3.2 3117 | array.prototype.flatmap: 1.3.2 3118 | debug: 3.2.7 3119 | doctrine: 2.1.0 3120 | eslint: 8.57.0 3121 | eslint-import-resolver-node: 0.3.9 3122 | eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) 3123 | hasown: 2.0.2 3124 | is-core-module: 2.13.1 3125 | is-glob: 4.0.3 3126 | minimatch: 3.1.2 3127 | object.fromentries: 2.0.8 3128 | object.groupby: 1.0.3 3129 | object.values: 1.2.0 3130 | semver: 6.3.1 3131 | tsconfig-paths: 3.15.0 3132 | optionalDependencies: 3133 | '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.4.5) 3134 | transitivePeerDependencies: 3135 | - eslint-import-resolver-typescript 3136 | - eslint-import-resolver-webpack 3137 | - supports-color 3138 | 3139 | eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): 3140 | dependencies: 3141 | '@babel/runtime': 7.24.5 3142 | aria-query: 5.3.0 3143 | array-includes: 3.1.8 3144 | array.prototype.flatmap: 1.3.2 3145 | ast-types-flow: 0.0.8 3146 | axe-core: 4.7.0 3147 | axobject-query: 3.2.1 3148 | damerau-levenshtein: 1.0.8 3149 | emoji-regex: 9.2.2 3150 | es-iterator-helpers: 1.0.19 3151 | eslint: 8.57.0 3152 | hasown: 2.0.2 3153 | jsx-ast-utils: 3.3.5 3154 | language-tags: 1.0.9 3155 | minimatch: 3.1.2 3156 | object.entries: 1.1.8 3157 | object.fromentries: 2.0.8 3158 | 3159 | eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): 3160 | dependencies: 3161 | eslint: 8.57.0 3162 | 3163 | eslint-plugin-react@7.34.1(eslint@8.57.0): 3164 | dependencies: 3165 | array-includes: 3.1.8 3166 | array.prototype.findlast: 1.2.5 3167 | array.prototype.flatmap: 1.3.2 3168 | array.prototype.toreversed: 1.1.2 3169 | array.prototype.tosorted: 1.1.3 3170 | doctrine: 2.1.0 3171 | es-iterator-helpers: 1.0.19 3172 | eslint: 8.57.0 3173 | estraverse: 5.3.0 3174 | jsx-ast-utils: 3.3.5 3175 | minimatch: 3.1.2 3176 | object.entries: 1.1.8 3177 | object.fromentries: 2.0.8 3178 | object.hasown: 1.1.4 3179 | object.values: 1.2.0 3180 | prop-types: 15.8.1 3181 | resolve: 2.0.0-next.5 3182 | semver: 6.3.1 3183 | string.prototype.matchall: 4.0.11 3184 | 3185 | eslint-scope@7.2.2: 3186 | dependencies: 3187 | esrecurse: 4.3.0 3188 | estraverse: 5.3.0 3189 | 3190 | eslint-visitor-keys@3.4.3: {} 3191 | 3192 | eslint@8.57.0: 3193 | dependencies: 3194 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 3195 | '@eslint-community/regexpp': 4.10.0 3196 | '@eslint/eslintrc': 2.1.4 3197 | '@eslint/js': 8.57.0 3198 | '@humanwhocodes/config-array': 0.11.14 3199 | '@humanwhocodes/module-importer': 1.0.1 3200 | '@nodelib/fs.walk': 1.2.8 3201 | '@ungap/structured-clone': 1.2.0 3202 | ajv: 6.12.6 3203 | chalk: 4.1.2 3204 | cross-spawn: 7.0.3 3205 | debug: 4.3.4 3206 | doctrine: 3.0.0 3207 | escape-string-regexp: 4.0.0 3208 | eslint-scope: 7.2.2 3209 | eslint-visitor-keys: 3.4.3 3210 | espree: 9.6.1 3211 | esquery: 1.5.0 3212 | esutils: 2.0.3 3213 | fast-deep-equal: 3.1.3 3214 | file-entry-cache: 6.0.1 3215 | find-up: 5.0.0 3216 | glob-parent: 6.0.2 3217 | globals: 13.24.0 3218 | graphemer: 1.4.0 3219 | ignore: 5.3.1 3220 | imurmurhash: 0.1.4 3221 | is-glob: 4.0.3 3222 | is-path-inside: 3.0.3 3223 | js-yaml: 4.1.0 3224 | json-stable-stringify-without-jsonify: 1.0.1 3225 | levn: 0.4.1 3226 | lodash.merge: 4.6.2 3227 | minimatch: 3.1.2 3228 | natural-compare: 1.4.0 3229 | optionator: 0.9.4 3230 | strip-ansi: 6.0.1 3231 | text-table: 0.2.0 3232 | transitivePeerDependencies: 3233 | - supports-color 3234 | 3235 | espree@9.6.1: 3236 | dependencies: 3237 | acorn: 8.11.3 3238 | acorn-jsx: 5.3.2(acorn@8.11.3) 3239 | eslint-visitor-keys: 3.4.3 3240 | 3241 | esquery@1.5.0: 3242 | dependencies: 3243 | estraverse: 5.3.0 3244 | 3245 | esrecurse@4.3.0: 3246 | dependencies: 3247 | estraverse: 5.3.0 3248 | 3249 | estraverse@5.3.0: {} 3250 | 3251 | esutils@2.0.3: {} 3252 | 3253 | etag@1.8.1: {} 3254 | 3255 | event-target-shim@5.0.1: {} 3256 | 3257 | event-target-shim@6.0.2: {} 3258 | 3259 | express@4.19.2: 3260 | dependencies: 3261 | accepts: 1.3.8 3262 | array-flatten: 1.1.1 3263 | body-parser: 1.20.2 3264 | content-disposition: 0.5.4 3265 | content-type: 1.0.5 3266 | cookie: 0.6.0 3267 | cookie-signature: 1.0.6 3268 | debug: 2.6.9 3269 | depd: 2.0.0 3270 | encodeurl: 1.0.2 3271 | escape-html: 1.0.3 3272 | etag: 1.8.1 3273 | finalhandler: 1.2.0 3274 | fresh: 0.5.2 3275 | http-errors: 2.0.0 3276 | merge-descriptors: 1.0.1 3277 | methods: 1.1.2 3278 | on-finished: 2.4.1 3279 | parseurl: 1.3.3 3280 | path-to-regexp: 0.1.7 3281 | proxy-addr: 2.0.7 3282 | qs: 6.11.0 3283 | range-parser: 1.2.1 3284 | safe-buffer: 5.2.1 3285 | send: 0.18.0 3286 | serve-static: 1.15.0 3287 | setprototypeof: 1.2.0 3288 | statuses: 2.0.1 3289 | type-is: 1.6.18 3290 | utils-merge: 1.0.1 3291 | vary: 1.1.2 3292 | transitivePeerDependencies: 3293 | - supports-color 3294 | 3295 | fast-deep-equal@3.1.3: {} 3296 | 3297 | fast-glob@3.3.2: 3298 | dependencies: 3299 | '@nodelib/fs.stat': 2.0.5 3300 | '@nodelib/fs.walk': 1.2.8 3301 | glob-parent: 5.1.2 3302 | merge2: 1.4.1 3303 | micromatch: 4.0.5 3304 | 3305 | fast-json-stable-stringify@2.1.0: {} 3306 | 3307 | fast-levenshtein@2.0.6: {} 3308 | 3309 | fastq@1.17.1: 3310 | dependencies: 3311 | reusify: 1.0.4 3312 | 3313 | file-entry-cache@6.0.1: 3314 | dependencies: 3315 | flat-cache: 3.2.0 3316 | 3317 | fill-range@7.0.1: 3318 | dependencies: 3319 | to-regex-range: 5.0.1 3320 | 3321 | finalhandler@1.2.0: 3322 | dependencies: 3323 | debug: 2.6.9 3324 | encodeurl: 1.0.2 3325 | escape-html: 1.0.3 3326 | on-finished: 2.4.1 3327 | parseurl: 1.3.3 3328 | statuses: 2.0.1 3329 | unpipe: 1.0.0 3330 | transitivePeerDependencies: 3331 | - supports-color 3332 | 3333 | find-up@5.0.0: 3334 | dependencies: 3335 | locate-path: 6.0.0 3336 | path-exists: 4.0.0 3337 | 3338 | flat-cache@3.2.0: 3339 | dependencies: 3340 | flatted: 3.3.1 3341 | keyv: 4.5.4 3342 | rimraf: 3.0.2 3343 | 3344 | flatbuffers@1.12.0: {} 3345 | 3346 | flatted@3.3.1: {} 3347 | 3348 | for-each@0.3.3: 3349 | dependencies: 3350 | is-callable: 1.2.7 3351 | 3352 | foreground-child@3.1.1: 3353 | dependencies: 3354 | cross-spawn: 7.0.3 3355 | signal-exit: 4.1.0 3356 | 3357 | form-data-encoder@1.7.2: {} 3358 | 3359 | form-data@4.0.0: 3360 | dependencies: 3361 | asynckit: 0.4.0 3362 | combined-stream: 1.0.8 3363 | mime-types: 2.1.35 3364 | 3365 | formdata-node@4.4.1: 3366 | dependencies: 3367 | node-domexception: 1.0.0 3368 | web-streams-polyfill: 4.0.0-beta.3 3369 | 3370 | forwarded@0.2.0: {} 3371 | 3372 | fraction.js@4.3.7: {} 3373 | 3374 | fresh@0.5.2: {} 3375 | 3376 | fs.realpath@1.0.0: {} 3377 | 3378 | fsevents@2.3.3: 3379 | optional: true 3380 | 3381 | function-bind@1.1.2: {} 3382 | 3383 | function.prototype.name@1.1.6: 3384 | dependencies: 3385 | call-bind: 1.0.7 3386 | define-properties: 1.2.1 3387 | es-abstract: 1.23.3 3388 | functions-have-names: 1.2.3 3389 | 3390 | functions-have-names@1.2.3: {} 3391 | 3392 | geist@1.3.0(next@15.0.0-rc.0(react-dom@19.0.0-rc-100dfd7dab-20240701(react@19.0.0-rc-100dfd7dab-20240701))(react@19.0.0-rc-100dfd7dab-20240701)): 3393 | dependencies: 3394 | next: 15.0.0-rc.0(react-dom@19.0.0-rc-100dfd7dab-20240701(react@19.0.0-rc-100dfd7dab-20240701))(react@19.0.0-rc-100dfd7dab-20240701) 3395 | 3396 | get-intrinsic@1.2.4: 3397 | dependencies: 3398 | es-errors: 1.3.0 3399 | function-bind: 1.1.2 3400 | has-proto: 1.0.3 3401 | has-symbols: 1.0.3 3402 | hasown: 2.0.2 3403 | 3404 | get-symbol-description@1.0.2: 3405 | dependencies: 3406 | call-bind: 1.0.7 3407 | es-errors: 1.3.0 3408 | get-intrinsic: 1.2.4 3409 | 3410 | get-tsconfig@4.7.5: 3411 | dependencies: 3412 | resolve-pkg-maps: 1.0.0 3413 | 3414 | glob-parent@5.1.2: 3415 | dependencies: 3416 | is-glob: 4.0.3 3417 | 3418 | glob-parent@6.0.2: 3419 | dependencies: 3420 | is-glob: 4.0.3 3421 | 3422 | glob@10.3.10: 3423 | dependencies: 3424 | foreground-child: 3.1.1 3425 | jackspeak: 2.3.6 3426 | minimatch: 9.0.4 3427 | minipass: 7.1.1 3428 | path-scurry: 1.11.1 3429 | 3430 | glob@10.3.15: 3431 | dependencies: 3432 | foreground-child: 3.1.1 3433 | jackspeak: 2.3.6 3434 | minimatch: 9.0.4 3435 | minipass: 7.1.1 3436 | path-scurry: 1.11.1 3437 | 3438 | glob@7.2.3: 3439 | dependencies: 3440 | fs.realpath: 1.0.0 3441 | inflight: 1.0.6 3442 | inherits: 2.0.4 3443 | minimatch: 3.1.2 3444 | once: 1.4.0 3445 | path-is-absolute: 1.0.1 3446 | 3447 | globals@13.24.0: 3448 | dependencies: 3449 | type-fest: 0.20.2 3450 | 3451 | globalthis@1.0.4: 3452 | dependencies: 3453 | define-properties: 1.2.1 3454 | gopd: 1.0.1 3455 | 3456 | globby@11.1.0: 3457 | dependencies: 3458 | array-union: 2.1.0 3459 | dir-glob: 3.0.1 3460 | fast-glob: 3.3.2 3461 | ignore: 5.3.1 3462 | merge2: 1.4.1 3463 | slash: 3.0.0 3464 | 3465 | gopd@1.0.1: 3466 | dependencies: 3467 | get-intrinsic: 1.2.4 3468 | 3469 | graceful-fs@4.2.11: {} 3470 | 3471 | graphemer@1.4.0: {} 3472 | 3473 | groq-sdk@0.3.3: 3474 | dependencies: 3475 | '@types/node': 18.19.33 3476 | '@types/node-fetch': 2.6.11 3477 | abort-controller: 3.0.0 3478 | agentkeepalive: 4.5.0 3479 | digest-fetch: 1.3.0 3480 | form-data-encoder: 1.7.2 3481 | formdata-node: 4.4.1 3482 | node-fetch: 2.7.0 3483 | web-streams-polyfill: 3.3.3 3484 | transitivePeerDependencies: 3485 | - encoding 3486 | 3487 | guid-typescript@1.0.9: {} 3488 | 3489 | has-bigints@1.0.2: {} 3490 | 3491 | has-flag@4.0.0: {} 3492 | 3493 | has-property-descriptors@1.0.2: 3494 | dependencies: 3495 | es-define-property: 1.0.0 3496 | 3497 | has-proto@1.0.3: {} 3498 | 3499 | has-symbols@1.0.3: {} 3500 | 3501 | has-tostringtag@1.0.2: 3502 | dependencies: 3503 | has-symbols: 1.0.3 3504 | 3505 | hasown@2.0.2: 3506 | dependencies: 3507 | function-bind: 1.1.2 3508 | 3509 | http-errors@2.0.0: 3510 | dependencies: 3511 | depd: 2.0.0 3512 | inherits: 2.0.4 3513 | setprototypeof: 1.2.0 3514 | statuses: 2.0.1 3515 | toidentifier: 1.0.1 3516 | 3517 | http@0.0.1-security: {} 3518 | 3519 | human-id@4.1.1: {} 3520 | 3521 | humanize-ms@1.2.1: 3522 | dependencies: 3523 | ms: 2.1.3 3524 | 3525 | iconv-lite@0.4.24: 3526 | dependencies: 3527 | safer-buffer: 2.1.2 3528 | 3529 | ignore@5.3.1: {} 3530 | 3531 | import-fresh@3.3.0: 3532 | dependencies: 3533 | parent-module: 1.0.1 3534 | resolve-from: 4.0.0 3535 | 3536 | imurmurhash@0.1.4: {} 3537 | 3538 | inflight@1.0.6: 3539 | dependencies: 3540 | once: 1.4.0 3541 | wrappy: 1.0.2 3542 | 3543 | inherits@2.0.4: {} 3544 | 3545 | internal-slot@1.0.7: 3546 | dependencies: 3547 | es-errors: 1.3.0 3548 | hasown: 2.0.2 3549 | side-channel: 1.0.6 3550 | 3551 | ipaddr.js@1.9.1: {} 3552 | 3553 | is-array-buffer@3.0.4: 3554 | dependencies: 3555 | call-bind: 1.0.7 3556 | get-intrinsic: 1.2.4 3557 | 3558 | is-arrayish@0.3.2: 3559 | optional: true 3560 | 3561 | is-async-function@2.0.0: 3562 | dependencies: 3563 | has-tostringtag: 1.0.2 3564 | 3565 | is-bigint@1.0.4: 3566 | dependencies: 3567 | has-bigints: 1.0.2 3568 | 3569 | is-binary-path@2.1.0: 3570 | dependencies: 3571 | binary-extensions: 2.3.0 3572 | 3573 | is-boolean-object@1.1.2: 3574 | dependencies: 3575 | call-bind: 1.0.7 3576 | has-tostringtag: 1.0.2 3577 | 3578 | is-buffer@1.1.6: {} 3579 | 3580 | is-callable@1.2.7: {} 3581 | 3582 | is-core-module@2.13.1: 3583 | dependencies: 3584 | hasown: 2.0.2 3585 | 3586 | is-data-view@1.0.1: 3587 | dependencies: 3588 | is-typed-array: 1.1.13 3589 | 3590 | is-date-object@1.0.5: 3591 | dependencies: 3592 | has-tostringtag: 1.0.2 3593 | 3594 | is-extglob@2.1.1: {} 3595 | 3596 | is-finalizationregistry@1.0.2: 3597 | dependencies: 3598 | call-bind: 1.0.7 3599 | 3600 | is-fullwidth-code-point@3.0.0: {} 3601 | 3602 | is-generator-function@1.0.10: 3603 | dependencies: 3604 | has-tostringtag: 1.0.2 3605 | 3606 | is-glob@4.0.3: 3607 | dependencies: 3608 | is-extglob: 2.1.1 3609 | 3610 | is-map@2.0.3: {} 3611 | 3612 | is-negative-zero@2.0.3: {} 3613 | 3614 | is-number-object@1.0.7: 3615 | dependencies: 3616 | has-tostringtag: 1.0.2 3617 | 3618 | is-number@7.0.0: {} 3619 | 3620 | is-path-inside@3.0.3: {} 3621 | 3622 | is-regex@1.1.4: 3623 | dependencies: 3624 | call-bind: 1.0.7 3625 | has-tostringtag: 1.0.2 3626 | 3627 | is-set@2.0.3: {} 3628 | 3629 | is-shared-array-buffer@1.0.3: 3630 | dependencies: 3631 | call-bind: 1.0.7 3632 | 3633 | is-string@1.0.7: 3634 | dependencies: 3635 | has-tostringtag: 1.0.2 3636 | 3637 | is-symbol@1.0.4: 3638 | dependencies: 3639 | has-symbols: 1.0.3 3640 | 3641 | is-typed-array@1.1.13: 3642 | dependencies: 3643 | which-typed-array: 1.1.15 3644 | 3645 | is-weakmap@2.0.2: {} 3646 | 3647 | is-weakref@1.0.2: 3648 | dependencies: 3649 | call-bind: 1.0.7 3650 | 3651 | is-weakset@2.0.3: 3652 | dependencies: 3653 | call-bind: 1.0.7 3654 | get-intrinsic: 1.2.4 3655 | 3656 | isarray@1.0.0: {} 3657 | 3658 | isarray@2.0.5: {} 3659 | 3660 | isexe@2.0.0: {} 3661 | 3662 | iterator.prototype@1.1.2: 3663 | dependencies: 3664 | define-properties: 1.2.1 3665 | get-intrinsic: 1.2.4 3666 | has-symbols: 1.0.3 3667 | reflect.getprototypeof: 1.0.6 3668 | set-function-name: 2.0.2 3669 | 3670 | jackspeak@2.3.6: 3671 | dependencies: 3672 | '@isaacs/cliui': 8.0.2 3673 | optionalDependencies: 3674 | '@pkgjs/parseargs': 0.11.0 3675 | 3676 | jiti@1.21.0: {} 3677 | 3678 | js-tokens@4.0.0: {} 3679 | 3680 | js-yaml@4.1.0: 3681 | dependencies: 3682 | argparse: 2.0.1 3683 | 3684 | json-buffer@3.0.1: {} 3685 | 3686 | json-schema-traverse@0.4.1: {} 3687 | 3688 | json-stable-stringify-without-jsonify@1.0.1: {} 3689 | 3690 | json5@1.0.2: 3691 | dependencies: 3692 | minimist: 1.2.8 3693 | 3694 | jsx-ast-utils@3.3.5: 3695 | dependencies: 3696 | array-includes: 3.1.8 3697 | array.prototype.flat: 1.3.2 3698 | object.assign: 4.1.5 3699 | object.values: 1.2.0 3700 | 3701 | keyv@4.5.4: 3702 | dependencies: 3703 | json-buffer: 3.0.1 3704 | 3705 | language-subtag-registry@0.3.22: {} 3706 | 3707 | language-tags@1.0.9: 3708 | dependencies: 3709 | language-subtag-registry: 0.3.22 3710 | 3711 | levn@0.4.1: 3712 | dependencies: 3713 | prelude-ls: 1.2.1 3714 | type-check: 0.4.0 3715 | 3716 | lilconfig@2.1.0: {} 3717 | 3718 | lilconfig@3.1.1: {} 3719 | 3720 | lines-and-columns@1.2.4: {} 3721 | 3722 | locate-path@6.0.0: 3723 | dependencies: 3724 | p-locate: 5.0.0 3725 | 3726 | lodash.merge@4.6.2: {} 3727 | 3728 | long@5.2.3: {} 3729 | 3730 | loose-envify@1.4.0: 3731 | dependencies: 3732 | js-tokens: 4.0.0 3733 | 3734 | lru-cache@10.2.2: {} 3735 | 3736 | lucide-react@0.435.0(react@19.0.0-rc-100dfd7dab-20240701): 3737 | dependencies: 3738 | react: 19.0.0-rc-100dfd7dab-20240701 3739 | 3740 | md5@2.3.0: 3741 | dependencies: 3742 | charenc: 0.0.2 3743 | crypt: 0.0.2 3744 | is-buffer: 1.1.6 3745 | 3746 | media-typer@0.3.0: {} 3747 | 3748 | merge-descriptors@1.0.1: {} 3749 | 3750 | merge2@1.4.1: {} 3751 | 3752 | methods@1.1.2: {} 3753 | 3754 | micromatch@4.0.5: 3755 | dependencies: 3756 | braces: 3.0.2 3757 | picomatch: 2.3.1 3758 | 3759 | mime-db@1.52.0: {} 3760 | 3761 | mime-types@2.1.35: 3762 | dependencies: 3763 | mime-db: 1.52.0 3764 | 3765 | mime@1.6.0: {} 3766 | 3767 | minimatch@3.1.2: 3768 | dependencies: 3769 | brace-expansion: 1.1.11 3770 | 3771 | minimatch@9.0.3: 3772 | dependencies: 3773 | brace-expansion: 2.0.1 3774 | 3775 | minimatch@9.0.4: 3776 | dependencies: 3777 | brace-expansion: 2.0.1 3778 | 3779 | minimist@1.2.8: {} 3780 | 3781 | minipass@7.1.1: {} 3782 | 3783 | mkdirp@0.5.6: 3784 | dependencies: 3785 | minimist: 1.2.8 3786 | 3787 | ms@2.0.0: {} 3788 | 3789 | ms@2.1.2: {} 3790 | 3791 | ms@2.1.3: {} 3792 | 3793 | multer@1.4.5-lts.1: 3794 | dependencies: 3795 | append-field: 1.0.0 3796 | busboy: 1.6.0 3797 | concat-stream: 1.6.2 3798 | mkdirp: 0.5.6 3799 | object-assign: 4.1.1 3800 | type-is: 1.6.18 3801 | xtend: 4.0.2 3802 | 3803 | mz@2.7.0: 3804 | dependencies: 3805 | any-promise: 1.3.0 3806 | object-assign: 4.1.1 3807 | thenify-all: 1.6.0 3808 | 3809 | nanoid@3.3.7: {} 3810 | 3811 | natural-compare@1.4.0: {} 3812 | 3813 | negotiator@0.6.3: {} 3814 | 3815 | next@15.0.0-rc.0(react-dom@19.0.0-rc-100dfd7dab-20240701(react@19.0.0-rc-100dfd7dab-20240701))(react@19.0.0-rc-100dfd7dab-20240701): 3816 | dependencies: 3817 | '@next/env': 15.0.0-rc.0 3818 | '@swc/helpers': 0.5.11 3819 | busboy: 1.6.0 3820 | caniuse-lite: 1.0.30001620 3821 | graceful-fs: 4.2.11 3822 | postcss: 8.4.31 3823 | react: 19.0.0-rc-100dfd7dab-20240701 3824 | react-dom: 19.0.0-rc-100dfd7dab-20240701(react@19.0.0-rc-100dfd7dab-20240701) 3825 | styled-jsx: 5.1.3(react@19.0.0-rc-100dfd7dab-20240701) 3826 | optionalDependencies: 3827 | '@next/swc-darwin-arm64': 15.0.0-rc.0 3828 | '@next/swc-darwin-x64': 15.0.0-rc.0 3829 | '@next/swc-linux-arm64-gnu': 15.0.0-rc.0 3830 | '@next/swc-linux-arm64-musl': 15.0.0-rc.0 3831 | '@next/swc-linux-x64-gnu': 15.0.0-rc.0 3832 | '@next/swc-linux-x64-musl': 15.0.0-rc.0 3833 | '@next/swc-win32-arm64-msvc': 15.0.0-rc.0 3834 | '@next/swc-win32-ia32-msvc': 15.0.0-rc.0 3835 | '@next/swc-win32-x64-msvc': 15.0.0-rc.0 3836 | sharp: 0.33.4 3837 | transitivePeerDependencies: 3838 | - '@babel/core' 3839 | - babel-plugin-macros 3840 | 3841 | node-domexception@1.0.0: {} 3842 | 3843 | node-fetch@2.7.0: 3844 | dependencies: 3845 | whatwg-url: 5.0.0 3846 | 3847 | node-releases@2.0.14: {} 3848 | 3849 | normalize-path@3.0.0: {} 3850 | 3851 | normalize-range@0.1.2: {} 3852 | 3853 | object-assign@4.1.1: {} 3854 | 3855 | object-hash@3.0.0: {} 3856 | 3857 | object-inspect@1.13.1: {} 3858 | 3859 | object-keys@1.1.1: {} 3860 | 3861 | object.assign@4.1.5: 3862 | dependencies: 3863 | call-bind: 1.0.7 3864 | define-properties: 1.2.1 3865 | has-symbols: 1.0.3 3866 | object-keys: 1.1.1 3867 | 3868 | object.entries@1.1.8: 3869 | dependencies: 3870 | call-bind: 1.0.7 3871 | define-properties: 1.2.1 3872 | es-object-atoms: 1.0.0 3873 | 3874 | object.fromentries@2.0.8: 3875 | dependencies: 3876 | call-bind: 1.0.7 3877 | define-properties: 1.2.1 3878 | es-abstract: 1.23.3 3879 | es-object-atoms: 1.0.0 3880 | 3881 | object.groupby@1.0.3: 3882 | dependencies: 3883 | call-bind: 1.0.7 3884 | define-properties: 1.2.1 3885 | es-abstract: 1.23.3 3886 | 3887 | object.hasown@1.1.4: 3888 | dependencies: 3889 | define-properties: 1.2.1 3890 | es-abstract: 1.23.3 3891 | es-object-atoms: 1.0.0 3892 | 3893 | object.values@1.2.0: 3894 | dependencies: 3895 | call-bind: 1.0.7 3896 | define-properties: 1.2.1 3897 | es-object-atoms: 1.0.0 3898 | 3899 | on-finished@2.4.1: 3900 | dependencies: 3901 | ee-first: 1.1.1 3902 | 3903 | once@1.4.0: 3904 | dependencies: 3905 | wrappy: 1.0.2 3906 | 3907 | onnxruntime-common@1.18.0: {} 3908 | 3909 | onnxruntime-web@1.18.0: 3910 | dependencies: 3911 | flatbuffers: 1.12.0 3912 | guid-typescript: 1.0.9 3913 | long: 5.2.3 3914 | onnxruntime-common: 1.18.0 3915 | platform: 1.3.6 3916 | protobufjs: 7.3.2 3917 | 3918 | optionator@0.9.4: 3919 | dependencies: 3920 | deep-is: 0.1.4 3921 | fast-levenshtein: 2.0.6 3922 | levn: 0.4.1 3923 | prelude-ls: 1.2.1 3924 | type-check: 0.4.0 3925 | word-wrap: 1.2.5 3926 | 3927 | p-limit@3.1.0: 3928 | dependencies: 3929 | yocto-queue: 0.1.0 3930 | 3931 | p-locate@5.0.0: 3932 | dependencies: 3933 | p-limit: 3.1.0 3934 | 3935 | parent-module@1.0.1: 3936 | dependencies: 3937 | callsites: 3.1.0 3938 | 3939 | parseurl@1.3.3: {} 3940 | 3941 | partysocket@1.0.2: 3942 | dependencies: 3943 | event-target-shim: 6.0.2 3944 | 3945 | path-exists@4.0.0: {} 3946 | 3947 | path-is-absolute@1.0.1: {} 3948 | 3949 | path-key@3.1.1: {} 3950 | 3951 | path-parse@1.0.7: {} 3952 | 3953 | path-scurry@1.11.1: 3954 | dependencies: 3955 | lru-cache: 10.2.2 3956 | minipass: 7.1.1 3957 | 3958 | path-to-regexp@0.1.7: {} 3959 | 3960 | path-type@4.0.0: {} 3961 | 3962 | picocolors@1.0.1: {} 3963 | 3964 | picomatch@2.3.1: {} 3965 | 3966 | pify@2.3.0: {} 3967 | 3968 | pirates@4.0.6: {} 3969 | 3970 | platform@1.3.6: {} 3971 | 3972 | possible-typed-array-names@1.0.0: {} 3973 | 3974 | postcss-import@15.1.0(postcss@8.4.38): 3975 | dependencies: 3976 | postcss: 8.4.38 3977 | postcss-value-parser: 4.2.0 3978 | read-cache: 1.0.0 3979 | resolve: 1.22.8 3980 | 3981 | postcss-js@4.0.1(postcss@8.4.38): 3982 | dependencies: 3983 | camelcase-css: 2.0.1 3984 | postcss: 8.4.38 3985 | 3986 | postcss-load-config@4.0.2(postcss@8.4.38): 3987 | dependencies: 3988 | lilconfig: 3.1.1 3989 | yaml: 2.4.2 3990 | optionalDependencies: 3991 | postcss: 8.4.38 3992 | 3993 | postcss-nested@6.0.1(postcss@8.4.38): 3994 | dependencies: 3995 | postcss: 8.4.38 3996 | postcss-selector-parser: 6.0.16 3997 | 3998 | postcss-selector-parser@6.0.16: 3999 | dependencies: 4000 | cssesc: 3.0.0 4001 | util-deprecate: 1.0.2 4002 | 4003 | postcss-value-parser@4.2.0: {} 4004 | 4005 | postcss@8.4.31: 4006 | dependencies: 4007 | nanoid: 3.3.7 4008 | picocolors: 1.0.1 4009 | source-map-js: 1.2.0 4010 | 4011 | postcss@8.4.38: 4012 | dependencies: 4013 | nanoid: 3.3.7 4014 | picocolors: 1.0.1 4015 | source-map-js: 1.2.0 4016 | 4017 | prelude-ls@1.2.1: {} 4018 | 4019 | process-nextick-args@2.0.1: {} 4020 | 4021 | prop-types@15.8.1: 4022 | dependencies: 4023 | loose-envify: 1.4.0 4024 | object-assign: 4.1.1 4025 | react-is: 16.13.1 4026 | 4027 | protobufjs@7.3.2: 4028 | dependencies: 4029 | '@protobufjs/aspromise': 1.1.2 4030 | '@protobufjs/base64': 1.1.2 4031 | '@protobufjs/codegen': 2.0.4 4032 | '@protobufjs/eventemitter': 1.1.0 4033 | '@protobufjs/fetch': 1.1.0 4034 | '@protobufjs/float': 1.0.2 4035 | '@protobufjs/inquire': 1.1.0 4036 | '@protobufjs/path': 1.1.2 4037 | '@protobufjs/pool': 1.1.0 4038 | '@protobufjs/utf8': 1.1.0 4039 | '@types/node': 20.12.12 4040 | long: 5.2.3 4041 | 4042 | proxy-addr@2.0.7: 4043 | dependencies: 4044 | forwarded: 0.2.0 4045 | ipaddr.js: 1.9.1 4046 | 4047 | punycode@2.3.1: {} 4048 | 4049 | qs@6.11.0: 4050 | dependencies: 4051 | side-channel: 1.0.6 4052 | 4053 | queue-microtask@1.2.3: {} 4054 | 4055 | range-parser@1.2.1: {} 4056 | 4057 | raw-body@2.5.2: 4058 | dependencies: 4059 | bytes: 3.1.2 4060 | http-errors: 2.0.0 4061 | iconv-lite: 0.4.24 4062 | unpipe: 1.0.0 4063 | 4064 | react-dom@19.0.0-rc-100dfd7dab-20240701(react@19.0.0-rc-100dfd7dab-20240701): 4065 | dependencies: 4066 | react: 19.0.0-rc-100dfd7dab-20240701 4067 | scheduler: 0.25.0-rc-100dfd7dab-20240701 4068 | 4069 | react-is@16.13.1: {} 4070 | 4071 | react@19.0.0-rc-100dfd7dab-20240701: {} 4072 | 4073 | read-cache@1.0.0: 4074 | dependencies: 4075 | pify: 2.3.0 4076 | 4077 | readable-stream@2.3.8: 4078 | dependencies: 4079 | core-util-is: 1.0.3 4080 | inherits: 2.0.4 4081 | isarray: 1.0.0 4082 | process-nextick-args: 2.0.1 4083 | safe-buffer: 5.1.2 4084 | string_decoder: 1.1.1 4085 | util-deprecate: 1.0.2 4086 | 4087 | readdirp@3.6.0: 4088 | dependencies: 4089 | picomatch: 2.3.1 4090 | 4091 | reflect.getprototypeof@1.0.6: 4092 | dependencies: 4093 | call-bind: 1.0.7 4094 | define-properties: 1.2.1 4095 | es-abstract: 1.23.3 4096 | es-errors: 1.3.0 4097 | get-intrinsic: 1.2.4 4098 | globalthis: 1.0.4 4099 | which-builtin-type: 1.1.3 4100 | 4101 | regenerator-runtime@0.14.1: {} 4102 | 4103 | regexp.prototype.flags@1.5.2: 4104 | dependencies: 4105 | call-bind: 1.0.7 4106 | define-properties: 1.2.1 4107 | es-errors: 1.3.0 4108 | set-function-name: 2.0.2 4109 | 4110 | resolve-from@4.0.0: {} 4111 | 4112 | resolve-pkg-maps@1.0.0: {} 4113 | 4114 | resolve@1.22.8: 4115 | dependencies: 4116 | is-core-module: 2.13.1 4117 | path-parse: 1.0.7 4118 | supports-preserve-symlinks-flag: 1.0.0 4119 | 4120 | resolve@2.0.0-next.5: 4121 | dependencies: 4122 | is-core-module: 2.13.1 4123 | path-parse: 1.0.7 4124 | supports-preserve-symlinks-flag: 1.0.0 4125 | 4126 | reusify@1.0.4: {} 4127 | 4128 | rimraf@3.0.2: 4129 | dependencies: 4130 | glob: 7.2.3 4131 | 4132 | run-parallel@1.2.0: 4133 | dependencies: 4134 | queue-microtask: 1.2.3 4135 | 4136 | safe-array-concat@1.1.2: 4137 | dependencies: 4138 | call-bind: 1.0.7 4139 | get-intrinsic: 1.2.4 4140 | has-symbols: 1.0.3 4141 | isarray: 2.0.5 4142 | 4143 | safe-buffer@5.1.2: {} 4144 | 4145 | safe-buffer@5.2.1: {} 4146 | 4147 | safe-regex-test@1.0.3: 4148 | dependencies: 4149 | call-bind: 1.0.7 4150 | es-errors: 1.3.0 4151 | is-regex: 1.1.4 4152 | 4153 | safer-buffer@2.1.2: {} 4154 | 4155 | scheduler@0.25.0-rc-100dfd7dab-20240701: {} 4156 | 4157 | semver@6.3.1: {} 4158 | 4159 | semver@7.6.2: {} 4160 | 4161 | send@0.18.0: 4162 | dependencies: 4163 | debug: 2.6.9 4164 | depd: 2.0.0 4165 | destroy: 1.2.0 4166 | encodeurl: 1.0.2 4167 | escape-html: 1.0.3 4168 | etag: 1.8.1 4169 | fresh: 0.5.2 4170 | http-errors: 2.0.0 4171 | mime: 1.6.0 4172 | ms: 2.1.3 4173 | on-finished: 2.4.1 4174 | range-parser: 1.2.1 4175 | statuses: 2.0.1 4176 | transitivePeerDependencies: 4177 | - supports-color 4178 | 4179 | serve-static@1.15.0: 4180 | dependencies: 4181 | encodeurl: 1.0.2 4182 | escape-html: 1.0.3 4183 | parseurl: 1.3.3 4184 | send: 0.18.0 4185 | transitivePeerDependencies: 4186 | - supports-color 4187 | 4188 | server-only@0.0.1: {} 4189 | 4190 | set-function-length@1.2.2: 4191 | dependencies: 4192 | define-data-property: 1.1.4 4193 | es-errors: 1.3.0 4194 | function-bind: 1.1.2 4195 | get-intrinsic: 1.2.4 4196 | gopd: 1.0.1 4197 | has-property-descriptors: 1.0.2 4198 | 4199 | set-function-name@2.0.2: 4200 | dependencies: 4201 | define-data-property: 1.1.4 4202 | es-errors: 1.3.0 4203 | functions-have-names: 1.2.3 4204 | has-property-descriptors: 1.0.2 4205 | 4206 | setprototypeof@1.2.0: {} 4207 | 4208 | sharp@0.33.4: 4209 | dependencies: 4210 | color: 4.2.3 4211 | detect-libc: 2.0.3 4212 | semver: 7.6.2 4213 | optionalDependencies: 4214 | '@img/sharp-darwin-arm64': 0.33.4 4215 | '@img/sharp-darwin-x64': 0.33.4 4216 | '@img/sharp-libvips-darwin-arm64': 1.0.2 4217 | '@img/sharp-libvips-darwin-x64': 1.0.2 4218 | '@img/sharp-libvips-linux-arm': 1.0.2 4219 | '@img/sharp-libvips-linux-arm64': 1.0.2 4220 | '@img/sharp-libvips-linux-s390x': 1.0.2 4221 | '@img/sharp-libvips-linux-x64': 1.0.2 4222 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 4223 | '@img/sharp-libvips-linuxmusl-x64': 1.0.2 4224 | '@img/sharp-linux-arm': 0.33.4 4225 | '@img/sharp-linux-arm64': 0.33.4 4226 | '@img/sharp-linux-s390x': 0.33.4 4227 | '@img/sharp-linux-x64': 0.33.4 4228 | '@img/sharp-linuxmusl-arm64': 0.33.4 4229 | '@img/sharp-linuxmusl-x64': 0.33.4 4230 | '@img/sharp-wasm32': 0.33.4 4231 | '@img/sharp-win32-ia32': 0.33.4 4232 | '@img/sharp-win32-x64': 0.33.4 4233 | optional: true 4234 | 4235 | shebang-command@2.0.0: 4236 | dependencies: 4237 | shebang-regex: 3.0.0 4238 | 4239 | shebang-regex@3.0.0: {} 4240 | 4241 | side-channel@1.0.6: 4242 | dependencies: 4243 | call-bind: 1.0.7 4244 | es-errors: 1.3.0 4245 | get-intrinsic: 1.2.4 4246 | object-inspect: 1.13.1 4247 | 4248 | signal-exit@4.1.0: {} 4249 | 4250 | simple-swizzle@0.2.2: 4251 | dependencies: 4252 | is-arrayish: 0.3.2 4253 | optional: true 4254 | 4255 | slash@3.0.0: {} 4256 | 4257 | sonner@1.4.41(react-dom@19.0.0-rc-100dfd7dab-20240701(react@19.0.0-rc-100dfd7dab-20240701))(react@19.0.0-rc-100dfd7dab-20240701): 4258 | dependencies: 4259 | react: 19.0.0-rc-100dfd7dab-20240701 4260 | react-dom: 19.0.0-rc-100dfd7dab-20240701(react@19.0.0-rc-100dfd7dab-20240701) 4261 | 4262 | source-map-js@1.2.0: {} 4263 | 4264 | statuses@2.0.1: {} 4265 | 4266 | streamsearch@1.1.0: {} 4267 | 4268 | string-width@4.2.3: 4269 | dependencies: 4270 | emoji-regex: 8.0.0 4271 | is-fullwidth-code-point: 3.0.0 4272 | strip-ansi: 6.0.1 4273 | 4274 | string-width@5.1.2: 4275 | dependencies: 4276 | eastasianwidth: 0.2.0 4277 | emoji-regex: 9.2.2 4278 | strip-ansi: 7.1.0 4279 | 4280 | string.prototype.matchall@4.0.11: 4281 | dependencies: 4282 | call-bind: 1.0.7 4283 | define-properties: 1.2.1 4284 | es-abstract: 1.23.3 4285 | es-errors: 1.3.0 4286 | es-object-atoms: 1.0.0 4287 | get-intrinsic: 1.2.4 4288 | gopd: 1.0.1 4289 | has-symbols: 1.0.3 4290 | internal-slot: 1.0.7 4291 | regexp.prototype.flags: 1.5.2 4292 | set-function-name: 2.0.2 4293 | side-channel: 1.0.6 4294 | 4295 | string.prototype.trim@1.2.9: 4296 | dependencies: 4297 | call-bind: 1.0.7 4298 | define-properties: 1.2.1 4299 | es-abstract: 1.23.3 4300 | es-object-atoms: 1.0.0 4301 | 4302 | string.prototype.trimend@1.0.8: 4303 | dependencies: 4304 | call-bind: 1.0.7 4305 | define-properties: 1.2.1 4306 | es-object-atoms: 1.0.0 4307 | 4308 | string.prototype.trimstart@1.0.8: 4309 | dependencies: 4310 | call-bind: 1.0.7 4311 | define-properties: 1.2.1 4312 | es-object-atoms: 1.0.0 4313 | 4314 | string_decoder@1.1.1: 4315 | dependencies: 4316 | safe-buffer: 5.1.2 4317 | 4318 | strip-ansi@6.0.1: 4319 | dependencies: 4320 | ansi-regex: 5.0.1 4321 | 4322 | strip-ansi@7.1.0: 4323 | dependencies: 4324 | ansi-regex: 6.0.1 4325 | 4326 | strip-bom@3.0.0: {} 4327 | 4328 | strip-json-comments@3.1.1: {} 4329 | 4330 | styled-jsx@5.1.3(react@19.0.0-rc-100dfd7dab-20240701): 4331 | dependencies: 4332 | client-only: 0.0.1 4333 | react: 19.0.0-rc-100dfd7dab-20240701 4334 | 4335 | sucrase@3.35.0: 4336 | dependencies: 4337 | '@jridgewell/gen-mapping': 0.3.5 4338 | commander: 4.1.1 4339 | glob: 10.3.15 4340 | lines-and-columns: 1.2.4 4341 | mz: 2.7.0 4342 | pirates: 4.0.6 4343 | ts-interface-checker: 0.1.13 4344 | 4345 | supports-color@7.2.0: 4346 | dependencies: 4347 | has-flag: 4.0.0 4348 | 4349 | supports-preserve-symlinks-flag@1.0.0: {} 4350 | 4351 | tailwindcss@3.4.3: 4352 | dependencies: 4353 | '@alloc/quick-lru': 5.2.0 4354 | arg: 5.0.2 4355 | chokidar: 3.6.0 4356 | didyoumean: 1.2.2 4357 | dlv: 1.1.3 4358 | fast-glob: 3.3.2 4359 | glob-parent: 6.0.2 4360 | is-glob: 4.0.3 4361 | jiti: 1.21.0 4362 | lilconfig: 2.1.0 4363 | micromatch: 4.0.5 4364 | normalize-path: 3.0.0 4365 | object-hash: 3.0.0 4366 | picocolors: 1.0.1 4367 | postcss: 8.4.38 4368 | postcss-import: 15.1.0(postcss@8.4.38) 4369 | postcss-js: 4.0.1(postcss@8.4.38) 4370 | postcss-load-config: 4.0.2(postcss@8.4.38) 4371 | postcss-nested: 6.0.1(postcss@8.4.38) 4372 | postcss-selector-parser: 6.0.16 4373 | resolve: 1.22.8 4374 | sucrase: 3.35.0 4375 | transitivePeerDependencies: 4376 | - ts-node 4377 | 4378 | tapable@2.2.1: {} 4379 | 4380 | text-table@0.2.0: {} 4381 | 4382 | thenify-all@1.6.0: 4383 | dependencies: 4384 | thenify: 3.3.1 4385 | 4386 | thenify@3.3.1: 4387 | dependencies: 4388 | any-promise: 1.3.0 4389 | 4390 | to-regex-range@5.0.1: 4391 | dependencies: 4392 | is-number: 7.0.0 4393 | 4394 | toidentifier@1.0.1: {} 4395 | 4396 | tr46@0.0.3: {} 4397 | 4398 | ts-api-utils@1.3.0(typescript@5.4.5): 4399 | dependencies: 4400 | typescript: 5.4.5 4401 | 4402 | ts-interface-checker@0.1.13: {} 4403 | 4404 | tsconfig-paths@3.15.0: 4405 | dependencies: 4406 | '@types/json5': 0.0.29 4407 | json5: 1.0.2 4408 | minimist: 1.2.8 4409 | strip-bom: 3.0.0 4410 | 4411 | tslib@2.6.2: {} 4412 | 4413 | type-check@0.4.0: 4414 | dependencies: 4415 | prelude-ls: 1.2.1 4416 | 4417 | type-fest@0.20.2: {} 4418 | 4419 | type-is@1.6.18: 4420 | dependencies: 4421 | media-typer: 0.3.0 4422 | mime-types: 2.1.35 4423 | 4424 | typed-array-buffer@1.0.2: 4425 | dependencies: 4426 | call-bind: 1.0.7 4427 | es-errors: 1.3.0 4428 | is-typed-array: 1.1.13 4429 | 4430 | typed-array-byte-length@1.0.1: 4431 | dependencies: 4432 | call-bind: 1.0.7 4433 | for-each: 0.3.3 4434 | gopd: 1.0.1 4435 | has-proto: 1.0.3 4436 | is-typed-array: 1.1.13 4437 | 4438 | typed-array-byte-offset@1.0.2: 4439 | dependencies: 4440 | available-typed-arrays: 1.0.7 4441 | call-bind: 1.0.7 4442 | for-each: 0.3.3 4443 | gopd: 1.0.1 4444 | has-proto: 1.0.3 4445 | is-typed-array: 1.1.13 4446 | 4447 | typed-array-length@1.0.6: 4448 | dependencies: 4449 | call-bind: 1.0.7 4450 | for-each: 0.3.3 4451 | gopd: 1.0.1 4452 | has-proto: 1.0.3 4453 | is-typed-array: 1.1.13 4454 | possible-typed-array-names: 1.0.0 4455 | 4456 | typedarray@0.0.6: {} 4457 | 4458 | typescript@5.4.5: {} 4459 | 4460 | unbox-primitive@1.0.2: 4461 | dependencies: 4462 | call-bind: 1.0.7 4463 | has-bigints: 1.0.2 4464 | has-symbols: 1.0.3 4465 | which-boxed-primitive: 1.0.2 4466 | 4467 | undici-types@5.26.5: {} 4468 | 4469 | unpipe@1.0.0: {} 4470 | 4471 | update-browserslist-db@1.0.16(browserslist@4.23.1): 4472 | dependencies: 4473 | browserslist: 4.23.1 4474 | escalade: 3.1.2 4475 | picocolors: 1.0.1 4476 | 4477 | uri-js@4.4.1: 4478 | dependencies: 4479 | punycode: 2.3.1 4480 | 4481 | util-deprecate@1.0.2: {} 4482 | 4483 | utils-merge@1.0.1: {} 4484 | 4485 | vary@1.1.2: {} 4486 | 4487 | web-streams-polyfill@3.3.3: {} 4488 | 4489 | web-streams-polyfill@4.0.0-beta.3: {} 4490 | 4491 | webidl-conversions@3.0.1: {} 4492 | 4493 | whatwg-url@5.0.0: 4494 | dependencies: 4495 | tr46: 0.0.3 4496 | webidl-conversions: 3.0.1 4497 | 4498 | which-boxed-primitive@1.0.2: 4499 | dependencies: 4500 | is-bigint: 1.0.4 4501 | is-boolean-object: 1.1.2 4502 | is-number-object: 1.0.7 4503 | is-string: 1.0.7 4504 | is-symbol: 1.0.4 4505 | 4506 | which-builtin-type@1.1.3: 4507 | dependencies: 4508 | function.prototype.name: 1.1.6 4509 | has-tostringtag: 1.0.2 4510 | is-async-function: 2.0.0 4511 | is-date-object: 1.0.5 4512 | is-finalizationregistry: 1.0.2 4513 | is-generator-function: 1.0.10 4514 | is-regex: 1.1.4 4515 | is-weakref: 1.0.2 4516 | isarray: 2.0.5 4517 | which-boxed-primitive: 1.0.2 4518 | which-collection: 1.0.2 4519 | which-typed-array: 1.1.15 4520 | 4521 | which-collection@1.0.2: 4522 | dependencies: 4523 | is-map: 2.0.3 4524 | is-set: 2.0.3 4525 | is-weakmap: 2.0.2 4526 | is-weakset: 2.0.3 4527 | 4528 | which-typed-array@1.1.15: 4529 | dependencies: 4530 | available-typed-arrays: 1.0.7 4531 | call-bind: 1.0.7 4532 | for-each: 0.3.3 4533 | gopd: 1.0.1 4534 | has-tostringtag: 1.0.2 4535 | 4536 | which@2.0.2: 4537 | dependencies: 4538 | isexe: 2.0.0 4539 | 4540 | word-wrap@1.2.5: {} 4541 | 4542 | wrap-ansi@7.0.0: 4543 | dependencies: 4544 | ansi-styles: 4.3.0 4545 | string-width: 4.2.3 4546 | strip-ansi: 6.0.1 4547 | 4548 | wrap-ansi@8.1.0: 4549 | dependencies: 4550 | ansi-styles: 6.2.1 4551 | string-width: 5.1.2 4552 | strip-ansi: 7.1.0 4553 | 4554 | wrappy@1.0.2: {} 4555 | 4556 | ws@8.18.0: {} 4557 | 4558 | xtend@4.0.2: {} 4559 | 4560 | yaml@2.4.2: {} 4561 | 4562 | yocto-queue@0.1.0: {} 4563 | 4564 | zod-form-data@2.0.2(zod@3.23.8): 4565 | dependencies: 4566 | zod: 3.23.8 4567 | 4568 | zod@3.23.8: {} 4569 | -------------------------------------------------------------------------------- /PhonePal/postcss.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('postcss-load-config').Config} */ 2 | const config = { 3 | plugins: { 4 | tailwindcss: {}, 5 | autoprefixer: {}, 6 | }, 7 | }; 8 | 9 | export default config; 10 | -------------------------------------------------------------------------------- /PhonePal/server.mjs: -------------------------------------------------------------------------------- 1 | import { WebSocketServer } from 'ws'; 2 | 3 | import http from 'http'; 4 | import express from 'express'; 5 | import multer from 'multer'; 6 | import FormData from 'form-data'; 7 | import fetch from 'node-fetch'; 8 | import cors from 'cors'; 9 | import { Groq } from 'groq-sdk'; 10 | import humanId from 'human-id'; 11 | import Cartesia from "@cartesia/cartesia-js"; 12 | import next from 'next'; 13 | import dotenv from 'dotenv'; 14 | 15 | const dev = process.env.NODE_ENV !== 'production'; 16 | const nextApp = next({ dev }); 17 | const nextHandler = nextApp.getRequestHandler(); 18 | 19 | nextApp.prepare().then(() => { 20 | const app = express(); 21 | 22 | const server = http.createServer(app); 23 | const wss = new WebSocketServer({ server }); 24 | 25 | app.use(cors({ 26 | origin: '*', 27 | methods: ['GET', 'POST', 'OPTIONS'], 28 | allowedHeaders: ['Content-Type', 'Authorization'] 29 | })); 30 | 31 | const upload = multer({ storage: multer.memoryStorage() }); 32 | 33 | dotenv.config({ path: '.env.local' }); 34 | const groqClient = new Groq({ apiKey: process.env.GROQ_API_KEY }); 35 | 36 | const calls = new Map(); 37 | const clientLanguages = new Map(); 38 | 39 | wss.on('connection', (ws) => { 40 | 41 | const clientId = Date.now().toString(); 42 | console.log("CLIENT ID : ", clientId) 43 | clientLanguages.set(clientId, 'en'); 44 | 45 | ws.on('message', (message) => { 46 | try { 47 | const data = JSON.parse(message); 48 | 49 | if (data.type === 'createCall') { 50 | const callId = humanId.humanId({ 51 | separator: '-', 52 | capitalize: false 53 | }); 54 | calls.set(callId, new Set([ws])); 55 | ws.callId = callId; 56 | ws.send(JSON.stringify({ type: 'callCreated', callId })); 57 | } else if (data.type === 'joinCall') { 58 | const { callId } = data; 59 | if (calls.has(callId)) { 60 | calls.get(callId).add(ws); 61 | ws.callId = callId; 62 | ws.send(JSON.stringify({ type: 'callJoined', callId })); 63 | } else { 64 | ws.send(JSON.stringify({ type: 'error', message: 'Call not found' })); 65 | } 66 | } else if (data.type === 'language') { 67 | ws.language = data.language; 68 | // clients.get(clientId).language = data.language; 69 | clientLanguages.set(clientId, data.language); 70 | broadcastLanguage(ws); 71 | console.log(`Language updated for client ${clientId} in call ${ws.callId}: ${data.language}`); 72 | } else if (data.type === 'voiceId') { 73 | ws.voiceId = data.voiceId; 74 | } 75 | } catch (error) { 76 | console.error('Error parsing message:', error); 77 | } 78 | }); 79 | 80 | ws.on('close', () => { 81 | if (ws.callId && calls.has(ws.callId)) { 82 | calls.get(ws.callId).delete(ws); 83 | if (calls.get(ws.callId).size === 0) { 84 | calls.delete(ws.callId); 85 | } 86 | } 87 | clientLanguages.delete(ws.clientId); 88 | }); 89 | }); 90 | 91 | function broadcastLanguage(sender) { 92 | if (sender.callId && calls.has(sender.callId)) { 93 | console.log(`Broadcasting language update in call ${sender.callId}`); 94 | calls.get(sender.callId).forEach(currentClient => { 95 | console.log("sender", sender.callId) 96 | console.log("client", currentClient.callId) 97 | if (currentClient !== sender && currentClient.readyState === WebSocket.OPEN) { 98 | currentClient.send(JSON.stringify({ 99 | type: 'language', 100 | language: sender.language 101 | })); 102 | } 103 | }); 104 | } 105 | } 106 | 107 | // Main function which transcribes and translates and sends data 108 | app.post('/process-audio', upload.single('audio'), async (req, res) => { 109 | try { 110 | const voiceId = req.body.voiceId || "default-voice-id"; 111 | const receiverLanguage = req.body.receiverLanguage; 112 | const callId = req.body.callId; 113 | 114 | const transcription = await getTranscript(req); 115 | console.log("TRANSCRIPTION", transcription); 116 | 117 | const translation = await translateText(transcription, receiverLanguage); 118 | console.log("TRANSLATION", translation); 119 | 120 | if (calls.has(callId)) { 121 | calls.get(callId).forEach(async (client) => { 122 | if (client.readyState === WebSocket.OPEN && client.language === receiverLanguage) { 123 | client.send(JSON.stringify({ 124 | type: 'translation', 125 | translation: translation, 126 | voiceId: voiceId, 127 | language: receiverLanguage 128 | })); 129 | } 130 | }); 131 | } 132 | 133 | res.status(200).json({ success: true, translation: translation }); 134 | } catch (error) { 135 | console.error('Error processing audio:', error); 136 | res.status(500).json({ error: 'Failed to process audio' }); 137 | } 138 | }); 139 | 140 | // Handles creating voice clone : generates embedding, localizes embedding, then creates a voices 141 | app.post('/clone-voice', upload.single('voiceSample'), async (req, res) => { 142 | try { 143 | const form = new FormData(); 144 | form.append('clip', req.file.buffer, { 145 | filename: 'voice_sample.wav', 146 | contentType: req.file.mimetype, 147 | }); 148 | 149 | // Clone the voice 150 | const cloneResponse = await fetch('https://api.cartesia.ai/voices/clone/clip', { 151 | method: 'POST', 152 | headers: { 153 | 'Cartesia-Version': '2024-06-10', 154 | 'X-API-Key': process.env.NEXT_PUBLIC_CARTESIA_API_KEY, 155 | ...form.getHeaders() 156 | }, 157 | body: form 158 | }); 159 | 160 | if (!cloneResponse.ok) { 161 | throw new Error(`Failed to clone voice: ${await cloneResponse.text()}`); 162 | } 163 | 164 | const clonedVoice = await cloneResponse.json(); 165 | 166 | // Localize the voice 167 | const localizeResponse = await fetch('https://api.cartesia.ai/voices/localize', { 168 | method: 'POST', 169 | headers: { 170 | 'Cartesia-Version': '2024-06-10', 171 | 'X-API-Key': process.env.NEXT_PUBLIC_CARTESIA_API_KEY, 172 | 'Content-Type': 'application/json' 173 | }, 174 | body: JSON.stringify({ 175 | embedding: clonedVoice.embedding, 176 | language: req.body.receiverLanguage, 177 | original_speaker_gender: req.body.gender 178 | }) 179 | }); 180 | 181 | if (!localizeResponse.ok) { 182 | throw new Error(`Failed to localize voice: ${await localizeResponse.text()}`); 183 | } 184 | 185 | const localizedVoice = await localizeResponse.json(); 186 | 187 | // Create a voice with the localized embedding 188 | const createVoiceResponse = await fetch('https://api.cartesia.ai/voices', { 189 | method: 'POST', 190 | headers: { 191 | 'Cartesia-Version': '2024-06-10', 192 | 'X-API-Key': process.env.NEXT_PUBLIC_CARTESIA_API_KEY, 193 | 'Content-Type': 'application/json' 194 | }, 195 | body: JSON.stringify({ 196 | name: `Localized Voice ${Date.now()}`, 197 | description: "A voice cloned and localized from an audio sample.", 198 | embedding: localizedVoice.embedding, 199 | language: req.body.receiverLanguage, 200 | }) 201 | }); 202 | 203 | if (!createVoiceResponse.ok) { 204 | throw new Error(`Failed to create voice: ${await createVoiceResponse.text()}`); 205 | } 206 | 207 | const createdVoice = await createVoiceResponse.json(); 208 | res.json({ voiceId: createdVoice.id }); 209 | } catch (error) { 210 | console.error('Error cloning voice:', error); 211 | res.status(500).json({ error: 'Failed to clone voice', details: error.message }); 212 | } 213 | }); 214 | 215 | // Helper function which transcribes audio of the sender 216 | async function getTranscript(rawAudio) { 217 | const form = new FormData(); 218 | form.append('file', rawAudio.file.buffer, { 219 | filename: 'audio.webm', 220 | contentType: rawAudio.file.mimetype, 221 | }); 222 | form.append('model', 'whisper-large-v3'); 223 | form.append('temperature', '0'); 224 | form.append('response_format', 'json'); 225 | 226 | const response = await fetch('https://api.groq.com/openai/v1/audio/transcriptions', { 227 | method: 'POST', 228 | headers: { 229 | 'Authorization': `Bearer ${process.env.GROQ_API_KEY}`, 230 | ...form.getHeaders() 231 | }, 232 | body: form 233 | }); 234 | 235 | if (!response.ok) { 236 | const errorData = await response.json(); 237 | throw new Error(JSON.stringify(errorData)); 238 | } 239 | 240 | const data = await response.json(); 241 | return data.text.trim() || null; 242 | 243 | } 244 | 245 | // Helper function which translates text into the target language of the receiver 246 | async function translateText(text, targetLanguage) { 247 | const completion = await groqClient.chat.completions.create({ 248 | messages: [ 249 | { 250 | role: "system", 251 | content: `You are a TRANSLATOR. ONLY TRANSLATE THE INPUT TEXT INTO THE TARGET LANGUAGE. DO NOT INCLUDE ANYTHING BUT THE TRANSLATION`, 252 | }, 253 | { 254 | role: "user", 255 | content: `Translate the following sentence into ${targetLanguage}; ONLY INCLUDE TRANSLATION, NOTHING ELSE: ${text}`, 256 | }, 257 | ], 258 | model: "llama3-8b-8192", 259 | temperature: 0.5, 260 | max_tokens: 1024, 261 | }); 262 | 263 | return completion.choices[0].message.content; 264 | } 265 | 266 | const PORT = 3010; 267 | server.listen(PORT, '0.0.0.0', () => { 268 | console.log(`Server is running on port ${PORT}`); 269 | }); 270 | 271 | app.all('*', (req, res) => nextHandler(req, res)); 272 | 273 | process.on('SIGINT', () => { 274 | console.log('SIGINT signal received: closing HTTP server') 275 | server.close(() => { 276 | console.log('HTTP server closed') 277 | process.exit(0) 278 | }) 279 | }) 280 | 281 | process.on('SIGTERM', () => { 282 | console.log('SIGTERM signal received: closing HTTP server') 283 | server.close(() => { 284 | console.log('HTTP server closed') 285 | process.exit(0) 286 | }) 287 | }) 288 | 289 | }); 290 | -------------------------------------------------------------------------------- /PhonePal/tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from "tailwindcss"; 2 | 3 | const config: Config = { 4 | content: ["./app/**/*.{js,ts,jsx,tsx,mdx}"], 5 | plugins: [], 6 | theme: { 7 | extend: { 8 | colors: { 9 | neutral: { 10 | 200: "#F0F0F0", 11 | 300: "#D1D1D1", 12 | }, 13 | }, 14 | fontFamily: { 15 | sans: ["var(--font-geist-sans)"], 16 | mono: ["var(--font-geist-mono)"], 17 | }, 18 | }, 19 | }, 20 | future: { 21 | hoverOnlyWhenSupported: true, 22 | }, 23 | }; 24 | export default config; 25 | -------------------------------------------------------------------------------- /PhonePal/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": [ 4 | "dom", 5 | "dom.iterable", 6 | "esnext" 7 | ], 8 | "allowJs": true, 9 | "skipLibCheck": true, 10 | "strict": true, 11 | "noEmit": true, 12 | "esModuleInterop": true, 13 | "module": "esnext", 14 | "moduleResolution": "bundler", 15 | "resolveJsonModule": true, 16 | "isolatedModules": true, 17 | "jsx": "preserve", 18 | "incremental": true, 19 | "plugins": [ 20 | { 21 | "name": "next" 22 | } 23 | ], 24 | "paths": { 25 | "@/*": [ 26 | "./app/*" 27 | ] 28 | }, 29 | "target": "ES2017" 30 | }, 31 | "include": [ 32 | "next-env.d.ts", 33 | "**/*.ts", 34 | "**/*.tsx", 35 | ".next/types/**/*.ts" 36 | ], 37 | "exclude": [ 38 | "node_modules" 39 | ] 40 | } 41 | -------------------------------------------------------------------------------- /PhonePal/vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "regions": ["sfo1"] 3 | } 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | ![Dev Showcase](https://github.com/user-attachments/assets/be229e40-fc83-4d56-bc10-cf2e0d0d102b) 21 | 22 | Welcome to the Cartesia Developer Showcase! This repository highlights innovative projects built using Sonic, our cutting edge text-to-speech model. Explore the many creative ways developers are leveraging Cartesia's API today. 23 | 24 | ## Table of Contents 25 | 26 | - [About Cartesia](#about-cartesia) 27 | - [Featured Projects](#featured-projects) 28 | - [Getting Started with Cartesia](#getting-started-with-cartesia) 29 | - [Contributing](#contributing) 30 | - [Resources](#resources) 31 | 32 | ## About Cartesia 33 | Cartesia is a leading provider of real-time audio models and offers the fastest, ultra-realistic generative voice API with Sonic. 34 | 35 | ## Featured Projects 36 | Here are some exciting projects users have already submitted: 37 | 38 | - [PhonePal](https://github.com/cartesia-ai/dev-showcase/tree/main/PhonePal): A real-time call translator so you can eliminate language barriers when talking to anyone over the web 39 | - [StudyPal](https://github.com/cartesia-ai/dev-showcase/tree/main/studypal): A buddy that helps you learn the most important information from research papers. 40 | 41 | Each project folder contains its own README with setup instructions and code samples. 42 | 43 | ## Getting Started with Cartesia 44 | To start building with Cartesia: 45 | 46 | 1. Sign up for a Cartesia account at [https://www.cartesia.ai](https://cartesia.ai/) 47 | 48 | 2. Obtain your API key from the developer dashboard 49 | 50 | 3. Install the Cartesia SDK for your preferred programming language 51 | 52 | 4. Check out our [quickstart guide](https://docs.cartesia.ai/getting-started/dev-quickstart) for a simple integration example 53 | 54 | ## Contributing 55 | We welcome contributions to this showcase! If you've built something amazing with Cartesia, follow these steps to submit your project: 56 | 57 | 1. Fork this repository 58 | 59 | 2. Create a new folder for your project 60 | 61 | 3. Add your project files, including a detailed README 62 | 63 | 4. Submit a pull request with a description of your project 64 | 65 | ## Resources 66 | 67 | [Cartesia Documentation](https://docs.cartesia.ai/) 68 | 69 | [API Reference](https://docs.cartesia.ai/api-reference) 70 | 71 | [Cartesia Blog](https://cartesia.ai/blog) 72 | 73 | [Community Forum](https://discord.com/invite/gAbbHgdyQM) 74 | 75 | For support, reach out to our team at support@cartesia.ai or join our Discord community. 76 | 77 | Happy building with Cartesia! 78 | -------------------------------------------------------------------------------- /studypal/README.md: -------------------------------------------------------------------------------- 1 | # studypal 2 | 3 | ### Have a conversation about any article on the web 4 | 5 | studypal is a fast conversational AI built using [Daily](https://www.daily.co/) for real-time media transport and [Cartesia](https://cartesia.ai) for text-to-speech. Everything is orchestrated together (VAD -> STT -> LLM -> TTS) using [Pipecat](https://www.pipecat.ai/). 6 | 7 | ## Setup 8 | 9 | 1. Clone the repository 10 | 2. Copy `env.example` to a `.env` file and add API keys 11 | 3. Install the required packages: `pip install -r requirements.txt` 12 | 4. Run `python3 studypal.py` from your command line. 13 | 5. While the app is running, go to the `https://.daily.co/` set in `DAILY_SAMPLE_ROOM_URL` and talk to studypal! 14 | -------------------------------------------------------------------------------- /studypal/env.example: -------------------------------------------------------------------------------- 1 | DAILY_SAMPLE_ROOM_URL= # Follow instructions here and put your https://YOURDOMAIN.daily.co/YOURROOM (Instructions: https://docs.pipecat.ai/quickstart#preparing-your-environment) 2 | DAILY_API_KEY= # Create here: https://dashboard.daily.co/developers 3 | OPENAI_API_KEY= # Create here: https://platform.openai.com/docs/overview 4 | CARTESIA_API_KEY= # Create here: https://play.cartesia.ai/console 5 | CARTESIA_VOICE_ID= # Find here: https://play.cartesia.ai/ -------------------------------------------------------------------------------- /studypal/requirements.txt: -------------------------------------------------------------------------------- 1 | beautifulsoup4==4.12.3 2 | pypdf==4.3.1 3 | tiktoken==0.7.0 4 | pipecat-ai[daily,cartesia,openai,silero]==0.0.40 5 | python-dotenv==1.0.1 6 | -------------------------------------------------------------------------------- /studypal/runner.py: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2024, Daily 3 | # 4 | # SPDX-License-Identifier: BSD 2-Clause License 5 | # 6 | 7 | import aiohttp 8 | import argparse 9 | import os 10 | 11 | from pipecat.transports.services.helpers.daily_rest import DailyRESTHelper 12 | 13 | 14 | async def configure(aiohttp_session: aiohttp.ClientSession): 15 | (url, token, _) = await configure_with_args(aiohttp_session) 16 | return (url, token) 17 | 18 | 19 | async def configure_with_args( 20 | aiohttp_session: aiohttp.ClientSession, 21 | parser: argparse.ArgumentParser | None = None): 22 | if not parser: 23 | parser = argparse.ArgumentParser(description="Daily AI SDK Bot Sample") 24 | parser.add_argument( 25 | "-u", 26 | "--url", 27 | type=str, 28 | required=False, 29 | help="URL of the Daily room to join") 30 | parser.add_argument( 31 | "-k", 32 | "--apikey", 33 | type=str, 34 | required=False, 35 | help="Daily API Key (needed to create an owner token for the room)", 36 | ) 37 | 38 | args, unknown = parser.parse_known_args() 39 | 40 | url = args.url or os.getenv("DAILY_SAMPLE_ROOM_URL") 41 | key = args.apikey or os.getenv("DAILY_API_KEY") 42 | 43 | if not url: 44 | raise Exception( 45 | "No Daily room specified. use the -u/--url option from the command line, or set DAILY_SAMPLE_ROOM_URL in your environment to specify a Daily room URL.") 46 | 47 | if not key: 48 | raise Exception("No Daily API key specified. use the -k/--apikey option from the command line, or set DAILY_API_KEY in your environment to specify a Daily API key, available from https://dashboard.daily.co/developers.") 49 | 50 | daily_rest_helper = DailyRESTHelper( 51 | daily_api_key=key, 52 | daily_api_url=os.getenv("DAILY_API_URL", "https://api.daily.co/v1"), 53 | aiohttp_session=aiohttp_session) 54 | 55 | # Create a meeting token for the given room with an expiration 1 hour in 56 | # the future. 57 | expiry_time: float = 60 * 60 58 | 59 | token = await daily_rest_helper.get_token(url, expiry_time) 60 | 61 | return (url, token, args) 62 | -------------------------------------------------------------------------------- /studypal/studypal.py: -------------------------------------------------------------------------------- 1 | import aiohttp 2 | import asyncio 3 | import os 4 | import sys 5 | import io 6 | 7 | from bs4 import BeautifulSoup 8 | from pypdf import PdfReader 9 | import tiktoken 10 | 11 | from pipecat.frames.frames import LLMMessagesFrame 12 | from pipecat.pipeline.pipeline import Pipeline 13 | from pipecat.pipeline.runner import PipelineRunner 14 | from pipecat.pipeline.task import PipelineParams, PipelineTask 15 | from pipecat.processors.aggregators.llm_response import ( 16 | LLMAssistantResponseAggregator, LLMUserResponseAggregator) 17 | from pipecat.services.cartesia import CartesiaTTSService 18 | from pipecat.services.openai import OpenAILLMService 19 | from pipecat.transports.services.daily import DailyParams, DailyTransport 20 | from pipecat.vad.silero import SileroVADAnalyzer 21 | 22 | from runner import configure 23 | 24 | from loguru import logger 25 | 26 | from dotenv import load_dotenv 27 | load_dotenv(override=True) 28 | 29 | # Run this script directly from your command line. 30 | # This project was adapted from 31 | # https://github.com/pipecat-ai/pipecat/blob/main/examples/foundational/07d-interruptible-cartesia.py 32 | 33 | logger.remove(0) 34 | logger.add(sys.stderr, level="DEBUG") 35 | 36 | 37 | # Count number of tokens used in model and truncate the content 38 | def truncate_content(content, model_name): 39 | encoding = tiktoken.encoding_for_model(model_name) 40 | tokens = encoding.encode(content) 41 | 42 | max_tokens = 10000 43 | if len(tokens) > max_tokens: 44 | truncated_tokens = tokens[:max_tokens] 45 | return encoding.decode(truncated_tokens) 46 | return content 47 | 48 | # Main function to extract content from url 49 | async def get_article_content(url: str, aiohttp_session: aiohttp.ClientSession): 50 | if 'arxiv.org' in url: 51 | return await get_arxiv_content(url, aiohttp_session) 52 | else: 53 | return await get_wikipedia_content(url, aiohttp_session) 54 | 55 | # Helper function to extract content from Wikipedia url (this is 56 | # technically agnostic to URL type but will work best with Wikipedia 57 | # articles) 58 | async def get_wikipedia_content(url: str, aiohttp_session: aiohttp.ClientSession): 59 | async with aiohttp_session.get(url) as response: 60 | if response.status != 200: 61 | return "Failed to download Wikipedia article." 62 | 63 | text = await response.text() 64 | soup = BeautifulSoup(text, 'html.parser') 65 | 66 | content = soup.find('div', {'class': 'mw-parser-output'}) 67 | 68 | if content: 69 | return content.get_text() 70 | else: 71 | return "Failed to extract Wikipedia article content." 72 | 73 | # Helper function to extract content from arXiv url 74 | async def get_arxiv_content(url: str, aiohttp_session: aiohttp.ClientSession): 75 | if '/abs/' in url: 76 | url = url.replace('/abs/', '/pdf/') 77 | if not url.endswith('.pdf'): 78 | url += '.pdf' 79 | 80 | async with aiohttp_session.get(url) as response: 81 | if response.status != 200: 82 | return "Failed to download arXiv PDF." 83 | 84 | content = await response.read() 85 | pdf_file = io.BytesIO(content) 86 | pdf_reader = PdfReader(pdf_file) 87 | text = "" 88 | for page in pdf_reader.pages: 89 | text += page.extract_text() 90 | return text 91 | 92 | # This is the main function that handles STT -> LLM -> TTS 93 | async def main(): 94 | url = input("Enter the URL of the article you would like to talk about: ") 95 | 96 | async with aiohttp.ClientSession() as session: 97 | article_content = await get_article_content(url, session) 98 | article_content = truncate_content(article_content, model_name="gpt-4o-mini") 99 | 100 | (room_url, token) = await configure(session) 101 | 102 | transport = DailyTransport( 103 | room_url, 104 | token, 105 | "studypal", 106 | DailyParams( 107 | audio_out_sample_rate=44100, 108 | audio_out_enabled=True, 109 | transcription_enabled=True, 110 | vad_enabled=True, 111 | vad_analyzer=SileroVADAnalyzer() 112 | ) 113 | ) 114 | 115 | tts = CartesiaTTSService( 116 | api_key=os.getenv("CARTESIA_API_KEY"), 117 | voice_id=os.getenv("CARTESIA_VOICE_ID", "4d2fd738-3b3d-4368-957a-bb4805275bd9"), 118 | # British Narration Lady: 4d2fd738-3b3d-4368-957a-bb4805275bd9 119 | sample_rate=44100, 120 | ) 121 | 122 | llm = OpenAILLMService( 123 | api_key=os.getenv("OPENAI_API_KEY"), 124 | model="gpt-4o-mini") 125 | 126 | messages = [{ 127 | "role": "system", "content": f"""You are an AI study partner. You have been given the following article content: 128 | 129 | {article_content} 130 | 131 | Your task is to help the user understand and learn from this article in 2 sentences. THESE RESPONSES SHOULD BE ONLY MAX 2 SENTENCES. THIS INSTRUCTION IS VERY IMPORTANT. RESPONSES SHOULDN'T BE LONG. 132 | """, }, ] 133 | 134 | tma_in = LLMUserResponseAggregator(messages) 135 | tma_out = LLMAssistantResponseAggregator(messages) 136 | 137 | pipeline = Pipeline([ 138 | transport.input(), 139 | tma_in, 140 | llm, 141 | tts, 142 | tma_out, 143 | transport.output(), 144 | ]) 145 | 146 | task = PipelineTask(pipeline, PipelineParams(allow_interruptions=True, enable_metrics=True)) 147 | 148 | @transport.event_handler("on_first_participant_joined") 149 | async def on_first_participant_joined(transport, participant): 150 | transport.capture_participant_transcription(participant["id"]) 151 | messages.append( 152 | { 153 | "role": "system", 154 | "content": "Hello! I'm ready to discuss the article with you. What would you like to learn about?"}) 155 | await task.queue_frames([LLMMessagesFrame(messages)]) 156 | 157 | runner = PipelineRunner() 158 | 159 | await runner.run(task) 160 | 161 | if __name__ == "__main__": 162 | asyncio.run(main()) 163 | --------------------------------------------------------------------------------