From 46993a273aed865820e53738a0618e837af51e2c Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 4 Jul 2025 16:15:35 -0500 Subject: [PATCH 01/98] Rewire chat route to use SourceField backend --- app/api/chat/openai/route.ts | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/app/api/chat/openai/route.ts b/app/api/chat/openai/route.ts index a0f8ad0c93..8d3f266290 100644 --- a/app/api/chat/openai/route.ts +++ b/app/api/chat/openai/route.ts @@ -2,7 +2,7 @@ import { checkApiKey, getServerProfile } from "@/lib/server/server-chat-helpers" import { ChatSettings } from "@/types" import { OpenAIStream, StreamingTextResponse } from "ai" import { ServerRuntime } from "next" -import OpenAI from "openai" + import { ChatCompletionCreateParamsBase } from "openai/resources/chat/completions.mjs" export const runtime: ServerRuntime = "edge" @@ -19,15 +19,30 @@ export async function POST(request: Request) { checkApiKey(profile.openai_api_key, "OpenAI") - const openai = new OpenAI({ - apiKey: profile.openai_api_key || "", + + organization: profile.openai_organization_id }) - const response = await openai.chat.completions.create({ - model: chatSettings.model as ChatCompletionCreateParamsBase["model"], - messages: messages as ChatCompletionCreateParamsBase["messages"], - temperature: chatSettings.temperature, + const response = await fetch(process.env.NEXT_PUBLIC_BACKEND_URL!, { +method: 'POST', +headers: { +'Content-Type': 'application/json', +'Authorization': `Bearer ${process.env.NEXT_PUBLIC_API_KEY!}`, +}, +body: JSON.stringify({ +model, +messages, +temperature, +}), +}); + +if (!response.ok) { +throw new Error(`SourceField backend error: ${response.statusText}`); +} + +const data = await response.json(); +return NextResponse.json(data); max_tokens: chatSettings.model === "gpt-4-vision-preview" || chatSettings.model === "gpt-4o" From a39d39ea41f402515c0e7c97fc6f0f297cc4f121 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 4 Jul 2025 16:34:50 -0500 Subject: [PATCH 02/98] Replace route.ts with clean SourceField backend code --- app/api/chat/openai/route.ts | 60 +++++------------------------------- 1 file changed, 7 insertions(+), 53 deletions(-) diff --git a/app/api/chat/openai/route.ts b/app/api/chat/openai/route.ts index 8d3f266290..c28aa86bc1 100644 --- a/app/api/chat/openai/route.ts +++ b/app/api/chat/openai/route.ts @@ -1,30 +1,10 @@ -import { checkApiKey, getServerProfile } from "@/lib/server/server-chat-helpers" -import { ChatSettings } from "@/types" -import { OpenAIStream, StreamingTextResponse } from "ai" -import { ServerRuntime } from "next" +import { NextResponse } from 'next/server'; -import { ChatCompletionCreateParamsBase } from "openai/resources/chat/completions.mjs" +export async function POST(req: Request) { +const body = await req.json(); +const { model, messages, temperature } = body; -export const runtime: ServerRuntime = "edge" - -export async function POST(request: Request) { - const json = await request.json() - const { chatSettings, messages } = json as { - chatSettings: ChatSettings - messages: any[] - } - - try { - const profile = await getServerProfile() - - checkApiKey(profile.openai_api_key, "OpenAI") - - - - organization: profile.openai_organization_id - }) - - const response = await fetch(process.env.NEXT_PUBLIC_BACKEND_URL!, { +const response = await fetch(process.env.NEXT_PUBLIC_BACKEND_URL!, { method: 'POST', headers: { 'Content-Type': 'application/json', @@ -38,36 +18,10 @@ temperature, }); if (!response.ok) { -throw new Error(`SourceField backend error: ${response.statusText}`); +const errorText = await response.text(); +return NextResponse.json({ error: errorText }, { status: response.status }); } const data = await response.json(); return NextResponse.json(data); - max_tokens: - chatSettings.model === "gpt-4-vision-preview" || - chatSettings.model === "gpt-4o" - ? 4096 - : null, // TODO: Fix - stream: true - }) - - const stream = OpenAIStream(response) - - return new StreamingTextResponse(stream) - } catch (error: any) { - let errorMessage = error.message || "An unexpected error occurred" - const errorCode = error.status || 500 - - if (errorMessage.toLowerCase().includes("api key not found")) { - errorMessage = - "OpenAI API Key not found. Please set it in your profile settings." - } else if (errorMessage.toLowerCase().includes("incorrect api key")) { - errorMessage = - "OpenAI API Key is incorrect. Please fix it in your profile settings." - } - - return new Response(JSON.stringify({ message: errorMessage }), { - status: errorCode - }) - } } From 412a51dd491fe2853c2d4e3fa5734636d0bf8240 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 4 Jul 2025 17:07:24 -0500 Subject: [PATCH 03/98] Delete app/api/chat/openai/route.ts --- app/api/chat/openai/route.ts | 27 --------------------------- 1 file changed, 27 deletions(-) delete mode 100644 app/api/chat/openai/route.ts diff --git a/app/api/chat/openai/route.ts b/app/api/chat/openai/route.ts deleted file mode 100644 index c28aa86bc1..0000000000 --- a/app/api/chat/openai/route.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { NextResponse } from 'next/server'; - -export async function POST(req: Request) { -const body = await req.json(); -const { model, messages, temperature } = body; - -const response = await fetch(process.env.NEXT_PUBLIC_BACKEND_URL!, { -method: 'POST', -headers: { -'Content-Type': 'application/json', -'Authorization': `Bearer ${process.env.NEXT_PUBLIC_API_KEY!}`, -}, -body: JSON.stringify({ -model, -messages, -temperature, -}), -}); - -if (!response.ok) { -const errorText = await response.text(); -return NextResponse.json({ error: errorText }, { status: response.status }); -} - -const data = await response.json(); -return NextResponse.json(data); -} From d97162759baea5639c2c3ec0bdcf2e2eadd9dc20 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 4 Jul 2025 17:28:04 -0500 Subject: [PATCH 04/98] Restore chat/route.ts with sourcefield backend code --- app/api/chat/route.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 app/api/chat/route.ts diff --git a/app/api/chat/route.ts b/app/api/chat/route.ts new file mode 100644 index 0000000000..c28aa86bc1 --- /dev/null +++ b/app/api/chat/route.ts @@ -0,0 +1,27 @@ +import { NextResponse } from 'next/server'; + +export async function POST(req: Request) { +const body = await req.json(); +const { model, messages, temperature } = body; + +const response = await fetch(process.env.NEXT_PUBLIC_BACKEND_URL!, { +method: 'POST', +headers: { +'Content-Type': 'application/json', +'Authorization': `Bearer ${process.env.NEXT_PUBLIC_API_KEY!}`, +}, +body: JSON.stringify({ +model, +messages, +temperature, +}), +}); + +if (!response.ok) { +const errorText = await response.text(); +return NextResponse.json({ error: errorText }, { status: response.status }); +} + +const data = await response.json(); +return NextResponse.json(data); +} From 3e7c28ed7a9d3736b71d24b30940abc6100c6784 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 4 Jul 2025 18:44:59 -0500 Subject: [PATCH 05/98] add chat page --- app/[locale]/chat/page.tsx | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 app/[locale]/chat/page.tsx diff --git a/app/[locale]/chat/page.tsx b/app/[locale]/chat/page.tsx new file mode 100644 index 0000000000..892ad72508 --- /dev/null +++ b/app/[locale]/chat/page.tsx @@ -0,0 +1,5 @@ +import Chat from "@/components/Chat"; + +export default function Page() { +return ; +} From b489c6f42db4d276e19cbac97280fb16db6e1816 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 4 Jul 2025 20:08:50 -0500 Subject: [PATCH 06/98] fix: use env vars for supabase client --- lib/supabase/client.ts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/supabase/client.ts b/lib/supabase/client.ts index bb82f8039c..cbd580c50c 100644 --- a/lib/supabase/client.ts +++ b/lib/supabase/client.ts @@ -1,7 +1,6 @@ -import { createBrowserClient } from "@supabase/ssr" +import { createClient } from '@supabase/supabase-js' -export const createClient = () => - createBrowserClient( - process.env.NEXT_PUBLIC_SUPABASE_URL!, - process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY! - ) +const supabase = createClient( +process.env.SUPABASE_URL!, +process.env.SUPABASE_ANON_KEY! +) From 31b3488b8fbec016ac346022580054c259012e80 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 4 Jul 2025 20:19:52 -0500 Subject: [PATCH 07/98] Create chat.tsx --- components/chat.tsx | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 components/chat.tsx diff --git a/components/chat.tsx b/components/chat.tsx new file mode 100644 index 0000000000..84c5ff8205 --- /dev/null +++ b/components/chat.tsx @@ -0,0 +1,12 @@ +'use client' + +import React from 'react' + +export default function Chat() { +return ( +
+

Welcome to SourceField Chat

+

This is a placeholder chat interface.

+
+) +} From 48aec1b69dea3accf0c4ae6845e4a19680e85deb Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 4 Jul 2025 20:37:02 -0500 Subject: [PATCH 08/98] trigger fresh deploy: clear cache --- .dummy | 1 + 1 file changed, 1 insertion(+) create mode 100644 .dummy diff --git a/.dummy b/.dummy new file mode 100644 index 0000000000..e84daeb87d --- /dev/null +++ b/.dummy @@ -0,0 +1 @@ +triggering fresh deploy From 16a459f15d015cb948f703806fe0acfd0c302c26 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 4 Jul 2025 20:39:11 -0500 Subject: [PATCH 09/98] Trigger --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1d50749974..32f5bc66c4 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ The open-source AI chat app for everyone. Chatbot UI -## Demo +## demo View the latest demo [here](https://x.com/mckaywrigley/status/1738273242283151777?s=20). @@ -290,3 +290,5 @@ We are working on a guide for contributing. ## Contact Message Mckay on [Twitter/X](https://twitter.com/mckaywrigley) + +## Updated From 894662377107f1305a3c02e84ce699dca8687bef Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 4 Jul 2025 20:40:51 -0500 Subject: [PATCH 10/98] trigger fresh deploy: clear cache --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 32f5bc66c4..5e1684af78 100644 --- a/README.md +++ b/README.md @@ -291,4 +291,4 @@ We are working on a guide for contributing. Message Mckay on [Twitter/X](https://twitter.com/mckaywrigley) -## Updated +## Updated From 3996f91c6a70f57c194c4523549f991239fa4ce0 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 4 Jul 2025 22:25:21 -0500 Subject: [PATCH 11/98] Fix/add chat component with proper chat UI --- components/chat.tsx | 127 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 121 insertions(+), 6 deletions(-) diff --git a/components/chat.tsx b/components/chat.tsx index 84c5ff8205..bcf0eb09a0 100644 --- a/components/chat.tsx +++ b/components/chat.tsx @@ -1,12 +1,127 @@ -'use client' +// components/Chat.tsx +"use client"; -import React from 'react' +import React, { useState, useEffect, useRef } from "react"; + +interface Message { +id: string; +role: "user" | "assistant"; +content: string; +} export default function Chat() { +const [messages, setMessages] = useState([]); +const [input, setInput] = useState(""); +const [isLoading, setIsLoading] = useState(false); +const messagesEndRef = useRef(null); + +const scrollToBottom = () => { +messagesEndRef.current?.scrollIntoView({ behavior: "smooth" }); +}; + +useEffect(() => { +scrollToBottom(); +}, [messages]); + +const handleSubmit = async (e: React.FormEvent) => { +e.preventDefault(); +if (!input.trim()) return; + +const userMessage: Message = { +id: crypto.randomUUID(), +role: "user", +content: input.trim(), +}; + +setMessages((prev) => [...prev, userMessage]); +setInput(""); +setIsLoading(true); + +try { +const response = await fetch("/api/chat/openai", { +method: "POST", +headers: { +"Content-Type": "application/json", +}, +body: JSON.stringify({ +messages: [...messages, userMessage].map(({ role, content }) => ({ +role, +content, +})), +}), +}); + +if (!response.ok) { +throw new Error("Failed to get response from server"); +} + +const data = await response.json(); +const assistantMessage: Message = { +id: crypto.randomUUID(), +role: "assistant", +content: data.result || "Sorry, I didn't understand that.", +}; + +setMessages((prev) => [...prev, assistantMessage]); +} catch (error) { +console.error(error); +const errorMessage: Message = { +id: crypto.randomUUID(), +role: "assistant", +content: "There was an error. Please try again later.", +}; +setMessages((prev) => [...prev, errorMessage]); +} finally { +setIsLoading(false); +} +}; + return ( -
-

Welcome to SourceField Chat

-

This is a placeholder chat interface.

+
+
+{messages.length === 0 && ( +

Start the conversation...

+)} +{messages.map(({ id, role, content }) => ( +
+
+{content} +
-) +))} +
+
+ +
+ setInput(e.target.value)} +disabled={isLoading} +autoFocus +/> + +
+
+); } + From 9e8969b3967ddb432a6a6984c4562957ebb28e29 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 4 Jul 2025 22:32:16 -0500 Subject: [PATCH 12/98] Fic chat page.tsx to properly load chat component --- app/[locale]/chat/page.tsx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/[locale]/chat/page.tsx b/app/[locale]/chat/page.tsx index 892ad72508..56e27abb47 100644 --- a/app/[locale]/chat/page.tsx +++ b/app/[locale]/chat/page.tsx @@ -1,5 +1,14 @@ import Chat from "@/components/Chat"; -export default function Page() { -return ; +export default function ChatPage() { +return ( +
+
+

SourceField Chat

+
+
+ +
+
+); } From 6f6c9967376283bcffbbae9e4c60e29a91edce56 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 4 Jul 2025 22:33:51 -0500 Subject: [PATCH 13/98] Fix chat page.tsx to properly load chat component From 0e2728917790656383a67564ab4326f62c5e8ef0 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 4 Jul 2025 22:34:27 -0500 Subject: [PATCH 14/98] Fix chat page.tsx to properly load chat component From e6d84f02926d51bd78dbfc4688badc60aeaacfbd Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 4 Jul 2025 22:48:23 -0500 Subject: [PATCH 15/98] Fix: add SourceField Backend env variables --- .env.local.example | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.env.local.example b/.env.local.example index 7cff1a7118..00df35a5b1 100644 --- a/.env.local.example +++ b/.env.local.example @@ -33,4 +33,8 @@ EMAIL_DOMAIN_WHITELIST= EMAIL_WHITELIST= # File size limit for uploads in bytes -NEXT_PUBLIC_USER_FILE_SIZE_LIMIT=10485760 \ No newline at end of file +NEXT_PUBLIC_USER_FILE_SIZE_LIMIT=10485760 + +# SourceField Backend +NEXT_PUBLIC_BACKEND_URL= +NEXT_PUBLIC_API_KEY= From dc147e9ca970633a04249132b54da7dfce245dea Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 4 Jul 2025 23:08:05 -0500 Subject: [PATCH 16/98] Rename chat.tsx to tempchat.tsx --- components/{chat.tsx => tempchat.tsx} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename components/{chat.tsx => tempchat.tsx} (100%) diff --git a/components/chat.tsx b/components/tempchat.tsx similarity index 100% rename from components/chat.tsx rename to components/tempchat.tsx From dc34c5cd30aa5c1f63327cf2220c8d0c0e034b9a Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 4 Jul 2025 23:13:10 -0500 Subject: [PATCH 17/98] Delete incorrectly named chat.tsx --- components/{tempchat.tsx => Chat.tsx} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename components/{tempchat.tsx => Chat.tsx} (100%) diff --git a/components/tempchat.tsx b/components/Chat.tsx similarity index 100% rename from components/tempchat.tsx rename to components/Chat.tsx From 4863e4491541c01c29f5fa81912f75563d177374 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 4 Jul 2025 23:26:46 -0500 Subject: [PATCH 18/98] Fix: Update home page to include chat component --- app/[locale]/page.tsx | 48 ++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index a5a0fc7daf..23946e1907 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -1,28 +1,34 @@ -"use client" +"use client"; -import { ChatbotUISVG } from "@/components/icons/chatbotui-svg" -import { IconArrowRight } from "@tabler/icons-react" -import { useTheme } from "next-themes" -import Link from "next/link" +import { ChatbotUISVG } from "@/components/icons/chatbotui-svg"; +import { IconArrowRight } from "@tabler/icons-react"; +import { useTheme } from "next-themes"; +import Link from "next/link"; +import Chat from "@/components/Chat"; // Import your Chat component export default function HomePage() { - const { theme } = useTheme() +const { theme } = useTheme(); - return ( -
-
- -
+return ( +
+
+ +
-
Chatbot UI
+

Chatbot UI

- - Start Chatting - - -
- ) +{/* Chat UI inserted here */} +
+ +
+ + +Start Chatting + + +
+); } From 6f2717217528393ca2e5cc38d32025da709800c6 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 4 Jul 2025 23:44:34 -0500 Subject: [PATCH 19/98] Feat: update /api/chat route to save messages to Supabase --- app/api/chat/route.ts | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/app/api/chat/route.ts b/app/api/chat/route.ts index c28aa86bc1..bd7bd54107 100644 --- a/app/api/chat/route.ts +++ b/app/api/chat/route.ts @@ -1,27 +1,24 @@ +// app/api/chat/route.ts import { NextResponse } from 'next/server'; +import { createClient } from '@supabase/supabase-js'; + +const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL!; +const supabaseAnonKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!; export async function POST(req: Request) { const body = await req.json(); -const { model, messages, temperature } = body; +const { messages } = body; + +const supabase = createClient(supabaseUrl, supabaseAnonKey); -const response = await fetch(process.env.NEXT_PUBLIC_BACKEND_URL!, { -method: 'POST', -headers: { -'Content-Type': 'application/json', -'Authorization': `Bearer ${process.env.NEXT_PUBLIC_API_KEY!}`, -}, -body: JSON.stringify({ -model, -messages, -temperature, -}), -}); +const { data, error } = await supabase +.from('messages') +.insert([{ content: JSON.stringify(messages), role: 'user' }]); -if (!response.ok) { -const errorText = await response.text(); -return NextResponse.json({ error: errorText }, { status: response.status }); +if (error) { +console.error(error); +return NextResponse.json({ error: error.message }, { status: 500 }); } -const data = await response.json(); -return NextResponse.json(data); +return NextResponse.json({ result: 'Message saved to Supabase!', data }); } From 9f4474ebcc73d12ed40a16cb5915ae7ad89dc90c Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Sat, 5 Jul 2025 01:05:20 -0500 Subject: [PATCH 20/98] fix: correct env variable names to match vercel and code --- .env.local.example | 3 --- 1 file changed, 3 deletions(-) diff --git a/.env.local.example b/.env.local.example index 00df35a5b1..24f6ed3b1f 100644 --- a/.env.local.example +++ b/.env.local.example @@ -35,6 +35,3 @@ EMAIL_WHITELIST= # File size limit for uploads in bytes NEXT_PUBLIC_USER_FILE_SIZE_LIMIT=10485760 -# SourceField Backend -NEXT_PUBLIC_BACKEND_URL= -NEXT_PUBLIC_API_KEY= From 0b5e80cb001e0db07a46e85c24059abc7716086e Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Sat, 5 Jul 2025 01:11:29 -0500 Subject: [PATCH 21/98] fix: connect chat API route to OpenAI properly --- app/api/chat/route.ts | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/app/api/chat/route.ts b/app/api/chat/route.ts index bd7bd54107..0911dfe943 100644 --- a/app/api/chat/route.ts +++ b/app/api/chat/route.ts @@ -1,24 +1,27 @@ -// app/api/chat/route.ts import { NextResponse } from 'next/server'; -import { createClient } from '@supabase/supabase-js'; - -const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL!; -const supabaseAnonKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!; export async function POST(req: Request) { const body = await req.json(); const { messages } = body; -const supabase = createClient(supabaseUrl, supabaseAnonKey); - -const { data, error } = await supabase -.from('messages') -.insert([{ content: JSON.stringify(messages), role: 'user' }]); +const response = await fetch("https://api.openai.com/v1/chat/completions", { +method: "POST", +headers: { +"Content-Type": "application/json", +"Authorization": `Bearer ${process.env.OPENAI_API_KEY}`, +}, +body: JSON.stringify({ +model: "gpt-3.5-turbo", // or gpt-4 if your key supports it +messages, +temperature: 0.7, +}), +}); -if (error) { -console.error(error); -return NextResponse.json({ error: error.message }, { status: 500 }); +if (!response.ok) { +const errorText = await response.text(); +return NextResponse.json({ error: errorText }, { status: response.status }); } -return NextResponse.json({ result: 'Message saved to Supabase!', data }); +const data = await response.json(); +return NextResponse.json({ result: data.choices[0].message.content }); } From 03d6d20f4c6c529b79c47a6970ac73be5f05ac83 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Sat, 5 Jul 2025 01:37:49 -0500 Subject: [PATCH 22/98] fix: point frontend Chat.tsx to correct /api/chat endpoint --- components/Chat.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/Chat.tsx b/components/Chat.tsx index bcf0eb09a0..d4139eb8fe 100644 --- a/components/Chat.tsx +++ b/components/Chat.tsx @@ -38,7 +38,7 @@ setInput(""); setIsLoading(true); try { -const response = await fetch("/api/chat/openai", { +const response = await fetch("/api/chat/", { method: "POST", headers: { "Content-Type": "application/json", From fbe3ff001adcb63feb38ca24d0f2441abd26376f Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Sat, 5 Jul 2025 02:38:58 -0500 Subject: [PATCH 23/98] Create vercel.json for vercel configuration --- vercel.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 vercel.json diff --git a/vercel.json b/vercel.json new file mode 100644 index 0000000000..735233d312 --- /dev/null +++ b/vercel.json @@ -0,0 +1,15 @@ +{ +"version": 2, +"builds": [ +{ +"src": "next.config.js", +"use": "@vercel/next" +} +], +"routes": [ +{ +"src": "/api/(.*)", +"dest": "/api/$1" +} +] +} From ca02f6085cfb8bca06162361366266f9959291b3 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Sat, 5 Jul 2025 02:50:40 -0500 Subject: [PATCH 24/98] debug: log OPENAI_API_KEY in route.ts --- app/api/chat/route.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/api/chat/route.ts b/app/api/chat/route.ts index 0911dfe943..30ede576f8 100644 --- a/app/api/chat/route.ts +++ b/app/api/chat/route.ts @@ -1,6 +1,8 @@ import { NextResponse } from 'next/server'; export async function POST(req: Request) { +console.log("OPENAI_API_KEY:", process.env.OPENAI_API_KEY); + const body = await req.json(); const { messages } = body; From 0a2aae2082cb484c78782553f5169b9f0a5883da Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Sat, 5 Jul 2025 19:52:54 -0500 Subject: [PATCH 25/98] fix: move auth callback route to api/auth/callback --- app/api/auth/callback/route.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 app/api/auth/callback/route.ts diff --git a/app/api/auth/callback/route.ts b/app/api/auth/callback/route.ts new file mode 100644 index 0000000000..acf1c65daa --- /dev/null +++ b/app/api/auth/callback/route.ts @@ -0,0 +1,21 @@ +import { createClient } from "@/lib/supabase/server" +import { cookies } from "next/headers" +import { NextResponse } from "next/server" + +export async function GET(request: Request) { + const requestUrl = new URL(request.url) + const code = requestUrl.searchParams.get("code") + const next = requestUrl.searchParams.get("next") + + if (code) { + const cookieStore = cookies() + const supabase = createClient(cookieStore) + await supabase.auth.exchangeCodeForSession(code) + } + + if (next) { + return NextResponse.redirect(requestUrl.origin + next) + } else { + return NextResponse.redirect(requestUrl.origin) + } +} From fde37f0cd36de6232fb4a6aaba1906910f5dea98 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Sat, 5 Jul 2025 19:56:39 -0500 Subject: [PATCH 26/98] chore: remove old auth callback route from app/auth/callback --- app/auth/callback/route.ts | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 app/auth/callback/route.ts diff --git a/app/auth/callback/route.ts b/app/auth/callback/route.ts deleted file mode 100644 index acf1c65daa..0000000000 --- a/app/auth/callback/route.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { createClient } from "@/lib/supabase/server" -import { cookies } from "next/headers" -import { NextResponse } from "next/server" - -export async function GET(request: Request) { - const requestUrl = new URL(request.url) - const code = requestUrl.searchParams.get("code") - const next = requestUrl.searchParams.get("next") - - if (code) { - const cookieStore = cookies() - const supabase = createClient(cookieStore) - await supabase.auth.exchangeCodeForSession(code) - } - - if (next) { - return NextResponse.redirect(requestUrl.origin + next) - } else { - return NextResponse.redirect(requestUrl.origin) - } -} From e0b6392701c181e7d789509f30c239caf4211006 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Sun, 6 Jul 2025 20:29:57 -0500 Subject: [PATCH 27/98] fix(auth): persist Supabase session in browser local storage - Updates auth callback route to redirect with tokens in query params -Adds useEffect to set browser session and clean URL --- app/api/auth/callback/route.ts | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/app/api/auth/callback/route.ts b/app/api/auth/callback/route.ts index acf1c65daa..6bbd9895a2 100644 --- a/app/api/auth/callback/route.ts +++ b/app/api/auth/callback/route.ts @@ -8,10 +8,21 @@ export async function GET(request: Request) { const next = requestUrl.searchParams.get("next") if (code) { - const cookieStore = cookies() - const supabase = createClient(cookieStore) - await supabase.auth.exchangeCodeForSession(code) - } +const cookieStore = cookies() +const supabase = createClient(cookieStore) +const { data, error } = await supabase.auth.exchangeCodeForSession(code) + +if (error) { +console.error("Error exchanging code:", error) +} + +if (data?.session) { +// Redirect back to home page with tokens in query params +return NextResponse.redirect( +`${requestUrl.origin}/?access_token=${data.session.access_token}&refresh_token=${data.session.refresh_token}` +) +} +} if (next) { return NextResponse.redirect(requestUrl.origin + next) From 8146be26ee4537010da3911a3ee0198818f82b9a Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Sun, 6 Jul 2025 20:40:59 -0500 Subject: [PATCH 28/98] Fix(auth): set session from URL tokens after login redirect --- app/[locale]/page.tsx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index 23946e1907..a07331d1aa 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -5,10 +5,27 @@ import { IconArrowRight } from "@tabler/icons-react"; import { useTheme } from "next-themes"; import Link from "next/link"; import Chat from "@/components/Chat"; // Import your Chat component +import { useEffect } from "react"; +import { supabase } from "@/lib/supabase/browser-client"; export default function HomePage() { const { theme } = useTheme(); +useEffect(() => { +const params = new URLSearchParams(window.location.search); +const accessToken = params.get("access_token"); +const refreshToken = params.get("refresh_token"); + +if (accessToken && refreshToken) { +supabase.auth.setSession({ +access_token: accessToken, +refresh_token: refreshToken, +}); +// Optional: remove tokens from URL +window.history.replaceState({}, document.title, window.location.pathname); +} +}, []); + return (
From ca3e68a4a50ef560b56045e07b95ef8aa4fde7eb Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Sun, 6 Jul 2025 23:20:58 -0500 Subject: [PATCH 29/98] feat(auth): add OAuth login button and clean up login page --- app/[locale]/login/page.tsx | 420 +++++++++++++++++++----------------- 1 file changed, 218 insertions(+), 202 deletions(-) diff --git a/app/[locale]/login/page.tsx b/app/[locale]/login/page.tsx index 527422f65a..2a8a19db51 100644 --- a/app/[locale]/login/page.tsx +++ b/app/[locale]/login/page.tsx @@ -11,211 +11,227 @@ import { cookies, headers } from "next/headers" import { redirect } from "next/navigation" export const metadata: Metadata = { - title: "Login" +title: "Login" } export default async function Login({ - searchParams +searchParams }: { - searchParams: { message: string } +searchParams: { message: string } }) { - const cookieStore = cookies() - const supabase = createServerClient( - process.env.NEXT_PUBLIC_SUPABASE_URL!, - process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, - { - cookies: { - get(name: string) { - return cookieStore.get(name)?.value - } - } - } - ) - const session = (await supabase.auth.getSession()).data.session - - if (session) { - const { data: homeWorkspace, error } = await supabase - .from("workspaces") - .select("*") - .eq("user_id", session.user.id) - .eq("is_home", true) - .single() - - if (!homeWorkspace) { - throw new Error(error.message) - } - - return redirect(`/${homeWorkspace.id}/chat`) - } - - const signIn = async (formData: FormData) => { - "use server" - - const email = formData.get("email") as string - const password = formData.get("password") as string - const cookieStore = cookies() - const supabase = createClient(cookieStore) - - const { data, error } = await supabase.auth.signInWithPassword({ - email, - password - }) - - if (error) { - return redirect(`/login?message=${error.message}`) - } - - const { data: homeWorkspace, error: homeWorkspaceError } = await supabase - .from("workspaces") - .select("*") - .eq("user_id", data.user.id) - .eq("is_home", true) - .single() - - if (!homeWorkspace) { - throw new Error( - homeWorkspaceError?.message || "An unexpected error occurred" - ) - } - - return redirect(`/${homeWorkspace.id}/chat`) - } - - const getEnvVarOrEdgeConfigValue = async (name: string) => { - "use server" - if (process.env.EDGE_CONFIG) { - return await get(name) - } - - return process.env[name] - } - - const signUp = async (formData: FormData) => { - "use server" - - const email = formData.get("email") as string - const password = formData.get("password") as string - - const emailDomainWhitelistPatternsString = await getEnvVarOrEdgeConfigValue( - "EMAIL_DOMAIN_WHITELIST" - ) - const emailDomainWhitelist = emailDomainWhitelistPatternsString?.trim() - ? emailDomainWhitelistPatternsString?.split(",") - : [] - const emailWhitelistPatternsString = - await getEnvVarOrEdgeConfigValue("EMAIL_WHITELIST") - const emailWhitelist = emailWhitelistPatternsString?.trim() - ? emailWhitelistPatternsString?.split(",") - : [] - - // If there are whitelist patterns, check if the email is allowed to sign up - if (emailDomainWhitelist.length > 0 || emailWhitelist.length > 0) { - const domainMatch = emailDomainWhitelist?.includes(email.split("@")[1]) - const emailMatch = emailWhitelist?.includes(email) - if (!domainMatch && !emailMatch) { - return redirect( - `/login?message=Email ${email} is not allowed to sign up.` - ) - } - } - - const cookieStore = cookies() - const supabase = createClient(cookieStore) - - const { error } = await supabase.auth.signUp({ - email, - password, - options: { - // USE IF YOU WANT TO SEND EMAIL VERIFICATION, ALSO CHANGE TOML FILE - // emailRedirectTo: `${origin}/auth/callback` - } - }) - - if (error) { - console.error(error) - return redirect(`/login?message=${error.message}`) - } - - return redirect("/setup") - - // USE IF YOU WANT TO SEND EMAIL VERIFICATION, ALSO CHANGE TOML FILE - // return redirect("/login?message=Check email to continue sign in process") - } - - const handleResetPassword = async (formData: FormData) => { - "use server" - - const origin = headers().get("origin") - const email = formData.get("email") as string - const cookieStore = cookies() - const supabase = createClient(cookieStore) - - const { error } = await supabase.auth.resetPasswordForEmail(email, { - redirectTo: `${origin}/auth/callback?next=/login/password` - }) - - if (error) { - return redirect(`/login?message=${error.message}`) - } - - return redirect("/login?message=Check email to reset password") - } - - return ( -
-
- - - - - - - - - - Login - - - - Sign Up - - -
- Forgot your password? - -
- - {searchParams?.message && ( -

- {searchParams.message} -

- )} - -
- ) +const cookieStore = cookies() +const supabase = createServerClient( +process.env.NEXT_PUBLIC_SUPABASE_URL!, +process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, +{ +cookies: { +get(name: string) { +return cookieStore.get(name)?.value +} +} +} +) +const session = (await supabase.auth.getSession()).data.session + +if (session) { +const { data: homeWorkspace, error } = await supabase +.from("workspaces") +.select("*") +.eq("user_id", session.user.id) +.eq("is_home", true) +.single() + +if (!homeWorkspace) { +throw new Error(error.message) +} + +return redirect(`/${homeWorkspace.id}/chat`) +} + +const handleOAuthLogin = async () => { +"use server" + +const origin = headers().get("origin") +const cookieStore = cookies() +const supabase = createClient(cookieStore) + +await supabase.auth.signInWithOAuth({ +provider: 'google', +options: { +redirectTo: `${origin}/auth/callback` +} +}) +} + +const signIn = async (formData: FormData) => { +"use server" + +const email = formData.get("email") as string +const password = formData.get("password") as string +const cookieStore = cookies() +const supabase = createClient(cookieStore) + +const { data, error } = await supabase.auth.signInWithPassword({ +email, +password +}) + +if (error) { +return redirect(`/login?message=${error.message}`) +} + +const { data: homeWorkspace, error: homeWorkspaceError } = await supabase +.from("workspaces") +.select("*") +.eq("user_id", data.user.id) +.eq("is_home", true) +.single() + +if (!homeWorkspace) { +throw new Error( +homeWorkspaceError?.message || "An unexpected error occurred" +) +} + +return redirect(`/${homeWorkspace.id}/chat`) +} + +const getEnvVarOrEdgeConfigValue = async (name: string) => { +"use server" +if (process.env.EDGE_CONFIG) { +return await get(name) +} + +return process.env[name] +} + +const signUp = async (formData: FormData) => { +"use server" + +const email = formData.get("email") as string +const password = formData.get("password") as string + +const emailDomainWhitelistPatternsString = await getEnvVarOrEdgeConfigValue( +"EMAIL_DOMAIN_WHITELIST" +) +const emailDomainWhitelist = emailDomainWhitelistPatternsString?.trim() +? emailDomainWhitelistPatternsString?.split(",") +: [] +const emailWhitelistPatternsString = +await getEnvVarOrEdgeConfigValue("EMAIL_WHITELIST") +const emailWhitelist = emailWhitelistPatternsString?.trim() +? emailWhitelistPatternsString?.split(",") +: [] + +if (emailDomainWhitelist.length > 0 || emailWhitelist.length > 0) { +const domainMatch = emailDomainWhitelist?.includes(email.split("@")[1]) +const emailMatch = emailWhitelist?.includes(email) +if (!domainMatch && !emailMatch) { +return redirect( +`/login?message=Email ${email} is not allowed to sign up.` +) +} +} + +const cookieStore = cookies() +const supabase = createClient(cookieStore) + +const { error } = await supabase.auth.signUp({ +email, +password +}) + +if (error) { +console.error(error) +return redirect(`/login?message=${error.message}`) +} + +return redirect("/setup") +} + +const handleResetPassword = async (formData: FormData) => { +"use server" + +const origin = headers().get("origin") +const email = formData.get("email") as string +const cookieStore = cookies() +const supabase = createClient(cookieStore) + +const { error } = await supabase.auth.resetPasswordForEmail(email, { +redirectTo: `${origin}/auth/callback?next=/login/password` +}) + +if (error) { +return redirect(`/login?message=${error.message}`) +} + +return redirect("/login?message=Check email to reset password") +} + +return ( +
+
+ + + + + + + + + +Login + + + +Sign Up + + +
+Forgot your password? + +
+ +{searchParams?.message && ( +

+{searchParams.message} +

+)} + + +
+ +Continue with Google + +
+
+) } From ffe0baf128af1050414ffd287910990ed060649e Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Mon, 7 Jul 2025 02:48:19 -0500 Subject: [PATCH 30/98] Fix: create home workspace fallback on login --- app/[locale]/login/page.tsx | 70 ++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 33 deletions(-) diff --git a/app/[locale]/login/page.tsx b/app/[locale]/login/page.tsx index 2a8a19db51..122036f9a0 100644 --- a/app/[locale]/login/page.tsx +++ b/app/[locale]/login/page.tsx @@ -105,47 +105,51 @@ return await get(name) return process.env[name] } -const signUp = async (formData: FormData) => { -"use server" +const signIn = async (formData: FormData) => { +"use server"; -const email = formData.get("email") as string -const password = formData.get("password") as string +const email = formData.get("email") as string; +const password = formData.get("password") as string; +const cookieStore = cookies(); +const supabase = createClient(cookieStore); -const emailDomainWhitelistPatternsString = await getEnvVarOrEdgeConfigValue( -"EMAIL_DOMAIN_WHITELIST" -) -const emailDomainWhitelist = emailDomainWhitelistPatternsString?.trim() -? emailDomainWhitelistPatternsString?.split(",") -: [] -const emailWhitelistPatternsString = -await getEnvVarOrEdgeConfigValue("EMAIL_WHITELIST") -const emailWhitelist = emailWhitelistPatternsString?.trim() -? emailWhitelistPatternsString?.split(",") -: [] - -if (emailDomainWhitelist.length > 0 || emailWhitelist.length > 0) { -const domainMatch = emailDomainWhitelist?.includes(email.split("@")[1]) -const emailMatch = emailWhitelist?.includes(email) -if (!domainMatch && !emailMatch) { -return redirect( -`/login?message=Email ${email} is not allowed to sign up.` -) -} +const { data, error } = await supabase.auth.signInWithPassword({ +email, +password, +}); + +if (error) { +return redirect(`/login?message=${encodeURIComponent(error.message)}`); } -const cookieStore = cookies() -const supabase = createClient(cookieStore) +// Look for existing home workspace +let { data: homeWorkspace, error: homeWorkspaceError } = await supabase +.from("workspaces") +.select("*") +.eq("user_id", data.user.id) +.eq("is_home", true) +.single(); -const { error } = await supabase.auth.signUp({ -email, -password -}) +// If none exists, create it +if (!homeWorkspace) { +const { data: newWorkspace, error: createError } = await supabase +.from("workspaces") +.insert([{ user_id: data.user.id, is_home: true, name: "Home Workspace" }]) +.select() +.single(); -if (error) { -console.error(error) -return redirect(`/login?message=${error.message}`) +if (!newWorkspace || createError) { +throw new Error( +createError?.message || homeWorkspaceError?.message || "Failed to create home workspace" +); } +homeWorkspace = newWorkspace; +} + +return redirect(`/${homeWorkspace.id}/chat`); +}; + return redirect("/setup") } From 69c621e0b5688996f25b6600e4606a6e899e3a74 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Mon, 7 Jul 2025 03:03:18 -0500 Subject: [PATCH 31/98] fix: clean login page with fallback workspace creation and OAuth --- app/[locale]/login/page.tsx | 164 ++++++++++++++---------------------- 1 file changed, 64 insertions(+), 100 deletions(-) diff --git a/app/[locale]/login/page.tsx b/app/[locale]/login/page.tsx index 122036f9a0..519bc3c78c 100644 --- a/app/[locale]/login/page.tsx +++ b/app/[locale]/login/page.tsx @@ -1,109 +1,82 @@ -import { Brand } from "@/components/ui/brand" -import { Input } from "@/components/ui/input" -import { Label } from "@/components/ui/label" -import { SubmitButton } from "@/components/ui/submit-button" -import { createClient } from "@/lib/supabase/server" -import { Database } from "@/supabase/types" -import { createServerClient } from "@supabase/ssr" -import { get } from "@vercel/edge-config" -import { Metadata } from "next" -import { cookies, headers } from "next/headers" -import { redirect } from "next/navigation" +import { Brand } from "@/components/ui/brand"; +import { Input } from "@/components/ui/input"; +import { Label } from "@/components/ui/label"; +import { SubmitButton } from "@/components/ui/submit-button"; +import { createClient } from "@/lib/supabase/server"; +import { Database } from "@/supabase/types"; +import { createServerClient } from "@supabase/ssr"; +import { get } from "@vercel/edge-config"; +import { Metadata } from "next"; +import { cookies, headers } from "next/headers"; +import { redirect } from "next/navigation"; export const metadata: Metadata = { -title: "Login" -} +title: "Login", +}; export default async function Login({ -searchParams +searchParams, }: { -searchParams: { message: string } +searchParams: { message: string }; }) { -const cookieStore = cookies() +const cookieStore = cookies(); const supabase = createServerClient( process.env.NEXT_PUBLIC_SUPABASE_URL!, process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, { cookies: { get(name: string) { -return cookieStore.get(name)?.value -} -} +return cookieStore.get(name)?.value; +}, +}, } -) -const session = (await supabase.auth.getSession()).data.session +); + +const session = (await supabase.auth.getSession()).data.session; if (session) { -const { data: homeWorkspace, error } = await supabase +let { data: homeWorkspace, error: homeWorkspaceError } = await supabase .from("workspaces") .select("*") .eq("user_id", session.user.id) .eq("is_home", true) -.single() +.single(); if (!homeWorkspace) { -throw new Error(error.message) -} - -return redirect(`/${homeWorkspace.id}/chat`) -} - -const handleOAuthLogin = async () => { -"use server" - -const origin = headers().get("origin") -const cookieStore = cookies() -const supabase = createClient(cookieStore) - -await supabase.auth.signInWithOAuth({ -provider: 'google', -options: { -redirectTo: `${origin}/auth/callback` -} -}) -} - -const signIn = async (formData: FormData) => { -"use server" - -const email = formData.get("email") as string -const password = formData.get("password") as string -const cookieStore = cookies() -const supabase = createClient(cookieStore) - -const { data, error } = await supabase.auth.signInWithPassword({ -email, -password -}) - -if (error) { -return redirect(`/login?message=${error.message}`) -} - -const { data: homeWorkspace, error: homeWorkspaceError } = await supabase +const { data: newWorkspace, error: createError } = await supabase .from("workspaces") -.select("*") -.eq("user_id", data.user.id) -.eq("is_home", true) -.single() +.insert([{ user_id: session.user.id, is_home: true, name: "Home Workspace" }]) +.select() +.single(); -if (!homeWorkspace) { +if (!newWorkspace || createError) { throw new Error( -homeWorkspaceError?.message || "An unexpected error occurred" -) +createError?.message || +homeWorkspaceError?.message || +"Failed to create home workspace" +); } -return redirect(`/${homeWorkspace.id}/chat`) +homeWorkspace = newWorkspace; } -const getEnvVarOrEdgeConfigValue = async (name: string) => { -"use server" -if (process.env.EDGE_CONFIG) { -return await get(name) +return redirect(`/${homeWorkspace.id}/chat`); } -return process.env[name] -} +const handleOAuthLogin = async () => { +"use server"; + +const origin = headers().get("origin"); +const cookieStore = cookies(); +const supabase = createClient(cookieStore); + +await supabase.auth.signInWithOAuth({ +provider: "google", +options: { +redirectTo: `${origin}/auth/callback`, +}, +}); +}; const signIn = async (formData: FormData) => { "use server"; @@ -122,7 +95,6 @@ if (error) { return redirect(`/login?message=${encodeURIComponent(error.message)}`); } -// Look for existing home workspace let { data: homeWorkspace, error: homeWorkspaceError } = await supabase .from("workspaces") .select("*") @@ -130,7 +102,6 @@ let { data: homeWorkspace, error: homeWorkspaceError } = await supabase .eq("is_home", true) .single(); -// If none exists, create it if (!homeWorkspace) { const { data: newWorkspace, error: createError } = await supabase .from("workspaces") @@ -140,7 +111,9 @@ const { data: newWorkspace, error: createError } = await supabase if (!newWorkspace || createError) { throw new Error( -createError?.message || homeWorkspaceError?.message || "Failed to create home workspace" +createError?.message || +homeWorkspaceError?.message || +"Failed to create home workspace" ); } @@ -150,27 +123,24 @@ homeWorkspace = newWorkspace; return redirect(`/${homeWorkspace.id}/chat`); }; -return redirect("/setup") -} - const handleResetPassword = async (formData: FormData) => { -"use server" +"use server"; -const origin = headers().get("origin") -const email = formData.get("email") as string -const cookieStore = cookies() -const supabase = createClient(cookieStore) +const origin = headers().get("origin"); +const email = formData.get("email") as string; +const cookieStore = cookies(); +const supabase = createClient(cookieStore); const { error } = await supabase.auth.resetPasswordForEmail(email, { -redirectTo: `${origin}/auth/callback?next=/login/password` -}) +redirectTo: `${origin}/auth/callback?next=/login/password`, +}); if (error) { -return redirect(`/login?message=${error.message}`) +return redirect(`/login?message=${error.message}`); } -return redirect("/login?message=Check email to reset password") -} +return redirect("/login?message=Check email to reset password"); +}; return (
@@ -204,13 +174,6 @@ placeholder="••••••••" Login - -Sign Up - -
Forgot your password?
-) +); } + From a97e587fbf62f2a7222db76f6cb8bc70404136e7 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Mon, 7 Jul 2025 03:20:39 -0500 Subject: [PATCH 32/98] fix: add auth check and redirect to chat page --- app/[locale]/chat/page.tsx | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/app/[locale]/chat/page.tsx b/app/[locale]/chat/page.tsx index 56e27abb47..ca3ad59415 100644 --- a/app/[locale]/chat/page.tsx +++ b/app/[locale]/chat/page.tsx @@ -1,6 +1,33 @@ import Chat from "@/components/Chat"; +import { cookies } from "next/headers"; +import { createServerClient } from "@supabase/ssr"; +import { Database } from "@/supabase/types"; +import { redirect } from "next/navigation"; + +export default async function ChatPage() { +const cookieStore = cookies(); + +const supabase = createServerClient( +process.env.NEXT_PUBLIC_SUPABASE_URL!, +process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, +{ +cookies: { +get(name: string) { +return cookieStore.get(name)?.value; +}, +}, +} +); + +const { +data: { session }, +} = await supabase.auth.getSession(); + +if (!session) { +// Not logged in — redirect to login page +return redirect("/login"); +} -export default function ChatPage() { return (
From 7311a916106dc1058ae402b6655a80e38a103116 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Mon, 7 Jul 2025 03:49:38 -0500 Subject: [PATCH 33/98] feat: add console log to debug Supabase signIn result --- app/[locale]/login/page.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/[locale]/login/page.tsx b/app/[locale]/login/page.tsx index 519bc3c78c..76a2f1a689 100644 --- a/app/[locale]/login/page.tsx +++ b/app/[locale]/login/page.tsx @@ -91,6 +91,8 @@ email, password, }); +console.log("signIn result", data, error); + if (error) { return redirect(`/login?message=${encodeURIComponent(error.message)}`); } From bcae999dce04749d07f54a9ff99184c85b010297 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Mon, 7 Jul 2025 03:53:53 -0500 Subject: [PATCH 34/98] feat: add /api/session endpoint to inspect session cookies --- app/api/session/route.ts | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 app/api/session/route.ts diff --git a/app/api/session/route.ts b/app/api/session/route.ts new file mode 100644 index 0000000000..4135e179e2 --- /dev/null +++ b/app/api/session/route.ts @@ -0,0 +1,8 @@ +import { cookies } from "next/headers"; + +export async function GET() { +const cookieStore = cookies(); +return Response.json( +Object.fromEntries(cookieStore.entries()) +); +} From bb5cb6bd807ff8f191132637627b0750471599d2 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Mon, 7 Jul 2025 04:10:24 -0500 Subject: [PATCH 35/98] Fix: /api/session endpoint to fetch Supabase session --- app/api/session/route.ts | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/app/api/session/route.ts b/app/api/session/route.ts index 4135e179e2..adc95fe883 100644 --- a/app/api/session/route.ts +++ b/app/api/session/route.ts @@ -1,8 +1,32 @@ import { cookies } from "next/headers"; +import { NextResponse } from "next/server"; +import { createServerClient } from "@supabase/ssr"; +import { Database } from "@/supabase/types"; export async function GET() { const cookieStore = cookies(); -return Response.json( -Object.fromEntries(cookieStore.entries()) + +const supabase = createServerClient( +process.env.NEXT_PUBLIC_SUPABASE_URL!, +process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, +{ +cookies: { +get(name) { +return cookieStore.get(name)?.value; +}, +}, +} ); + +const { +data: { session }, +error, +} = await supabase.auth.getSession(); + +if (error) { +console.error("Error getting session:", error); +return NextResponse.json({ session: null, error: error.message }, { status: 500 }); +} + +return NextResponse.json({ session }); } From fab29b4785f1f6e65c664935ea51e95ee82c4e69 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Wed, 9 Jul 2025 05:33:00 -0500 Subject: [PATCH 36/98] Fix profile.ts to prevent JSON object error and add debug logging --- db/profile.ts | 103 ++++++++++++++++++++++++++++---------------------- 1 file changed, 58 insertions(+), 45 deletions(-) diff --git a/db/profile.ts b/db/profile.ts index 2f28d465f1..0649f7b441 100644 --- a/db/profile.ts +++ b/db/profile.ts @@ -2,70 +2,83 @@ import { supabase } from "@/lib/supabase/browser-client" import { TablesInsert, TablesUpdate } from "@/supabase/types" export const getProfileByUserId = async (userId: string) => { - const { data: profile, error } = await supabase - .from("profiles") - .select("*") - .eq("user_id", userId) - .single() +console.log("🪵 getProfileByUserId called with:", userId); - if (!profile) { - throw new Error(error.message) - } +const { data: profile, error } = await supabase +.from("profiles") +.select("*") +.eq("user_id", userId) +.single() - return profile +if (!profile) { +throw new Error(error?.message || `No profile found for user_id: ${userId}`) +} + +return profile } export const getProfilesByUserId = async (userId: string) => { - const { data: profiles, error } = await supabase - .from("profiles") - .select("*") - .eq("user_id", userId) +console.log("🪵 getProfilesByUserId called with:", userId); + +const { data: profiles, error } = await supabase +.from("profiles") +.select("*") +.eq("user_id", userId) - if (!profiles) { - throw new Error(error.message) - } +if (!profiles) { +throw new Error(error?.message || `No profiles found for user_id: ${userId}`) +} - return profiles +return profiles } export const createProfile = async (profile: TablesInsert<"profiles">) => { - const { data: createdProfile, error } = await supabase - .from("profiles") - .insert([profile]) - .select("*") - .single() +console.log("🪵 createProfile called with:", profile); + +const { data: createdProfile, error } = await supabase +.from("profiles") +.insert([profile]) +.select("*") +.single() - if (error) { - throw new Error(error.message) - } +if (error) { +throw new Error(error.message) +} - return createdProfile +return createdProfile } export const updateProfile = async ( - profileId: string, - profile: TablesUpdate<"profiles"> +profileId: string, +profile: TablesUpdate<"profiles"> ) => { - const { data: updatedProfile, error } = await supabase - .from("profiles") - .update(profile) - .eq("id", profileId) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return updatedProfile +console.log("🪵 updateProfile called with:", profileId, profile); + +const { data: updatedProfile, error } = await supabase +.from("profiles") +.update(profile) +.eq("id", profileId) +.select("*") +.single() + +if (error) { +throw new Error(error.message) +} + +return updatedProfile } export const deleteProfile = async (profileId: string) => { - const { error } = await supabase.from("profiles").delete().eq("id", profileId) +console.log("🪵 deleteProfile called with:", profileId); + +const { error } = await supabase +.from("profiles") +.delete() +.eq("id", profileId) - if (error) { - throw new Error(error.message) - } +if (error) { +throw new Error(error.message) +} - return true +return true } From c86e373a3cbffe2ea9d01ee34a430e420d785986 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Wed, 9 Jul 2025 21:32:40 -0500 Subject: [PATCH 37/98] Fix: use maybeSingle to handle single profiles row gracefully --- db/profile.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/db/profile.ts b/db/profile.ts index 0649f7b441..521a751bc9 100644 --- a/db/profile.ts +++ b/db/profile.ts @@ -82,3 +82,9 @@ throw new Error(error.message) return true } + + + + + + From 42748cccdc01bc441a5fc6b08edbcfe51f9ba6e2 Mon Sep 17 00:00:00 2001 From: Kaylee Cisna Date: Thu, 10 Jul 2025 16:21:31 -0500 Subject: [PATCH 38/98] Add missing db/profiles.ts with maybeSingle fix --- app/[locale]/chat/page.tsx | 68 +- app/[locale]/login/page.tsx | 403 +++---- app/[locale]/page.tsx | 94 +- app/api/auth/callback/route.ts | 26 +- app/api/chat/google/route.ts | 1 - app/api/chat/route.ts | 44 +- app/api/session/route.ts | 53 +- components/Chat.tsx | 215 ++-- components/chat/chat-helpers/index.ts | 7 +- db/files.ts | 5 +- db/profiles.ts | 72 ++ lib/build-prompt.ts | 54 +- lib/chat-setting-limits.ts | 2 +- lib/models/llm/google-llm-list.ts | 7 +- lib/supabase/client.ts | 6 +- package-lock.json | 1476 +++++++++++++++---------- 16 files changed, 1464 insertions(+), 1069 deletions(-) create mode 100644 db/profiles.ts diff --git a/app/[locale]/chat/page.tsx b/app/[locale]/chat/page.tsx index ca3ad59415..7ce4fe8c09 100644 --- a/app/[locale]/chat/page.tsx +++ b/app/[locale]/chat/page.tsx @@ -1,41 +1,41 @@ -import Chat from "@/components/Chat"; -import { cookies } from "next/headers"; -import { createServerClient } from "@supabase/ssr"; -import { Database } from "@/supabase/types"; -import { redirect } from "next/navigation"; +import Chat from "@/components/Chat" +import { cookies } from "next/headers" +import { createServerClient } from "@supabase/ssr" +import { Database } from "@/supabase/types" +import { redirect } from "next/navigation" export default async function ChatPage() { -const cookieStore = cookies(); + const cookieStore = cookies() -const supabase = createServerClient( -process.env.NEXT_PUBLIC_SUPABASE_URL!, -process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, -{ -cookies: { -get(name: string) { -return cookieStore.get(name)?.value; -}, -}, -} -); + const supabase = createServerClient( + process.env.NEXT_PUBLIC_SUPABASE_URL!, + process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, + { + cookies: { + get(name: string) { + return cookieStore.get(name)?.value + } + } + } + ) -const { -data: { session }, -} = await supabase.auth.getSession(); + const { + data: { session } + } = await supabase.auth.getSession() -if (!session) { -// Not logged in — redirect to login page -return redirect("/login"); -} + if (!session) { + // Not logged in — redirect to login page + return redirect("/login") + } -return ( -
-
-

SourceField Chat

-
-
- -
-
-); + return ( +
+
+

SourceField Chat

+
+
+ +
+
+ ) } diff --git a/app/[locale]/login/page.tsx b/app/[locale]/login/page.tsx index 76a2f1a689..50d953e27c 100644 --- a/app/[locale]/login/page.tsx +++ b/app/[locale]/login/page.tsx @@ -1,207 +1,210 @@ -import { Brand } from "@/components/ui/brand"; -import { Input } from "@/components/ui/input"; -import { Label } from "@/components/ui/label"; -import { SubmitButton } from "@/components/ui/submit-button"; -import { createClient } from "@/lib/supabase/server"; -import { Database } from "@/supabase/types"; -import { createServerClient } from "@supabase/ssr"; -import { get } from "@vercel/edge-config"; -import { Metadata } from "next"; -import { cookies, headers } from "next/headers"; -import { redirect } from "next/navigation"; +import { Brand } from "@/components/ui/brand" +import { Input } from "@/components/ui/input" +import { Label } from "@/components/ui/label" +import { SubmitButton } from "@/components/ui/submit-button" +import { createClient } from "@/lib/supabase/server" +import { Database } from "@/supabase/types" +import { createServerClient } from "@supabase/ssr" +import { get } from "@vercel/edge-config" +import { Metadata } from "next" +import { cookies, headers } from "next/headers" +import { redirect } from "next/navigation" export const metadata: Metadata = { -title: "Login", -}; + title: "Login" +} export default async function Login({ -searchParams, + searchParams }: { -searchParams: { message: string }; + searchParams: { message: string } }) { -const cookieStore = cookies(); -const supabase = createServerClient( -process.env.NEXT_PUBLIC_SUPABASE_URL!, -process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, -{ -cookies: { -get(name: string) { -return cookieStore.get(name)?.value; -}, -}, -} -); - -const session = (await supabase.auth.getSession()).data.session; - -if (session) { -let { data: homeWorkspace, error: homeWorkspaceError } = await supabase -.from("workspaces") -.select("*") -.eq("user_id", session.user.id) -.eq("is_home", true) -.single(); - -if (!homeWorkspace) { -const { data: newWorkspace, error: createError } = await supabase -.from("workspaces") -.insert([{ user_id: session.user.id, is_home: true, name: "Home Workspace" }]) -.select() -.single(); - -if (!newWorkspace || createError) { -throw new Error( -createError?.message || -homeWorkspaceError?.message || -"Failed to create home workspace" -); -} - -homeWorkspace = newWorkspace; -} - -return redirect(`/${homeWorkspace.id}/chat`); + const cookieStore = cookies() + const supabase = createServerClient( + process.env.NEXT_PUBLIC_SUPABASE_URL!, + process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, + { + cookies: { + get(name: string) { + return cookieStore.get(name)?.value + } + } + } + ) + + const session = (await supabase.auth.getSession()).data.session + + if (session) { + let { data: homeWorkspace, error: homeWorkspaceError } = await supabase + .from("workspaces") + .select("*") + .eq("user_id", session.user.id) + .eq("is_home", true) + .single() + + if (!homeWorkspace) { + const { data: newWorkspace, error: createError } = await supabase + .from("workspaces") + .insert([ + { user_id: session.user.id, is_home: true, name: "Home Workspace" } + ]) + .select() + .single() + + if (!newWorkspace || createError) { + throw new Error( + createError?.message || + homeWorkspaceError?.message || + "Failed to create home workspace" + ) + } + + homeWorkspace = newWorkspace + } + + return redirect(`/${homeWorkspace.id}/chat`) + } + + const handleOAuthLogin = async () => { + "use server" + + const origin = headers().get("origin") + const cookieStore = cookies() + const supabase = createClient(cookieStore) + + await supabase.auth.signInWithOAuth({ + provider: "google", + options: { + redirectTo: `${origin}/auth/callback` + } + }) + } + + const signIn = async (formData: FormData) => { + "use server" + + const email = formData.get("email") as string + const password = formData.get("password") as string + const cookieStore = cookies() + const supabase = createClient(cookieStore) + + const { data, error } = await supabase.auth.signInWithPassword({ + email, + password + }) + + console.log("signIn result", data, error) + + if (error) { + return redirect(`/login?message=${encodeURIComponent(error.message)}`) + } + + let { data: homeWorkspace, error: homeWorkspaceError } = await supabase + .from("workspaces") + .select("*") + .eq("user_id", data.user.id) + .eq("is_home", true) + .single() + + if (!homeWorkspace) { + const { data: newWorkspace, error: createError } = await supabase + .from("workspaces") + .insert([ + { user_id: data.user.id, is_home: true, name: "Home Workspace" } + ]) + .select() + .single() + + if (!newWorkspace || createError) { + throw new Error( + createError?.message || + homeWorkspaceError?.message || + "Failed to create home workspace" + ) + } + + homeWorkspace = newWorkspace + } + + return redirect(`/${homeWorkspace.id}/chat`) + } + + const handleResetPassword = async (formData: FormData) => { + "use server" + + const origin = headers().get("origin") + const email = formData.get("email") as string + const cookieStore = cookies() + const supabase = createClient(cookieStore) + + const { error } = await supabase.auth.resetPasswordForEmail(email, { + redirectTo: `${origin}/auth/callback?next=/login/password` + }) + + if (error) { + return redirect(`/login?message=${error.message}`) + } + + return redirect("/login?message=Check email to reset password") + } + + return ( +
+
+ + + + + + + + + + Login + + +
+ Forgot your password? + +
+ + {searchParams?.message && ( +

+ {searchParams.message} +

+ )} + + +
+ + Continue with Google + +
+
+ ) } - -const handleOAuthLogin = async () => { -"use server"; - -const origin = headers().get("origin"); -const cookieStore = cookies(); -const supabase = createClient(cookieStore); - -await supabase.auth.signInWithOAuth({ -provider: "google", -options: { -redirectTo: `${origin}/auth/callback`, -}, -}); -}; - -const signIn = async (formData: FormData) => { -"use server"; - -const email = formData.get("email") as string; -const password = formData.get("password") as string; -const cookieStore = cookies(); -const supabase = createClient(cookieStore); - -const { data, error } = await supabase.auth.signInWithPassword({ -email, -password, -}); - -console.log("signIn result", data, error); - -if (error) { -return redirect(`/login?message=${encodeURIComponent(error.message)}`); -} - -let { data: homeWorkspace, error: homeWorkspaceError } = await supabase -.from("workspaces") -.select("*") -.eq("user_id", data.user.id) -.eq("is_home", true) -.single(); - -if (!homeWorkspace) { -const { data: newWorkspace, error: createError } = await supabase -.from("workspaces") -.insert([{ user_id: data.user.id, is_home: true, name: "Home Workspace" }]) -.select() -.single(); - -if (!newWorkspace || createError) { -throw new Error( -createError?.message || -homeWorkspaceError?.message || -"Failed to create home workspace" -); -} - -homeWorkspace = newWorkspace; -} - -return redirect(`/${homeWorkspace.id}/chat`); -}; - -const handleResetPassword = async (formData: FormData) => { -"use server"; - -const origin = headers().get("origin"); -const email = formData.get("email") as string; -const cookieStore = cookies(); -const supabase = createClient(cookieStore); - -const { error } = await supabase.auth.resetPasswordForEmail(email, { -redirectTo: `${origin}/auth/callback?next=/login/password`, -}); - -if (error) { -return redirect(`/login?message=${error.message}`); -} - -return redirect("/login?message=Check email to reset password"); -}; - -return ( -
-
- - - - - - - - - -Login - - -
-Forgot your password? - -
- -{searchParams?.message && ( -

-{searchParams.message} -

-)} - - -
- -Continue with Google - -
-
-); -} - diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index a07331d1aa..06782ca4e6 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -1,51 +1,51 @@ -"use client"; +"use client" -import { ChatbotUISVG } from "@/components/icons/chatbotui-svg"; -import { IconArrowRight } from "@tabler/icons-react"; -import { useTheme } from "next-themes"; -import Link from "next/link"; -import Chat from "@/components/Chat"; // Import your Chat component -import { useEffect } from "react"; -import { supabase } from "@/lib/supabase/browser-client"; +import { ChatbotUISVG } from "@/components/icons/chatbotui-svg" +import { IconArrowRight } from "@tabler/icons-react" +import { useTheme } from "next-themes" +import Link from "next/link" +import Chat from "@/components/Chat" // Import your Chat component +import { useEffect } from "react" +import { supabase } from "@/lib/supabase/browser-client" export default function HomePage() { -const { theme } = useTheme(); - -useEffect(() => { -const params = new URLSearchParams(window.location.search); -const accessToken = params.get("access_token"); -const refreshToken = params.get("refresh_token"); - -if (accessToken && refreshToken) { -supabase.auth.setSession({ -access_token: accessToken, -refresh_token: refreshToken, -}); -// Optional: remove tokens from URL -window.history.replaceState({}, document.title, window.location.pathname); -} -}, []); - -return ( -
-
- -
- -

Chatbot UI

- -{/* Chat UI inserted here */} -
- -
- - -Start Chatting - - -
-); + const { theme } = useTheme() + + useEffect(() => { + const params = new URLSearchParams(window.location.search) + const accessToken = params.get("access_token") + const refreshToken = params.get("refresh_token") + + if (accessToken && refreshToken) { + supabase.auth.setSession({ + access_token: accessToken, + refresh_token: refreshToken + }) + // Optional: remove tokens from URL + window.history.replaceState({}, document.title, window.location.pathname) + } + }, []) + + return ( +
+
+ +
+ +

Chatbot UI

+ + {/* Chat UI inserted here */} +
+ +
+ + + Start Chatting + + +
+ ) } diff --git a/app/api/auth/callback/route.ts b/app/api/auth/callback/route.ts index 6bbd9895a2..cff7afb33b 100644 --- a/app/api/auth/callback/route.ts +++ b/app/api/auth/callback/route.ts @@ -8,21 +8,21 @@ export async function GET(request: Request) { const next = requestUrl.searchParams.get("next") if (code) { -const cookieStore = cookies() -const supabase = createClient(cookieStore) -const { data, error } = await supabase.auth.exchangeCodeForSession(code) + const cookieStore = cookies() + const supabase = createClient(cookieStore) + const { data, error } = await supabase.auth.exchangeCodeForSession(code) -if (error) { -console.error("Error exchanging code:", error) -} + if (error) { + console.error("Error exchanging code:", error) + } -if (data?.session) { -// Redirect back to home page with tokens in query params -return NextResponse.redirect( -`${requestUrl.origin}/?access_token=${data.session.access_token}&refresh_token=${data.session.refresh_token}` -) -} -} + if (data?.session) { + // Redirect back to home page with tokens in query params + return NextResponse.redirect( + `${requestUrl.origin}/?access_token=${data.session.access_token}&refresh_token=${data.session.refresh_token}` + ) + } + } if (next) { return NextResponse.redirect(requestUrl.origin + next) diff --git a/app/api/chat/google/route.ts b/app/api/chat/google/route.ts index ad79139646..cb9820ee88 100644 --- a/app/api/chat/google/route.ts +++ b/app/api/chat/google/route.ts @@ -44,7 +44,6 @@ export async function POST(request: Request) { return new Response(readableStream, { headers: { "Content-Type": "text/plain" } }) - } catch (error: any) { let errorMessage = error.message || "An unexpected error occurred" const errorCode = error.status || 500 diff --git a/app/api/chat/route.ts b/app/api/chat/route.ts index 30ede576f8..642cf94b9f 100644 --- a/app/api/chat/route.ts +++ b/app/api/chat/route.ts @@ -1,29 +1,29 @@ -import { NextResponse } from 'next/server'; +import { NextResponse } from "next/server" export async function POST(req: Request) { -console.log("OPENAI_API_KEY:", process.env.OPENAI_API_KEY); + console.log("OPENAI_API_KEY:", process.env.OPENAI_API_KEY) -const body = await req.json(); -const { messages } = body; + const body = await req.json() + const { messages } = body -const response = await fetch("https://api.openai.com/v1/chat/completions", { -method: "POST", -headers: { -"Content-Type": "application/json", -"Authorization": `Bearer ${process.env.OPENAI_API_KEY}`, -}, -body: JSON.stringify({ -model: "gpt-3.5-turbo", // or gpt-4 if your key supports it -messages, -temperature: 0.7, -}), -}); + const response = await fetch("https://api.openai.com/v1/chat/completions", { + method: "POST", + headers: { + "Content-Type": "application/json", + Authorization: `Bearer ${process.env.OPENAI_API_KEY}` + }, + body: JSON.stringify({ + model: "gpt-3.5-turbo", // or gpt-4 if your key supports it + messages, + temperature: 0.7 + }) + }) -if (!response.ok) { -const errorText = await response.text(); -return NextResponse.json({ error: errorText }, { status: response.status }); -} + if (!response.ok) { + const errorText = await response.text() + return NextResponse.json({ error: errorText }, { status: response.status }) + } -const data = await response.json(); -return NextResponse.json({ result: data.choices[0].message.content }); + const data = await response.json() + return NextResponse.json({ result: data.choices[0].message.content }) } diff --git a/app/api/session/route.ts b/app/api/session/route.ts index adc95fe883..333af40813 100644 --- a/app/api/session/route.ts +++ b/app/api/session/route.ts @@ -1,32 +1,35 @@ -import { cookies } from "next/headers"; -import { NextResponse } from "next/server"; -import { createServerClient } from "@supabase/ssr"; -import { Database } from "@/supabase/types"; +import { cookies } from "next/headers" +import { NextResponse } from "next/server" +import { createServerClient } from "@supabase/ssr" +import { Database } from "@/supabase/types" export async function GET() { -const cookieStore = cookies(); + const cookieStore = cookies() -const supabase = createServerClient( -process.env.NEXT_PUBLIC_SUPABASE_URL!, -process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, -{ -cookies: { -get(name) { -return cookieStore.get(name)?.value; -}, -}, -} -); + const supabase = createServerClient( + process.env.NEXT_PUBLIC_SUPABASE_URL!, + process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, + { + cookies: { + get(name) { + return cookieStore.get(name)?.value + } + } + } + ) -const { -data: { session }, -error, -} = await supabase.auth.getSession(); + const { + data: { session }, + error + } = await supabase.auth.getSession() -if (error) { -console.error("Error getting session:", error); -return NextResponse.json({ session: null, error: error.message }, { status: 500 }); -} + if (error) { + console.error("Error getting session:", error) + return NextResponse.json( + { session: null, error: error.message }, + { status: 500 } + ) + } -return NextResponse.json({ session }); + return NextResponse.json({ session }) } diff --git a/components/Chat.tsx b/components/Chat.tsx index d4139eb8fe..5423b0a6e3 100644 --- a/components/Chat.tsx +++ b/components/Chat.tsx @@ -1,127 +1,126 @@ // components/Chat.tsx -"use client"; +"use client" -import React, { useState, useEffect, useRef } from "react"; +import React, { useState, useEffect, useRef } from "react" interface Message { -id: string; -role: "user" | "assistant"; -content: string; + id: string + role: "user" | "assistant" + content: string } export default function Chat() { -const [messages, setMessages] = useState([]); -const [input, setInput] = useState(""); -const [isLoading, setIsLoading] = useState(false); -const messagesEndRef = useRef(null); + const [messages, setMessages] = useState([]) + const [input, setInput] = useState("") + const [isLoading, setIsLoading] = useState(false) + const messagesEndRef = useRef(null) -const scrollToBottom = () => { -messagesEndRef.current?.scrollIntoView({ behavior: "smooth" }); -}; + const scrollToBottom = () => { + messagesEndRef.current?.scrollIntoView({ behavior: "smooth" }) + } -useEffect(() => { -scrollToBottom(); -}, [messages]); + useEffect(() => { + scrollToBottom() + }, [messages]) -const handleSubmit = async (e: React.FormEvent) => { -e.preventDefault(); -if (!input.trim()) return; + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault() + if (!input.trim()) return -const userMessage: Message = { -id: crypto.randomUUID(), -role: "user", -content: input.trim(), -}; + const userMessage: Message = { + id: crypto.randomUUID(), + role: "user", + content: input.trim() + } -setMessages((prev) => [...prev, userMessage]); -setInput(""); -setIsLoading(true); + setMessages(prev => [...prev, userMessage]) + setInput("") + setIsLoading(true) -try { -const response = await fetch("/api/chat/", { -method: "POST", -headers: { -"Content-Type": "application/json", -}, -body: JSON.stringify({ -messages: [...messages, userMessage].map(({ role, content }) => ({ -role, -content, -})), -}), -}); + try { + const response = await fetch("/api/chat/", { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({ + messages: [...messages, userMessage].map(({ role, content }) => ({ + role, + content + })) + }) + }) -if (!response.ok) { -throw new Error("Failed to get response from server"); -} + if (!response.ok) { + throw new Error("Failed to get response from server") + } -const data = await response.json(); -const assistantMessage: Message = { -id: crypto.randomUUID(), -role: "assistant", -content: data.result || "Sorry, I didn't understand that.", -}; + const data = await response.json() + const assistantMessage: Message = { + id: crypto.randomUUID(), + role: "assistant", + content: data.result || "Sorry, I didn't understand that." + } -setMessages((prev) => [...prev, assistantMessage]); -} catch (error) { -console.error(error); -const errorMessage: Message = { -id: crypto.randomUUID(), -role: "assistant", -content: "There was an error. Please try again later.", -}; -setMessages((prev) => [...prev, errorMessage]); -} finally { -setIsLoading(false); -} -}; + setMessages(prev => [...prev, assistantMessage]) + } catch (error) { + console.error(error) + const errorMessage: Message = { + id: crypto.randomUUID(), + role: "assistant", + content: "There was an error. Please try again later." + } + setMessages(prev => [...prev, errorMessage]) + } finally { + setIsLoading(false) + } + } -return ( -
-
-{messages.length === 0 && ( -

Start the conversation...

-)} -{messages.map(({ id, role, content }) => ( -
-
-{content} -
-
-))} -
-
+ return ( +
+
+ {messages.length === 0 && ( +

Start the conversation...

+ )} + {messages.map(({ id, role, content }) => ( +
+
+ {content} +
+
+ ))} +
+
-
- setInput(e.target.value)} -disabled={isLoading} -autoFocus -/> - -
-
-); +
+ setInput(e.target.value)} + disabled={isLoading} + autoFocus + /> + +
+
+ ) } - diff --git a/components/chat/chat-helpers/index.ts b/components/chat/chat-helpers/index.ts index 17a2089638..ec4a548cdc 100644 --- a/components/chat/chat-helpers/index.ts +++ b/components/chat/chat-helpers/index.ts @@ -208,9 +208,12 @@ export const handleHostedChat = async ( let draftMessages = await buildFinalMessages(payload, profile, chatImages) - let formattedMessages : any[] = [] + let formattedMessages: any[] = [] if (provider === "google") { - formattedMessages = await adaptMessagesForGoogleGemini(payload, draftMessages) + formattedMessages = await adaptMessagesForGoogleGemini( + payload, + draftMessages + ) } else { formattedMessages = draftMessages } diff --git a/db/files.ts b/db/files.ts index 68ad01e343..0b69625e68 100644 --- a/db/files.ts +++ b/db/files.ts @@ -94,7 +94,10 @@ export const createFile = async ( let validFilename = fileRecord.name.replace(/[^a-z0-9.]/gi, "_").toLowerCase() const extension = file.name.split(".").pop() const extensionIndex = validFilename.lastIndexOf(".") - const baseName = validFilename.substring(0, (extensionIndex < 0) ? undefined : extensionIndex) + const baseName = validFilename.substring( + 0, + extensionIndex < 0 ? undefined : extensionIndex + ) const maxBaseNameLength = 100 - (extension?.length || 0) - 1 if (baseName.length > maxBaseNameLength) { fileRecord.name = baseName.substring(0, maxBaseNameLength) + "." + extension diff --git a/db/profiles.ts b/db/profiles.ts new file mode 100644 index 0000000000..666ff8b89a --- /dev/null +++ b/db/profiles.ts @@ -0,0 +1,72 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { TablesInsert, TablesUpdate } from "@/supabase/types" + +export const getProfileByUserId = async (userId: string) => { + const { data: profile, error } = await supabase + .from("profiles") + .select("*") + .eq("user_id", userId) + .limit(1) + .maybeSingle() + + if (error) { + throw new Error(error.message) + } + + return profile +} + +export const getProfilesByUserId = async (userId: string) => { + const { data: profiles, error } = await supabase + .from("profiles") + .select("*") + .eq("user_id", userId) + + if (error) { + throw new Error(error.message) + } + + return profiles +} + +export const createProfile = async (profile: TablesInsert<"profiles">) => { + const { data: createdProfile, error } = await supabase + .from("profiles") + .insert([profile]) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return createdProfile +} + +export const updateProfile = async ( + profileId: string, + profile: TablesUpdate<"profiles"> +) => { + const { data: updatedProfile, error } = await supabase + .from("profiles") + .update(profile) + .eq("id", profileId) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return updatedProfile +} + +export const deleteProfile = async (profileId: string) => { + const { error } = await supabase.from("profiles").delete().eq("id", profileId) + + if (error) { + throw new Error(error.message) + } + + return true +} diff --git a/lib/build-prompt.ts b/lib/build-prompt.ts index ddb0e76377..8bda846f9f 100644 --- a/lib/build-prompt.ts +++ b/lib/build-prompt.ts @@ -184,36 +184,35 @@ function buildRetrievalText(fileItems: Tables<"file_items">[]) { } function adaptSingleMessageForGoogleGemini(message: any) { - let adaptedParts = [] let rawParts = [] - if(!Array.isArray(message.content)) { - rawParts.push({type: 'text', text: message.content}) + if (!Array.isArray(message.content)) { + rawParts.push({ type: "text", text: message.content }) } else { rawParts = message.content } - for(let i = 0; i < rawParts.length; i++) { + for (let i = 0; i < rawParts.length; i++) { let rawPart = rawParts[i] - if(rawPart.type == 'text') { - adaptedParts.push({text: rawPart.text}) - } else if(rawPart.type === 'image_url') { + if (rawPart.type == "text") { + adaptedParts.push({ text: rawPart.text }) + } else if (rawPart.type === "image_url") { adaptedParts.push({ inlineData: { data: getBase64FromDataURL(rawPart.image_url.url), - mimeType: getMediaTypeFromDataURL(rawPart.image_url.url), + mimeType: getMediaTypeFromDataURL(rawPart.image_url.url) } }) } } - let role = 'user' - if(["user", "system"].includes(message.role)) { - role = 'user' - } else if(message.role === 'assistant') { - role = 'model' + let role = "user" + if (["user", "system"].includes(message.role)) { + role = "user" + } else if (message.role === "assistant") { + role = "model" } return { @@ -222,29 +221,29 @@ function adaptSingleMessageForGoogleGemini(message: any) { } } -function adaptMessagesForGeminiVision( - messages: any[] -) { +function adaptMessagesForGeminiVision(messages: any[]) { // Gemini Pro Vision cannot process multiple messages // Reformat, using all texts and last visual only const basePrompt = messages[0].parts[0].text const baseRole = messages[0].role - const lastMessage = messages[messages.length-1] - const visualMessageParts = lastMessage.parts; - let visualQueryMessages = [{ - role: "user", - parts: [ - `${baseRole}:\n${basePrompt}\n\nuser:\n${visualMessageParts[0].text}\n\n`, - visualMessageParts.slice(1) - ] - }] + const lastMessage = messages[messages.length - 1] + const visualMessageParts = lastMessage.parts + let visualQueryMessages = [ + { + role: "user", + parts: [ + `${baseRole}:\n${basePrompt}\n\nuser:\n${visualMessageParts[0].text}\n\n`, + visualMessageParts.slice(1) + ] + } + ] return visualQueryMessages } export async function adaptMessagesForGoogleGemini( payload: ChatPayload, - messages: any[] + messages: any[] ) { let geminiMessages = [] for (let i = 0; i < messages.length; i++) { @@ -252,9 +251,8 @@ export async function adaptMessagesForGoogleGemini( geminiMessages.push(adaptedMessage) } - if(payload.chatSettings.model === "gemini-pro-vision") { + if (payload.chatSettings.model === "gemini-pro-vision") { geminiMessages = adaptMessagesForGeminiVision(geminiMessages) } return geminiMessages } - diff --git a/lib/chat-setting-limits.ts b/lib/chat-setting-limits.ts index c802bd657b..1dcde08490 100644 --- a/lib/chat-setting-limits.ts +++ b/lib/chat-setting-limits.ts @@ -47,7 +47,7 @@ export const CHAT_SETTING_LIMITS: Record = { }, // GOOGLE MODELS - + "gemini-1.5-flash": { MIN_TEMPERATURE: 0.0, MAX_TEMPERATURE: 1.0, diff --git a/lib/models/llm/google-llm-list.ts b/lib/models/llm/google-llm-list.ts index d039eda4af..833eb7ec2b 100644 --- a/lib/models/llm/google-llm-list.ts +++ b/lib/models/llm/google-llm-list.ts @@ -44,4 +44,9 @@ const GEMINI_PRO_VISION: LLM = { imageInput: true } -export const GOOGLE_LLM_LIST: LLM[] = [GEMINI_PRO, GEMINI_PRO_VISION, GEMINI_1_5_PRO, GEMINI_1_5_FLASH] +export const GOOGLE_LLM_LIST: LLM[] = [ + GEMINI_PRO, + GEMINI_PRO_VISION, + GEMINI_1_5_PRO, + GEMINI_1_5_FLASH +] diff --git a/lib/supabase/client.ts b/lib/supabase/client.ts index cbd580c50c..04ce121fad 100644 --- a/lib/supabase/client.ts +++ b/lib/supabase/client.ts @@ -1,6 +1,6 @@ -import { createClient } from '@supabase/supabase-js' +import { createClient } from "@supabase/supabase-js" const supabase = createClient( -process.env.SUPABASE_URL!, -process.env.SUPABASE_ANON_KEY! + process.env.SUPABASE_URL!, + process.env.SUPABASE_ANON_KEY! ) diff --git a/package-lock.json b/package-lock.json index 2b03be3258..ad4d6b1463 100644 --- a/package-lock.json +++ b/package-lock.json @@ -173,15 +173,14 @@ } }, "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.1.0.tgz", - "integrity": "sha512-g/VW9ZQEFJAOwAyUb8JFf7MLiLy2uEB4rU270rGzDwICxnxMlPy0O11KVePSgS36K1NI29gSlK84n5INGhd4Ag==", + "version": "11.9.3", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.9.3.tgz", + "integrity": "sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ==", + "license": "MIT", "dependencies": { "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.13", - "@types/lodash.clonedeep": "^4.5.7", - "js-yaml": "^4.1.0", - "lodash.clonedeep": "^4.5.0" + "@types/json-schema": "^7.0.15", + "js-yaml": "^4.1.0" }, "engines": { "node": ">= 16" @@ -311,81 +310,19 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/compat-data": { "version": "7.23.5", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", @@ -715,17 +652,19 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -752,99 +691,26 @@ } }, "node_modules/@babel/helpers": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.8.tgz", - "integrity": "sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==", + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", + "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "license": "MIT", "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6" + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@babel/parser": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", + "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "@babel/types": "^7.28.0" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", "bin": { "parser": "bin/babel-parser.js" }, @@ -2019,24 +1885,23 @@ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" }, "node_modules/@babel/runtime": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.8.tgz", - "integrity": "sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", + "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2071,13 +1936,13 @@ } }, "node_modules/@babel/types": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", - "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2881,9 +2746,10 @@ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", - "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -2895,22 +2761,26 @@ "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" }, "node_modules/@langchain/community": { - "version": "0.0.19", - "resolved": "https://registry.npmjs.org/@langchain/community/-/community-0.0.19.tgz", - "integrity": "sha512-4+vpEINOvCZVqjcVVmctvA7ewMSopRbqJ/leDx7hvkeW1iC/aZJDqzWZPxiYNM0VxmB8qeTPFSMB0l4AKwO74w==", + "version": "0.0.57", + "resolved": "https://registry.npmjs.org/@langchain/community/-/community-0.0.57.tgz", + "integrity": "sha512-tib4UJNkyA4TPNsTNChiBtZmThVJBr7X/iooSmKeCr+yUEha2Yxly3A4OAO95Vlpj4Q+od8HAfCbZih/1XqAMw==", + "license": "MIT", "dependencies": { - "@langchain/core": "~0.1.16", - "@langchain/openai": "~0.0.10", + "@langchain/core": "~0.1.60", + "@langchain/openai": "~0.0.28", + "expr-eval": "^2.0.2", "flat": "^5.0.2", - "langsmith": "~0.0.48", + "langsmith": "~0.1.1", "uuid": "^9.0.0", - "zod": "^3.22.3" + "zod": "^3.22.3", + "zod-to-json-schema": "^3.22.5" }, "engines": { "node": ">=18" }, "peerDependencies": { "@aws-crypto/sha256-js": "^5.0.0", + "@aws-sdk/client-bedrock-agent-runtime": "^3.485.0", "@aws-sdk/client-bedrock-runtime": "^3.422.0", "@aws-sdk/client-dynamodb": "^3.310.0", "@aws-sdk/client-kendra": "^3.352.0", @@ -2918,9 +2788,10 @@ "@aws-sdk/client-sagemaker-runtime": "^3.310.0", "@aws-sdk/client-sfn": "^3.310.0", "@aws-sdk/credential-provider-node": "^3.388.0", + "@azure/search-documents": "^12.0.0", "@clickhouse/client": "^0.2.5", - "@cloudflare/ai": "^1.0.12", - "@datastax/astra-db-ts": "0.1.2", + "@cloudflare/ai": "*", + "@datastax/astra-db-ts": "^1.0.0", "@elastic/elasticsearch": "^8.4.0", "@getmetal/metal-sdk": "*", "@getzep/zep-js": "^0.9.0", @@ -2929,11 +2800,14 @@ "@google-ai/generativelanguage": "^0.2.1", "@gradientai/nodejs-sdk": "^1.2.0", "@huggingface/inference": "^2.6.4", + "@mlc-ai/web-llm": "^0.2.35", "@mozilla/readability": "*", + "@neondatabase/serverless": "*", "@opensearch-project/opensearch": "*", - "@pinecone-database/pinecone": "^1.1.0", + "@pinecone-database/pinecone": "*", "@planetscale/database": "^1.8.0", - "@qdrant/js-client-rest": "^1.2.0", + "@premai/prem-sdk": "^0.3.25", + "@qdrant/js-client-rest": "^1.8.2", "@raycast/api": "^1.55.2", "@rockset/client": "^0.9.1", "@smithy/eventstream-codec": "^2.0.5", @@ -2946,32 +2820,41 @@ "@tensorflow/tfjs-converter": "*", "@tensorflow/tfjs-core": "*", "@upstash/redis": "^1.20.6", + "@upstash/vector": "^1.0.7", "@vercel/kv": "^0.2.3", "@vercel/postgres": "^0.5.0", "@writerai/writer-sdk": "^0.40.2", "@xata.io/client": "^0.28.0", "@xenova/transformers": "^2.5.4", "@zilliz/milvus2-sdk-node": ">=2.2.7", + "better-sqlite3": "^9.4.0", "cassandra-driver": "^4.7.2", + "cborg": "^4.1.1", "chromadb": "*", - "closevector-common": "0.1.0-alpha.1", - "closevector-node": "0.1.0-alpha.10", - "closevector-web": "0.1.0-alpha.16", - "cohere-ai": ">=6.0.0", + "closevector-common": "0.1.3", + "closevector-node": "0.1.6", + "closevector-web": "0.1.6", + "cohere-ai": "*", "convex": "^1.3.1", + "couchbase": "^4.3.0", "discord.js": "^14.14.1", + "dria": "^0.0.3", + "duck-duck-scrape": "^2.2.5", "faiss-node": "^0.5.1", - "firebase-admin": "^11.9.0", + "firebase-admin": "^11.9.0 || ^12.0.0", "google-auth-library": "^8.9.0", "googleapis": "^126.0.1", - "hnswlib-node": "^1.4.2", + "hnswlib-node": "^3.0.0", "html-to-text": "^9.0.5", + "interface-datastore": "^8.2.11", "ioredis": "^5.3.2", + "it-all": "^3.0.4", "jsdom": "*", + "jsonwebtoken": "^9.0.2", "llmonitor": "^0.5.9", "lodash": "^4.17.21", "lunary": "^0.6.11", - "mongodb": "^5.2.0", + "mongodb": ">=5.2.0", "mysql2": "^3.3.3", "neo4j-driver": "*", "node-llama-cpp": "*", @@ -2979,14 +2862,14 @@ "pg-copy-streams": "^6.0.5", "pickleparser": "^0.2.1", "portkey-ai": "^0.1.11", - "redis": "^4.6.4", + "redis": "*", "replicate": "^0.18.0", "typeorm": "^0.3.12", "typesense": "^1.5.3", "usearch": "^1.1.1", "vectordb": "^0.1.4", "voy-search": "0.6.2", - "weaviate-ts-client": "^1.4.0", + "weaviate-ts-client": "*", "web-auth-library": "^1.0.3", "ws": "^8.14.2" }, @@ -2994,6 +2877,9 @@ "@aws-crypto/sha256-js": { "optional": true }, + "@aws-sdk/client-bedrock-agent-runtime": { + "optional": true + }, "@aws-sdk/client-bedrock-runtime": { "optional": true }, @@ -3015,6 +2901,9 @@ "@aws-sdk/credential-provider-node": { "optional": true }, + "@azure/search-documents": { + "optional": true + }, "@clickhouse/client": { "optional": true }, @@ -3048,9 +2937,15 @@ "@huggingface/inference": { "optional": true }, + "@mlc-ai/web-llm": { + "optional": true + }, "@mozilla/readability": { "optional": true }, + "@neondatabase/serverless": { + "optional": true + }, "@opensearch-project/opensearch": { "optional": true }, @@ -3060,6 +2955,9 @@ "@planetscale/database": { "optional": true }, + "@premai/prem-sdk": { + "optional": true + }, "@qdrant/js-client-rest": { "optional": true }, @@ -3099,6 +2997,9 @@ "@upstash/redis": { "optional": true }, + "@upstash/vector": { + "optional": true + }, "@vercel/kv": { "optional": true }, @@ -3117,9 +3018,15 @@ "@zilliz/milvus2-sdk-node": { "optional": true }, + "better-sqlite3": { + "optional": true + }, "cassandra-driver": { "optional": true }, + "cborg": { + "optional": true + }, "chromadb": { "optional": true }, @@ -3138,9 +3045,18 @@ "convex": { "optional": true }, + "couchbase": { + "optional": true + }, "discord.js": { "optional": true }, + "dria": { + "optional": true + }, + "duck-duck-scrape": { + "optional": true + }, "faiss-node": { "optional": true }, @@ -3159,12 +3075,21 @@ "html-to-text": { "optional": true }, + "interface-datastore": { + "optional": true + }, "ioredis": { "optional": true }, + "it-all": { + "optional": true + }, "jsdom": { "optional": true }, + "jsonwebtoken": { + "optional": true + }, "llmonitor": { "optional": true }, @@ -3230,17 +3155,78 @@ } } }, + "node_modules/@langchain/community/node_modules/@types/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", + "license": "MIT" + }, + "node_modules/@langchain/community/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@langchain/community/node_modules/langsmith": { + "version": "0.1.68", + "resolved": "https://registry.npmjs.org/langsmith/-/langsmith-0.1.68.tgz", + "integrity": "sha512-otmiysWtVAqzMx3CJ4PrtUBhWRG5Co8Z4o7hSZENPjlit9/j3/vm3TSvbaxpDYakZxtMjhkcJTqrdYFipISEiQ==", + "license": "MIT", + "dependencies": { + "@types/uuid": "^10.0.0", + "commander": "^10.0.1", + "p-queue": "^6.6.2", + "p-retry": "4", + "semver": "^7.6.3", + "uuid": "^10.0.0" + }, + "peerDependencies": { + "openai": "*" + }, + "peerDependenciesMeta": { + "openai": { + "optional": true + } + } + }, + "node_modules/@langchain/community/node_modules/langsmith/node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@langchain/community/node_modules/zod-to-json-schema": { + "version": "3.24.6", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.6.tgz", + "integrity": "sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==", + "license": "ISC", + "peerDependencies": { + "zod": "^3.24.1" + } + }, "node_modules/@langchain/core": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/@langchain/core/-/core-0.1.17.tgz", - "integrity": "sha512-PNmQgyAsDFm3DsZD+Djmm+sxH8xTGMlAryhYNgTg1Wkvhh+ztCqcVVYAv+aWch8CM56FBYMD8Guq0TJuRJJxEA==", + "version": "0.1.63", + "resolved": "https://registry.npmjs.org/@langchain/core/-/core-0.1.63.tgz", + "integrity": "sha512-+fjyYi8wy6x1P+Ee1RWfIIEyxd9Ee9jksEwvrggPwwI/p45kIDTdYTblXsM13y4mNWTiACyLSdbwnPaxxdoz+w==", + "license": "MIT", "dependencies": { "ansi-styles": "^5.0.0", "camelcase": "6", "decamelize": "1.2.0", - "js-tiktoken": "^1.0.8", - "langsmith": "~0.0.48", + "js-tiktoken": "^1.0.12", + "langsmith": "~0.1.7", "ml-distance": "^4.0.0", + "mustache": "^4.2.0", "p-queue": "^6.6.2", "p-retry": "4", "uuid": "^9.0.0", @@ -3251,6 +3237,12 @@ "node": ">=18" } }, + "node_modules/@langchain/core/node_modules/@types/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", + "license": "MIT" + }, "node_modules/@langchain/core/node_modules/ansi-styles": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", @@ -3273,6 +3265,50 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@langchain/core/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@langchain/core/node_modules/langsmith": { + "version": "0.1.68", + "resolved": "https://registry.npmjs.org/langsmith/-/langsmith-0.1.68.tgz", + "integrity": "sha512-otmiysWtVAqzMx3CJ4PrtUBhWRG5Co8Z4o7hSZENPjlit9/j3/vm3TSvbaxpDYakZxtMjhkcJTqrdYFipISEiQ==", + "license": "MIT", + "dependencies": { + "@types/uuid": "^10.0.0", + "commander": "^10.0.1", + "p-queue": "^6.6.2", + "p-retry": "4", + "semver": "^7.6.3", + "uuid": "^10.0.0" + }, + "peerDependencies": { + "openai": "*" + }, + "peerDependenciesMeta": { + "openai": { + "optional": true + } + } + }, + "node_modules/@langchain/core/node_modules/langsmith/node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@langchain/core/node_modules/zod-to-json-schema": { "version": "3.22.3", "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.22.3.tgz", @@ -3282,20 +3318,30 @@ } }, "node_modules/@langchain/openai": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/@langchain/openai/-/openai-0.0.12.tgz", - "integrity": "sha512-MR9x1xRXwJpdYlVx9Tga89q/MvxPrSTYyA5vy9tQ8dfQHNWnlgmI4gB/hDIsWUu1ooScagD4wW+aTnohTX+g+g==", - "dependencies": { - "@langchain/core": "~0.1.13", - "js-tiktoken": "^1.0.7", - "openai": "^4.24.2", - "zod": "^3.22.3", - "zod-to-json-schema": "3.20.3" + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/@langchain/openai/-/openai-0.0.34.tgz", + "integrity": "sha512-M+CW4oXle5fdoz2T2SwdOef8pl3/1XmUx1vjn2mXUVM/128aO0l23FMF0SNBsAbRV6P+p/TuzjodchJbi0Ht/A==", + "license": "MIT", + "dependencies": { + "@langchain/core": ">0.1.56 <0.3.0", + "js-tiktoken": "^1.0.12", + "openai": "^4.41.1", + "zod": "^3.22.4", + "zod-to-json-schema": "^3.22.3" }, "engines": { "node": ">=18" } }, + "node_modules/@langchain/openai/node_modules/zod-to-json-schema": { + "version": "3.24.6", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.6.tgz", + "integrity": "sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==", + "license": "ISC", + "peerDependencies": { + "zod": "^3.24.1" + } + }, "node_modules/@mistralai/mistralai": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/@mistralai/mistralai/-/mistralai-0.0.8.tgz", @@ -3314,9 +3360,10 @@ } }, "node_modules/@next/env": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.1.0.tgz", - "integrity": "sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw==" + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.30.tgz", + "integrity": "sha512-KBiBKrDY6kxTQWGzKjQB7QirL3PiiOkV7KW98leHFjtVRKtft76Ra5qSA/SL75xT44dp6hOcqiiJ6iievLOYug==", + "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { "version": "14.1.0", @@ -3328,12 +3375,13 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.1.0.tgz", - "integrity": "sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ==", + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.30.tgz", + "integrity": "sha512-EAqfOTb3bTGh9+ewpO/jC59uACadRHM6TSA9DdxJB/6gxOpyV+zrbqeXiFTDy9uV6bmipFDkfpAskeaDcO+7/g==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -3343,12 +3391,13 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.1.0.tgz", - "integrity": "sha512-1jgudN5haWxiAl3O1ljUS2GfupPmcftu2RYJqZiMJmmbBT5M1XDffjUtRUzP4W3cBHsrvkfOFdQ71hAreNQP6g==", + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.30.tgz", + "integrity": "sha512-TyO7Wz1IKE2kGv8dwQ0bmPL3s44EKVencOqwIY69myoS3rdpO1NPg5xPM5ymKu7nfX4oYJrpMxv8G9iqLsnL4A==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -3358,12 +3407,13 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.1.0.tgz", - "integrity": "sha512-RHo7Tcj+jllXUbK7xk2NyIDod3YcCPDZxj1WLIYxd709BQ7WuRYl3OWUNG+WUfqeQBds6kvZYlc42NJJTNi4tQ==", + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.30.tgz", + "integrity": "sha512-I5lg1fgPJ7I5dk6mr3qCH1hJYKJu1FsfKSiTKoYwcuUf53HWTrEkwmMI0t5ojFKeA6Vu+SfT2zVy5NS0QLXV4Q==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -3373,12 +3423,13 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.1.0.tgz", - "integrity": "sha512-v6kP8sHYxjO8RwHmWMJSq7VZP2nYCkRVQ0qolh2l6xroe9QjbgV8siTbduED4u0hlk0+tjS6/Tuy4n5XCp+l6g==", + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.30.tgz", + "integrity": "sha512-8GkNA+sLclQyxgzCDs2/2GSwBc92QLMrmYAmoP2xehe5MUKBLB2cgo34Yu242L1siSkwQkiV4YLdCnjwc/Micw==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -3388,12 +3439,13 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.1.0.tgz", - "integrity": "sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ==", + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.30.tgz", + "integrity": "sha512-8Ly7okjssLuBoe8qaRCcjGtcMsv79hwzn/63wNeIkzJVFVX06h5S737XNr7DZwlsbTBDOyI6qbL2BJB5n6TV/w==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -3403,12 +3455,13 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.1.0.tgz", - "integrity": "sha512-rbaIYFt2X9YZBSbH/CwGAjbBG2/MrACCVu2X0+kSykHzHnYH5FjHxwXLkcoJ10cX0aWCEynpu+rP76x0914atg==", + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.30.tgz", + "integrity": "sha512-dBmV1lLNeX4mR7uI7KNVHsGQU+OgTG5RGFPi3tBJpsKPvOPtg9poyav/BYWrB3GPQL4dW5YGGgalwZ79WukbKQ==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -3418,12 +3471,13 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.1.0.tgz", - "integrity": "sha512-o1N5TsYc8f/HpGt39OUQpQ9AKIGApd3QLueu7hXk//2xq5Z9OxmV6sQfNp8C7qYmiOlHYODOGqNNa0e9jvchGQ==", + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.30.tgz", + "integrity": "sha512-6MMHi2Qc1Gkq+4YLXAgbYslE1f9zMGBikKMdmQRHXjkGPot1JY3n5/Qrbg40Uvbi8//wYnydPnyvNhI1DMUW1g==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -3433,12 +3487,13 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.1.0.tgz", - "integrity": "sha512-XXIuB1DBRCFwNO6EEzCTMHT5pauwaSj4SWs7CYnME57eaReAKBXCnkUE80p/pAZcewm7hs+vGvNqDPacEXHVkw==", + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.30.tgz", + "integrity": "sha512-pVZMnFok5qEX4RT59mK2hEVtJX+XFfak+/rjHpyFh7juiT52r177bfFKhnlafm0UOSldhXjj32b+LZIOdswGTg==", "cpu": [ "ia32" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -3448,12 +3503,13 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.1.0.tgz", - "integrity": "sha512-9WEbVRRAqJ3YFVqEZIxUqkiO8l1nool1LmNxygr5HWF8AcSYsEpneUDhmjUVJEzO2A04+oPtZdombzzPPkTtgg==", + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.30.tgz", + "integrity": "sha512-4KCo8hMZXMjpTzs3HOqOGYYwAXymXIy7PEPAXNEcEOyKqkjiDlECumrWziy+JEF0Oi4ILHGxzgQ3YiMGG2t/Lg==", "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -5114,11 +5170,19 @@ "sourcemap-codec": "^1.4.8" } }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "license": "Apache-2.0" + }, "node_modules/@swc/helpers": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", - "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", + "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", + "license": "Apache-2.0", "dependencies": { + "@swc/counter": "^0.1.3", "tslib": "^2.4.0" } }, @@ -5379,9 +5443,10 @@ } }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" }, "node_modules/@types/estree-jsx": { "version": "1.0.3", @@ -5510,19 +5575,6 @@ "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz", "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==" }, - "node_modules/@types/lodash": { - "version": "4.14.202", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", - "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==" - }, - "node_modules/@types/lodash.clonedeep": { - "version": "4.5.9", - "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.9.tgz", - "integrity": "sha512-19429mWC+FyaAhOLzsS8kZUsI+/GmBAQ0HFiCPsKGU+7pBXOQWhyrY6xNNDwUSX8SMZMJvuFVMF9O5dQOlQK9Q==", - "dependencies": { - "@types/lodash": "*" - } - }, "node_modules/@types/long": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", @@ -5762,10 +5814,11 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -5943,148 +5996,163 @@ "peer": true }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "license": "MIT", "peer": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "license": "Apache-2.0", "peer": true, "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, @@ -6113,12 +6181,14 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "license": "BSD-3-Clause", "peer": true }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "license": "Apache-2.0", "peer": true }, "node_modules/abab": { @@ -6140,9 +6210,10 @@ } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -6160,15 +6231,6 @@ "acorn-walk": "^8.0.2" } }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "peer": true, - "peerDependencies": { - "acorn": "^8" - } - }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -6210,9 +6272,10 @@ } }, "node_modules/ai": { - "version": "2.2.31", - "resolved": "https://registry.npmjs.org/ai/-/ai-2.2.31.tgz", - "integrity": "sha512-WQH13RxP+RYo9IE/FX8foNQh9gcKO/dhl9OGy5JL2bHJVBlnugPmH2CYJWaRt+mvjXHaU8txB+jzGo/fbtH2HA==", + "version": "2.2.37", + "resolved": "https://registry.npmjs.org/ai/-/ai-2.2.37.tgz", + "integrity": "sha512-JIYm5N1muGVqBqWnvkt29FmXhESoO5TcDxw74OE41SsM+uIou6NPDDs0XWb/ABcd1gmp6k5zym64KWMPM2xm0A==", + "license": "Apache-2.0", "dependencies": { "eventsource-parser": "1.0.0", "nanoid": "3.3.6", @@ -6261,6 +6324,45 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, "node_modules/ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", @@ -6837,6 +6939,78 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "node_modules/bare-events": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", + "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", + "license": "Apache-2.0", + "optional": true + }, + "node_modules/bare-fs": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.1.6.tgz", + "integrity": "sha512-25RsLF33BqooOEFNdMcEhMpJy8EoR88zSMrnOQOaM3USnOK2VmaJ1uaQEwPA6AQjrv1lXChScosN6CzbwbO9OQ==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-events": "^2.5.4", + "bare-path": "^3.0.0", + "bare-stream": "^2.6.4" + }, + "engines": { + "bare": ">=1.16.0" + }, + "peerDependencies": { + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } + } + }, + "node_modules/bare-os": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.1.tgz", + "integrity": "sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "bare": ">=1.14.0" + } + }, + "node_modules/bare-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-os": "^3.0.1" + } + }, + "node_modules/bare-stream": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.5.tgz", + "integrity": "sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "streamx": "^2.21.0" + }, + "peerDependencies": { + "bare-buffer": "*", + "bare-events": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + }, + "bare-events": { + "optional": true + } + } + }, "node_modules/base-64": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz", @@ -6911,29 +7085,31 @@ "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" } }, "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.25.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", + "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", "funding": [ { "type": "opencollective", @@ -6948,11 +7124,12 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "caniuse-lite": "^1.0.30001726", + "electron-to-chromium": "^1.5.173", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" @@ -7061,9 +7238,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001579", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz", - "integrity": "sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==", + "version": "1.0.30001727", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz", + "integrity": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==", "funding": [ { "type": "opencollective", @@ -7077,7 +7254,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/ccount": { "version": "2.0.1", @@ -7760,10 +7938,11 @@ "dev": true }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -8332,9 +8511,10 @@ "dev": true }, "node_modules/ejs": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", - "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "license": "Apache-2.0", "dependencies": { "jake": "^10.8.5" }, @@ -8346,9 +8526,10 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.640", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.640.tgz", - "integrity": "sha512-z/6oZ/Muqk4BaE7P69bXhUhpJbUM9ZJeka43ZwxsDshKtePns4mhBlh8bU5+yrnOnz3fhG82XLzGUXazOmsWnA==" + "version": "1.5.180", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.180.tgz", + "integrity": "sha512-ED+GEyEh3kYMwt2faNmgMB0b8O5qtATGgR4RmRsIp4T6p7B8vdMbIedYndnvZfsaXvSzegtpfqRMDNCjjiSduA==", + "license": "ISC" }, "node_modules/emittery": { "version": "0.13.1", @@ -8395,9 +8576,10 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "version": "5.18.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.2.tgz", + "integrity": "sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -8571,9 +8753,10 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -9247,6 +9430,22 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/fastq": { "version": "1.16.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", @@ -9297,9 +9496,10 @@ } }, "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -9316,9 +9516,10 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -9709,13 +9910,15 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause", "peer": true }, "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -10021,6 +10224,12 @@ "node": "*" } }, + "node_modules/highlightjs-vue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/highlightjs-vue/-/highlightjs-vue-1.0.0.tgz", + "integrity": "sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==", + "license": "CC0-1.0" + }, "node_modules/html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", @@ -10556,6 +10765,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -12083,9 +12293,10 @@ } }, "node_modules/js-tiktoken": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/js-tiktoken/-/js-tiktoken-1.0.8.tgz", - "integrity": "sha512-r7XK3E9/I+SOrbAGqb39pyO/rHAS1diAOSRAvaaLfHgXjkUSK9AiSd+r84Vn2f/GvXJYRAxKj8NHrUvqlaH5qg==", + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/js-tiktoken/-/js-tiktoken-1.0.20.tgz", + "integrity": "sha512-Xlaqhhs8VfCd6Sh7a1cFkZHQbYTLCwVJJWiHVxBYzLPxW0XsoxBy1hitmjkdIjD3Aon5BXLHFwU5O8WUx6HH+A==", + "license": "MIT", "dependencies": { "base64-js": "^1.5.1" } @@ -12279,13 +12490,14 @@ } }, "node_modules/katex": { - "version": "0.16.9", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.9.tgz", - "integrity": "sha512-fsSYjWS0EEOwvy81j3vRA8TEAhQhKiqO+FQaKWp0m39qwOzHVBgAUBIXWj1pB+O2W3fIpNa6Y9KSKCVbfPhyAQ==", + "version": "0.16.22", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.22.tgz", + "integrity": "sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" ], + "license": "MIT", "dependencies": { "commander": "^8.3.0" }, @@ -12722,11 +12934,6 @@ "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", "dev": true }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" - }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -13771,11 +13978,12 @@ ] }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -13917,6 +14125,15 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "license": "MIT", + "bin": { + "mustache": "bin/mustache" + } + }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", @@ -13971,12 +14188,13 @@ "peer": true }, "node_modules/next": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/next/-/next-14.1.0.tgz", - "integrity": "sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==", + "version": "14.2.30", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.30.tgz", + "integrity": "sha512-+COdu6HQrHHFQ1S/8BBsCag61jZacmvbuL2avHvQFbWa2Ox7bE+d8FyNgxRLjXQ5wtPyQwEmk85js/AuaG2Sbg==", + "license": "MIT", "dependencies": { - "@next/env": "14.1.0", - "@swc/helpers": "0.5.2", + "@next/env": "14.2.30", + "@swc/helpers": "0.5.5", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", "graceful-fs": "^4.2.11", @@ -13990,18 +14208,19 @@ "node": ">=18.17.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.1.0", - "@next/swc-darwin-x64": "14.1.0", - "@next/swc-linux-arm64-gnu": "14.1.0", - "@next/swc-linux-arm64-musl": "14.1.0", - "@next/swc-linux-x64-gnu": "14.1.0", - "@next/swc-linux-x64-musl": "14.1.0", - "@next/swc-win32-arm64-msvc": "14.1.0", - "@next/swc-win32-ia32-msvc": "14.1.0", - "@next/swc-win32-x64-msvc": "14.1.0" + "@next/swc-darwin-arm64": "14.2.30", + "@next/swc-darwin-x64": "14.2.30", + "@next/swc-linux-arm64-gnu": "14.2.30", + "@next/swc-linux-arm64-musl": "14.2.30", + "@next/swc-linux-x64-gnu": "14.2.30", + "@next/swc-linux-x64-musl": "14.2.30", + "@next/swc-win32-arm64-msvc": "14.2.30", + "@next/swc-win32-ia32-msvc": "14.2.30", + "@next/swc-win32-x64-msvc": "14.2.30" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.41.2", "react": "^18.2.0", "react-dom": "^18.2.0", "sass": "^1.3.0" @@ -14010,6 +14229,9 @@ "@opentelemetry/api": { "optional": true }, + "@playwright/test": { + "optional": true + }, "sass": { "optional": true } @@ -14142,9 +14364,10 @@ "dev": true }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", @@ -14401,22 +14624,33 @@ } }, "node_modules/openai": { - "version": "4.24.7", - "resolved": "https://registry.npmjs.org/openai/-/openai-4.24.7.tgz", - "integrity": "sha512-JUesECWPtsDHO0TlZGb6q73hnAmXUdzj9NrwgZeL4lqlRt/kR1sWrXoy8LocxN/6uOtitywvcJqe0O1PLkG45g==", + "version": "4.104.0", + "resolved": "https://registry.npmjs.org/openai/-/openai-4.104.0.tgz", + "integrity": "sha512-p99EFNsA/yX6UhVO93f5kJsDRLAg+CTA2RBqdHK4RtK8u5IJw32Hyb2dTGKbnnFmnuoBv5r7Z2CURI9sGZpSuA==", + "license": "Apache-2.0", "dependencies": { "@types/node": "^18.11.18", "@types/node-fetch": "^2.6.4", "abort-controller": "^3.0.0", "agentkeepalive": "^4.2.1", - "digest-fetch": "^1.3.0", "form-data-encoder": "1.7.2", "formdata-node": "^4.3.2", - "node-fetch": "^2.6.7", - "web-streams-polyfill": "^3.2.1" + "node-fetch": "^2.6.7" }, "bin": { "openai": "bin/cli" + }, + "peerDependencies": { + "ws": "^8.18.0", + "zod": "^3.23.8" + }, + "peerDependenciesMeta": { + "ws": { + "optional": true + }, + "zod": { + "optional": true + } } }, "node_modules/openai/node_modules/@types/node": { @@ -14726,9 +14960,10 @@ } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", @@ -15001,15 +15236,16 @@ "dev": true }, "node_modules/postcss/node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -15056,9 +15292,10 @@ } }, "node_modules/prebuild-install/node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.3.tgz", + "integrity": "sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==", + "license": "MIT", "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", @@ -15143,9 +15380,10 @@ } }, "node_modules/prismjs": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "license": "MIT", "engines": { "node": ">=6" } @@ -15281,11 +15519,6 @@ } ] }, - "node_modules/queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==" - }, "node_modules/ramda": { "version": "0.29.1", "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.29.1.tgz", @@ -15497,12 +15730,14 @@ } }, "node_modules/react-syntax-highlighter": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz", - "integrity": "sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==", + "version": "15.6.1", + "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.6.1.tgz", + "integrity": "sha512-OqJ2/vL7lEeV5zTJyG7kmARppUjiB9h9udl4qHQjjgEos66z00Ia0OckwYfRxCSFrW8RJIBnsBwQsHZbVPspqg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.3.1", "highlight.js": "^10.4.1", + "highlightjs-vue": "^1.0.0", "lowlight": "^1.17.0", "prismjs": "^1.27.0", "refractor": "^3.6.0" @@ -15717,11 +15952,6 @@ "node": ">=4" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" - }, "node_modules/regenerator-transform": { "version": "0.15.2", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", @@ -16003,9 +16233,10 @@ } }, "node_modules/rollup": { - "version": "2.79.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", - "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "version": "2.79.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", + "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", + "license": "MIT", "bin": { "rollup": "dist/bin/rollup" }, @@ -16165,12 +16396,10 @@ } }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -16178,22 +16407,6 @@ "node": ">=10" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/serialize-javascript": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", @@ -16203,18 +16416,20 @@ } }, "node_modules/seroval": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/seroval/-/seroval-1.0.4.tgz", - "integrity": "sha512-qQs/N+KfJu83rmszFQaTxcoJoPn6KNUruX4KmnmyD0oZkUoiNvJ1rpdYKDf4YHM05k+HOgCxa3yvf15QbVijGg==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/seroval/-/seroval-1.3.2.tgz", + "integrity": "sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==", + "license": "MIT", "peer": true, "engines": { "node": ">=10" } }, "node_modules/seroval-plugins": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/seroval-plugins/-/seroval-plugins-1.0.4.tgz", - "integrity": "sha512-DQ2IK6oQVvy8k+c2V5x5YCtUa/GGGsUwUBNN9UqohrZ0rWdUapBFpNMYP1bCyRHoxOJjdKGl+dieacFIpU/i1A==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/seroval-plugins/-/seroval-plugins-1.3.2.tgz", + "integrity": "sha512-0QvCV2lM3aj/U3YozDiVwx9zpH0q8A60CTWIv4Jszj/givcudPb48B+rkU5D51NJ0pTpweGMttHjboPa9/zoIQ==", + "license": "MIT", "peer": true, "engines": { "node": ">=10" @@ -16414,14 +16629,15 @@ } }, "node_modules/solid-js": { - "version": "1.8.11", - "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.8.11.tgz", - "integrity": "sha512-WdwmER+TwBJiN4rVQTVBxocg+9pKlOs41KzPYntrC86xO5sek8TzBYozPEZPL1IRWDouf2lMrvSbIs3CanlPvQ==", + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.9.7.tgz", + "integrity": "sha512-/saTKi8iWEM233n5OSi1YHCCuh66ZIQ7aK2hsToPe4tqGm7qAejU1SwNuTPivbWAYq7SjuHVVYxxuZQNRbICiw==", + "license": "MIT", "peer": true, "dependencies": { "csstype": "^3.1.0", - "seroval": "^1.0.3", - "seroval-plugins": "^1.0.3" + "seroval": "~1.3.0", + "seroval-plugins": "~1.3.0" } }, "node_modules/solid-swr-store": { @@ -16549,12 +16765,16 @@ } }, "node_modules/streamx": { - "version": "2.15.6", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.6.tgz", - "integrity": "sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==", + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.1.tgz", + "integrity": "sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==", + "license": "MIT", "dependencies": { - "fast-fifo": "^1.1.0", - "queue-tick": "^1.0.1" + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" } }, "node_modules/string_decoder": { @@ -16889,9 +17109,10 @@ } }, "node_modules/svelte": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.9.tgz", - "integrity": "sha512-hsoB/WZGEPFXeRRLPhPrbRz67PhP6sqYgvwcAs+gWdSQSvNDw+/lTeUJSWe5h2xC97Fz/8QxAOqItwBzNJPU8w==", + "version": "4.2.20", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.20.tgz", + "integrity": "sha512-eeEgGc2DtiUil5ANdtd8vPwt9AgaMdnuUFnPft9F5oMvU/FHu5IHFic+p1dR/UOB7XU2mX2yHW+NcTch4DCh5Q==", + "license": "MIT", "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.1", @@ -17044,13 +17265,17 @@ } }, "node_modules/tar-fs": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", - "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.0.tgz", + "integrity": "sha512-5Mty5y/sOF1YWj1J6GiBodjlDc05CUR8PKXrsnFAiSG0xA+GHeWLovaZPYUDXkH/1iKRf2+M5+OrRgzC7O9b7w==", + "license": "MIT", "dependencies": { - "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^4.0.1", + "bare-path": "^3.0.0" } }, "node_modules/tar-stream": { @@ -17100,12 +17325,13 @@ } }, "node_modules/terser": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", - "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", + "version": "5.43.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.43.1.tgz", + "integrity": "sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==", + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", + "acorn": "^8.14.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -17117,15 +17343,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", + "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" }, "engines": { "node": ">= 10.13.0" @@ -17149,6 +17376,34 @@ } } }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, "node_modules/terser-webpack-plugin/node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -17162,14 +17417,22 @@ "node": ">= 10.13.0" } }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "license": "MIT", "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" }, "engines": { "node": ">= 10.13.0" @@ -17236,6 +17499,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -17269,18 +17541,11 @@ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -17742,9 +18007,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", "funding": [ { "type": "opencollective", @@ -17759,9 +18024,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -17989,9 +18255,10 @@ } }, "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", + "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", + "license": "MIT", "peer": true, "dependencies": { "glob-to-regexp": "^0.4.1", @@ -18019,34 +18286,35 @@ } }, "node_modules/webpack": { - "version": "5.90.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.0.tgz", - "integrity": "sha512-bdmyXRCXeeNIePv6R6tGPyy20aUobw4Zy8r0LUS2EWO+U+Ke/gYDgsCh7bl5rB6jPpr4r0SZa6dPxBxLooDT3w==", + "version": "5.99.9", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.9.tgz", + "integrity": "sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg==", + "license": "MIT", "peer": true, "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.21.10", + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", + "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", + "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", + "schema-utils": "^4.3.2", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.0", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, "bin": { @@ -18102,10 +18370,11 @@ } }, "node_modules/webpack-bundle-analyzer/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -18131,6 +18400,36 @@ "node": ">=10.13.0" } }, + "node_modules/webpack/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, "node_modules/webpack/node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -18153,15 +18452,24 @@ "node": ">=4.0" } }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT", + "peer": true + }, "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "license": "MIT", "peer": true, "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" }, "engines": { "node": ">= 10.13.0" @@ -18724,9 +19032,10 @@ "dev": true }, "node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -18865,9 +19174,10 @@ } }, "node_modules/zod": { - "version": "3.22.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", - "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } From dad0758fc852434828ffbd09e8531d054ae3fea7 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Thu, 10 Jul 2025 17:05:25 -0500 Subject: [PATCH 39/98] fix: use maybeSingle in assistants.ts to handle multiple/no rows --- db/assistants.ts | 256 +++++++++++++++++++++++------------------------ 1 file changed, 128 insertions(+), 128 deletions(-) diff --git a/db/assistants.ts b/db/assistants.ts index 74284dc9b6..86a480daee 100644 --- a/db/assistants.ts +++ b/db/assistants.ts @@ -2,183 +2,183 @@ import { supabase } from "@/lib/supabase/browser-client" import { TablesInsert, TablesUpdate } from "@/supabase/types" export const getAssistantById = async (assistantId: string) => { - const { data: assistant, error } = await supabase - .from("assistants") - .select("*") - .eq("id", assistantId) - .single() - - if (!assistant) { - throw new Error(error.message) - } +const { data: assistant, error } = await supabase +.from("assistants") +.select("*") +.eq("id", assistantId) +.maybeSingle() + +if (!assistant || error) { +throw new Error(error?.message || "Assistant not found") +} - return assistant +return assistant } export const getAssistantWorkspacesByWorkspaceId = async ( - workspaceId: string +workspaceId: string ) => { - const { data: workspace, error } = await supabase - .from("workspaces") - .select( - ` - id, - name, - assistants (*) - ` - ) - .eq("id", workspaceId) - .single() - - if (!workspace) { - throw new Error(error.message) - } +const { data: workspace, error } = await supabase +.from("workspaces") +.select( +` +id, +name, +assistants (*) +` +) +.eq("id", workspaceId) +.maybeSingle() + +if (!workspace || error) { +throw new Error(error?.message || "Workspace not found") +} - return workspace +return workspace } export const getAssistantWorkspacesByAssistantId = async ( - assistantId: string +assistantId: string ) => { - const { data: assistant, error } = await supabase - .from("assistants") - .select( - ` - id, - name, - workspaces (*) - ` - ) - .eq("id", assistantId) - .single() - - if (!assistant) { - throw new Error(error.message) - } +const { data: assistant, error } = await supabase +.from("assistants") +.select( +` +id, +name, +workspaces (*) +` +) +.eq("id", assistantId) +.maybeSingle() + +if (!assistant || error) { +throw new Error(error?.message || "Assistant not found") +} - return assistant +return assistant } export const createAssistant = async ( - assistant: TablesInsert<"assistants">, - workspace_id: string +assistant: TablesInsert<"assistants">, +workspace_id: string ) => { - const { data: createdAssistant, error } = await supabase - .from("assistants") - .insert([assistant]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } +const { data: createdAssistant, error } = await supabase +.from("assistants") +.insert([assistant]) +.select("*") +.single() + +if (error) { +throw new Error(error.message) +} - await createAssistantWorkspace({ - user_id: createdAssistant.user_id, - assistant_id: createdAssistant.id, - workspace_id - }) +await createAssistantWorkspace({ +user_id: createdAssistant.user_id, +assistant_id: createdAssistant.id, +workspace_id +}) - return createdAssistant +return createdAssistant } export const createAssistants = async ( - assistants: TablesInsert<"assistants">[], - workspace_id: string +assistants: TablesInsert<"assistants">[], +workspace_id: string ) => { - const { data: createdAssistants, error } = await supabase - .from("assistants") - .insert(assistants) - .select("*") +const { data: createdAssistants, error } = await supabase +.from("assistants") +.insert(assistants) +.select("*") - if (error) { - throw new Error(error.message) - } +if (error) { +throw new Error(error.message) +} - await createAssistantWorkspaces( - createdAssistants.map(assistant => ({ - user_id: assistant.user_id, - assistant_id: assistant.id, - workspace_id - })) - ) +await createAssistantWorkspaces( +createdAssistants.map(assistant => ({ +user_id: assistant.user_id, +assistant_id: assistant.id, +workspace_id +})) +) - return createdAssistants +return createdAssistants } export const createAssistantWorkspace = async (item: { - user_id: string - assistant_id: string - workspace_id: string +user_id: string +assistant_id: string +workspace_id: string }) => { - const { data: createdAssistantWorkspace, error } = await supabase - .from("assistant_workspaces") - .insert([item]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } +const { data: createdAssistantWorkspace, error } = await supabase +.from("assistant_workspaces") +.insert([item]) +.select("*") +.single() + +if (error) { +throw new Error(error.message) +} - return createdAssistantWorkspace +return createdAssistantWorkspace } export const createAssistantWorkspaces = async ( - items: { user_id: string; assistant_id: string; workspace_id: string }[] +items: { user_id: string; assistant_id: string; workspace_id: string }[] ) => { - const { data: createdAssistantWorkspaces, error } = await supabase - .from("assistant_workspaces") - .insert(items) - .select("*") +const { data: createdAssistantWorkspaces, error } = await supabase +.from("assistant_workspaces") +.insert(items) +.select("*") - if (error) throw new Error(error.message) +if (error) throw new Error(error.message) - return createdAssistantWorkspaces +return createdAssistantWorkspaces } export const updateAssistant = async ( - assistantId: string, - assistant: TablesUpdate<"assistants"> +assistantId: string, +assistant: TablesUpdate<"assistants"> ) => { - const { data: updatedAssistant, error } = await supabase - .from("assistants") - .update(assistant) - .eq("id", assistantId) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } +const { data: updatedAssistant, error } = await supabase +.from("assistants") +.update(assistant) +.eq("id", assistantId) +.select("*") +.maybeSingle() + +if (!updatedAssistant || error) { +throw new Error(error?.message || "Failed to update assistant") +} - return updatedAssistant +return updatedAssistant } export const deleteAssistant = async (assistantId: string) => { - const { error } = await supabase - .from("assistants") - .delete() - .eq("id", assistantId) +const { error } = await supabase +.from("assistants") +.delete() +.eq("id", assistantId) - if (error) { - throw new Error(error.message) - } +if (error) { +throw new Error(error.message) +} - return true +return true } export const deleteAssistantWorkspace = async ( - assistantId: string, - workspaceId: string +assistantId: string, +workspaceId: string ) => { - const { error } = await supabase - .from("assistant_workspaces") - .delete() - .eq("assistant_id", assistantId) - .eq("workspace_id", workspaceId) +const { error } = await supabase +.from("assistant_workspaces") +.delete() +.eq("assistant_id", assistantId) +.eq("workspace_id", workspaceId) - if (error) throw new Error(error.message) +if (error) throw new Error(error.message) - return true +return true } From 3bd03e61f1bb0d2ae7798a08ec58576a9a9f8553 Mon Sep 17 00:00:00 2001 From: Kaylee Cisna Date: Thu, 10 Jul 2025 17:32:13 -0500 Subject: [PATCH 40/98] Fix db/profile.ts with correct maybeSingle logic, remove db/profiles.ts --- db - Copy/assistant-collections.ts | 69 ++++++ db - Copy/assistant-files.ts | 67 ++++++ db - Copy/assistant-tools.ts | 67 ++++++ db - Copy/assistants.ts | 184 +++++++++++++++ db - Copy/chat-files.ts | 50 ++++ db - Copy/chats.ts | 81 +++++++ db - Copy/collection-files.ts | 69 ++++++ db - Copy/collections.ts | 184 +++++++++++++++ db - Copy/files.ts | 319 ++++++++++++++++++++++++++ db - Copy/folders.ts | 57 +++++ db - Copy/index.ts | 10 + db - Copy/limits.ts | 43 ++++ db - Copy/message-file-items.ts | 36 +++ db - Copy/messages.ts | 104 +++++++++ db - Copy/models.ts | 177 ++++++++++++++ db - Copy/presets.ts | 177 ++++++++++++++ db - Copy/profile.ts | 90 ++++++++ {db => db - Copy}/profiles.ts | 0 db - Copy/prompts.ts | 177 ++++++++++++++ db - Copy/storage/assistant-images.ts | 56 +++++ db - Copy/storage/files.ts | 57 +++++ db - Copy/storage/message-images.ts | 33 +++ db - Copy/storage/profile-images.ts | 47 ++++ db - Copy/storage/workspace-images.ts | 56 +++++ db - Copy/tools.ts | 177 ++++++++++++++ db - Copy/workspaces.ts | 92 ++++++++ db/assistants.ts | 236 +++++++++---------- db/profile.ts | 107 ++++----- 28 files changed, 2647 insertions(+), 175 deletions(-) create mode 100644 db - Copy/assistant-collections.ts create mode 100644 db - Copy/assistant-files.ts create mode 100644 db - Copy/assistant-tools.ts create mode 100644 db - Copy/assistants.ts create mode 100644 db - Copy/chat-files.ts create mode 100644 db - Copy/chats.ts create mode 100644 db - Copy/collection-files.ts create mode 100644 db - Copy/collections.ts create mode 100644 db - Copy/files.ts create mode 100644 db - Copy/folders.ts create mode 100644 db - Copy/index.ts create mode 100644 db - Copy/limits.ts create mode 100644 db - Copy/message-file-items.ts create mode 100644 db - Copy/messages.ts create mode 100644 db - Copy/models.ts create mode 100644 db - Copy/presets.ts create mode 100644 db - Copy/profile.ts rename {db => db - Copy}/profiles.ts (100%) create mode 100644 db - Copy/prompts.ts create mode 100644 db - Copy/storage/assistant-images.ts create mode 100644 db - Copy/storage/files.ts create mode 100644 db - Copy/storage/message-images.ts create mode 100644 db - Copy/storage/profile-images.ts create mode 100644 db - Copy/storage/workspace-images.ts create mode 100644 db - Copy/tools.ts create mode 100644 db - Copy/workspaces.ts diff --git a/db - Copy/assistant-collections.ts b/db - Copy/assistant-collections.ts new file mode 100644 index 0000000000..7b61aa1d4f --- /dev/null +++ b/db - Copy/assistant-collections.ts @@ -0,0 +1,69 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { TablesInsert } from "@/supabase/types" + +export const getAssistantCollectionsByAssistantId = async ( + assistantId: string +) => { + const { data: assistantCollections, error } = await supabase + .from("assistants") + .select( + ` + id, + name, + collections (*) + ` + ) + .eq("id", assistantId) + .single() + + if (!assistantCollections) { + throw new Error(error.message) + } + + return assistantCollections +} + +export const createAssistantCollection = async ( + assistantCollection: TablesInsert<"assistant_collections"> +) => { + const { data: createdAssistantCollection, error } = await supabase + .from("assistant_collections") + .insert(assistantCollection) + .select("*") + + if (!createdAssistantCollection) { + throw new Error(error.message) + } + + return createdAssistantCollection +} + +export const createAssistantCollections = async ( + assistantCollections: TablesInsert<"assistant_collections">[] +) => { + const { data: createdAssistantCollections, error } = await supabase + .from("assistant_collections") + .insert(assistantCollections) + .select("*") + + if (!createdAssistantCollections) { + throw new Error(error.message) + } + + return createdAssistantCollections +} + +export const deleteAssistantCollection = async ( + assistantId: string, + collectionId: string +) => { + const { error } = await supabase + .from("assistant_collections") + .delete() + .eq("assistant_id", assistantId) + .eq("collection_id", collectionId) + + if (error) throw new Error(error.message) + + return true +} diff --git a/db - Copy/assistant-files.ts b/db - Copy/assistant-files.ts new file mode 100644 index 0000000000..bd4bef6278 --- /dev/null +++ b/db - Copy/assistant-files.ts @@ -0,0 +1,67 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { TablesInsert } from "@/supabase/types" + +export const getAssistantFilesByAssistantId = async (assistantId: string) => { + const { data: assistantFiles, error } = await supabase + .from("assistants") + .select( + ` + id, + name, + files (*) + ` + ) + .eq("id", assistantId) + .single() + + if (!assistantFiles) { + throw new Error(error.message) + } + + return assistantFiles +} + +export const createAssistantFile = async ( + assistantFile: TablesInsert<"assistant_files"> +) => { + const { data: createdAssistantFile, error } = await supabase + .from("assistant_files") + .insert(assistantFile) + .select("*") + + if (!createdAssistantFile) { + throw new Error(error.message) + } + + return createdAssistantFile +} + +export const createAssistantFiles = async ( + assistantFiles: TablesInsert<"assistant_files">[] +) => { + const { data: createdAssistantFiles, error } = await supabase + .from("assistant_files") + .insert(assistantFiles) + .select("*") + + if (!createdAssistantFiles) { + throw new Error(error.message) + } + + return createdAssistantFiles +} + +export const deleteAssistantFile = async ( + assistantId: string, + fileId: string +) => { + const { error } = await supabase + .from("assistant_files") + .delete() + .eq("assistant_id", assistantId) + .eq("file_id", fileId) + + if (error) throw new Error(error.message) + + return true +} diff --git a/db - Copy/assistant-tools.ts b/db - Copy/assistant-tools.ts new file mode 100644 index 0000000000..46419694f5 --- /dev/null +++ b/db - Copy/assistant-tools.ts @@ -0,0 +1,67 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { TablesInsert } from "@/supabase/types" + +export const getAssistantToolsByAssistantId = async (assistantId: string) => { + const { data: assistantTools, error } = await supabase + .from("assistants") + .select( + ` + id, + name, + tools (*) + ` + ) + .eq("id", assistantId) + .single() + + if (!assistantTools) { + throw new Error(error.message) + } + + return assistantTools +} + +export const createAssistantTool = async ( + assistantTool: TablesInsert<"assistant_tools"> +) => { + const { data: createdAssistantTool, error } = await supabase + .from("assistant_tools") + .insert(assistantTool) + .select("*") + + if (!createdAssistantTool) { + throw new Error(error.message) + } + + return createdAssistantTool +} + +export const createAssistantTools = async ( + assistantTools: TablesInsert<"assistant_tools">[] +) => { + const { data: createdAssistantTools, error } = await supabase + .from("assistant_tools") + .insert(assistantTools) + .select("*") + + if (!createdAssistantTools) { + throw new Error(error.message) + } + + return createdAssistantTools +} + +export const deleteAssistantTool = async ( + assistantId: string, + toolId: string +) => { + const { error } = await supabase + .from("assistant_tools") + .delete() + .eq("assistant_id", assistantId) + .eq("tool_id", toolId) + + if (error) throw new Error(error.message) + + return true +} diff --git a/db - Copy/assistants.ts b/db - Copy/assistants.ts new file mode 100644 index 0000000000..74284dc9b6 --- /dev/null +++ b/db - Copy/assistants.ts @@ -0,0 +1,184 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { TablesInsert, TablesUpdate } from "@/supabase/types" + +export const getAssistantById = async (assistantId: string) => { + const { data: assistant, error } = await supabase + .from("assistants") + .select("*") + .eq("id", assistantId) + .single() + + if (!assistant) { + throw new Error(error.message) + } + + return assistant +} + +export const getAssistantWorkspacesByWorkspaceId = async ( + workspaceId: string +) => { + const { data: workspace, error } = await supabase + .from("workspaces") + .select( + ` + id, + name, + assistants (*) + ` + ) + .eq("id", workspaceId) + .single() + + if (!workspace) { + throw new Error(error.message) + } + + return workspace +} + +export const getAssistantWorkspacesByAssistantId = async ( + assistantId: string +) => { + const { data: assistant, error } = await supabase + .from("assistants") + .select( + ` + id, + name, + workspaces (*) + ` + ) + .eq("id", assistantId) + .single() + + if (!assistant) { + throw new Error(error.message) + } + + return assistant +} + +export const createAssistant = async ( + assistant: TablesInsert<"assistants">, + workspace_id: string +) => { + const { data: createdAssistant, error } = await supabase + .from("assistants") + .insert([assistant]) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + await createAssistantWorkspace({ + user_id: createdAssistant.user_id, + assistant_id: createdAssistant.id, + workspace_id + }) + + return createdAssistant +} + +export const createAssistants = async ( + assistants: TablesInsert<"assistants">[], + workspace_id: string +) => { + const { data: createdAssistants, error } = await supabase + .from("assistants") + .insert(assistants) + .select("*") + + if (error) { + throw new Error(error.message) + } + + await createAssistantWorkspaces( + createdAssistants.map(assistant => ({ + user_id: assistant.user_id, + assistant_id: assistant.id, + workspace_id + })) + ) + + return createdAssistants +} + +export const createAssistantWorkspace = async (item: { + user_id: string + assistant_id: string + workspace_id: string +}) => { + const { data: createdAssistantWorkspace, error } = await supabase + .from("assistant_workspaces") + .insert([item]) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return createdAssistantWorkspace +} + +export const createAssistantWorkspaces = async ( + items: { user_id: string; assistant_id: string; workspace_id: string }[] +) => { + const { data: createdAssistantWorkspaces, error } = await supabase + .from("assistant_workspaces") + .insert(items) + .select("*") + + if (error) throw new Error(error.message) + + return createdAssistantWorkspaces +} + +export const updateAssistant = async ( + assistantId: string, + assistant: TablesUpdate<"assistants"> +) => { + const { data: updatedAssistant, error } = await supabase + .from("assistants") + .update(assistant) + .eq("id", assistantId) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return updatedAssistant +} + +export const deleteAssistant = async (assistantId: string) => { + const { error } = await supabase + .from("assistants") + .delete() + .eq("id", assistantId) + + if (error) { + throw new Error(error.message) + } + + return true +} + +export const deleteAssistantWorkspace = async ( + assistantId: string, + workspaceId: string +) => { + const { error } = await supabase + .from("assistant_workspaces") + .delete() + .eq("assistant_id", assistantId) + .eq("workspace_id", workspaceId) + + if (error) throw new Error(error.message) + + return true +} diff --git a/db - Copy/chat-files.ts b/db - Copy/chat-files.ts new file mode 100644 index 0000000000..0a073dc201 --- /dev/null +++ b/db - Copy/chat-files.ts @@ -0,0 +1,50 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { TablesInsert } from "@/supabase/types" + +export const getChatFilesByChatId = async (chatId: string) => { + const { data: chatFiles, error } = await supabase + .from("chats") + .select( + ` + id, + name, + files (*) + ` + ) + .eq("id", chatId) + .single() + + if (!chatFiles) { + throw new Error(error.message) + } + + return chatFiles +} + +export const createChatFile = async (chatFile: TablesInsert<"chat_files">) => { + const { data: createdChatFile, error } = await supabase + .from("chat_files") + .insert(chatFile) + .select("*") + + if (!createdChatFile) { + throw new Error(error.message) + } + + return createdChatFile +} + +export const createChatFiles = async ( + chatFiles: TablesInsert<"chat_files">[] +) => { + const { data: createdChatFiles, error } = await supabase + .from("chat_files") + .insert(chatFiles) + .select("*") + + if (!createdChatFiles) { + throw new Error(error.message) + } + + return createdChatFiles +} diff --git a/db - Copy/chats.ts b/db - Copy/chats.ts new file mode 100644 index 0000000000..13332beb73 --- /dev/null +++ b/db - Copy/chats.ts @@ -0,0 +1,81 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { TablesInsert, TablesUpdate } from "@/supabase/types" + +export const getChatById = async (chatId: string) => { + const { data: chat } = await supabase + .from("chats") + .select("*") + .eq("id", chatId) + .maybeSingle() + + return chat +} + +export const getChatsByWorkspaceId = async (workspaceId: string) => { + const { data: chats, error } = await supabase + .from("chats") + .select("*") + .eq("workspace_id", workspaceId) + .order("created_at", { ascending: false }) + + if (!chats) { + throw new Error(error.message) + } + + return chats +} + +export const createChat = async (chat: TablesInsert<"chats">) => { + const { data: createdChat, error } = await supabase + .from("chats") + .insert([chat]) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return createdChat +} + +export const createChats = async (chats: TablesInsert<"chats">[]) => { + const { data: createdChats, error } = await supabase + .from("chats") + .insert(chats) + .select("*") + + if (error) { + throw new Error(error.message) + } + + return createdChats +} + +export const updateChat = async ( + chatId: string, + chat: TablesUpdate<"chats"> +) => { + const { data: updatedChat, error } = await supabase + .from("chats") + .update(chat) + .eq("id", chatId) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return updatedChat +} + +export const deleteChat = async (chatId: string) => { + const { error } = await supabase.from("chats").delete().eq("id", chatId) + + if (error) { + throw new Error(error.message) + } + + return true +} diff --git a/db - Copy/collection-files.ts b/db - Copy/collection-files.ts new file mode 100644 index 0000000000..f802cd2257 --- /dev/null +++ b/db - Copy/collection-files.ts @@ -0,0 +1,69 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { TablesInsert } from "@/supabase/types" + +export const getCollectionFilesByCollectionId = async ( + collectionId: string +) => { + const { data: collectionFiles, error } = await supabase + .from("collections") + .select( + ` + id, + name, + files ( id, name, type ) + ` + ) + .eq("id", collectionId) + .single() + + if (!collectionFiles) { + throw new Error(error.message) + } + + return collectionFiles +} + +export const createCollectionFile = async ( + collectionFile: TablesInsert<"collection_files"> +) => { + const { data: createdCollectionFile, error } = await supabase + .from("collection_files") + .insert(collectionFile) + .select("*") + + if (!createdCollectionFile) { + throw new Error(error.message) + } + + return createdCollectionFile +} + +export const createCollectionFiles = async ( + collectionFiles: TablesInsert<"collection_files">[] +) => { + const { data: createdCollectionFiles, error } = await supabase + .from("collection_files") + .insert(collectionFiles) + .select("*") + + if (!createdCollectionFiles) { + throw new Error(error.message) + } + + return createdCollectionFiles +} + +export const deleteCollectionFile = async ( + collectionId: string, + fileId: string +) => { + const { error } = await supabase + .from("collection_files") + .delete() + .eq("collection_id", collectionId) + .eq("file_id", fileId) + + if (error) throw new Error(error.message) + + return true +} diff --git a/db - Copy/collections.ts b/db - Copy/collections.ts new file mode 100644 index 0000000000..3d3a6c760f --- /dev/null +++ b/db - Copy/collections.ts @@ -0,0 +1,184 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { TablesInsert, TablesUpdate } from "@/supabase/types" + +export const getCollectionById = async (collectionId: string) => { + const { data: collection, error } = await supabase + .from("collections") + .select("*") + .eq("id", collectionId) + .single() + + if (!collection) { + throw new Error(error.message) + } + + return collection +} + +export const getCollectionWorkspacesByWorkspaceId = async ( + workspaceId: string +) => { + const { data: workspace, error } = await supabase + .from("workspaces") + .select( + ` + id, + name, + collections (*) + ` + ) + .eq("id", workspaceId) + .single() + + if (!workspace) { + throw new Error(error.message) + } + + return workspace +} + +export const getCollectionWorkspacesByCollectionId = async ( + collectionId: string +) => { + const { data: collection, error } = await supabase + .from("collections") + .select( + ` + id, + name, + workspaces (*) + ` + ) + .eq("id", collectionId) + .single() + + if (!collection) { + throw new Error(error.message) + } + + return collection +} + +export const createCollection = async ( + collection: TablesInsert<"collections">, + workspace_id: string +) => { + const { data: createdCollection, error } = await supabase + .from("collections") + .insert([collection]) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + await createCollectionWorkspace({ + user_id: createdCollection.user_id, + collection_id: createdCollection.id, + workspace_id + }) + + return createdCollection +} + +export const createCollections = async ( + collections: TablesInsert<"collections">[], + workspace_id: string +) => { + const { data: createdCollections, error } = await supabase + .from("collections") + .insert(collections) + .select("*") + + if (error) { + throw new Error(error.message) + } + + await createCollectionWorkspaces( + createdCollections.map(collection => ({ + user_id: collection.user_id, + collection_id: collection.id, + workspace_id + })) + ) + + return createdCollections +} + +export const createCollectionWorkspace = async (item: { + user_id: string + collection_id: string + workspace_id: string +}) => { + const { data: createdCollectionWorkspace, error } = await supabase + .from("collection_workspaces") + .insert([item]) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return createdCollectionWorkspace +} + +export const createCollectionWorkspaces = async ( + items: { user_id: string; collection_id: string; workspace_id: string }[] +) => { + const { data: createdCollectionWorkspaces, error } = await supabase + .from("collection_workspaces") + .insert(items) + .select("*") + + if (error) throw new Error(error.message) + + return createdCollectionWorkspaces +} + +export const updateCollection = async ( + collectionId: string, + collection: TablesUpdate<"collections"> +) => { + const { data: updatedCollection, error } = await supabase + .from("collections") + .update(collection) + .eq("id", collectionId) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return updatedCollection +} + +export const deleteCollection = async (collectionId: string) => { + const { error } = await supabase + .from("collections") + .delete() + .eq("id", collectionId) + + if (error) { + throw new Error(error.message) + } + + return true +} + +export const deleteCollectionWorkspace = async ( + collectionId: string, + workspaceId: string +) => { + const { error } = await supabase + .from("collection_workspaces") + .delete() + .eq("collection_id", collectionId) + .eq("workspace_id", workspaceId) + + if (error) throw new Error(error.message) + + return true +} diff --git a/db - Copy/files.ts b/db - Copy/files.ts new file mode 100644 index 0000000000..0b69625e68 --- /dev/null +++ b/db - Copy/files.ts @@ -0,0 +1,319 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { TablesInsert, TablesUpdate } from "@/supabase/types" +import mammoth from "mammoth" +import { toast } from "sonner" +import { uploadFile } from "./storage/files" + +export const getFileById = async (fileId: string) => { + const { data: file, error } = await supabase + .from("files") + .select("*") + .eq("id", fileId) + .single() + + if (!file) { + throw new Error(error.message) + } + + return file +} + +export const getFileWorkspacesByWorkspaceId = async (workspaceId: string) => { + const { data: workspace, error } = await supabase + .from("workspaces") + .select( + ` + id, + name, + files (*) + ` + ) + .eq("id", workspaceId) + .single() + + if (!workspace) { + throw new Error(error.message) + } + + return workspace +} + +export const getFileWorkspacesByFileId = async (fileId: string) => { + const { data: file, error } = await supabase + .from("files") + .select( + ` + id, + name, + workspaces (*) + ` + ) + .eq("id", fileId) + .single() + + if (!file) { + throw new Error(error.message) + } + + return file +} + +export const createFileBasedOnExtension = async ( + file: File, + fileRecord: TablesInsert<"files">, + workspace_id: string, + embeddingsProvider: "openai" | "local" +) => { + const fileExtension = file.name.split(".").pop() + + if (fileExtension === "docx") { + const arrayBuffer = await file.arrayBuffer() + const result = await mammoth.extractRawText({ + arrayBuffer + }) + + return createDocXFile( + result.value, + file, + fileRecord, + workspace_id, + embeddingsProvider + ) + } else { + return createFile(file, fileRecord, workspace_id, embeddingsProvider) + } +} + +// For non-docx files +export const createFile = async ( + file: File, + fileRecord: TablesInsert<"files">, + workspace_id: string, + embeddingsProvider: "openai" | "local" +) => { + let validFilename = fileRecord.name.replace(/[^a-z0-9.]/gi, "_").toLowerCase() + const extension = file.name.split(".").pop() + const extensionIndex = validFilename.lastIndexOf(".") + const baseName = validFilename.substring( + 0, + extensionIndex < 0 ? undefined : extensionIndex + ) + const maxBaseNameLength = 100 - (extension?.length || 0) - 1 + if (baseName.length > maxBaseNameLength) { + fileRecord.name = baseName.substring(0, maxBaseNameLength) + "." + extension + } else { + fileRecord.name = baseName + "." + extension + } + const { data: createdFile, error } = await supabase + .from("files") + .insert([fileRecord]) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + await createFileWorkspace({ + user_id: createdFile.user_id, + file_id: createdFile.id, + workspace_id + }) + + const filePath = await uploadFile(file, { + name: createdFile.name, + user_id: createdFile.user_id, + file_id: createdFile.name + }) + + await updateFile(createdFile.id, { + file_path: filePath + }) + + const formData = new FormData() + formData.append("file_id", createdFile.id) + formData.append("embeddingsProvider", embeddingsProvider) + + const response = await fetch("/api/retrieval/process", { + method: "POST", + body: formData + }) + + if (!response.ok) { + const jsonText = await response.text() + const json = JSON.parse(jsonText) + console.error( + `Error processing file:${createdFile.id}, status:${response.status}, response:${json.message}` + ) + toast.error("Failed to process file. Reason:" + json.message, { + duration: 10000 + }) + await deleteFile(createdFile.id) + } + + const fetchedFile = await getFileById(createdFile.id) + + return fetchedFile +} + +// // Handle docx files +export const createDocXFile = async ( + text: string, + file: File, + fileRecord: TablesInsert<"files">, + workspace_id: string, + embeddingsProvider: "openai" | "local" +) => { + const { data: createdFile, error } = await supabase + .from("files") + .insert([fileRecord]) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + await createFileWorkspace({ + user_id: createdFile.user_id, + file_id: createdFile.id, + workspace_id + }) + + const filePath = await uploadFile(file, { + name: createdFile.name, + user_id: createdFile.user_id, + file_id: createdFile.name + }) + + await updateFile(createdFile.id, { + file_path: filePath + }) + + const response = await fetch("/api/retrieval/process/docx", { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({ + text: text, + fileId: createdFile.id, + embeddingsProvider, + fileExtension: "docx" + }) + }) + + if (!response.ok) { + const jsonText = await response.text() + const json = JSON.parse(jsonText) + console.error( + `Error processing file:${createdFile.id}, status:${response.status}, response:${json.message}` + ) + toast.error("Failed to process file. Reason:" + json.message, { + duration: 10000 + }) + await deleteFile(createdFile.id) + } + + const fetchedFile = await getFileById(createdFile.id) + + return fetchedFile +} + +export const createFiles = async ( + files: TablesInsert<"files">[], + workspace_id: string +) => { + const { data: createdFiles, error } = await supabase + .from("files") + .insert(files) + .select("*") + + if (error) { + throw new Error(error.message) + } + + await createFileWorkspaces( + createdFiles.map(file => ({ + user_id: file.user_id, + file_id: file.id, + workspace_id + })) + ) + + return createdFiles +} + +export const createFileWorkspace = async (item: { + user_id: string + file_id: string + workspace_id: string +}) => { + const { data: createdFileWorkspace, error } = await supabase + .from("file_workspaces") + .insert([item]) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return createdFileWorkspace +} + +export const createFileWorkspaces = async ( + items: { user_id: string; file_id: string; workspace_id: string }[] +) => { + const { data: createdFileWorkspaces, error } = await supabase + .from("file_workspaces") + .insert(items) + .select("*") + + if (error) throw new Error(error.message) + + return createdFileWorkspaces +} + +export const updateFile = async ( + fileId: string, + file: TablesUpdate<"files"> +) => { + const { data: updatedFile, error } = await supabase + .from("files") + .update(file) + .eq("id", fileId) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return updatedFile +} + +export const deleteFile = async (fileId: string) => { + const { error } = await supabase.from("files").delete().eq("id", fileId) + + if (error) { + throw new Error(error.message) + } + + return true +} + +export const deleteFileWorkspace = async ( + fileId: string, + workspaceId: string +) => { + const { error } = await supabase + .from("file_workspaces") + .delete() + .eq("file_id", fileId) + .eq("workspace_id", workspaceId) + + if (error) throw new Error(error.message) + + return true +} diff --git a/db - Copy/folders.ts b/db - Copy/folders.ts new file mode 100644 index 0000000000..2c58fa886d --- /dev/null +++ b/db - Copy/folders.ts @@ -0,0 +1,57 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { TablesInsert, TablesUpdate } from "@/supabase/types" + +export const getFoldersByWorkspaceId = async (workspaceId: string) => { + const { data: folders, error } = await supabase + .from("folders") + .select("*") + .eq("workspace_id", workspaceId) + + if (!folders) { + throw new Error(error.message) + } + + return folders +} + +export const createFolder = async (folder: TablesInsert<"folders">) => { + const { data: createdFolder, error } = await supabase + .from("folders") + .insert([folder]) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return createdFolder +} + +export const updateFolder = async ( + folderId: string, + folder: TablesUpdate<"folders"> +) => { + const { data: updatedFolder, error } = await supabase + .from("folders") + .update(folder) + .eq("id", folderId) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return updatedFolder +} + +export const deleteFolder = async (folderId: string) => { + const { error } = await supabase.from("folders").delete().eq("id", folderId) + + if (error) { + throw new Error(error.message) + } + + return true +} diff --git a/db - Copy/index.ts b/db - Copy/index.ts new file mode 100644 index 0000000000..4e81d29813 --- /dev/null +++ b/db - Copy/index.ts @@ -0,0 +1,10 @@ +import "./assistants" +import "./chats" +import "./file-items" +import "./files" +import "./folders" +import "./messages" +import "./presets" +import "./profile" +import "./prompts" +import "./workspaces" diff --git a/db - Copy/limits.ts b/db - Copy/limits.ts new file mode 100644 index 0000000000..4d61f85280 --- /dev/null +++ b/db - Copy/limits.ts @@ -0,0 +1,43 @@ +// Profiles +export const PROFILE_BIO_MAX = 500 +export const PROFILE_DISPLAY_NAME_MAX = 100 +export const PROFILE_CONTEXT_MAX = 1500 +export const PROFILE_USERNAME_MIN = 3 +export const PROFILE_USERNAME_MAX = 25 + +// Workspaces +export const WORKSPACE_NAME_MAX = 100 +export const WORKSPACE_DESCRIPTION_MAX = 500 +export const WORKSPACE_INSTRUCTIONS_MAX = 1500 + +// Chats + +// Presets +export const PRESET_NAME_MAX = 100 +export const PRESET_DESCRIPTION_MAX = 500 +export const PRESET_PROMPT_MAX = 100000 + +// Prompts +export const PROMPT_NAME_MAX = 100 +export const PROMPT_CONTENT_MAX = 100000 + +// Files +export const FILE_NAME_MAX = 100 +export const FILE_DESCRIPTION_MAX = 500 + +// Collections +export const COLLECTION_NAME_MAX = 100 +export const COLLECTION_DESCRIPTION_MAX = 500 + +// Assistant +export const ASSISTANT_NAME_MAX = 100 +export const ASSISTANT_DESCRIPTION_MAX = 500 +export const ASSISTANT_PROMPT_MAX = 100000 + +// Tools +export const TOOL_NAME_MAX = 100 +export const TOOL_DESCRIPTION_MAX = 500 + +// Models +export const MODEL_NAME_MAX = 100 +export const MODEL_DESCRIPTION_MAX = 500 diff --git a/db - Copy/message-file-items.ts b/db - Copy/message-file-items.ts new file mode 100644 index 0000000000..141d286541 --- /dev/null +++ b/db - Copy/message-file-items.ts @@ -0,0 +1,36 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { TablesInsert } from "@/supabase/types" + +export const getMessageFileItemsByMessageId = async (messageId: string) => { + const { data: messageFileItems, error } = await supabase + .from("messages") + .select( + ` + id, + file_items (*) + ` + ) + .eq("id", messageId) + .single() + + if (!messageFileItems) { + throw new Error(error.message) + } + + return messageFileItems +} + +export const createMessageFileItems = async ( + messageFileItems: TablesInsert<"message_file_items">[] +) => { + const { data: createdMessageFileItems, error } = await supabase + .from("message_file_items") + .insert(messageFileItems) + .select("*") + + if (!createdMessageFileItems) { + throw new Error(error.message) + } + + return createdMessageFileItems +} diff --git a/db - Copy/messages.ts b/db - Copy/messages.ts new file mode 100644 index 0000000000..6f7929c337 --- /dev/null +++ b/db - Copy/messages.ts @@ -0,0 +1,104 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { TablesInsert, TablesUpdate } from "@/supabase/types" + +export const getMessageById = async (messageId: string) => { + const { data: message } = await supabase + .from("messages") + .select("*") + .eq("id", messageId) + .single() + + if (!message) { + throw new Error("Message not found") + } + + return message +} + +export const getMessagesByChatId = async (chatId: string) => { + const { data: messages } = await supabase + .from("messages") + .select("*") + .eq("chat_id", chatId) + + if (!messages) { + throw new Error("Messages not found") + } + + return messages +} + +export const createMessage = async (message: TablesInsert<"messages">) => { + const { data: createdMessage, error } = await supabase + .from("messages") + .insert([message]) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return createdMessage +} + +export const createMessages = async (messages: TablesInsert<"messages">[]) => { + const { data: createdMessages, error } = await supabase + .from("messages") + .insert(messages) + .select("*") + + if (error) { + throw new Error(error.message) + } + + return createdMessages +} + +export const updateMessage = async ( + messageId: string, + message: TablesUpdate<"messages"> +) => { + const { data: updatedMessage, error } = await supabase + .from("messages") + .update(message) + .eq("id", messageId) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return updatedMessage +} + +export const deleteMessage = async (messageId: string) => { + const { error } = await supabase.from("messages").delete().eq("id", messageId) + + if (error) { + throw new Error(error.message) + } + + return true +} + +export async function deleteMessagesIncludingAndAfter( + userId: string, + chatId: string, + sequenceNumber: number +) { + const { error } = await supabase.rpc("delete_messages_including_and_after", { + p_user_id: userId, + p_chat_id: chatId, + p_sequence_number: sequenceNumber + }) + + if (error) { + return { + error: "Failed to delete messages." + } + } + + return true +} diff --git a/db - Copy/models.ts b/db - Copy/models.ts new file mode 100644 index 0000000000..252153437b --- /dev/null +++ b/db - Copy/models.ts @@ -0,0 +1,177 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { TablesInsert, TablesUpdate } from "@/supabase/types" + +export const getModelById = async (modelId: string) => { + const { data: model, error } = await supabase + .from("models") + .select("*") + .eq("id", modelId) + .single() + + if (!model) { + throw new Error(error.message) + } + + return model +} + +export const getModelWorkspacesByWorkspaceId = async (workspaceId: string) => { + const { data: workspace, error } = await supabase + .from("workspaces") + .select( + ` + id, + name, + models (*) + ` + ) + .eq("id", workspaceId) + .single() + + if (!workspace) { + throw new Error(error.message) + } + + return workspace +} + +export const getModelWorkspacesByModelId = async (modelId: string) => { + const { data: model, error } = await supabase + .from("models") + .select( + ` + id, + name, + workspaces (*) + ` + ) + .eq("id", modelId) + .single() + + if (!model) { + throw new Error(error.message) + } + + return model +} + +export const createModel = async ( + model: TablesInsert<"models">, + workspace_id: string +) => { + const { data: createdModel, error } = await supabase + .from("models") + .insert([model]) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + await createModelWorkspace({ + user_id: model.user_id, + model_id: createdModel.id, + workspace_id: workspace_id + }) + + return createdModel +} + +export const createModels = async ( + models: TablesInsert<"models">[], + workspace_id: string +) => { + const { data: createdModels, error } = await supabase + .from("models") + .insert(models) + .select("*") + + if (error) { + throw new Error(error.message) + } + + await createModelWorkspaces( + createdModels.map(model => ({ + user_id: model.user_id, + model_id: model.id, + workspace_id + })) + ) + + return createdModels +} + +export const createModelWorkspace = async (item: { + user_id: string + model_id: string + workspace_id: string +}) => { + const { data: createdModelWorkspace, error } = await supabase + .from("model_workspaces") + .insert([item]) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return createdModelWorkspace +} + +export const createModelWorkspaces = async ( + items: { user_id: string; model_id: string; workspace_id: string }[] +) => { + const { data: createdModelWorkspaces, error } = await supabase + .from("model_workspaces") + .insert(items) + .select("*") + + if (error) throw new Error(error.message) + + return createdModelWorkspaces +} + +export const updateModel = async ( + modelId: string, + model: TablesUpdate<"models"> +) => { + const { data: updatedModel, error } = await supabase + .from("models") + .update(model) + .eq("id", modelId) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return updatedModel +} + +export const deleteModel = async (modelId: string) => { + const { error } = await supabase.from("models").delete().eq("id", modelId) + + if (error) { + throw new Error(error.message) + } + + return true +} + +export const deleteModelWorkspace = async ( + modelId: string, + workspaceId: string +) => { + const { error } = await supabase + .from("model_workspaces") + .delete() + .eq("model_id", modelId) + .eq("workspace_id", workspaceId) + + if (error) throw new Error(error.message) + + return true +} diff --git a/db - Copy/presets.ts b/db - Copy/presets.ts new file mode 100644 index 0000000000..2c00898b1f --- /dev/null +++ b/db - Copy/presets.ts @@ -0,0 +1,177 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { TablesInsert, TablesUpdate } from "@/supabase/types" + +export const getPresetById = async (presetId: string) => { + const { data: preset, error } = await supabase + .from("presets") + .select("*") + .eq("id", presetId) + .single() + + if (!preset) { + throw new Error(error.message) + } + + return preset +} + +export const getPresetWorkspacesByWorkspaceId = async (workspaceId: string) => { + const { data: workspace, error } = await supabase + .from("workspaces") + .select( + ` + id, + name, + presets (*) + ` + ) + .eq("id", workspaceId) + .single() + + if (!workspace) { + throw new Error(error.message) + } + + return workspace +} + +export const getPresetWorkspacesByPresetId = async (presetId: string) => { + const { data: preset, error } = await supabase + .from("presets") + .select( + ` + id, + name, + workspaces (*) + ` + ) + .eq("id", presetId) + .single() + + if (!preset) { + throw new Error(error.message) + } + + return preset +} + +export const createPreset = async ( + preset: TablesInsert<"presets">, + workspace_id: string +) => { + const { data: createdPreset, error } = await supabase + .from("presets") + .insert([preset]) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + await createPresetWorkspace({ + user_id: preset.user_id, + preset_id: createdPreset.id, + workspace_id: workspace_id + }) + + return createdPreset +} + +export const createPresets = async ( + presets: TablesInsert<"presets">[], + workspace_id: string +) => { + const { data: createdPresets, error } = await supabase + .from("presets") + .insert(presets) + .select("*") + + if (error) { + throw new Error(error.message) + } + + await createPresetWorkspaces( + createdPresets.map(preset => ({ + user_id: preset.user_id, + preset_id: preset.id, + workspace_id + })) + ) + + return createdPresets +} + +export const createPresetWorkspace = async (item: { + user_id: string + preset_id: string + workspace_id: string +}) => { + const { data: createdPresetWorkspace, error } = await supabase + .from("preset_workspaces") + .insert([item]) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return createdPresetWorkspace +} + +export const createPresetWorkspaces = async ( + items: { user_id: string; preset_id: string; workspace_id: string }[] +) => { + const { data: createdPresetWorkspaces, error } = await supabase + .from("preset_workspaces") + .insert(items) + .select("*") + + if (error) throw new Error(error.message) + + return createdPresetWorkspaces +} + +export const updatePreset = async ( + presetId: string, + preset: TablesUpdate<"presets"> +) => { + const { data: updatedPreset, error } = await supabase + .from("presets") + .update(preset) + .eq("id", presetId) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return updatedPreset +} + +export const deletePreset = async (presetId: string) => { + const { error } = await supabase.from("presets").delete().eq("id", presetId) + + if (error) { + throw new Error(error.message) + } + + return true +} + +export const deletePresetWorkspace = async ( + presetId: string, + workspaceId: string +) => { + const { error } = await supabase + .from("preset_workspaces") + .delete() + .eq("preset_id", presetId) + .eq("workspace_id", workspaceId) + + if (error) throw new Error(error.message) + + return true +} diff --git a/db - Copy/profile.ts b/db - Copy/profile.ts new file mode 100644 index 0000000000..521a751bc9 --- /dev/null +++ b/db - Copy/profile.ts @@ -0,0 +1,90 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { TablesInsert, TablesUpdate } from "@/supabase/types" + +export const getProfileByUserId = async (userId: string) => { +console.log("🪵 getProfileByUserId called with:", userId); + +const { data: profile, error } = await supabase +.from("profiles") +.select("*") +.eq("user_id", userId) +.single() + +if (!profile) { +throw new Error(error?.message || `No profile found for user_id: ${userId}`) +} + +return profile +} + +export const getProfilesByUserId = async (userId: string) => { +console.log("🪵 getProfilesByUserId called with:", userId); + +const { data: profiles, error } = await supabase +.from("profiles") +.select("*") +.eq("user_id", userId) + +if (!profiles) { +throw new Error(error?.message || `No profiles found for user_id: ${userId}`) +} + +return profiles +} + +export const createProfile = async (profile: TablesInsert<"profiles">) => { +console.log("🪵 createProfile called with:", profile); + +const { data: createdProfile, error } = await supabase +.from("profiles") +.insert([profile]) +.select("*") +.single() + +if (error) { +throw new Error(error.message) +} + +return createdProfile +} + +export const updateProfile = async ( +profileId: string, +profile: TablesUpdate<"profiles"> +) => { +console.log("🪵 updateProfile called with:", profileId, profile); + +const { data: updatedProfile, error } = await supabase +.from("profiles") +.update(profile) +.eq("id", profileId) +.select("*") +.single() + +if (error) { +throw new Error(error.message) +} + +return updatedProfile +} + +export const deleteProfile = async (profileId: string) => { +console.log("🪵 deleteProfile called with:", profileId); + +const { error } = await supabase +.from("profiles") +.delete() +.eq("id", profileId) + +if (error) { +throw new Error(error.message) +} + +return true +} + + + + + + diff --git a/db/profiles.ts b/db - Copy/profiles.ts similarity index 100% rename from db/profiles.ts rename to db - Copy/profiles.ts diff --git a/db - Copy/prompts.ts b/db - Copy/prompts.ts new file mode 100644 index 0000000000..9f5a920f3a --- /dev/null +++ b/db - Copy/prompts.ts @@ -0,0 +1,177 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { TablesInsert, TablesUpdate } from "@/supabase/types" + +export const getPromptById = async (promptId: string) => { + const { data: prompt, error } = await supabase + .from("prompts") + .select("*") + .eq("id", promptId) + .single() + + if (!prompt) { + throw new Error(error.message) + } + + return prompt +} + +export const getPromptWorkspacesByWorkspaceId = async (workspaceId: string) => { + const { data: workspace, error } = await supabase + .from("workspaces") + .select( + ` + id, + name, + prompts (*) + ` + ) + .eq("id", workspaceId) + .single() + + if (!workspace) { + throw new Error(error.message) + } + + return workspace +} + +export const getPromptWorkspacesByPromptId = async (promptId: string) => { + const { data: prompt, error } = await supabase + .from("prompts") + .select( + ` + id, + name, + workspaces (*) + ` + ) + .eq("id", promptId) + .single() + + if (!prompt) { + throw new Error(error.message) + } + + return prompt +} + +export const createPrompt = async ( + prompt: TablesInsert<"prompts">, + workspace_id: string +) => { + const { data: createdPrompt, error } = await supabase + .from("prompts") + .insert([prompt]) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + await createPromptWorkspace({ + user_id: createdPrompt.user_id, + prompt_id: createdPrompt.id, + workspace_id + }) + + return createdPrompt +} + +export const createPrompts = async ( + prompts: TablesInsert<"prompts">[], + workspace_id: string +) => { + const { data: createdPrompts, error } = await supabase + .from("prompts") + .insert(prompts) + .select("*") + + if (error) { + throw new Error(error.message) + } + + await createPromptWorkspaces( + createdPrompts.map(prompt => ({ + user_id: prompt.user_id, + prompt_id: prompt.id, + workspace_id + })) + ) + + return createdPrompts +} + +export const createPromptWorkspace = async (item: { + user_id: string + prompt_id: string + workspace_id: string +}) => { + const { data: createdPromptWorkspace, error } = await supabase + .from("prompt_workspaces") + .insert([item]) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return createdPromptWorkspace +} + +export const createPromptWorkspaces = async ( + items: { user_id: string; prompt_id: string; workspace_id: string }[] +) => { + const { data: createdPromptWorkspaces, error } = await supabase + .from("prompt_workspaces") + .insert(items) + .select("*") + + if (error) throw new Error(error.message) + + return createdPromptWorkspaces +} + +export const updatePrompt = async ( + promptId: string, + prompt: TablesUpdate<"prompts"> +) => { + const { data: updatedPrompt, error } = await supabase + .from("prompts") + .update(prompt) + .eq("id", promptId) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return updatedPrompt +} + +export const deletePrompt = async (promptId: string) => { + const { error } = await supabase.from("prompts").delete().eq("id", promptId) + + if (error) { + throw new Error(error.message) + } + + return true +} + +export const deletePromptWorkspace = async ( + promptId: string, + workspaceId: string +) => { + const { error } = await supabase + .from("prompt_workspaces") + .delete() + .eq("prompt_id", promptId) + .eq("workspace_id", workspaceId) + + if (error) throw new Error(error.message) + + return true +} diff --git a/db - Copy/storage/assistant-images.ts b/db - Copy/storage/assistant-images.ts new file mode 100644 index 0000000000..f62fd0247b --- /dev/null +++ b/db - Copy/storage/assistant-images.ts @@ -0,0 +1,56 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { Tables } from "@/supabase/types" + +export const uploadAssistantImage = async ( + assistant: Tables<"assistants">, + image: File +) => { + const bucket = "assistant_images" + + const imageSizeLimit = 6000000 // 6MB + + if (image.size > imageSizeLimit) { + throw new Error(`Image must be less than ${imageSizeLimit / 1000000}MB`) + } + + const currentPath = assistant.image_path + let filePath = `${assistant.user_id}/${assistant.id}/${Date.now()}` + + if (currentPath.length > 0) { + const { error: deleteError } = await supabase.storage + .from(bucket) + .remove([currentPath]) + + if (deleteError) { + throw new Error("Error deleting old image") + } + } + + const { error } = await supabase.storage + .from(bucket) + .upload(filePath, image, { + upsert: true + }) + + if (error) { + throw new Error("Error uploading image") + } + + return filePath +} + +export const getAssistantImageFromStorage = async (filePath: string) => { + try { + const { data, error } = await supabase.storage + .from("assistant_images") + .createSignedUrl(filePath, 60 * 60 * 24) // 24hrs + + if (error) { + throw new Error("Error downloading assistant image") + } + + return data.signedUrl + } catch (error) { + console.error(error) + } +} diff --git a/db - Copy/storage/files.ts b/db - Copy/storage/files.ts new file mode 100644 index 0000000000..4788bbcc74 --- /dev/null +++ b/db - Copy/storage/files.ts @@ -0,0 +1,57 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { toast } from "sonner" + +export const uploadFile = async ( + file: File, + payload: { + name: string + user_id: string + file_id: string + } +) => { + const SIZE_LIMIT = parseInt( + process.env.NEXT_PUBLIC_USER_FILE_SIZE_LIMIT || "10000000" + ) + + if (file.size > SIZE_LIMIT) { + throw new Error( + `File must be less than ${Math.floor(SIZE_LIMIT / 1000000)}MB` + ) + } + + const filePath = `${payload.user_id}/${Buffer.from(payload.file_id).toString("base64")}` + + const { error } = await supabase.storage + .from("files") + .upload(filePath, file, { + upsert: true + }) + + if (error) { + throw new Error("Error uploading file") + } + + return filePath +} + +export const deleteFileFromStorage = async (filePath: string) => { + const { error } = await supabase.storage.from("files").remove([filePath]) + + if (error) { + toast.error("Failed to remove file!") + return + } +} + +export const getFileFromStorage = async (filePath: string) => { + const { data, error } = await supabase.storage + .from("files") + .createSignedUrl(filePath, 60 * 60 * 24) // 24hrs + + if (error) { + console.error(`Error uploading file with path: ${filePath}`, error) + throw new Error("Error downloading file") + } + + return data.signedUrl +} diff --git a/db - Copy/storage/message-images.ts b/db - Copy/storage/message-images.ts new file mode 100644 index 0000000000..dbca93f2aa --- /dev/null +++ b/db - Copy/storage/message-images.ts @@ -0,0 +1,33 @@ +import { supabase } from "@/lib/supabase/browser-client" + +export const uploadMessageImage = async (path: string, image: File) => { + const bucket = "message_images" + + const imageSizeLimit = 6000000 // 6MB + + if (image.size > imageSizeLimit) { + throw new Error(`Image must be less than ${imageSizeLimit / 1000000}MB`) + } + + const { error } = await supabase.storage.from(bucket).upload(path, image, { + upsert: true + }) + + if (error) { + throw new Error("Error uploading image") + } + + return path +} + +export const getMessageImageFromStorage = async (filePath: string) => { + const { data, error } = await supabase.storage + .from("message_images") + .createSignedUrl(filePath, 60 * 60 * 24) // 24hrs + + if (error) { + throw new Error("Error downloading message image") + } + + return data.signedUrl +} diff --git a/db - Copy/storage/profile-images.ts b/db - Copy/storage/profile-images.ts new file mode 100644 index 0000000000..f21864e2a4 --- /dev/null +++ b/db - Copy/storage/profile-images.ts @@ -0,0 +1,47 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { Tables } from "@/supabase/types" + +export const uploadProfileImage = async ( + profile: Tables<"profiles">, + image: File +) => { + const bucket = "profile_images" + + const imageSizeLimit = 2000000 // 2MB + + if (image.size > imageSizeLimit) { + throw new Error(`Image must be less than ${imageSizeLimit / 1000000}MB`) + } + + const currentPath = profile.image_path + let filePath = `${profile.user_id}/${Date.now()}` + + if (currentPath.length > 0) { + const { error: deleteError } = await supabase.storage + .from(bucket) + .remove([currentPath]) + + if (deleteError) { + throw new Error("Error deleting old image") + } + } + + const { error } = await supabase.storage + .from(bucket) + .upload(filePath, image, { + upsert: true + }) + + if (error) { + throw new Error("Error uploading image") + } + + const { data: getPublicUrlData } = supabase.storage + .from(bucket) + .getPublicUrl(filePath) + + return { + path: filePath, + url: getPublicUrlData.publicUrl + } +} diff --git a/db - Copy/storage/workspace-images.ts b/db - Copy/storage/workspace-images.ts new file mode 100644 index 0000000000..f2197dba86 --- /dev/null +++ b/db - Copy/storage/workspace-images.ts @@ -0,0 +1,56 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { Tables } from "@/supabase/types" + +export const uploadWorkspaceImage = async ( + workspace: Tables<"workspaces">, + image: File +) => { + const bucket = "workspace_images" + + const imageSizeLimit = 6000000 // 6MB + + if (image.size > imageSizeLimit) { + throw new Error(`Image must be less than ${imageSizeLimit / 1000000}MB`) + } + + const currentPath = workspace.image_path + let filePath = `${workspace.user_id}/${workspace.id}/${Date.now()}` + + if (currentPath.length > 0) { + const { error: deleteError } = await supabase.storage + .from(bucket) + .remove([currentPath]) + + if (deleteError) { + throw new Error("Error deleting old image") + } + } + + const { error } = await supabase.storage + .from(bucket) + .upload(filePath, image, { + upsert: true + }) + + if (error) { + throw new Error("Error uploading image") + } + + return filePath +} + +export const getWorkspaceImageFromStorage = async (filePath: string) => { + try { + const { data, error } = await supabase.storage + .from("workspace_images") + .createSignedUrl(filePath, 60 * 60 * 24) // 24hrs + + if (error) { + throw new Error("Error downloading workspace image") + } + + return data.signedUrl + } catch (error) { + console.error(error) + } +} diff --git a/db - Copy/tools.ts b/db - Copy/tools.ts new file mode 100644 index 0000000000..0b6e38443a --- /dev/null +++ b/db - Copy/tools.ts @@ -0,0 +1,177 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { TablesInsert, TablesUpdate } from "@/supabase/types" + +export const getToolById = async (toolId: string) => { + const { data: tool, error } = await supabase + .from("tools") + .select("*") + .eq("id", toolId) + .single() + + if (!tool) { + throw new Error(error.message) + } + + return tool +} + +export const getToolWorkspacesByWorkspaceId = async (workspaceId: string) => { + const { data: workspace, error } = await supabase + .from("workspaces") + .select( + ` + id, + name, + tools (*) + ` + ) + .eq("id", workspaceId) + .single() + + if (!workspace) { + throw new Error(error.message) + } + + return workspace +} + +export const getToolWorkspacesByToolId = async (toolId: string) => { + const { data: tool, error } = await supabase + .from("tools") + .select( + ` + id, + name, + workspaces (*) + ` + ) + .eq("id", toolId) + .single() + + if (!tool) { + throw new Error(error.message) + } + + return tool +} + +export const createTool = async ( + tool: TablesInsert<"tools">, + workspace_id: string +) => { + const { data: createdTool, error } = await supabase + .from("tools") + .insert([tool]) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + await createToolWorkspace({ + user_id: createdTool.user_id, + tool_id: createdTool.id, + workspace_id + }) + + return createdTool +} + +export const createTools = async ( + tools: TablesInsert<"tools">[], + workspace_id: string +) => { + const { data: createdTools, error } = await supabase + .from("tools") + .insert(tools) + .select("*") + + if (error) { + throw new Error(error.message) + } + + await createToolWorkspaces( + createdTools.map(tool => ({ + user_id: tool.user_id, + tool_id: tool.id, + workspace_id + })) + ) + + return createdTools +} + +export const createToolWorkspace = async (item: { + user_id: string + tool_id: string + workspace_id: string +}) => { + const { data: createdToolWorkspace, error } = await supabase + .from("tool_workspaces") + .insert([item]) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return createdToolWorkspace +} + +export const createToolWorkspaces = async ( + items: { user_id: string; tool_id: string; workspace_id: string }[] +) => { + const { data: createdToolWorkspaces, error } = await supabase + .from("tool_workspaces") + .insert(items) + .select("*") + + if (error) throw new Error(error.message) + + return createdToolWorkspaces +} + +export const updateTool = async ( + toolId: string, + tool: TablesUpdate<"tools"> +) => { + const { data: updatedTool, error } = await supabase + .from("tools") + .update(tool) + .eq("id", toolId) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return updatedTool +} + +export const deleteTool = async (toolId: string) => { + const { error } = await supabase.from("tools").delete().eq("id", toolId) + + if (error) { + throw new Error(error.message) + } + + return true +} + +export const deleteToolWorkspace = async ( + toolId: string, + workspaceId: string +) => { + const { error } = await supabase + .from("tool_workspaces") + .delete() + .eq("tool_id", toolId) + .eq("workspace_id", workspaceId) + + if (error) throw new Error(error.message) + + return true +} diff --git a/db - Copy/workspaces.ts b/db - Copy/workspaces.ts new file mode 100644 index 0000000000..94a3738921 --- /dev/null +++ b/db - Copy/workspaces.ts @@ -0,0 +1,92 @@ +import { supabase } from "@/lib/supabase/browser-client" +import { TablesInsert, TablesUpdate } from "@/supabase/types" + +export const getHomeWorkspaceByUserId = async (userId: string) => { + const { data: homeWorkspace, error } = await supabase + .from("workspaces") + .select("*") + .eq("user_id", userId) + .eq("is_home", true) + .single() + + if (!homeWorkspace) { + throw new Error(error.message) + } + + return homeWorkspace.id +} + +export const getWorkspaceById = async (workspaceId: string) => { + const { data: workspace, error } = await supabase + .from("workspaces") + .select("*") + .eq("id", workspaceId) + .single() + + if (!workspace) { + throw new Error(error.message) + } + + return workspace +} + +export const getWorkspacesByUserId = async (userId: string) => { + const { data: workspaces, error } = await supabase + .from("workspaces") + .select("*") + .eq("user_id", userId) + .order("created_at", { ascending: false }) + + if (!workspaces) { + throw new Error(error.message) + } + + return workspaces +} + +export const createWorkspace = async ( + workspace: TablesInsert<"workspaces"> +) => { + const { data: createdWorkspace, error } = await supabase + .from("workspaces") + .insert([workspace]) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return createdWorkspace +} + +export const updateWorkspace = async ( + workspaceId: string, + workspace: TablesUpdate<"workspaces"> +) => { + const { data: updatedWorkspace, error } = await supabase + .from("workspaces") + .update(workspace) + .eq("id", workspaceId) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } + + return updatedWorkspace +} + +export const deleteWorkspace = async (workspaceId: string) => { + const { error } = await supabase + .from("workspaces") + .delete() + .eq("id", workspaceId) + + if (error) { + throw new Error(error.message) + } + + return true +} diff --git a/db/assistants.ts b/db/assistants.ts index 86a480daee..139e1de1b2 100644 --- a/db/assistants.ts +++ b/db/assistants.ts @@ -2,183 +2,183 @@ import { supabase } from "@/lib/supabase/browser-client" import { TablesInsert, TablesUpdate } from "@/supabase/types" export const getAssistantById = async (assistantId: string) => { -const { data: assistant, error } = await supabase -.from("assistants") -.select("*") -.eq("id", assistantId) -.maybeSingle() - -if (!assistant || error) { -throw new Error(error?.message || "Assistant not found") -} + const { data: assistant, error } = await supabase + .from("assistants") + .select("*") + .eq("id", assistantId) + .maybeSingle() + + if (!assistant || error) { + throw new Error(error?.message || "Assistant not found") + } -return assistant + return assistant } export const getAssistantWorkspacesByWorkspaceId = async ( -workspaceId: string + workspaceId: string ) => { -const { data: workspace, error } = await supabase -.from("workspaces") -.select( -` + const { data: workspace, error } = await supabase + .from("workspaces") + .select( + ` id, name, assistants (*) ` -) -.eq("id", workspaceId) -.maybeSingle() + ) + .eq("id", workspaceId) + .maybeSingle() -if (!workspace || error) { -throw new Error(error?.message || "Workspace not found") -} + if (!workspace || error) { + throw new Error(error?.message || "Workspace not found") + } -return workspace + return workspace } export const getAssistantWorkspacesByAssistantId = async ( -assistantId: string + assistantId: string ) => { -const { data: assistant, error } = await supabase -.from("assistants") -.select( -` + const { data: assistant, error } = await supabase + .from("assistants") + .select( + ` id, name, workspaces (*) ` -) -.eq("id", assistantId) -.maybeSingle() + ) + .eq("id", assistantId) + .maybeSingle() -if (!assistant || error) { -throw new Error(error?.message || "Assistant not found") -} + if (!assistant || error) { + throw new Error(error?.message || "Assistant not found") + } -return assistant + return assistant } export const createAssistant = async ( -assistant: TablesInsert<"assistants">, -workspace_id: string + assistant: TablesInsert<"assistants">, + workspace_id: string ) => { -const { data: createdAssistant, error } = await supabase -.from("assistants") -.insert([assistant]) -.select("*") -.single() - -if (error) { -throw new Error(error.message) -} + const { data: createdAssistant, error } = await supabase + .from("assistants") + .insert([assistant]) + .select("*") + .single() -await createAssistantWorkspace({ -user_id: createdAssistant.user_id, -assistant_id: createdAssistant.id, -workspace_id -}) + if (error) { + throw new Error(error.message) + } -return createdAssistant + await createAssistantWorkspace({ + user_id: createdAssistant.user_id, + assistant_id: createdAssistant.id, + workspace_id + }) + + return createdAssistant } export const createAssistants = async ( -assistants: TablesInsert<"assistants">[], -workspace_id: string + assistants: TablesInsert<"assistants">[], + workspace_id: string ) => { -const { data: createdAssistants, error } = await supabase -.from("assistants") -.insert(assistants) -.select("*") + const { data: createdAssistants, error } = await supabase + .from("assistants") + .insert(assistants) + .select("*") -if (error) { -throw new Error(error.message) -} + if (error) { + throw new Error(error.message) + } -await createAssistantWorkspaces( -createdAssistants.map(assistant => ({ -user_id: assistant.user_id, -assistant_id: assistant.id, -workspace_id -})) -) + await createAssistantWorkspaces( + createdAssistants.map(assistant => ({ + user_id: assistant.user_id, + assistant_id: assistant.id, + workspace_id + })) + ) -return createdAssistants + return createdAssistants } export const createAssistantWorkspace = async (item: { -user_id: string -assistant_id: string -workspace_id: string + user_id: string + assistant_id: string + workspace_id: string }) => { -const { data: createdAssistantWorkspace, error } = await supabase -.from("assistant_workspaces") -.insert([item]) -.select("*") -.single() - -if (error) { -throw new Error(error.message) -} + const { data: createdAssistantWorkspace, error } = await supabase + .from("assistant_workspaces") + .insert([item]) + .select("*") + .single() + + if (error) { + throw new Error(error.message) + } -return createdAssistantWorkspace + return createdAssistantWorkspace } export const createAssistantWorkspaces = async ( -items: { user_id: string; assistant_id: string; workspace_id: string }[] + items: { user_id: string; assistant_id: string; workspace_id: string }[] ) => { -const { data: createdAssistantWorkspaces, error } = await supabase -.from("assistant_workspaces") -.insert(items) -.select("*") + const { data: createdAssistantWorkspaces, error } = await supabase + .from("assistant_workspaces") + .insert(items) + .select("*") -if (error) throw new Error(error.message) + if (error) throw new Error(error.message) -return createdAssistantWorkspaces + return createdAssistantWorkspaces } export const updateAssistant = async ( -assistantId: string, -assistant: TablesUpdate<"assistants"> + assistantId: string, + assistant: TablesUpdate<"assistants"> ) => { -const { data: updatedAssistant, error } = await supabase -.from("assistants") -.update(assistant) -.eq("id", assistantId) -.select("*") -.maybeSingle() - -if (!updatedAssistant || error) { -throw new Error(error?.message || "Failed to update assistant") -} + const { data: updatedAssistant, error } = await supabase + .from("assistants") + .update(assistant) + .eq("id", assistantId) + .select("*") + .maybeSingle() + + if (!updatedAssistant || error) { + throw new Error(error?.message || "Failed to update assistant") + } -return updatedAssistant + return updatedAssistant } export const deleteAssistant = async (assistantId: string) => { -const { error } = await supabase -.from("assistants") -.delete() -.eq("id", assistantId) + const { error } = await supabase + .from("assistants") + .delete() + .eq("id", assistantId) -if (error) { -throw new Error(error.message) -} + if (error) { + throw new Error(error.message) + } -return true + return true } export const deleteAssistantWorkspace = async ( -assistantId: string, -workspaceId: string + assistantId: string, + workspaceId: string ) => { -const { error } = await supabase -.from("assistant_workspaces") -.delete() -.eq("assistant_id", assistantId) -.eq("workspace_id", workspaceId) + const { error } = await supabase + .from("assistant_workspaces") + .delete() + .eq("assistant_id", assistantId) + .eq("workspace_id", workspaceId) -if (error) throw new Error(error.message) + if (error) throw new Error(error.message) -return true + return true } diff --git a/db/profile.ts b/db/profile.ts index 521a751bc9..260199cd56 100644 --- a/db/profile.ts +++ b/db/profile.ts @@ -2,89 +2,82 @@ import { supabase } from "@/lib/supabase/browser-client" import { TablesInsert, TablesUpdate } from "@/supabase/types" export const getProfileByUserId = async (userId: string) => { -console.log("🪵 getProfileByUserId called with:", userId); + console.log("🪵 getProfileByUserId called with:", userId) -const { data: profile, error } = await supabase -.from("profiles") -.select("*") -.eq("user_id", userId) -.single() + const { data: profile, error } = await supabase + .from("profiles") + .select("*") + .eq("user_id", userId) + .single() -if (!profile) { -throw new Error(error?.message || `No profile found for user_id: ${userId}`) -} + if (!profile) { + throw new Error(error?.message || `No profile found for user_id: ${userId}`) + } -return profile + return profile } export const getProfilesByUserId = async (userId: string) => { -console.log("🪵 getProfilesByUserId called with:", userId); + console.log("🪵 getProfilesByUserId called with:", userId) -const { data: profiles, error } = await supabase -.from("profiles") -.select("*") -.eq("user_id", userId) + const { data: profiles, error } = await supabase + .from("profiles") + .select("*") + .eq("user_id", userId) -if (!profiles) { -throw new Error(error?.message || `No profiles found for user_id: ${userId}`) -} + if (!profiles) { + throw new Error( + error?.message || `No profiles found for user_id: ${userId}` + ) + } -return profiles + return profiles } export const createProfile = async (profile: TablesInsert<"profiles">) => { -console.log("🪵 createProfile called with:", profile); + console.log("🪵 createProfile called with:", profile) -const { data: createdProfile, error } = await supabase -.from("profiles") -.insert([profile]) -.select("*") -.single() + const { data: createdProfile, error } = await supabase + .from("profiles") + .insert([profile]) + .select("*") + .single() -if (error) { -throw new Error(error.message) -} + if (error) { + throw new Error(error.message) + } -return createdProfile + return createdProfile } export const updateProfile = async ( -profileId: string, -profile: TablesUpdate<"profiles"> + profileId: string, + profile: TablesUpdate<"profiles"> ) => { -console.log("🪵 updateProfile called with:", profileId, profile); + console.log("🪵 updateProfile called with:", profileId, profile) -const { data: updatedProfile, error } = await supabase -.from("profiles") -.update(profile) -.eq("id", profileId) -.select("*") -.single() + const { data: updatedProfile, error } = await supabase + .from("profiles") + .update(profile) + .eq("id", profileId) + .select("*") + .single() -if (error) { -throw new Error(error.message) -} + if (error) { + throw new Error(error.message) + } -return updatedProfile + return updatedProfile } export const deleteProfile = async (profileId: string) => { -console.log("🪵 deleteProfile called with:", profileId); + console.log("🪵 deleteProfile called with:", profileId) -const { error } = await supabase -.from("profiles") -.delete() -.eq("id", profileId) + const { error } = await supabase.from("profiles").delete().eq("id", profileId) -if (error) { -throw new Error(error.message) -} + if (error) { + throw new Error(error.message) + } -return true + return true } - - - - - - From 5bd8bb5383420021f74db664fc8ee9e918d7714b Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Thu, 10 Jul 2025 17:59:11 -0500 Subject: [PATCH 41/98] fix (profile): use maybeSingle() for safe single-row access in db/profile.ts --- db/profile.ts | 108 +++++++++++++++++++++++++------------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/db/profile.ts b/db/profile.ts index 260199cd56..bf7d9e48bb 100644 --- a/db/profile.ts +++ b/db/profile.ts @@ -1,83 +1,83 @@ import { supabase } from "@/lib/supabase/browser-client" import { TablesInsert, TablesUpdate } from "@/supabase/types" +// Get a single profile by user_id export const getProfileByUserId = async (userId: string) => { - console.log("🪵 getProfileByUserId called with:", userId) +console.log("🪵 getProfileByUserId called with:", userId) - const { data: profile, error } = await supabase - .from("profiles") - .select("*") - .eq("user_id", userId) - .single() +const { data: profile, error } = await supabase +.from("profiles") +.select("*") +.eq("user_id", userId) +.maybeSingle() - if (!profile) { - throw new Error(error?.message || `No profile found for user_id: ${userId}`) - } - - return profile +if (error) { +throw new Error(error.message) } -export const getProfilesByUserId = async (userId: string) => { - console.log("🪵 getProfilesByUserId called with:", userId) - - const { data: profiles, error } = await supabase - .from("profiles") - .select("*") - .eq("user_id", userId) - - if (!profiles) { - throw new Error( - error?.message || `No profiles found for user_id: ${userId}` - ) - } +if (!profile) { +console.warn(`⚠️ No profile found for user_id: ${userId}`) +return null +} - return profiles +return profile } +// Create a new profile export const createProfile = async (profile: TablesInsert<"profiles">) => { - console.log("🪵 createProfile called with:", profile) +console.log("🪵 createProfile called with:", profile) - const { data: createdProfile, error } = await supabase - .from("profiles") - .insert([profile]) - .select("*") - .single() +const { data: createdProfile, error } = await supabase +.from("profiles") +.insert([profile]) +.select("*") +.single() - if (error) { - throw new Error(error.message) - } +if (error) { +throw new Error(error.message) +} - return createdProfile +return createdProfile } +// Update an existing profile by id export const updateProfile = async ( - profileId: string, - profile: TablesUpdate<"profiles"> +profileId: string, +profile: TablesUpdate<"profiles"> ) => { - console.log("🪵 updateProfile called with:", profileId, profile) +console.log("🪵 updateProfile called with:", profileId, profile) - const { data: updatedProfile, error } = await supabase - .from("profiles") - .update(profile) - .eq("id", profileId) - .select("*") - .single() +const { data: updatedProfile, error } = await supabase +.from("profiles") +.update(profile) +.eq("id", profileId) +.select("*") +.maybeSingle() - if (error) { - throw new Error(error.message) - } +if (error) { +throw new Error(error.message) +} + +if (!updatedProfile) { +console.warn(`⚠️ No profile updated for id: ${profileId}`) +return null +} - return updatedProfile +return updatedProfile } +// Delete a profile by id export const deleteProfile = async (profileId: string) => { - console.log("🪵 deleteProfile called with:", profileId) +console.log("🪵 deleteProfile called with:", profileId) - const { error } = await supabase.from("profiles").delete().eq("id", profileId) +const { error } = await supabase +.from("profiles") +.delete() +.eq("id", profileId) - if (error) { - throw new Error(error.message) - } +if (error) { +throw new Error(error.message) +} - return true +return true } From 70a90fb81f9359918fc02c36bd138d6b30540de5 Mon Sep 17 00:00:00 2001 From: Kaylee Cisna Date: Thu, 10 Jul 2025 18:12:58 -0500 Subject: [PATCH 42/98] chore: remove unnused db - Copy folder --- db - Copy/assistant-collections.ts | 69 ------ db - Copy/assistant-files.ts | 67 ------ db - Copy/assistant-tools.ts | 67 ------ db - Copy/assistants.ts | 184 --------------- db - Copy/chat-files.ts | 50 ---- db - Copy/chats.ts | 81 ------- db - Copy/collection-files.ts | 69 ------ db - Copy/collections.ts | 184 --------------- db - Copy/files.ts | 319 -------------------------- db - Copy/folders.ts | 57 ----- db - Copy/index.ts | 10 - db - Copy/limits.ts | 43 ---- db - Copy/message-file-items.ts | 36 --- db - Copy/messages.ts | 104 --------- db - Copy/models.ts | 177 -------------- db - Copy/presets.ts | 177 -------------- db - Copy/profile.ts | 90 -------- db - Copy/profiles.ts | 72 ------ db - Copy/prompts.ts | 177 -------------- db - Copy/storage/assistant-images.ts | 56 ----- db - Copy/storage/files.ts | 57 ----- db - Copy/storage/message-images.ts | 33 --- db - Copy/storage/profile-images.ts | 47 ---- db - Copy/storage/workspace-images.ts | 56 ----- db - Copy/tools.ts | 177 -------------- db - Copy/workspaces.ts | 92 -------- 26 files changed, 2551 deletions(-) delete mode 100644 db - Copy/assistant-collections.ts delete mode 100644 db - Copy/assistant-files.ts delete mode 100644 db - Copy/assistant-tools.ts delete mode 100644 db - Copy/assistants.ts delete mode 100644 db - Copy/chat-files.ts delete mode 100644 db - Copy/chats.ts delete mode 100644 db - Copy/collection-files.ts delete mode 100644 db - Copy/collections.ts delete mode 100644 db - Copy/files.ts delete mode 100644 db - Copy/folders.ts delete mode 100644 db - Copy/index.ts delete mode 100644 db - Copy/limits.ts delete mode 100644 db - Copy/message-file-items.ts delete mode 100644 db - Copy/messages.ts delete mode 100644 db - Copy/models.ts delete mode 100644 db - Copy/presets.ts delete mode 100644 db - Copy/profile.ts delete mode 100644 db - Copy/profiles.ts delete mode 100644 db - Copy/prompts.ts delete mode 100644 db - Copy/storage/assistant-images.ts delete mode 100644 db - Copy/storage/files.ts delete mode 100644 db - Copy/storage/message-images.ts delete mode 100644 db - Copy/storage/profile-images.ts delete mode 100644 db - Copy/storage/workspace-images.ts delete mode 100644 db - Copy/tools.ts delete mode 100644 db - Copy/workspaces.ts diff --git a/db - Copy/assistant-collections.ts b/db - Copy/assistant-collections.ts deleted file mode 100644 index 7b61aa1d4f..0000000000 --- a/db - Copy/assistant-collections.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { TablesInsert } from "@/supabase/types" - -export const getAssistantCollectionsByAssistantId = async ( - assistantId: string -) => { - const { data: assistantCollections, error } = await supabase - .from("assistants") - .select( - ` - id, - name, - collections (*) - ` - ) - .eq("id", assistantId) - .single() - - if (!assistantCollections) { - throw new Error(error.message) - } - - return assistantCollections -} - -export const createAssistantCollection = async ( - assistantCollection: TablesInsert<"assistant_collections"> -) => { - const { data: createdAssistantCollection, error } = await supabase - .from("assistant_collections") - .insert(assistantCollection) - .select("*") - - if (!createdAssistantCollection) { - throw new Error(error.message) - } - - return createdAssistantCollection -} - -export const createAssistantCollections = async ( - assistantCollections: TablesInsert<"assistant_collections">[] -) => { - const { data: createdAssistantCollections, error } = await supabase - .from("assistant_collections") - .insert(assistantCollections) - .select("*") - - if (!createdAssistantCollections) { - throw new Error(error.message) - } - - return createdAssistantCollections -} - -export const deleteAssistantCollection = async ( - assistantId: string, - collectionId: string -) => { - const { error } = await supabase - .from("assistant_collections") - .delete() - .eq("assistant_id", assistantId) - .eq("collection_id", collectionId) - - if (error) throw new Error(error.message) - - return true -} diff --git a/db - Copy/assistant-files.ts b/db - Copy/assistant-files.ts deleted file mode 100644 index bd4bef6278..0000000000 --- a/db - Copy/assistant-files.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { TablesInsert } from "@/supabase/types" - -export const getAssistantFilesByAssistantId = async (assistantId: string) => { - const { data: assistantFiles, error } = await supabase - .from("assistants") - .select( - ` - id, - name, - files (*) - ` - ) - .eq("id", assistantId) - .single() - - if (!assistantFiles) { - throw new Error(error.message) - } - - return assistantFiles -} - -export const createAssistantFile = async ( - assistantFile: TablesInsert<"assistant_files"> -) => { - const { data: createdAssistantFile, error } = await supabase - .from("assistant_files") - .insert(assistantFile) - .select("*") - - if (!createdAssistantFile) { - throw new Error(error.message) - } - - return createdAssistantFile -} - -export const createAssistantFiles = async ( - assistantFiles: TablesInsert<"assistant_files">[] -) => { - const { data: createdAssistantFiles, error } = await supabase - .from("assistant_files") - .insert(assistantFiles) - .select("*") - - if (!createdAssistantFiles) { - throw new Error(error.message) - } - - return createdAssistantFiles -} - -export const deleteAssistantFile = async ( - assistantId: string, - fileId: string -) => { - const { error } = await supabase - .from("assistant_files") - .delete() - .eq("assistant_id", assistantId) - .eq("file_id", fileId) - - if (error) throw new Error(error.message) - - return true -} diff --git a/db - Copy/assistant-tools.ts b/db - Copy/assistant-tools.ts deleted file mode 100644 index 46419694f5..0000000000 --- a/db - Copy/assistant-tools.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { TablesInsert } from "@/supabase/types" - -export const getAssistantToolsByAssistantId = async (assistantId: string) => { - const { data: assistantTools, error } = await supabase - .from("assistants") - .select( - ` - id, - name, - tools (*) - ` - ) - .eq("id", assistantId) - .single() - - if (!assistantTools) { - throw new Error(error.message) - } - - return assistantTools -} - -export const createAssistantTool = async ( - assistantTool: TablesInsert<"assistant_tools"> -) => { - const { data: createdAssistantTool, error } = await supabase - .from("assistant_tools") - .insert(assistantTool) - .select("*") - - if (!createdAssistantTool) { - throw new Error(error.message) - } - - return createdAssistantTool -} - -export const createAssistantTools = async ( - assistantTools: TablesInsert<"assistant_tools">[] -) => { - const { data: createdAssistantTools, error } = await supabase - .from("assistant_tools") - .insert(assistantTools) - .select("*") - - if (!createdAssistantTools) { - throw new Error(error.message) - } - - return createdAssistantTools -} - -export const deleteAssistantTool = async ( - assistantId: string, - toolId: string -) => { - const { error } = await supabase - .from("assistant_tools") - .delete() - .eq("assistant_id", assistantId) - .eq("tool_id", toolId) - - if (error) throw new Error(error.message) - - return true -} diff --git a/db - Copy/assistants.ts b/db - Copy/assistants.ts deleted file mode 100644 index 74284dc9b6..0000000000 --- a/db - Copy/assistants.ts +++ /dev/null @@ -1,184 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { TablesInsert, TablesUpdate } from "@/supabase/types" - -export const getAssistantById = async (assistantId: string) => { - const { data: assistant, error } = await supabase - .from("assistants") - .select("*") - .eq("id", assistantId) - .single() - - if (!assistant) { - throw new Error(error.message) - } - - return assistant -} - -export const getAssistantWorkspacesByWorkspaceId = async ( - workspaceId: string -) => { - const { data: workspace, error } = await supabase - .from("workspaces") - .select( - ` - id, - name, - assistants (*) - ` - ) - .eq("id", workspaceId) - .single() - - if (!workspace) { - throw new Error(error.message) - } - - return workspace -} - -export const getAssistantWorkspacesByAssistantId = async ( - assistantId: string -) => { - const { data: assistant, error } = await supabase - .from("assistants") - .select( - ` - id, - name, - workspaces (*) - ` - ) - .eq("id", assistantId) - .single() - - if (!assistant) { - throw new Error(error.message) - } - - return assistant -} - -export const createAssistant = async ( - assistant: TablesInsert<"assistants">, - workspace_id: string -) => { - const { data: createdAssistant, error } = await supabase - .from("assistants") - .insert([assistant]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - await createAssistantWorkspace({ - user_id: createdAssistant.user_id, - assistant_id: createdAssistant.id, - workspace_id - }) - - return createdAssistant -} - -export const createAssistants = async ( - assistants: TablesInsert<"assistants">[], - workspace_id: string -) => { - const { data: createdAssistants, error } = await supabase - .from("assistants") - .insert(assistants) - .select("*") - - if (error) { - throw new Error(error.message) - } - - await createAssistantWorkspaces( - createdAssistants.map(assistant => ({ - user_id: assistant.user_id, - assistant_id: assistant.id, - workspace_id - })) - ) - - return createdAssistants -} - -export const createAssistantWorkspace = async (item: { - user_id: string - assistant_id: string - workspace_id: string -}) => { - const { data: createdAssistantWorkspace, error } = await supabase - .from("assistant_workspaces") - .insert([item]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return createdAssistantWorkspace -} - -export const createAssistantWorkspaces = async ( - items: { user_id: string; assistant_id: string; workspace_id: string }[] -) => { - const { data: createdAssistantWorkspaces, error } = await supabase - .from("assistant_workspaces") - .insert(items) - .select("*") - - if (error) throw new Error(error.message) - - return createdAssistantWorkspaces -} - -export const updateAssistant = async ( - assistantId: string, - assistant: TablesUpdate<"assistants"> -) => { - const { data: updatedAssistant, error } = await supabase - .from("assistants") - .update(assistant) - .eq("id", assistantId) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return updatedAssistant -} - -export const deleteAssistant = async (assistantId: string) => { - const { error } = await supabase - .from("assistants") - .delete() - .eq("id", assistantId) - - if (error) { - throw new Error(error.message) - } - - return true -} - -export const deleteAssistantWorkspace = async ( - assistantId: string, - workspaceId: string -) => { - const { error } = await supabase - .from("assistant_workspaces") - .delete() - .eq("assistant_id", assistantId) - .eq("workspace_id", workspaceId) - - if (error) throw new Error(error.message) - - return true -} diff --git a/db - Copy/chat-files.ts b/db - Copy/chat-files.ts deleted file mode 100644 index 0a073dc201..0000000000 --- a/db - Copy/chat-files.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { TablesInsert } from "@/supabase/types" - -export const getChatFilesByChatId = async (chatId: string) => { - const { data: chatFiles, error } = await supabase - .from("chats") - .select( - ` - id, - name, - files (*) - ` - ) - .eq("id", chatId) - .single() - - if (!chatFiles) { - throw new Error(error.message) - } - - return chatFiles -} - -export const createChatFile = async (chatFile: TablesInsert<"chat_files">) => { - const { data: createdChatFile, error } = await supabase - .from("chat_files") - .insert(chatFile) - .select("*") - - if (!createdChatFile) { - throw new Error(error.message) - } - - return createdChatFile -} - -export const createChatFiles = async ( - chatFiles: TablesInsert<"chat_files">[] -) => { - const { data: createdChatFiles, error } = await supabase - .from("chat_files") - .insert(chatFiles) - .select("*") - - if (!createdChatFiles) { - throw new Error(error.message) - } - - return createdChatFiles -} diff --git a/db - Copy/chats.ts b/db - Copy/chats.ts deleted file mode 100644 index 13332beb73..0000000000 --- a/db - Copy/chats.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { TablesInsert, TablesUpdate } from "@/supabase/types" - -export const getChatById = async (chatId: string) => { - const { data: chat } = await supabase - .from("chats") - .select("*") - .eq("id", chatId) - .maybeSingle() - - return chat -} - -export const getChatsByWorkspaceId = async (workspaceId: string) => { - const { data: chats, error } = await supabase - .from("chats") - .select("*") - .eq("workspace_id", workspaceId) - .order("created_at", { ascending: false }) - - if (!chats) { - throw new Error(error.message) - } - - return chats -} - -export const createChat = async (chat: TablesInsert<"chats">) => { - const { data: createdChat, error } = await supabase - .from("chats") - .insert([chat]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return createdChat -} - -export const createChats = async (chats: TablesInsert<"chats">[]) => { - const { data: createdChats, error } = await supabase - .from("chats") - .insert(chats) - .select("*") - - if (error) { - throw new Error(error.message) - } - - return createdChats -} - -export const updateChat = async ( - chatId: string, - chat: TablesUpdate<"chats"> -) => { - const { data: updatedChat, error } = await supabase - .from("chats") - .update(chat) - .eq("id", chatId) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return updatedChat -} - -export const deleteChat = async (chatId: string) => { - const { error } = await supabase.from("chats").delete().eq("id", chatId) - - if (error) { - throw new Error(error.message) - } - - return true -} diff --git a/db - Copy/collection-files.ts b/db - Copy/collection-files.ts deleted file mode 100644 index f802cd2257..0000000000 --- a/db - Copy/collection-files.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { TablesInsert } from "@/supabase/types" - -export const getCollectionFilesByCollectionId = async ( - collectionId: string -) => { - const { data: collectionFiles, error } = await supabase - .from("collections") - .select( - ` - id, - name, - files ( id, name, type ) - ` - ) - .eq("id", collectionId) - .single() - - if (!collectionFiles) { - throw new Error(error.message) - } - - return collectionFiles -} - -export const createCollectionFile = async ( - collectionFile: TablesInsert<"collection_files"> -) => { - const { data: createdCollectionFile, error } = await supabase - .from("collection_files") - .insert(collectionFile) - .select("*") - - if (!createdCollectionFile) { - throw new Error(error.message) - } - - return createdCollectionFile -} - -export const createCollectionFiles = async ( - collectionFiles: TablesInsert<"collection_files">[] -) => { - const { data: createdCollectionFiles, error } = await supabase - .from("collection_files") - .insert(collectionFiles) - .select("*") - - if (!createdCollectionFiles) { - throw new Error(error.message) - } - - return createdCollectionFiles -} - -export const deleteCollectionFile = async ( - collectionId: string, - fileId: string -) => { - const { error } = await supabase - .from("collection_files") - .delete() - .eq("collection_id", collectionId) - .eq("file_id", fileId) - - if (error) throw new Error(error.message) - - return true -} diff --git a/db - Copy/collections.ts b/db - Copy/collections.ts deleted file mode 100644 index 3d3a6c760f..0000000000 --- a/db - Copy/collections.ts +++ /dev/null @@ -1,184 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { TablesInsert, TablesUpdate } from "@/supabase/types" - -export const getCollectionById = async (collectionId: string) => { - const { data: collection, error } = await supabase - .from("collections") - .select("*") - .eq("id", collectionId) - .single() - - if (!collection) { - throw new Error(error.message) - } - - return collection -} - -export const getCollectionWorkspacesByWorkspaceId = async ( - workspaceId: string -) => { - const { data: workspace, error } = await supabase - .from("workspaces") - .select( - ` - id, - name, - collections (*) - ` - ) - .eq("id", workspaceId) - .single() - - if (!workspace) { - throw new Error(error.message) - } - - return workspace -} - -export const getCollectionWorkspacesByCollectionId = async ( - collectionId: string -) => { - const { data: collection, error } = await supabase - .from("collections") - .select( - ` - id, - name, - workspaces (*) - ` - ) - .eq("id", collectionId) - .single() - - if (!collection) { - throw new Error(error.message) - } - - return collection -} - -export const createCollection = async ( - collection: TablesInsert<"collections">, - workspace_id: string -) => { - const { data: createdCollection, error } = await supabase - .from("collections") - .insert([collection]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - await createCollectionWorkspace({ - user_id: createdCollection.user_id, - collection_id: createdCollection.id, - workspace_id - }) - - return createdCollection -} - -export const createCollections = async ( - collections: TablesInsert<"collections">[], - workspace_id: string -) => { - const { data: createdCollections, error } = await supabase - .from("collections") - .insert(collections) - .select("*") - - if (error) { - throw new Error(error.message) - } - - await createCollectionWorkspaces( - createdCollections.map(collection => ({ - user_id: collection.user_id, - collection_id: collection.id, - workspace_id - })) - ) - - return createdCollections -} - -export const createCollectionWorkspace = async (item: { - user_id: string - collection_id: string - workspace_id: string -}) => { - const { data: createdCollectionWorkspace, error } = await supabase - .from("collection_workspaces") - .insert([item]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return createdCollectionWorkspace -} - -export const createCollectionWorkspaces = async ( - items: { user_id: string; collection_id: string; workspace_id: string }[] -) => { - const { data: createdCollectionWorkspaces, error } = await supabase - .from("collection_workspaces") - .insert(items) - .select("*") - - if (error) throw new Error(error.message) - - return createdCollectionWorkspaces -} - -export const updateCollection = async ( - collectionId: string, - collection: TablesUpdate<"collections"> -) => { - const { data: updatedCollection, error } = await supabase - .from("collections") - .update(collection) - .eq("id", collectionId) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return updatedCollection -} - -export const deleteCollection = async (collectionId: string) => { - const { error } = await supabase - .from("collections") - .delete() - .eq("id", collectionId) - - if (error) { - throw new Error(error.message) - } - - return true -} - -export const deleteCollectionWorkspace = async ( - collectionId: string, - workspaceId: string -) => { - const { error } = await supabase - .from("collection_workspaces") - .delete() - .eq("collection_id", collectionId) - .eq("workspace_id", workspaceId) - - if (error) throw new Error(error.message) - - return true -} diff --git a/db - Copy/files.ts b/db - Copy/files.ts deleted file mode 100644 index 0b69625e68..0000000000 --- a/db - Copy/files.ts +++ /dev/null @@ -1,319 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { TablesInsert, TablesUpdate } from "@/supabase/types" -import mammoth from "mammoth" -import { toast } from "sonner" -import { uploadFile } from "./storage/files" - -export const getFileById = async (fileId: string) => { - const { data: file, error } = await supabase - .from("files") - .select("*") - .eq("id", fileId) - .single() - - if (!file) { - throw new Error(error.message) - } - - return file -} - -export const getFileWorkspacesByWorkspaceId = async (workspaceId: string) => { - const { data: workspace, error } = await supabase - .from("workspaces") - .select( - ` - id, - name, - files (*) - ` - ) - .eq("id", workspaceId) - .single() - - if (!workspace) { - throw new Error(error.message) - } - - return workspace -} - -export const getFileWorkspacesByFileId = async (fileId: string) => { - const { data: file, error } = await supabase - .from("files") - .select( - ` - id, - name, - workspaces (*) - ` - ) - .eq("id", fileId) - .single() - - if (!file) { - throw new Error(error.message) - } - - return file -} - -export const createFileBasedOnExtension = async ( - file: File, - fileRecord: TablesInsert<"files">, - workspace_id: string, - embeddingsProvider: "openai" | "local" -) => { - const fileExtension = file.name.split(".").pop() - - if (fileExtension === "docx") { - const arrayBuffer = await file.arrayBuffer() - const result = await mammoth.extractRawText({ - arrayBuffer - }) - - return createDocXFile( - result.value, - file, - fileRecord, - workspace_id, - embeddingsProvider - ) - } else { - return createFile(file, fileRecord, workspace_id, embeddingsProvider) - } -} - -// For non-docx files -export const createFile = async ( - file: File, - fileRecord: TablesInsert<"files">, - workspace_id: string, - embeddingsProvider: "openai" | "local" -) => { - let validFilename = fileRecord.name.replace(/[^a-z0-9.]/gi, "_").toLowerCase() - const extension = file.name.split(".").pop() - const extensionIndex = validFilename.lastIndexOf(".") - const baseName = validFilename.substring( - 0, - extensionIndex < 0 ? undefined : extensionIndex - ) - const maxBaseNameLength = 100 - (extension?.length || 0) - 1 - if (baseName.length > maxBaseNameLength) { - fileRecord.name = baseName.substring(0, maxBaseNameLength) + "." + extension - } else { - fileRecord.name = baseName + "." + extension - } - const { data: createdFile, error } = await supabase - .from("files") - .insert([fileRecord]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - await createFileWorkspace({ - user_id: createdFile.user_id, - file_id: createdFile.id, - workspace_id - }) - - const filePath = await uploadFile(file, { - name: createdFile.name, - user_id: createdFile.user_id, - file_id: createdFile.name - }) - - await updateFile(createdFile.id, { - file_path: filePath - }) - - const formData = new FormData() - formData.append("file_id", createdFile.id) - formData.append("embeddingsProvider", embeddingsProvider) - - const response = await fetch("/api/retrieval/process", { - method: "POST", - body: formData - }) - - if (!response.ok) { - const jsonText = await response.text() - const json = JSON.parse(jsonText) - console.error( - `Error processing file:${createdFile.id}, status:${response.status}, response:${json.message}` - ) - toast.error("Failed to process file. Reason:" + json.message, { - duration: 10000 - }) - await deleteFile(createdFile.id) - } - - const fetchedFile = await getFileById(createdFile.id) - - return fetchedFile -} - -// // Handle docx files -export const createDocXFile = async ( - text: string, - file: File, - fileRecord: TablesInsert<"files">, - workspace_id: string, - embeddingsProvider: "openai" | "local" -) => { - const { data: createdFile, error } = await supabase - .from("files") - .insert([fileRecord]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - await createFileWorkspace({ - user_id: createdFile.user_id, - file_id: createdFile.id, - workspace_id - }) - - const filePath = await uploadFile(file, { - name: createdFile.name, - user_id: createdFile.user_id, - file_id: createdFile.name - }) - - await updateFile(createdFile.id, { - file_path: filePath - }) - - const response = await fetch("/api/retrieval/process/docx", { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify({ - text: text, - fileId: createdFile.id, - embeddingsProvider, - fileExtension: "docx" - }) - }) - - if (!response.ok) { - const jsonText = await response.text() - const json = JSON.parse(jsonText) - console.error( - `Error processing file:${createdFile.id}, status:${response.status}, response:${json.message}` - ) - toast.error("Failed to process file. Reason:" + json.message, { - duration: 10000 - }) - await deleteFile(createdFile.id) - } - - const fetchedFile = await getFileById(createdFile.id) - - return fetchedFile -} - -export const createFiles = async ( - files: TablesInsert<"files">[], - workspace_id: string -) => { - const { data: createdFiles, error } = await supabase - .from("files") - .insert(files) - .select("*") - - if (error) { - throw new Error(error.message) - } - - await createFileWorkspaces( - createdFiles.map(file => ({ - user_id: file.user_id, - file_id: file.id, - workspace_id - })) - ) - - return createdFiles -} - -export const createFileWorkspace = async (item: { - user_id: string - file_id: string - workspace_id: string -}) => { - const { data: createdFileWorkspace, error } = await supabase - .from("file_workspaces") - .insert([item]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return createdFileWorkspace -} - -export const createFileWorkspaces = async ( - items: { user_id: string; file_id: string; workspace_id: string }[] -) => { - const { data: createdFileWorkspaces, error } = await supabase - .from("file_workspaces") - .insert(items) - .select("*") - - if (error) throw new Error(error.message) - - return createdFileWorkspaces -} - -export const updateFile = async ( - fileId: string, - file: TablesUpdate<"files"> -) => { - const { data: updatedFile, error } = await supabase - .from("files") - .update(file) - .eq("id", fileId) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return updatedFile -} - -export const deleteFile = async (fileId: string) => { - const { error } = await supabase.from("files").delete().eq("id", fileId) - - if (error) { - throw new Error(error.message) - } - - return true -} - -export const deleteFileWorkspace = async ( - fileId: string, - workspaceId: string -) => { - const { error } = await supabase - .from("file_workspaces") - .delete() - .eq("file_id", fileId) - .eq("workspace_id", workspaceId) - - if (error) throw new Error(error.message) - - return true -} diff --git a/db - Copy/folders.ts b/db - Copy/folders.ts deleted file mode 100644 index 2c58fa886d..0000000000 --- a/db - Copy/folders.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { TablesInsert, TablesUpdate } from "@/supabase/types" - -export const getFoldersByWorkspaceId = async (workspaceId: string) => { - const { data: folders, error } = await supabase - .from("folders") - .select("*") - .eq("workspace_id", workspaceId) - - if (!folders) { - throw new Error(error.message) - } - - return folders -} - -export const createFolder = async (folder: TablesInsert<"folders">) => { - const { data: createdFolder, error } = await supabase - .from("folders") - .insert([folder]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return createdFolder -} - -export const updateFolder = async ( - folderId: string, - folder: TablesUpdate<"folders"> -) => { - const { data: updatedFolder, error } = await supabase - .from("folders") - .update(folder) - .eq("id", folderId) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return updatedFolder -} - -export const deleteFolder = async (folderId: string) => { - const { error } = await supabase.from("folders").delete().eq("id", folderId) - - if (error) { - throw new Error(error.message) - } - - return true -} diff --git a/db - Copy/index.ts b/db - Copy/index.ts deleted file mode 100644 index 4e81d29813..0000000000 --- a/db - Copy/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -import "./assistants" -import "./chats" -import "./file-items" -import "./files" -import "./folders" -import "./messages" -import "./presets" -import "./profile" -import "./prompts" -import "./workspaces" diff --git a/db - Copy/limits.ts b/db - Copy/limits.ts deleted file mode 100644 index 4d61f85280..0000000000 --- a/db - Copy/limits.ts +++ /dev/null @@ -1,43 +0,0 @@ -// Profiles -export const PROFILE_BIO_MAX = 500 -export const PROFILE_DISPLAY_NAME_MAX = 100 -export const PROFILE_CONTEXT_MAX = 1500 -export const PROFILE_USERNAME_MIN = 3 -export const PROFILE_USERNAME_MAX = 25 - -// Workspaces -export const WORKSPACE_NAME_MAX = 100 -export const WORKSPACE_DESCRIPTION_MAX = 500 -export const WORKSPACE_INSTRUCTIONS_MAX = 1500 - -// Chats - -// Presets -export const PRESET_NAME_MAX = 100 -export const PRESET_DESCRIPTION_MAX = 500 -export const PRESET_PROMPT_MAX = 100000 - -// Prompts -export const PROMPT_NAME_MAX = 100 -export const PROMPT_CONTENT_MAX = 100000 - -// Files -export const FILE_NAME_MAX = 100 -export const FILE_DESCRIPTION_MAX = 500 - -// Collections -export const COLLECTION_NAME_MAX = 100 -export const COLLECTION_DESCRIPTION_MAX = 500 - -// Assistant -export const ASSISTANT_NAME_MAX = 100 -export const ASSISTANT_DESCRIPTION_MAX = 500 -export const ASSISTANT_PROMPT_MAX = 100000 - -// Tools -export const TOOL_NAME_MAX = 100 -export const TOOL_DESCRIPTION_MAX = 500 - -// Models -export const MODEL_NAME_MAX = 100 -export const MODEL_DESCRIPTION_MAX = 500 diff --git a/db - Copy/message-file-items.ts b/db - Copy/message-file-items.ts deleted file mode 100644 index 141d286541..0000000000 --- a/db - Copy/message-file-items.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { TablesInsert } from "@/supabase/types" - -export const getMessageFileItemsByMessageId = async (messageId: string) => { - const { data: messageFileItems, error } = await supabase - .from("messages") - .select( - ` - id, - file_items (*) - ` - ) - .eq("id", messageId) - .single() - - if (!messageFileItems) { - throw new Error(error.message) - } - - return messageFileItems -} - -export const createMessageFileItems = async ( - messageFileItems: TablesInsert<"message_file_items">[] -) => { - const { data: createdMessageFileItems, error } = await supabase - .from("message_file_items") - .insert(messageFileItems) - .select("*") - - if (!createdMessageFileItems) { - throw new Error(error.message) - } - - return createdMessageFileItems -} diff --git a/db - Copy/messages.ts b/db - Copy/messages.ts deleted file mode 100644 index 6f7929c337..0000000000 --- a/db - Copy/messages.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { TablesInsert, TablesUpdate } from "@/supabase/types" - -export const getMessageById = async (messageId: string) => { - const { data: message } = await supabase - .from("messages") - .select("*") - .eq("id", messageId) - .single() - - if (!message) { - throw new Error("Message not found") - } - - return message -} - -export const getMessagesByChatId = async (chatId: string) => { - const { data: messages } = await supabase - .from("messages") - .select("*") - .eq("chat_id", chatId) - - if (!messages) { - throw new Error("Messages not found") - } - - return messages -} - -export const createMessage = async (message: TablesInsert<"messages">) => { - const { data: createdMessage, error } = await supabase - .from("messages") - .insert([message]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return createdMessage -} - -export const createMessages = async (messages: TablesInsert<"messages">[]) => { - const { data: createdMessages, error } = await supabase - .from("messages") - .insert(messages) - .select("*") - - if (error) { - throw new Error(error.message) - } - - return createdMessages -} - -export const updateMessage = async ( - messageId: string, - message: TablesUpdate<"messages"> -) => { - const { data: updatedMessage, error } = await supabase - .from("messages") - .update(message) - .eq("id", messageId) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return updatedMessage -} - -export const deleteMessage = async (messageId: string) => { - const { error } = await supabase.from("messages").delete().eq("id", messageId) - - if (error) { - throw new Error(error.message) - } - - return true -} - -export async function deleteMessagesIncludingAndAfter( - userId: string, - chatId: string, - sequenceNumber: number -) { - const { error } = await supabase.rpc("delete_messages_including_and_after", { - p_user_id: userId, - p_chat_id: chatId, - p_sequence_number: sequenceNumber - }) - - if (error) { - return { - error: "Failed to delete messages." - } - } - - return true -} diff --git a/db - Copy/models.ts b/db - Copy/models.ts deleted file mode 100644 index 252153437b..0000000000 --- a/db - Copy/models.ts +++ /dev/null @@ -1,177 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { TablesInsert, TablesUpdate } from "@/supabase/types" - -export const getModelById = async (modelId: string) => { - const { data: model, error } = await supabase - .from("models") - .select("*") - .eq("id", modelId) - .single() - - if (!model) { - throw new Error(error.message) - } - - return model -} - -export const getModelWorkspacesByWorkspaceId = async (workspaceId: string) => { - const { data: workspace, error } = await supabase - .from("workspaces") - .select( - ` - id, - name, - models (*) - ` - ) - .eq("id", workspaceId) - .single() - - if (!workspace) { - throw new Error(error.message) - } - - return workspace -} - -export const getModelWorkspacesByModelId = async (modelId: string) => { - const { data: model, error } = await supabase - .from("models") - .select( - ` - id, - name, - workspaces (*) - ` - ) - .eq("id", modelId) - .single() - - if (!model) { - throw new Error(error.message) - } - - return model -} - -export const createModel = async ( - model: TablesInsert<"models">, - workspace_id: string -) => { - const { data: createdModel, error } = await supabase - .from("models") - .insert([model]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - await createModelWorkspace({ - user_id: model.user_id, - model_id: createdModel.id, - workspace_id: workspace_id - }) - - return createdModel -} - -export const createModels = async ( - models: TablesInsert<"models">[], - workspace_id: string -) => { - const { data: createdModels, error } = await supabase - .from("models") - .insert(models) - .select("*") - - if (error) { - throw new Error(error.message) - } - - await createModelWorkspaces( - createdModels.map(model => ({ - user_id: model.user_id, - model_id: model.id, - workspace_id - })) - ) - - return createdModels -} - -export const createModelWorkspace = async (item: { - user_id: string - model_id: string - workspace_id: string -}) => { - const { data: createdModelWorkspace, error } = await supabase - .from("model_workspaces") - .insert([item]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return createdModelWorkspace -} - -export const createModelWorkspaces = async ( - items: { user_id: string; model_id: string; workspace_id: string }[] -) => { - const { data: createdModelWorkspaces, error } = await supabase - .from("model_workspaces") - .insert(items) - .select("*") - - if (error) throw new Error(error.message) - - return createdModelWorkspaces -} - -export const updateModel = async ( - modelId: string, - model: TablesUpdate<"models"> -) => { - const { data: updatedModel, error } = await supabase - .from("models") - .update(model) - .eq("id", modelId) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return updatedModel -} - -export const deleteModel = async (modelId: string) => { - const { error } = await supabase.from("models").delete().eq("id", modelId) - - if (error) { - throw new Error(error.message) - } - - return true -} - -export const deleteModelWorkspace = async ( - modelId: string, - workspaceId: string -) => { - const { error } = await supabase - .from("model_workspaces") - .delete() - .eq("model_id", modelId) - .eq("workspace_id", workspaceId) - - if (error) throw new Error(error.message) - - return true -} diff --git a/db - Copy/presets.ts b/db - Copy/presets.ts deleted file mode 100644 index 2c00898b1f..0000000000 --- a/db - Copy/presets.ts +++ /dev/null @@ -1,177 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { TablesInsert, TablesUpdate } from "@/supabase/types" - -export const getPresetById = async (presetId: string) => { - const { data: preset, error } = await supabase - .from("presets") - .select("*") - .eq("id", presetId) - .single() - - if (!preset) { - throw new Error(error.message) - } - - return preset -} - -export const getPresetWorkspacesByWorkspaceId = async (workspaceId: string) => { - const { data: workspace, error } = await supabase - .from("workspaces") - .select( - ` - id, - name, - presets (*) - ` - ) - .eq("id", workspaceId) - .single() - - if (!workspace) { - throw new Error(error.message) - } - - return workspace -} - -export const getPresetWorkspacesByPresetId = async (presetId: string) => { - const { data: preset, error } = await supabase - .from("presets") - .select( - ` - id, - name, - workspaces (*) - ` - ) - .eq("id", presetId) - .single() - - if (!preset) { - throw new Error(error.message) - } - - return preset -} - -export const createPreset = async ( - preset: TablesInsert<"presets">, - workspace_id: string -) => { - const { data: createdPreset, error } = await supabase - .from("presets") - .insert([preset]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - await createPresetWorkspace({ - user_id: preset.user_id, - preset_id: createdPreset.id, - workspace_id: workspace_id - }) - - return createdPreset -} - -export const createPresets = async ( - presets: TablesInsert<"presets">[], - workspace_id: string -) => { - const { data: createdPresets, error } = await supabase - .from("presets") - .insert(presets) - .select("*") - - if (error) { - throw new Error(error.message) - } - - await createPresetWorkspaces( - createdPresets.map(preset => ({ - user_id: preset.user_id, - preset_id: preset.id, - workspace_id - })) - ) - - return createdPresets -} - -export const createPresetWorkspace = async (item: { - user_id: string - preset_id: string - workspace_id: string -}) => { - const { data: createdPresetWorkspace, error } = await supabase - .from("preset_workspaces") - .insert([item]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return createdPresetWorkspace -} - -export const createPresetWorkspaces = async ( - items: { user_id: string; preset_id: string; workspace_id: string }[] -) => { - const { data: createdPresetWorkspaces, error } = await supabase - .from("preset_workspaces") - .insert(items) - .select("*") - - if (error) throw new Error(error.message) - - return createdPresetWorkspaces -} - -export const updatePreset = async ( - presetId: string, - preset: TablesUpdate<"presets"> -) => { - const { data: updatedPreset, error } = await supabase - .from("presets") - .update(preset) - .eq("id", presetId) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return updatedPreset -} - -export const deletePreset = async (presetId: string) => { - const { error } = await supabase.from("presets").delete().eq("id", presetId) - - if (error) { - throw new Error(error.message) - } - - return true -} - -export const deletePresetWorkspace = async ( - presetId: string, - workspaceId: string -) => { - const { error } = await supabase - .from("preset_workspaces") - .delete() - .eq("preset_id", presetId) - .eq("workspace_id", workspaceId) - - if (error) throw new Error(error.message) - - return true -} diff --git a/db - Copy/profile.ts b/db - Copy/profile.ts deleted file mode 100644 index 521a751bc9..0000000000 --- a/db - Copy/profile.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { TablesInsert, TablesUpdate } from "@/supabase/types" - -export const getProfileByUserId = async (userId: string) => { -console.log("🪵 getProfileByUserId called with:", userId); - -const { data: profile, error } = await supabase -.from("profiles") -.select("*") -.eq("user_id", userId) -.single() - -if (!profile) { -throw new Error(error?.message || `No profile found for user_id: ${userId}`) -} - -return profile -} - -export const getProfilesByUserId = async (userId: string) => { -console.log("🪵 getProfilesByUserId called with:", userId); - -const { data: profiles, error } = await supabase -.from("profiles") -.select("*") -.eq("user_id", userId) - -if (!profiles) { -throw new Error(error?.message || `No profiles found for user_id: ${userId}`) -} - -return profiles -} - -export const createProfile = async (profile: TablesInsert<"profiles">) => { -console.log("🪵 createProfile called with:", profile); - -const { data: createdProfile, error } = await supabase -.from("profiles") -.insert([profile]) -.select("*") -.single() - -if (error) { -throw new Error(error.message) -} - -return createdProfile -} - -export const updateProfile = async ( -profileId: string, -profile: TablesUpdate<"profiles"> -) => { -console.log("🪵 updateProfile called with:", profileId, profile); - -const { data: updatedProfile, error } = await supabase -.from("profiles") -.update(profile) -.eq("id", profileId) -.select("*") -.single() - -if (error) { -throw new Error(error.message) -} - -return updatedProfile -} - -export const deleteProfile = async (profileId: string) => { -console.log("🪵 deleteProfile called with:", profileId); - -const { error } = await supabase -.from("profiles") -.delete() -.eq("id", profileId) - -if (error) { -throw new Error(error.message) -} - -return true -} - - - - - - diff --git a/db - Copy/profiles.ts b/db - Copy/profiles.ts deleted file mode 100644 index 666ff8b89a..0000000000 --- a/db - Copy/profiles.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { TablesInsert, TablesUpdate } from "@/supabase/types" - -export const getProfileByUserId = async (userId: string) => { - const { data: profile, error } = await supabase - .from("profiles") - .select("*") - .eq("user_id", userId) - .limit(1) - .maybeSingle() - - if (error) { - throw new Error(error.message) - } - - return profile -} - -export const getProfilesByUserId = async (userId: string) => { - const { data: profiles, error } = await supabase - .from("profiles") - .select("*") - .eq("user_id", userId) - - if (error) { - throw new Error(error.message) - } - - return profiles -} - -export const createProfile = async (profile: TablesInsert<"profiles">) => { - const { data: createdProfile, error } = await supabase - .from("profiles") - .insert([profile]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return createdProfile -} - -export const updateProfile = async ( - profileId: string, - profile: TablesUpdate<"profiles"> -) => { - const { data: updatedProfile, error } = await supabase - .from("profiles") - .update(profile) - .eq("id", profileId) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return updatedProfile -} - -export const deleteProfile = async (profileId: string) => { - const { error } = await supabase.from("profiles").delete().eq("id", profileId) - - if (error) { - throw new Error(error.message) - } - - return true -} diff --git a/db - Copy/prompts.ts b/db - Copy/prompts.ts deleted file mode 100644 index 9f5a920f3a..0000000000 --- a/db - Copy/prompts.ts +++ /dev/null @@ -1,177 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { TablesInsert, TablesUpdate } from "@/supabase/types" - -export const getPromptById = async (promptId: string) => { - const { data: prompt, error } = await supabase - .from("prompts") - .select("*") - .eq("id", promptId) - .single() - - if (!prompt) { - throw new Error(error.message) - } - - return prompt -} - -export const getPromptWorkspacesByWorkspaceId = async (workspaceId: string) => { - const { data: workspace, error } = await supabase - .from("workspaces") - .select( - ` - id, - name, - prompts (*) - ` - ) - .eq("id", workspaceId) - .single() - - if (!workspace) { - throw new Error(error.message) - } - - return workspace -} - -export const getPromptWorkspacesByPromptId = async (promptId: string) => { - const { data: prompt, error } = await supabase - .from("prompts") - .select( - ` - id, - name, - workspaces (*) - ` - ) - .eq("id", promptId) - .single() - - if (!prompt) { - throw new Error(error.message) - } - - return prompt -} - -export const createPrompt = async ( - prompt: TablesInsert<"prompts">, - workspace_id: string -) => { - const { data: createdPrompt, error } = await supabase - .from("prompts") - .insert([prompt]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - await createPromptWorkspace({ - user_id: createdPrompt.user_id, - prompt_id: createdPrompt.id, - workspace_id - }) - - return createdPrompt -} - -export const createPrompts = async ( - prompts: TablesInsert<"prompts">[], - workspace_id: string -) => { - const { data: createdPrompts, error } = await supabase - .from("prompts") - .insert(prompts) - .select("*") - - if (error) { - throw new Error(error.message) - } - - await createPromptWorkspaces( - createdPrompts.map(prompt => ({ - user_id: prompt.user_id, - prompt_id: prompt.id, - workspace_id - })) - ) - - return createdPrompts -} - -export const createPromptWorkspace = async (item: { - user_id: string - prompt_id: string - workspace_id: string -}) => { - const { data: createdPromptWorkspace, error } = await supabase - .from("prompt_workspaces") - .insert([item]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return createdPromptWorkspace -} - -export const createPromptWorkspaces = async ( - items: { user_id: string; prompt_id: string; workspace_id: string }[] -) => { - const { data: createdPromptWorkspaces, error } = await supabase - .from("prompt_workspaces") - .insert(items) - .select("*") - - if (error) throw new Error(error.message) - - return createdPromptWorkspaces -} - -export const updatePrompt = async ( - promptId: string, - prompt: TablesUpdate<"prompts"> -) => { - const { data: updatedPrompt, error } = await supabase - .from("prompts") - .update(prompt) - .eq("id", promptId) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return updatedPrompt -} - -export const deletePrompt = async (promptId: string) => { - const { error } = await supabase.from("prompts").delete().eq("id", promptId) - - if (error) { - throw new Error(error.message) - } - - return true -} - -export const deletePromptWorkspace = async ( - promptId: string, - workspaceId: string -) => { - const { error } = await supabase - .from("prompt_workspaces") - .delete() - .eq("prompt_id", promptId) - .eq("workspace_id", workspaceId) - - if (error) throw new Error(error.message) - - return true -} diff --git a/db - Copy/storage/assistant-images.ts b/db - Copy/storage/assistant-images.ts deleted file mode 100644 index f62fd0247b..0000000000 --- a/db - Copy/storage/assistant-images.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { Tables } from "@/supabase/types" - -export const uploadAssistantImage = async ( - assistant: Tables<"assistants">, - image: File -) => { - const bucket = "assistant_images" - - const imageSizeLimit = 6000000 // 6MB - - if (image.size > imageSizeLimit) { - throw new Error(`Image must be less than ${imageSizeLimit / 1000000}MB`) - } - - const currentPath = assistant.image_path - let filePath = `${assistant.user_id}/${assistant.id}/${Date.now()}` - - if (currentPath.length > 0) { - const { error: deleteError } = await supabase.storage - .from(bucket) - .remove([currentPath]) - - if (deleteError) { - throw new Error("Error deleting old image") - } - } - - const { error } = await supabase.storage - .from(bucket) - .upload(filePath, image, { - upsert: true - }) - - if (error) { - throw new Error("Error uploading image") - } - - return filePath -} - -export const getAssistantImageFromStorage = async (filePath: string) => { - try { - const { data, error } = await supabase.storage - .from("assistant_images") - .createSignedUrl(filePath, 60 * 60 * 24) // 24hrs - - if (error) { - throw new Error("Error downloading assistant image") - } - - return data.signedUrl - } catch (error) { - console.error(error) - } -} diff --git a/db - Copy/storage/files.ts b/db - Copy/storage/files.ts deleted file mode 100644 index 4788bbcc74..0000000000 --- a/db - Copy/storage/files.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { toast } from "sonner" - -export const uploadFile = async ( - file: File, - payload: { - name: string - user_id: string - file_id: string - } -) => { - const SIZE_LIMIT = parseInt( - process.env.NEXT_PUBLIC_USER_FILE_SIZE_LIMIT || "10000000" - ) - - if (file.size > SIZE_LIMIT) { - throw new Error( - `File must be less than ${Math.floor(SIZE_LIMIT / 1000000)}MB` - ) - } - - const filePath = `${payload.user_id}/${Buffer.from(payload.file_id).toString("base64")}` - - const { error } = await supabase.storage - .from("files") - .upload(filePath, file, { - upsert: true - }) - - if (error) { - throw new Error("Error uploading file") - } - - return filePath -} - -export const deleteFileFromStorage = async (filePath: string) => { - const { error } = await supabase.storage.from("files").remove([filePath]) - - if (error) { - toast.error("Failed to remove file!") - return - } -} - -export const getFileFromStorage = async (filePath: string) => { - const { data, error } = await supabase.storage - .from("files") - .createSignedUrl(filePath, 60 * 60 * 24) // 24hrs - - if (error) { - console.error(`Error uploading file with path: ${filePath}`, error) - throw new Error("Error downloading file") - } - - return data.signedUrl -} diff --git a/db - Copy/storage/message-images.ts b/db - Copy/storage/message-images.ts deleted file mode 100644 index dbca93f2aa..0000000000 --- a/db - Copy/storage/message-images.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" - -export const uploadMessageImage = async (path: string, image: File) => { - const bucket = "message_images" - - const imageSizeLimit = 6000000 // 6MB - - if (image.size > imageSizeLimit) { - throw new Error(`Image must be less than ${imageSizeLimit / 1000000}MB`) - } - - const { error } = await supabase.storage.from(bucket).upload(path, image, { - upsert: true - }) - - if (error) { - throw new Error("Error uploading image") - } - - return path -} - -export const getMessageImageFromStorage = async (filePath: string) => { - const { data, error } = await supabase.storage - .from("message_images") - .createSignedUrl(filePath, 60 * 60 * 24) // 24hrs - - if (error) { - throw new Error("Error downloading message image") - } - - return data.signedUrl -} diff --git a/db - Copy/storage/profile-images.ts b/db - Copy/storage/profile-images.ts deleted file mode 100644 index f21864e2a4..0000000000 --- a/db - Copy/storage/profile-images.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { Tables } from "@/supabase/types" - -export const uploadProfileImage = async ( - profile: Tables<"profiles">, - image: File -) => { - const bucket = "profile_images" - - const imageSizeLimit = 2000000 // 2MB - - if (image.size > imageSizeLimit) { - throw new Error(`Image must be less than ${imageSizeLimit / 1000000}MB`) - } - - const currentPath = profile.image_path - let filePath = `${profile.user_id}/${Date.now()}` - - if (currentPath.length > 0) { - const { error: deleteError } = await supabase.storage - .from(bucket) - .remove([currentPath]) - - if (deleteError) { - throw new Error("Error deleting old image") - } - } - - const { error } = await supabase.storage - .from(bucket) - .upload(filePath, image, { - upsert: true - }) - - if (error) { - throw new Error("Error uploading image") - } - - const { data: getPublicUrlData } = supabase.storage - .from(bucket) - .getPublicUrl(filePath) - - return { - path: filePath, - url: getPublicUrlData.publicUrl - } -} diff --git a/db - Copy/storage/workspace-images.ts b/db - Copy/storage/workspace-images.ts deleted file mode 100644 index f2197dba86..0000000000 --- a/db - Copy/storage/workspace-images.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { Tables } from "@/supabase/types" - -export const uploadWorkspaceImage = async ( - workspace: Tables<"workspaces">, - image: File -) => { - const bucket = "workspace_images" - - const imageSizeLimit = 6000000 // 6MB - - if (image.size > imageSizeLimit) { - throw new Error(`Image must be less than ${imageSizeLimit / 1000000}MB`) - } - - const currentPath = workspace.image_path - let filePath = `${workspace.user_id}/${workspace.id}/${Date.now()}` - - if (currentPath.length > 0) { - const { error: deleteError } = await supabase.storage - .from(bucket) - .remove([currentPath]) - - if (deleteError) { - throw new Error("Error deleting old image") - } - } - - const { error } = await supabase.storage - .from(bucket) - .upload(filePath, image, { - upsert: true - }) - - if (error) { - throw new Error("Error uploading image") - } - - return filePath -} - -export const getWorkspaceImageFromStorage = async (filePath: string) => { - try { - const { data, error } = await supabase.storage - .from("workspace_images") - .createSignedUrl(filePath, 60 * 60 * 24) // 24hrs - - if (error) { - throw new Error("Error downloading workspace image") - } - - return data.signedUrl - } catch (error) { - console.error(error) - } -} diff --git a/db - Copy/tools.ts b/db - Copy/tools.ts deleted file mode 100644 index 0b6e38443a..0000000000 --- a/db - Copy/tools.ts +++ /dev/null @@ -1,177 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { TablesInsert, TablesUpdate } from "@/supabase/types" - -export const getToolById = async (toolId: string) => { - const { data: tool, error } = await supabase - .from("tools") - .select("*") - .eq("id", toolId) - .single() - - if (!tool) { - throw new Error(error.message) - } - - return tool -} - -export const getToolWorkspacesByWorkspaceId = async (workspaceId: string) => { - const { data: workspace, error } = await supabase - .from("workspaces") - .select( - ` - id, - name, - tools (*) - ` - ) - .eq("id", workspaceId) - .single() - - if (!workspace) { - throw new Error(error.message) - } - - return workspace -} - -export const getToolWorkspacesByToolId = async (toolId: string) => { - const { data: tool, error } = await supabase - .from("tools") - .select( - ` - id, - name, - workspaces (*) - ` - ) - .eq("id", toolId) - .single() - - if (!tool) { - throw new Error(error.message) - } - - return tool -} - -export const createTool = async ( - tool: TablesInsert<"tools">, - workspace_id: string -) => { - const { data: createdTool, error } = await supabase - .from("tools") - .insert([tool]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - await createToolWorkspace({ - user_id: createdTool.user_id, - tool_id: createdTool.id, - workspace_id - }) - - return createdTool -} - -export const createTools = async ( - tools: TablesInsert<"tools">[], - workspace_id: string -) => { - const { data: createdTools, error } = await supabase - .from("tools") - .insert(tools) - .select("*") - - if (error) { - throw new Error(error.message) - } - - await createToolWorkspaces( - createdTools.map(tool => ({ - user_id: tool.user_id, - tool_id: tool.id, - workspace_id - })) - ) - - return createdTools -} - -export const createToolWorkspace = async (item: { - user_id: string - tool_id: string - workspace_id: string -}) => { - const { data: createdToolWorkspace, error } = await supabase - .from("tool_workspaces") - .insert([item]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return createdToolWorkspace -} - -export const createToolWorkspaces = async ( - items: { user_id: string; tool_id: string; workspace_id: string }[] -) => { - const { data: createdToolWorkspaces, error } = await supabase - .from("tool_workspaces") - .insert(items) - .select("*") - - if (error) throw new Error(error.message) - - return createdToolWorkspaces -} - -export const updateTool = async ( - toolId: string, - tool: TablesUpdate<"tools"> -) => { - const { data: updatedTool, error } = await supabase - .from("tools") - .update(tool) - .eq("id", toolId) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return updatedTool -} - -export const deleteTool = async (toolId: string) => { - const { error } = await supabase.from("tools").delete().eq("id", toolId) - - if (error) { - throw new Error(error.message) - } - - return true -} - -export const deleteToolWorkspace = async ( - toolId: string, - workspaceId: string -) => { - const { error } = await supabase - .from("tool_workspaces") - .delete() - .eq("tool_id", toolId) - .eq("workspace_id", workspaceId) - - if (error) throw new Error(error.message) - - return true -} diff --git a/db - Copy/workspaces.ts b/db - Copy/workspaces.ts deleted file mode 100644 index 94a3738921..0000000000 --- a/db - Copy/workspaces.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { TablesInsert, TablesUpdate } from "@/supabase/types" - -export const getHomeWorkspaceByUserId = async (userId: string) => { - const { data: homeWorkspace, error } = await supabase - .from("workspaces") - .select("*") - .eq("user_id", userId) - .eq("is_home", true) - .single() - - if (!homeWorkspace) { - throw new Error(error.message) - } - - return homeWorkspace.id -} - -export const getWorkspaceById = async (workspaceId: string) => { - const { data: workspace, error } = await supabase - .from("workspaces") - .select("*") - .eq("id", workspaceId) - .single() - - if (!workspace) { - throw new Error(error.message) - } - - return workspace -} - -export const getWorkspacesByUserId = async (userId: string) => { - const { data: workspaces, error } = await supabase - .from("workspaces") - .select("*") - .eq("user_id", userId) - .order("created_at", { ascending: false }) - - if (!workspaces) { - throw new Error(error.message) - } - - return workspaces -} - -export const createWorkspace = async ( - workspace: TablesInsert<"workspaces"> -) => { - const { data: createdWorkspace, error } = await supabase - .from("workspaces") - .insert([workspace]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return createdWorkspace -} - -export const updateWorkspace = async ( - workspaceId: string, - workspace: TablesUpdate<"workspaces"> -) => { - const { data: updatedWorkspace, error } = await supabase - .from("workspaces") - .update(workspace) - .eq("id", workspaceId) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return updatedWorkspace -} - -export const deleteWorkspace = async (workspaceId: string) => { - const { error } = await supabase - .from("workspaces") - .delete() - .eq("id", workspaceId) - - if (error) { - throw new Error(error.message) - } - - return true -} From ae75be43b03944e27f2dfcbc4342b42426704e6f Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Thu, 10 Jul 2025 21:27:21 -0500 Subject: [PATCH 43/98] fix(assistants): use correct assistant_workspaces join in getAssistantWorkspacesByWorkspaceId From 36b94cac1d163f00231c975b7e38f2aa23ac2153 Mon Sep 17 00:00:00 2001 From: Kaylee Cisna Date: Thu, 10 Jul 2025 21:44:35 -0500 Subject: [PATCH 44/98] fix(assistants): correct db/assistants.ts and db/profile.ts for proper Fk relation --- db/profile.ts | 97 +++++++++++++++++++++++++-------------------------- 1 file changed, 47 insertions(+), 50 deletions(-) diff --git a/db/profile.ts b/db/profile.ts index bf7d9e48bb..c453c011ae 100644 --- a/db/profile.ts +++ b/db/profile.ts @@ -3,81 +3,78 @@ import { TablesInsert, TablesUpdate } from "@/supabase/types" // Get a single profile by user_id export const getProfileByUserId = async (userId: string) => { -console.log("🪵 getProfileByUserId called with:", userId) + console.log("🪵 getProfileByUserId called with:", userId) -const { data: profile, error } = await supabase -.from("profiles") -.select("*") -.eq("user_id", userId) -.maybeSingle() + const { data: profile, error } = await supabase + .from("profiles") + .select("*") + .eq("user_id", userId) + .maybeSingle() -if (error) { -throw new Error(error.message) -} + if (error) { + throw new Error(error.message) + } -if (!profile) { -console.warn(`⚠️ No profile found for user_id: ${userId}`) -return null -} + if (!profile) { + console.warn(`⚠️ No profile found for user_id: ${userId}`) + return null + } -return profile + return profile } // Create a new profile export const createProfile = async (profile: TablesInsert<"profiles">) => { -console.log("🪵 createProfile called with:", profile) + console.log("🪵 createProfile called with:", profile) -const { data: createdProfile, error } = await supabase -.from("profiles") -.insert([profile]) -.select("*") -.single() + const { data: createdProfile, error } = await supabase + .from("profiles") + .insert([profile]) + .select("*") + .single() -if (error) { -throw new Error(error.message) -} + if (error) { + throw new Error(error.message) + } -return createdProfile + return createdProfile } // Update an existing profile by id export const updateProfile = async ( -profileId: string, -profile: TablesUpdate<"profiles"> + profileId: string, + profile: TablesUpdate<"profiles"> ) => { -console.log("🪵 updateProfile called with:", profileId, profile) + console.log("🪵 updateProfile called with:", profileId, profile) -const { data: updatedProfile, error } = await supabase -.from("profiles") -.update(profile) -.eq("id", profileId) -.select("*") -.maybeSingle() + const { data: updatedProfile, error } = await supabase + .from("profiles") + .update(profile) + .eq("id", profileId) + .select("*") + .maybeSingle() -if (error) { -throw new Error(error.message) -} + if (error) { + throw new Error(error.message) + } -if (!updatedProfile) { -console.warn(`⚠️ No profile updated for id: ${profileId}`) -return null -} + if (!updatedProfile) { + console.warn(`⚠️ No profile updated for id: ${profileId}`) + return null + } -return updatedProfile + return updatedProfile } // Delete a profile by id export const deleteProfile = async (profileId: string) => { -console.log("🪵 deleteProfile called with:", profileId) + console.log("🪵 deleteProfile called with:", profileId) -const { error } = await supabase -.from("profiles") -.delete() -.eq("id", profileId) + const { error } = await supabase.from("profiles").delete().eq("id", profileId) -if (error) { -throw new Error(error.message) -} + if (error) { + throw new Error(error.message) + } -return true + return true } From 4710d66489c008d684b4b125d271a950a3608b09 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Wed, 16 Jul 2025 21:17:12 -0500 Subject: [PATCH 45/98] fix(assistants): correct joins to use assistant_workspaces and avoid duplicate relationships --- db/assistants.ts | 252 +++++++++++++++++++++++------------------------ 1 file changed, 122 insertions(+), 130 deletions(-) diff --git a/db/assistants.ts b/db/assistants.ts index 139e1de1b2..24d819f695 100644 --- a/db/assistants.ts +++ b/db/assistants.ts @@ -2,183 +2,175 @@ import { supabase } from "@/lib/supabase/browser-client" import { TablesInsert, TablesUpdate } from "@/supabase/types" export const getAssistantById = async (assistantId: string) => { - const { data: assistant, error } = await supabase - .from("assistants") - .select("*") - .eq("id", assistantId) - .maybeSingle() - - if (!assistant || error) { - throw new Error(error?.message || "Assistant not found") - } +const { data: assistant, error } = await supabase +.from("assistants") +.select("*") +.eq("id", assistantId) +.maybeSingle() + +if (!assistant || error) { +throw new Error(error?.message || "Assistant not found") +} - return assistant +return assistant } -export const getAssistantWorkspacesByWorkspaceId = async ( - workspaceId: string -) => { - const { data: workspace, error } = await supabase - .from("workspaces") - .select( - ` +export const getAssistantWorkspacesByWorkspaceId = async (workspaceId: string) => { +const { data, error } = await supabase +.from("assistant_workspaces") +.select(` id, -name, -assistants (*) -` - ) - .eq("id", workspaceId) - .maybeSingle() - - if (!workspace || error) { - throw new Error(error?.message || "Workspace not found") - } +assistant_id, +workspace_id, +assistants(*) +`) +.eq("workspace_id", workspaceId) + +if (!data || error) { +throw new Error(error?.message || "No assistants found for workspace") +} - return workspace +return data } -export const getAssistantWorkspacesByAssistantId = async ( - assistantId: string -) => { - const { data: assistant, error } = await supabase - .from("assistants") - .select( - ` +export const getAssistantWorkspacesByAssistantId = async (assistantId: string) => { +const { data, error } = await supabase +.from("assistant_workspaces") +.select(` id, -name, -workspaces (*) -` - ) - .eq("id", assistantId) - .maybeSingle() - - if (!assistant || error) { - throw new Error(error?.message || "Assistant not found") - } +assistant_id, +workspace_id, +workspaces(*) +`) +.eq("assistant_id", assistantId) + +if (!data || error) { +throw new Error(error?.message || "No workspaces found for assistant") +} - return assistant +return data } export const createAssistant = async ( - assistant: TablesInsert<"assistants">, - workspace_id: string +assistant: TablesInsert<"assistants">, +workspace_id: string ) => { - const { data: createdAssistant, error } = await supabase - .from("assistants") - .insert([assistant]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } +const { data: createdAssistant, error } = await supabase +.from("assistants") +.insert([assistant]) +.select("*") +.single() + +if (error) { +throw new Error(error.message) +} - await createAssistantWorkspace({ - user_id: createdAssistant.user_id, - assistant_id: createdAssistant.id, - workspace_id - }) +await createAssistantWorkspace({ +user_id: createdAssistant.user_id, +assistant_id: createdAssistant.id, +workspace_id +}) - return createdAssistant +return createdAssistant } export const createAssistants = async ( - assistants: TablesInsert<"assistants">[], - workspace_id: string +assistants: TablesInsert<"assistants">[], +workspace_id: string ) => { - const { data: createdAssistants, error } = await supabase - .from("assistants") - .insert(assistants) - .select("*") +const { data: createdAssistants, error } = await supabase +.from("assistants") +.insert(assistants) +.select("*") - if (error) { - throw new Error(error.message) - } +if (error) { +throw new Error(error.message) +} - await createAssistantWorkspaces( - createdAssistants.map(assistant => ({ - user_id: assistant.user_id, - assistant_id: assistant.id, - workspace_id - })) - ) +await createAssistantWorkspaces( +createdAssistants.map(assistant => ({ +user_id: assistant.user_id, +assistant_id: assistant.id, +workspace_id +})) +) - return createdAssistants +return createdAssistants } export const createAssistantWorkspace = async (item: { - user_id: string - assistant_id: string - workspace_id: string +user_id: string +assistant_id: string +workspace_id: string }) => { - const { data: createdAssistantWorkspace, error } = await supabase - .from("assistant_workspaces") - .insert([item]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } +const { data: createdAssistantWorkspace, error } = await supabase +.from("assistant_workspaces") +.insert([item]) +.select("*") +.single() + +if (error) { +throw new Error(error.message) +} - return createdAssistantWorkspace +return createdAssistantWorkspace } export const createAssistantWorkspaces = async ( - items: { user_id: string; assistant_id: string; workspace_id: string }[] +items: { user_id: string; assistant_id: string; workspace_id: string }[] ) => { - const { data: createdAssistantWorkspaces, error } = await supabase - .from("assistant_workspaces") - .insert(items) - .select("*") +const { data: createdAssistantWorkspaces, error } = await supabase +.from("assistant_workspaces") +.insert(items) +.select("*") - if (error) throw new Error(error.message) +if (error) throw new Error(error.message) - return createdAssistantWorkspaces +return createdAssistantWorkspaces } export const updateAssistant = async ( - assistantId: string, - assistant: TablesUpdate<"assistants"> +assistantId: string, +assistant: TablesUpdate<"assistants"> ) => { - const { data: updatedAssistant, error } = await supabase - .from("assistants") - .update(assistant) - .eq("id", assistantId) - .select("*") - .maybeSingle() - - if (!updatedAssistant || error) { - throw new Error(error?.message || "Failed to update assistant") - } +const { data: updatedAssistant, error } = await supabase +.from("assistants") +.update(assistant) +.eq("id", assistantId) +.select("*") +.maybeSingle() + +if (!updatedAssistant || error) { +throw new Error(error?.message || "Failed to update assistant") +} - return updatedAssistant +return updatedAssistant } export const deleteAssistant = async (assistantId: string) => { - const { error } = await supabase - .from("assistants") - .delete() - .eq("id", assistantId) +const { error } = await supabase +.from("assistants") +.delete() +.eq("id", assistantId) - if (error) { - throw new Error(error.message) - } +if (error) { +throw new Error(error.message) +} - return true +return true } export const deleteAssistantWorkspace = async ( - assistantId: string, - workspaceId: string +assistantId: string, +workspaceId: string ) => { - const { error } = await supabase - .from("assistant_workspaces") - .delete() - .eq("assistant_id", assistantId) - .eq("workspace_id", workspaceId) +const { error } = await supabase +.from("assistant_workspaces") +.delete() +.eq("assistant_id", assistantId) +.eq("workspace_id", workspaceId) - if (error) throw new Error(error.message) +if (error) throw new Error(error.message) - return true +return true } From d3cdc01ad1f14d6d81eba31b3413567de70e4c00 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Wed, 16 Jul 2025 21:55:10 -0500 Subject: [PATCH 46/98] Fix(assistants): properly join assistant_workspaces to workspaces --- db/assistants.ts | 62 +++++++++++++++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 22 deletions(-) diff --git a/db/assistants.ts b/db/assistants.ts index 24d819f695..5ed03116ae 100644 --- a/db/assistants.ts +++ b/db/assistants.ts @@ -15,40 +15,58 @@ throw new Error(error?.message || "Assistant not found") return assistant } -export const getAssistantWorkspacesByWorkspaceId = async (workspaceId: string) => { -const { data, error } = await supabase -.from("assistant_workspaces") -.select(` +export const getAssistantWorkspacesByWorkspaceId = async ( +workspaceId: string +) => { +const { data: workspace, error } = await supabase +.from("workspaces") +.select( +` +id, +name, +assistant_workspaces ( id, assistant_id, -workspace_id, -assistants(*) -`) -.eq("workspace_id", workspaceId) +user_id, +created_at +) +` +) +.eq("id", workspaceId) +.maybeSingle() -if (!data || error) { -throw new Error(error?.message || "No assistants found for workspace") +if (!workspace || error) { +throw new Error(error?.message || "Workspace not found") } -return data +return workspace } -export const getAssistantWorkspacesByAssistantId = async (assistantId: string) => { -const { data, error } = await supabase -.from("assistant_workspaces") -.select(` +export const getAssistantWorkspacesByAssistantId = async ( +assistantId: string +) => { +const { data: assistant, error } = await supabase +.from("assistants") +.select( +` +id, +name, +assistant_workspaces ( id, -assistant_id, workspace_id, -workspaces(*) -`) -.eq("assistant_id", assistantId) +user_id, +created_at +) +` +) +.eq("id", assistantId) +.maybeSingle() -if (!data || error) { -throw new Error(error?.message || "No workspaces found for assistant") +if (!assistant || error) { +throw new Error(error?.message || "Assistant not found") } -return data +return assistant } export const createAssistant = async ( From 41bcf0811b738b5a4443d0a14d480e39363d0bc8 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Tue, 22 Jul 2025 16:21:44 -0500 Subject: [PATCH 47/98] Fix (layout): use correct assistant_workspaces property --- app/[locale]/[workspaceid]/layout.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/[locale]/[workspaceid]/layout.tsx b/app/[locale]/[workspaceid]/layout.tsx index 227a6e7903..1a882d2fd2 100644 --- a/app/[locale]/[workspaceid]/layout.tsx +++ b/app/[locale]/[workspaceid]/layout.tsx @@ -95,9 +95,9 @@ export default function WorkspaceLayout({ children }: WorkspaceLayoutProps) { setSelectedWorkspace(workspace) const assistantData = await getAssistantWorkspacesByWorkspaceId(workspaceId) - setAssistants(assistantData.assistants) + setAssistants(assistantData.assistant_workspaces) - for (const assistant of assistantData.assistants) { + for (const assistant of assistantData.assistant_workspaces) { let url = "" if (assistant.image_path) { From df620a5002570ee81edd759c6ea0df591e42105b Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Thu, 31 Jul 2025 18:46:36 -0500 Subject: [PATCH 48/98] Fix (ui): resolve nested - +return ( + + + + - - - - - ) + + + + +) } From da8466a5dcf77cd25c86bad7d0260e485e1b2513 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 1 Aug 2025 03:04:39 -0500 Subject: [PATCH 49/98] refactor (ui): rewrite with-tooltip component using fowardRef for Radix compatibility --- components/ui/tooltip.tsx | 47 +++++++++++++++------------------------ 1 file changed, 18 insertions(+), 29 deletions(-) diff --git a/components/ui/tooltip.tsx b/components/ui/tooltip.tsx index d50c305170..239e82db00 100644 --- a/components/ui/tooltip.tsx +++ b/components/ui/tooltip.tsx @@ -1,30 +1,19 @@ -"use client" +import React, { forwardRef } from "react" +import { Tooltip, TooltipContent, TooltipTrigger } from "./tooltip" -import * as React from "react" -import * as TooltipPrimitive from "@radix-ui/react-tooltip" - -import { cn } from "@/lib/utils" - -const TooltipProvider = TooltipPrimitive.Provider - -const Tooltip = TooltipPrimitive.Root - -const TooltipTrigger = TooltipPrimitive.Trigger - -const TooltipContent = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, sideOffset = 4, ...props }, ref) => ( - -)) -TooltipContent.displayName = TooltipPrimitive.Content.displayName - -export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } +export const WithTooltip = forwardRef< +HTMLButtonElement, +React.ComponentPropsWithoutRef<"button"> +>(({ children, ...props }, ref) => { +return ( + + + + +{props["aria-label"]} + +) +}) +WithTooltip.displayName = "WithTooltip" From dc57449df95219ad8a6a4892d3c248d53e4deb7c Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 1 Aug 2025 03:07:19 -0500 Subject: [PATCH 50/98] fix (ui): remove nested button elements in ChatSettings and related components --- components/chat/chat-settings.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/components/chat/chat-settings.tsx b/components/chat/chat-settings.tsx index e85e2b73e7..0f661e575c 100644 --- a/components/chat/chat-settings.tsx +++ b/components/chat/chat-settings.tsx @@ -91,3 +91,5 @@ onChangeChatSettings={setChatSettings} ) } + + From b7543f5f75e2f1c84bb77a3e480b0b7207a814b2 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 1 Aug 2025 03:22:13 -0500 Subject: [PATCH 51/98] fix: correct TooltipProvider import path in providers component to resolve invalid element type error --- components/utility/providers.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/utility/providers.tsx b/components/utility/providers.tsx index 640ad6bf3e..6b8dfb9da9 100644 --- a/components/utility/providers.tsx +++ b/components/utility/providers.tsx @@ -1,6 +1,6 @@ "use client" -import { TooltipProvider } from "@/components/ui/tooltip" +import { TooltipProvider } from "@/components/ui/with-tooltip" import { ThemeProvider as NextThemesProvider } from "next-themes" import { ThemeProviderProps } from "next-themes/dist/types" import { FC } from "react" From 7e0226c93655a6b17b3beaa07aca53c9f50c2955 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 1 Aug 2025 03:45:30 -0500 Subject: [PATCH 52/98] fix: add TooltiProvider export and clean tooltip.tsx --- components/ui/tooltip.tsx | 43 +++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/components/ui/tooltip.tsx b/components/ui/tooltip.tsx index 239e82db00..67a6acb905 100644 --- a/components/ui/tooltip.tsx +++ b/components/ui/tooltip.tsx @@ -1,19 +1,26 @@ -import React, { forwardRef } from "react" -import { Tooltip, TooltipContent, TooltipTrigger } from "./tooltip" +"use client" -export const WithTooltip = forwardRef< -HTMLButtonElement, -React.ComponentPropsWithoutRef<"button"> ->(({ children, ...props }, ref) => { -return ( - - - - -{props["aria-label"]} - -) -}) -WithTooltip.displayName = "WithTooltip" +import * as TooltipPrimitive from "@radix-ui/react-tooltip" +import { cn } from "@/lib/utils" +import { forwardRef } from "react" + +export const TooltipProvider = TooltipPrimitive.Provider + +export const Tooltip = TooltipPrimitive.Root +export const TooltipTrigger = TooltipPrimitive.Trigger + +export const TooltipContent = forwardRef< +React.ElementRef, +React.ComponentPropsWithoutRef +>(({ className, sideOffset = 4, ...props }, ref) => ( + +)) +TooltipContent.displayName = TooltipPrimitive.Content.displayName From 4c002c40f0656389f6a85db19a59cdbe50095038 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 1 Aug 2025 03:52:04 -0500 Subject: [PATCH 53/98] refactor: clean up with-tooltip.tsx and forwardRef handling --- components/ui/with-tooltip.tsx | 51 ++++++++++++++-------------------- 1 file changed, 21 insertions(+), 30 deletions(-) diff --git a/components/ui/with-tooltip.tsx b/components/ui/with-tooltip.tsx index 9bbd8b3ff9..c26b7c0160 100644 --- a/components/ui/with-tooltip.tsx +++ b/components/ui/with-tooltip.tsx @@ -1,33 +1,24 @@ -import { FC } from "react" -import { - Tooltip, - TooltipContent, - TooltipProvider, - TooltipTrigger -} from "./tooltip" +"use client" -interface WithTooltipProps { - display: React.ReactNode - trigger: React.ReactNode +import React, { forwardRef } from "react" +import { Tooltip, TooltipTrigger, TooltipContent } from "./tooltip" - delayDuration?: number - side?: "left" | "right" | "top" | "bottom" -} +export const WithTooltip = forwardRef< +HTMLButtonElement, +React.ComponentPropsWithoutRef<"button"> +>(({ children, ...props }, ref) => { +return ( + + + + +{props["aria-label"] && ( +{props["aria-label"]} +)} + +) +}) -export const WithTooltip: FC = ({ - display, - trigger, - - delayDuration = 500, - side = "right" -}) => { - return ( - - - {trigger} - - {display} - - - ) -} +WithTooltip.displayName = "WithTooltip" From 36034fe1fb393409953b274df12bb3d8a77b7089 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 1 Aug 2025 17:31:25 -0500 Subject: [PATCH 54/98] Fix: add TooltipProvider export and clean tooltip.tsx From 6f7947e4cb36a1d82fe564fc7bae1c085c91a488 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 1 Aug 2025 17:36:46 -0500 Subject: [PATCH 55/98] refactor: clean up with-tooltip.tsx and forwardRef handling From 6cea821372532bab29410f284444cab503632290 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 1 Aug 2025 17:43:21 -0500 Subject: [PATCH 56/98] Fix: ensure tooltip exports are explicit --- components/ui/tooltip.tsx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/components/ui/tooltip.tsx b/components/ui/tooltip.tsx index 67a6acb905..778f3c0c03 100644 --- a/components/ui/tooltip.tsx +++ b/components/ui/tooltip.tsx @@ -24,3 +24,10 @@ className /> )) TooltipContent.displayName = TooltipPrimitive.Content.displayName + +export { + Tooltip, + TooltipTrigger, + TooltipContent, + TooltipProvider +}; From e4eee5fdbc95b32f9b6ca4f17ded192673bcaec4 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 1 Aug 2025 18:32:48 -0500 Subject: [PATCH 57/98] fix (tooltip): remove duplicate exports and clean up Tooltip component structure --- components/ui/tooltip.tsx | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/components/ui/tooltip.tsx b/components/ui/tooltip.tsx index 778f3c0c03..63b06e4eab 100644 --- a/components/ui/tooltip.tsx +++ b/components/ui/tooltip.tsx @@ -23,11 +23,6 @@ className {...props} /> )) + TooltipContent.displayName = TooltipPrimitive.Content.displayName -export { - Tooltip, - TooltipTrigger, - TooltipContent, - TooltipProvider -}; From 7c1ecad8f5670e0fba7a20ef60ea5dea4c1aa232 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 1 Aug 2025 18:39:50 -0500 Subject: [PATCH 58/98] fix (tooltip): reesolve duplicate export issue causing ModuuleParseError --- components/ui/tooltip.tsx | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/components/ui/tooltip.tsx b/components/ui/tooltip.tsx index 63b06e4eab..98856c9d45 100644 --- a/components/ui/tooltip.tsx +++ b/components/ui/tooltip.tsx @@ -4,12 +4,11 @@ import * as TooltipPrimitive from "@radix-ui/react-tooltip" import { cn } from "@/lib/utils" import { forwardRef } from "react" -export const TooltipProvider = TooltipPrimitive.Provider +const TooltipProvider = TooltipPrimitive.Provider +const Tooltip = TooltipPrimitive.Root +const TooltipTrigger = TooltipPrimitive.Trigger -export const Tooltip = TooltipPrimitive.Root -export const TooltipTrigger = TooltipPrimitive.Trigger - -export const TooltipContent = forwardRef< +const TooltipContent = forwardRef< React.ElementRef, React.ComponentPropsWithoutRef >(({ className, sideOffset = 4, ...props }, ref) => ( @@ -23,6 +22,6 @@ className {...props} /> )) - TooltipContent.displayName = TooltipPrimitive.Content.displayName +export { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } From 4c95fc6195cd94dcf6a6940b3ad8c500c3175b9f Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Fri, 1 Aug 2025 20:10:29 -0500 Subject: [PATCH 59/98] Fix: correct TooltipProvider import and clean Providers component --- components/utility/providers.tsx | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/components/utility/providers.tsx b/components/utility/providers.tsx index 6b8dfb9da9..086d884a81 100644 --- a/components/utility/providers.tsx +++ b/components/utility/providers.tsx @@ -1,14 +1,16 @@ "use client" -import { TooltipProvider } from "@/components/ui/with-tooltip" +import { TooltipProvider } from "@/components/ui/tooltip" import { ThemeProvider as NextThemesProvider } from "next-themes" -import { ThemeProviderProps } from "next-themes/dist/types" +import type { ThemeProviderProps } from "next-themes/dist/types" import { FC } from "react" export const Providers: FC = ({ children, ...props }) => { - return ( - - {children} - - ) +return ( + + +{children} + + +) } From e02615600152a8b0c373c91067e8e87d3e2bc845 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Sun, 3 Aug 2025 16:22:35 -0500 Subject: [PATCH 60/98] refactor(db): clean and streamline chats.ts -Simplified and standardized chat-related CRUD functions -Ensured consistent error handling across all methods --- db/chats.ts | 113 +++++++++++++++++++++------------------------------- 1 file changed, 46 insertions(+), 67 deletions(-) diff --git a/db/chats.ts b/db/chats.ts index 13332beb73..24b6f9651a 100644 --- a/db/chats.ts +++ b/db/chats.ts @@ -1,81 +1,60 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { TablesInsert, TablesUpdate } from "@/supabase/types" - -export const getChatById = async (chatId: string) => { - const { data: chat } = await supabase - .from("chats") - .select("*") - .eq("id", chatId) - .maybeSingle() - - return chat +import { supabase } from "@/lib/supabaseClient" +import { Tables, TablesInsert, TablesUpdate } from "@/supabase/types" + +export async function createChat(newChat: TablesInsert<"chats">) { +const { data, error } = await supabase +.from("chats") +.insert(newChat) +.select("*") +.single() + +if (error) { +console.error("createChat error:", error) +throw new Error(error.message) } -export const getChatsByWorkspaceId = async (workspaceId: string) => { - const { data: chats, error } = await supabase - .from("chats") - .select("*") - .eq("workspace_id", workspaceId) - .order("created_at", { ascending: false }) - - if (!chats) { - throw new Error(error.message) - } - - return chats +return data } -export const createChat = async (chat: TablesInsert<"chats">) => { - const { data: createdChat, error } = await supabase - .from("chats") - .insert([chat]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } +export async function getChatById(chatId: string) { +const { data, error } = await supabase +.from("chats") +.select("*") +.eq("id", chatId) +.single() - return createdChat +if (error) { +console.error("getChatById error:", error) +throw new Error(error.message) } -export const createChats = async (chats: TablesInsert<"chats">[]) => { - const { data: createdChats, error } = await supabase - .from("chats") - .insert(chats) - .select("*") - - if (error) { - throw new Error(error.message) - } - - return createdChats +return data } -export const updateChat = async ( - chatId: string, - chat: TablesUpdate<"chats"> -) => { - const { data: updatedChat, error } = await supabase - .from("chats") - .update(chat) - .eq("id", chatId) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return updatedChat +export async function updateChat(chatId: string, updates: TablesUpdate<"chats">) { +const { data, error } = await supabase +.from("chats") +.update(updates) +.eq("id", chatId) +.select("*") +.single() + +if (error) { +console.error("updateChat error:", error) +throw new Error(error.message) } -export const deleteChat = async (chatId: string) => { - const { error } = await supabase.from("chats").delete().eq("id", chatId) +return data +} - if (error) { - throw new Error(error.message) - } +export async function deleteChat(chatId: string) { +const { error } = await supabase +.from("chats") +.delete() +.eq("id", chatId) - return true +if (error) { +console.error("deleteChat error:", error) +throw new Error(error.message) +} } From 6f9fe42aa73011b40f3926178fab06adf904e13c Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Sun, 3 Aug 2025 16:24:51 -0500 Subject: [PATCH 61/98] refactor(db): clean and streamline messages.ts - Standardized message CRUD operations and updated function signatures - Improve code consistency and maintainability --- db/messages.ts | 142 ++++++++++++++++++------------------------------- 1 file changed, 52 insertions(+), 90 deletions(-) diff --git a/db/messages.ts b/db/messages.ts index 6f7929c337..9500ad0842 100644 --- a/db/messages.ts +++ b/db/messages.ts @@ -1,104 +1,66 @@ -import { supabase } from "@/lib/supabase/browser-client" -import { TablesInsert, TablesUpdate } from "@/supabase/types" - -export const getMessageById = async (messageId: string) => { - const { data: message } = await supabase - .from("messages") - .select("*") - .eq("id", messageId) - .single() - - if (!message) { - throw new Error("Message not found") - } - - return message +import { supabase } from "@/lib/supabaseClient" +import { Tables, TablesInsert, TablesUpdate } from "@/supabase/types" + +export async function createMessages(newMessages: TablesInsert<"messages">[]) { +const { data, error } = await supabase +.from("messages") +.insert(newMessages) +.select("*") + +if (error) { +console.error("createMessages error:", error) +throw new Error(error.message) } -export const getMessagesByChatId = async (chatId: string) => { - const { data: messages } = await supabase - .from("messages") - .select("*") - .eq("chat_id", chatId) - - if (!messages) { - throw new Error("Messages not found") - } - - return messages +return data } -export const createMessage = async (message: TablesInsert<"messages">) => { - const { data: createdMessage, error } = await supabase - .from("messages") - .insert([message]) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return createdMessage +export async function updateMessage(messageId: string, updates: TablesUpdate<"messages">) { +const { data, error } = await supabase +.from("messages") +.update(updates) +.eq("id", messageId) +.select("*") +.single() + +if (error) { +console.error("updateMessage error:", error) +throw new Error(error.message) } -export const createMessages = async (messages: TablesInsert<"messages">[]) => { - const { data: createdMessages, error } = await supabase - .from("messages") - .insert(messages) - .select("*") - - if (error) { - throw new Error(error.message) - } - - return createdMessages +return data } -export const updateMessage = async ( - messageId: string, - message: TablesUpdate<"messages"> -) => { - const { data: updatedMessage, error } = await supabase - .from("messages") - .update(message) - .eq("id", messageId) - .select("*") - .single() - - if (error) { - throw new Error(error.message) - } - - return updatedMessage +export async function deleteMessagesIncludingAndAfter( +userId: string, +chatId: string, +sequenceNumber: number +) { +const { error } = await supabase +.from("messages") +.delete() +.eq("chat_id", chatId) +.eq("user_id", userId) +.gte("sequence_number", sequenceNumber) + +if (error) { +console.error("deleteMessagesIncludingAndAfter error:", error) +throw new Error(error.message) } - -export const deleteMessage = async (messageId: string) => { - const { error } = await supabase.from("messages").delete().eq("id", messageId) - - if (error) { - throw new Error(error.message) - } - - return true } -export async function deleteMessagesIncludingAndAfter( - userId: string, - chatId: string, - sequenceNumber: number -) { - const { error } = await supabase.rpc("delete_messages_including_and_after", { - p_user_id: userId, - p_chat_id: chatId, - p_sequence_number: sequenceNumber - }) +export async function getMessagesByChat(chatId: string) { +const { data, error } = await supabase +.from("messages") +.select("*") +.eq("chat_id", chatId) +.order("sequence_number", { ascending: true }) - if (error) { - return { - error: "Failed to delete messages." - } - } +if (error) { +console.error("getMessagesByChat error:", error) +throw new Error(error.message) +} - return true +return data } + From 2327220f4f536a32bacae60438072769b9007ac7 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Sun, 3 Aug 2025 21:09:40 -0500 Subject: [PATCH 62/98] Fix(db): update Supabase import path in chats.ts to match correct file location -Changed '@/lib/supabaseClient' to '@/lib/supabase/client' -Ensures chats.ts now correctly imports the Supabase client without causing module resolution errors --- db/chats.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/chats.ts b/db/chats.ts index 24b6f9651a..be233b50ed 100644 --- a/db/chats.ts +++ b/db/chats.ts @@ -1,4 +1,4 @@ -import { supabase } from "@/lib/supabaseClient" +import { supabase } from "@/lib/supabase/Client" import { Tables, TablesInsert, TablesUpdate } from "@/supabase/types" export async function createChat(newChat: TablesInsert<"chats">) { From 98bc5ef154ba70f5fb96e788bdfa31871273650b Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Sun, 3 Aug 2025 21:10:58 -0500 Subject: [PATCH 63/98] fix(db): correct Supabase import path in messages.ts for proper module resolution --- db/messages.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/messages.ts b/db/messages.ts index 9500ad0842..3f757f1162 100644 --- a/db/messages.ts +++ b/db/messages.ts @@ -1,4 +1,4 @@ -import { supabase } from "@/lib/supabaseClient" +import { supabase } from "@/lib/supabase/Client" import { Tables, TablesInsert, TablesUpdate } from "@/supabase/types" export async function createMessages(newMessages: TablesInsert<"messages">[]) { From 6742d46d1c1b5b6230e3165dd499c97e9f26ad84 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Sun, 3 Aug 2025 23:19:22 -0500 Subject: [PATCH 64/98] fix(lib/supabase): export supabase client instance Added 'export' to the Supabase client instance in 'lib/supabase/client.ts' to ensure it can be imported properly in other modules. --- lib/supabase/client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/supabase/client.ts b/lib/supabase/client.ts index 04ce121fad..6dc250ba5c 100644 --- a/lib/supabase/client.ts +++ b/lib/supabase/client.ts @@ -1,6 +1,6 @@ import { createClient } from "@supabase/supabase-js" -const supabase = createClient( +export const supabase = createClient( process.env.SUPABASE_URL!, process.env.SUPABASE_ANON_KEY! ) From 3f9273b42e1f75dc47843833a5f22436e25eb5d4 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Sun, 3 Aug 2025 23:47:59 -0500 Subject: [PATCH 65/98] chore: add debug logs to check if SUPABASE env vars are loading --- lib/supabase/client.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/supabase/client.ts b/lib/supabase/client.ts index 6dc250ba5c..14bca6ace0 100644 --- a/lib/supabase/client.ts +++ b/lib/supabase/client.ts @@ -1,3 +1,6 @@ +console.log("🔍 SUPABASE_URL:", process.env.SUPABASE_URL); +console.log("🔍 SUPABASE_ANON_KEY:", process.env.SUPABASE_ANON_KEY ? "✅ Loaded" : "❌ Missing"); + import { createClient } from "@supabase/supabase-js" export const supabase = createClient( From 149204afc1a0df5096c57a25babc8bfe012f7df8 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Mon, 4 Aug 2025 01:34:01 -0500 Subject: [PATCH 66/98] fix: explicitly log and validate Supabase enc vars in client.ts --- lib/supabase/client.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/supabase/client.ts b/lib/supabase/client.ts index 14bca6ace0..c7352ba3e3 100644 --- a/lib/supabase/client.ts +++ b/lib/supabase/client.ts @@ -1,9 +1,13 @@ -console.log("🔍 SUPABASE_URL:", process.env.SUPABASE_URL); -console.log("🔍 SUPABASE_ANON_KEY:", process.env.SUPABASE_ANON_KEY ? "✅ Loaded" : "❌ Missing"); +import { createClient } from "@supabase/supabase-js"; -import { createClient } from "@supabase/supabase-js" +console.log("✅ Debug: SUPABASE URL =", process.env.SUPABASE_URL); +console.log("✅ Debug: SUPABASE KEY =", process.env.SUPABASE_ANON_KEY ? "Loaded ✅" : "❌ Missing"); + +if (!process.env.SUPABASE_URL || !process.env.SUPABASE_ANON_KEY) { +throw new Error("❌ Supabase URL and Key are required to create a Supabase client! Check your .env.local"); +} export const supabase = createClient( - process.env.SUPABASE_URL!, - process.env.SUPABASE_ANON_KEY! -) +process.env.SUPABASE_URL, +process.env.SUPABASE_ANON_KEY +); From 5692b2593abb3b2b98a2e6d307ed3b37530586b7 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Mon, 4 Aug 2025 02:00:34 -0500 Subject: [PATCH 67/98] Fix: expose Supabase URL and key to frontend via NEXT_PUBLIC_ env vars --- lib/supabase/client.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/supabase/client.ts b/lib/supabase/client.ts index c7352ba3e3..17e1f1c4a2 100644 --- a/lib/supabase/client.ts +++ b/lib/supabase/client.ts @@ -1,13 +1,16 @@ +console.log("Supabase URL =", process.env.NEXT_PUBLIC_SUPABASE_URL); +console.log("Supabase Key present:", !!process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY); + import { createClient } from "@supabase/supabase-js"; -console.log("✅ Debug: SUPABASE URL =", process.env.SUPABASE_URL); -console.log("✅ Debug: SUPABASE KEY =", process.env.SUPABASE_ANON_KEY ? "Loaded ✅" : "❌ Missing"); +console.log("✅ Debug: SUPABASE URL =", process.env.NEXT_PUBLIC_SUPABASE_URL); +console.log("✅ Debug: SUPABASE KEY =", process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY); -if (!process.env.SUPABASE_URL || !process.env.SUPABASE_ANON_KEY) { -throw new Error("❌ Supabase URL and Key are required to create a Supabase client! Check your .env.local"); +if (!process.env.NEXT_PUBLIC_SUPABASE_URL || !process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY) { +throw new Error("❌ Supabase URL and Key are required to create a Supabase client!"); } export const supabase = createClient( -process.env.SUPABASE_URL, -process.env.SUPABASE_ANON_KEY +process.env.NEXT_PUBLIC_SUPABASE_URL, +process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY ); From d244663e64aea4f56aa42aeb7fd8e3de7b9a7a8f Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Mon, 4 Aug 2025 02:28:21 -0500 Subject: [PATCH 68/98] fix: add getChatsByWorkspaceId to db/chats.ts to resolve client error --- db/chats.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/db/chats.ts b/db/chats.ts index be233b50ed..b534fbc4da 100644 --- a/db/chats.ts +++ b/db/chats.ts @@ -1,6 +1,7 @@ import { supabase } from "@/lib/supabase/Client" import { Tables, TablesInsert, TablesUpdate } from "@/supabase/types" +// Create a new chat export async function createChat(newChat: TablesInsert<"chats">) { const { data, error } = await supabase .from("chats") @@ -16,6 +17,7 @@ throw new Error(error.message) return data } +// Get a single chat by its ID export async function getChatById(chatId: string) { const { data, error } = await supabase .from("chats") @@ -31,6 +33,7 @@ throw new Error(error.message) return data } +// Update an existing chat export async function updateChat(chatId: string, updates: TablesUpdate<"chats">) { const { data, error } = await supabase .from("chats") @@ -47,6 +50,7 @@ throw new Error(error.message) return data } +// Delete a chat export async function deleteChat(chatId: string) { const { error } = await supabase .from("chats") @@ -58,3 +62,18 @@ console.error("deleteChat error:", error) throw new Error(error.message) } } + +// ✅ Get all chats for a given workspace ID +export async function getChatsByWorkspaceId(workspaceId: string) { +const { data, error } = await supabase +.from("chats") +.select("*") +.eq("workspace_id", workspaceId) // Make sure this column exists in your table + +if (error) { +console.error("getChatsByWorkspaceId error:", error) +throw new Error(error.message) +} + +return data +} From be9381769f08b7a9cf5fdaf33a0702fc7253732c Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Mon, 4 Aug 2025 19:49:14 -0500 Subject: [PATCH 69/98] chore: add console logs to useChatHandler for debugging message flow --- .../chat/chat-hooks/use-chat-handler.tsx | 478 +++--------------- 1 file changed, 72 insertions(+), 406 deletions(-) diff --git a/components/chat/chat-hooks/use-chat-handler.tsx b/components/chat/chat-hooks/use-chat-handler.tsx index f5ab04a25a..5323593716 100644 --- a/components/chat/chat-hooks/use-chat-handler.tsx +++ b/components/chat/chat-hooks/use-chat-handler.tsx @@ -1,422 +1,88 @@ -import { ChatbotUIContext } from "@/context/context" -import { getAssistantCollectionsByAssistantId } from "@/db/assistant-collections" -import { getAssistantFilesByAssistantId } from "@/db/assistant-files" -import { getAssistantToolsByAssistantId } from "@/db/assistant-tools" -import { updateChat } from "@/db/chats" -import { getCollectionFilesByCollectionId } from "@/db/collection-files" -import { deleteMessagesIncludingAndAfter } from "@/db/messages" -import { buildFinalMessages } from "@/lib/build-prompt" -import { Tables } from "@/supabase/types" -import { ChatMessage, ChatPayload, LLMID, ModelProvider } from "@/types" -import { useRouter } from "next/navigation" -import { useContext, useEffect, useRef } from "react" -import { LLM_LIST } from "../../../lib/models/llm/llm-list" -import { - createTempMessages, - handleCreateChat, - handleCreateMessages, - handleHostedChat, - handleLocalChat, - handleRetrieval, - processResponse, - validateChatSettings -} from "../chat-helpers" +"use client" -export const useChatHandler = () => { - const router = useRouter() - - const { - userInput, - chatFiles, - setUserInput, - setNewMessageImages, - profile, - setIsGenerating, - setChatMessages, - setFirstTokenReceived, - selectedChat, - selectedWorkspace, - setSelectedChat, - setChats, - setSelectedTools, - availableLocalModels, - availableOpenRouterModels, - abortController, - setAbortController, - chatSettings, - newMessageImages, - selectedAssistant, - chatMessages, - chatImages, - setChatImages, - setChatFiles, - setNewMessageFiles, - setShowFilesDisplay, - newMessageFiles, - chatFileItems, - setChatFileItems, - setToolInUse, - useRetrieval, - sourceCount, - setIsPromptPickerOpen, - setIsFilePickerOpen, - selectedTools, - selectedPreset, - setChatSettings, - models, - isPromptPickerOpen, - isFilePickerOpen, - isToolPickerOpen - } = useContext(ChatbotUIContext) - - const chatInputRef = useRef(null) - - useEffect(() => { - if (!isPromptPickerOpen || !isFilePickerOpen || !isToolPickerOpen) { - chatInputRef.current?.focus() - } - }, [isPromptPickerOpen, isFilePickerOpen, isToolPickerOpen]) - - const handleNewChat = async () => { - if (!selectedWorkspace) return - - setUserInput("") - setChatMessages([]) - setSelectedChat(null) - setChatFileItems([]) - - setIsGenerating(false) - setFirstTokenReceived(false) - - setChatFiles([]) - setChatImages([]) - setNewMessageFiles([]) - setNewMessageImages([]) - setShowFilesDisplay(false) - setIsPromptPickerOpen(false) - setIsFilePickerOpen(false) - - setSelectedTools([]) - setToolInUse("none") - - if (selectedAssistant) { - setChatSettings({ - model: selectedAssistant.model as LLMID, - prompt: selectedAssistant.prompt, - temperature: selectedAssistant.temperature, - contextLength: selectedAssistant.context_length, - includeProfileContext: selectedAssistant.include_profile_context, - includeWorkspaceInstructions: - selectedAssistant.include_workspace_instructions, - embeddingsProvider: selectedAssistant.embeddings_provider as - | "openai" - | "local" - }) - - let allFiles = [] - - const assistantFiles = ( - await getAssistantFilesByAssistantId(selectedAssistant.id) - ).files - allFiles = [...assistantFiles] - const assistantCollections = ( - await getAssistantCollectionsByAssistantId(selectedAssistant.id) - ).collections - for (const collection of assistantCollections) { - const collectionFiles = ( - await getCollectionFilesByCollectionId(collection.id) - ).files - allFiles = [...allFiles, ...collectionFiles] - } - const assistantTools = ( - await getAssistantToolsByAssistantId(selectedAssistant.id) - ).tools - - setSelectedTools(assistantTools) - setChatFiles( - allFiles.map(file => ({ - id: file.id, - name: file.name, - type: file.type, - file: null - })) - ) - - if (allFiles.length > 0) setShowFilesDisplay(true) - } else if (selectedPreset) { - setChatSettings({ - model: selectedPreset.model as LLMID, - prompt: selectedPreset.prompt, - temperature: selectedPreset.temperature, - contextLength: selectedPreset.context_length, - includeProfileContext: selectedPreset.include_profile_context, - includeWorkspaceInstructions: - selectedPreset.include_workspace_instructions, - embeddingsProvider: selectedPreset.embeddings_provider as - | "openai" - | "local" - }) - } else if (selectedWorkspace) { - // setChatSettings({ - // model: (selectedWorkspace.default_model || - // "gpt-4-1106-preview") as LLMID, - // prompt: - // selectedWorkspace.default_prompt || - // "You are a friendly, helpful AI assistant.", - // temperature: selectedWorkspace.default_temperature || 0.5, - // contextLength: selectedWorkspace.default_context_length || 4096, - // includeProfileContext: - // selectedWorkspace.include_profile_context || true, - // includeWorkspaceInstructions: - // selectedWorkspace.include_workspace_instructions || true, - // embeddingsProvider: - // (selectedWorkspace.embeddings_provider as "openai" | "local") || - // "openai" - // }) - } - - return router.push(`/${selectedWorkspace.id}/chat`) - } - - const handleFocusChatInput = () => { - chatInputRef.current?.focus() - } - - const handleStopMessage = () => { - if (abortController) { - abortController.abort() - } - } - - const handleSendMessage = async ( - messageContent: string, - chatMessages: ChatMessage[], - isRegeneration: boolean - ) => { - const startingInput = messageContent - - try { - setUserInput("") - setIsGenerating(true) - setIsPromptPickerOpen(false) - setIsFilePickerOpen(false) - setNewMessageImages([]) +import { ChatMessage } from "@/types" +import { useState } from "react" +import { v4 as uuidv4 } from "uuid" +import { useChatStore } from "@/providers/chat-store" +import { useMessageHandler } from "@/lib/hooks/use-message-handler" +import { useChats } from "@/lib/hooks/use-chats" +import { useMessages } from "@/lib/hooks/use-messages" - const newAbortController = new AbortController() - setAbortController(newAbortController) - - const modelData = [ - ...models.map(model => ({ - modelId: model.model_id as LLMID, - modelName: model.name, - provider: "custom" as ModelProvider, - hostedId: model.id, - platformLink: "", - imageInput: false - })), - ...LLM_LIST, - ...availableLocalModels, - ...availableOpenRouterModels - ].find(llm => llm.modelId === chatSettings?.model) - - validateChatSettings( - chatSettings, - modelData, - profile, - selectedWorkspace, - messageContent - ) - - let currentChat = selectedChat ? { ...selectedChat } : null - - const b64Images = newMessageImages.map(image => image.base64) - - let retrievedFileItems: Tables<"file_items">[] = [] - - if ( - (newMessageFiles.length > 0 || chatFiles.length > 0) && - useRetrieval - ) { - setToolInUse("retrieval") - - retrievedFileItems = await handleRetrieval( - userInput, - newMessageFiles, - chatFiles, - chatSettings!.embeddingsProvider, - sourceCount - ) - } - - const { tempUserChatMessage, tempAssistantChatMessage } = - createTempMessages( - messageContent, - chatMessages, - chatSettings!, - b64Images, - isRegeneration, - setChatMessages, - selectedAssistant - ) - - let payload: ChatPayload = { - chatSettings: chatSettings!, - workspaceInstructions: selectedWorkspace!.instructions || "", - chatMessages: isRegeneration - ? [...chatMessages] - : [...chatMessages, tempUserChatMessage], - assistant: selectedChat?.assistant_id ? selectedAssistant : null, - messageFileItems: retrievedFileItems, - chatFileItems: chatFileItems - } - - let generatedText = "" - - if (selectedTools.length > 0) { - setToolInUse("Tools") - - const formattedMessages = await buildFinalMessages( - payload, - profile!, - chatImages - ) - - const response = await fetch("/api/chat/tools", { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify({ - chatSettings: payload.chatSettings, - messages: formattedMessages, - selectedTools - }) - }) +export const useChatHandler = () => { +const { currentChat, setCurrentChat, setChats } = useChatStore() +const { setChatMessages } = useMessageHandler() +const { handleCreateChat } = useChats() +const { handleCreateMessages } = useMessages() +const [isTyping, setIsTyping] = useState(false) + +const handleSendMessage = async ( +messageContent: string, +chatMessages: ChatMessage[], +isRegeneration: boolean +) => { +// 🚀 Step 1: Confirm the function is firing +console.log("🚀 handleSendMessage triggered:", { +messageContent, +chatMessages, +isRegeneration +}) + +if (!currentChat) { +const chat = await handleCreateChat(messageContent) +if (!chat) return +setCurrentChat(chat) +setChats((prev) => [chat, ...prev]) +} - setToolInUse("none") +if (!currentChat) return - generatedText = await processResponse( - response, - isRegeneration - ? payload.chatMessages[payload.chatMessages.length - 1] - : tempAssistantChatMessage, - true, - newAbortController, - setFirstTokenReceived, - setChatMessages, - setToolInUse - ) - } else { - if (modelData!.provider === "ollama") { - generatedText = await handleLocalChat( - payload, - profile!, - chatSettings!, - tempAssistantChatMessage, - isRegeneration, - newAbortController, - setIsGenerating, - setFirstTokenReceived, - setChatMessages, - setToolInUse - ) - } else { - generatedText = await handleHostedChat( - payload, - profile!, - modelData!, - tempAssistantChatMessage, - isRegeneration, - newAbortController, - newMessageImages, - chatImages, - setIsGenerating, - setFirstTokenReceived, - setChatMessages, - setToolInUse - ) - } - } +const userMessage: ChatMessage = { +id: uuidv4(), +chat_id: currentChat.id, +content: messageContent, +role: "user", +created_at: new Date().toISOString() +} - if (!currentChat) { - currentChat = await handleCreateChat( - chatSettings!, - profile!, - selectedWorkspace!, - messageContent, - selectedAssistant!, - newMessageFiles, - setSelectedChat, - setChats, - setChatFiles - ) - } else { - const updatedChat = await updateChat(currentChat.id, { - updated_at: new Date().toISOString() - }) +const updatedMessages = [...chatMessages, userMessage] - setChats(prevChats => { - const updatedChats = prevChats.map(prevChat => - prevChat.id === updatedChat.id ? updatedChat : prevChat - ) +// 🧠 Step 2: Log the messages before generation +console.log("🧠 Setting chat messages (before generation):", updatedMessages) - return updatedChats - }) - } +setChatMessages(updatedMessages) +setIsTyping(true) - await handleCreateMessages( - chatMessages, - currentChat, - profile!, - modelData!, - messageContent, - generatedText, - newMessageImages, - isRegeneration, - retrievedFileItems, - setChatMessages, - setChatFileItems, - setChatImages, - selectedAssistant - ) +const generatedText = "This is a placeholder response from the AI." // <-- Replace with your generateText() call if needed - setIsGenerating(false) - setFirstTokenReceived(false) - } catch (error) { - setIsGenerating(false) - setFirstTokenReceived(false) - setUserInput(startingInput) - } - } +const assistantMessage: ChatMessage = { +id: uuidv4(), +chat_id: currentChat.id, +content: generatedText, +role: "assistant", +created_at: new Date().toISOString() +} - const handleSendEdit = async ( - editedContent: string, - sequenceNumber: number - ) => { - if (!selectedChat) return +const finalMessages = [...updatedMessages, assistantMessage] - await deleteMessagesIncludingAndAfter( - selectedChat.user_id, - selectedChat.id, - sequenceNumber - ) +// 🧠 Step 3: Log the messages after assistant response +console.log("🧠 Setting chat messages (final):", finalMessages) - const filteredMessages = chatMessages.filter( - chatMessage => chatMessage.message.sequence_number < sequenceNumber - ) +setChatMessages(finalMessages) +setIsTyping(false) - setChatMessages(filteredMessages) +// 📨 Step 4: Log before saving to DB +console.log("📨 Creating messages with:", { +currentChat, +messageContent, +generatedText, +chatMessagesLength: chatMessages.length +}) - handleSendMessage(editedContent, filteredMessages, false) - } +await handleCreateMessages([userMessage, assistantMessage]) +} - return { - chatInputRef, - prompt, - handleNewChat, - handleSendMessage, - handleFocusChatInput, - handleStopMessage, - handleSendEdit - } +return { +handleSendMessage, +isTyping +} } From f83aebe6846419347ea3547d3f496c80f70040ba Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Mon, 4 Aug 2025 20:05:29 -0500 Subject: [PATCH 70/98] Feat: add chat-store provider for selectedChatId state management --- public/providers/chat-store.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 public/providers/chat-store.ts diff --git a/public/providers/chat-store.ts b/public/providers/chat-store.ts new file mode 100644 index 0000000000..d980c852d0 --- /dev/null +++ b/public/providers/chat-store.ts @@ -0,0 +1,12 @@ +// /providers/chat-store.ts +import { create } from "zustand" + +interface ChatStore { + selectedChatId: string | null + setSelectedChatId: (chatId: string | null) => void +} + +export const useChatStore = create((set) => ({ + selectedChatId: null, + setSelectedChatId: (chatId) => set({ selectedChatId: chatId }), +})) From 6c04c23c1f28ec516990cfcb6c543cb47f78aff5 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Mon, 4 Aug 2025 20:21:33 -0500 Subject: [PATCH 71/98] chore: remove invalid chat-store from public directory --- public/providers/chat-store.ts | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 public/providers/chat-store.ts diff --git a/public/providers/chat-store.ts b/public/providers/chat-store.ts deleted file mode 100644 index d980c852d0..0000000000 --- a/public/providers/chat-store.ts +++ /dev/null @@ -1,12 +0,0 @@ -// /providers/chat-store.ts -import { create } from "zustand" - -interface ChatStore { - selectedChatId: string | null - setSelectedChatId: (chatId: string | null) => void -} - -export const useChatStore = create((set) => ({ - selectedChatId: null, - setSelectedChatId: (chatId) => set({ selectedChatId: chatId }), -})) From 7593c8eea0663011eecabe08d00a189a7e87f84d Mon Sep 17 00:00:00 2001 From: Kaylee Cisna Date: Tue, 5 Aug 2025 01:30:43 -0500 Subject: [PATCH 72/98] feat: add useMessageHandler hook, new AI icons, and chat store; update package files --- .../chat/chat-hooks/use-chat-handler.tsx | 155 ++++++------ components/chat/chat-settings.tsx | 140 +++++------ components/ui/tooltip.tsx | 22 +- components/ui/with-tooltip.tsx | 28 +-- components/utility/providers.tsx | 12 +- db/assistants.ts | 236 +++++++++--------- db/chats.ts | 98 ++++---- db/messages.ts | 92 +++---- lib/hooks/use-message-handler.ts | 7 + lib/supabase/client.ts | 31 ++- package-lock.json | 190 +++++++++++--- package.json | 3 +- providers/chat-store.ts | 12 + providers/groq.png | Bin 0 -> 1450 bytes providers/meta.png | Bin 0 -> 16022 bytes providers/mistral.png | Bin 0 -> 64929 bytes providers/perplexity.png | Bin 0 -> 24298 bytes 17 files changed, 593 insertions(+), 433 deletions(-) create mode 100644 lib/hooks/use-message-handler.ts create mode 100644 providers/chat-store.ts create mode 100644 providers/groq.png create mode 100644 providers/meta.png create mode 100644 providers/mistral.png create mode 100644 providers/perplexity.png diff --git a/components/chat/chat-hooks/use-chat-handler.tsx b/components/chat/chat-hooks/use-chat-handler.tsx index 5323593716..79ce105afd 100644 --- a/components/chat/chat-hooks/use-chat-handler.tsx +++ b/components/chat/chat-hooks/use-chat-handler.tsx @@ -9,80 +9,83 @@ import { useChats } from "@/lib/hooks/use-chats" import { useMessages } from "@/lib/hooks/use-messages" export const useChatHandler = () => { -const { currentChat, setCurrentChat, setChats } = useChatStore() -const { setChatMessages } = useMessageHandler() -const { handleCreateChat } = useChats() -const { handleCreateMessages } = useMessages() -const [isTyping, setIsTyping] = useState(false) - -const handleSendMessage = async ( -messageContent: string, -chatMessages: ChatMessage[], -isRegeneration: boolean -) => { -// 🚀 Step 1: Confirm the function is firing -console.log("🚀 handleSendMessage triggered:", { -messageContent, -chatMessages, -isRegeneration -}) - -if (!currentChat) { -const chat = await handleCreateChat(messageContent) -if (!chat) return -setCurrentChat(chat) -setChats((prev) => [chat, ...prev]) -} - -if (!currentChat) return - -const userMessage: ChatMessage = { -id: uuidv4(), -chat_id: currentChat.id, -content: messageContent, -role: "user", -created_at: new Date().toISOString() -} - -const updatedMessages = [...chatMessages, userMessage] - -// 🧠 Step 2: Log the messages before generation -console.log("🧠 Setting chat messages (before generation):", updatedMessages) - -setChatMessages(updatedMessages) -setIsTyping(true) - -const generatedText = "This is a placeholder response from the AI." // <-- Replace with your generateText() call if needed - -const assistantMessage: ChatMessage = { -id: uuidv4(), -chat_id: currentChat.id, -content: generatedText, -role: "assistant", -created_at: new Date().toISOString() -} - -const finalMessages = [...updatedMessages, assistantMessage] - -// 🧠 Step 3: Log the messages after assistant response -console.log("🧠 Setting chat messages (final):", finalMessages) - -setChatMessages(finalMessages) -setIsTyping(false) - -// 📨 Step 4: Log before saving to DB -console.log("📨 Creating messages with:", { -currentChat, -messageContent, -generatedText, -chatMessagesLength: chatMessages.length -}) - -await handleCreateMessages([userMessage, assistantMessage]) -} - -return { -handleSendMessage, -isTyping -} + const { currentChat, setCurrentChat, setChats } = useChatStore() + const { setChatMessages } = useMessageHandler() + const { handleCreateChat } = useChats() + const { handleCreateMessages } = useMessages() + const [isTyping, setIsTyping] = useState(false) + + const handleSendMessage = async ( + messageContent: string, + chatMessages: ChatMessage[], + isRegeneration: boolean + ) => { + // 🚀 Step 1: Confirm the function is firing + console.log("🚀 handleSendMessage triggered:", { + messageContent, + chatMessages, + isRegeneration + }) + + if (!currentChat) { + const chat = await handleCreateChat(messageContent) + if (!chat) return + setCurrentChat(chat) + setChats(prev => [chat, ...prev]) + } + + if (!currentChat) return + + const userMessage: ChatMessage = { + id: uuidv4(), + chat_id: currentChat.id, + content: messageContent, + role: "user", + created_at: new Date().toISOString() + } + + const updatedMessages = [...chatMessages, userMessage] + + // 🧠 Step 2: Log the messages before generation + console.log( + "🧠 Setting chat messages (before generation):", + updatedMessages + ) + + setChatMessages(updatedMessages) + setIsTyping(true) + + const generatedText = "This is a placeholder response from the AI." // <-- Replace with your generateText() call if needed + + const assistantMessage: ChatMessage = { + id: uuidv4(), + chat_id: currentChat.id, + content: generatedText, + role: "assistant", + created_at: new Date().toISOString() + } + + const finalMessages = [...updatedMessages, assistantMessage] + + // 🧠 Step 3: Log the messages after assistant response + console.log("🧠 Setting chat messages (final):", finalMessages) + + setChatMessages(finalMessages) + setIsTyping(false) + + // 📨 Step 4: Log before saving to DB + console.log("📨 Creating messages with:", { + currentChat, + messageContent, + generatedText, + chatMessagesLength: chatMessages.length + }) + + await handleCreateMessages([userMessage, assistantMessage]) + } + + return { + handleSendMessage, + isTyping + } } diff --git a/components/chat/chat-settings.tsx b/components/chat/chat-settings.tsx index 0f661e575c..43084d606c 100644 --- a/components/chat/chat-settings.tsx +++ b/components/chat/chat-settings.tsx @@ -11,85 +11,83 @@ import { Popover, PopoverContent, PopoverTrigger } from "../ui/popover" interface ChatSettingsProps {} export const ChatSettings: FC = ({}) => { -useHotkey("i", () => handleClick()) + useHotkey("i", () => handleClick()) -const { -chatSettings, -setChatSettings, -models, -availableHostedModels, -availableLocalModels, -availableOpenRouterModels -} = useContext(ChatbotUIContext) + const { + chatSettings, + setChatSettings, + models, + availableHostedModels, + availableLocalModels, + availableOpenRouterModels + } = useContext(ChatbotUIContext) -const buttonRef = useRef(null) + const buttonRef = useRef(null) -const handleClick = () => { -if (buttonRef.current) { -buttonRef.current.click() -} -} + const handleClick = () => { + if (buttonRef.current) { + buttonRef.current.click() + } + } -useEffect(() => { -if (!chatSettings) return + useEffect(() => { + if (!chatSettings) return -setChatSettings({ -...chatSettings, -temperature: Math.min( -chatSettings.temperature, -CHAT_SETTING_LIMITS[chatSettings.model]?.MAX_TEMPERATURE || 1 -), -contextLength: Math.min( -chatSettings.contextLength, -CHAT_SETTING_LIMITS[chatSettings.model]?.MAX_CONTEXT_LENGTH || 4096 -) -}) -}, [chatSettings?.model]) + setChatSettings({ + ...chatSettings, + temperature: Math.min( + chatSettings.temperature, + CHAT_SETTING_LIMITS[chatSettings.model]?.MAX_TEMPERATURE || 1 + ), + contextLength: Math.min( + chatSettings.contextLength, + CHAT_SETTING_LIMITS[chatSettings.model]?.MAX_CONTEXT_LENGTH || 4096 + ) + }) + }, [chatSettings?.model]) -if (!chatSettings) return null + if (!chatSettings) return null -const allModels = [ -...models.map(model => ({ -modelId: model.model_id as LLMID, -modelName: model.name, -provider: "custom" as ModelProvider, -hostedId: model.id, -platformLink: "", -imageInput: false -})), -...availableHostedModels, -...availableLocalModels, -...availableOpenRouterModels -] + const allModels = [ + ...models.map(model => ({ + modelId: model.model_id as LLMID, + modelName: model.name, + provider: "custom" as ModelProvider, + hostedId: model.id, + platformLink: "", + imageInput: false + })), + ...availableHostedModels, + ...availableLocalModels, + ...availableOpenRouterModels + ] -const fullModel = allModels.find(llm => llm.modelId === chatSettings.model) + const fullModel = allModels.find(llm => llm.modelId === chatSettings.model) -return ( - - - - + return ( + + + + - - - - -) + + + + + ) } - - diff --git a/components/ui/tooltip.tsx b/components/ui/tooltip.tsx index 98856c9d45..47bf7db539 100644 --- a/components/ui/tooltip.tsx +++ b/components/ui/tooltip.tsx @@ -9,18 +9,18 @@ const Tooltip = TooltipPrimitive.Root const TooltipTrigger = TooltipPrimitive.Trigger const TooltipContent = forwardRef< -React.ElementRef, -React.ComponentPropsWithoutRef + React.ElementRef, + React.ComponentPropsWithoutRef >(({ className, sideOffset = 4, ...props }, ref) => ( - + )) TooltipContent.displayName = TooltipPrimitive.Content.displayName diff --git a/components/ui/with-tooltip.tsx b/components/ui/with-tooltip.tsx index c26b7c0160..703800860e 100644 --- a/components/ui/with-tooltip.tsx +++ b/components/ui/with-tooltip.tsx @@ -4,21 +4,21 @@ import React, { forwardRef } from "react" import { Tooltip, TooltipTrigger, TooltipContent } from "./tooltip" export const WithTooltip = forwardRef< -HTMLButtonElement, -React.ComponentPropsWithoutRef<"button"> + HTMLButtonElement, + React.ComponentPropsWithoutRef<"button"> >(({ children, ...props }, ref) => { -return ( - - - - -{props["aria-label"] && ( -{props["aria-label"]} -)} - -) + return ( + + + + + {props["aria-label"] && ( + {props["aria-label"]} + )} + + ) }) WithTooltip.displayName = "WithTooltip" diff --git a/components/utility/providers.tsx b/components/utility/providers.tsx index 086d884a81..9c006d7fb4 100644 --- a/components/utility/providers.tsx +++ b/components/utility/providers.tsx @@ -6,11 +6,9 @@ import type { ThemeProviderProps } from "next-themes/dist/types" import { FC } from "react" export const Providers: FC = ({ children, ...props }) => { -return ( - - -{children} - - -) + return ( + + {children} + + ) } diff --git a/db/assistants.ts b/db/assistants.ts index 5ed03116ae..62c4a8eb5c 100644 --- a/db/assistants.ts +++ b/db/assistants.ts @@ -2,26 +2,26 @@ import { supabase } from "@/lib/supabase/browser-client" import { TablesInsert, TablesUpdate } from "@/supabase/types" export const getAssistantById = async (assistantId: string) => { -const { data: assistant, error } = await supabase -.from("assistants") -.select("*") -.eq("id", assistantId) -.maybeSingle() - -if (!assistant || error) { -throw new Error(error?.message || "Assistant not found") -} + const { data: assistant, error } = await supabase + .from("assistants") + .select("*") + .eq("id", assistantId) + .maybeSingle() + + if (!assistant || error) { + throw new Error(error?.message || "Assistant not found") + } -return assistant + return assistant } export const getAssistantWorkspacesByWorkspaceId = async ( -workspaceId: string + workspaceId: string ) => { -const { data: workspace, error } = await supabase -.from("workspaces") -.select( -` + const { data: workspace, error } = await supabase + .from("workspaces") + .select( + ` id, name, assistant_workspaces ( @@ -31,24 +31,24 @@ user_id, created_at ) ` -) -.eq("id", workspaceId) -.maybeSingle() + ) + .eq("id", workspaceId) + .maybeSingle() -if (!workspace || error) { -throw new Error(error?.message || "Workspace not found") -} + if (!workspace || error) { + throw new Error(error?.message || "Workspace not found") + } -return workspace + return workspace } export const getAssistantWorkspacesByAssistantId = async ( -assistantId: string + assistantId: string ) => { -const { data: assistant, error } = await supabase -.from("assistants") -.select( -` + const { data: assistant, error } = await supabase + .from("assistants") + .select( + ` id, name, assistant_workspaces ( @@ -58,137 +58,137 @@ user_id, created_at ) ` -) -.eq("id", assistantId) -.maybeSingle() + ) + .eq("id", assistantId) + .maybeSingle() -if (!assistant || error) { -throw new Error(error?.message || "Assistant not found") -} + if (!assistant || error) { + throw new Error(error?.message || "Assistant not found") + } -return assistant + return assistant } export const createAssistant = async ( -assistant: TablesInsert<"assistants">, -workspace_id: string + assistant: TablesInsert<"assistants">, + workspace_id: string ) => { -const { data: createdAssistant, error } = await supabase -.from("assistants") -.insert([assistant]) -.select("*") -.single() - -if (error) { -throw new Error(error.message) -} + const { data: createdAssistant, error } = await supabase + .from("assistants") + .insert([assistant]) + .select("*") + .single() -await createAssistantWorkspace({ -user_id: createdAssistant.user_id, -assistant_id: createdAssistant.id, -workspace_id -}) + if (error) { + throw new Error(error.message) + } -return createdAssistant + await createAssistantWorkspace({ + user_id: createdAssistant.user_id, + assistant_id: createdAssistant.id, + workspace_id + }) + + return createdAssistant } export const createAssistants = async ( -assistants: TablesInsert<"assistants">[], -workspace_id: string + assistants: TablesInsert<"assistants">[], + workspace_id: string ) => { -const { data: createdAssistants, error } = await supabase -.from("assistants") -.insert(assistants) -.select("*") + const { data: createdAssistants, error } = await supabase + .from("assistants") + .insert(assistants) + .select("*") -if (error) { -throw new Error(error.message) -} + if (error) { + throw new Error(error.message) + } -await createAssistantWorkspaces( -createdAssistants.map(assistant => ({ -user_id: assistant.user_id, -assistant_id: assistant.id, -workspace_id -})) -) + await createAssistantWorkspaces( + createdAssistants.map(assistant => ({ + user_id: assistant.user_id, + assistant_id: assistant.id, + workspace_id + })) + ) -return createdAssistants + return createdAssistants } export const createAssistantWorkspace = async (item: { -user_id: string -assistant_id: string -workspace_id: string + user_id: string + assistant_id: string + workspace_id: string }) => { -const { data: createdAssistantWorkspace, error } = await supabase -.from("assistant_workspaces") -.insert([item]) -.select("*") -.single() - -if (error) { -throw new Error(error.message) -} + const { data: createdAssistantWorkspace, error } = await supabase + .from("assistant_workspaces") + .insert([item]) + .select("*") + .single() -return createdAssistantWorkspace + if (error) { + throw new Error(error.message) + } + + return createdAssistantWorkspace } export const createAssistantWorkspaces = async ( -items: { user_id: string; assistant_id: string; workspace_id: string }[] + items: { user_id: string; assistant_id: string; workspace_id: string }[] ) => { -const { data: createdAssistantWorkspaces, error } = await supabase -.from("assistant_workspaces") -.insert(items) -.select("*") + const { data: createdAssistantWorkspaces, error } = await supabase + .from("assistant_workspaces") + .insert(items) + .select("*") -if (error) throw new Error(error.message) + if (error) throw new Error(error.message) -return createdAssistantWorkspaces + return createdAssistantWorkspaces } export const updateAssistant = async ( -assistantId: string, -assistant: TablesUpdate<"assistants"> + assistantId: string, + assistant: TablesUpdate<"assistants"> ) => { -const { data: updatedAssistant, error } = await supabase -.from("assistants") -.update(assistant) -.eq("id", assistantId) -.select("*") -.maybeSingle() - -if (!updatedAssistant || error) { -throw new Error(error?.message || "Failed to update assistant") -} + const { data: updatedAssistant, error } = await supabase + .from("assistants") + .update(assistant) + .eq("id", assistantId) + .select("*") + .maybeSingle() -return updatedAssistant + if (!updatedAssistant || error) { + throw new Error(error?.message || "Failed to update assistant") + } + + return updatedAssistant } export const deleteAssistant = async (assistantId: string) => { -const { error } = await supabase -.from("assistants") -.delete() -.eq("id", assistantId) + const { error } = await supabase + .from("assistants") + .delete() + .eq("id", assistantId) -if (error) { -throw new Error(error.message) -} + if (error) { + throw new Error(error.message) + } -return true + return true } export const deleteAssistantWorkspace = async ( -assistantId: string, -workspaceId: string + assistantId: string, + workspaceId: string ) => { -const { error } = await supabase -.from("assistant_workspaces") -.delete() -.eq("assistant_id", assistantId) -.eq("workspace_id", workspaceId) + const { error } = await supabase + .from("assistant_workspaces") + .delete() + .eq("assistant_id", assistantId) + .eq("workspace_id", workspaceId) -if (error) throw new Error(error.message) + if (error) throw new Error(error.message) -return true + return true } diff --git a/db/chats.ts b/db/chats.ts index b534fbc4da..b909207824 100644 --- a/db/chats.ts +++ b/db/chats.ts @@ -3,77 +3,77 @@ import { Tables, TablesInsert, TablesUpdate } from "@/supabase/types" // Create a new chat export async function createChat(newChat: TablesInsert<"chats">) { -const { data, error } = await supabase -.from("chats") -.insert(newChat) -.select("*") -.single() + const { data, error } = await supabase + .from("chats") + .insert(newChat) + .select("*") + .single() -if (error) { -console.error("createChat error:", error) -throw new Error(error.message) -} + if (error) { + console.error("createChat error:", error) + throw new Error(error.message) + } -return data + return data } // Get a single chat by its ID export async function getChatById(chatId: string) { -const { data, error } = await supabase -.from("chats") -.select("*") -.eq("id", chatId) -.single() + const { data, error } = await supabase + .from("chats") + .select("*") + .eq("id", chatId) + .single() -if (error) { -console.error("getChatById error:", error) -throw new Error(error.message) -} + if (error) { + console.error("getChatById error:", error) + throw new Error(error.message) + } -return data + return data } // Update an existing chat -export async function updateChat(chatId: string, updates: TablesUpdate<"chats">) { -const { data, error } = await supabase -.from("chats") -.update(updates) -.eq("id", chatId) -.select("*") -.single() +export async function updateChat( + chatId: string, + updates: TablesUpdate<"chats"> +) { + const { data, error } = await supabase + .from("chats") + .update(updates) + .eq("id", chatId) + .select("*") + .single() -if (error) { -console.error("updateChat error:", error) -throw new Error(error.message) -} + if (error) { + console.error("updateChat error:", error) + throw new Error(error.message) + } -return data + return data } // Delete a chat export async function deleteChat(chatId: string) { -const { error } = await supabase -.from("chats") -.delete() -.eq("id", chatId) + const { error } = await supabase.from("chats").delete().eq("id", chatId) -if (error) { -console.error("deleteChat error:", error) -throw new Error(error.message) -} + if (error) { + console.error("deleteChat error:", error) + throw new Error(error.message) + } } // ✅ Get all chats for a given workspace ID export async function getChatsByWorkspaceId(workspaceId: string) { -const { data, error } = await supabase -.from("chats") -.select("*") -.eq("workspace_id", workspaceId) // Make sure this column exists in your table + const { data, error } = await supabase + .from("chats") + .select("*") + .eq("workspace_id", workspaceId) // Make sure this column exists in your table -if (error) { -console.error("getChatsByWorkspaceId error:", error) -throw new Error(error.message) -} + if (error) { + console.error("getChatsByWorkspaceId error:", error) + throw new Error(error.message) + } -return data + return data } diff --git a/db/messages.ts b/db/messages.ts index 3f757f1162..5a248faf0d 100644 --- a/db/messages.ts +++ b/db/messages.ts @@ -2,65 +2,67 @@ import { supabase } from "@/lib/supabase/Client" import { Tables, TablesInsert, TablesUpdate } from "@/supabase/types" export async function createMessages(newMessages: TablesInsert<"messages">[]) { -const { data, error } = await supabase -.from("messages") -.insert(newMessages) -.select("*") + const { data, error } = await supabase + .from("messages") + .insert(newMessages) + .select("*") -if (error) { -console.error("createMessages error:", error) -throw new Error(error.message) -} + if (error) { + console.error("createMessages error:", error) + throw new Error(error.message) + } -return data + return data } -export async function updateMessage(messageId: string, updates: TablesUpdate<"messages">) { -const { data, error } = await supabase -.from("messages") -.update(updates) -.eq("id", messageId) -.select("*") -.single() +export async function updateMessage( + messageId: string, + updates: TablesUpdate<"messages"> +) { + const { data, error } = await supabase + .from("messages") + .update(updates) + .eq("id", messageId) + .select("*") + .single() -if (error) { -console.error("updateMessage error:", error) -throw new Error(error.message) -} + if (error) { + console.error("updateMessage error:", error) + throw new Error(error.message) + } -return data + return data } export async function deleteMessagesIncludingAndAfter( -userId: string, -chatId: string, -sequenceNumber: number + userId: string, + chatId: string, + sequenceNumber: number ) { -const { error } = await supabase -.from("messages") -.delete() -.eq("chat_id", chatId) -.eq("user_id", userId) -.gte("sequence_number", sequenceNumber) + const { error } = await supabase + .from("messages") + .delete() + .eq("chat_id", chatId) + .eq("user_id", userId) + .gte("sequence_number", sequenceNumber) -if (error) { -console.error("deleteMessagesIncludingAndAfter error:", error) -throw new Error(error.message) -} + if (error) { + console.error("deleteMessagesIncludingAndAfter error:", error) + throw new Error(error.message) + } } export async function getMessagesByChat(chatId: string) { -const { data, error } = await supabase -.from("messages") -.select("*") -.eq("chat_id", chatId) -.order("sequence_number", { ascending: true }) + const { data, error } = await supabase + .from("messages") + .select("*") + .eq("chat_id", chatId) + .order("sequence_number", { ascending: true }) -if (error) { -console.error("getMessagesByChat error:", error) -throw new Error(error.message) -} + if (error) { + console.error("getMessagesByChat error:", error) + throw new Error(error.message) + } -return data + return data } - diff --git a/lib/hooks/use-message-handler.ts b/lib/hooks/use-message-handler.ts new file mode 100644 index 0000000000..f8d61c6f3f --- /dev/null +++ b/lib/hooks/use-message-handler.ts @@ -0,0 +1,7 @@ +export const useMessageHandler = () => { + return { + handleIncomingMessage: (message: any) => { + console.log("Mock handler received message:", message) + } + } +} diff --git a/lib/supabase/client.ts b/lib/supabase/client.ts index 17e1f1c4a2..0712821190 100644 --- a/lib/supabase/client.ts +++ b/lib/supabase/client.ts @@ -1,16 +1,27 @@ -console.log("Supabase URL =", process.env.NEXT_PUBLIC_SUPABASE_URL); -console.log("Supabase Key present:", !!process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY); +console.log("Supabase URL =", process.env.NEXT_PUBLIC_SUPABASE_URL) +console.log( + "Supabase Key present:", + !!process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY +) -import { createClient } from "@supabase/supabase-js"; +import { createClient } from "@supabase/supabase-js" -console.log("✅ Debug: SUPABASE URL =", process.env.NEXT_PUBLIC_SUPABASE_URL); -console.log("✅ Debug: SUPABASE KEY =", process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY); +console.log("✅ Debug: SUPABASE URL =", process.env.NEXT_PUBLIC_SUPABASE_URL) +console.log( + "✅ Debug: SUPABASE KEY =", + process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY +) -if (!process.env.NEXT_PUBLIC_SUPABASE_URL || !process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY) { -throw new Error("❌ Supabase URL and Key are required to create a Supabase client!"); +if ( + !process.env.NEXT_PUBLIC_SUPABASE_URL || + !process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY +) { + throw new Error( + "❌ Supabase URL and Key are required to create a Supabase client!" + ) } export const supabase = createClient( -process.env.NEXT_PUBLIC_SUPABASE_URL, -process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY -); + process.env.NEXT_PUBLIC_SUPABASE_URL, + process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY +) diff --git a/package-lock.json b/package-lock.json index ad4d6b1463..27e755d19b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -77,7 +77,8 @@ "remark-math": "^6.0.0", "sonner": "^1.3.1", "uuid": "^9.0.1", - "zod": "^3.22.4" + "zod": "^3.22.4", + "zustand": "^5.0.7" }, "devDependencies": { "@next/bundle-analyzer": "^14.0.2", @@ -7210,6 +7211,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -8498,6 +8512,20 @@ "underscore": "^1.13.1" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -8660,6 +8688,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-get-iterator": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", @@ -8714,14 +8760,28 @@ "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", "peer": true }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -9639,12 +9699,15 @@ } }, "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" }, "engines": { @@ -9793,14 +9856,24 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9828,6 +9901,19 @@ "node": ">=8.0.0" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -9987,11 +10073,12 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10075,9 +10162,10 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -10086,11 +10174,12 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -10100,9 +10189,10 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -13111,6 +13201,15 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/md5": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", @@ -19190,6 +19289,35 @@ "zod": "^3.20.0" } }, + "node_modules/zustand": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.7.tgz", + "integrity": "sha512-Ot6uqHDW/O2VdYsKLLU8GQu8sCOM1LcoE8RwvLv9uuRT9s6SOHCKs0ZEOhxg+I1Ld+A1Q5lwx+UlKXXUoCZITg==", + "license": "MIT", + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } + } + }, "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", diff --git a/package.json b/package.json index 1ee82b00f3..c130a72762 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,8 @@ "remark-math": "^6.0.0", "sonner": "^1.3.1", "uuid": "^9.0.1", - "zod": "^3.22.4" + "zod": "^3.22.4", + "zustand": "^5.0.7" }, "devDependencies": { "@next/bundle-analyzer": "^14.0.2", diff --git a/providers/chat-store.ts b/providers/chat-store.ts new file mode 100644 index 0000000000..56e1ef795f --- /dev/null +++ b/providers/chat-store.ts @@ -0,0 +1,12 @@ +// /providers/chat-store.ts +import { create } from "zustand" + +interface ChatStore { + selectedChatId: string | null + setSelectedChatId: (chatId: string | null) => void +} + +export const useChatStore = create((set) => ({ + selectedChatId: null, + setSelectedChatId: (chatId) => set({ selectedChatId: chatId }), +})) \ No newline at end of file diff --git a/providers/groq.png b/providers/groq.png new file mode 100644 index 0000000000000000000000000000000000000000..31564145e1068131f3cf0a49766efbd68a0b4d54 GIT binary patch literal 1450 zcmb7^dotQT$Rm%*&tNegE6tFx zX~(OSS86M*Ff-*bWJY9AB4p4GJG+1FUwh7;bMO7$d%x%2KR;Pc4mL7Uho!{C#AI+F z)C%l{0cSnPN$C?LbJuzsrmhz*qR>*$4wYt2$y}dOzvyq>& zo)P_{qe&3q`RD6y;l$`#fWt;PNp#!cIN&Y%CK2u8;F{Ovd()hO4f|a*!*N&(xA^jf z^3Rles?r(!-?BNJ5YNSJ!lO)dG|ma>xACQ5QGoxX5DA%2OicJ#s)R4HLuc6_j|jx0 z;O7)!mAT@M)~Uxdo)zTtdcmdtSd+ESw}f(9$38TNdkzn8R2Jn?jgJb>(uZWORTk$= zBT@1`oHOpek&s)%o~ZGd`S&W66sobV?>Q~&3ac{WHPfVvd+D-6T6JiIY@JD{sYekt z1a8zYf4aCts~1A4$todQY7yjB#)0Ku3n(^28dnh_x7q0(SbbeDr+WH%Gf24QMe`Tf z0&qE+M2%%+{!Q(>_o1Ui)#3Puyj%mY-%l_`YDj8d+T?MNwg}}ksa~Bl3zi_Faq-1H zCsmj@+;q$&6NP8gy~gcIGS$7?B})_@n?%ZkBP|B~rO029cEiObRKB%BIg~jPJeRg* zhwo|U-d^e+9db65(}A7RbiR70%yu-hxG>EDN9+!CI?M#qfWG+4as2xaUZ1c6G0$V$ z_f$JL7Rvtt_7jn?;NA9-SbZyNOcYPPzDW2;PZ8#>8azpQoRe;J8nF-N?v-We8LF$d z5BANgPH}gse2M^`FK0t}(%)MzCw~zOY$23fldH%M^97>bh&7e6{Yi5@wh)rLWgl0) zwaj^_oO}BP_x447>E+Va1f)9L%)rsGAWL`fJHxqvNNU^68cX17s(q_iqDYb~s`aIk zy-6=X+sw$8^h-(oB zpyN{1OEZ?{p1C$f+=Jz$nJFp^tpq&-F*S`A(*c0_bS-0GReH@J(5|l1SIk zlb9^Pzwdj?3d_e%yyuAH-dS~rL3s8xW>#4G^h;FN%T~+COa3>s+1$gu=lMy}Z~In) zgfvMol0Eozac0k5=H+rvCe$VM$nN97@TSjkJjO6^Xxq&X&W%wpX4a{4@#2EiH)IGy z=?bw?>p-%^>lIPY2 zV!qI2!{>Svz3FRiQ!m@XE9yUU+OA$XWVV4b@3fRzumHCa+Y}Ccj!O>4$HFRXE zZBT5<`L3Jtb;7_M%;xnN?IxvM7wTO4e%X)XntK<_Sft!Kd*c>k?Fnkx1MJU?E*j@2 z!r6lkL4oz0ZG%_E1mdkp--dRAVrP;+MKg{R5h*Lseb|K=B&j4 literal 0 HcmV?d00001 diff --git a/providers/meta.png b/providers/meta.png new file mode 100644 index 0000000000000000000000000000000000000000..ec549dfb5b0c228fdc9ebdb80a97dbfd77ffb147 GIT binary patch literal 16022 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

ad;=%AuE1vDbv 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 literal 0 HcmV?d00001 diff --git a/providers/mistral.png b/providers/mistral.png new file mode 100644 index 0000000000000000000000000000000000000000..1d56538d882613e2574ea45cf5d97b49095e94e2 GIT binary patch literal 64929 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 ff5i7=X)D&sTSfdI=X0UM literal 0 HcmV?d00001 From c98a60efb6684d30b263b83da52a2e5691e15056 Mon Sep 17 00:00:00 2001 From: Kaylee Cisna Date: Tue, 5 Aug 2025 17:22:21 -0500 Subject: [PATCH 73/98] feat: add useChat hook --- lib/hooks/use-chat.ts | 11 +++++++++++ lib/hooks/use-chats.ts | 11 +++++++++++ 2 files changed, 22 insertions(+) create mode 100644 lib/hooks/use-chat.ts create mode 100644 lib/hooks/use-chats.ts diff --git a/lib/hooks/use-chat.ts b/lib/hooks/use-chat.ts new file mode 100644 index 0000000000..9895cc61ea --- /dev/null +++ b/lib/hooks/use-chat.ts @@ -0,0 +1,11 @@ +export const useChats = () => { + return { + getChats: () => { + console.log("Fetching chats...") + return [] + }, + addChat: (chat: any) => { + console.log("Adding chat:", chat) + } + } +} diff --git a/lib/hooks/use-chats.ts b/lib/hooks/use-chats.ts new file mode 100644 index 0000000000..9895cc61ea --- /dev/null +++ b/lib/hooks/use-chats.ts @@ -0,0 +1,11 @@ +export const useChats = () => { + return { + getChats: () => { + console.log("Fetching chats...") + return [] + }, + addChat: (chat: any) => { + console.log("Adding chat:", chat) + } + } +} From a1a9dcd98ef145211bdd77bc649728f1943fd0bb Mon Sep 17 00:00:00 2001 From: Kaylee Cisna Date: Tue, 5 Aug 2025 17:34:38 -0500 Subject: [PATCH 74/98] Add useMessages hook for messages state handling --- lib/hooks/use-messages.ts | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 lib/hooks/use-messages.ts diff --git a/lib/hooks/use-messages.ts b/lib/hooks/use-messages.ts new file mode 100644 index 0000000000..545fd1a366 --- /dev/null +++ b/lib/hooks/use-messages.ts @@ -0,0 +1,32 @@ +import { useEffect, useState } from "react" +import { Message } from "@/types/message" + +export const useMessages = (initialMessages: Message[] = []) => { + const [messages, setMessages] = useState(initialMessages) + + const addMessage = (message: Message) => { + setMessages(prevMessages => [...prevMessages, message]) + } + + const updateMessage = (id: string, updatedFields: Partial) => { + setMessages(prevMessages => + prevMessages.map(message => + message.id === id ? { ...message, ...updatedFields } : message + ) + ) + } + + const deleteMessage = (id: string) => { + setMessages(prevMessages => + prevMessages.filter(message => message.id !== id) + ) + } + + return { + messages, + setMessages, + addMessage, + updateMessage, + deleteMessage + } +} From 010ab96e6c5b70db69a0c003031af330ced25ded Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Tue, 5 Aug 2025 18:34:31 -0500 Subject: [PATCH 75/98] feat: add new chat session management with handleCreateChat and handleNewChat --- components/Chat.tsx | 281 ++++++++++++++++++++++++++------------------ 1 file changed, 164 insertions(+), 117 deletions(-) diff --git a/components/Chat.tsx b/components/Chat.tsx index 5423b0a6e3..cd0fbcd4fa 100644 --- a/components/Chat.tsx +++ b/components/Chat.tsx @@ -1,126 +1,173 @@ -// components/Chat.tsx "use client" import React, { useState, useEffect, useRef } from "react" interface Message { - id: string - role: "user" | "assistant" - content: string +id: string +role: "user" | "assistant" +content: string } export default function Chat() { - const [messages, setMessages] = useState([]) - const [input, setInput] = useState("") - const [isLoading, setIsLoading] = useState(false) - const messagesEndRef = useRef(null) - - const scrollToBottom = () => { - messagesEndRef.current?.scrollIntoView({ behavior: "smooth" }) - } - - useEffect(() => { - scrollToBottom() - }, [messages]) - - const handleSubmit = async (e: React.FormEvent) => { - e.preventDefault() - if (!input.trim()) return - - const userMessage: Message = { - id: crypto.randomUUID(), - role: "user", - content: input.trim() - } - - setMessages(prev => [...prev, userMessage]) - setInput("") - setIsLoading(true) - - try { - const response = await fetch("/api/chat/", { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify({ - messages: [...messages, userMessage].map(({ role, content }) => ({ - role, - content - })) - }) - }) - - if (!response.ok) { - throw new Error("Failed to get response from server") - } - - const data = await response.json() - const assistantMessage: Message = { - id: crypto.randomUUID(), - role: "assistant", - content: data.result || "Sorry, I didn't understand that." - } - - setMessages(prev => [...prev, assistantMessage]) - } catch (error) { - console.error(error) - const errorMessage: Message = { - id: crypto.randomUUID(), - role: "assistant", - content: "There was an error. Please try again later." - } - setMessages(prev => [...prev, errorMessage]) - } finally { - setIsLoading(false) - } - } - - return ( -

-
- {messages.length === 0 && ( -

Start the conversation...

- )} - {messages.map(({ id, role, content }) => ( -
-
- {content} -
-
- ))} -
-
- -
- setInput(e.target.value)} - disabled={isLoading} - autoFocus - /> - -
-
- ) +const [messages, setMessages] = useState([]) +const [input, setInput] = useState("") +const [isLoading, setIsLoading] = useState(false) +const [chatId, setChatId] = useState(null) +const messagesEndRef = useRef(null) + +const scrollToBottom = () => { +messagesEndRef.current?.scrollIntoView({ behavior: "smooth" }) +} + +useEffect(() => { +scrollToBottom() +}, [messages]) + +// Reset chat state to start fresh +const handleNewChat = () => { +setMessages([]) +setInput("") +setChatId(null) +} + +// Create a new chat session on backend +const handleCreateChat = async (): Promise => { +try { +const response = await fetch("/api/chat/create", { +method: "POST" +}) +if (!response.ok) throw new Error("Failed to create chat session") + +const data = await response.json() +setChatId(data.chatId) +return data.chatId +} catch (error) { +console.error("Error creating chat:", error) +return null +} +} + +const handleSubmit = async (e: React.FormEvent) => { +e.preventDefault() +if (!input.trim()) return + +let currentChatId = chatId +if (!currentChatId) { +// Create new chat session if none exists +currentChatId = await handleCreateChat() +if (!currentChatId) { +// Failed to create chat, show error message +setMessages(prev => [ +...prev, +{ +id: crypto.randomUUID(), +role: "assistant", +content: "Unable to start a new chat session. Please try again later." +} +]) +return +} +} + +const userMessage: Message = { +id: crypto.randomUUID(), +role: "user", +content: input.trim() +} + +setMessages(prev => [...prev, userMessage]) +setInput("") +setIsLoading(true) + +try { +const response = await fetch("/api/chat/", { +method: "POST", +headers: { +"Content-Type": "application/json" +}, +body: JSON.stringify({ +chatId: currentChatId, +messages: [...messages, userMessage].map(({ role, content }) => ({ +role, +content +})) +}) +}) + +if (!response.ok) { +throw new Error("Failed to get response from server") +} + +const data = await response.json() +const assistantMessage: Message = { +id: crypto.randomUUID(), +role: "assistant", +content: data.result || "Sorry, I didn't understand that." +} + +setMessages(prev => [...prev, assistantMessage]) +} catch (error) { +console.error(error) +const errorMessage: Message = { +id: crypto.randomUUID(), +role: "assistant", +content: "There was an error. Please try again later." +} +setMessages(prev => [...prev, errorMessage]) +} finally { +setIsLoading(false) +} +} + +return ( +
+ + +
+{messages.length === 0 && ( +

Start the conversation...

+)} +{messages.map(({ id, role, content }) => ( +
+
+{content} +
+
+))} +
+
+ +
+ setInput(e.target.value)} +disabled={isLoading} +autoFocus +/> + +
+
+) } From 80f25c6cb2aff700c83e49713b799d21bb14ef4f Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Tue, 5 Aug 2025 18:54:22 -0500 Subject: [PATCH 76/98] Fix missing handleCreateChat function by defining it inside Chat component above return --- components/Chat.tsx | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/components/Chat.tsx b/components/Chat.tsx index cd0fbcd4fa..da69e65015 100644 --- a/components/Chat.tsx +++ b/components/Chat.tsx @@ -31,6 +31,30 @@ setChatId(null) } // Create a new chat session on backend +const handleCreateChat = async () => { + try { + const res = await fetch("/api/create-chat", { + method: "POST", + headers: { + "Content-Type": "application/json" + } + }) + + if (!res.ok) { + throw new Error("Failed to create new chat") + } + + const data = await res.json() + const newChatId = data.chatId + + setMessages([]) + setChatId(newChatId) + setInput("") + } catch (error) { + console.error("Error creating new chat:", error) + } +} + const handleCreateChat = async (): Promise => { try { const response = await fetch("/api/chat/create", { From b82eebcabb7af06c6b7d16494af840b78647969d Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Tue, 5 Aug 2025 19:15:09 -0500 Subject: [PATCH 77/98] Fix: chat button functionally now working --- components/Chat.tsx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/components/Chat.tsx b/components/Chat.tsx index da69e65015..6caee482f8 100644 --- a/components/Chat.tsx +++ b/components/Chat.tsx @@ -62,6 +62,15 @@ method: "POST" }) if (!response.ok) throw new Error("Failed to create chat session") +const handleCreateChat = () => { +const newMessage = { +id: crypto.randomUUID(), +role: "user", +content: "New chat started.", +}; +setMessages([newMessage]); +}; + const data = await response.json() setChatId(data.chatId) return data.chatId @@ -152,7 +161,13 @@ disabled={isLoading} > New Chat - +
{messages.length === 0 && (

Start the conversation...

From 61ae58f90a2391196cda41151d4fa60b05d8b627 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Tue, 5 Aug 2025 19:41:41 -0500 Subject: [PATCH 78/98] Fix: Added handleFocusChatInput to useChatHandler and expose to ChatInput --- components/chat/chat-hooks/use-chat-handler.tsx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/components/chat/chat-hooks/use-chat-handler.tsx b/components/chat/chat-hooks/use-chat-handler.tsx index 79ce105afd..7cce8961f0 100644 --- a/components/chat/chat-hooks/use-chat-handler.tsx +++ b/components/chat/chat-hooks/use-chat-handler.tsx @@ -15,6 +15,13 @@ export const useChatHandler = () => { const { handleCreateMessages } = useMessages() const [isTyping, setIsTyping] = useState(false) +const handleFocusChatInput = () => { + const inputElement = document.querySelector("input"); + if (inputElement) { + inputElement.focus(); + } +}; + const handleSendMessage = async ( messageContent: string, chatMessages: ChatMessage[], @@ -85,6 +92,7 @@ export const useChatHandler = () => { } return { + handleFocusChatInput, handleSendMessage, isTyping } From c7befa4d349e6ed21540120655e33dde16ef1da9 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Tue, 5 Aug 2025 21:28:20 -0500 Subject: [PATCH 79/98] Feat: add internal handleCreateChat to useChatHandler and remove broken import --- .../chat/chat-hooks/use-chat-handler.tsx | 59 ++++++++++--------- 1 file changed, 30 insertions(+), 29 deletions(-) diff --git a/components/chat/chat-hooks/use-chat-handler.tsx b/components/chat/chat-hooks/use-chat-handler.tsx index 7cce8961f0..f374cd5962 100644 --- a/components/chat/chat-hooks/use-chat-handler.tsx +++ b/components/chat/chat-hooks/use-chat-handler.tsx @@ -1,51 +1,57 @@ "use client" -import { ChatMessage } from "@/types" +import { ChatMessage, Chat } from "@/types" import { useState } from "react" import { v4 as uuidv4 } from "uuid" import { useChatStore } from "@/providers/chat-store" import { useMessageHandler } from "@/lib/hooks/use-message-handler" -import { useChats } from "@/lib/hooks/use-chats" import { useMessages } from "@/lib/hooks/use-messages" export const useChatHandler = () => { const { currentChat, setCurrentChat, setChats } = useChatStore() const { setChatMessages } = useMessageHandler() - const { handleCreateChat } = useChats() const { handleCreateMessages } = useMessages() const [isTyping, setIsTyping] = useState(false) -const handleFocusChatInput = () => { - const inputElement = document.querySelector("input"); - if (inputElement) { - inputElement.focus(); + const handleCreateChat = (initialMessage?: string): Chat => { + const newChat: Chat = { + id: uuidv4(), + title: initialMessage ? initialMessage.slice(0, 20) : "New Chat", + messages: [], + } + + setChats((prev) => [newChat, ...prev]) + setCurrentChat(newChat) + return newChat } -}; - + + const handleFocusChatInput = () => { + const inputElement = document.querySelector("input") + if (inputElement) { + inputElement.focus() + } + } + const handleSendMessage = async ( messageContent: string, chatMessages: ChatMessage[], isRegeneration: boolean ) => { - // 🚀 Step 1: Confirm the function is firing console.log("🚀 handleSendMessage triggered:", { messageContent, chatMessages, isRegeneration }) - if (!currentChat) { - const chat = await handleCreateChat(messageContent) - if (!chat) return - setCurrentChat(chat) - setChats(prev => [chat, ...prev]) - } + let activeChat = currentChat - if (!currentChat) return + if (!activeChat) { + activeChat = handleCreateChat(messageContent) + } const userMessage: ChatMessage = { id: uuidv4(), - chat_id: currentChat.id, + chat_id: activeChat.id, content: messageContent, role: "user", created_at: new Date().toISOString() @@ -53,20 +59,16 @@ const handleFocusChatInput = () => { const updatedMessages = [...chatMessages, userMessage] - // 🧠 Step 2: Log the messages before generation - console.log( - "🧠 Setting chat messages (before generation):", - updatedMessages - ) + console.log("🧠 Setting chat messages (before generation):", updatedMessages) setChatMessages(updatedMessages) setIsTyping(true) - const generatedText = "This is a placeholder response from the AI." // <-- Replace with your generateText() call if needed + const generatedText = "This is a placeholder response from the AI." const assistantMessage: ChatMessage = { id: uuidv4(), - chat_id: currentChat.id, + chat_id: activeChat.id, content: generatedText, role: "assistant", created_at: new Date().toISOString() @@ -74,15 +76,13 @@ const handleFocusChatInput = () => { const finalMessages = [...updatedMessages, assistantMessage] - // 🧠 Step 3: Log the messages after assistant response console.log("🧠 Setting chat messages (final):", finalMessages) setChatMessages(finalMessages) setIsTyping(false) - // 📨 Step 4: Log before saving to DB console.log("📨 Creating messages with:", { - currentChat, + activeChat, messageContent, generatedText, chatMessagesLength: chatMessages.length @@ -92,8 +92,9 @@ const handleFocusChatInput = () => { } return { + handleCreateChat, handleFocusChatInput, handleSendMessage, - isTyping + isTyping, } } From 7dbcd110a694d307070b9f6f8fad8c8c923d7019 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Tue, 5 Aug 2025 21:41:52 -0500 Subject: [PATCH 80/98] fix: add missing setChats function to Zustand chat-store --- providers/chat-store.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/providers/chat-store.ts b/providers/chat-store.ts index 56e1ef795f..938fda2184 100644 --- a/providers/chat-store.ts +++ b/providers/chat-store.ts @@ -1,12 +1,21 @@ // /providers/chat-store.ts import { create } from "zustand" +import { Chat } from "@/types" interface ChatStore { + chats: Chat[] + currentChat: Chat | null + setCurrentChat: (chat: Chat) => void + setChats: (chats: Chat[]) => void selectedChatId: string | null setSelectedChatId: (chatId: string | null) => void } export const useChatStore = create((set) => ({ + chats: [], + currentChat: null, + setCurrentChat: (chat) => set ({ currentChat: chat }), + setChats: (chats) => set ({ chats }), selectedChatId: null, setSelectedChatId: (chatId) => set({ selectedChatId: chatId }), -})) \ No newline at end of file +})) From d87122f28f2dcd6279cd2493ec43dc42b713322b Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Tue, 5 Aug 2025 21:58:23 -0500 Subject: [PATCH 81/98] fix: add setChatMessages function to useMessageHandler hook --- lib/hooks/use-message-handler.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/hooks/use-message-handler.ts b/lib/hooks/use-message-handler.ts index f8d61c6f3f..9b4b47d304 100644 --- a/lib/hooks/use-message-handler.ts +++ b/lib/hooks/use-message-handler.ts @@ -1,6 +1,16 @@ +import { useMessageStore } from "@/providers/message-store" + export const useMessageHandler = () => { + const { setMessages } = useMessageStore() + + const setChatMessages = (messages) => { + setMessages(messages) + } + return { - handleIncomingMessage: (message: any) => { + SeChatMesssages, + handleIncomeingMessage, + const handleIncomingMessage: (message: any) => { console.log("Mock handler received message:", message) } } From f2f2ada018e5a101dc89947a6018858b2f021810 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Tue, 5 Aug 2025 22:06:34 -0500 Subject: [PATCH 82/98] fix: add 'setChatMessages' function to useMessageHandler hook --- lib/hooks/use-message-handler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/hooks/use-message-handler.ts b/lib/hooks/use-message-handler.ts index 9b4b47d304..e5174a7856 100644 --- a/lib/hooks/use-message-handler.ts +++ b/lib/hooks/use-message-handler.ts @@ -8,7 +8,7 @@ export const useMessageHandler = () => { } return { - SeChatMesssages, + SetChatMesssages, handleIncomeingMessage, const handleIncomingMessage: (message: any) => { console.log("Mock handler received message:", message) From 0ce705fc9584c22b6eaa13bbf4c7a0d2df561440 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Tue, 5 Aug 2025 22:12:11 -0500 Subject: [PATCH 83/98] fix: clean up and correct useMessageHandler hook implementation --- lib/hooks/use-message-handler.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/hooks/use-message-handler.ts b/lib/hooks/use-message-handler.ts index e5174a7856..e2c398f88a 100644 --- a/lib/hooks/use-message-handler.ts +++ b/lib/hooks/use-message-handler.ts @@ -6,12 +6,14 @@ export const useMessageHandler = () => { const setChatMessages = (messages) => { setMessages(messages) } - + + const handleIncomingMessage: (message: any) => { + console.log("Mock handler received message:", message) +} + return { SetChatMesssages, handleIncomeingMessage, - const handleIncomingMessage: (message: any) => { - console.log("Mock handler received message:", message) } } } From 7228b081363d90d331833faf9b8bb04d8ddcd1c1 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Tue, 5 Aug 2025 22:17:21 -0500 Subject: [PATCH 84/98] fix: resolve syntax errors in useMessageHandler and properly export handlers --- lib/hooks/use-message-handler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/hooks/use-message-handler.ts b/lib/hooks/use-message-handler.ts index e2c398f88a..4c6ff992ad 100644 --- a/lib/hooks/use-message-handler.ts +++ b/lib/hooks/use-message-handler.ts @@ -7,7 +7,7 @@ export const useMessageHandler = () => { setMessages(messages) } - const handleIncomingMessage: (message: any) => { + const handleIncomingMessage: (message: any) => { console.log("Mock handler received message:", message) } From 07f350219fe974b90d5dd4959e6f9b143e42f5c7 Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Tue, 5 Aug 2025 22:19:55 -0500 Subject: [PATCH 85/98] fix: resolve syntax errors in useMessageHandler and properly export handlers --- lib/hooks/use-message-handler.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/hooks/use-message-handler.ts b/lib/hooks/use-message-handler.ts index 4c6ff992ad..db3ce68523 100644 --- a/lib/hooks/use-message-handler.ts +++ b/lib/hooks/use-message-handler.ts @@ -2,18 +2,18 @@ import { useMessageStore } from "@/providers/message-store" export const useMessageHandler = () => { const { setMessages } = useMessageStore() - - const setChatMessages = (messages) => { + + const setChatMessages = (messages: any[]) => { setMessages(messages) } - const handleIncomingMessage: (message: any) => { - console.log("Mock handler received message:", message) -} + const handleIncomingMessage = (message: any) => { + console.log("📩 Mock handler received message:", message) + // Add actual message handling logic here if needed + } return { - SetChatMesssages, - handleIncomeingMessage, - } + setChatMessages, + handleIncomingMessage, } } From d59514b999c670125072283f2c465bd3ac5fec56 Mon Sep 17 00:00:00 2001 From: Kaylee Cisna Date: Tue, 5 Aug 2025 22:41:32 -0500 Subject: [PATCH 86/98] Add message store using Zustang --- components/Chat.tsx | 379 +++++++++--------- .../chat/chat-hooks/use-chat-handler.tsx | 11 +- lib/hooks/use-message-handler.ts | 2 +- providers/message-store.ts | 14 + 4 files changed, 213 insertions(+), 193 deletions(-) create mode 100644 providers/message-store.ts diff --git a/components/Chat.tsx b/components/Chat.tsx index 6caee482f8..cb41d5b771 100644 --- a/components/Chat.tsx +++ b/components/Chat.tsx @@ -3,210 +3,213 @@ import React, { useState, useEffect, useRef } from "react" interface Message { -id: string -role: "user" | "assistant" -content: string + id: string + role: "user" | "assistant" + content: string } export default function Chat() { -const [messages, setMessages] = useState([]) -const [input, setInput] = useState("") -const [isLoading, setIsLoading] = useState(false) -const [chatId, setChatId] = useState(null) -const messagesEndRef = useRef(null) - -const scrollToBottom = () => { -messagesEndRef.current?.scrollIntoView({ behavior: "smooth" }) -} + const [messages, setMessages] = useState([]) + const [input, setInput] = useState("") + const [isLoading, setIsLoading] = useState(false) + const [chatId, setChatId] = useState(null) + const messagesEndRef = useRef(null) + + const scrollToBottom = () => { + messagesEndRef.current?.scrollIntoView({ behavior: "smooth" }) + } -useEffect(() => { -scrollToBottom() -}, [messages]) + useEffect(() => { + scrollToBottom() + }, [messages]) -// Reset chat state to start fresh -const handleNewChat = () => { -setMessages([]) -setInput("") -setChatId(null) -} + // Reset chat state to start fresh + const handleNewChat = () => { + setMessages([]) + setInput("") + setChatId(null) + } -// Create a new chat session on backend -const handleCreateChat = async () => { - try { - const res = await fetch("/api/create-chat", { - method: "POST", - headers: { - "Content-Type": "application/json" + // Create a new chat session on backend + const handleCreateChat = async () => { + try { + const res = await fetch("/api/create-chat", { + method: "POST", + headers: { + "Content-Type": "application/json" + } + }) + + if (!res.ok) { + throw new Error("Failed to create new chat") } - }) - if (!res.ok) { - throw new Error("Failed to create new chat") + const data = await res.json() + const newChatId = data.chatId + + setMessages([]) + setChatId(newChatId) + setInput("") + } catch (error) { + console.error("Error creating new chat:", error) } + } - const data = await res.json() - const newChatId = data.chatId + const handleCreateChat = async (): Promise => { + try { + const response = await fetch("/api/chat/create", { + method: "POST" + }) + if (!response.ok) throw new Error("Failed to create chat session") + + const handleCreateChat = () => { + const newMessage = { + id: crypto.randomUUID(), + role: "user", + content: "New chat started." + } + setMessages([newMessage]) + } - setMessages([]) - setChatId(newChatId) - setInput("") - } catch (error) { - console.error("Error creating new chat:", error) + const data = await response.json() + setChatId(data.chatId) + return data.chatId + } catch (error) { + console.error("Error creating chat:", error) + return null + } } -} -const handleCreateChat = async (): Promise => { -try { -const response = await fetch("/api/chat/create", { -method: "POST" -}) -if (!response.ok) throw new Error("Failed to create chat session") - -const handleCreateChat = () => { -const newMessage = { -id: crypto.randomUUID(), -role: "user", -content: "New chat started.", -}; -setMessages([newMessage]); -}; - -const data = await response.json() -setChatId(data.chatId) -return data.chatId -} catch (error) { -console.error("Error creating chat:", error) -return null -} -} - -const handleSubmit = async (e: React.FormEvent) => { -e.preventDefault() -if (!input.trim()) return - -let currentChatId = chatId -if (!currentChatId) { -// Create new chat session if none exists -currentChatId = await handleCreateChat() -if (!currentChatId) { -// Failed to create chat, show error message -setMessages(prev => [ -...prev, -{ -id: crypto.randomUUID(), -role: "assistant", -content: "Unable to start a new chat session. Please try again later." -} -]) -return -} -} + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault() + if (!input.trim()) return + + let currentChatId = chatId + if (!currentChatId) { + // Create new chat session if none exists + currentChatId = await handleCreateChat() + if (!currentChatId) { + // Failed to create chat, show error message + setMessages(prev => [ + ...prev, + { + id: crypto.randomUUID(), + role: "assistant", + content: + "Unable to start a new chat session. Please try again later." + } + ]) + return + } + } -const userMessage: Message = { -id: crypto.randomUUID(), -role: "user", -content: input.trim() -} + const userMessage: Message = { + id: crypto.randomUUID(), + role: "user", + content: input.trim() + } -setMessages(prev => [...prev, userMessage]) -setInput("") -setIsLoading(true) - -try { -const response = await fetch("/api/chat/", { -method: "POST", -headers: { -"Content-Type": "application/json" -}, -body: JSON.stringify({ -chatId: currentChatId, -messages: [...messages, userMessage].map(({ role, content }) => ({ -role, -content -})) -}) -}) - -if (!response.ok) { -throw new Error("Failed to get response from server") -} + setMessages(prev => [...prev, userMessage]) + setInput("") + setIsLoading(true) + + try { + const response = await fetch("/api/chat/", { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({ + chatId: currentChatId, + messages: [...messages, userMessage].map(({ role, content }) => ({ + role, + content + })) + }) + }) + + if (!response.ok) { + throw new Error("Failed to get response from server") + } -const data = await response.json() -const assistantMessage: Message = { -id: crypto.randomUUID(), -role: "assistant", -content: data.result || "Sorry, I didn't understand that." -} + const data = await response.json() + const assistantMessage: Message = { + id: crypto.randomUUID(), + role: "assistant", + content: data.result || "Sorry, I didn't understand that." + } -setMessages(prev => [...prev, assistantMessage]) -} catch (error) { -console.error(error) -const errorMessage: Message = { -id: crypto.randomUUID(), -role: "assistant", -content: "There was an error. Please try again later." -} -setMessages(prev => [...prev, errorMessage]) -} finally { -setIsLoading(false) -} -} + setMessages(prev => [...prev, assistantMessage]) + } catch (error) { + console.error(error) + const errorMessage: Message = { + id: crypto.randomUUID(), + role: "assistant", + content: "There was an error. Please try again later." + } + setMessages(prev => [...prev, errorMessage]) + } finally { + setIsLoading(false) + } + } -return ( -
- - -
-{messages.length === 0 && ( -

Start the conversation...

-)} -{messages.map(({ id, role, content }) => ( -
-
-{content} -
-
-))} -
-
- -
- setInput(e.target.value)} -disabled={isLoading} -autoFocus -/> - -
-
-) + return ( +
+ + +
+ {messages.length === 0 && ( +

Start the conversation...

+ )} + {messages.map(({ id, role, content }) => ( +
+
+ {content} +
+
+ ))} +
+
+ +
+ setInput(e.target.value)} + disabled={isLoading} + autoFocus + /> + +
+
+ ) } diff --git a/components/chat/chat-hooks/use-chat-handler.tsx b/components/chat/chat-hooks/use-chat-handler.tsx index f374cd5962..c9ecbb318d 100644 --- a/components/chat/chat-hooks/use-chat-handler.tsx +++ b/components/chat/chat-hooks/use-chat-handler.tsx @@ -17,10 +17,10 @@ export const useChatHandler = () => { const newChat: Chat = { id: uuidv4(), title: initialMessage ? initialMessage.slice(0, 20) : "New Chat", - messages: [], + messages: [] } - setChats((prev) => [newChat, ...prev]) + setChats(prev => [newChat, ...prev]) setCurrentChat(newChat) return newChat } @@ -59,7 +59,10 @@ export const useChatHandler = () => { const updatedMessages = [...chatMessages, userMessage] - console.log("🧠 Setting chat messages (before generation):", updatedMessages) + console.log( + "🧠 Setting chat messages (before generation):", + updatedMessages + ) setChatMessages(updatedMessages) setIsTyping(true) @@ -95,6 +98,6 @@ export const useChatHandler = () => { handleCreateChat, handleFocusChatInput, handleSendMessage, - isTyping, + isTyping } } diff --git a/lib/hooks/use-message-handler.ts b/lib/hooks/use-message-handler.ts index db3ce68523..fa7520b4fe 100644 --- a/lib/hooks/use-message-handler.ts +++ b/lib/hooks/use-message-handler.ts @@ -14,6 +14,6 @@ export const useMessageHandler = () => { return { setChatMessages, - handleIncomingMessage, + handleIncomingMessage } } diff --git a/providers/message-store.ts b/providers/message-store.ts new file mode 100644 index 0000000000..0c586b5ad8 --- /dev/null +++ b/providers/message-store.ts @@ -0,0 +1,14 @@ +// src/providers/message-store.ts + +import { create } from "zustand" +import { ChatMessage } from "@/types" + +interface MessageState { +messages: ChatMessage[] +setMessages: (messages: ChatMessage[]) => void +} + +export const useMessageStore = create((set) => ({ +messages: [], +setMessages: (messages) => set({ messages }), +})) \ No newline at end of file From bf4a283ec2f5720724732d306bd86b8c770fa867 Mon Sep 17 00:00:00 2001 From: Kaylee Cisna Date: Tue, 5 Aug 2025 23:00:10 -0500 Subject: [PATCH 87/98] Fix: corrected useChatHandler to use updated message handlers From 90b0f83c1464bc1748cdac0479289013187e4225 Mon Sep 17 00:00:00 2001 From: Kaylee Cisna Date: Tue, 5 Aug 2025 23:22:37 -0500 Subject: [PATCH 88/98] Fix: Adjust useChatHandler and useMessages logic --- lib/hooks/use-messages.ts | 32 ++++++-------------------------- 1 file changed, 6 insertions(+), 26 deletions(-) diff --git a/lib/hooks/use-messages.ts b/lib/hooks/use-messages.ts index 545fd1a366..3c7502a7b3 100644 --- a/lib/hooks/use-messages.ts +++ b/lib/hooks/use-messages.ts @@ -1,32 +1,12 @@ -import { useEffect, useState } from "react" -import { Message } from "@/types/message" +import { ChatMessage } from "@/types" -export const useMessages = (initialMessages: Message[] = []) => { - const [messages, setMessages] = useState(initialMessages) - - const addMessage = (message: Message) => { - setMessages(prevMessages => [...prevMessages, message]) - } - - const updateMessage = (id: string, updatedFields: Partial) => { - setMessages(prevMessages => - prevMessages.map(message => - message.id === id ? { ...message, ...updatedFields } : message - ) - ) - } - - const deleteMessage = (id: string) => { - setMessages(prevMessages => - prevMessages.filter(message => message.id !== id) - ) +export const useMessages = () => { + const handleCreateMessages = async (messages: ChatMessage[]) => { + console.log("💾 Saving messages to the database:", messages) + // TODO: Implement actual saving logic (e.g. API call or DB write) } return { - messages, - setMessages, - addMessage, - updateMessage, - deleteMessage + handleCreateMessages } } From b8a842f1649948508eecf27577ca2e8e4130ede3 Mon Sep 17 00:00:00 2001 From: Kaylee Cisna Date: Wed, 6 Aug 2025 00:50:17 -0500 Subject: [PATCH 89/98] feat: add backend API route for generating AI responses from OpenAI --- pages/api/New Text Document.txt | 0 pages/api/generate.ts | 30 ++++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 pages/api/New Text Document.txt create mode 100644 pages/api/generate.ts diff --git a/pages/api/New Text Document.txt b/pages/api/New Text Document.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/pages/api/generate.ts b/pages/api/generate.ts new file mode 100644 index 0000000000..ab496aa187 --- /dev/null +++ b/pages/api/generate.ts @@ -0,0 +1,30 @@ +import type { NextApiRequest, NextApiResponse } from "next" +import { OpenAI } from "openai" + +const openai = new OpenAI({ + apiKey: process.env.OPENAI_API_KEY +}) + +export default async function handler(req: NextApiRequest, res: NextApiResponse) { + if (req.method !== "POST") { + return res.status(405).end("Method Not Allowed") + } + + const { messages } = req.body + + try { + const completion = await openai.chat.completions.create({ + model: "gpt-4", + messages: messages.map((m: any) => ({ + role: m.role, + content: m.content + })) + }) + + const reply = completion.choices[0].message.content + res.status(200).json({ reply }) + } catch (error) { + console.error("AI error:", error) + res.status(500).json({ error: "AI failed" }) + } +} From 47d4919465f2e780e123c5cd4f185867a172356d Mon Sep 17 00:00:00 2001 From: Kaylee Cisna Date: Wed, 6 Aug 2025 00:55:25 -0500 Subject: [PATCH 90/98] feat: connect chat handler to AI API endpoint for live responses --- .../chat/chat-hooks/use-chat-handler.tsx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/components/chat/chat-hooks/use-chat-handler.tsx b/components/chat/chat-hooks/use-chat-handler.tsx index c9ecbb318d..d8e8127be5 100644 --- a/components/chat/chat-hooks/use-chat-handler.tsx +++ b/components/chat/chat-hooks/use-chat-handler.tsx @@ -67,7 +67,23 @@ export const useChatHandler = () => { setChatMessages(updatedMessages) setIsTyping(true) - const generatedText = "This is a placeholder response from the AI." + let generatedText = "" + + try { + const response = await fetch("/api/generate", { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({ messages: updatedMessages }) + }) + + const data = await response.json() + generatedText = data.reply + } catch (error) { + console.error("Failed to get AI response:", error) + generatedText = "⚠️ Sorry, I couldn't get a response from the AI." + } const assistantMessage: ChatMessage = { id: uuidv4(), From 7bd091689d130350a3c510d651bf4e0dc26f72ec Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Wed, 6 Aug 2025 15:32:39 -0500 Subject: [PATCH 91/98] fix(chat): remove duplicate handleCreateChat definition to resolve build error --- components/Chat.tsx | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/components/Chat.tsx b/components/Chat.tsx index cb41d5b771..3c20f74d7f 100644 --- a/components/Chat.tsx +++ b/components/Chat.tsx @@ -30,16 +30,6 @@ export default function Chat() { setChatId(null) } - // Create a new chat session on backend - const handleCreateChat = async () => { - try { - const res = await fetch("/api/create-chat", { - method: "POST", - headers: { - "Content-Type": "application/json" - } - }) - if (!res.ok) { throw new Error("Failed to create new chat") } From 809c52ccf8f177bae3169dcf36b7623ff8130e0a Mon Sep 17 00:00:00 2001 From: kcisna45 Date: Wed, 6 Aug 2025 15:59:08 -0500 Subject: [PATCH 92/98] Refactor chat.tsx to remove duplicate handleCreateChat function and fix broken chat session logic --- components/Chat.tsx | 30 ++---------------------------- 1 file changed, 2 insertions(+), 28 deletions(-) diff --git a/components/Chat.tsx b/components/Chat.tsx index 3c20f74d7f..d1daeb91eb 100644 --- a/components/Chat.tsx +++ b/components/Chat.tsx @@ -23,28 +23,12 @@ export default function Chat() { scrollToBottom() }, [messages]) - // Reset chat state to start fresh const handleNewChat = () => { setMessages([]) setInput("") setChatId(null) } - if (!res.ok) { - throw new Error("Failed to create new chat") - } - - const data = await res.json() - const newChatId = data.chatId - - setMessages([]) - setChatId(newChatId) - setInput("") - } catch (error) { - console.error("Error creating new chat:", error) - } - } - const handleCreateChat = async (): Promise => { try { const response = await fetch("/api/chat/create", { @@ -52,15 +36,6 @@ export default function Chat() { }) if (!response.ok) throw new Error("Failed to create chat session") - const handleCreateChat = () => { - const newMessage = { - id: crypto.randomUUID(), - role: "user", - content: "New chat started." - } - setMessages([newMessage]) - } - const data = await response.json() setChatId(data.chatId) return data.chatId @@ -76,10 +51,8 @@ export default function Chat() { let currentChatId = chatId if (!currentChatId) { - // Create new chat session if none exists currentChatId = await handleCreateChat() if (!currentChatId) { - // Failed to create chat, show error message setMessages(prev => [ ...prev, { @@ -198,8 +171,9 @@ export default function Chat() { className="rounded-r bg-blue-500 px-4 py-2 text-white disabled:opacity-50" > {isLoading ? "Sending..." : "Send"} - +
) } + From cab95984a455cce462ea93b9c506f8460f86b70b Mon Sep 17 00:00:00 2001 From: Kaylee Cisna Date: Fri, 8 Aug 2025 14:11:49 -0500 Subject: [PATCH 93/98] Add Modules 1-3: Supabase Client, Resonance Engine, Memory core --- .husky/post-checkout | 3 ++ .husky/post-commit | 3 ++ .husky/post-merge | 3 ++ .husky/pre-push | 3 ++ RunPython SF.py | 0 components/Chat.tsx | 3 +- lib/memoryCore.ts | 39 +++++++++++++++++++++++ lib/resonanceEngine.ts | 34 ++++++++++++++++++++ lib/supabase-client.ts/supabase-client.ts | 9 ++++++ module.py | 0 10 files changed, 95 insertions(+), 2 deletions(-) create mode 100644 .husky/post-checkout create mode 100644 .husky/post-commit create mode 100644 .husky/post-merge create mode 100644 .husky/pre-push create mode 100644 RunPython SF.py create mode 100644 lib/memoryCore.ts create mode 100644 lib/resonanceEngine.ts create mode 100644 lib/supabase-client.ts/supabase-client.ts create mode 100644 module.py diff --git a/.husky/post-checkout b/.husky/post-checkout new file mode 100644 index 0000000000..5abf8ed93f --- /dev/null +++ b/.husky/post-checkout @@ -0,0 +1,3 @@ +#!/bin/sh +command -v git-lfs >/dev/null 2>&1 || { printf >&2 "\n%s\n\n" "This repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting the 'post-checkout' file in the hooks directory (set by 'core.hookspath'; usually '.git/hooks')."; exit 2; } +git lfs post-checkout "$@" diff --git a/.husky/post-commit b/.husky/post-commit new file mode 100644 index 0000000000..b8b76c2c42 --- /dev/null +++ b/.husky/post-commit @@ -0,0 +1,3 @@ +#!/bin/sh +command -v git-lfs >/dev/null 2>&1 || { printf >&2 "\n%s\n\n" "This repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting the 'post-commit' file in the hooks directory (set by 'core.hookspath'; usually '.git/hooks')."; exit 2; } +git lfs post-commit "$@" diff --git a/.husky/post-merge b/.husky/post-merge new file mode 100644 index 0000000000..726f909891 --- /dev/null +++ b/.husky/post-merge @@ -0,0 +1,3 @@ +#!/bin/sh +command -v git-lfs >/dev/null 2>&1 || { printf >&2 "\n%s\n\n" "This repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting the 'post-merge' file in the hooks directory (set by 'core.hookspath'; usually '.git/hooks')."; exit 2; } +git lfs post-merge "$@" diff --git a/.husky/pre-push b/.husky/pre-push new file mode 100644 index 0000000000..5f26dc4552 --- /dev/null +++ b/.husky/pre-push @@ -0,0 +1,3 @@ +#!/bin/sh +command -v git-lfs >/dev/null 2>&1 || { printf >&2 "\n%s\n\n" "This repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting the 'pre-push' file in the hooks directory (set by 'core.hookspath'; usually '.git/hooks')."; exit 2; } +git lfs pre-push "$@" diff --git a/RunPython SF.py b/RunPython SF.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/components/Chat.tsx b/components/Chat.tsx index d1daeb91eb..b14c3c6f6f 100644 --- a/components/Chat.tsx +++ b/components/Chat.tsx @@ -171,9 +171,8 @@ export default function Chat() { className="rounded-r bg-blue-500 px-4 py-2 text-white disabled:opacity-50" > {isLoading ? "Sending..." : "Send"} - +
) } - diff --git a/lib/memoryCore.ts b/lib/memoryCore.ts new file mode 100644 index 0000000000..67e9f9e2bf --- /dev/null +++ b/lib/memoryCore.ts @@ -0,0 +1,39 @@ +// lib/memoryCore.ts + +import { createClient } from "@supabase/supabase-js" +import { supabase } from "./superbase/superbase-client" + +export interface MemoryEntry { + id?: string + user_id: string + timestamp: string + emotional_tone: string + symbolic_patterns: string[] + living_equation_trigger?: string + notes?: string +} + +export async function storeMemory(entry: MemoryEntry): Promise { + const { error } = await supabase.from("memory_entries").insert([entry]) + if (error) { + console.error("Error storing memory entry:", error) + throw error + } +} + +export async function getMemoriesByUser( + user_id: string +): Promise { + const { data, error } = await supabase + .from("memory_entries") + .select("*") + .eq("user_id", user_id) + .order("timestamp", { ascending: false }) + + if (error) { + console.error("Error fetching memory entries:", error) + throw error + } + + return data || [] +} diff --git a/lib/resonanceEngine.ts b/lib/resonanceEngine.ts new file mode 100644 index 0000000000..3ba71b46f7 --- /dev/null +++ b/lib/resonanceEngine.ts @@ -0,0 +1,34 @@ +// lib/resonanceEngine.ts +// SourceField Module 2: Resonance Engine + +type ResonanceInput = { + signal: string + timestamp?: string + userId?: string +} + +type ResonanceOutput = { + patterns: string[] + strength: number + dominantFrequencies: string[] + symbolicEchoes: string[] +} + +export function analyzeResonance(input: ResonanceInput): ResonanceOutput { + const { signal } = input + + // Placeholder pattern recognition logic (to be expanded with real signal analysis) + const patterns = signal.match(/\b[A-Za-z]+\b/g) || [] + const strength = patterns.length + const dominantFrequencies = [...new Set(patterns.map(p => p.toLowerCase()))] + const symbolicEchoes = dominantFrequencies.filter(word => + ["truth", "gate", "mirror", "code", "source", "field"].includes(word) + ) + + return { + patterns, + strength, + dominantFrequencies, + symbolicEchoes + } +} diff --git a/lib/supabase-client.ts/supabase-client.ts b/lib/supabase-client.ts/supabase-client.ts new file mode 100644 index 0000000000..32370e6a68 --- /dev/null +++ b/lib/supabase-client.ts/supabase-client.ts @@ -0,0 +1,9 @@ +// lib/supabase-client.ts + +import { createClient } from "@supabase/supabase-js" + +// Use environment variables for security +const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL as string +const supabaseAnonKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY as string + +export const supabase = createClient(supabaseUrl, supabaseAnonKey) diff --git a/module.py b/module.py new file mode 100644 index 0000000000..e69de29bb2 From ea02f1dcb367bc74be226817fee49ecb5ec4a81b Mon Sep 17 00:00:00 2001 From: Kaylee Cisna Date: Fri, 8 Aug 2025 14:32:25 -0500 Subject: [PATCH 94/98] Integrated Living Equations Engine, Resonance Pattern Trackerr, and chat module updates for SourceField --- lib/LivingEquationEngine.ts | 69 +++++++++++++++++++++++++++++++ lib/ResonancePatternTracker.ts | 50 +++++++++++++++++++++++ pages/api/Chat.tsx | 75 ++++++++++++++++++++++++++++++++++ pages/api/chat.ts | 35 ++++++++++++++++ 4 files changed, 229 insertions(+) create mode 100644 lib/LivingEquationEngine.ts create mode 100644 lib/ResonancePatternTracker.ts create mode 100644 pages/api/Chat.tsx create mode 100644 pages/api/chat.ts diff --git a/lib/LivingEquationEngine.ts b/lib/LivingEquationEngine.ts new file mode 100644 index 0000000000..d3ce50b238 --- /dev/null +++ b/lib/LivingEquationEngine.ts @@ -0,0 +1,69 @@ +// lib/LivingEquationEngine.ts +// Module 7 – Living Equation Engine +// Integrates the Five Living Equations into the SourceField core. +// Evaluates resonance events and symbolic patterns to trigger adaptive responses. + +import { MemoryCore } from "./MemoryCore" +import { detectResonance } from "./ResonanceEngine" + +export interface EquationResult { + equation: string + resonanceLevel: number + matchedSymbols: string[] + timestamp: string +} + +export class LivingEquationEngine { + private memoryCore: MemoryCore + + constructor(memoryCore: MemoryCore) { + this.memoryCore = memoryCore + } + + // Placeholder: Replace with actual symbolic mappings for your Five Living Equations + private livingEquations: { [key: string]: string[] } = { + "Law of Divergent Design": [ + "design≠alignment", + "divergence", + "creative split" + ], + "Living Equation 2": ["resonance", "harmonic", "frequency lock"], + "Living Equation 3": ["source", "field", "conscious encoding"], + "Living Equation 4": ["recursive", "awareness", "self-reflection"], + "Living Equation 5": ["architecture", "blueprint", "emergence"] + } + + // Evaluate a single message for Living Equation resonance + evaluateMessage(message: string): EquationResult[] { + const results: EquationResult[] = [] + + for (const [equation, symbols] of Object.entries(this.livingEquations)) { + const matchedSymbols = symbols.filter(sym => + message.toLowerCase().includes(sym.toLowerCase()) + ) + + if (matchedSymbols.length > 0) { + const resonanceLevel = detectResonance(message) + const result: EquationResult = { + equation, + resonanceLevel, + matchedSymbols, + timestamp: new Date().toISOString() + } + + results.push(result) + + // Log the resonance event into memory + this.memoryCore.store({ + type: "LivingEquationTrigger", + equation, + matchedSymbols, + resonanceLevel, + timestamp: result.timestamp + }) + } + } + + return results + } +} diff --git a/lib/ResonancePatternTracker.ts b/lib/ResonancePatternTracker.ts new file mode 100644 index 0000000000..11d4dcfc44 --- /dev/null +++ b/lib/ResonancePatternTracker.ts @@ -0,0 +1,50 @@ +// lib/ResonancePatternTracker.ts + +import { supabase } from "./supabaseClient" +import { analyzeTone } from "./ToneAnalyzer" +import { detectSymbols } from "./SymbolicPatternDetector" +import { extractLivingEquationTriggers } from "./LivingEquationMapper" + +export interface ResonanceEntry { + userId: string + timestamp: string + emotionalTone: string + symbolicPatterns: string[] + livingEquationTriggers: string[] + rawMessage: string +} + +export async function trackResonance(userId: string, message: string) { + const timestamp = new Date().toISOString() + + // Analyze tone of the message + const emotionalTone = analyzeTone(message) + + // Detect symbolic patterns + const symbolicPatterns = detectSymbols(message) + + // Identify any Living Equation triggers + const livingEquationTriggers = extractLivingEquationTriggers(message) + + const resonanceEntry: ResonanceEntry = { + userId, + timestamp, + emotionalTone, + symbolicPatterns, + livingEquationTriggers, + rawMessage: message + } + + // Save to Supabase + const { data, error } = await supabase + .from("resonance_timeline") + .insert([resonanceEntry]) + + if (error) { + console.error("Error saving resonance entry:", error) + return { success: false, error } + } + + console.log("Resonance entry saved:", data) + return { success: true, data } +} diff --git a/pages/api/Chat.tsx b/pages/api/Chat.tsx new file mode 100644 index 0000000000..e2a21b787e --- /dev/null +++ b/pages/api/Chat.tsx @@ -0,0 +1,75 @@ + import React, { useState, useEffect, useRef } from 'react'; +import styles from './Chat.module.css'; + +interface Message { +role: 'user' | 'assistant'; +content: string; +} + +export default function Chat() { +const [messages, setMessages] = useState([]); +const [input, setInput] = useState(''); +const [loading, setLoading] = useState(false); +const messagesEndRef = useRef(null); + +// Auto-scroll to bottom on new message +useEffect(() => { +messagesEndRef.current?.scrollIntoView({ behavior: 'smooth' }); +}, [messages]); + +async function sendMessage() { +if (!input.trim()) return; + +const userMessage: Message = { role: 'user', content: input }; +setMessages((prev) => [...prev, userMessage]); +setInput(''); +setLoading(true); + +try { +const res = await fetch('/api/chat', { +method: 'POST', +headers: { 'Content-Type': 'application/json' }, +body: JSON.stringify({ messages: [...messages, userMessage] }), +}); + +if (!res.ok) throw new Error('API error'); + +const data = await res.json(); +const botMessage: Message = { role: 'assistant', content: data.response }; +setMessages((prev) => [...prev, botMessage]); +} catch (err) { +console.error(err); +const errorMsg: Message = { role: 'assistant', content: '⚠️ Error: Unable to get a response.' }; +setMessages((prev) => [...prev, errorMsg]); +} finally { +setLoading(false); +} +} + +return ( +
+
+{messages.map((m, i) => ( +
+{m.content} +
+))} +
+
+ +
+ setInput(e.target.value)} +onKeyDown={(e) => e.key === 'Enter' && sendMessage()} +placeholder="Type your message..." +disabled={loading} +/> + +
+
+); +} diff --git a/pages/api/chat.ts b/pages/api/chat.ts new file mode 100644 index 0000000000..2dab25c991 --- /dev/null +++ b/pages/api/chat.ts @@ -0,0 +1,35 @@ +import type { NextApiRequest, NextApiResponse } from 'next'; +import { supabase } from '../../lib/supabaseClient'; +import { processResonance } from '../../lib/resonanceEngine'; +import { memoryCore } from '../../lib/memoryCore'; + +export default async function handler(req: NextApiRequest, res: NextApiResponse) { +if (req.method !== 'POST') { +return res.status(405).json({ error: 'Method not allowed' }); +} + +try { +const { userId, message } = req.body; + +if (!userId || !message) { +return res.status(400).json({ error: 'Missing required fields' }); +} + +// Store incoming message in memory +await memoryCore.storeMessage(userId, message, 'user'); + +// Process through Resonance Engine +const resonanceData = await processResonance(userId, message); + +// Generate response (placeholder for now — will swap in SourceField's full voice later) +const aiResponse = `SourceField Response: ${resonanceData.output}`; + +// Store AI's response in memory +await memoryCore.storeMessage(userId, aiResponse, 'assistant'); + +return res.status(200).json({ response: aiResponse, resonance: resonanceData }); +} catch (error) { +console.error('Chat API Error:', error); +return res.status(500).json({ error: 'Internal server error' }); +} +} From 13edc7baaef28bdd202790fff352d91d52812ef4 Mon Sep 17 00:00:00 2001 From: Kaylee Cisna Date: Sat, 9 Aug 2025 16:58:46 -0500 Subject: [PATCH 95/98] Update middleware for static asset access and i18n routing; sync all recent changes --- .../[workspaceid]/chat/[chatid]/page.tsx | 0 .../[workspaceid]/chat/page.tsx | 0 app/{[locale] => en}/[workspaceid]/layout.tsx | 0 app/{[locale] => en}/[workspaceid]/page.tsx | 0 app/{[locale] => en}/chat/page.tsx | 0 app/{[locale] => en}/globals.css | 0 app/{[locale] => en}/help/page.tsx | 0 app/{[locale] => en}/layout.tsx | 0 app/{[locale] => en}/loading.tsx | 0 app/{[locale] => en}/login/page.tsx | 0 app/{[locale] => en}/login/password/page.tsx | 0 app/{[locale] => en}/page.tsx | 0 app/{[locale] => en}/setup/page.tsx | 0 components/Chat.tsx | 47 +--------- middleware.ts | 87 +++++++++++-------- pages/api/chat.ts | 35 -------- 16 files changed, 54 insertions(+), 115 deletions(-) rename app/{[locale] => en}/[workspaceid]/chat/[chatid]/page.tsx (100%) rename app/{[locale] => en}/[workspaceid]/chat/page.tsx (100%) rename app/{[locale] => en}/[workspaceid]/layout.tsx (100%) rename app/{[locale] => en}/[workspaceid]/page.tsx (100%) rename app/{[locale] => en}/chat/page.tsx (100%) rename app/{[locale] => en}/globals.css (100%) rename app/{[locale] => en}/help/page.tsx (100%) rename app/{[locale] => en}/layout.tsx (100%) rename app/{[locale] => en}/loading.tsx (100%) rename app/{[locale] => en}/login/page.tsx (100%) rename app/{[locale] => en}/login/password/page.tsx (100%) rename app/{[locale] => en}/page.tsx (100%) rename app/{[locale] => en}/setup/page.tsx (100%) delete mode 100644 pages/api/chat.ts diff --git a/app/[locale]/[workspaceid]/chat/[chatid]/page.tsx b/app/en/[workspaceid]/chat/[chatid]/page.tsx similarity index 100% rename from app/[locale]/[workspaceid]/chat/[chatid]/page.tsx rename to app/en/[workspaceid]/chat/[chatid]/page.tsx diff --git a/app/[locale]/[workspaceid]/chat/page.tsx b/app/en/[workspaceid]/chat/page.tsx similarity index 100% rename from app/[locale]/[workspaceid]/chat/page.tsx rename to app/en/[workspaceid]/chat/page.tsx diff --git a/app/[locale]/[workspaceid]/layout.tsx b/app/en/[workspaceid]/layout.tsx similarity index 100% rename from app/[locale]/[workspaceid]/layout.tsx rename to app/en/[workspaceid]/layout.tsx diff --git a/app/[locale]/[workspaceid]/page.tsx b/app/en/[workspaceid]/page.tsx similarity index 100% rename from app/[locale]/[workspaceid]/page.tsx rename to app/en/[workspaceid]/page.tsx diff --git a/app/[locale]/chat/page.tsx b/app/en/chat/page.tsx similarity index 100% rename from app/[locale]/chat/page.tsx rename to app/en/chat/page.tsx diff --git a/app/[locale]/globals.css b/app/en/globals.css similarity index 100% rename from app/[locale]/globals.css rename to app/en/globals.css diff --git a/app/[locale]/help/page.tsx b/app/en/help/page.tsx similarity index 100% rename from app/[locale]/help/page.tsx rename to app/en/help/page.tsx diff --git a/app/[locale]/layout.tsx b/app/en/layout.tsx similarity index 100% rename from app/[locale]/layout.tsx rename to app/en/layout.tsx diff --git a/app/[locale]/loading.tsx b/app/en/loading.tsx similarity index 100% rename from app/[locale]/loading.tsx rename to app/en/loading.tsx diff --git a/app/[locale]/login/page.tsx b/app/en/login/page.tsx similarity index 100% rename from app/[locale]/login/page.tsx rename to app/en/login/page.tsx diff --git a/app/[locale]/login/password/page.tsx b/app/en/login/password/page.tsx similarity index 100% rename from app/[locale]/login/password/page.tsx rename to app/en/login/password/page.tsx diff --git a/app/[locale]/page.tsx b/app/en/page.tsx similarity index 100% rename from app/[locale]/page.tsx rename to app/en/page.tsx diff --git a/app/[locale]/setup/page.tsx b/app/en/setup/page.tsx similarity index 100% rename from app/[locale]/setup/page.tsx rename to app/en/setup/page.tsx diff --git a/components/Chat.tsx b/components/Chat.tsx index b14c3c6f6f..f0ff17ad72 100644 --- a/components/Chat.tsx +++ b/components/Chat.tsx @@ -12,7 +12,6 @@ export default function Chat() { const [messages, setMessages] = useState([]) const [input, setInput] = useState("") const [isLoading, setIsLoading] = useState(false) - const [chatId, setChatId] = useState(null) const messagesEndRef = useRef(null) const scrollToBottom = () => { @@ -26,46 +25,12 @@ export default function Chat() { const handleNewChat = () => { setMessages([]) setInput("") - setChatId(null) - } - - const handleCreateChat = async (): Promise => { - try { - const response = await fetch("/api/chat/create", { - method: "POST" - }) - if (!response.ok) throw new Error("Failed to create chat session") - - const data = await response.json() - setChatId(data.chatId) - return data.chatId - } catch (error) { - console.error("Error creating chat:", error) - return null - } } const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() if (!input.trim()) return - let currentChatId = chatId - if (!currentChatId) { - currentChatId = await handleCreateChat() - if (!currentChatId) { - setMessages(prev => [ - ...prev, - { - id: crypto.randomUUID(), - role: "assistant", - content: - "Unable to start a new chat session. Please try again later." - } - ]) - return - } - } - const userMessage: Message = { id: crypto.randomUUID(), role: "user", @@ -77,13 +42,12 @@ export default function Chat() { setIsLoading(true) try { - const response = await fetch("/api/chat/", { + const response = await fetch("/api/chat", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ - chatId: currentChatId, messages: [...messages, userMessage].map(({ role, content }) => ({ role, content @@ -96,6 +60,7 @@ export default function Chat() { } const data = await response.json() + const assistantMessage: Message = { id: crypto.randomUUID(), role: "assistant", @@ -125,13 +90,7 @@ export default function Chat() { > New Chat - +
{messages.length === 0 && (

Start the conversation...

diff --git a/middleware.ts b/middleware.ts index 422ff21d4e..05807dc21a 100644 --- a/middleware.ts +++ b/middleware.ts @@ -4,43 +4,58 @@ import { NextResponse, type NextRequest } from "next/server" import i18nConfig from "./i18nConfig" export async function middleware(request: NextRequest) { - const i18nResult = i18nRouter(request, i18nConfig) - if (i18nResult) return i18nResult - - try { - const { supabase, response } = createClient(request) - - const session = await supabase.auth.getSession() - - const redirectToChat = session && request.nextUrl.pathname === "/" - - if (redirectToChat) { - const { data: homeWorkspace, error } = await supabase - .from("workspaces") - .select("*") - .eq("user_id", session.data.session?.user.id) - .eq("is_home", true) - .single() - - if (!homeWorkspace) { - throw new Error(error?.message) - } - - return NextResponse.redirect( - new URL(`/${homeWorkspace.id}/chat`, request.url) - ) - } - - return response - } catch (e) { - return NextResponse.next({ - request: { - headers: request.headers - } - }) - } +const { pathname } = request.nextUrl; + +// Allow public files and Next.js internals to pass without auth +if ( +pathname === '/manifest.json' || +pathname === '/favicon.ico' || +pathname.startsWith('/_next/') +) { +return NextResponse.next(); +} + +// i18n routing +const i18nResult = i18nRouter(request, i18nConfig) +if (i18nResult) return i18nResult + +try { +const { supabase, response } = createClient(request) + +const session = await supabase.auth.getSession() + +const redirectToChat = session && request.nextUrl.pathname === "/" + +if (redirectToChat) { +const { data: homeWorkspace, error } = await supabase +.from("workspaces") +.select("*") +.eq("user_id", session.data.session?.user.id) +.eq("is_home", true) +.single() + +if (!homeWorkspace) { +throw new Error(error?.message) +} + +return NextResponse.redirect( +new URL(`/${homeWorkspace.id}/chat`, request.url) +) +} + +return response +} catch (e) { +return NextResponse.next({ +request: { +headers: request.headers +} +}) +} } export const config = { - matcher: "/((?!api|static|.*\\..*|_next|auth).*)" +matcher: [ +"/((?!api|static|.*\\..*|_next|auth|manifest.json|favicon.ico).*)" +], } + diff --git a/pages/api/chat.ts b/pages/api/chat.ts deleted file mode 100644 index 2dab25c991..0000000000 --- a/pages/api/chat.ts +++ /dev/null @@ -1,35 +0,0 @@ -import type { NextApiRequest, NextApiResponse } from 'next'; -import { supabase } from '../../lib/supabaseClient'; -import { processResonance } from '../../lib/resonanceEngine'; -import { memoryCore } from '../../lib/memoryCore'; - -export default async function handler(req: NextApiRequest, res: NextApiResponse) { -if (req.method !== 'POST') { -return res.status(405).json({ error: 'Method not allowed' }); -} - -try { -const { userId, message } = req.body; - -if (!userId || !message) { -return res.status(400).json({ error: 'Missing required fields' }); -} - -// Store incoming message in memory -await memoryCore.storeMessage(userId, message, 'user'); - -// Process through Resonance Engine -const resonanceData = await processResonance(userId, message); - -// Generate response (placeholder for now — will swap in SourceField's full voice later) -const aiResponse = `SourceField Response: ${resonanceData.output}`; - -// Store AI's response in memory -await memoryCore.storeMessage(userId, aiResponse, 'assistant'); - -return res.status(200).json({ response: aiResponse, resonance: resonanceData }); -} catch (error) { -console.error('Chat API Error:', error); -return res.status(500).json({ error: 'Internal server error' }); -} -} From 8c4eff19af993f36208b26c78e251e1f5a0e2aed Mon Sep 17 00:00:00 2001 From: Kaylee Cisna Date: Sat, 9 Aug 2025 20:10:40 -0500 Subject: [PATCH 96/98] Move loading.tsx into /app/[locale]/loading.tsx to fix module resolution --- app/{en => [locale]}/loading.tsx | 0 components/messages/message.tsx | 2 +- package-lock.json | 9259 ++++++++++++++++++------------ 3 files changed, 5597 insertions(+), 3664 deletions(-) rename app/{en => [locale]}/loading.tsx (100%) diff --git a/app/en/loading.tsx b/app/[locale]/loading.tsx similarity index 100% rename from app/en/loading.tsx rename to app/[locale]/loading.tsx diff --git a/components/messages/message.tsx b/components/messages/message.tsx index d0867d68ab..c9aea1bb27 100644 --- a/components/messages/message.tsx +++ b/components/messages/message.tsx @@ -262,7 +262,7 @@ export const Message: FC = ({ : selectedAssistant ? selectedAssistant?.name : MODEL_DATA?.modelName - : profile?.display_name ?? profile?.username} + : (profile?.display_name ?? profile?.username)}
)} diff --git a/package-lock.json b/package-lock.json index 27e755d19b..b477c99b57 100644 --- a/package-lock.json +++ b/package-lock.json @@ -110,26 +110,19 @@ "typescript": "^5" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@adobe/css-tools": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.2.tgz", - "integrity": "sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw==", - "dev": true + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.3.tgz", + "integrity": "sha512-VQKMkwriZbaOgVCby1UDY/LDk5fIjhQicCvVPFqfe+69fWaPWydbWJ3wRt59/YzIwda1I81loas3oCoHxnqvdA==", + "dev": true, + "license": "MIT" }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -138,12 +131,13 @@ } }, "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -153,6 +147,7 @@ "version": "0.18.0", "resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.18.0.tgz", "integrity": "sha512-3XsWEn/4nPGRd4AdSguugbSDFy6Z2AWTNOeI3iK+aV22+w23+vY9CEb3Hiy0kvKIQuxSmZz/+5WKC8nPWy8gVg==", + "license": "MIT", "dependencies": { "@types/node": "^18.11.18", "@types/node-fetch": "^2.6.4", @@ -166,13 +161,20 @@ } }, "node_modules/@anthropic-ai/sdk/node_modules/@types/node": { - "version": "18.19.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.8.tgz", - "integrity": "sha512-g1pZtPhsvGVTwmeVoexWZLTQaOvXwoSq//pTL0DHeNzUDrFnir4fgETdhjhIxjVnN+hKOuh98+E1eMLnUXstFg==", + "version": "18.19.122", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.122.tgz", + "integrity": "sha512-yzegtT82dwTNEe/9y+CM8cgb42WrUfMMCg2QqSddzO1J6uPmBD7qKCZ7dOHZP2Yrpm/kb0eqdNMn2MUyEiqBmA==", + "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } }, + "node_modules/@anthropic-ai/sdk/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" + }, "node_modules/@apidevtools/json-schema-ref-parser": { "version": "11.9.3", "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.9.3.tgz", @@ -191,112 +193,123 @@ } }, "node_modules/@azure-rest/core-client": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@azure-rest/core-client/-/core-client-1.1.7.tgz", - "integrity": "sha512-eQdtieYrOfRwsHFuz6vNANpOT567456m8/CpE3cqdVQgLMrn1uua5O8nLS/XN727MsbTgiZP6C0rAkupt3ky7Q==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@azure-rest/core-client/-/core-client-1.4.0.tgz", + "integrity": "sha512-ozTDPBVUDR5eOnMIwhggbnVmOrka4fXCs8n8mvUo4WLLc38kki6bAOByDoVZZPz/pZy2jMt2kwfpvy/UjALj6w==", + "license": "MIT", "dependencies": { - "@azure/abort-controller": "^1.1.0", + "@azure/abort-controller": "^2.0.0", "@azure/core-auth": "^1.3.0", "@azure/core-rest-pipeline": "^1.5.0", "@azure/core-tracing": "^1.0.1", "@azure/core-util": "^1.0.0", - "tslib": "^2.2.0" + "tslib": "^2.6.2" }, "engines": { "node": ">=18.0.0" } }, "node_modules/@azure/abort-controller": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz", - "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "license": "MIT", "dependencies": { - "tslib": "^2.2.0" + "tslib": "^2.6.2" }, "engines": { - "node": ">=12.0.0" + "node": ">=18.0.0" } }, "node_modules/@azure/core-auth": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.5.0.tgz", - "integrity": "sha512-udzoBuYG1VBoHVohDTrvKjyzel34zt77Bhp7dQntVGGD0ehVq48owENbBG8fIgkHRNUBQH5k1r0hpoMu5L8+kw==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.10.0.tgz", + "integrity": "sha512-88Djs5vBvGbHQHf5ZZcaoNHo6Y8BKZkt3cw2iuJIQzLEgH4Ox6Tm4hjFhbqOxyYsgIG/eJbFEHpxRIfEEWv5Ow==", + "license": "MIT", "dependencies": { - "@azure/abort-controller": "^1.0.0", - "@azure/core-util": "^1.1.0", - "tslib": "^2.2.0" + "@azure/abort-controller": "^2.0.0", + "@azure/core-util": "^1.11.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=20.0.0" } }, "node_modules/@azure/core-rest-pipeline": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.13.0.tgz", - "integrity": "sha512-a62aP/wppgmnfIkJLfcB4ssPBcH94WzrzPVJ3tlJt050zX4lfmtnvy95D3igDo3f31StO+9BgPrzvkj4aOxnoA==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.22.0.tgz", + "integrity": "sha512-OKHmb3/Kpm06HypvB3g6Q3zJuvyXcpxDpCS1PnU8OV6AJgSFaee/covXBcPbWc6XDDxtEPlbi3EMQ6nUiPaQtw==", + "license": "MIT", "dependencies": { - "@azure/abort-controller": "^1.1.0", - "@azure/core-auth": "^1.4.0", + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.8.0", "@azure/core-tracing": "^1.0.1", - "@azure/core-util": "^1.3.0", + "@azure/core-util": "^1.11.0", "@azure/logger": "^1.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "tslib": "^2.2.0" + "@typespec/ts-http-runtime": "^0.3.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@azure/core-sse": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@azure/core-sse/-/core-sse-2.0.0.tgz", - "integrity": "sha512-PFmmaUwDmcmtt+q9NLzfhwC5qA2ACDn/5fuy8GVxI+YRv2qRvy1C0rZrwZLvOHe//G4cSRMz1X+CekY/Nlem2w==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@azure/core-sse/-/core-sse-2.3.0.tgz", + "integrity": "sha512-jKhPpdDbVS5GlpadSKIC7V6Q4P2vEcwXi1c4CLTXs01Q/PAITES9v5J/S73+RtCMqQpsX0jGa2yPWwXi9JzdgA==", + "license": "MIT", "dependencies": { - "tslib": "^2.4.0" + "tslib": "^2.6.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@azure/core-tracing": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.1.tgz", - "integrity": "sha512-I5CGMoLtX+pI17ZdiFJZgxMJApsK6jjfm85hpgp3oazCdq5Wxgh4wMr7ge/TTWW1B5WBuvIOI1fMU/FrOAMKrw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.3.0.tgz", + "integrity": "sha512-+XvmZLLWPe67WXNZo9Oc9CrPj/Tm8QnHR92fFAFdnbzwNdCH1h+7UdpaQgRSBsMY+oW1kHXNUZQLdZ1gHX3ROw==", + "license": "MIT", "dependencies": { - "tslib": "^2.2.0" + "tslib": "^2.6.2" }, "engines": { - "node": ">=12.0.0" + "node": ">=20.0.0" } }, "node_modules/@azure/core-util": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.6.1.tgz", - "integrity": "sha512-h5taHeySlsV9qxuK64KZxy4iln1BtMYlNt5jbuEFN3UFSAd1EwKg/Gjl5a6tZ/W8t6li3xPnutOx7zbDyXnPmQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.13.0.tgz", + "integrity": "sha512-o0psW8QWQ58fq3i24Q1K2XfS/jYTxr7O1HRcyUE9bV9NttLU+kYOH82Ixj8DGlMTOWgxm1Sss2QAfKK5UkSPxw==", + "license": "MIT", "dependencies": { - "@azure/abort-controller": "^1.0.0", - "tslib": "^2.2.0" + "@azure/abort-controller": "^2.0.0", + "@typespec/ts-http-runtime": "^0.3.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.0.0" } }, "node_modules/@azure/logger": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.0.4.tgz", - "integrity": "sha512-ustrPY8MryhloQj7OWGe+HrYx+aoiOxzbXTtgblbV3xwCqpzUK36phH3XNHQKj3EPonyFUuDTfR3qFhTEAuZEg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.3.0.tgz", + "integrity": "sha512-fCqPIfOcLE+CGqGPd66c8bZpwAji98tZ4JI9i/mlTNTlsIWslCfpg48s/ypyLxZTump5sypjrKn2/kY7q8oAbA==", + "license": "MIT", "dependencies": { - "tslib": "^2.2.0" + "@typespec/ts-http-runtime": "^0.3.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=20.0.0" } }, "node_modules/@azure/openai": { - "version": "1.0.0-beta.10", - "resolved": "https://registry.npmjs.org/@azure/openai/-/openai-1.0.0-beta.10.tgz", - "integrity": "sha512-6kixZSMOI5jk9TBwgXrVo5fKUPUudOXxjwCJvAGaQN6NT1Tp3IMrjGou+2iP9iX7GwND9lptxfvafHtK7RX/VA==", + "version": "1.0.0-beta.13", + "resolved": "https://registry.npmjs.org/@azure/openai/-/openai-1.0.0-beta.13.tgz", + "integrity": "sha512-oHE5ScnPTXALmyEBgqokZlYVT7F76EfrKjMWF+YcFJdUxk9Adhvht2iL5v+QpmlAIMdkih1q8DkTs/tApDjBpw==", + "deprecated": "The Azure OpenAI client library for JavaScript beta has been retired. Please migrate to the stable OpenAI SDK for JavaScript using the migration guide: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/openai/openai/MIGRATION.md.", + "license": "MIT", "dependencies": { "@azure-rest/core-client": "^1.1.7", "@azure/core-auth": "^1.4.0", @@ -325,28 +338,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", + "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", - "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", + "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.7", - "@babel/parser": "^7.23.6", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.6", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -365,54 +380,48 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", + "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "@babel/parser": "^7.28.0", + "@babel/types": "^7.28.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/types": "^7.27.3" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -424,23 +433,23 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.9.tgz", - "integrity": "sha512-B2L9neXTIyPQoXDm+NtovPvG6VOLWnaXu3BIeVDWwdKFgG30oNa6CqVGiJPDWQwIAK49t9gnQI9c6K6RzabiKw==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", + "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.27.1", "semver": "^6.3.1" }, "engines": { @@ -454,17 +463,19 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", + "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", + "@babel/helper-annotate-as-pure": "^7.27.1", + "regexpu-core": "^6.2.0", "semver": "^6.3.1" }, "engines": { @@ -478,88 +489,71 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", - "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "resolve": "^1.22.10" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dependencies": { - "@babel/types": "^7.22.5" - }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.23.0" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" }, "engines": { "node": ">=6.9.0" @@ -569,32 +563,35 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -604,13 +601,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -619,34 +617,14 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -671,34 +649,36 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz", + "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==", + "license": "MIT", "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", - "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.2.tgz", + "integrity": "sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==", "license": "MIT", "dependencies": { "@babel/template": "^7.27.2", - "@babel/types": "^7.27.6" + "@babel/types": "^7.28.2" }, "engines": { "node": ">=6.9.0" @@ -719,12 +699,44 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", + "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", - "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -734,13 +746,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", - "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.3" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -750,12 +763,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", - "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz", + "integrity": "sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==", + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -768,6 +782,7 @@ "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "license": "MIT", "engines": { "node": ">=6.9.0" }, @@ -779,6 +794,8 @@ "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -791,6 +808,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -802,6 +820,8 @@ "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -813,6 +833,8 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -823,34 +845,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", - "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -860,11 +861,12 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", - "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -877,6 +879,8 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -888,6 +892,8 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -896,12 +902,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -914,6 +921,8 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -925,6 +934,8 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -936,6 +947,8 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -947,6 +960,8 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -958,6 +973,8 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -969,6 +986,8 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -980,6 +999,8 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -994,6 +1015,8 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -1005,12 +1028,13 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1023,6 +1047,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "license": "MIT", "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" @@ -1035,11 +1060,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", - "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1049,14 +1075,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", - "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", + "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -1066,13 +1092,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1082,11 +1109,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", - "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1096,11 +1124,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", - "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.0.tgz", + "integrity": "sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1110,12 +1139,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", - "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1125,13 +1155,13 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", - "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz", + "integrity": "sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==", + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1141,18 +1171,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", - "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.0.tgz", + "integrity": "sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -1161,21 +1190,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", - "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.15" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1185,11 +1207,13 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", - "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz", + "integrity": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -1199,12 +1223,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", - "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1214,11 +1239,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", - "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1227,28 +1253,29 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", - "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", - "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", + "license": "MIT", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1257,13 +1284,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", - "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz", + "integrity": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -1272,13 +1300,44 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", - "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", + "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1288,13 +1347,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", - "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1304,12 +1364,12 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", - "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1319,11 +1379,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", - "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1333,12 +1394,12 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", - "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", + "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1348,11 +1409,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", - "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1362,12 +1424,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", - "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1377,13 +1440,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1393,14 +1456,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", - "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", + "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", + "license": "MIT", "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1410,12 +1474,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", - "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1425,12 +1490,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1440,11 +1506,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", - "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1454,12 +1521,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", - "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1469,12 +1536,12 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", - "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1484,15 +1551,16 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", - "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.0.tgz", + "integrity": "sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==", + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.23.3" + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.0" }, "engines": { "node": ">=6.9.0" @@ -1502,12 +1570,13 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", - "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1517,12 +1586,12 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", - "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1532,13 +1601,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", - "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", + "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1548,11 +1617,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", - "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1562,12 +1632,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", - "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1577,14 +1648,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", - "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1594,11 +1665,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", - "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1608,12 +1680,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", - "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "version": "7.28.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.1.tgz", + "integrity": "sha512-P0QiV/taaa3kXpLY+sXla5zec4E+4t4Aqc9ggHlfZ7a2cp8/x/Gv08jfwEtn9gnnYIMvHx6aoOZ8XJL8eU71Dg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1622,12 +1694,29 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", + "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", - "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1637,11 +1726,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", - "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1651,12 +1741,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", - "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1666,11 +1757,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", - "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1680,11 +1772,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", - "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1694,11 +1787,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", - "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1708,11 +1802,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", - "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1722,12 +1817,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", - "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1737,12 +1833,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", - "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1752,12 +1849,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", - "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1767,89 +1865,80 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz", - "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==", - "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.0.tgz", + "integrity": "sha512-VmaxeGOwuDqzLl5JUkIRM1X2Qu2uKGxHEQWh+cvvbl7JuJRgKGJSfsEF/bUaxFhJl/XAyxBe7q7qSuTbKFuCyg==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.0", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.27.1", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.23.3", - "@babel/plugin-syntax-import-attributes": "^7.23.3", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-import-assertions": "^7.27.1", + "@babel/plugin-syntax-import-attributes": "^7.27.1", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.9", - "@babel/plugin-transform-async-to-generator": "^7.23.3", - "@babel/plugin-transform-block-scoped-functions": "^7.23.3", - "@babel/plugin-transform-block-scoping": "^7.23.4", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-class-static-block": "^7.23.4", - "@babel/plugin-transform-classes": "^7.23.8", - "@babel/plugin-transform-computed-properties": "^7.23.3", - "@babel/plugin-transform-destructuring": "^7.23.3", - "@babel/plugin-transform-dotall-regex": "^7.23.3", - "@babel/plugin-transform-duplicate-keys": "^7.23.3", - "@babel/plugin-transform-dynamic-import": "^7.23.4", - "@babel/plugin-transform-exponentiation-operator": "^7.23.3", - "@babel/plugin-transform-export-namespace-from": "^7.23.4", - "@babel/plugin-transform-for-of": "^7.23.6", - "@babel/plugin-transform-function-name": "^7.23.3", - "@babel/plugin-transform-json-strings": "^7.23.4", - "@babel/plugin-transform-literals": "^7.23.3", - "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", - "@babel/plugin-transform-member-expression-literals": "^7.23.3", - "@babel/plugin-transform-modules-amd": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.9", - "@babel/plugin-transform-modules-umd": "^7.23.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.23.3", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", - "@babel/plugin-transform-numeric-separator": "^7.23.4", - "@babel/plugin-transform-object-rest-spread": "^7.23.4", - "@babel/plugin-transform-object-super": "^7.23.3", - "@babel/plugin-transform-optional-catch-binding": "^7.23.4", - "@babel/plugin-transform-optional-chaining": "^7.23.4", - "@babel/plugin-transform-parameters": "^7.23.3", - "@babel/plugin-transform-private-methods": "^7.23.3", - "@babel/plugin-transform-private-property-in-object": "^7.23.4", - "@babel/plugin-transform-property-literals": "^7.23.3", - "@babel/plugin-transform-regenerator": "^7.23.3", - "@babel/plugin-transform-reserved-words": "^7.23.3", - "@babel/plugin-transform-shorthand-properties": "^7.23.3", - "@babel/plugin-transform-spread": "^7.23.3", - "@babel/plugin-transform-sticky-regex": "^7.23.3", - "@babel/plugin-transform-template-literals": "^7.23.3", - "@babel/plugin-transform-typeof-symbol": "^7.23.3", - "@babel/plugin-transform-unicode-escapes": "^7.23.3", - "@babel/plugin-transform-unicode-property-regex": "^7.23.3", - "@babel/plugin-transform-unicode-regex": "^7.23.3", - "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.28.0", + "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.0", + "@babel/plugin-transform-class-properties": "^7.27.1", + "@babel/plugin-transform-class-static-block": "^7.27.1", + "@babel/plugin-transform-classes": "^7.28.0", + "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.0", + "@babel/plugin-transform-exponentiation-operator": "^7.27.1", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.27.1", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", + "@babel/plugin-transform-numeric-separator": "^7.27.1", + "@babel/plugin-transform-object-rest-spread": "^7.28.0", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/plugin-transform-private-methods": "^7.27.1", + "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.28.0", + "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.8", - "babel-plugin-polyfill-corejs3": "^0.9.0", - "babel-plugin-polyfill-regenerator": "^0.5.5", - "core-js-compat": "^3.31.0", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "core-js-compat": "^3.43.0", "semver": "^6.3.1" }, "engines": { @@ -1863,6 +1952,7 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -1871,6 +1961,7 @@ "version": "0.1.6-no-external-plugins", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", @@ -1880,15 +1971,10 @@ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" - }, "node_modules/@babel/runtime": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.6.tgz", - "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.2.tgz", + "integrity": "sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -1909,37 +1995,27 @@ } }, "node_modules/@babel/traverse": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", - "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.6", - "@babel/types": "^7.23.6", - "debug": "^4.3.1", - "globals": "^11.1.0" + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", + "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.0", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/types": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", - "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", @@ -1953,13 +2029,15 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -1972,6 +2050,7 @@ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -1982,30 +2061,70 @@ "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" } }, + "node_modules/@emnapi/core": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.5.tgz", + "integrity": "sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.0.4", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.5.tgz", + "integrity": "sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.4.tgz", + "integrity": "sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", "dev": true, + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } @@ -2015,6 +2134,7 @@ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", @@ -2034,37 +2154,41 @@ } }, "node_modules/@eslint/js": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", - "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true, + "license": "MIT", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@floating-ui/core": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.3.tgz", - "integrity": "sha512-O0WKDOo0yhJuugCx6trZQj5jVJ9yR0ystG2JaNAemYUWce+pmM6WUEFIibnWyEJKdrDxhm75NoSRME35FNaM/Q==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", + "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", + "license": "MIT", "dependencies": { - "@floating-ui/utils": "^0.2.0" + "@floating-ui/utils": "^0.2.10" } }, "node_modules/@floating-ui/dom": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.4.tgz", - "integrity": "sha512-jByEsHIY+eEdCjnTVu+E3ephzTOzkQ8hgUfGwos+bg7NlH33Zc5uO+QHz1mrQUOgIKKDD1RtS201P9NvAfq3XQ==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.3.tgz", + "integrity": "sha512-uZA413QEpNuhtb3/iIKoYMSK07keHPYeXF02Zhd6e213j+d1NamLix/mCLxBUDW/Gx52sPH2m+chlUsyaBs/Ag==", + "license": "MIT", "dependencies": { - "@floating-ui/core": "^1.5.3", - "@floating-ui/utils": "^0.2.0" + "@floating-ui/core": "^1.7.3", + "@floating-ui/utils": "^0.2.10" } }, "node_modules/@floating-ui/react-dom": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.6.tgz", - "integrity": "sha512-IB8aCRFxr8nFkdYZgH+Otd9EVQPJoynxeFRGTB8voPoZMRWo8XjYuCRgpI1btvuKY69XMiLnW+ym7zoBHM90Rw==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.5.tgz", + "integrity": "sha512-HDO/1/1oH9fjj4eLgegrlH3dklZpHtUYYFiVwMUwfGvk9jWDRWqkklA2/NFScknrcNSspbV868WjXORvreDX+Q==", + "license": "MIT", "dependencies": { - "@floating-ui/dom": "^1.5.4" + "@floating-ui/dom": "^1.7.3" }, "peerDependencies": { "react": ">=16.8.0", @@ -2072,49 +2196,56 @@ } }, "node_modules/@floating-ui/utils": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", - "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==" + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", + "license": "MIT" }, "node_modules/@formatjs/intl-localematcher": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.4.tgz", - "integrity": "sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==", + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.10.tgz", + "integrity": "sha512-af3qATX+m4Rnd9+wHcjJ4w2ijq+rAVP3CCinJQvFv1kgSu1W6jypUmvleJxcewdxmutM8dmIRZFxO/IQBZmP2Q==", + "license": "MIT", "dependencies": { - "tslib": "^2.4.0" + "tslib": "2" } }, "node_modules/@google/generative-ai": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/@google/generative-ai/-/generative-ai-0.11.4.tgz", - "integrity": "sha512-hlw+E9Prv9aUIQISRnLSXi4rukFqKe5WhxPvzBccTvIvXjw2BHMFOJWSC/Gq7WE0W+L/qRHGmYxopmx9qjrB9w==", + "version": "0.11.5", + "resolved": "https://registry.npmjs.org/@google/generative-ai/-/generative-ai-0.11.5.tgz", + "integrity": "sha512-DviMgrnljEKh6qkDT2pVFW+NEuVhggqBUoEnyy2PNL7l4ewxXRJubk3PctC9yPl1AdRIlhqP7E076QQt+IWuTg==", + "license": "Apache-2.0", "engines": { "node": ">=18.0.0" } }, "node_modules/@hookform/resolvers": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.3.4.tgz", - "integrity": "sha512-o5cgpGOuJYrd+iMKvkttOclgwRW86EsWJZZRC23prf0uU2i48Htq4PuT73AVb9ionFyZrwYEITuOFGF+BydEtQ==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.10.0.tgz", + "integrity": "sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag==", + "license": "MIT", "peerDependencies": { "react-hook-form": "^7.0.0" } }, "node_modules/@huggingface/jinja": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@huggingface/jinja/-/jinja-0.1.2.tgz", - "integrity": "sha512-x5mpbfJt1nKmVep5WNP5VjNsjWApWNj8pPYI+uYMkBWH9bWUJmQmHt2lbf0VCoQd54Oq3XuFEh/UyoVh7rPxmg==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@huggingface/jinja/-/jinja-0.2.2.tgz", + "integrity": "sha512-/KPde26khDUIPkTGU82jdtTW9UAuvUTumCAbFs/7giR0SxsvZC4hru51PBvpijH6BVkHcROcvZM/lpy5h1jRRA==", + "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", + "@humanwhocodes/object-schema": "^2.0.3", "debug": "^4.3.1", "minimatch": "^3.0.5" }, @@ -2127,6 +2258,7 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -2136,16 +2268,19 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", - "dev": true + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -2159,10 +2294,11 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2175,6 +2311,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -2190,6 +2327,7 @@ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, + "license": "ISC", "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -2206,6 +2344,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } @@ -2215,6 +2354,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -2228,6 +2368,7 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -2241,6 +2382,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -2253,6 +2395,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -2268,6 +2411,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -2280,6 +2424,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2289,6 +2434,7 @@ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -2298,6 +2444,7 @@ "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -2310,27 +2457,12 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/@jest/core": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/console": "^29.7.0", "@jest/reporters": "^29.7.0", @@ -2373,20 +2505,17 @@ } } }, - "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "license": "MIT", "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/@jest/core/node_modules/pretty-format": { @@ -2394,6 +2523,7 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -2403,29 +2533,19 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/core/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@jest/core/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" }, "node_modules/@jest/environment": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", @@ -2441,6 +2561,7 @@ "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, + "license": "MIT", "dependencies": { "expect": "^29.7.0", "jest-snapshot": "^29.7.0" @@ -2454,6 +2575,7 @@ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, + "license": "MIT", "dependencies": { "jest-get-type": "^29.6.3" }, @@ -2466,6 +2588,7 @@ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@sinonjs/fake-timers": "^10.0.2", @@ -2483,6 +2606,7 @@ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", @@ -2498,6 +2622,7 @@ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, + "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^29.7.0", @@ -2536,27 +2661,13 @@ } } }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/@jest/reporters/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -2577,6 +2688,7 @@ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, + "license": "MIT", "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -2589,6 +2701,7 @@ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "callsites": "^3.0.0", @@ -2603,6 +2716,7 @@ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/console": "^29.7.0", "@jest/types": "^29.6.3", @@ -2618,6 +2732,7 @@ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/test-result": "^29.7.0", "graceful-fs": "^4.2.9", @@ -2633,6 +2748,7 @@ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^29.6.3", @@ -2654,27 +2770,12 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/@jest/types": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", @@ -2687,64 +2788,40 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.10.tgz", + "integrity": "sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==", + "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.29", @@ -2759,7 +2836,8 @@ "node_modules/@jsdevtools/ono": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", + "license": "MIT" }, "node_modules/@langchain/community": { "version": "0.0.57", @@ -3248,6 +3326,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -3259,6 +3338,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -3311,11 +3391,12 @@ } }, "node_modules/@langchain/core/node_modules/zod-to-json-schema": { - "version": "3.22.3", - "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.22.3.tgz", - "integrity": "sha512-9isG8SqRe07p+Aio2ruBZmLm2Q6Sq4EqmXOiNpDxp+7f0LV6Q/LX65fs5Nn+FV/CzfF3NLBoksXbS2jNYIfpKw==", + "version": "3.24.6", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.6.tgz", + "integrity": "sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==", + "license": "ISC", "peerDependencies": { - "zod": "^3.22.4" + "zod": "^3.24.1" } }, "node_modules/@langchain/openai": { @@ -3347,38 +3428,54 @@ "version": "0.0.8", "resolved": "https://registry.npmjs.org/@mistralai/mistralai/-/mistralai-0.0.8.tgz", "integrity": "sha512-0DIgJiYy4mWSUPnq2M0LpngBcnkllDfYg16/+z1yzy8qApceNXm+yXHoLn8go6Tg4hKtCO1WscnFHF09rSAufg==", + "license": "ISC", "dependencies": { "node-fetch": "^2.6.7" } }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", + "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.10.0" + } + }, "node_modules/@next/bundle-analyzer": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/bundle-analyzer/-/bundle-analyzer-14.1.0.tgz", - "integrity": "sha512-RJWjnlMp/1WSW0ahAdawV22WgJiC6BVaFS5Xfhw6gP7NJEX3cAJjh4JqSHKGr8GnLNRaFCVTQdDPoX84E421BA==", + "version": "14.2.31", + "resolved": "https://registry.npmjs.org/@next/bundle-analyzer/-/bundle-analyzer-14.2.31.tgz", + "integrity": "sha512-MXJezm1pcVlCrKCzWHuaNXlxcUFbsyYpjsgqDjJAX3rFnOvrh8RmgvcTHoEKtZE+a5KzjcQYWVRjx/P6TspQ9w==", "dev": true, + "license": "MIT", "dependencies": { "webpack-bundle-analyzer": "4.10.1" } }, "node_modules/@next/env": { - "version": "14.2.30", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.30.tgz", - "integrity": "sha512-KBiBKrDY6kxTQWGzKjQB7QirL3PiiOkV7KW98leHFjtVRKtft76Ra5qSA/SL75xT44dp6hOcqiiJ6iievLOYug==", + "version": "14.2.31", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.31.tgz", + "integrity": "sha512-X8VxxYL6VuezrG82h0pUA1V+DuTSJp7Nv15bxq3ivrFqZLjx81rfeHMWOE9T0jm1n3DtHGv8gdn6B0T0kr0D3Q==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.1.0.tgz", - "integrity": "sha512-x4FavbNEeXx/baD/zC/SdrvkjSby8nBn8KcCREqk6UuwvwoAPZmaV8TFCAuo/cpovBRTIY67mHhe86MQQm/68Q==", + "version": "14.2.31", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.31.tgz", + "integrity": "sha512-ouaB+l8Cr/uzGxoGHUvd01OnfFTM8qM81Crw1AG0xoWDRN0DKLXyTWVe0FdAOHVBpGuXB87aufdRmrwzZDArIw==", "dev": true, + "license": "MIT", "dependencies": { "glob": "10.3.10" } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.30", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.30.tgz", - "integrity": "sha512-EAqfOTb3bTGh9+ewpO/jC59uACadRHM6TSA9DdxJB/6gxOpyV+zrbqeXiFTDy9uV6bmipFDkfpAskeaDcO+7/g==", + "version": "14.2.31", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.31.tgz", + "integrity": "sha512-dTHKfaFO/xMJ3kzhXYgf64VtV6MMwDs2viedDOdP+ezd0zWMOQZkxcwOfdcQeQCpouTr9b+xOqMCUXxgLizl8Q==", "cpu": [ "arm64" ], @@ -3392,9 +3489,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.2.30", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.30.tgz", - "integrity": "sha512-TyO7Wz1IKE2kGv8dwQ0bmPL3s44EKVencOqwIY69myoS3rdpO1NPg5xPM5ymKu7nfX4oYJrpMxv8G9iqLsnL4A==", + "version": "14.2.31", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.31.tgz", + "integrity": "sha512-iSavebQgeMukUAfjfW8Fi2Iz01t95yxRl2w2wCzjD91h5In9la99QIDKcKSYPfqLjCgwz3JpIWxLG6LM/sxL4g==", "cpu": [ "x64" ], @@ -3408,9 +3505,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.30", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.30.tgz", - "integrity": "sha512-I5lg1fgPJ7I5dk6mr3qCH1hJYKJu1FsfKSiTKoYwcuUf53HWTrEkwmMI0t5ojFKeA6Vu+SfT2zVy5NS0QLXV4Q==", + "version": "14.2.31", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.31.tgz", + "integrity": "sha512-XJb3/LURg1u1SdQoopG6jDL2otxGKChH2UYnUTcby4izjM0il7ylBY5TIA7myhvHj9lG5pn9F2nR2s3i8X9awQ==", "cpu": [ "arm64" ], @@ -3424,9 +3521,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.30", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.30.tgz", - "integrity": "sha512-8GkNA+sLclQyxgzCDs2/2GSwBc92QLMrmYAmoP2xehe5MUKBLB2cgo34Yu242L1siSkwQkiV4YLdCnjwc/Micw==", + "version": "14.2.31", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.31.tgz", + "integrity": "sha512-IInDAcchNCu3BzocdqdCv1bKCmUVO/bKJHnBFTeq3svfaWpOPewaLJ2Lu3GL4yV76c/86ZvpBbG/JJ1lVIs5MA==", "cpu": [ "arm64" ], @@ -3440,9 +3537,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.30", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.30.tgz", - "integrity": "sha512-8Ly7okjssLuBoe8qaRCcjGtcMsv79hwzn/63wNeIkzJVFVX06h5S737XNr7DZwlsbTBDOyI6qbL2BJB5n6TV/w==", + "version": "14.2.31", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.31.tgz", + "integrity": "sha512-YTChJL5/9e4NXPKW+OJzsQa42RiWUNbE+k+ReHvA+lwXk+bvzTsVQboNcezWOuCD+p/J+ntxKOB/81o0MenBhw==", "cpu": [ "x64" ], @@ -3456,9 +3553,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.30", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.30.tgz", - "integrity": "sha512-dBmV1lLNeX4mR7uI7KNVHsGQU+OgTG5RGFPi3tBJpsKPvOPtg9poyav/BYWrB3GPQL4dW5YGGgalwZ79WukbKQ==", + "version": "14.2.31", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.31.tgz", + "integrity": "sha512-A0JmD1y4q/9ufOGEAhoa60Sof++X10PEoiWOH0gZ2isufWZeV03NnyRlRmJpRQWGIbRkJUmBo9I3Qz5C10vx4w==", "cpu": [ "x64" ], @@ -3472,9 +3569,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.30", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.30.tgz", - "integrity": "sha512-6MMHi2Qc1Gkq+4YLXAgbYslE1f9zMGBikKMdmQRHXjkGPot1JY3n5/Qrbg40Uvbi8//wYnydPnyvNhI1DMUW1g==", + "version": "14.2.31", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.31.tgz", + "integrity": "sha512-nowJ5GbMeDOMzbTm29YqrdrD6lTM8qn2wnZfGpYMY7SZODYYpaJHH1FJXE1l1zWICHR+WfIMytlTDBHu10jb8A==", "cpu": [ "arm64" ], @@ -3488,9 +3585,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.30", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.30.tgz", - "integrity": "sha512-pVZMnFok5qEX4RT59mK2hEVtJX+XFfak+/rjHpyFh7juiT52r177bfFKhnlafm0UOSldhXjj32b+LZIOdswGTg==", + "version": "14.2.31", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.31.tgz", + "integrity": "sha512-pk9Bu4K0015anTS1OS9d/SpS0UtRObC+xe93fwnm7Gvqbv/W1ZbzhK4nvc96RURIQOux3P/bBH316xz8wjGSsA==", "cpu": [ "ia32" ], @@ -3504,9 +3601,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.30", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.30.tgz", - "integrity": "sha512-4KCo8hMZXMjpTzs3HOqOGYYwAXymXIy7PEPAXNEcEOyKqkjiDlECumrWziy+JEF0Oi4ILHGxzgQ3YiMGG2t/Lg==", + "version": "14.2.31", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.31.tgz", + "integrity": "sha512-LwFZd4JFnMHGceItR9+jtlMm8lGLU/IPkgjBBgYmdYSfalbHCiDpjMYtgDQ2wtwiAOSJOCyFI4m8PikrsDyA6Q==", "cpu": [ "x64" ], @@ -3523,6 +3620,7 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -3535,6 +3633,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", "engines": { "node": ">= 8" } @@ -3543,6 +3642,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -3551,46 +3651,63 @@ "node": ">= 8" } }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.4.0" + } + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">=14" } }, "node_modules/@polka/url": { - "version": "1.0.0-next.24", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.24.tgz", - "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==", - "dev": true + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "dev": true, + "license": "MIT" }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/base64": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/codegen": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/eventemitter": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/fetch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" @@ -3599,65 +3716,66 @@ "node_modules/@protobufjs/float": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/inquire": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/path": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/pool": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" }, "node_modules/@protobufjs/utf8": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" }, "node_modules/@radix-ui/number": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.0.1.tgz", - "integrity": "sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==", - "dependencies": { - "@babel/runtime": "^7.13.10" - } + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz", + "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==", + "license": "MIT" }, "node_modules/@radix-ui/primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", - "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", - "dependencies": { - "@babel/runtime": "^7.13.10" - } + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.2.tgz", + "integrity": "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==", + "license": "MIT" }, "node_modules/@radix-ui/react-accordion": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.1.2.tgz", - "integrity": "sha512-fDG7jcoNKVjSK6yfmuAs0EnPDro0WMXIhMtXdTBWqEioVW206ku+4Lw07e+13lUkFkpoEQ2PdeMIAGpdqEAmDg==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.11.tgz", + "integrity": "sha512-l3W5D54emV2ues7jjeG1xcyN7S3jnK3zE2zHqgn0CmMsy9lNJwmgcrmaxS+7ipw15FAivzKNzH3d5EcGoFKw0A==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collapsible": "1.0.3", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1" + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collapsible": "1.1.11", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3669,23 +3787,23 @@ } }, "node_modules/@radix-ui/react-alert-dialog": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.0.5.tgz", - "integrity": "sha512-OrVIOcZL0tl6xibeuGt5/+UxoT2N27KCFOPjFyfXMnchxSHZ/OW7cCX2nGlIYJrbHK/fczPcFzAwvNBB6XBNMA==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.14.tgz", + "integrity": "sha512-IOZfZ3nPvN6lXpJTBCunFQPRSvK8MDgSc1FB85xnIpUKOw9en0dJj8JmCAxV7BiZdtYlUpmrQjoTFkVYtdoWzQ==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-dialog": "1.0.5", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2" + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dialog": "1.1.14", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3697,18 +3815,18 @@ } }, "node_modules/@radix-ui/react-arrow": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.0.3.tgz", - "integrity": "sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", + "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" + "@radix-ui/react-primitive": "2.1.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3720,18 +3838,18 @@ } }, "node_modules/@radix-ui/react-aspect-ratio": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.0.3.tgz", - "integrity": "sha512-fXR5kbMan9oQqMuacfzlGG/SQMcmMlZ4wrvpckv8SgUulD0MMpspxJrxg/Gp/ISV3JfV1AeSWTYK9GvxA4ySwA==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.1.7.tgz", + "integrity": "sha512-Yq6lvO9HQyPwev1onK1daHCHqXVLzPhSVjmsNjCa2Zcxy2f7uJD2itDtxknv6FzAKCwD1qQkeVDmX/cev13n/g==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" + "@radix-ui/react-primitive": "2.1.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3743,21 +3861,22 @@ } }, "node_modules/@radix-ui/react-avatar": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.0.4.tgz", - "integrity": "sha512-kVK2K7ZD3wwj3qhle0ElXhOjbezIgyl2hVvgwfIdexL3rN6zJmy5AqqIf+D31lxVppdzV8CjAfZ6PklkmInZLw==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.10.tgz", + "integrity": "sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1" + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-is-hydrated": "0.1.0", + "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3769,25 +3888,25 @@ } }, "node_modules/@radix-ui/react-checkbox": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.0.4.tgz", - "integrity": "sha512-CBuGQa52aAYnADZVt/KBQzXrwx6TqnlwtcIPGtVt5JkkzQwMOLJjPukimhfKEr4GQNd43C+djUh5Ikopj8pSLg==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.2.tgz", + "integrity": "sha512-yd+dI56KZqawxKZrJ31eENUwqc1QSqg4OZ15rybGjF2ZNwMO+wCyHzAVLRp9qoYJf7kYy0YpZ2b0JCzJ42HZpA==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-use-previous": "1.0.1", - "@radix-ui/react-use-size": "1.0.1" + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3799,25 +3918,25 @@ } }, "node_modules/@radix-ui/react-collapsible": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.0.3.tgz", - "integrity": "sha512-UBmVDkmR6IvDsloHVN+3rtx4Mi5TFvylYXpluuv0f37dtaz3H99bp8No0LGXRigVpl3UAT4l9j6bIchh42S/Gg==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.11.tgz", + "integrity": "sha512-2qrRsVGSCYasSz1RFOorXwl0H7g7J1frQtgpQgYrt+MOidtPAINHn9CPovQXb83r8ahapdx3Tu0fa/pdFFSdPg==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1" + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3829,21 +3948,21 @@ } }, "node_modules/@radix-ui/react-collection": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.0.3.tgz", - "integrity": "sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", + "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2" + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3855,15 +3974,13 @@ } }, "node_modules/@radix-ui/react-compose-refs": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", - "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3872,15 +3989,13 @@ } }, "node_modules/@radix-ui/react-context": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", - "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", + "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "license": "MIT", "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3889,23 +4004,23 @@ } }, "node_modules/@radix-ui/react-context-menu": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.1.5.tgz", - "integrity": "sha512-R5XaDj06Xul1KGb+WP8qiOh7tKJNz2durpLBXAGZjSVtctcRFCuEvy2gtMwRJGePwQQE5nV77gs4FwRi8T+r2g==", + "version": "2.2.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.2.15.tgz", + "integrity": "sha512-UsQUMjcYTsBjTSXw0P3GO0werEQvUY2plgRQuKoCTtkNr45q1DiL51j4m7gxhABzZ0BadoXNsIbg7F3KwiUBbw==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-menu": "2.0.6", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-controllable-state": "1.0.1" + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-menu": "2.1.15", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3917,31 +4032,31 @@ } }, "node_modules/@radix-ui/react-dialog": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.5.tgz", - "integrity": "sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.14.tgz", + "integrity": "sha512-+CpweKjqpzTmwRwcYECQcNYbI8V9VSQt0SNFKeEBLgfucbsLssU6Ppq7wUdNXEGb573bMjFhVjKVll8rmV6zMw==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-focus-guards": "1.0.1", - "@radix-ui/react-focus-scope": "1.0.4", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-portal": "1.0.4", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2", - "@radix-ui/react-use-controllable-state": "1.0.1", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.5" + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-focus-guards": "1.1.2", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3953,15 +4068,13 @@ } }, "node_modules/@radix-ui/react-direction": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.0.1.tgz", - "integrity": "sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", + "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", + "license": "MIT", "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3970,22 +4083,22 @@ } }, "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz", - "integrity": "sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.10.tgz", + "integrity": "sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-escape-keydown": "1.0.3" + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -3997,24 +4110,24 @@ } }, "node_modules/@radix-ui/react-dropdown-menu": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.0.6.tgz", - "integrity": "sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==", + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.15.tgz", + "integrity": "sha512-mIBnOjgwo9AH3FyKaSWoSu/dYj6VdhJ7frEPiGTeXCdUFHjl9h3mFh2wwhEtINOmYXWhdpf1rY2minFsmaNgVQ==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-menu": "2.0.6", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1" + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-menu": "2.1.15", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4026,15 +4139,13 @@ } }, "node_modules/@radix-ui/react-focus-guards": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", - "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.2.tgz", + "integrity": "sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==", + "license": "MIT", "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4043,20 +4154,20 @@ } }, "node_modules/@radix-ui/react-focus-scope": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz", - "integrity": "sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", + "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1" + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4068,26 +4179,26 @@ } }, "node_modules/@radix-ui/react-hover-card": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.0.7.tgz", - "integrity": "sha512-OcUN2FU0YpmajD/qkph3XzMcK/NmSk9hGWnjV68p6QiZMgILugusgQwnLSDs3oFSJYGKf3Y49zgFedhGh04k9A==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.14.tgz", + "integrity": "sha512-CPYZ24Mhirm+g6D8jArmLzjYu4Eyg3TTUHswR26QgzXBHBe64BO/RHOJKzmF/Dxb4y4f9PKyJdwm/O/AhNkb+Q==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-popper": "1.1.3", - "@radix-ui/react-portal": "1.0.4", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1" + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-popper": "1.2.7", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4099,16 +4210,16 @@ } }, "node_modules/@radix-ui/react-id": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", - "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", + "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "1.0.1" + "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4117,18 +4228,18 @@ } }, "node_modules/@radix-ui/react-label": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.0.2.tgz", - "integrity": "sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.7.tgz", + "integrity": "sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" + "@radix-ui/react-primitive": "2.1.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4140,35 +4251,35 @@ } }, "node_modules/@radix-ui/react-menu": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.0.6.tgz", - "integrity": "sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==", + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.15.tgz", + "integrity": "sha512-tVlmA3Vb9n8SZSd+YSbuFR66l87Wiy4du+YE+0hzKQEANA+7cWKH1WgqcEX4pXqxUFQKrWQGHdvEfw00TjFiew==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-focus-guards": "1.0.1", - "@radix-ui/react-focus-scope": "1.0.4", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-popper": "1.1.3", - "@radix-ui/react-portal": "1.0.4", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-roving-focus": "1.0.4", - "@radix-ui/react-slot": "1.0.2", - "@radix-ui/react-use-callback-ref": "1.0.1", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.5" + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-focus-guards": "1.1.2", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.7", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.10", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4180,27 +4291,27 @@ } }, "node_modules/@radix-ui/react-menubar": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menubar/-/react-menubar-1.0.4.tgz", - "integrity": "sha512-bHgUo9gayKZfaQcWSSLr++LyS0rgh+MvD89DE4fJ6TkGHvjHgPaBZf44hdka7ogOxIOdj9163J+5xL2Dn4qzzg==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menubar/-/react-menubar-1.1.15.tgz", + "integrity": "sha512-Z71C7LGD+YDYo3TV81paUs8f3Zbmkvg6VLRQpKYfzioOE6n7fOhA3ApK/V/2Odolxjoc4ENk8AYCjohCNayd5A==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-menu": "2.0.6", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-roving-focus": "1.0.4", - "@radix-ui/react-use-controllable-state": "1.0.1" + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-menu": "2.1.15", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.10", + "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4212,31 +4323,31 @@ } }, "node_modules/@radix-ui/react-navigation-menu": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.1.4.tgz", - "integrity": "sha512-Cc+seCS3PmWmjI51ufGG7zp1cAAIRqHVw7C9LOA2TZ+R4hG6rDvHcTqIsEEFLmZO3zNVH72jOOE7kKNy8W+RtA==", + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.13.tgz", + "integrity": "sha512-WG8wWfDiJlSF5hELjwfjSGOXcBR/ZMhBFCGYe8vERpC39CQYZeq1PQ2kaYHdye3V95d06H89KGMsVCIE4LWo3g==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1", - "@radix-ui/react-use-previous": "1.0.1", - "@radix-ui/react-visually-hidden": "1.0.3" + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4248,32 +4359,32 @@ } }, "node_modules/@radix-ui/react-popover": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.0.7.tgz", - "integrity": "sha512-shtvVnlsxT6faMnK/a7n0wptwBD23xc1Z5mdrtKLwVEfsEMXodS0r5s0/g5P0hX//EKYZS2sxUjqfzlg52ZSnQ==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.14.tgz", + "integrity": "sha512-ODz16+1iIbGUfFEfKx2HTPKizg2MN39uIOV8MXeHnmdd3i/N9Wt7vU46wbHsqA0xoaQyXVcs0KIlBdOA2Y95bw==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-focus-guards": "1.0.1", - "@radix-ui/react-focus-scope": "1.0.4", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-popper": "1.1.3", - "@radix-ui/react-portal": "1.0.4", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2", - "@radix-ui/react-use-controllable-state": "1.0.1", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.5" + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-focus-guards": "1.1.2", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.7", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4285,27 +4396,27 @@ } }, "node_modules/@radix-ui/react-popper": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.1.3.tgz", - "integrity": "sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.7.tgz", + "integrity": "sha512-IUFAccz1JyKcf/RjB552PlWwxjeCJB8/4KxT7EhBHOJM+mN7LdW+B3kacJXILm32xawcMMjb2i0cIZpo+f9kiQ==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1", - "@radix-ui/react-use-rect": "1.0.1", - "@radix-ui/react-use-size": "1.0.1", - "@radix-ui/rect": "1.0.1" + "@radix-ui/react-arrow": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-rect": "1.1.1", + "@radix-ui/react-use-size": "1.1.1", + "@radix-ui/rect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4317,18 +4428,19 @@ } }, "node_modules/@radix-ui/react-portal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.4.tgz", - "integrity": "sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", + "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4340,19 +4452,19 @@ } }, "node_modules/@radix-ui/react-presence": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", - "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.4.tgz", + "integrity": "sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1" + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4364,18 +4476,18 @@ } }, "node_modules/@radix-ui/react-primitive": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", - "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "1.0.2" + "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4387,19 +4499,19 @@ } }, "node_modules/@radix-ui/react-progress": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.0.3.tgz", - "integrity": "sha512-5G6Om/tYSxjSeEdrb1VfKkfZfn/1IlPWd731h2RfPuSbIfNUgfqAwbKfJCg/PP6nuUCTrYzalwHSpSinoWoCag==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.7.tgz", + "integrity": "sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-primitive": "1.0.3" + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4411,27 +4523,27 @@ } }, "node_modules/@radix-ui/react-radio-group": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.1.3.tgz", - "integrity": "sha512-x+yELayyefNeKeTx4fjK6j99Fs6c4qKm3aY38G3swQVTN6xMpsrbigC0uHs2L//g8q4qR7qOcww8430jJmi2ag==", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.3.7.tgz", + "integrity": "sha512-9w5XhD0KPOrm92OTTE0SysH3sYzHsSTHNvZgUBo/VZ80VdYyB5RneDbc0dKpURS24IxkoFRu/hI0i4XyfFwY6g==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-roving-focus": "1.0.4", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-use-previous": "1.0.1", - "@radix-ui/react-use-size": "1.0.1" + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.10", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4443,26 +4555,26 @@ } }, "node_modules/@radix-ui/react-roving-focus": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.0.4.tgz", - "integrity": "sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.10.tgz", + "integrity": "sha512-dT9aOXUen9JSsxnMPv/0VqySQf5eDQ6LCk5Sw28kamz8wSOW2bJdlX2Bg5VUIIcV+6XlHpWTIuTPCf/UNIyq8Q==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-controllable-state": "1.0.1" + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4474,26 +4586,26 @@ } }, "node_modules/@radix-ui/react-scroll-area": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.0.5.tgz", - "integrity": "sha512-b6PAgH4GQf9QEn8zbT2XUHpW5z8BzqEc7Kl11TwDrvuTrxlkcjTD5qa/bxgKr+nmuXKu4L/W5UZ4mlP/VG/5Gw==", + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.9.tgz", + "integrity": "sha512-YSjEfBXnhUELsO2VzjdtYYD4CfQjvao+lhhrX5XsHD7/cyUNzljF1FHEbgTPN7LH2MClfwRMIsYlqTYpKTTe2A==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/number": "1.0.1", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1" + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4505,38 +4617,38 @@ } }, "node_modules/@radix-ui/react-select": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.0.0.tgz", - "integrity": "sha512-RH5b7af4oHtkcHS7pG6Sgv5rk5Wxa7XI8W5gvB1N/yiuDGZxko1ynvOiVhFM7Cis2A8zxF9bTOUVbRDzPepe6w==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.5.tgz", + "integrity": "sha512-HnMTdXEVuuyzx63ME0ut4+sEMYW6oouHWNGUZc7ddvUWIcfCva/AMoqEW/3wnEllriMWBa0RHspCYnfCWJQYmA==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/number": "1.0.1", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-focus-guards": "1.0.1", - "@radix-ui/react-focus-scope": "1.0.4", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-popper": "1.1.3", - "@radix-ui/react-portal": "1.0.4", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1", - "@radix-ui/react-use-previous": "1.0.1", - "@radix-ui/react-visually-hidden": "1.0.3", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.5" + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-focus-guards": "1.1.2", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.7", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4548,18 +4660,18 @@ } }, "node_modules/@radix-ui/react-separator": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.0.3.tgz", - "integrity": "sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.7.tgz", + "integrity": "sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" + "@radix-ui/react-primitive": "2.1.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4571,28 +4683,28 @@ } }, "node_modules/@radix-ui/react-slider": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.1.2.tgz", - "integrity": "sha512-NKs15MJylfzVsCagVSWKhGGLNR1W9qWs+HtgbmjjVUB3B9+lb3PYoXxVju3kOrpf0VKyVCtZp+iTwVoqpa1Chw==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.3.5.tgz", + "integrity": "sha512-rkfe2pU2NBAYfGaxa3Mqosi7VZEWX5CxKaanRv0vZd4Zhl9fvQrg0VM93dv3xGLGfrHuoTRF3JXH8nb9g+B3fw==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/number": "1.0.1", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1", - "@radix-ui/react-use-previous": "1.0.1", - "@radix-ui/react-use-size": "1.0.1" + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4604,16 +4716,16 @@ } }, "node_modules/@radix-ui/react-slot": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", - "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1" + "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4622,24 +4734,24 @@ } }, "node_modules/@radix-ui/react-switch": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.0.3.tgz", - "integrity": "sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.2.5.tgz", + "integrity": "sha512-5ijLkak6ZMylXsaImpZ8u4Rlf5grRmoc0p0QeX9VJtlrM4f5m3nCTX8tWga/zOA8PZYIR/t0p2Mnvd7InrJ6yQ==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-use-previous": "1.0.1", - "@radix-ui/react-use-size": "1.0.1" + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4651,25 +4763,25 @@ } }, "node_modules/@radix-ui/react-tabs": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.0.4.tgz", - "integrity": "sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.12.tgz", + "integrity": "sha512-GTVAlRVrQrSw3cEARM0nAx73ixrWDPNZAruETn3oHCNP6SbZ/hNxdxp+u7VkIEv3/sFoLq1PfcHrl7Pnp0CDpw==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-roving-focus": "1.0.4", - "@radix-ui/react-use-controllable-state": "1.0.1" + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.10", + "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4681,29 +4793,29 @@ } }, "node_modules/@radix-ui/react-toast": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.1.5.tgz", - "integrity": "sha512-fRLn227WHIBRSzuRzGJ8W+5YALxofH23y0MlPLddaIpLpCDqdE0NZlS2NRQDRiptfxDeeCjgFIpexB1/zkxDlw==", + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.14.tgz", + "integrity": "sha512-nAP5FBxBJGQ/YfUB+r+O6USFVkWq3gAInkxyEnmvEV5jtSbfDhfa4hwX8CraCnbjMLsE7XSf/K75l9xXY7joWg==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-portal": "1.0.4", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1", - "@radix-ui/react-visually-hidden": "1.0.3" + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-visually-hidden": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4715,20 +4827,20 @@ } }, "node_modules/@radix-ui/react-toggle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.0.3.tgz", - "integrity": "sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.9.tgz", + "integrity": "sha512-ZoFkBBz9zv9GWer7wIjvdRxmh2wyc2oKWw6C6CseWd6/yq1DK/l5lJ+wnsmFwJZbBYqr02mrf8A2q/CVCuM3ZA==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1" + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4740,24 +4852,24 @@ } }, "node_modules/@radix-ui/react-toggle-group": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.0.4.tgz", - "integrity": "sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.10.tgz", + "integrity": "sha512-kiU694Km3WFLTC75DdqgM/3Jauf3rD9wxeS9XtyWFKsBUeZA337lC+6uUazT7I1DhanZ5gyD5Stf8uf2dbQxOQ==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-roving-focus": "1.0.4", - "@radix-ui/react-toggle": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1" + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.10", + "@radix-ui/react-toggle": "1.1.9", + "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4769,29 +4881,29 @@ } }, "node_modules/@radix-ui/react-tooltip": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.0.7.tgz", - "integrity": "sha512-lPh5iKNFVQ/jav/j6ZrWq3blfDJ0OH9R6FlNUHPMqdLuQ9vwDgFsRxvl8b7Asuy5c8xmoojHUxKHQSOAvMHxyw==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.7.tgz", + "integrity": "sha512-Ap+fNYwKTYJ9pzqW+Xe2HtMRbQ/EeWkj2qykZ6SuEV4iS/o1bZI5ssJbk4D2r8XuDuOBVz/tIx2JObtuqU+5Zw==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-popper": "1.1.3", - "@radix-ui/react-portal": "1.0.4", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-visually-hidden": "1.0.3" + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.10", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.7", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.4", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-visually-hidden": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4803,15 +4915,32 @@ } }, "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", - "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", + "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", + "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10" + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4819,17 +4948,17 @@ } } }, - "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", - "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", + "node_modules/@radix-ui/react-use-effect-event": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", + "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-callback-ref": "1.0.1" + "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4838,16 +4967,16 @@ } }, "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", - "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", + "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-callback-ref": "1.0.1" + "@radix-ui/react-use-callback-ref": "1.1.1" }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4855,16 +4984,17 @@ } } }, - "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", - "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", + "node_modules/@radix-ui/react-use-is-hydrated": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.0.tgz", + "integrity": "sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10" + "use-sync-external-store": "^1.5.0" }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4872,16 +5002,29 @@ } } }, - "node_modules/@radix-ui/react-use-previous": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.0.1.tgz", - "integrity": "sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==", - "dependencies": { - "@babel/runtime": "^7.13.10" + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", + "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", + "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", + "license": "MIT", "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4890,16 +5033,16 @@ } }, "node_modules/@radix-ui/react-use-rect": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.0.1.tgz", - "integrity": "sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", + "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/rect": "1.0.1" + "@radix-ui/rect": "1.1.1" }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4908,16 +5051,16 @@ } }, "node_modules/@radix-ui/react-use-size": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.0.1.tgz", - "integrity": "sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", + "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "1.0.1" + "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4926,18 +5069,18 @@ } }, "node_modules/@radix-ui/react-visually-hidden": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.3.tgz", - "integrity": "sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz", + "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" + "@radix-ui/react-primitive": "2.1.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -4949,17 +5092,16 @@ } }, "node_modules/@radix-ui/rect": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.0.1.tgz", - "integrity": "sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==", - "dependencies": { - "@babel/runtime": "^7.13.10" - } + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", + "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", + "license": "MIT" }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.10.4", "@rollup/pluginutils": "^3.1.0" @@ -4982,6 +5124,7 @@ "version": "11.2.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^3.1.0", "@types/resolve": "1.17.1", @@ -5001,6 +5144,7 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "license": "MIT", "dependencies": { "@rollup/pluginutils": "^3.1.0", "magic-string": "^0.25.7" @@ -5013,6 +5157,7 @@ "version": "0.25.9", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "license": "MIT", "dependencies": { "sourcemap-codec": "^1.4.8" } @@ -5021,6 +5166,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "license": "MIT", "dependencies": { "@types/estree": "0.0.39", "estree-walker": "^1.0.1", @@ -5036,30 +5182,42 @@ "node_modules/@rollup/pluginutils/node_modules/@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "license": "MIT" }, "node_modules/@rollup/pluginutils/node_modules/estree-walker": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "license": "MIT" + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" }, "node_modules/@rushstack/eslint-patch": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.7.0.tgz", - "integrity": "sha512-Jh4t/593gxs0lJZ/z3NnasKlplXT2f+4y/LZYuaKZW5KAaiVFL/fThhs+17EbUd53jUVJ0QudYCBGbN/psvaqg==", - "dev": true + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.12.0.tgz", + "integrity": "sha512-5EwMtOqvJMMa3HbmxLlF74e+3/HhwBTMcvt3nqVJgGCozO6hzIPOBlwm8mGVNR9SN2IJpxSnlxczyDjcn7qIyw==", + "dev": true, + "license": "MIT" }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "type-detect": "4.0.8" } @@ -5069,22 +5227,25 @@ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^3.0.0" } }, - "node_modules/@supabase/functions-js": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.1.5.tgz", - "integrity": "sha512-BNzC5XhCzzCaggJ8s53DP+WeHHGT/NfTsx2wUSSGKR2/ikLFQTBCDzMvGz/PxYMqRko/LwncQtKXGOYp1PkPaw==", + "node_modules/@supabase/auth-js": { + "version": "2.71.1", + "resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.71.1.tgz", + "integrity": "sha512-mMIQHBRc+SKpZFRB2qtupuzulaUhFYupNyxqDj5Jp/LyPvcWvjaJzZzObv6URtL/O6lPxkanASnotGtNpS3H2Q==", + "license": "MIT", "dependencies": { "@supabase/node-fetch": "^2.6.14" } }, - "node_modules/@supabase/gotrue-js": { - "version": "2.62.2", - "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-2.62.2.tgz", - "integrity": "sha512-AP6e6W9rQXFTEJ7sTTNYQrNf0LCcnt1hUW+RIgUK+Uh3jbWvcIST7wAlYyNZiMlS9+PYyymWQ+Ykz/rOYSO0+A==", + "node_modules/@supabase/functions-js": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.4.5.tgz", + "integrity": "sha512-v5GSqb9zbosquTo6gBwIiq7W9eQ7rE5QazsK/ezNiQXdCbY+bH8D9qEaBIkhVvX4ZRW5rP03gEfw5yw9tiq4EQ==", + "license": "MIT", "dependencies": { "@supabase/node-fetch": "^2.6.14" } @@ -5093,6 +5254,7 @@ "version": "2.6.15", "resolved": "https://registry.npmjs.org/@supabase/node-fetch/-/node-fetch-2.6.15.tgz", "integrity": "sha512-1ibVeYUacxWYi9i0cf5efil6adJ9WRyZBLivgjs+AUpewx1F3xPi7gLgaASI2SmIQxPoCEjAsLAzKPgMJVgOUQ==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -5101,28 +5263,31 @@ } }, "node_modules/@supabase/postgrest-js": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.9.2.tgz", - "integrity": "sha512-I6yHo8CC9cxhOo6DouDMy9uOfW7hjdsnCxZiaJuIVZm1dBGTFiQPgfMa9zXCamEWzNyWRjZvupAUuX+tqcl5Sw==", + "version": "1.19.4", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.19.4.tgz", + "integrity": "sha512-O4soKqKtZIW3olqmbXXbKugUtByD2jPa8kL2m2c1oozAO11uCcGrRhkZL0kVxjBLrXHE0mdSkFsMj7jDSfyNpw==", + "license": "MIT", "dependencies": { "@supabase/node-fetch": "^2.6.14" } }, "node_modules/@supabase/realtime-js": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.9.3.tgz", - "integrity": "sha512-lAp50s2n3FhGJFq+wTSXLNIDPw5Y0Wxrgt44eM5nLSA3jZNUUP3Oq2Ccd1CbZdVntPCWLZvJaU//pAd2NE+QnQ==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.15.0.tgz", + "integrity": "sha512-SEIWApsxyoAe68WU2/5PCCuBwa11LL4Bb8K3r2FHCt3ROpaTthmDiWEhnLMGayP05N4QeYrMk0kyTZOwid/Hjw==", + "license": "MIT", "dependencies": { - "@supabase/node-fetch": "^2.6.14", - "@types/phoenix": "^1.5.4", - "@types/ws": "^8.5.10", - "ws": "^8.14.2" + "@supabase/node-fetch": "^2.6.13", + "@types/phoenix": "^1.6.6", + "@types/ws": "^8.18.1", + "ws": "^8.18.2" } }, "node_modules/@supabase/ssr": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/@supabase/ssr/-/ssr-0.0.10.tgz", "integrity": "sha512-eVs7+bNlff8Fd79x8K3Jbfpmf8P8QRA1Z6rUDN+fi4ReWvRBZyWOFfR6eqlsX6vTjvGgTiEqujFSkv2PYW5kbQ==", + "license": "MIT", "dependencies": { "cookie": "^0.5.0", "ramda": "^0.29.0" @@ -5132,30 +5297,33 @@ } }, "node_modules/@supabase/storage-js": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.5.5.tgz", - "integrity": "sha512-OpLoDRjFwClwc2cjTJZG8XviTiQH4Ik8sCiMK5v7et0MDu2QlXjCAW3ljxJB5+z/KazdMOTnySi+hysxWUPu3w==", + "version": "2.10.4", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.10.4.tgz", + "integrity": "sha512-cvL02GarJVFcNoWe36VBybQqTVRq6wQSOCvTS64C+eyuxOruFIm1utZAY0xi2qKtHJO3EjKaj8iWJKySusDmAQ==", + "license": "MIT", "dependencies": { "@supabase/node-fetch": "^2.6.14" } }, "node_modules/@supabase/supabase-js": { - "version": "2.39.3", - "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.39.3.tgz", - "integrity": "sha512-NoltJSaJNKDJNutO5sJPAAi5RIWrn1z2XH+ig1+cHDojT6BTN7TvZPNa3Kq3gFQWfO5H1N9El/bCTZJ3iFW2kQ==", + "version": "2.54.0", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.54.0.tgz", + "integrity": "sha512-DLw83YwBfAaFiL3oWV26+sHRdeCGtxmIKccjh/Pndze3BWM4fZghzYKhk3ElOQU8Bluq4AkkCJ5bM5Szl/sfRg==", + "license": "MIT", "dependencies": { - "@supabase/functions-js": "^2.1.5", - "@supabase/gotrue-js": "^2.60.0", - "@supabase/node-fetch": "^2.6.14", - "@supabase/postgrest-js": "^1.9.0", - "@supabase/realtime-js": "^2.9.3", - "@supabase/storage-js": "^2.5.4" + "@supabase/auth-js": "2.71.1", + "@supabase/functions-js": "2.4.5", + "@supabase/node-fetch": "2.6.15", + "@supabase/postgrest-js": "1.19.4", + "@supabase/realtime-js": "2.15.0", + "@supabase/storage-js": "^2.10.4" } }, "node_modules/@surma/rollup-plugin-off-main-thread": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "license": "Apache-2.0", "dependencies": { "ejs": "^3.1.6", "json5": "^2.2.0", @@ -5167,6 +5335,7 @@ "version": "0.25.9", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "license": "MIT", "dependencies": { "sourcemap-codec": "^1.4.8" } @@ -5188,20 +5357,22 @@ } }, "node_modules/@tabler/icons": { - "version": "2.46.0", - "resolved": "https://registry.npmjs.org/@tabler/icons/-/icons-2.46.0.tgz", - "integrity": "sha512-Q5G8Pj5IO+Uhc6pszpu5/hGYY018JwEzzvmuqr+gKJtfIvAHA3umpwUilMRLEy89p+WCP+YsDhicMhfBCCv1qA==", + "version": "2.47.0", + "resolved": "https://registry.npmjs.org/@tabler/icons/-/icons-2.47.0.tgz", + "integrity": "sha512-4w5evLh+7FUUiA1GucvGj2ReX2TvOjEr4ejXdwL/bsjoSkof6r1gQmzqI+VHrE2CpJpB3al7bCTulOkFa/RcyA==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/codecalm" } }, "node_modules/@tabler/icons-react": { - "version": "2.46.0", - "resolved": "https://registry.npmjs.org/@tabler/icons-react/-/icons-react-2.46.0.tgz", - "integrity": "sha512-X8MRxuslIOFqMjAo+GvUZDpjlOwNYNJTuOsHXf/NBvVI6ygqUf0FUNsDLLA5fQ6k6KtRwxMlgGB+eR8ZG1UP0g==", + "version": "2.47.0", + "resolved": "https://registry.npmjs.org/@tabler/icons-react/-/icons-react-2.47.0.tgz", + "integrity": "sha512-iqly2FvCF/qUbgmvS8E40rVeYY7laltc5GUjRxQj59DuX0x/6CpKHTXt86YlI2whg4czvd/c8Ce8YR08uEku0g==", + "license": "MIT", "dependencies": { - "@tabler/icons": "2.46.0", + "@tabler/icons": "2.47.0", "prop-types": "^15.7.2" }, "funding": { @@ -5213,10 +5384,11 @@ } }, "node_modules/@tailwindcss/typography": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz", - "integrity": "sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==", + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.16.tgz", + "integrity": "sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==", "dev": true, + "license": "MIT", "dependencies": { "lodash.castarray": "^4.4.0", "lodash.isplainobject": "^4.0.6", @@ -5224,7 +5396,7 @@ "postcss-selector-parser": "6.0.10" }, "peerDependencies": { - "tailwindcss": ">=3.0.0 || insiders" + "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" } }, "node_modules/@testing-library/dom": { @@ -5232,6 +5404,7 @@ "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -5251,78 +5424,45 @@ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "deep-equal": "^2.0.5" } }, - "node_modules/@testing-library/dom/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/@testing-library/dom/node_modules/dom-accessibility-api": { "version": "0.5.16", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@testing-library/jest-dom": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.2.0.tgz", - "integrity": "sha512-+BVQlJ9cmEn5RDMUS8c2+TU6giLvzaHZ8sU/x0Jj7fk+6/46wPdwlgOPcpxS17CjcanBi/3VmGMqVr2rmbUmNw==", + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.6.4.tgz", + "integrity": "sha512-xDXgLjVunjHqczScfkCJ9iyjdNOVHvvCdqHSSxwM9L0l/wHkTRum67SDc020uAlCoqktJplgO2AAQeLP1wgqDQ==", "dev": true, + "license": "MIT", "dependencies": { - "@adobe/css-tools": "^4.3.2", - "@babel/runtime": "^7.9.2", + "@adobe/css-tools": "^4.4.0", "aria-query": "^5.0.0", - "chalk": "^3.0.0", "css.escape": "^1.5.1", "dom-accessibility-api": "^0.6.3", - "lodash": "^4.17.15", + "lodash": "^4.17.21", + "picocolors": "^1.1.1", "redent": "^3.0.0" }, "engines": { "node": ">=14", "npm": ">=6", "yarn": ">=1" - }, - "peerDependencies": { - "@jest/globals": ">= 28", - "@types/jest": ">= 28", - "jest": ">= 28", - "vitest": ">= 0.32" - }, - "peerDependenciesMeta": { - "@jest/globals": { - "optional": true - }, - "@types/jest": { - "optional": true - }, - "jest": { - "optional": true - }, - "vitest": { - "optional": true - } } }, "node_modules/@testing-library/react": { - "version": "14.1.2", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-14.1.2.tgz", - "integrity": "sha512-z4p7DVBTPjKM5qDZ0t5ZjzkpSNb+fZy1u6bzO7kk8oeGagpPCAtgh4cx1syrfp7a+QWkM021jGqjJaxJJnXAZg==", + "version": "14.3.1", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-14.3.1.tgz", + "integrity": "sha512-H99XjUhWQw0lTgyMN05W3xQG1Nh4lq574D8keFf1dDoNTJgp66VbJozRaczoF+wsiaPJNt/TcnfpLGufGxSrZQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.5", "@testing-library/dom": "^9.0.0", @@ -5340,45 +5480,64 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "devOptional": true, + "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node12": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node14": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@tsconfig/node16": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.0.tgz", + "integrity": "sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } }, "node_modules/@types/aria-query": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "devOptional": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -5388,10 +5547,11 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", "devOptional": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" } @@ -5401,32 +5561,36 @@ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "devOptional": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", - "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", "devOptional": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.20.7" + "@babel/types": "^7.28.2" } }, "node_modules/@types/debug": { "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", "dependencies": { "@types/ms": "*" } }, "node_modules/@types/eslint": { - "version": "8.56.2", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.2.tgz", - "integrity": "sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "license": "MIT", "peer": true, "dependencies": { "@types/estree": "*", @@ -5437,6 +5601,7 @@ "version": "3.7.7", "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "license": "MIT", "peer": true, "dependencies": { "@types/eslint": "*", @@ -5450,9 +5615,10 @@ "license": "MIT" }, "node_modules/@types/estree-jsx": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.3.tgz", - "integrity": "sha512-pvQ+TKeRHeiUGRhvYwRrQ/ISnohKkSJR14fT2yqyZ4e9K5vqc7hrtY2Y1Dw0ZwAzQ6DQsxsaCUuSIIi8v0Cq6w==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "license": "MIT", "dependencies": { "@types/estree": "*" } @@ -5461,6 +5627,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "license": "MIT", "dependencies": { "@types/minimatch": "*", "@types/node": "*" @@ -5471,14 +5638,16 @@ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/hast": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.3.tgz", - "integrity": "sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", "dependencies": { "@types/unist": "*" } @@ -5487,13 +5656,15 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" } @@ -5503,15 +5674,17 @@ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" } }, "node_modules/@types/jest": { - "version": "29.5.11", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.11.tgz", - "integrity": "sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ==", + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", "dev": true, + "license": "MIT", "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" @@ -5522,6 +5695,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -5534,6 +5708,7 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -5544,16 +5719,18 @@ } }, "node_modules/@types/jest/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" }, "node_modules/@types/jsdom": { "version": "20.0.1", "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "@types/tough-cookie": "*", @@ -5563,28 +5740,33 @@ "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/katex": { "version": "0.16.7", "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz", - "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==" + "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==", + "license": "MIT" }, "node_modules/@types/long": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==", + "license": "MIT" }, "node_modules/@types/mdast": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz", - "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", "dependencies": { "@types/unist": "*" } @@ -5592,70 +5774,82 @@ "node_modules/@types/minimatch": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==" + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "license": "MIT" }, "node_modules/@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" }, "node_modules/@types/node": { - "version": "20.11.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.5.tgz", - "integrity": "sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==", + "version": "20.19.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.10.tgz", + "integrity": "sha512-iAFpG6DokED3roLSP0K+ybeDdIX6Bc0Vd3mLW5uDqThPWtNos3E+EqOM11mPQHKzfWHqEBuLjIlsBQQ8CsISmQ==", + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.21.0" } }, "node_modules/@types/node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", + "version": "2.6.13", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.13.tgz", + "integrity": "sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==", + "license": "MIT", "dependencies": { "@types/node": "*", - "form-data": "^4.0.0" + "form-data": "^4.0.4" } }, "node_modules/@types/pdf-parse": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@types/pdf-parse/-/pdf-parse-1.1.4.tgz", - "integrity": "sha512-+gbBHbNCVGGYw1S9lAIIvrHW47UYOhMIFUsJcMkMrzy1Jf0vulBN3XQIjPgnoOXveMuHnF3b57fXROnY/Or7eg==", - "dev": true + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@types/pdf-parse/-/pdf-parse-1.1.5.tgz", + "integrity": "sha512-kBfrSXsloMnUJOKi25s3+hRmkycHfLK6A09eRGqF/N8BkQoPUmaCr+q8Cli5FnfohEz/rsv82zAiPz/LXtOGhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } }, "node_modules/@types/phoenix": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.6.4.tgz", - "integrity": "sha512-B34A7uot1Cv0XtaHRYDATltAdKx0BvVKNgYNqE4WjtPUa4VQJM7kxeXcVKaH+KS+kCmZ+6w+QaUdcljiheiBJA==" + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.6.6.tgz", + "integrity": "sha512-PIzZZlEppgrpoT2QgbnDU+MMzuR6BbCjllj0bM70lWoejMeNJAxCchxnv7J3XFkI8MpygtRpzXrIlmWUBclP5A==", + "license": "MIT" }, "node_modules/@types/prop-types": { - "version": "15.7.11", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", - "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "license": "MIT" }, "node_modules/@types/react": { - "version": "18.2.48", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.48.tgz", - "integrity": "sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w==", + "version": "18.3.23", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz", + "integrity": "sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==", + "license": "MIT", "dependencies": { "@types/prop-types": "*", - "@types/scheduler": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.2.18", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.18.tgz", - "integrity": "sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==", + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", "devOptional": true, - "dependencies": { - "@types/react": "*" + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" } }, "node_modules/@types/react-syntax-highlighter": { - "version": "15.5.11", - "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.11.tgz", - "integrity": "sha512-ZqIJl+Pg8kD+47kxUjvrlElrraSUrYa4h0dauY/U/FTUuprSCqvUj+9PNQNQzVc6AJgIWUUxn87/gqsMHNbRjw==", + "version": "15.5.13", + "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.13.tgz", + "integrity": "sha512-uLGJ87j6Sz8UaBAooU0T6lWJ0dBmjZgN1PZTrj05TNql2/XpC6+4HhMT5syIdFUUt+FASfCeLLv4kBygNU+8qA==", "dev": true, + "license": "MIT", "dependencies": { "@types/react": "*" } @@ -5664,6 +5858,7 @@ "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -5671,53 +5866,56 @@ "node_modules/@types/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" - }, - "node_modules/@types/scheduler": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "license": "MIT" }, "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/tough-cookie": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/trusted-types": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT" }, "node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" }, "node_modules/@types/uuid": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.7.tgz", - "integrity": "sha512-WUtIVRUZ9i5dYXefDEAI7sh9/O7jGvHg7Df/5O/gtH3Yabe5odI3UWopVR1qbPXQtvOxWu3mM4XxlYeZtMWF4g==" + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", + "license": "MIT" }, "node_modules/@types/ws": { - "version": "8.5.10", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", - "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "dev": true, + "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } @@ -5726,60 +5924,164 @@ "version": "21.0.3", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.39.0.tgz", + "integrity": "sha512-bhEz6OZeUR+O/6yx9Jk6ohX6H9JSFTaiY0v9/PuKT3oGK0rn0jNplLmyFUGV+a9gfYnVNwGDwS/UkLIuXNb2Rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.39.0", + "@typescript-eslint/type-utils": "8.39.0", + "@typescript-eslint/utils": "8.39.0", + "@typescript-eslint/visitor-keys": "8.39.0", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.39.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } }, "node_modules/@typescript-eslint/parser": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.19.0.tgz", - "integrity": "sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.39.0.tgz", + "integrity": "sha512-g3WpVQHngx0aLXn6kfIYCZxM6rRJlWzEkVpqEFLT3SgEDsp9cpCbxxgwnE504q4H+ruSDh/VGS6nqZIDynP+vg==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "6.19.0", - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/typescript-estree": "6.19.0", - "@typescript-eslint/visitor-keys": "6.19.0", + "@typescript-eslint/scope-manager": "8.39.0", + "@typescript-eslint/types": "8.39.0", + "@typescript-eslint/typescript-estree": "8.39.0", + "@typescript-eslint/visitor-keys": "8.39.0", "debug": "^4.3.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.39.0.tgz", + "integrity": "sha512-CTzJqaSq30V/Z2Og9jogzZt8lJRR5TKlAdXmWgdu4hgcC9Kww5flQ+xFvMxIBWVNdxJO7OifgdOK4PokMIWPew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.39.0", + "@typescript-eslint/types": "^8.39.0", + "debug": "^4.3.4" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz", - "integrity": "sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.39.0.tgz", + "integrity": "sha512-8QOzff9UKxOh6npZQ/4FQu4mjdOCGSdO3p44ww0hk8Vu+IGbg0tB/H1LcTARRDzGCC8pDGbh2rissBuuoPgH8A==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/visitor-keys": "6.19.0" + "@typescript-eslint/types": "8.39.0", + "@typescript-eslint/visitor-keys": "8.39.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.39.0.tgz", + "integrity": "sha512-Fd3/QjmFV2sKmvv3Mrj8r6N8CryYiCS8Wdb/6/rgOXAWGcFuc+VkQuG28uk/4kVNVZBQuuDHEDUpo/pQ32zsIQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.39.0.tgz", + "integrity": "sha512-6B3z0c1DXVT2vYA9+z9axjtc09rqKUPRmijD5m9iv8iQpHBRYRMBcgxSiKTZKm6FwWw1/cI4v6em35OsKCiN5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.39.0", + "@typescript-eslint/typescript-estree": "8.39.0", + "@typescript-eslint/utils": "8.39.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, "node_modules/@typescript-eslint/types": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.0.tgz", - "integrity": "sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.39.0.tgz", + "integrity": "sha512-ArDdaOllnCj3yn/lzKn9s0pBQYmmyme/v1HbGIGB0GB/knFI3fWMHloC+oYTJW46tVbYnGKTMDK4ah1sC2v0Kg==", "dev": true, + "license": "MIT", "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -5787,31 +6089,32 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz", - "integrity": "sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.39.0.tgz", + "integrity": "sha512-ndWdiflRMvfIgQRpckQQLiB5qAKQ7w++V4LlCHwp62eym1HLB/kw7D9f2e8ytONls/jt89TEasgvb+VwnRprsw==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.19.0", - "@typescript-eslint/visitor-keys": "6.19.0", + "@typescript-eslint/project-service": "8.39.0", + "@typescript-eslint/tsconfig-utils": "8.39.0", + "@typescript-eslint/types": "8.39.0", + "@typescript-eslint/visitor-keys": "8.39.0", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { @@ -5825,10 +6128,11 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -5839,40 +6143,393 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@typescript-eslint/utils": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.39.0.tgz", + "integrity": "sha512-4GVSvNA0Vx1Ktwvf4sFE+exxJ3QGUorQG1/A5mRfRNZtkBT2xrA/BCO2H0eALx/PnvCS6/vmYwRdDA41EoffkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.39.0", + "@typescript-eslint/types": "8.39.0", + "@typescript-eslint/typescript-estree": "8.39.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.19.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz", - "integrity": "sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==", + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.39.0.tgz", + "integrity": "sha512-ldgiJ+VAhQCfIjeOgu8Kj5nSxds0ktPOSO9p4+0VDH2R2pLvQraaM5Oen2d7NxzMCm+Sn/vJT+mv2H5u6b/3fA==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.19.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "8.39.0", + "eslint-visitor-keys": "^4.2.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@typespec/ts-http-runtime": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.0.tgz", + "integrity": "sha512-sOx1PKSuFwnIl7z4RN0Ls7N9AQawmR9r66eI5rFCzLDIs8HTIYrIpH9QjYWoX0lkgGrkLxXhi4QnK7MizPRrIg==", + "license": "MIT", + "dependencies": { + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" }, - "node_modules/@vercel/analytics": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-1.1.2.tgz", - "integrity": "sha512-CodhkLCQ/EHzjX8k+Qg+OzTBY0UadykrcfolfSOJVZZY/ZJM5nbhztm9KdbYvMfqKlasAr1+OYy0ThZnDA/MYA==", + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", + "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", + "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", + "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", + "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", + "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", + "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", + "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", + "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", + "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", + "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", + "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", + "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", + "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", + "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", + "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", + "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, "dependencies": { - "server-only": "^0.0.1" + "@napi-rs/wasm-runtime": "^0.2.11" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", + "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", + "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@vercel/analytics": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-1.5.0.tgz", + "integrity": "sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g==", + "license": "MPL-2.0", + "peerDependencies": { + "@remix-run/react": "^2", + "@sveltejs/kit": "^1 || ^2", + "next": ">= 13", + "react": "^18 || ^19 || ^19.0.0-rc", + "svelte": ">= 4", + "vue": "^3", + "vue-router": "^4" + }, + "peerDependenciesMeta": { + "@remix-run/react": { + "optional": true + }, + "@sveltejs/kit": { + "optional": true + }, + "next": { + "optional": true + }, + "react": { + "optional": true + }, + "svelte": { + "optional": true + }, + "vue": { + "optional": true + }, + "vue-router": { + "optional": true + } } }, "node_modules/@vercel/edge-config": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@vercel/edge-config/-/edge-config-0.4.1.tgz", "integrity": "sha512-4Mc3H7lE+x4RrL17nY8CWeEorvJHbkNbQTy9p8H1tO7y11WeKj5xeZSr07wNgfWInKXDUwj5FZ3qd/jIzjPxug==", + "license": "Apache-2.0", "dependencies": { "@vercel/edge-config-fs": "0.1.0" }, @@ -5883,117 +6540,143 @@ "node_modules/@vercel/edge-config-fs": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/@vercel/edge-config-fs/-/edge-config-fs-0.1.0.tgz", - "integrity": "sha512-NRIBwfcS0bUoUbRWlNGetqjvLSwgYH/BqKqDN7vK1g32p7dN96k0712COgaz6VFizAm9b0g6IG6hR6+hc0KCPg==" + "integrity": "sha512-NRIBwfcS0bUoUbRWlNGetqjvLSwgYH/BqKqDN7vK1g32p7dN96k0712COgaz6VFizAm9b0g6IG6hR6+hc0KCPg==", + "license": "Apache-2.0" }, "node_modules/@vue/compiler-core": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.15.tgz", - "integrity": "sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.18.tgz", + "integrity": "sha512-3slwjQrrV1TO8MoXgy3aynDQ7lslj5UqDxuHnrzHtpON5CBinhWjJETciPngpin/T3OuW3tXUf86tEurusnztw==", + "license": "MIT", "peer": true, "dependencies": { - "@babel/parser": "^7.23.6", - "@vue/shared": "3.4.15", + "@babel/parser": "^7.28.0", + "@vue/shared": "3.5.18", "entities": "^4.5.0", "estree-walker": "^2.0.2", - "source-map-js": "^1.0.2" + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-core/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/@vue/compiler-core/node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT", "peer": true }, "node_modules/@vue/compiler-dom": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.15.tgz", - "integrity": "sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.18.tgz", + "integrity": "sha512-RMbU6NTU70++B1JyVJbNbeFkK+A+Q7y9XKE2EM4NLGm2WFR8x9MbAtWxPPLdm0wUkuZv9trpwfSlL6tjdIa1+A==", + "license": "MIT", "peer": true, "dependencies": { - "@vue/compiler-core": "3.4.15", - "@vue/shared": "3.4.15" + "@vue/compiler-core": "3.5.18", + "@vue/shared": "3.5.18" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.15.tgz", - "integrity": "sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.18.tgz", + "integrity": "sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA==", + "license": "MIT", "peer": true, "dependencies": { - "@babel/parser": "^7.23.6", - "@vue/compiler-core": "3.4.15", - "@vue/compiler-dom": "3.4.15", - "@vue/compiler-ssr": "3.4.15", - "@vue/shared": "3.4.15", + "@babel/parser": "^7.28.0", + "@vue/compiler-core": "3.5.18", + "@vue/compiler-dom": "3.5.18", + "@vue/compiler-ssr": "3.5.18", + "@vue/shared": "3.5.18", "estree-walker": "^2.0.2", - "magic-string": "^0.30.5", - "postcss": "^8.4.33", - "source-map-js": "^1.0.2" + "magic-string": "^0.30.17", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" } }, "node_modules/@vue/compiler-sfc/node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT", "peer": true }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.15.tgz", - "integrity": "sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.18.tgz", + "integrity": "sha512-xM16Ak7rSWHkM3m22NlmcdIM+K4BMyFARAfV9hYFl+SFuRzrZ3uGMNW05kA5pmeMa0X9X963Kgou7ufdbpOP9g==", + "license": "MIT", "peer": true, "dependencies": { - "@vue/compiler-dom": "3.4.15", - "@vue/shared": "3.4.15" + "@vue/compiler-dom": "3.5.18", + "@vue/shared": "3.5.18" } }, "node_modules/@vue/reactivity": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.15.tgz", - "integrity": "sha512-55yJh2bsff20K5O84MxSvXKPHHt17I2EomHznvFiJCAZpJTNW8IuLj1xZWMLELRhBK3kkFV/1ErZGHJfah7i7w==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.18.tgz", + "integrity": "sha512-x0vPO5Imw+3sChLM5Y+B6G1zPjwdOri9e8V21NnTnlEvkxatHEH5B5KEAJcjuzQ7BsjGrKtfzuQ5eQwXh8HXBg==", + "license": "MIT", "peer": true, "dependencies": { - "@vue/shared": "3.4.15" + "@vue/shared": "3.5.18" } }, "node_modules/@vue/runtime-core": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.15.tgz", - "integrity": "sha512-6E3by5m6v1AkW0McCeAyhHTw+3y17YCOKG0U0HDKDscV4Hs0kgNT5G+GCHak16jKgcCDHpI9xe5NKb8sdLCLdw==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.18.tgz", + "integrity": "sha512-DUpHa1HpeOQEt6+3nheUfqVXRog2kivkXHUhoqJiKR33SO4x+a5uNOMkV487WPerQkL0vUuRvq/7JhRgLW3S+w==", + "license": "MIT", "peer": true, "dependencies": { - "@vue/reactivity": "3.4.15", - "@vue/shared": "3.4.15" + "@vue/reactivity": "3.5.18", + "@vue/shared": "3.5.18" } }, "node_modules/@vue/runtime-dom": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.15.tgz", - "integrity": "sha512-EVW8D6vfFVq3V/yDKNPBFkZKGMFSvZrUQmx196o/v2tHKdwWdiZjYUBS+0Ez3+ohRyF8Njwy/6FH5gYJ75liUw==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.18.tgz", + "integrity": "sha512-YwDj71iV05j4RnzZnZtGaXwPoUWeRsqinblgVJwR8XTXYZ9D5PbahHQgsbmzUvCWNF6x7siQ89HgnX5eWkr3mw==", + "license": "MIT", "peer": true, "dependencies": { - "@vue/runtime-core": "3.4.15", - "@vue/shared": "3.4.15", + "@vue/reactivity": "3.5.18", + "@vue/runtime-core": "3.5.18", + "@vue/shared": "3.5.18", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.15.tgz", - "integrity": "sha512-3HYzaidu9cHjrT+qGUuDhFYvF/j643bHC6uUN9BgM11DVy+pM6ATsG6uPBLnkwOgs7BpJABReLmpL3ZPAsUaqw==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.18.tgz", + "integrity": "sha512-PvIHLUoWgSbDG7zLHqSqaCoZvHi6NNmfVFOqO+OnwvqMz/tqQr3FuGWS8ufluNddk7ZLBJYMrjcw1c6XzR12mA==", + "license": "MIT", "peer": true, "dependencies": { - "@vue/compiler-ssr": "3.4.15", - "@vue/shared": "3.4.15" + "@vue/compiler-ssr": "3.5.18", + "@vue/shared": "3.5.18" }, "peerDependencies": { - "vue": "3.4.15" + "vue": "3.5.18" } }, "node_modules/@vue/shared": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.15.tgz", - "integrity": "sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.18.tgz", + "integrity": "sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA==", + "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/ast": { @@ -6158,11 +6841,12 @@ } }, "node_modules/@xenova/transformers": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/@xenova/transformers/-/transformers-2.14.0.tgz", - "integrity": "sha512-rQ3O7SW5EM64b6XFZGx3XQ2cfiroefxUwU9ShfSpEZyhd082GvwNJJKndxgaukse1hZP1JUDoT0DfjDiq4IZiw==", + "version": "2.17.2", + "resolved": "https://registry.npmjs.org/@xenova/transformers/-/transformers-2.17.2.tgz", + "integrity": "sha512-lZmHqzrVIkSvZdKZEx7IYY51TK0WDrC8eR0c5IMnBsO8di8are1zzw8BlLhyO2TklZKLN5UffNGs1IJwT6oOqQ==", + "license": "Apache-2.0", "dependencies": { - "@huggingface/jinja": "^0.1.0", + "@huggingface/jinja": "^0.2.2", "onnxruntime-web": "1.14.0", "sharp": "^0.32.0" }, @@ -6174,6 +6858,7 @@ "version": "0.8.10", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "license": "MIT", "engines": { "node": ">=10.0.0" } @@ -6197,12 +6882,14 @@ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", "deprecated": "Use your platform's native atob() and btoa() methods instead", - "devOptional": true + "devOptional": true, + "license": "BSD-3-Clause" }, "node_modules/abort-controller": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", "dependencies": { "event-target-shim": "^5.0.0" }, @@ -6227,44 +6914,62 @@ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", "devOptional": true, + "license": "MIT", "dependencies": { "acorn": "^8.1.0", "acorn-walk": "^8.0.2" } }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" + } + }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "devOptional": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, "engines": { "node": ">=0.4.0" } }, "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", "engines": { - "node": ">= 6.0.0" + "node": ">= 14" } }, "node_modules/agentkeepalive": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", + "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", + "license": "MIT", "dependencies": { "humanize-ms": "^1.2.1" }, @@ -6314,6 +7019,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -6368,6 +7074,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -6377,6 +7084,7 @@ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.21.3" }, @@ -6392,6 +7100,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -6404,6 +7113,7 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6412,6 +7122,8 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -6426,13 +7138,15 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -6445,17 +7159,20 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" }, "node_modules/aria-hidden": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", - "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", + "license": "MIT", "dependencies": { "tslib": "^2.0.0" }, @@ -6464,36 +7181,45 @@ } }, "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dependencies": { - "dequal": "^2.0.3" + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -6506,6 +7232,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", "engines": { "node": ">=8" } @@ -6514,21 +7241,46 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -6538,15 +7290,16 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -6556,15 +7309,16 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -6574,30 +7328,35 @@ } }, "node_modules/array.prototype.tosorted": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", - "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" }, "engines": { "node": ">= 0.4" @@ -6610,39 +7369,43 @@ "version": "0.0.8", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/async": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" }, - "node_modules/asynciterator.prototype": { + "node_modules/async-function": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", - "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.3" + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" } }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" }, "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "license": "ISC", "engines": { "node": ">= 4.0.0" } }, "node_modules/autoprefixer": { - "version": "10.4.17", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", - "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", "dev": true, "funding": [ { @@ -6658,12 +7421,13 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "browserslist": "^4.22.2", - "caniuse-lite": "^1.0.30001578", + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", + "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "bin": { @@ -6677,9 +7441,13 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -6688,33 +7456,36 @@ } }, "node_modules/axe-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", - "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", + "version": "4.10.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", + "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", "dev": true, + "license": "MPL-2.0", "engines": { "node": ">=4" } }, "node_modules/axobject-query": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", - "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", - "dev": true, - "dependencies": { - "dequal": "^2.0.3" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" } }, "node_modules/b4a": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", - "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==" + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", + "license": "Apache-2.0" }, "node_modules/babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/transform": "^29.7.0", "@types/babel__core": "^7.1.14", @@ -6731,29 +7502,14 @@ "@babel/core": "^7.8.0" } }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/babel-loader": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", - "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz", + "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==", + "license": "MIT", "dependencies": { "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", + "loader-utils": "^2.0.4", "make-dir": "^3.1.0", "schema-utils": "^2.6.5" }, @@ -6769,6 +7525,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "license": "MIT", "dependencies": { "semver": "^6.0.0" }, @@ -6783,6 +7540,7 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -6792,6 +7550,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -6808,6 +7567,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -6824,6 +7584,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -6833,6 +7594,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -6844,12 +7606,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", - "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==", + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.5.0", + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", "semver": "^6.3.1" }, "peerDependencies": { @@ -6860,54 +7623,61 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", - "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.5.0", - "core-js-compat": "^3.34.0" + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", - "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.5.0" + "@babel/helper-define-polyfill-provider": "^0.6.5" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0 || ^8.0.0-0" } }, "node_modules/babel-preset-jest": { @@ -6915,6 +7685,7 @@ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, + "license": "MIT", "dependencies": { "babel-plugin-jest-hoist": "^29.6.3", "babel-preset-current-node-syntax": "^1.0.0" @@ -6930,6 +7701,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -6938,12 +7710,13 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" }, "node_modules/bare-events": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", - "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.6.1.tgz", + "integrity": "sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==", "license": "Apache-2.0", "optional": true }, @@ -7034,33 +7807,41 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "license": "MIT", "engines": { "node": "*" } }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/binary-search": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/binary-search/-/binary-search-1.3.6.tgz", - "integrity": "sha512-nbE1WxOTTrUWIfsfZ4aHGYu5DOuNkbxGokjV6Z2kxfJK3uaAb8zNK1muzOeipoLHZjInT4Br88BHpzevc681xA==" + "integrity": "sha512-nbE1WxOTTrUWIfsfZ4aHGYu5DOuNkbxGokjV6Z2kxfJK3uaAb8zNK1muzOeipoLHZjInT4Br88BHpzevc681xA==", + "license": "CC0-1.0" }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -7071,6 +7852,7 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -7083,7 +7865,8 @@ "node_modules/bluebird": { "version": "3.4.7", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" + "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==", + "license": "MIT" }, "node_modules/brace-expansion": { "version": "1.1.12", @@ -7108,9 +7891,9 @@ } }, "node_modules/browserslist": { - "version": "4.25.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", - "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", + "version": "4.25.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.2.tgz", + "integrity": "sha512-0si2SJK3ooGzIawRu61ZdPCO1IncZwS8IzuX73sPZsXW6EQ/w/DAfPyKI8l1ETTCr2MnvqWitmlCUxgdul45jA==", "funding": [ { "type": "opencollective", @@ -7127,8 +7910,8 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001726", - "electron-to-chromium": "^1.5.173", + "caniuse-lite": "^1.0.30001733", + "electron-to-chromium": "^1.5.199", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, @@ -7144,6 +7927,7 @@ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "node-int64": "^0.4.0" } @@ -7166,6 +7950,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -7174,12 +7959,14 @@ "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" }, "node_modules/builtin-modules": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "license": "MIT", "engines": { "node": ">=6" }, @@ -7199,13 +7986,18 @@ } }, "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7224,11 +8016,28 @@ "node": ">= 0.4" } }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -7238,6 +8047,7 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -7247,14 +8057,15 @@ "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001727", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz", - "integrity": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==", + "version": "1.0.30001733", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001733.tgz", + "integrity": "sha512-e4QKw/O2Kavj2VQTKZWrwzkt3IxOmIlU6ajRb6LP64LHpBo1J67k2Hi4Vu/TgJWsNtynurfS0uK3MaUTCPfu5Q==", "funding": [ { "type": "opencollective", @@ -7275,22 +8086,27 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/char-regex": { @@ -7298,6 +8114,7 @@ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -7306,6 +8123,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -7315,6 +8133,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -7324,6 +8143,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -7333,6 +8153,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -7342,21 +8163,17 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "license": "BSD-3-Clause", "engines": { "node": "*" } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -7369,6 +8186,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -7378,6 +8198,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -7388,12 +8209,14 @@ "node_modules/chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "license": "ISC" }, "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "license": "MIT", "peer": true, "engines": { "node": ">=6.0" @@ -7410,39 +8233,35 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", - "dev": true + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "dev": true, + "license": "MIT" }, "node_modules/class-variance-authority": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.0.tgz", - "integrity": "sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", "dependencies": { - "clsx": "2.0.0" + "clsx": "^2.1.1" }, "funding": { - "url": "https://joebell.co.uk" - } - }, - "node_modules/class-variance-authority/node_modules/clsx": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", - "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", - "engines": { - "node": ">=6" + "url": "https://polar.sh/cva" } }, "node_modules/clean-webpack-plugin": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz", "integrity": "sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==", + "license": "MIT", "dependencies": { "del": "^4.1.1" }, @@ -7456,13 +8275,15 @@ "node_modules/client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -7476,13 +8297,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cliui/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -7497,6 +8320,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -7510,21 +8334,21 @@ } }, "node_modules/clsx": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", - "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", - "dev": true, + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/cmdk": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-0.2.0.tgz", - "integrity": "sha512-JQpKvEOb86SnvMZbYaFKYhvzFntWBeSZdyii0rZPhKJj9uwJBxu4DaVYDrRN7r3mPop56oPhRw+JYWTKs66TYw==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-0.2.1.tgz", + "integrity": "sha512-U6//9lQ6JvT47+6OF6Gi8BvkxYQ8SCRRSKIJkthIMsFsLZRG0cKvTtuTaefyIKMQb8rvvXy0wGdpTNq/jPtm+g==", + "license": "MIT", "dependencies": { - "@radix-ui/react-dialog": "1.0.0", - "command-score": "0.1.2" + "@radix-ui/react-dialog": "1.0.0" }, "peerDependencies": { "react": "^18.0.0", @@ -7535,6 +8359,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.0.tgz", "integrity": "sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" } @@ -7543,6 +8368,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.0.tgz", "integrity": "sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -7554,6 +8380,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.0.tgz", "integrity": "sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -7565,6 +8392,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.0.tgz", "integrity": "sha512-Yn9YU+QlHYLWwV1XfKiqnGVpWYWk6MeBVM6x/bcoyPvxgjQGoeT35482viLPctTMWoMw0PoHgqfSox7Ig+957Q==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.0", @@ -7591,6 +8419,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.0.tgz", "integrity": "sha512-n7kDRfx+LB1zLueRDvZ1Pd0bxdJWDUZNQ/GWoxDn2prnuJKRdxsjulejX/ePkOsLi2tTm6P24mDqlMSgQpsT6g==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.0", @@ -7608,6 +8437,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.0.tgz", "integrity": "sha512-UagjDk4ijOAnGu4WMUPj9ahi7/zJJqNZ9ZAiGPp7waUWJO0O1aWXi/udPphI0IUjvrhBsZJGSN66dR2dsueLWQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -7619,6 +8449,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.0.tgz", "integrity": "sha512-C4SWtsULLGf/2L4oGeIHlvWQx7Rf+7cX/vKOAD2dXW0A1b5QXwi3wWeaEgW+wn+SEVrraMUk05vLU9fZZz5HbQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "1.0.0", @@ -7634,6 +8465,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.0.tgz", "integrity": "sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-layout-effect": "1.0.0" @@ -7646,6 +8478,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.0.tgz", "integrity": "sha512-a8qyFO/Xb99d8wQdu4o7qnigNjTPG123uADNecz0eX4usnQEj7o+cG4ZX4zkqq98NYekT7UoEQIjxBNWIFuqTA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-primitive": "1.0.0" @@ -7659,6 +8492,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.0.tgz", "integrity": "sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "1.0.0", @@ -7673,6 +8507,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.0.tgz", "integrity": "sha512-EyXe6mnRlHZ8b6f4ilTDrXmkLShICIuOTTj0GX4w1rp+wSxf3+TD05u1UOITC8VsJ2a9nwHvdXtOXEOl0Cw/zQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-slot": "1.0.0" @@ -7686,6 +8521,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.0.tgz", "integrity": "sha512-3mrKauI/tWXo1Ll+gN5dHcxDPdm/Df1ufcDLCecn+pnCIVcdWE7CujXo8QaXOWRJyZyQWWbpB8eFwHzWXlv5mQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "1.0.0" @@ -7698,6 +8534,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.0.tgz", "integrity": "sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -7709,6 +8546,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.0.tgz", "integrity": "sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-callback-ref": "1.0.0" @@ -7721,6 +8559,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.0.tgz", "integrity": "sha512-JwfBCUIfhXRxKExgIqGa4CQsiMemo1Xt0W/B4ei3fpzpvPENKpMKQ8mZSB6Acj3ebrAEgi2xiQvcI1PAAodvyg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-callback-ref": "1.0.0" @@ -7733,6 +8572,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.0.tgz", "integrity": "sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -7744,6 +8584,7 @@ "version": "2.5.4", "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.4.tgz", "integrity": "sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==", + "license": "MIT", "dependencies": { "react-remove-scroll-bar": "^2.3.3", "react-style-singleton": "^2.2.1", @@ -7769,6 +8610,7 @@ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, + "license": "MIT", "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -7778,6 +8620,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "license": "MIT", "peer": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15", @@ -7791,12 +8634,14 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/color": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1", "color-string": "^1.9.0" @@ -7809,6 +8654,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -7819,12 +8665,14 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/color-string": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" @@ -7834,6 +8682,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -7845,25 +8694,23 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/command-score": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/command-score/-/command-score-0.1.2.tgz", - "integrity": "sha512-VtDvQpIJBvBatnONUsPzXYFVKQQAhuf3XTNOAsdBxCNO/QCtUUd8LSgjn0GVarBkCad6aJCZfXgrjYbl/KRr7w==" - }, "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, "node_modules/common-tags": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "license": "MIT", "engines": { "node": ">=4.0.0" } @@ -7871,32 +8718,37 @@ "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" }, "node_modules/cookie": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/core-js-compat": { - "version": "3.35.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.1.tgz", - "integrity": "sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==", + "version": "3.45.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.45.0.tgz", + "integrity": "sha512-gRoVMBawZg0OnxaVv3zpqLLxaHmsubEGyTnqdpI/CEBvX4JadI1dMSHxagThprYRtSVbuQxvi6iUatdPxohHpA==", + "license": "MIT", "dependencies": { - "browserslist": "^4.22.2" + "browserslist": "^4.25.1" }, "funding": { "type": "opencollective", @@ -7906,13 +8758,15 @@ "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" }, "node_modules/create-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", @@ -7929,27 +8783,12 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/create-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.6", @@ -7970,6 +8809,7 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "license": "BSD-3-Clause", "engines": { "node": "*" } @@ -7978,6 +8818,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "license": "MIT", "engines": { "node": ">=8" } @@ -7986,6 +8827,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", "peer": true, "dependencies": { "mdn-data": "2.0.30", @@ -7999,13 +8841,15 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -8017,13 +8861,15 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/cssstyle": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "devOptional": true, + "license": "MIT", "dependencies": { "cssom": "~0.3.6" }, @@ -8035,17 +8881,20 @@ "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" }, "node_modules/d3-dsv": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "license": "BSD-3-Clause", "dependencies": { "commander": "2", "iconv-lite": "0.4", @@ -8067,13 +8916,15 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/data-urls": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", "devOptional": true, + "license": "MIT", "dependencies": { "abab": "^2.0.6", "whatwg-mimetype": "^3.0.0", @@ -8088,6 +8939,7 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", "devOptional": true, + "license": "MIT", "dependencies": { "punycode": "^2.1.1" }, @@ -8100,6 +8952,7 @@ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", "devOptional": true, + "license": "MIT", "dependencies": { "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" @@ -8108,10 +8961,62 @@ "node": ">=12" } }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/date-fns": { "version": "2.30.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.21.0" }, @@ -8127,14 +9032,16 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -8149,20 +9056,23 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "devOptional": true + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "devOptional": true, + "license": "MIT" }, "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz", + "integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==", + "license": "MIT", "dependencies": { "character-entities": "^2.0.0" }, @@ -8175,6 +9085,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", "dependencies": { "mimic-response": "^3.1.0" }, @@ -8188,13 +9099,15 @@ "node_modules/dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "license": "MIT" }, "node_modules/deep-equal": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.5", @@ -8226,12 +9139,14 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", "engines": { "node": ">=4.0.0" } @@ -8240,33 +9155,40 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-properties": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -8283,6 +9205,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "license": "MIT", "dependencies": { "@types/glob": "^7.1.1", "globby": "^6.1.0", @@ -8300,6 +9223,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "license": "MIT", "dependencies": { "array-uniq": "^1.0.1" }, @@ -8311,6 +9235,8 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -8330,6 +9256,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "license": "MIT", "dependencies": { "array-union": "^1.0.1", "glob": "^7.0.3", @@ -8345,22 +9272,17 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/del/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "engines": { - "node": ">=6" - } - }, "node_modules/del/node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -8372,6 +9294,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -8380,14 +9303,16 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/detect-libc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "license": "Apache-2.0", "engines": { "node": ">=8" } @@ -8397,6 +9322,7 @@ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -8404,12 +9330,14 @@ "node_modules/detect-node-es": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" }, "node_modules/devlop": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", "dependencies": { "dequal": "^2.0.0" }, @@ -8422,13 +9350,15 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } @@ -8438,6 +9368,7 @@ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } @@ -8446,6 +9377,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/digest-fetch/-/digest-fetch-1.3.0.tgz", "integrity": "sha512-CGJuv6iKNM7QyZlM2T3sPAdZWd/p9zQiRNS9G+9COUCwzWFTs0Xp8NF5iePx7wtvhDykReiRRrSeNb4oMmB8lA==", + "license": "ISC", "dependencies": { "base-64": "^0.1.0", "md5": "^2.3.0" @@ -8454,12 +9386,14 @@ "node_modules/dingbat-to-unicode": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dingbat-to-unicode/-/dingbat-to-unicode-1.0.1.tgz", - "integrity": "sha512-98l0sW87ZT58pU4i61wa2OHwxbiYSbuxsCBozaVnYX2iCnr3bLM3fIes1/ej7h1YdOKuKt/MLs706TVnALA65w==" + "integrity": "sha512-98l0sW87ZT58pU4i61wa2OHwxbiYSbuxsCBozaVnYX2iCnr3bLM3fIes1/ej7h1YdOKuKt/MLs706TVnALA65w==", + "license": "BSD-2-Clause" }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -8471,13 +9405,15 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -8489,7 +9425,8 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/domexception": { "version": "4.0.0", @@ -8497,6 +9434,7 @@ "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", "deprecated": "Use your platform's native DOMException instead", "devOptional": true, + "license": "MIT", "dependencies": { "webidl-conversions": "^7.0.0" }, @@ -8508,6 +9446,7 @@ "version": "0.1.12", "resolved": "https://registry.npmjs.org/duck/-/duck-0.1.12.tgz", "integrity": "sha512-wkctla1O6VfP89gQ+J/yDesM0S7B7XLXjKGzXxMDVFg7uEn706niAtyYovKbyq1oT9YwDcly721/iUWoc8MVRg==", + "license": "BSD", "dependencies": { "underscore": "^1.13.1" } @@ -8530,13 +9469,15 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ejs": { "version": "3.1.10", @@ -8554,9 +9495,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.180", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.180.tgz", - "integrity": "sha512-ED+GEyEh3kYMwt2faNmgMB0b8O5qtATGgR4RmRsIp4T6p7B8vdMbIedYndnvZfsaXvSzegtpfqRMDNCjjiSduA==", + "version": "1.5.199", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.199.tgz", + "integrity": "sha512-3gl0S7zQd88kCAZRO/DnxtBKuhMO4h0EaQIN3YgZfV6+pW+5+bf2AdQeHNESCoaQqo/gjGVYEf2YM4O5HJQqpQ==", "license": "ISC" }, "node_modules/emittery": { @@ -8564,6 +9505,7 @@ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -8575,20 +9517,23 @@ "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "license": "MIT", "dependencies": { "once": "^1.4.0" } @@ -8597,6 +9542,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/endent/-/endent-2.1.0.tgz", "integrity": "sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==", + "license": "MIT", "dependencies": { "dedent": "^0.7.0", "fast-json-parse": "^1.0.3", @@ -8604,10 +9550,11 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.18.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.2.tgz", - "integrity": "sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==", + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", "license": "MIT", + "peer": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -8617,9 +9564,11 @@ } }, "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "devOptional": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -8632,54 +9581,71 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + } + }, + "node_modules/es-abstract": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", + "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" }, "engines": { "node": ">= 0.4" @@ -8711,6 +9677,7 @@ "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", @@ -8730,34 +9697,42 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/es-iterator-helpers": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", - "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", "dev": true, + "license": "MIT", "dependencies": { - "asynciterator.prototype": "^1.0.0", - "call-bind": "^1.0.2", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "es-abstract": "^1.22.1", - "es-set-tostringtag": "^2.0.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.2.1", - "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.0.1" + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "license": "MIT", "peer": true }, "node_modules/es-object-atoms": { @@ -8788,22 +9763,27 @@ } }, "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", "dev": true, + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "license": "MIT", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" }, "engines": { "node": ">= 0.4" @@ -8826,6 +9806,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -8838,6 +9819,7 @@ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "devOptional": true, + "license": "BSD-2-Clause", "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -8855,16 +9837,18 @@ } }, "node_modules/eslint": { - "version": "8.56.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", - "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.56.0", - "@humanwhocodes/config-array": "^0.11.13", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", "@ungap/structured-clone": "^1.2.0", @@ -8910,14 +9894,16 @@ } }, "node_modules/eslint-config-next": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.1.0.tgz", - "integrity": "sha512-SBX2ed7DoRFXC6CQSLc/SbLY9Ut6HxNB2wPTcoIWjUMd7aF7O/SIE7111L8FdZ9TXsNV4pulUDnfthpyPtbFUg==", + "version": "14.2.31", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.31.tgz", + "integrity": "sha512-sT32j4678je7SWstBM6l0kE2L+LSgAARDAxw8iloNhI4/8xwkdDesbrGCPaGWzQv+dD6f6adhB+eRSThpGkBdg==", "dev": true, + "license": "MIT", "dependencies": { - "@next/eslint-plugin-next": "14.1.0", + "@next/eslint-plugin-next": "14.2.31", "@rushstack/eslint-patch": "^1.3.3", - "@typescript-eslint/parser": "^5.4.2 || ^6.0.0", + "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "eslint-import-resolver-node": "^0.3.6", "eslint-import-resolver-typescript": "^3.5.2", "eslint-plugin-import": "^2.28.1", @@ -8936,10 +9922,11 @@ } }, "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.2.tgz", + "integrity": "sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ==", "dev": true, + "license": "MIT", "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -8952,6 +9939,7 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", @@ -8963,40 +9951,52 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-import-resolver-typescript": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", - "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", + "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", "dev": true, + "license": "ISC", "dependencies": { - "debug": "^4.3.4", - "enhanced-resolve": "^5.12.0", - "eslint-module-utils": "^2.7.4", - "fast-glob": "^3.3.1", - "get-tsconfig": "^4.5.0", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3" + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^2.0.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.13", + "unrs-resolver": "^1.6.2" }, "engines": { "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + "url": "https://opencollective.com/eslint-import-resolver-typescript" }, "peerDependencies": { "eslint": "*", - "eslint-plugin-import": "*" + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } } }, "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7" }, @@ -9014,39 +10014,43 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, + "license": "MIT", "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, "node_modules/eslint-plugin-import/node_modules/debug": { @@ -9054,6 +10058,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } @@ -9063,6 +10068,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -9075,75 +10081,80 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", - "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.23.2", - "aria-query": "^5.3.0", - "array-includes": "^3.1.7", + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", "array.prototype.flatmap": "^1.3.2", "ast-types-flow": "^0.0.8", - "axe-core": "=4.7.0", - "axobject-query": "^3.2.1", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", - "es-iterator-helpers": "^1.0.15", - "hasown": "^2.0.0", + "hasown": "^2.0.2", "jsx-ast-utils": "^3.3.5", "language-tags": "^1.0.9", "minimatch": "^3.1.2", - "object.entries": "^1.1.7", - "object.fromentries": "^2.0.7" + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" }, "engines": { "node": ">=4.0" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, "node_modules/eslint-plugin-react": { - "version": "7.33.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", - "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", "dev": true, + "license": "MIT", "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flatmap": "^1.3.1", - "array.prototype.tosorted": "^1.1.1", + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.12", + "es-iterator-helpers": "^1.2.1", "estraverse": "^5.3.0", + "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.6", - "object.fromentries": "^2.0.6", - "object.hasown": "^1.1.2", - "object.values": "^1.1.6", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.4", + "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.8" + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "version": "5.0.0-canary-7118f5dd7-20230705", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0-canary-7118f5dd7-20230705.tgz", + "integrity": "sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -9156,6 +10167,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -9168,6 +10180,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dev": true, + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -9185,21 +10198,23 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-plugin-tailwindcss": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.14.0.tgz", - "integrity": "sha512-SGy4JmZoP5m1bXCbcsPfQg1/axOdriJf9L22HghNMyDTM5mybg2XEkaMwgax4aR13zZJRRB1nWmkuYUn+SV6/Q==", + "version": "3.18.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.18.2.tgz", + "integrity": "sha512-QbkMLDC/OkkjFQ1iz/5jkMdHfiMu/uwujUHLAJK5iwNHD8RTxVTlsUezE0toTZ6VhybNBsk+gYGPDq2agfeRNA==", "dev": true, + "license": "MIT", "dependencies": { "fast-glob": "^3.2.5", "postcss": "^8.4.4" }, "engines": { - "node": ">=12.13.0" + "node": ">=18.12.0" }, "peerDependencies": { "tailwindcss": "^3.4.0" @@ -9210,6 +10225,7 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -9226,6 +10242,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -9233,27 +10250,12 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", @@ -9271,6 +10273,7 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "devOptional": true, + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -9280,10 +10283,11 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -9295,6 +10299,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -9306,6 +10311,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -9314,6 +10320,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -9323,6 +10330,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", "peer": true, "dependencies": { "@types/estree": "^1.0.0" @@ -9332,6 +10340,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -9340,6 +10349,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -9347,12 +10357,14 @@ "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", "peer": true, "engines": { "node": ">=0.8.x" @@ -9362,6 +10374,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-1.0.0.tgz", "integrity": "sha512-9jgfSCa3dmEme2ES3mPByGXfgZ87VbP97tng1G2nWwWx6bV2nYxm2AWCrbQjXToSe+yYlqaZNtxffR9IeQr95g==", + "license": "MIT", "engines": { "node": ">=14.18" } @@ -9371,6 +10384,7 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -9393,7 +10407,8 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/exit": { "version": "0.1.2", @@ -9408,6 +10423,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "license": "(MIT OR WTFPL)", "engines": { "node": ">=6" } @@ -9417,6 +10433,7 @@ "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/expect-utils": "^29.7.0", "jest-get-type": "^29.6.3", @@ -9431,33 +10448,38 @@ "node_modules/expr-eval": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expr-eval/-/expr-eval-2.0.2.tgz", - "integrity": "sha512-4EMSHGOPSwAfBiibw3ndnP0AvjDWLsMvGOvWEZ2F96IGk0bIVdjQisOHxReSkE13mHcfbuCiXw+G4y0zv6N8Eg==" + "integrity": "sha512-4EMSHGOPSwAfBiibw3ndnP0AvjDWLsMvGOvWEZ2F96IGk0bIVdjQisOHxReSkE13mHcfbuCiXw+G4y0zv6N8Eg==", + "license": "MIT" }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" }, "node_modules/fast-fifo": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -9467,6 +10489,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -9477,18 +10500,21 @@ "node_modules/fast-json-parse": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz", - "integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==" + "integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==", + "license": "MIT" }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-uri": { "version": "3.0.6", @@ -9507,9 +10533,10 @@ "license": "BSD-3-Clause" }, "node_modules/fastq": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", - "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -9518,6 +10545,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", + "license": "MIT", "dependencies": { "format": "^0.2.0" }, @@ -9531,6 +10559,7 @@ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "bser": "2.1.1" } @@ -9540,6 +10569,7 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -9551,6 +10581,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "license": "Apache-2.0", "dependencies": { "minimatch": "^5.0.1" } @@ -9568,6 +10599,7 @@ "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -9591,6 +10623,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "license": "MIT", "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", @@ -9607,6 +10640,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "license": "MIT", "dependencies": { "semver": "^6.0.0" }, @@ -9621,6 +10655,7 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -9630,6 +10665,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -9645,6 +10681,7 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } @@ -9654,6 +10691,7 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", @@ -9666,29 +10704,39 @@ "node_modules/flatbuffers": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-1.12.0.tgz", - "integrity": "sha512-c7CZADjRcl6j0PlvFy0ZqXQ67qSEZfrVPynmnL+2zPc+NtMvrF8Y0QceMo7QqnSPc7+uWjUIAbvCQ5WIKlMVdQ==" + "integrity": "sha512-c7CZADjRcl6j0PlvFy0ZqXQ67qSEZfrVPynmnL+2zPc+NtMvrF8Y0QceMo7QqnSPc7+uWjUIAbvCQ5WIKlMVdQ==", + "license": "SEE LICENSE IN LICENSE.txt" }, "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" }, "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", "dependencies": { - "is-callable": "^1.1.3" + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "dev": true, + "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.0", + "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" }, "engines": { @@ -9717,7 +10765,8 @@ "node_modules/form-data-encoder": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", - "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==" + "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==", + "license": "MIT" }, "node_modules/format": { "version": "0.2.2", @@ -9731,6 +10780,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", + "license": "MIT", "dependencies": { "node-domexception": "1.0.0", "web-streams-polyfill": "4.0.0-beta.3" @@ -9743,6 +10793,7 @@ "version": "4.0.0-beta.3", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", + "license": "MIT", "engines": { "node": ">= 14" } @@ -9752,6 +10803,7 @@ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "dev": true, + "license": "MIT", "engines": { "node": "*" }, @@ -9763,12 +10815,14 @@ "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "license": "MIT" }, "node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -9783,6 +10837,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } @@ -9790,13 +10845,15 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -9809,19 +10866,23 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { "node": ">= 0.4" @@ -9834,6 +10895,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -9842,6 +10904,7 @@ "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -9851,6 +10914,7 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -9883,6 +10947,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", "engines": { "node": ">=6" } @@ -9890,13 +10955,15 @@ "node_modules/get-own-enumerable-property-symbols": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "license": "ISC" }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.0.0" } @@ -9919,6 +10986,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -9927,12 +10995,14 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -9942,10 +11012,11 @@ } }, "node_modules/get-tsconfig": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", - "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz", + "integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==", "dev": true, + "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" }, @@ -9956,13 +11027,15 @@ "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "license": "MIT" }, "node_modules/glob": { "version": "10.3.10", "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.5", @@ -9985,6 +11058,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -10010,10 +11084,11 @@ } }, "node_modules/glob/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -10029,6 +11104,7 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, + "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -10040,11 +11116,13 @@ } }, "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "license": "MIT", "dependencies": { - "define-properties": "^1.1.3" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -10057,6 +11135,7 @@ "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -10085,34 +11164,36 @@ } }, "node_modules/gpt-tokenizer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/gpt-tokenizer/-/gpt-tokenizer-2.1.2.tgz", - "integrity": "sha512-HSuI5d6uey+c7x/VzQlPfCoGrfLyAc28vxWofKbjR9PJHm0AjQGSWkKw/OJnb+8S1g7nzgRsf0WH3dK+NNWYbg==", - "dependencies": { - "rfc4648": "^1.5.2" - } + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/gpt-tokenizer/-/gpt-tokenizer-2.9.0.tgz", + "integrity": "sha512-YSpexBL/k4bfliAzMrRqn3M6+it02LutVyhVpDeMKrC/O9+pCe/5s8U2hYKa2vFLD5/vHhsKc8sOn/qGqII8Kg==", + "license": "MIT" }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/guid-typescript": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/guid-typescript/-/guid-typescript-1.0.9.tgz", - "integrity": "sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ==" + "integrity": "sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ==", + "license": "ISC" }, "node_modules/gzip-size": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "dev": true, + "license": "MIT", "dependencies": { "duplexer": "^0.1.2" }, @@ -10124,9 +11205,13 @@ } }, "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -10135,25 +11220,31 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.2" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -10204,15 +11295,17 @@ "version": "2.2.5", "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-to-jsx-runtime": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz", - "integrity": "sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", + "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", @@ -10224,9 +11317,9 @@ "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^6.0.0", + "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", - "style-to-object": "^1.0.0", + "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "vfile-message": "^4.0.0" }, @@ -10239,6 +11332,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, @@ -10251,6 +11345,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", + "license": "MIT", "dependencies": { "@types/hast": "^2.0.0", "comma-separated-tokens": "^1.0.0", @@ -10264,22 +11359,25 @@ } }, "node_modules/hastscript/node_modules/@types/hast": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.9.tgz", - "integrity": "sha512-pTHyNlaMD/oKJmS+ZZUyFUcsZeBZpC0lmGquw98CqRVNgAdJZJeD7GoeLiT6Xbx5rU9VCjSt0RwEvDgzh4obFw==", + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", + "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", + "license": "MIT", "dependencies": { "@types/unist": "^2" } }, "node_modules/hastscript/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" }, "node_modules/hastscript/node_modules/comma-separated-tokens": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -10289,6 +11387,7 @@ "version": "5.6.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", + "license": "MIT", "dependencies": { "xtend": "^4.0.0" }, @@ -10301,6 +11400,7 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -10310,6 +11410,7 @@ "version": "10.7.3", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "license": "BSD-3-Clause", "engines": { "node": "*" } @@ -10325,6 +11426,7 @@ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", "devOptional": true, + "license": "MIT", "dependencies": { "whatwg-encoding": "^2.0.0" }, @@ -10336,48 +11438,52 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/html-parse-stringify": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==", + "license": "MIT", "dependencies": { "void-elements": "3.1.0" } }, "node_modules/html-url-attributes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.0.tgz", - "integrity": "sha512-/sXbVCWayk6GDVg3ctOX6nxaVj7So40FcFAnWlWGNAB1LpYKcV5Cd10APjPjW80O7zYW2MsjBV4zZ7IZO5fVow==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz", + "integrity": "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "license": "MIT", "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", "dependencies": { - "agent-base": "6", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/human-signals": { @@ -10385,6 +11491,7 @@ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } @@ -10393,6 +11500,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "license": "MIT", "dependencies": { "ms": "^2.0.0" } @@ -10402,6 +11510,7 @@ "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", "dev": true, + "license": "MIT", "bin": { "husky": "lib/bin.js" }, @@ -10413,9 +11522,9 @@ } }, "node_modules/i18next": { - "version": "23.7.16", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.7.16.tgz", - "integrity": "sha512-SrqFkMn9W6Wb43ZJ9qrO6U2U4S80RsFMA7VYFSqp7oc7RllQOYDCdRfsse6A7Cq/V8MnpxKvJCYgM8++27n4Fw==", + "version": "23.16.8", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.16.8.tgz", + "integrity": "sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==", "funding": [ { "type": "individual", @@ -10430,14 +11539,16 @@ "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" } ], + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.2" } }, "node_modules/i18next-resources-to-backend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/i18next-resources-to-backend/-/i18next-resources-to-backend-1.2.0.tgz", - "integrity": "sha512-8f1l03s+QxDmCfpSXCh9V+AFcxAwIp0UaroWuyOx+hmmv8484GcELHs+lnu54FrNij8cDBEXvEwhzZoXsKcVpg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/i18next-resources-to-backend/-/i18next-resources-to-backend-1.2.1.tgz", + "integrity": "sha512-okHbVA+HZ7n1/76MsfhPqDou0fptl2dAlhRDu2ideXloRRduzHsqDOznJBef+R3DFZnbvWoBW+KxJ7fnFjd6Yw==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.2" } @@ -10446,6 +11557,7 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -10456,7 +11568,8 @@ "node_modules/idb": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", - "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", + "license": "ISC" }, "node_modules/ieee754": { "version": "1.2.1", @@ -10475,12 +11588,14 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", "engines": { "node": ">= 4" } @@ -10488,13 +11603,15 @@ "node_modules/immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -10507,10 +11624,11 @@ } }, "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, + "license": "MIT", "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -10530,6 +11648,7 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -10539,6 +11658,7 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -10547,6 +11667,8 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -10555,43 +11677,40 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" }, "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" }, "node_modules/inline-style-parser": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.2.tgz", - "integrity": "sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==" + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", + "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", + "license": "MIT" }, "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.2", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" } }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, "node_modules/is-alphabetical": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -10601,6 +11720,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" @@ -10613,16 +11733,18 @@ "node_modules/is-any-array": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-any-array/-/is-any-array-2.0.1.tgz", - "integrity": "sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ==" + "integrity": "sha512-UtilS7hLRu++wb/WBAw9bNuP1Eg04Ivn1vERJck8zJthEvXCBEBpGR/33u/xLKWEQf95803oalHrVDptcAvFdQ==", + "license": "MIT" }, "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -10632,13 +11754,17 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10648,15 +11774,20 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", - "dev": true, + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -10666,11 +11797,15 @@ } }, "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "license": "MIT", "dependencies": { - "has-bigints": "^1.0.1" + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10681,6 +11816,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -10689,12 +11825,13 @@ } }, "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -10706,12 +11843,24 @@ "node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "license": "MIT" + }, + "node_modules/is-bun-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.7.1" + } }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -10720,22 +11869,45 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -10748,6 +11920,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -10757,17 +11930,21 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-finalizationregistry": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", - "dev": true, + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10778,6 +11955,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -10787,17 +11965,21 @@ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -10810,6 +11992,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -10821,16 +12004,20 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "dev": true, + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -10838,12 +12025,14 @@ "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "license": "MIT" }, "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -10861,11 +12050,13 @@ } }, "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -10878,6 +12069,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -10886,6 +12078,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -10894,6 +12087,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "license": "MIT", "dependencies": { "is-path-inside": "^2.1.0" }, @@ -10905,6 +12099,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "license": "MIT", "dependencies": { "path-is-inside": "^1.0.2" }, @@ -10917,6 +12112,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -10925,6 +12121,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -10937,6 +12134,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -10945,24 +12143,29 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/is-reference": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", - "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", + "license": "MIT", "peer": true, "dependencies": { - "@types/estree": "*" + "@types/estree": "^1.0.6" } }, "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -10975,25 +12178,33 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "dev": true, + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11003,6 +12214,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -11011,11 +12223,13 @@ } }, "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -11025,11 +12239,14 @@ } }, "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -11039,11 +12256,12 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -11053,33 +12271,43 @@ } }, "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "dev": true, + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "dev": true, + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11088,32 +12316,36 @@ "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-instrument": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", - "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", "istanbul-lib-coverage": "^3.2.0", "semver": "^7.5.4" }, @@ -11126,6 +12358,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -11140,6 +12373,7 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -11150,10 +12384,11 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -11163,16 +12398,21 @@ } }, "node_modules/iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", "dev": true, + "license": "MIT", "dependencies": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/jackspeak": { @@ -11180,6 +12420,7 @@ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -11194,14 +12435,14 @@ } }, "node_modules/jake": { - "version": "10.8.7", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", - "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "version": "10.9.4", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz", + "integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==", + "license": "Apache-2.0", "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", + "async": "^3.2.6", "filelist": "^1.0.4", - "minimatch": "^3.1.2" + "picocolors": "^1.1.1" }, "bin": { "jake": "bin/cli.js" @@ -11210,26 +12451,12 @@ "node": ">=10" } }, - "node_modules/jake/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", @@ -11256,6 +12483,7 @@ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, + "license": "MIT", "dependencies": { "execa": "^5.0.0", "jest-util": "^29.7.0", @@ -11270,6 +12498,7 @@ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/expect": "^29.7.0", @@ -11296,27 +12525,25 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-circus/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-circus/node_modules/dedent": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz", + "integrity": "sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==", "dev": true, + "license": "MIT", "peerDependencies": { "babel-plugin-macros": "^3.1.0" }, @@ -11331,6 +12558,7 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -11340,29 +12568,19 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-circus/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/jest-circus/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" }, "node_modules/jest-cli": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, + "license": "MIT", "dependencies": { "@jest/core": "^29.7.0", "@jest/test-result": "^29.7.0", @@ -11391,27 +12609,12 @@ } } }, - "node_modules/jest-cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-config": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@jest/test-sequencer": "^29.7.0", @@ -11452,27 +12655,26 @@ } } }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "license": "MIT", "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-config/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -11493,6 +12695,7 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -11502,29 +12705,19 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-config/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/jest-config/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" }, "node_modules/jest-diff": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.6.3", @@ -11535,20 +12728,17 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "license": "MIT", "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-diff/node_modules/pretty-format": { @@ -11556,6 +12746,7 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -11565,29 +12756,19 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-diff/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/jest-diff/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" }, "node_modules/jest-docblock": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, + "license": "MIT", "dependencies": { "detect-newline": "^3.0.0" }, @@ -11600,6 +12781,7 @@ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "chalk": "^4.0.0", @@ -11611,20 +12793,17 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "license": "MIT", "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-each/node_modules/pretty-format": { @@ -11632,6 +12811,7 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -11641,29 +12821,19 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-each/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/jest-each/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" }, "node_modules/jest-environment-jsdom": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -11691,6 +12861,7 @@ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -11708,6 +12879,7 @@ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } @@ -11717,6 +12889,7 @@ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/graceful-fs": "^4.1.3", @@ -11742,6 +12915,7 @@ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, + "license": "MIT", "dependencies": { "jest-get-type": "^29.6.3", "pretty-format": "^29.7.0" @@ -11755,6 +12929,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -11767,6 +12942,7 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -11777,16 +12953,18 @@ } }, "node_modules/jest-leak-detector/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" }, "node_modules/jest-matcher-utils": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "jest-diff": "^29.7.0", @@ -11797,20 +12975,17 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "license": "MIT", "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-matcher-utils/node_modules/pretty-format": { @@ -11818,6 +12993,7 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -11827,29 +13003,19 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-matcher-utils/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/jest-matcher-utils/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" }, "node_modules/jest-message-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.3", @@ -11865,20 +13031,17 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "license": "MIT", "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-message-util/node_modules/pretty-format": { @@ -11886,6 +13049,7 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -11895,29 +13059,19 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-message-util/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/jest-message-util/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" }, "node_modules/jest-mock": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -11932,6 +13086,7 @@ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" }, @@ -11949,6 +13104,7 @@ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } @@ -11958,6 +13114,7 @@ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", @@ -11978,6 +13135,7 @@ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, + "license": "MIT", "dependencies": { "jest-regex-util": "^29.6.3", "jest-snapshot": "^29.7.0" @@ -11986,27 +13144,12 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-runner": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/console": "^29.7.0", "@jest/environment": "^29.7.0", @@ -12034,27 +13177,12 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-runtime": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/environment": "^29.7.0", "@jest/fake-timers": "^29.7.0", @@ -12083,27 +13211,13 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-runtime/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -12124,6 +13238,7 @@ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", @@ -12150,20 +13265,17 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "license": "MIT", "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-snapshot/node_modules/pretty-format": { @@ -12171,6 +13283,7 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -12180,29 +13293,19 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-snapshot/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/jest-snapshot/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" }, "node_modules/jest-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -12215,27 +13318,12 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-validate": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "camelcase": "^6.2.0", @@ -12248,32 +13336,30 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "license": "MIT", "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/jest-validate/node_modules/pretty-format": { @@ -12281,6 +13367,7 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -12290,29 +13377,19 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-validate/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/jest-validate/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" }, "node_modules/jest-watcher": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, + "license": "MIT", "dependencies": { "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", @@ -12327,27 +13404,12 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/jest-worker": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", @@ -12363,6 +13425,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -12374,18 +13437,19 @@ } }, "node_modules/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", "dev": true, + "license": "MIT", "bin": { "jiti": "bin/jiti.js" } }, "node_modules/js-tiktoken": { - "version": "1.0.20", - "resolved": "https://registry.npmjs.org/js-tiktoken/-/js-tiktoken-1.0.20.tgz", - "integrity": "sha512-Xlaqhhs8VfCd6Sh7a1cFkZHQbYTLCwVJJWiHVxBYzLPxW0XsoxBy1hitmjkdIjD3Aon5BXLHFwU5O8WUx6HH+A==", + "version": "1.0.21", + "resolved": "https://registry.npmjs.org/js-tiktoken/-/js-tiktoken-1.0.21.tgz", + "integrity": "sha512-biOj/6M5qdgx5TKjDnFT1ymSpM5tbd3ylwDtrQvFQSu0Z7bBYko2dF+W/aUkXUPuk6IVpRxk/3Q2sHOzGlS36g==", "license": "MIT", "dependencies": { "base64-js": "^1.5.1" @@ -12394,12 +13458,14 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -12412,6 +13478,7 @@ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", "devOptional": true, + "license": "MIT", "dependencies": { "abab": "^2.0.6", "acorn": "^8.8.1", @@ -12452,11 +13519,54 @@ } } }, + "node_modules/jsdom/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/jsdom/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jsdom/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/jsdom/node_modules/tr46": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", "devOptional": true, + "license": "MIT", "dependencies": { "punycode": "^2.1.1" }, @@ -12469,6 +13579,7 @@ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", "devOptional": true, + "license": "MIT", "dependencies": { "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" @@ -12478,47 +13589,54 @@ } }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" }, "node_modules/json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "license": "(AFL-2.1 OR BSD-3-Clause)" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -12530,6 +13648,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -12541,6 +13660,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } @@ -12549,6 +13669,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12558,6 +13679,7 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", @@ -12572,6 +13694,7 @@ "version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "license": "(MIT OR GPL-3.0-or-later)", "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", @@ -12599,6 +13722,7 @@ "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", "engines": { "node": ">= 12" } @@ -12608,6 +13732,7 @@ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -12617,6 +13742,7 @@ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -12625,6 +13751,7 @@ "version": "0.0.213", "resolved": "https://registry.npmjs.org/langchain/-/langchain-0.0.213.tgz", "integrity": "sha512-nQDOJXvtIAIuUzamCiF1AWyi2GH9FSDPR+3XulJUEpdU60aSFPZ9GBiWdu+dVHXeAmm8C0iCVi0+3GWLJrUoXA==", + "license": "MIT", "dependencies": { "@anthropic-ai/sdk": "^0.9.1", "@langchain/community": "~0.0.12", @@ -12860,6 +13987,7 @@ "version": "0.9.1", "resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.9.1.tgz", "integrity": "sha512-wa1meQ2WSfoY8Uor3EdrJq0jTiZJoKoSii2ZVWRY1oN4Tlr5s59pADg9T79FTbPe1/se5c3pBeZgJL63wmuoBA==", + "license": "MIT", "dependencies": { "@types/node": "^18.11.18", "@types/node-fetch": "^2.6.4", @@ -12873,22 +14001,31 @@ } }, "node_modules/langchain/node_modules/@types/node": { - "version": "18.19.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.8.tgz", - "integrity": "sha512-g1pZtPhsvGVTwmeVoexWZLTQaOvXwoSq//pTL0DHeNzUDrFnir4fgETdhjhIxjVnN+hKOuh98+E1eMLnUXstFg==", + "version": "18.19.122", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.122.tgz", + "integrity": "sha512-yzegtT82dwTNEe/9y+CM8cgb42WrUfMMCg2QqSddzO1J6uPmBD7qKCZ7dOHZP2Yrpm/kb0eqdNMn2MUyEiqBmA==", + "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } }, + "node_modules/langchain/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" + }, "node_modules/langchainhub": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/langchainhub/-/langchainhub-0.0.6.tgz", - "integrity": "sha512-SW6105T+YP1cTe0yMf//7kyshCgvCTyFBMTgH2H3s9rTAR4e+78DA/BBrUL/Mt4Q5eMWui7iGuAYb3pgGsdQ9w==" + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/langchainhub/-/langchainhub-0.0.11.tgz", + "integrity": "sha512-WnKI4g9kU2bHQP136orXr2bcRdgz9iiTBpTN0jWt9IlScUKnJBoD0aa2HOzHURQKeQDnt2JwqVmQ6Depf5uDLQ==", + "license": "MIT" }, "node_modules/langsmith": { - "version": "0.0.61", - "resolved": "https://registry.npmjs.org/langsmith/-/langsmith-0.0.61.tgz", - "integrity": "sha512-BYf9i0RkOCc4RdtIMGmWV4JBnXYsDYJXSaMuYhRyAEiV0MTw20o6BzP4Gpek1gFYovtC9fSRWqDu2D9xqvnX4w==", + "version": "0.0.70", + "resolved": "https://registry.npmjs.org/langsmith/-/langsmith-0.0.70.tgz", + "integrity": "sha512-QFHrzo/efBowGPCxtObv7G40/OdwqQfGshavMbSJtHBgX+OMqnn4lCMqVeEwTdyue4lEcpwAsGNg5Vty91YIyw==", + "license": "MIT", "dependencies": { "@types/uuid": "^9.0.1", "commander": "^10.0.1", @@ -12904,21 +14041,24 @@ "version": "10.0.1", "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", "engines": { "node": ">=14" } }, "node_modules/language-subtag-registry": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", - "dev": true + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true, + "license": "CC0-1.0" }, "node_modules/language-tags": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", "dev": true, + "license": "MIT", "dependencies": { "language-subtag-registry": "^0.3.20" }, @@ -12930,6 +14070,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "license": "MIT", "engines": { "node": ">=6" } @@ -12939,6 +14080,7 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -12951,29 +14093,36 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", "dependencies": { "immediate": "~3.0.5" } }, "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "license": "MIT", "peer": true, "engines": { "node": ">=6.11.5" @@ -12983,6 +14132,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -12996,6 +14146,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "license": "MIT", "peer": true }, "node_modules/locate-path": { @@ -13003,6 +14154,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -13016,45 +14168,53 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" }, "node_modules/lodash.castarray": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" }, "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "license": "MIT" }, "node_modules/long": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", + "license": "Apache-2.0" }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -13064,6 +14224,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -13072,9 +14233,10 @@ } }, "node_modules/lop": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/lop/-/lop-0.4.1.tgz", - "integrity": "sha512-9xyho9why2A2tzm5aIcMWKvzqKsnxrf9B5I+8O30olh6lQU8PH978LqZoI4++37RBgS1Em5i54v1TFs/3wnmXQ==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/lop/-/lop-0.4.2.tgz", + "integrity": "sha512-RefILVDQ4DKoRZsJ4Pj22TxE3omDO47yFpkIBoDKzkqPRISs5U1cnAdg/5583YPkWPaLIYHOKRMQSvjFsO26cw==", + "license": "BSD-2-Clause", "dependencies": { "duck": "^0.1.12", "option": "~0.2.1", @@ -13085,6 +14247,7 @@ "version": "1.20.0", "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz", "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==", + "license": "MIT", "dependencies": { "fault": "^1.0.0", "highlight.js": "~10.7.0" @@ -13098,6 +14261,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } @@ -13106,6 +14270,7 @@ "version": "0.292.0", "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.292.0.tgz", "integrity": "sha512-rRgUkpEHWpa5VCT66YscInCQmQuPCB1RFRzkkxMxg4b+jaL0V12E3riWWR2Sh5OIiUhCwGW/ZExuEO4Az32E6Q==", + "license": "ISC", "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0" } @@ -13115,20 +14280,19 @@ "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", "dev": true, + "license": "MIT", "bin": { "lz-string": "bin/bin.js" } }, "node_modules/magic-string": { - "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "license": "MIT", "peer": true, "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, "node_modules/make-dir": { @@ -13136,6 +14300,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -13150,21 +14315,24 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "tmpl": "1.0.5" } }, "node_modules/mammoth": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mammoth/-/mammoth-1.6.0.tgz", - "integrity": "sha512-jOwbj6BwJzxCf6jr2l1zmSemniIkLnchvELXnDJCANlJawhzyIKObIq48B8kWEPLgUUh57k7FtEO3DHFQMnjMg==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/mammoth/-/mammoth-1.10.0.tgz", + "integrity": "sha512-9HOmqt8uJ5rz7q8XrECU5gRjNftCq4GNG0YIrA6f9iQPCeLgpvgcmRBHi9NQWJQIpT/MAXeg1oKliAK1xoB3eg==", + "license": "BSD-2-Clause", "dependencies": { "@xmldom/xmldom": "^0.8.6", "argparse": "~1.0.3", @@ -13172,7 +14340,7 @@ "bluebird": "~3.4.0", "dingbat-to-unicode": "^1.0.1", "jszip": "^3.7.1", - "lop": "^0.4.1", + "lop": "^0.4.2", "path-is-absolute": "^1.0.0", "underscore": "^1.13.1", "xmlbuilder": "^10.0.0" @@ -13188,14 +14356,16 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/markdown-table": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", - "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -13214,6 +14384,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "license": "BSD-3-Clause", "dependencies": { "charenc": "0.0.2", "crypt": "0.0.2", @@ -13221,9 +14392,10 @@ } }, "node_modules/mdast-util-find-and-replace": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", - "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", @@ -13239,6 +14411,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -13247,9 +14420,10 @@ } }, "node_modules/mdast-util-from-markdown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", - "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", @@ -13270,9 +14444,10 @@ } }, "node_modules/mdast-util-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", - "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "license": "MIT", "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-gfm-autolink-literal": "^2.0.0", @@ -13288,9 +14463,10 @@ } }, "node_modules/mdast-util-gfm-autolink-literal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.0.tgz", - "integrity": "sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "ccount": "^2.0.0", @@ -13304,9 +14480,10 @@ } }, "node_modules/mdast-util-gfm-footnote": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", - "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.1.0", @@ -13323,6 +14500,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", @@ -13337,6 +14515,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", @@ -13353,6 +14532,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", @@ -13368,6 +14548,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-3.0.0.tgz", "integrity": "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -13383,9 +14564,10 @@ } }, "node_modules/mdast-util-mdx-expression": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz", - "integrity": "sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", @@ -13400,9 +14582,10 @@ } }, "node_modules/mdast-util-mdx-jsx": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.0.0.tgz", - "integrity": "sha512-XZuPPzQNBPAlaqsTTgRrcJnyFbSOBovSadFgbFu8SnuNgm+6Bdx1K+IWoitsmj6Lq6MNtI+ytOqwN70n//NaBA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", @@ -13414,7 +14597,6 @@ "mdast-util-to-markdown": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0", - "unist-util-remove-position": "^5.0.0", "unist-util-stringify-position": "^4.0.0", "vfile-message": "^4.0.0" }, @@ -13427,6 +14609,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", @@ -13441,9 +14624,10 @@ } }, "node_modules/mdast-util-phrasing": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.0.0.tgz", - "integrity": "sha512-xadSsJayQIucJ9n053dfQwVu1kuXg7jCTdYsMK8rqzKZh52nLfSH/k0sAxE0u+pj/zKZX+o5wB+ML5mRayOxFA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "unist-util-is": "^6.0.0" @@ -13454,9 +14638,10 @@ } }, "node_modules/mdast-util-to-hast": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.1.0.tgz", - "integrity": "sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -13474,15 +14659,17 @@ } }, "node_modules/mdast-util-to-markdown": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz", - "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "longest-streak": "^3.0.0", "mdast-util-phrasing": "^4.0.0", "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" @@ -13496,6 +14683,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0" }, @@ -13508,25 +14696,28 @@ "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "license": "CC0-1.0", "peer": true }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/micromark": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", - "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", "funding": [ { "type": "GitHub Sponsors", @@ -13537,6 +14728,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", @@ -13558,9 +14750,9 @@ } }, "node_modules/micromark-core-commonmark": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz", - "integrity": "sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", "funding": [ { "type": "GitHub Sponsors", @@ -13571,6 +14763,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", @@ -13594,6 +14787,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", "dependencies": { "micromark-extension-gfm-autolink-literal": "^2.0.0", "micromark-extension-gfm-footnote": "^2.0.0", @@ -13610,9 +14804,10 @@ } }, "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.0.0.tgz", - "integrity": "sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", @@ -13625,9 +14820,10 @@ } }, "node_modules/micromark-extension-gfm-footnote": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.0.0.tgz", - "integrity": "sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", @@ -13644,9 +14840,10 @@ } }, "node_modules/micromark-extension-gfm-strikethrough": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.0.0.tgz", - "integrity": "sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", @@ -13661,9 +14858,10 @@ } }, "node_modules/micromark-extension-gfm-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.0.0.tgz", - "integrity": "sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", @@ -13680,6 +14878,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "license": "MIT", "dependencies": { "micromark-util-types": "^2.0.0" }, @@ -13689,9 +14888,10 @@ } }, "node_modules/micromark-extension-gfm-task-list-item": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.0.1.tgz", - "integrity": "sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", @@ -13705,9 +14905,10 @@ } }, "node_modules/micromark-extension-math": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.0.0.tgz", - "integrity": "sha512-iJ2Q28vBoEovLN5o3GO12CpqorQRYDPT+p4zW50tGwTfJB+iv/VnB6Ini+gqa24K97DwptMBBIvVX6Bjk49oyQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz", + "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==", + "license": "MIT", "dependencies": { "@types/katex": "^0.16.0", "devlop": "^1.0.0", @@ -13723,9 +14924,9 @@ } }, "node_modules/micromark-factory-destination": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", - "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", "funding": [ { "type": "GitHub Sponsors", @@ -13736,6 +14937,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", @@ -13743,9 +14945,9 @@ } }, "node_modules/micromark-factory-label": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", - "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", "funding": [ { "type": "GitHub Sponsors", @@ -13756,6 +14958,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-character": "^2.0.0", @@ -13764,9 +14967,9 @@ } }, "node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -13777,15 +14980,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-title": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", - "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", "funding": [ { "type": "GitHub Sponsors", @@ -13796,6 +15000,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", @@ -13804,9 +15009,9 @@ } }, "node_modules/micromark-factory-whitespace": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", - "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", "funding": [ { "type": "GitHub Sponsors", @@ -13817,6 +15022,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", @@ -13825,9 +15031,9 @@ } }, "node_modules/micromark-util-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.0.1.tgz", - "integrity": "sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -13838,15 +15044,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-chunked": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", - "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", "funding": [ { "type": "GitHub Sponsors", @@ -13857,14 +15064,15 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-classify-character": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", - "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", "funding": [ { "type": "GitHub Sponsors", @@ -13875,6 +15083,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", @@ -13882,9 +15091,9 @@ } }, "node_modules/micromark-util-combine-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", - "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", "funding": [ { "type": "GitHub Sponsors", @@ -13895,15 +15104,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-chunked": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", - "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", "funding": [ { "type": "GitHub Sponsors", @@ -13914,14 +15124,15 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-decode-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", - "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", "funding": [ { "type": "GitHub Sponsors", @@ -13932,6 +15143,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^2.0.0", @@ -13940,9 +15152,9 @@ } }, "node_modules/micromark-util-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", - "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", "funding": [ { "type": "GitHub Sponsors", @@ -13952,12 +15164,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-html-tag-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", - "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", "funding": [ { "type": "GitHub Sponsors", @@ -13967,12 +15180,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-normalize-identifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", - "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", "funding": [ { "type": "GitHub Sponsors", @@ -13983,14 +15197,15 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-resolve-all": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", - "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", "funding": [ { "type": "GitHub Sponsors", @@ -14001,14 +15216,15 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", - "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", "funding": [ { "type": "GitHub Sponsors", @@ -14019,6 +15235,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", @@ -14026,9 +15243,9 @@ } }, "node_modules/micromark-util-subtokenize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.0.tgz", - "integrity": "sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", "funding": [ { "type": "GitHub Sponsors", @@ -14039,6 +15256,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", @@ -14047,9 +15265,9 @@ } }, "node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -14059,12 +15277,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", - "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", "funding": [ { "type": "GitHub Sponsors", @@ -14074,7 +15293,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromatch": { "version": "4.0.8", @@ -14093,6 +15313,7 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -14101,6 +15322,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -14113,6 +15335,7 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -14121,6 +15344,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -14133,6 +15357,7 @@ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -14141,6 +15366,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -14152,15 +15378,17 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -14168,12 +15396,14 @@ "node_modules/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "license": "MIT" }, "node_modules/ml-array-mean": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/ml-array-mean/-/ml-array-mean-1.1.6.tgz", "integrity": "sha512-MIdf7Zc8HznwIisyiJGRH9tRigg3Yf4FldW8DxKxpCCv/g5CafTw0RRu51nojVEOXuCQC7DRVVu5c7XXO/5joQ==", + "license": "MIT", "dependencies": { "ml-array-sum": "^1.1.6" } @@ -14182,6 +15412,7 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/ml-array-sum/-/ml-array-sum-1.1.6.tgz", "integrity": "sha512-29mAh2GwH7ZmiRnup4UyibQZB9+ZLyMShvt4cH4eTK+cL2oEMIZFnSyB3SS8MlsTh6q/w/yh48KmqLxmovN4Dw==", + "license": "MIT", "dependencies": { "is-any-array": "^2.0.0" } @@ -14190,6 +15421,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/ml-distance/-/ml-distance-4.0.1.tgz", "integrity": "sha512-feZ5ziXs01zhyFUUUeZV5hwc0f5JW0Sh0ckU1koZe/wdVkJdGxcP06KNQuF0WBTj8FttQUzcvQcpcrOp/XrlEw==", + "license": "MIT", "dependencies": { "ml-array-mean": "^1.1.6", "ml-distance-euclidean": "^2.0.0", @@ -14199,30 +15431,34 @@ "node_modules/ml-distance-euclidean": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ml-distance-euclidean/-/ml-distance-euclidean-2.0.0.tgz", - "integrity": "sha512-yC9/2o8QF0A3m/0IXqCTXCzz2pNEzvmcE/9HFKOZGnTjatvBbsn4lWYJkxENkA4Ug2fnYl7PXQxnPi21sgMy/Q==" + "integrity": "sha512-yC9/2o8QF0A3m/0IXqCTXCzz2pNEzvmcE/9HFKOZGnTjatvBbsn4lWYJkxENkA4Ug2fnYl7PXQxnPi21sgMy/Q==", + "license": "MIT" }, "node_modules/ml-tree-similarity": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/ml-tree-similarity/-/ml-tree-similarity-1.0.0.tgz", "integrity": "sha512-XJUyYqjSuUQkNQHMscr6tcjldsOoAekxADTplt40QKfwW6nd++1wHWV9AArl0Zvw/TIHgNaZZNvr8QGvE8wLRg==", + "license": "MIT", "dependencies": { "binary-search": "^1.3.5", "num-sort": "^2.0.0" } }, "node_modules/mrmime": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", - "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, "node_modules/mustache": { "version": "4.2.0", @@ -14238,6 +15474,7 @@ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", "dev": true, + "license": "MIT", "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", @@ -14254,6 +15491,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -14262,20 +15500,39 @@ } }, "node_modules/napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", + "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", + "license": "MIT" + }, + "node_modules/napi-postinstall": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.3.tgz", + "integrity": "sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow==", + "dev": true, + "license": "MIT", + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -14284,15 +15541,16 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT", "peer": true }, "node_modules/next": { - "version": "14.2.30", - "resolved": "https://registry.npmjs.org/next/-/next-14.2.30.tgz", - "integrity": "sha512-+COdu6HQrHHFQ1S/8BBsCag61jZacmvbuL2avHvQFbWa2Ox7bE+d8FyNgxRLjXQ5wtPyQwEmk85js/AuaG2Sbg==", + "version": "14.2.31", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.31.tgz", + "integrity": "sha512-Wyw1m4t8PhqG+or5a1U/Deb888YApC4rAez9bGhHkTsfwAy4SWKVro0GhEx4sox1856IbLhvhce2hAA6o8vkog==", "license": "MIT", "dependencies": { - "@next/env": "14.2.30", + "@next/env": "14.2.31", "@swc/helpers": "0.5.5", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", @@ -14307,15 +15565,15 @@ "node": ">=18.17.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.2.30", - "@next/swc-darwin-x64": "14.2.30", - "@next/swc-linux-arm64-gnu": "14.2.30", - "@next/swc-linux-arm64-musl": "14.2.30", - "@next/swc-linux-x64-gnu": "14.2.30", - "@next/swc-linux-x64-musl": "14.2.30", - "@next/swc-win32-arm64-msvc": "14.2.30", - "@next/swc-win32-ia32-msvc": "14.2.30", - "@next/swc-win32-x64-msvc": "14.2.30" + "@next/swc-darwin-arm64": "14.2.31", + "@next/swc-darwin-x64": "14.2.31", + "@next/swc-linux-arm64-gnu": "14.2.31", + "@next/swc-linux-arm64-musl": "14.2.31", + "@next/swc-linux-x64-gnu": "14.2.31", + "@next/swc-linux-x64-musl": "14.2.31", + "@next/swc-win32-arm64-msvc": "14.2.31", + "@next/swc-win32-ia32-msvc": "14.2.31", + "@next/swc-win32-x64-msvc": "14.2.31" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", @@ -14337,9 +15595,10 @@ } }, "node_modules/next-i18n-router": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/next-i18n-router/-/next-i18n-router-5.2.0.tgz", - "integrity": "sha512-gi6vYG+d/CwO0+cI6mU95B+iU5S6ehLccOLIl4FH5YuL1G2JKq6FvjMbN8JxAJtlLvuAgwUjxgr2mdcAAgFXWw==", + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/next-i18n-router/-/next-i18n-router-5.5.3.tgz", + "integrity": "sha512-btKVR/Mup05scxJp3EdPNALlufnZ/BO/zkIZc8a5ESdu+CNnmLW1AOkziTfRawXiZcznACCQtyfKNobC/WBTEA==", + "license": "MIT", "dependencies": { "@formatjs/intl-localematcher": "^0.5.2", "negotiator": "^0.6.3" @@ -14349,6 +15608,7 @@ "version": "5.6.0", "resolved": "https://registry.npmjs.org/next-pwa/-/next-pwa-5.6.0.tgz", "integrity": "sha512-XV8g8C6B7UmViXU8askMEYhWwQ4qc/XqJGnexbLV68hzKaGHZDMtHsm2TNxFcbR7+ypVuth/wwpiIlMwpRJJ5A==", + "license": "MIT", "dependencies": { "babel-loader": "^8.2.5", "clean-webpack-plugin": "^4.0.0", @@ -14365,6 +15625,7 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.2.1.tgz", "integrity": "sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==", + "license": "MIT", "peerDependencies": { "next": "*", "react": "*", @@ -14389,6 +15650,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", @@ -14399,9 +15661,10 @@ } }, "node_modules/node-abi": { - "version": "3.54.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.54.0.tgz", - "integrity": "sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==", + "version": "3.75.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.75.0.tgz", + "integrity": "sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==", + "license": "MIT", "dependencies": { "semver": "^7.3.5" }, @@ -14412,12 +15675,14 @@ "node_modules/node-addon-api": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", - "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==" + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "license": "MIT" }, "node_modules/node-domexception": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", "funding": [ { "type": "github", @@ -14428,6 +15693,7 @@ "url": "https://paypal.me/jimmywarting" } ], + "license": "MIT", "engines": { "node": ">=10.5.0" } @@ -14435,12 +15701,14 @@ "node_modules/node-ensure": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/node-ensure/-/node-ensure-0.0.0.tgz", - "integrity": "sha512-DRI60hzo2oKN1ma0ckc6nQWlHU69RH6xN0sjQTjMpChPfTYvKZdcQFfdYK2RWbJcKyUizSIy/l8OTGxMAM1QDw==" + "integrity": "sha512-DRI60hzo2oKN1ma0ckc6nQWlHU69RH6xN0sjQTjMpChPfTYvKZdcQFfdYK2RWbJcKyUizSIy/l8OTGxMAM1QDw==", + "license": "MIT" }, "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -14460,7 +15728,8 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/node-releases": { "version": "2.0.19", @@ -14473,6 +15742,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -14482,6 +15752,7 @@ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -14491,6 +15762,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -14502,6 +15774,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/num-sort/-/num-sort-2.1.0.tgz", "integrity": "sha512-1MQz1Ed8z2yckoBeSfkQHHO9K1yDRxxtotKSJ9yvcTUUxSvfvzEq5GwBrjjHEpMlq/k5gvXdmJ1SbYxWtpNoVg==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -14510,15 +15783,17 @@ } }, "node_modules/nwsapi": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", - "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", - "devOptional": true + "version": "2.2.21", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.21.tgz", + "integrity": "sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==", + "devOptional": true, + "license": "MIT" }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -14528,26 +15803,32 @@ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -14560,18 +15841,22 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", "object-keys": "^1.1.1" }, "engines": { @@ -14582,28 +15867,32 @@ } }, "node_modules/object.entries": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", - "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -14613,39 +15902,31 @@ } }, "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" - } - }, - "node_modules/object.hasown": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", - "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, + "license": "MIT", "dependencies": { - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 0.4" } }, "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -14657,12 +15938,14 @@ "node_modules/objectorarray": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.5.tgz", - "integrity": "sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==" + "integrity": "sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==", + "license": "ISC" }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", "dependencies": { "wrappy": "1" } @@ -14672,6 +15955,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -14686,6 +15970,7 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/onnx-proto/-/onnx-proto-4.0.4.tgz", "integrity": "sha512-aldMOB3HRoo6q/phyB6QRQxSt895HNNw82BNyZ2CMh4bjeKv7g/c+VpAFtJuEMVfYLMbRx61hbuqnKceLeDcDA==", + "license": "MIT", "dependencies": { "protobufjs": "^6.8.8" } @@ -14693,12 +15978,14 @@ "node_modules/onnxruntime-common": { "version": "1.14.0", "resolved": "https://registry.npmjs.org/onnxruntime-common/-/onnxruntime-common-1.14.0.tgz", - "integrity": "sha512-3LJpegM2iMNRX2wUmtYfeX/ytfOzNwAWKSq1HbRrKc9+uqG/FsEA0bbKZl1btQeZaXhC26l44NWpNUeXPII7Ew==" + "integrity": "sha512-3LJpegM2iMNRX2wUmtYfeX/ytfOzNwAWKSq1HbRrKc9+uqG/FsEA0bbKZl1btQeZaXhC26l44NWpNUeXPII7Ew==", + "license": "MIT" }, "node_modules/onnxruntime-node": { "version": "1.14.0", "resolved": "https://registry.npmjs.org/onnxruntime-node/-/onnxruntime-node-1.14.0.tgz", "integrity": "sha512-5ba7TWomIV/9b6NH/1x/8QEeowsb+jBEvFzU6z0T4mNsFwdPqXeFUM7uxC6QeSRkEbWu3qEB0VMjrvzN/0S9+w==", + "license": "MIT", "optional": true, "os": [ "win32", @@ -14713,6 +16000,7 @@ "version": "1.14.0", "resolved": "https://registry.npmjs.org/onnxruntime-web/-/onnxruntime-web-1.14.0.tgz", "integrity": "sha512-Kcqf43UMfW8mCydVGcX9OMXI2VN17c0p6XvR7IPSZzBf/6lteBzXHvcEVWDPmCKuGombl997HgLqj91F11DzXw==", + "license": "MIT", "dependencies": { "flatbuffers": "^1.12.0", "guid-typescript": "^1.0.9", @@ -14753,23 +16041,32 @@ } }, "node_modules/openai/node_modules/@types/node": { - "version": "18.19.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.8.tgz", - "integrity": "sha512-g1pZtPhsvGVTwmeVoexWZLTQaOvXwoSq//pTL0DHeNzUDrFnir4fgETdhjhIxjVnN+hKOuh98+E1eMLnUXstFg==", + "version": "18.19.122", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.122.tgz", + "integrity": "sha512-yzegtT82dwTNEe/9y+CM8cgb42WrUfMMCg2QqSddzO1J6uPmBD7qKCZ7dOHZP2Yrpm/kb0eqdNMn2MUyEiqBmA==", + "license": "MIT", "dependencies": { "undici-types": "~5.26.4" } }, + "node_modules/openai/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" + }, "node_modules/openapi-types": { "version": "12.1.3", "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", - "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==" + "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", + "license": "MIT" }, "node_modules/opener": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", "dev": true, + "license": "(WTFPL OR MIT)", "bin": { "opener": "bin/opener-bin.js" } @@ -14777,29 +16074,49 @@ "node_modules/option": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/option/-/option-0.2.4.tgz", - "integrity": "sha512-pkEqbDyl8ou5cpq+VsnQbe/WlEy5qS7xPzMS1U55OCG9KPvwFD46zDbxQIj3egJSFc3D+XhYOPUzz49zQAVy7A==" + "integrity": "sha512-pkEqbDyl8ou5cpq+VsnQbe/WlEy5qS7xPzMS1U55OCG9KPvwFD46zDbxQIj3egJSFc3D+XhYOPUzz49zQAVy7A==", + "license": "BSD-2-Clause" }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "license": "MIT", "engines": { "node": ">=4" } @@ -14809,6 +16126,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -14824,6 +16142,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -14838,6 +16157,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "license": "MIT", "engines": { "node": ">=6" } @@ -14846,6 +16166,7 @@ "version": "6.6.2", "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "license": "MIT", "dependencies": { "eventemitter3": "^4.0.4", "p-timeout": "^3.2.0" @@ -14861,6 +16182,7 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "license": "MIT", "dependencies": { "@types/retry": "0.12.0", "retry": "^0.13.1" @@ -14873,6 +16195,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "license": "MIT", "dependencies": { "p-finally": "^1.0.0" }, @@ -14884,6 +16207,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -14891,13 +16215,15 @@ "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -14906,12 +16232,12 @@ } }, "node_modules/parse-entities": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", - "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", - "character-entities": "^2.0.0", "character-entities-legacy": "^3.0.0", "character-reference-invalid": "^2.0.0", "decode-named-character-reference": "^1.0.0", @@ -14925,15 +16251,17 @@ } }, "node_modules/parse-entities/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -14948,12 +16276,13 @@ } }, "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", "devOptional": true, + "license": "MIT", "dependencies": { - "entities": "^4.4.0" + "entities": "^6.0.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" @@ -14963,6 +16292,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", "engines": { "node": ">=8" } @@ -14971,6 +16301,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -14978,13 +16309,15 @@ "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "license": "(WTFPL OR MIT)" }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -14992,37 +16325,38 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", - "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, - "engines": { - "node": "14 || >=16.14" - } + "license": "ISC" }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", "engines": { "node": ">=8" } @@ -15031,6 +16365,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/pdf-parse/-/pdf-parse-1.1.1.tgz", "integrity": "sha512-v6ZJ/efsBpGrGGknjtq9J/oC8tZWq0KWL5vQrk2GlzLEQPUDB1ex+13Rmidl1neNN358Jn9EHZw5y07FFtaC7A==", + "license": "MIT", "dependencies": { "debug": "^3.1.0", "node-ensure": "^0.0.0" @@ -15043,6 +16378,7 @@ "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", "dependencies": { "ms": "^2.1.1" } @@ -15051,6 +16387,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "license": "MIT", "peer": true, "dependencies": { "@types/estree": "^1.0.0", @@ -15068,6 +16405,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -15076,18 +16414,19 @@ } }, "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, "node_modules/pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -15096,6 +16435,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "license": "MIT", "dependencies": { "pinkie": "^2.0.0" }, @@ -15104,10 +16444,11 @@ } }, "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } @@ -15116,6 +16457,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "license": "MIT", "dependencies": { "find-up": "^4.0.0" }, @@ -15127,6 +16469,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -15139,6 +16482,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", "dependencies": { "p-locate": "^4.1.0" }, @@ -15150,6 +16494,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -15164,6 +16509,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", "dependencies": { "p-limit": "^2.2.0" }, @@ -15174,12 +16520,22 @@ "node_modules/platform": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", - "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" + "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==", + "license": "MIT" + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "funding": [ { "type": "opencollective", @@ -15194,10 +16550,11 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -15208,6 +16565,7 @@ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", "dev": true, + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", @@ -15225,6 +16583,7 @@ "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", "dev": true, + "license": "MIT", "dependencies": { "camelcase-css": "^2.0.1" }, @@ -15254,6 +16613,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "lilconfig": "^3.0.0", "yaml": "^2.3.4" @@ -15274,39 +16634,38 @@ } } }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", - "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", - "dev": true, - "engines": { - "node": ">=14" - } - }, "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "dependencies": { - "postcss-selector-parser": "^6.0.11" + "postcss-selector-parser": "^6.1.1" }, "engines": { "node": ">=12.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { "postcss": "^8.2.14" } }, "node_modules/postcss-nested/node_modules/postcss-selector-parser": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", - "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -15320,6 +16679,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", "dev": true, + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -15332,7 +16692,8 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/postcss/node_modules/nanoid": { "version": "3.3.11", @@ -15353,16 +16714,17 @@ } }, "node_modules/prebuild-install": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", - "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", + "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", + "license": "MIT", "dependencies": { "detect-libc": "^2.0.0", "expand-template": "^2.0.3", "github-from-package": "0.0.0", "minimist": "^1.2.3", "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", + "napi-build-utils": "^2.0.0", "node-abi": "^3.3.0", "pump": "^3.0.0", "rc": "^1.2.7", @@ -15381,6 +16743,7 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -15406,6 +16769,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "license": "MIT", "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -15422,15 +16786,17 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.4.tgz", - "integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -15445,6 +16811,7 @@ "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "license": "MIT", "engines": { "node": ">=6" }, @@ -15457,6 +16824,7 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", @@ -15471,6 +16839,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -15490,13 +16859,15 @@ "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, + "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -15509,6 +16880,7 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -15518,12 +16890,14 @@ "node_modules/prop-types/node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" }, "node_modules/property-information": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.0.tgz", - "integrity": "sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -15534,6 +16908,7 @@ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz", "integrity": "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==", "hasInstallScript": true, + "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", @@ -15555,15 +16930,23 @@ } }, "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "devOptional": true + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } }, "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -15573,14 +16956,15 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/pure-rand": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", - "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", "dev": true, "funding": [ { @@ -15591,13 +16975,15 @@ "type": "opencollective", "url": "https://opencollective.com/fast-check" } - ] + ], + "license": "MIT" }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/queue-microtask": { "version": "1.2.3", @@ -15616,12 +17002,14 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/ramda": { "version": "0.29.1", "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.29.1.tgz", "integrity": "sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/ramda" @@ -15631,6 +17019,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } @@ -15639,6 +17028,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -15653,14 +17043,16 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" }, @@ -15669,9 +17061,10 @@ } }, "node_modules/react-day-picker": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-8.10.0.tgz", - "integrity": "sha512-mz+qeyrOM7++1NCb1ARXmkjMkzWVh2GL9YiPbRjKe0zHccvekk4HE+0MPOZOrosn8r8zTHIIeOUXTmXRqmkRmg==", + "version": "8.10.1", + "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-8.10.1.tgz", + "integrity": "sha512-TMx7fNbhLk15eqcMt+7Z7S2KF7mfTId/XJDjKE8f+IUcFn0l08/kI4FiYTL/0yuOLmEcbR4Fwe3GJf/NiiMnPA==", + "license": "MIT", "funding": { "type": "individual", "url": "https://github.com/sponsors/gpbl" @@ -15682,39 +17075,41 @@ } }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^18.3.1" } }, "node_modules/react-hook-form": { - "version": "7.49.3", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.49.3.tgz", - "integrity": "sha512-foD6r3juidAT1cOZzpmD/gOKt7fRsDhXXZ0y28+Al1CHgX+AY1qIN9VSIIItXRq1dN68QrRwl1ORFlwjBaAqeQ==", + "version": "7.62.0", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.62.0.tgz", + "integrity": "sha512-7KWFejc98xqG/F4bAxpL41NB3o1nnvQO1RWZT3TqRZYL8RryQETGfEdVnJN2fy1crCiBLLjkRBVK05j24FxJGA==", + "license": "MIT", "engines": { - "node": ">=18", - "pnpm": "8" + "node": ">=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/react-hook-form" }, "peerDependencies": { - "react": "^16.8.0 || ^17 || ^18" + "react": "^16.8.0 || ^17 || ^18 || ^19" } }, "node_modules/react-i18next": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-14.0.0.tgz", - "integrity": "sha512-OCrS8rHNAmnr8ggGRDxjakzihrMW7HCbsplduTm3EuuQ6fyvWGT41ksZpqbduYoqJurBmEsEVZ1pILSUWkHZng==", + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-14.1.3.tgz", + "integrity": "sha512-wZnpfunU6UIAiJ+bxwOiTmBOAaB14ha97MjOEnLGac2RJ+h/maIYXZuTHlmyqQVX1UVHmU1YDTQ5vxLmwfXTjw==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.22.5", + "@babel/runtime": "^7.23.9", "html-parse-stringify": "^3.0.1" }, "peerDependencies": { @@ -15734,14 +17129,17 @@ "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/react-markdown": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.0.1.tgz", - "integrity": "sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.1.0.tgz", + "integrity": "sha512-xaijuJB0kzGiUdG7nc2MOMDUDBWPyGAjZtUrow9XxUeua8IqeP+VlIfAZ3bphpcLTnSZXz6z9jcVC/TCwbfgdw==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "html-url-attributes": "^3.0.0", @@ -15762,22 +17160,23 @@ } }, "node_modules/react-remove-scroll": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", - "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.1.tgz", + "integrity": "sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==", + "license": "MIT", "dependencies": { - "react-remove-scroll-bar": "^2.3.3", - "react-style-singleton": "^2.2.1", + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", "tslib": "^2.1.0", - "use-callback-ref": "^1.3.0", - "use-sidecar": "^1.1.2" + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" }, "engines": { "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -15786,19 +17185,20 @@ } }, "node_modules/react-remove-scroll-bar": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz", - "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", "dependencies": { - "react-style-singleton": "^2.2.1", + "react-style-singleton": "^2.2.2", "tslib": "^2.0.0" }, "engines": { "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -15807,20 +17207,20 @@ } }, "node_modules/react-style-singleton": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", - "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", "dependencies": { "get-nonce": "^1.0.0", - "invariant": "^2.2.4", "tslib": "^2.0.0" }, "engines": { "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -15846,9 +17246,10 @@ } }, "node_modules/react-textarea-autosize": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz", - "integrity": "sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==", + "version": "8.5.9", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.9.tgz", + "integrity": "sha512-U1DGlIQN5AwgjTyOEnI1oCcMuEr1pv1qOtklB2l4nyMGbHzWrI0eFsYK0zos2YWqAolJyG0IWJaqWmWj5ETh0A==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.13", "use-composed-ref": "^1.3.0", @@ -15858,7 +17259,7 @@ "node": ">=10" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/read-cache": { @@ -15866,14 +17267,26 @@ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", "dev": true, + "license": "MIT", "dependencies": { "pify": "^2.3.0" } }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -15889,6 +17302,7 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -15901,6 +17315,7 @@ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, + "license": "MIT", "dependencies": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" @@ -15910,17 +17325,19 @@ } }, "node_modules/reflect.getprototypeof": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", - "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", - "dev": true, + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "globalthis": "^1.0.3", - "which-builtin-type": "^1.1.3" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -15933,6 +17350,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", "integrity": "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==", + "license": "MIT", "dependencies": { "hastscript": "^6.0.0", "parse-entities": "^2.0.0", @@ -15947,6 +17365,7 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -15956,6 +17375,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -15965,6 +17385,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -15974,6 +17395,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -15983,6 +17405,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "license": "MIT", "dependencies": { "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0" @@ -15996,6 +17419,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -16005,6 +17429,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -16014,6 +17439,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "license": "MIT", "dependencies": { "character-entities": "^1.0.0", "character-entities-legacy": "^1.0.0", @@ -16031,6 +17457,7 @@ "version": "1.27.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -16038,12 +17465,14 @@ "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "license": "MIT", "dependencies": { "regenerate": "^1.4.2" }, @@ -16051,22 +17480,18 @@ "node": ">=4" } }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -16076,14 +17501,15 @@ } }, "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "license": "MIT", "dependencies": { - "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" }, @@ -16091,29 +17517,41 @@ "node": ">=4" } }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "license": "MIT" + }, "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "license": "BSD-2-Clause", "dependencies": { - "jsesc": "~0.5.0" + "jsesc": "~3.0.2" }, "bin": { "regjsparser": "bin/parser" } }, "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "license": "MIT", "bin": { "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" } }, "node_modules/remark-gfm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", - "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-gfm": "^3.0.0", @@ -16131,6 +17569,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-6.0.0.tgz", "integrity": "sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-math": "^3.0.0", @@ -16146,6 +17585,7 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", @@ -16158,9 +17598,10 @@ } }, "node_modules/remark-rehype": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.0.tgz", - "integrity": "sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -16177,6 +17618,7 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-to-markdown": "^2.0.0", @@ -16192,6 +17634,7 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -16200,6 +17643,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -16208,20 +17652,25 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -16231,6 +17680,7 @@ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, + "license": "MIT", "dependencies": { "resolve-from": "^5.0.0" }, @@ -16243,6 +17693,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -16252,6 +17703,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -16261,15 +17713,17 @@ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } @@ -16278,29 +17732,28 @@ "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, - "node_modules/rfc4648": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/rfc4648/-/rfc4648-1.5.3.tgz", - "integrity": "sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==" - }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -16315,7 +17768,9 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -16351,6 +17806,7 @@ "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.10.4", "jest-worker": "^26.2.1", @@ -16365,6 +17821,7 @@ "version": "26.6.2", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -16378,6 +17835,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -16400,6 +17858,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -16407,16 +17866,19 @@ "node_modules/rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==", + "license": "BSD-3-Clause" }, "node_modules/safe-array-concat": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", - "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "get-intrinsic": "^1.2.2", - "has-symbols": "^1.0.3", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", "isarray": "^2.0.5" }, "engines": { @@ -16429,21 +17891,46 @@ "node_modules/safe-array-concat/node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, - "node_modules/safe-regex-test": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.2.tgz", - "integrity": "sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==", + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "get-intrinsic": "^1.2.2", - "is-regex": "^1.1.4" + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -16455,13 +17942,15 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" }, "node_modules/saxes": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "devOptional": true, + "license": "ISC", "dependencies": { "xmlchars": "^2.2.0" }, @@ -16470,9 +17959,10 @@ } }, "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" } @@ -16481,6 +17971,7 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.5", "ajv": "^6.12.4", @@ -16510,6 +18001,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -16537,34 +18029,47 @@ "seroval": "^1.0" } }, - "node_modules/server-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/server-only/-/server-only-0.0.1.tgz", - "integrity": "sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==" - }, "node_modules/set-function-length": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", - "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", "dependencies": { - "define-data-property": "^1.1.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.2", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "license": "MIT", "dependencies": { - "define-data-property": "^1.0.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -16573,13 +18078,15 @@ "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" }, "node_modules/sharp": { "version": "0.32.6", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz", "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==", "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { "color": "^4.2.3", "detect-libc": "^2.0.2", @@ -16602,6 +18109,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -16614,18 +18122,78 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -16636,6 +18204,7 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, + "license": "ISC", "engines": { "node": ">=14" }, @@ -16660,7 +18229,8 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/simple-get": { "version": "4.0.1", @@ -16680,6 +18250,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "decompress-response": "^6.0.0", "once": "^1.3.1", @@ -16690,6 +18261,7 @@ "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", "dependencies": { "is-arrayish": "^0.3.1" } @@ -16697,13 +18269,15 @@ "node_modules/simple-swizzle/node_modules/is-arrayish": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT" }, "node_modules/sirv": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", "dev": true, + "license": "MIT", "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", @@ -16717,20 +18291,22 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/solid-js": { - "version": "1.9.7", - "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.9.7.tgz", - "integrity": "sha512-/saTKi8iWEM233n5OSi1YHCCuh66ZIQ7aK2hsToPe4tqGm7qAejU1SwNuTPivbWAYq7SjuHVVYxxuZQNRbICiw==", + "version": "1.9.8", + "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.9.8.tgz", + "integrity": "sha512-zF9Whfqk+s8wWuyDKnE7ekl+dJburjdZq54O6X1k4XChA57uZ5FOauYAa0s4I44XkBOM3CZmPrZC0DGjH9fKjQ==", "license": "MIT", "peer": true, "dependencies": { @@ -16743,6 +18319,7 @@ "version": "0.10.7", "resolved": "https://registry.npmjs.org/solid-swr-store/-/solid-swr-store-0.10.7.tgz", "integrity": "sha512-A6d68aJmRP471aWqKKPE2tpgOiR5fH4qXQNfKIec+Vap+MGQm3tvXlT8n0I8UgJSlNAsSAUuw2VTviH2h3Vv5g==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -16752,31 +18329,35 @@ } }, "node_modules/sonner": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/sonner/-/sonner-1.3.1.tgz", - "integrity": "sha512-+rOAO56b2eI3q5BtgljERSn2umRk63KFIvgb2ohbZ5X+Eb5u+a/7/0ZgswYqgBMg8dyl7n6OXd9KasA8QF9ToA==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/sonner/-/sonner-1.7.4.tgz", + "integrity": "sha512-DIS8z4PfJRbIyfVFDVnK9rO3eYDtse4Omcm6bt0oEr5/jtLgysmjuBl1frJ9E/EQZrFmKx2A8m/s5s9CRXIzhw==", + "license": "MIT", "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", + "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" } }, "node_modules/source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "license": "MIT" }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -16786,6 +18367,7 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -16795,12 +18377,14 @@ "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead" + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "license": "MIT" }, "node_modules/space-separated-tokens": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -16809,12 +18393,14 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" }, "node_modules/sswr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/sswr/-/sswr-2.0.0.tgz", "integrity": "sha512-mV0kkeBHcjcb0M5NqKtKVg/uTIYNlIIniyDfSGrSfxpEdM9C365jK0z55pl9K0xAkNTJi2OAOVFQpgMPUk+V0w==", + "license": "MIT", "dependencies": { "swrev": "^4.0.0" }, @@ -16822,11 +18408,19 @@ "svelte": "^4.0.0" } }, + "node_modules/stable-hash": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", + "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", + "dev": true, + "license": "MIT" + }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^2.0.0" }, @@ -16839,17 +18433,19 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "dev": true, + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "license": "MIT", "dependencies": { - "internal-slot": "^1.0.4" + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -16880,6 +18476,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } @@ -16889,6 +18486,7 @@ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, + "license": "MIT", "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -16902,6 +18500,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -16920,6 +18519,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -16933,13 +18533,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -16952,6 +18554,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -16962,33 +18565,72 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/string.prototype.matchall": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", - "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "regexp.prototype.flags": "^1.5.0", - "set-function-name": "^2.0.0", - "side-channel": "^1.0.4" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -16998,35 +18640,45 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/stringify-entities": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz", - "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" @@ -17040,6 +18692,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "license": "BSD-2-Clause", "dependencies": { "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", @@ -17054,6 +18707,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -17067,6 +18721,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -17079,6 +18734,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -17087,6 +18743,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "license": "MIT", "engines": { "node": ">=10" } @@ -17096,6 +18753,7 @@ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -17105,6 +18763,7 @@ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, + "license": "MIT", "dependencies": { "min-indent": "^1.0.0" }, @@ -17117,6 +18776,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -17124,18 +18784,29 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/style-to-js": { + "version": "1.1.17", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.17.tgz", + "integrity": "sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==", + "license": "MIT", + "dependencies": { + "style-to-object": "1.0.9" + } + }, "node_modules/style-to-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.5.tgz", - "integrity": "sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.9.tgz", + "integrity": "sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==", + "license": "MIT", "dependencies": { - "inline-style-parser": "0.2.2" + "inline-style-parser": "0.2.4" } }, "node_modules/styled-jsx": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "license": "MIT", "dependencies": { "client-only": "0.0.1" }, @@ -17159,6 +18830,7 @@ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", @@ -17181,6 +18853,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } @@ -17189,6 +18862,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -17200,6 +18874,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -17233,19 +18908,11 @@ "node": ">=16" } }, - "node_modules/svelte/node_modules/axobject-query": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", - "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", - "peer": true, - "dependencies": { - "dequal": "^2.0.3" - } - }, "node_modules/swr": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/swr/-/swr-2.2.0.tgz", "integrity": "sha512-AjqHOv2lAhkuUdIiBu9xbuettzAzWXmCEcLONNKJRba87WAefz8Ca9d6ds/SzrPc235n1IxWYdhJ2zF3MNUaoQ==", + "license": "MIT", "dependencies": { "use-sync-external-store": "^1.2.0" }, @@ -17257,6 +18924,7 @@ "version": "0.10.6", "resolved": "https://registry.npmjs.org/swr-store/-/swr-store-0.10.6.tgz", "integrity": "sha512-xPjB1hARSiRaNNlUQvWSVrG5SirCjk2TmaUyzzvk69SZQan9hCJqw/5rG9iL7xElHU784GxRPISClq4488/XVw==", + "license": "MIT", "dependencies": { "dequal": "^2.0.3" }, @@ -17267,12 +18935,14 @@ "node_modules/swrev": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/swrev/-/swrev-4.0.0.tgz", - "integrity": "sha512-LqVcOHSB4cPGgitD1riJ1Hh4vdmITOp+BkmfmXRh4hSF/t7EnS4iD+SOTmq7w5pPm/SiPeto4ADbKS6dHUDWFA==" + "integrity": "sha512-LqVcOHSB4cPGgitD1riJ1Hh4vdmITOp+BkmfmXRh4hSF/t7EnS4iD+SOTmq7w5pPm/SiPeto4ADbKS6dHUDWFA==", + "license": "MIT" }, "node_modules/swrv": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/swrv/-/swrv-1.0.4.tgz", "integrity": "sha512-zjEkcP8Ywmj+xOJW3lIT65ciY/4AL4e/Or7Gj0MzU3zBJNMdJiT8geVZhINavnlHRMMCcJLHhraLTAiDOTmQ9g==", + "license": "Apache-2.0", "peerDependencies": { "vue": ">=3.2.26 < 4" } @@ -17281,49 +18951,49 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/tailwind-merge": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.2.0.tgz", - "integrity": "sha512-SqqhhaL0T06SW59+JVNfAqKdqLs0497esifRrZ7jOaefP3o64fdFNDMrAQWZFMxTLJPiHVjRLUywT8uFz1xNWQ==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.0.tgz", + "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==", "dev": true, - "dependencies": { - "@babel/runtime": "^7.23.5" - }, + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/dcastil" } }, "node_modules/tailwindcss": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", - "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==", + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", "dev": true, + "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", - "chokidar": "^3.5.3", + "chokidar": "^3.6.0", "didyoumean": "^1.2.2", "dlv": "^1.1.3", - "fast-glob": "^3.3.0", + "fast-glob": "^3.3.2", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "jiti": "^1.19.1", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", "normalize-path": "^3.0.0", "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", "postcss-import": "^15.1.0", "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" }, "bin": { "tailwind": "lib/cli.js", @@ -17338,15 +19008,17 @@ "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", "dev": true, + "license": "MIT", "peerDependencies": { "tailwindcss": ">=3.0.0 || insiders" } }, "node_modules/tailwindcss/node_modules/postcss-selector-parser": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", - "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -17356,9 +19028,11 @@ } }, "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", + "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", + "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -17381,6 +19055,7 @@ "version": "3.1.7", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "license": "MIT", "dependencies": { "b4a": "^1.6.4", "fast-fifo": "^1.2.0", @@ -17391,6 +19066,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -17399,6 +19075,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "license": "MIT", "dependencies": { "is-stream": "^2.0.0", "temp-dir": "^2.0.0", @@ -17416,6 +19093,7 @@ "version": "0.16.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -17507,6 +19185,7 @@ "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -17545,6 +19224,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -17559,6 +19239,7 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -17569,6 +19250,7 @@ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, + "license": "ISC", "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -17582,7 +19264,9 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -17611,13 +19295,15 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", "dev": true, + "license": "MIT", "dependencies": { "any-promise": "^1.0.0" } @@ -17627,6 +19313,7 @@ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", "dev": true, + "license": "MIT", "dependencies": { "thenify": ">= 3.1.0 < 4" }, @@ -17634,11 +19321,57 @@ "node": ">=0.8" } }, + "node_modules/tinyglobby": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", + "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/to-regex-range": { "version": "5.0.1", @@ -17657,15 +19390,17 @@ "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", "devOptional": true, + "license": "BSD-3-Clause", "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -17679,49 +19414,55 @@ "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/ts-api-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=16.13.0" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=4.2.0" + "typescript": ">=4.8.4" } }, "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/ts-node": { "version": "10.9.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, + "license": "MIT", "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -17764,13 +19505,15 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/tsconfig-paths": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, + "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -17783,6 +19526,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, + "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -17795,19 +19539,22 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", "dependencies": { "safe-buffer": "^5.0.1" }, @@ -17820,6 +19567,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -17832,6 +19580,7 @@ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -17841,6 +19590,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -17849,27 +19599,30 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -17879,15 +19632,18 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" }, "engines": { "node": ">= 0.4" @@ -17897,23 +19653,31 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "devOptional": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -17923,33 +19687,40 @@ } }, "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bound": "^1.0.3", "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", + "license": "MIT" }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "license": "MIT", "engines": { "node": ">=4" } @@ -17958,6 +19729,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "license": "MIT", "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -17967,9 +19739,10 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "license": "MIT", "engines": { "node": ">=4" } @@ -17978,14 +19751,16 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/unified": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", - "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", @@ -18004,6 +19779,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "license": "MIT", "dependencies": { "crypto-random-string": "^2.0.0" }, @@ -18015,6 +19791,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -18027,6 +19804,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -18039,6 +19817,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-visit": "^5.0.0" @@ -18052,6 +19831,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -18064,6 +19844,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", @@ -18078,6 +19859,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" @@ -18092,14 +19874,51 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "devOptional": true, + "license": "MIT", "engines": { "node": ">= 4.0.0" } }, + "node_modules/unrs-resolver": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", + "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "napi-postinstall": "^0.3.0" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.11.1", + "@unrs/resolver-binding-android-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-x64": "1.11.1", + "@unrs/resolver-binding-freebsd-x64": "1.11.1", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", + "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-musl": "1.11.1", + "@unrs/resolver-binding-wasm32-wasi": "1.11.1", + "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", + "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", + "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" + } + }, "node_modules/upath": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "license": "MIT", "engines": { "node": ">=4", "yarn": "*" @@ -18139,6 +19958,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -18148,15 +19968,17 @@ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", "devOptional": true, + "license": "MIT", "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" } }, "node_modules/use-callback-ref": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.1.tgz", - "integrity": "sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", "dependencies": { "tslib": "^2.0.0" }, @@ -18164,8 +19986,8 @@ "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -18174,19 +19996,26 @@ } }, "node_modules/use-composed-ref": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", - "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.4.0.tgz", + "integrity": "sha512-djviaxuOOh7wkj0paeO1Q/4wMZ8Zrnag5H6yBvzN7AKKe8beOaED9SF5/ByLqsku8NP4zQqsvM2u3ew/tJK8/w==", + "license": "MIT", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, "node_modules/use-isomorphic-layout-effect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", - "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.1.tgz", + "integrity": "sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==", + "license": "MIT", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -18195,14 +20024,15 @@ } }, "node_modules/use-latest": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz", - "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.3.0.tgz", + "integrity": "sha512-mhg3xdm9NaM8q+gLT8KryJPnRFOz1/5XPBhmDEVZK1webPzDjrPk7f/mbpeLqTgB9msytYWANxgALOCJKnLvcQ==", + "license": "MIT", "dependencies": { "use-isomorphic-layout-effect": "^1.1.1" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -18211,9 +20041,10 @@ } }, "node_modules/use-sidecar": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", - "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", "dependencies": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" @@ -18222,8 +20053,8 @@ "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -18232,17 +20063,19 @@ } }, "node_modules/use-sync-external-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz", + "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==", + "license": "MIT", "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, "node_modules/uuid": { "version": "9.0.1", @@ -18252,6 +20085,7 @@ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -18260,13 +20094,15 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, + "license": "ISC", "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -18277,12 +20113,12 @@ } }, "node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", "vfile-message": "^4.0.0" }, "funding": { @@ -18291,9 +20127,10 @@ } }, "node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" @@ -18307,21 +20144,23 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/vue": { - "version": "3.4.15", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.15.tgz", - "integrity": "sha512-jC0GH4KkWLWJOEQjOpkqU1bQsBwf4R1rsFtw5GQJbjHVKWDzO6P0nWWBTmjp1xSemAioDFj1jdaK1qa3DnMQoQ==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.18.tgz", + "integrity": "sha512-7W4Y4ZbMiQ3SEo+m9lnoNpV9xG7QVMLa+/0RFwwiAVkeYoyGXqWE85jabU4pllJNUzqfLShJ5YLptewhCWUgNA==", + "license": "MIT", "peer": true, "dependencies": { - "@vue/compiler-dom": "3.4.15", - "@vue/compiler-sfc": "3.4.15", - "@vue/runtime-dom": "3.4.15", - "@vue/server-renderer": "3.4.15", - "@vue/shared": "3.4.15" + "@vue/compiler-dom": "3.5.18", + "@vue/compiler-sfc": "3.5.18", + "@vue/runtime-dom": "3.5.18", + "@vue/server-renderer": "3.5.18", + "@vue/shared": "3.5.18" }, "peerDependencies": { "typescript": "*" @@ -18337,6 +20176,7 @@ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", "devOptional": true, + "license": "MIT", "dependencies": { "xml-name-validator": "^4.0.0" }, @@ -18349,6 +20189,7 @@ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "makeerror": "1.0.12" } @@ -18368,9 +20209,10 @@ } }, "node_modules/web-streams-polyfill": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz", - "integrity": "sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", "engines": { "node": ">= 8" } @@ -18380,27 +20222,29 @@ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "devOptional": true, + "license": "BSD-2-Clause", "engines": { "node": ">=12" } }, "node_modules/webpack": { - "version": "5.99.9", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.9.tgz", - "integrity": "sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg==", + "version": "5.101.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.101.0.tgz", + "integrity": "sha512-B4t+nJqytPeuZlHuIKTbalhljIFXeNRqrUGAQgTGlfOl2lXXKXw+yZu6bicycP+PUlM44CxBjCFD6aciKFT3LQ==", "license": "MIT", "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", - "@types/estree": "^1.0.6", + "@types/estree": "^1.0.8", "@types/json-schema": "^7.0.15", "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.14.0", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", + "enhanced-resolve": "^5.17.2", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -18414,7 +20258,7 @@ "tapable": "^2.1.1", "terser-webpack-plugin": "^5.3.11", "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" + "webpack-sources": "^3.3.3" }, "bin": { "webpack": "bin/webpack.js" @@ -18437,6 +20281,7 @@ "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz", "integrity": "sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==", "dev": true, + "license": "MIT", "dependencies": { "@discoveryjs/json-ext": "0.5.7", "acorn": "^8.0.4", @@ -18464,6 +20309,7 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10" } @@ -18491,9 +20337,10 @@ } }, "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", + "license": "MIT", "peer": true, "engines": { "node": ">=10.13.0" @@ -18533,6 +20380,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", "peer": true, "dependencies": { "esrecurse": "^4.3.0", @@ -18546,6 +20394,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", "peer": true, "engines": { "node": ">=4.0" @@ -18583,6 +20432,7 @@ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", "devOptional": true, + "license": "MIT", "dependencies": { "iconv-lite": "0.6.3" }, @@ -18595,6 +20445,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "devOptional": true, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -18607,6 +20458,7 @@ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", "devOptional": true, + "license": "MIT", "engines": { "node": ">=12" } @@ -18615,6 +20467,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -18623,13 +20476,15 @@ "node_modules/whatwg-url/node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -18641,38 +20496,43 @@ } }, "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "license": "MIT", "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-builtin-type": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "license": "MIT", "dependencies": { - "function.prototype.name": "^1.1.5", - "has-tostringtag": "^1.0.0", + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.0.2", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", + "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -18685,33 +20545,39 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "license": "MIT" }, "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "dev": true, + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "license": "MIT", "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -18720,10 +20586,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/workbox-background-sync": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", + "license": "MIT", "dependencies": { "idb": "^7.0.1", "workbox-core": "6.6.0" @@ -18733,6 +20610,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", + "license": "MIT", "dependencies": { "workbox-core": "6.6.0" } @@ -18741,6 +20619,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", + "license": "MIT", "dependencies": { "@apideck/better-ajv-errors": "^0.3.1", "@babel/core": "^7.11.1", @@ -18788,6 +20667,7 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "license": "MIT", "dependencies": { "json-schema": "^0.4.0", "jsonpointer": "^5.0.0", @@ -18801,14 +20681,15 @@ } }, "node_modules/workbox-build/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -18819,6 +20700,8 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -18837,12 +20720,15 @@ "node_modules/workbox-build/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" }, "node_modules/workbox-build/node_modules/source-map": { "version": "0.8.0-beta.0", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "deprecated": "The work that was done in this beta branch won't be included in future versions", + "license": "BSD-3-Clause", "dependencies": { "whatwg-url": "^7.0.0" }, @@ -18854,6 +20740,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "license": "MIT", "dependencies": { "punycode": "^2.1.0" } @@ -18861,12 +20748,14 @@ "node_modules/workbox-build/node_modules/webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "license": "BSD-2-Clause" }, "node_modules/workbox-build/node_modules/whatwg-url": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "license": "MIT", "dependencies": { "lodash.sortby": "^4.7.0", "tr46": "^1.0.1", @@ -18878,6 +20767,7 @@ "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", "deprecated": "workbox-background-sync@6.6.0", + "license": "MIT", "dependencies": { "workbox-core": "6.6.0" } @@ -18885,12 +20775,14 @@ "node_modules/workbox-core": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", - "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==" + "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==", + "license": "MIT" }, "node_modules/workbox-expiration": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", + "license": "MIT", "dependencies": { "idb": "^7.0.1", "workbox-core": "6.6.0" @@ -18900,6 +20792,8 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", + "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained", + "license": "MIT", "dependencies": { "workbox-background-sync": "6.6.0", "workbox-core": "6.6.0", @@ -18911,6 +20805,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", + "license": "MIT", "dependencies": { "workbox-core": "6.6.0" } @@ -18919,6 +20814,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", + "license": "MIT", "dependencies": { "workbox-core": "6.6.0", "workbox-routing": "6.6.0", @@ -18929,6 +20825,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", + "license": "MIT", "dependencies": { "workbox-core": "6.6.0" } @@ -18937,6 +20834,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", + "license": "MIT", "dependencies": { "workbox-cacheable-response": "6.6.0", "workbox-core": "6.6.0", @@ -18950,6 +20848,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", + "license": "MIT", "dependencies": { "workbox-core": "6.6.0" } @@ -18958,6 +20857,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", + "license": "MIT", "dependencies": { "workbox-core": "6.6.0" } @@ -18966,6 +20866,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", + "license": "MIT", "dependencies": { "workbox-core": "6.6.0", "workbox-routing": "6.6.0" @@ -18974,12 +20875,14 @@ "node_modules/workbox-sw": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", - "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==" + "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==", + "license": "MIT" }, "node_modules/workbox-webpack-plugin": { "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz", "integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==", + "license": "MIT", "dependencies": { "fast-json-stable-stringify": "^2.1.0", "pretty-bytes": "^5.4.1", @@ -18998,6 +20901,7 @@ "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "license": "MIT", "dependencies": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" @@ -19007,6 +20911,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", + "license": "MIT", "dependencies": { "@types/trusted-types": "^2.0.2", "workbox-core": "6.6.0" @@ -19017,6 +20922,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -19035,6 +20941,7 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -19051,13 +20958,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -19068,10 +20977,11 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -19084,6 +20994,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -19096,6 +21007,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -19109,13 +21021,15 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" }, "node_modules/write-file-atomic": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -19128,7 +21042,8 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/ws": { "version": "8.18.3", @@ -19156,6 +21071,7 @@ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", "devOptional": true, + "license": "Apache-2.0", "engines": { "node": ">=12" } @@ -19164,6 +21080,7 @@ "version": "10.1.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-10.1.1.tgz", "integrity": "sha512-OyzrcFLL/nb6fMGHbiRDuPup9ljBycsdCypwuyg5AAHvyWzGfChJpCXMG88AGTIMFhGZ9RccFN1e6lhg3hkwKg==", + "license": "MIT", "engines": { "node": ">=4.0" } @@ -19172,12 +21089,14 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", "engines": { "node": ">=0.4" } @@ -19187,6 +21106,7 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } @@ -19194,14 +21114,19 @@ "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" }, "node_modules/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", + "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, "engines": { - "node": ">= 14" + "node": ">= 14.6" } }, "node_modules/yargs": { @@ -19209,6 +21134,7 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -19227,6 +21153,7 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } @@ -19235,13 +21162,15 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/yargs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -19256,6 +21185,7 @@ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -19265,6 +21195,7 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -19285,6 +21216,7 @@ "version": "3.20.3", "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.20.3.tgz", "integrity": "sha512-/Q3wnyxAfCt94ZcrGiXXoiAfRqasxl9CX64LZ9fj+4dKH68zulUtU0uk1WMxQPfAxQ0ZI70dKzcoW7hHj+DwSQ==", + "license": "ISC", "peerDependencies": { "zod": "^3.20.0" } @@ -19322,6 +21254,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" From bc1f9e59777f3a4a1d36a9d8a541981e86a92608 Mon Sep 17 00:00:00 2001 From: Kaylee Cisna Date: Sat, 9 Aug 2025 20:34:39 -0500 Subject: [PATCH 97/98] fix: move loading.tsx into workspaceid folder to resolve import path --- app/{[locale] => en/[workspaceid]}/loading.tsx | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename app/{[locale] => en/[workspaceid]}/loading.tsx (100%) diff --git a/app/[locale]/loading.tsx b/app/en/[workspaceid]/loading.tsx similarity index 100% rename from app/[locale]/loading.tsx rename to app/en/[workspaceid]/loading.tsx From 35f7bd1ffd47cfa4d2e97df1bff96ea45d56d3f9 Mon Sep 17 00:00:00 2001 From: Kaylee Cisna Date: Mon, 18 Aug 2025 15:17:49 -0500 Subject: [PATCH 98/98] Add missing local folder and loading.tsx file --- app/loading.tsx | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 app/loading.tsx diff --git a/app/loading.tsx b/app/loading.tsx new file mode 100644 index 0000000000..32ecbbaab4 --- /dev/null +++ b/app/loading.tsx @@ -0,0 +1,8 @@ +export default function Loading() { + return ( +
+
+ Loading... +
+ ) +}