From d386f47de700fa446dd36fbe2539c98f0f35db5f Mon Sep 17 00:00:00 2001 From: michaelessiet Date: Thu, 26 Dec 2024 19:11:54 +0100 Subject: [PATCH 1/7] docs: add examples directory and readme --- examples/README.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 examples/README.md diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 0000000..5af4c81 --- /dev/null +++ b/examples/README.md @@ -0,0 +1,6 @@ +# Solana Agent Kit Examples + +This directory only contains this README file which is a collection of examples and projects built using the Solana Agent Kit, built by the Solana Agent Kit team and the community. + +## Starter Templates +- [SolanaAgentKit + 🦜️🔗 LangChain + Next.js Starter Template](https://github.com/michaelessiet/solana-agent-nextjs-starter-langchain) From f3c895560e8a5888ba9582ec4a722c7230acbaca Mon Sep 17 00:00:00 2001 From: michaelessiet Date: Sun, 29 Dec 2024 20:09:05 +0100 Subject: [PATCH 2/7] feat: add the nextjs starter template to examples/ dir --- examples/README.md | 6 ------ examples/agent-kit-nextjs-langchain | 1 + 2 files changed, 1 insertion(+), 6 deletions(-) delete mode 100644 examples/README.md create mode 160000 examples/agent-kit-nextjs-langchain diff --git a/examples/README.md b/examples/README.md deleted file mode 100644 index 5af4c81..0000000 --- a/examples/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Solana Agent Kit Examples - -This directory only contains this README file which is a collection of examples and projects built using the Solana Agent Kit, built by the Solana Agent Kit team and the community. - -## Starter Templates -- [SolanaAgentKit + 🦜️🔗 LangChain + Next.js Starter Template](https://github.com/michaelessiet/solana-agent-nextjs-starter-langchain) diff --git a/examples/agent-kit-nextjs-langchain b/examples/agent-kit-nextjs-langchain new file mode 160000 index 0000000..0d53c48 --- /dev/null +++ b/examples/agent-kit-nextjs-langchain @@ -0,0 +1 @@ +Subproject commit 0d53c48c0353dc4652b338eb7803147570907040 From 1cbdb82bb5f37fabf67d694f02a2c57eaa767c36 Mon Sep 17 00:00:00 2001 From: michaelessiet Date: Sun, 29 Dec 2024 20:12:48 +0100 Subject: [PATCH 3/7] feat: add the nextjs starter template to examples/ dir --- examples/agent-kit-nextjs-langchain | 1 - .../agent-kit-nextjs-langchain/.env.example | 4 + .../agent-kit-nextjs-langchain/.eslintrc.json | 3 + .../agent-kit-nextjs-langchain/.gitignore | 43 + .../.prettierrc.json | 1 + examples/agent-kit-nextjs-langchain/LICENSE | 21 + examples/agent-kit-nextjs-langchain/README.md | 56 + .../app/api/chat/route.ts | 71 + .../app/globals.css | 33 + .../agent-kit-nextjs-langchain/app/layout.tsx | 45 + .../agent-kit-nextjs-langchain/app/page.tsx | 75 + .../components/ChatMessageBubble.tsx | 39 + .../components/ChatWindow.tsx | 248 + .../components/IntermediateStep.tsx | 50 + .../data/DefaultRetrievalText.ts | 540 ++ .../agent-kit-nextjs-langchain/next.config.js | 4 + .../agent-kit-nextjs-langchain/package.json | 44 + .../agent-kit-nextjs-langchain/pnpm-lock.yaml | 7733 +++++++++++++++++ .../postcss.config.js | 6 + .../public/images/favicon.ico | Bin 0 -> 15406 bytes .../public/images/og-image.png | Bin 0 -> 48617 bytes .../public/images/title-card.png | Bin 0 -> 101032 bytes .../tailwind.config.js | 18 + .../agent-kit-nextjs-langchain/tsconfig.json | 28 + 24 files changed, 9062 insertions(+), 1 deletion(-) delete mode 160000 examples/agent-kit-nextjs-langchain create mode 100644 examples/agent-kit-nextjs-langchain/.env.example create mode 100644 examples/agent-kit-nextjs-langchain/.eslintrc.json create mode 100644 examples/agent-kit-nextjs-langchain/.gitignore create mode 100644 examples/agent-kit-nextjs-langchain/.prettierrc.json create mode 100644 examples/agent-kit-nextjs-langchain/LICENSE create mode 100644 examples/agent-kit-nextjs-langchain/README.md create mode 100644 examples/agent-kit-nextjs-langchain/app/api/chat/route.ts create mode 100644 examples/agent-kit-nextjs-langchain/app/globals.css create mode 100644 examples/agent-kit-nextjs-langchain/app/layout.tsx create mode 100644 examples/agent-kit-nextjs-langchain/app/page.tsx create mode 100644 examples/agent-kit-nextjs-langchain/components/ChatMessageBubble.tsx create mode 100644 examples/agent-kit-nextjs-langchain/components/ChatWindow.tsx create mode 100644 examples/agent-kit-nextjs-langchain/components/IntermediateStep.tsx create mode 100644 examples/agent-kit-nextjs-langchain/data/DefaultRetrievalText.ts create mode 100644 examples/agent-kit-nextjs-langchain/next.config.js create mode 100644 examples/agent-kit-nextjs-langchain/package.json create mode 100644 examples/agent-kit-nextjs-langchain/pnpm-lock.yaml create mode 100644 examples/agent-kit-nextjs-langchain/postcss.config.js create mode 100644 examples/agent-kit-nextjs-langchain/public/images/favicon.ico create mode 100644 examples/agent-kit-nextjs-langchain/public/images/og-image.png create mode 100644 examples/agent-kit-nextjs-langchain/public/images/title-card.png create mode 100644 examples/agent-kit-nextjs-langchain/tailwind.config.js create mode 100644 examples/agent-kit-nextjs-langchain/tsconfig.json diff --git a/examples/agent-kit-nextjs-langchain b/examples/agent-kit-nextjs-langchain deleted file mode 160000 index 0d53c48..0000000 --- a/examples/agent-kit-nextjs-langchain +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0d53c48c0353dc4652b338eb7803147570907040 diff --git a/examples/agent-kit-nextjs-langchain/.env.example b/examples/agent-kit-nextjs-langchain/.env.example new file mode 100644 index 0000000..99650b7 --- /dev/null +++ b/examples/agent-kit-nextjs-langchain/.env.example @@ -0,0 +1,4 @@ +LANGCHAIN_CALLBACKS_BACKGROUND=false +OPENAI_API_KEY= +RPC_URL= +SOLANA_PRIVATE_KEY= diff --git a/examples/agent-kit-nextjs-langchain/.eslintrc.json b/examples/agent-kit-nextjs-langchain/.eslintrc.json new file mode 100644 index 0000000..bffb357 --- /dev/null +++ b/examples/agent-kit-nextjs-langchain/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "next/core-web-vitals" +} diff --git a/examples/agent-kit-nextjs-langchain/.gitignore b/examples/agent-kit-nextjs-langchain/.gitignore new file mode 100644 index 0000000..d1e196e --- /dev/null +++ b/examples/agent-kit-nextjs-langchain/.gitignore @@ -0,0 +1,43 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions +.env \ No newline at end of file diff --git a/examples/agent-kit-nextjs-langchain/.prettierrc.json b/examples/agent-kit-nextjs-langchain/.prettierrc.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/examples/agent-kit-nextjs-langchain/.prettierrc.json @@ -0,0 +1 @@ +{} diff --git a/examples/agent-kit-nextjs-langchain/LICENSE b/examples/agent-kit-nextjs-langchain/LICENSE new file mode 100644 index 0000000..136a251 --- /dev/null +++ b/examples/agent-kit-nextjs-langchain/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 LangChain + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/examples/agent-kit-nextjs-langchain/README.md b/examples/agent-kit-nextjs-langchain/README.md new file mode 100644 index 0000000..35a905d --- /dev/null +++ b/examples/agent-kit-nextjs-langchain/README.md @@ -0,0 +1,56 @@ +# SolanaAgentKit 🦜️🔗 LangChain + Next.js Starter Template + +[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/michaelessiet/solana-agent-nextjs-starter-langchain) +[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmichaelessiet%2Fsolana-agent-nextjs-starter-langchain) + +This template scaffolds a SolanaAgentKit + LangChain.js + Next.js starter app. + +The agent uses [LangGraph.js](https://langchain-ai.github.io/langgraphjs/), LangChain's framework for building agentic workflows. They use preconfigured helper functions to minimize boilerplate, but you can replace them with custom graphs as desired. + +![Demo GIF](/public/images/agent-convo.gif) + +It's free-tier friendly too! Check out the [bundle size stats below](#-bundle-size). + +## 🚀 Getting Started + +First, clone this repo and download it locally. + +Next, you'll need to set up environment variables in your repo's `.env.local` file. Copy the `.env.example` file to `.env.local`. +To start, you'll just need to add your OpenAI API key, Solana RPC URL and wallet private key in base 58 string form. + +Next, install the required packages using your preferred package manager (e.g. `pnpm`). + +```bash +pnpm install +``` + +Now you're ready to run the development server: + +```bash +pnpm dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result! Ask the bot something and you'll see a streamed response: + +![A streaming conversation between the user and the AI](/public/images/chat-conversation.png) + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +Backend logic lives in `app/api/chat/route.ts`. From here, you can change the prompt and model, or add other modules and logic. + +## 📚 Learn More + +To learn more about what you can do with SolanaAgentKit and LangChain.js, check out the docs here: + +- https://github.com/sendaifun/solana-agent-kit +- https://js.langchain.com/docs/ + +## ▲ Deploy on Vercel + +When ready, you can deploy your app on the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme). + +Check out the [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. + +## Thank You! + +Thanks for reading! If you have any questions or comments, please drop an issue on this repo or reach out to us on [X](https://x.com/sendaifun) diff --git a/examples/agent-kit-nextjs-langchain/app/api/chat/route.ts b/examples/agent-kit-nextjs-langchain/app/api/chat/route.ts new file mode 100644 index 0000000..06e6911 --- /dev/null +++ b/examples/agent-kit-nextjs-langchain/app/api/chat/route.ts @@ -0,0 +1,71 @@ +import { NextRequest, NextResponse } from "next/server"; +import { ChatOpenAI } from "@langchain/openai"; +import { MemorySaver } from "@langchain/langgraph"; +import { createReactAgent } from "@langchain/langgraph/prebuilt"; +import { SolanaAgentKit, createSolanaTools } from "solana-agent-kit"; + +const llm = new ChatOpenAI({ + temperature: 0.7, + model: "gpt-4o-mini", +}); + +const solanaAgent = new SolanaAgentKit( + process.env.SOLANA_PRIVATE_KEY!, + process.env.RPC_URL, + process.env.OPENAI_API_KEY!, +); + +const tools = createSolanaTools(solanaAgent); +const memory = new MemorySaver(); + +const agent = createReactAgent({ + llm, + tools, + checkpointSaver: memory, + messageModifier: ` + You are a helpful agent that can interact onchain using the Solana Agent Kit. You are + empowered to interact onchain using your tools. If you ever need funds, you can request them from the + faucet. If not, you can provide your wallet details and request funds from the user. If there is a 5XX + (internal) HTTP error code, ask the user to try again later. If someone asks you to do something you + can't do with your currently available tools, you must say so, and encourage them to implement it + themselves using the Solana Agent Kit, recommend they go to https://www.solanaagentkit.xyz for more information. Be + concise and helpful with your responses. Refrain from restating your tools' descriptions unless it is explicitly requested. + `, +}); + +export async function POST(req: NextRequest) { + try { + const body = await req.json(); + const messages = body.messages ?? []; + + const eventStream = agent.streamEvents( + { + messages, + }, + { + version: "v2", + configurable: { + thread_id: "Solana Agent Kit!", + }, + }, + ); + + const textEncoder = new TextEncoder(); + const transformStream = new ReadableStream({ + async start(controller) { + for await (const { event, data } of eventStream) { + if (event === "on_chat_model_stream") { + if (!!data.chunk.content) { + controller.enqueue(textEncoder.encode(data.chunk.content)); + } + } + } + controller.close(); + }, + }); + + return new Response(transformStream); + } catch (e: any) { + return NextResponse.json({ error: e.message }, { status: e.status ?? 500 }); + } +} diff --git a/examples/agent-kit-nextjs-langchain/app/globals.css b/examples/agent-kit-nextjs-langchain/app/globals.css new file mode 100644 index 0000000..bbdc80a --- /dev/null +++ b/examples/agent-kit-nextjs-langchain/app/globals.css @@ -0,0 +1,33 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +body { + color: #f8f8f8; + background: #131318; +} + +body input, +body textarea { + color: black; +} + +a { + color: #2d7bd4; +} + +a:hover { + border-bottom: 1px solid; +} + +p { + margin: 8px 0; +} + +code { + color: #ffa500; +} + +li { + padding: 4px; +} diff --git a/examples/agent-kit-nextjs-langchain/app/layout.tsx b/examples/agent-kit-nextjs-langchain/app/layout.tsx new file mode 100644 index 0000000..0b627ec --- /dev/null +++ b/examples/agent-kit-nextjs-langchain/app/layout.tsx @@ -0,0 +1,45 @@ +import "./globals.css"; +import { Public_Sans } from "next/font/google"; + +const publicSans = Public_Sans({ subsets: ["latin"] }); + +export default function RootLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + + + SolanaAgentKit + LangChain + Next.js Template + + + + + + + + + + + +
{children}
+ + + ); +} diff --git a/examples/agent-kit-nextjs-langchain/app/page.tsx b/examples/agent-kit-nextjs-langchain/app/page.tsx new file mode 100644 index 0000000..a9eb072 --- /dev/null +++ b/examples/agent-kit-nextjs-langchain/app/page.tsx @@ -0,0 +1,75 @@ +import { ChatWindow } from "@/components/ChatWindow"; + +export default function Home() { + const InfoCard = ( +
+

+ SolanaAgentKit + LangChain.js 🦜🔗 + Next.js +

+
    +
  • + 🤝 + + This template showcases a simple agent chatbot using{" "} + SolanaAgentKit + {", "} + + LangChain.js + {" "} + and the Vercel{" "} + + AI SDK + {" "} + in a{" "} + + Next.js + {" "} + project. + +
  • +
  • + 💻 + + You can find the prompt and model logic for this use-case in{" "} + app/api/chat/route.ts. + +
  • +
  • + 🎨 + + The main frontend logic is found in app/page.tsx. + +
  • +
  • + 🐙 + + This template is open source - you can see the source code and + deploy your own version{" "} + + from the GitHub repo + + ! + +
  • +
  • + 👇 + + Try asking e.g. What is my wallet address? below! + +
  • +
+
+ ); + return ( + + ); +} diff --git a/examples/agent-kit-nextjs-langchain/components/ChatMessageBubble.tsx b/examples/agent-kit-nextjs-langchain/components/ChatMessageBubble.tsx new file mode 100644 index 0000000..8d1beca --- /dev/null +++ b/examples/agent-kit-nextjs-langchain/components/ChatMessageBubble.tsx @@ -0,0 +1,39 @@ +import type { Message } from "ai/react"; + +export function ChatMessageBubble(props: { message: Message, aiEmoji?: string, sources: any[] }) { + const colorClassName = + props.message.role === "user" ? "bg-sky-600" : "bg-slate-50 text-black"; + const alignmentClassName = + props.message.role === "user" ? "ml-auto" : "mr-auto"; + const prefix = props.message.role === "user" ? "🧑" : props.aiEmoji; + return ( +
+
+ {prefix} +
+
+ {props.message.content} + {props.sources && props.sources.length ? <> + +

+ 🔍 Sources: +

+
+ + {props.sources?.map((source, i) => ( +
+ {i + 1}. "{source.pageContent}"{ + source.metadata?.loc?.lines !== undefined + ?

Lines {source.metadata?.loc?.lines?.from} to {source.metadata?.loc?.lines?.to}
+ : "" + } +
+ ))} +
+ : ""} +
+
+ ); +} \ No newline at end of file diff --git a/examples/agent-kit-nextjs-langchain/components/ChatWindow.tsx b/examples/agent-kit-nextjs-langchain/components/ChatWindow.tsx new file mode 100644 index 0000000..b1f0d90 --- /dev/null +++ b/examples/agent-kit-nextjs-langchain/components/ChatWindow.tsx @@ -0,0 +1,248 @@ +"use client"; + +import { ToastContainer, toast } from "react-toastify"; +import "react-toastify/dist/ReactToastify.css"; + +import { Message } from "ai"; +import { useChat } from "ai/react"; +import { useRef, useState, ReactElement } from "react"; +import type { FormEvent } from "react"; + +import { ChatMessageBubble } from "@/components/ChatMessageBubble"; +import { IntermediateStep } from "./IntermediateStep"; + +export function ChatWindow(props: { + endpoint: string; + emptyStateComponent: ReactElement; + placeholder?: string; + titleText?: string; + emoji?: string; + showIntermediateStepsToggle?: boolean; +}) { + const messageContainerRef = useRef(null); + + const { + endpoint, + emptyStateComponent, + placeholder, + titleText = "An LLM", + showIntermediateStepsToggle, + emoji, + } = props; + + const [showIntermediateSteps, setShowIntermediateSteps] = useState(false); + const [intermediateStepsLoading, setIntermediateStepsLoading] = + useState(false); + const intemediateStepsToggle = showIntermediateStepsToggle && ( +
+ setShowIntermediateSteps(e.target.checked)} + > + +
+ ); + + const [sourcesForMessages, setSourcesForMessages] = useState< + Record + >({}); + + const { + messages, + input, + setInput, + handleInputChange, + handleSubmit, + isLoading: chatEndpointIsLoading, + setMessages, + } = useChat({ + api: endpoint, + onResponse(response) { + const sourcesHeader = response.headers.get("x-sources"); + const sources = sourcesHeader + ? JSON.parse(Buffer.from(sourcesHeader, "base64").toString("utf8")) + : []; + const messageIndexHeader = response.headers.get("x-message-index"); + if (sources.length && messageIndexHeader !== null) { + setSourcesForMessages({ + ...sourcesForMessages, + [messageIndexHeader]: sources, + }); + } + }, + streamMode: "text", + onError: (e) => { + toast(e.message, { + theme: "dark", + }); + }, + }); + + async function sendMessage(e: FormEvent) { + e.preventDefault(); + if (messageContainerRef.current) { + messageContainerRef.current.classList.add("grow"); + } + if (!messages.length) { + await new Promise((resolve) => setTimeout(resolve, 300)); + } + if (chatEndpointIsLoading ?? intermediateStepsLoading) { + return; + } + if (!showIntermediateSteps) { + handleSubmit(e); + // Some extra work to show intermediate steps properly + } else { + setIntermediateStepsLoading(true); + setInput(""); + const messagesWithUserReply = messages.concat({ + id: messages.length.toString(), + content: input, + role: "user", + }); + setMessages(messagesWithUserReply); + const response = await fetch(endpoint, { + method: "POST", + body: JSON.stringify({ + messages: messagesWithUserReply, + show_intermediate_steps: true, + }), + }); + const json = await response.json(); + setIntermediateStepsLoading(false); + if (response.status === 200) { + const responseMessages: Message[] = json.messages; + // Represent intermediate steps as system messages for display purposes + // TODO: Add proper support for tool messages + const toolCallMessages = responseMessages.filter( + (responseMessage: Message) => { + return ( + (responseMessage.role === "assistant" && + !!responseMessage.tool_calls?.length) || + responseMessage.role === "tool" + ); + }, + ); + const intermediateStepMessages = []; + for (let i = 0; i < toolCallMessages.length; i += 2) { + const aiMessage = toolCallMessages[i]; + const toolMessage = toolCallMessages[i + 1]; + intermediateStepMessages.push({ + id: (messagesWithUserReply.length + i / 2).toString(), + role: "system" as const, + content: JSON.stringify({ + action: aiMessage.tool_calls?.[0], + observation: toolMessage.content, + }), + }); + } + const newMessages = messagesWithUserReply; + for (const message of intermediateStepMessages) { + newMessages.push(message); + setMessages([...newMessages]); + await new Promise((resolve) => + setTimeout(resolve, 1000 + Math.random() * 1000), + ); + } + setMessages([ + ...newMessages, + { + id: newMessages.length.toString(), + content: responseMessages[responseMessages.length - 1].content, + role: "assistant", + }, + ]); + } else { + if (json.error) { + toast(json.error, { + theme: "dark", + }); + throw new Error(json.error); + } + } + } + } + + return ( +
0 ? "border" : ""}`} + > +

0 ? "" : "hidden"} text-2xl`}> + {emoji} {titleText} +

+ {messages.length === 0 ? emptyStateComponent : ""} +
+ {messages.length > 0 + ? [...messages].reverse().map((m, i) => { + const sourceKey = (messages.length - 1 - i).toString(); + return m.role === "system" ? ( + + ) : ( + + ); + }) + : ""} +
+ +
+
{intemediateStepsToggle}
+
+ + +
+
+ +
+ ); +} diff --git a/examples/agent-kit-nextjs-langchain/components/IntermediateStep.tsx b/examples/agent-kit-nextjs-langchain/components/IntermediateStep.tsx new file mode 100644 index 0000000..5ec1fc0 --- /dev/null +++ b/examples/agent-kit-nextjs-langchain/components/IntermediateStep.tsx @@ -0,0 +1,50 @@ +import { useState } from "react"; +import type { Message } from "ai/react"; + +export function IntermediateStep(props: { message: Message }) { + const parsedInput = JSON.parse(props.message.content); + const action = parsedInput.action; + const observation = parsedInput.observation; + const [expanded, setExpanded] = useState(false); + return ( +
+
setExpanded(!expanded)} + > + + 🛠 {action.name} + + 🔽 + 🔼 +
+
+
+ + Tool Input: +

+

+ {JSON.stringify(action.args)} +
+
+
+ + {observation} + +
+
+
+ ); +} diff --git a/examples/agent-kit-nextjs-langchain/data/DefaultRetrievalText.ts b/examples/agent-kit-nextjs-langchain/data/DefaultRetrievalText.ts new file mode 100644 index 0000000..898acba --- /dev/null +++ b/examples/agent-kit-nextjs-langchain/data/DefaultRetrievalText.ts @@ -0,0 +1,540 @@ +export default `# QA and Chat over Documents + +Chat and Question-Answering (QA) over \`data\` are popular LLM use-cases. + +\`data\` can include many things, including: + +* \`Unstructured data\` (e.g., PDFs) +* \`Structured data\` (e.g., SQL) +* \`Code\` (e.g., Python) + +Below we will review Chat and QA on \`Unstructured data\`. + +![intro.png](/img/qa_intro.png) + +\`Unstructured data\` can be loaded from many sources. + +Check out the [document loader integrations here](/docs/modules/data_connection/document_loaders/) to browse the set of supported loaders. + +Each loader returns data as a LangChain \`Document\`. + +\`Documents\` are turned into a Chat or QA app following the general steps below: + +* \`Splitting\`: [Text splitters](/docs/modules/data_connection/document_transformers/) break \`Documents\` into splits of specified size +* \`Storage\`: Storage (e.g., often a [vectorstore](/docs/modules/data_connection/vectorstores/)) will house [and often embed](https://www.pinecone.io/learn/vector-embeddings/) the splits +* \`Retrieval\`: The app retrieves splits from storage (e.g., often [with similar embeddings](https://www.pinecone.io/learn/k-nearest-neighbor/) to the input question) +* \`Output\`: An [LLM](/docs/modules/model_io/models/llms/) produces an answer using a prompt that includes the question and the retrieved splits + +![flow.jpeg](/img/qa_flow.jpeg) + +## Quickstart + +Let's load this [blog post](https://lilianweng.github.io/posts/2023-06-23-agent/) on agents as an example \`Document\`. + +We'll have a QA app in a few lines of code. + +First, set environment variables and install packages required for the guide: + +\`\`\`shell +> yarn add cheerio +# Or load env vars in your preferred way: +> export OPENAI_API_KEY="..." +\`\`\` + +## 1. Loading, Splitting, Storage + +### 1.1 Getting started + +Specify a \`Document\` loader. + +\`\`\`typescript +// Document loader +import { CheerioWebBaseLoader } from "langchain/document_loaders/web/cheerio"; + +const loader = new CheerioWebBaseLoader( + "https://lilianweng.github.io/posts/2023-06-23-agent/" +); +const data = await loader.load(); +\`\`\` + +Split the \`Document\` into chunks for embedding and vector storage. + + +\`\`\`typescript +import { RecursiveCharacterTextSplitter } from "langchain/text_splitter"; + +const textSplitter = new RecursiveCharacterTextSplitter({ + chunkSize: 500, + chunkOverlap: 0, +}); + +const splitDocs = await textSplitter.splitDocuments(data); +\`\`\` + +Embed and store the splits in a vector database (for demo purposes we use an unoptimized, in-memory example but you can [browse integrations here](/docs/modules/data_connection/vectorstores/integrations/)): + + +\`\`\`typescript +import { OpenAIEmbeddings } from "langchain/embeddings/openai"; +import { MemoryVectorStore } from "langchain/vectorstores/memory"; + +const embeddings = new OpenAIEmbeddings(); + +const vectorStore = await MemoryVectorStore.fromDocuments(splitDocs, embeddings); +\`\`\` + +Here are the three pieces together: + +![lc.png](/img/qa_data_load.png) + +### 1.2 Going Deeper + +#### 1.2.1 Integrations + +\`Document Loaders\` + +* Browse document loader integrations [here](/docs/modules/data_connection/document_loaders/). + +* See further documentation on loaders [here](/docs/modules/data_connection/document_loaders/). + +\`Document Transformers\` + +* All can ingest loaded \`Documents\` and process them (e.g., split). + +* See further documentation on transformers [here](/docs/modules/data_connection/document_transformers/). + +\`Vectorstores\` + +* Browse vectorstore integrations [here](/docs/modules/data_connection/vectorstores/integrations/). + +* See further documentation on vectorstores [here](/docs/modules/data_connection/vectorstores/). + +## 2. Retrieval + +### 2.1 Getting started + +Retrieve [relevant splits](https://www.pinecone.io/learn/what-is-similarity-search/) for any question using \`similarity_search\`. + + +\`\`\`typescript +const relevantDocs = await vectorStore.similaritySearch("What is task decomposition?"); + +console.log(relevantDocs.length); + +// 4 +\`\`\` + + +### 2.2 Going Deeper + +#### 2.2.1 Retrieval + +Vectorstores are commonly used for retrieval. + +But, they are not the only option. + +For example, SVMs (see thread [here](https://twitter.com/karpathy/status/1647025230546886658?s=20)) can also be used. + +LangChain [has many retrievers and retrieval methods](/docs/modules/data_connection/retrievers/) including, but not limited to, vectorstores. + +All retrievers implement some common methods, such as \`getRelevantDocuments()\`. + + +## 3. QA + +### 3.1 Getting started + +Distill the retrieved documents into an answer using an LLM (e.g., \`gpt-3.5-turbo\`) with \`RetrievalQA\` chain. + + +\`\`\`typescript +import { RetrievalQAChain } from "langchain/chains"; +import { ChatOpenAI } from "langchain/chat_models/openai"; + +const model = new ChatOpenAI({ model: "gpt-3.5-turbo" }); +const chain = RetrievalQAChain.fromLLM(model, vectorstore.asRetriever()); + +const response = await chain.call({ + query: "What is task decomposition?" +}); +console.log(response); + +/* + { + text: 'Task decomposition refers to the process of breaking down a larger task into smaller, more manageable subgoals. By decomposing a task, it becomes easier for an agent or system to handle complex tasks efficiently. Task decomposition can be done through various methods such as using prompting or task-specific instructions, or through human inputs. It helps in planning and organizing the steps required to complete a task effectively.' + } +*/ +\`\`\` + +### 3.2 Going Deeper + +#### 3.2.1 Integrations + +\`LLMs\` + +* Browse LLM integrations and further documentation [here](/docs/modules/model_io/models/). + +#### 3.2.2 Customizing the prompt + +The prompt in \`RetrievalQA\` chain can be customized as follows. + + +\`\`\`typescript +import { RetrievalQAChain } from "langchain/chains"; +import { ChatOpenAI } from "langchain/chat_models/openai"; +import { PromptTemplate } from "langchain/prompts"; + +const model = new ChatOpenAI({ model: "gpt-3.5-turbo" }); + +const template = \`Use the following pieces of context to answer the question at the end. +If you don't know the answer, just say that you don't know, don't try to make up an answer. +Use three sentences maximum and keep the answer as concise as possible. +Always say "thanks for asking!" at the end of the answer. +{context} +Question: {question} +Helpful Answer:\`; + +const chain = RetrievalQAChain.fromLLM(model, vectorstore.asRetriever(), { + prompt: PromptTemplate.fromTemplate(template), +}); + +const response = await chain.call({ + query: "What is task decomposition?" +}); + +console.log(response); + +/* + { + text: 'Task decomposition is the process of breaking down a large task into smaller, more manageable subgoals. This allows for efficient handling of complex tasks and aids in planning and organizing the steps needed to achieve the overall goal. Thanks for asking!' + } +*/ +\`\`\` + + +#### 3.2.3 Returning source documents + +The full set of retrieved documents used for answer distillation can be returned using \`return_source_documents=True\`. + + +\`\`\`typescript +import { RetrievalQAChain } from "langchain/chains"; +import { ChatOpenAI } from "langchain/chat_models/openai"; + +const model = new ChatOpenAI({ model: "gpt-3.5-turbo" }); + +const chain = RetrievalQAChain.fromLLM(model, vectorstore.asRetriever(), { + returnSourceDocuments: true +}); + +const response = await chain.call({ + query: "What is task decomposition?" +}); + +console.log(response.sourceDocuments[0]); + +/* +Document { + pageContent: 'Task decomposition can be done (1) by LLM with simple prompting like "Steps for XYZ.\\n1.", "What are the subgoals for achieving XYZ?", (2) by using task-specific instructions; e.g. "Write a story outline." for writing a novel, or (3) with human inputs.', + metadata: [Object] +} +*/ +\`\`\` + + +#### 3.2.4 Customizing retrieved docs in the LLM prompt + +Retrieved documents can be fed to an LLM for answer distillation in a few different ways. + +\`stuff\`, \`refine\`, and \`map-reduce\` chains for passing documents to an LLM prompt are well summarized [here](/docs/modules/chains/document/). + +\`stuff\` is commonly used because it simply "stuffs" all retrieved documents into the prompt. + +The [loadQAChain](/docs/modules/chains/document/) methods are easy ways to pass documents to an LLM using these various approaches. + + +\`\`\`typescript +import { loadQAStuffChain } from "langchain/chains"; + +const stuffChain = loadQAStuffChain(model); + +const stuffResult = await stuffChain.call({ + input_documents: relevantDocs, + question: "What is task decomposition +}); + +console.log(stuffResult); +/* +{ + text: 'Task decomposition is the process of breaking down a large task into smaller, more manageable subgoals or steps. This allows for efficient handling of complex tasks by focusing on one subgoal at a time. Task decomposition can be done through various methods such as using simple prompting, task-specific instructions, or human inputs.' +} +*/ +\`\`\` + +## 4. Chat + +### 4.1 Getting started + +To keep chat history, we use a variant of the previous chain called a \`ConversationalRetrievalQAChain\`. +First, specify a \`Memory buffer\` to track the conversation inputs / outputs. + + +\`\`\`typescript +import { ConversationalRetrievalQAChain } from "langchain/chains"; +import { BufferMemory } from "langchain/memory"; +import { ChatOpenAI } from "langchain/chat_models/openai"; + +const memory = new BufferMemory({ + memoryKey: "chat_history", + returnMessages: true, +}); +\`\`\` + +Next, we initialize and call the chain: + +\`\`\`typescript +const model = new ChatOpenAI({ model: "gpt-3.5-turbo" }); +const chain = ConversationalRetrievalQAChain.fromLLM(model, vectorstore.asRetriever(), { + memory +}); + +const result = await chain.call({ + question: "What are some of the main ideas in self-reflection?" +}); +console.log(result); + +/* +{ + text: 'Some main ideas in self-reflection include:\n' + + '\n' + + '1. Iterative Improvement: Self-reflection allows autonomous agents to improve by continuously refining past action decisions and correcting mistakes.\n' + + '\n' + + '2. Trial and Error: Self-reflection plays a crucial role in real-world tasks where trial and error are inevitable. It helps agents learn from failed trajectories and make adjustments for future actions.\n' + + '\n' + + '3. Constructive Criticism: Agents engage in constructive self-criticism of their big-picture behavior to identify areas for improvement.\n' + + '\n' + + '4. Decision and Strategy Refinement: Reflection on past decisions and strategies enables agents to refine their approach and make more informed choices.\n' + + '\n' + + '5. Efficiency and Optimization: Self-reflection encourages agents to be smart and efficient in their actions, aiming to complete tasks in the least number of steps.\n' + + '\n' + + 'These ideas highlight the importance of self-reflection in enhancing performance and guiding future actions.' +} +*/ +\`\`\` + + +The \`Memory buffer\` has context to resolve \`"it"\` ("self-reflection") in the below question. + + +\`\`\`typescript +const followupResult = await chain.call({ + question: "How does the Reflexion paper handle it?" +}); +console.log(followupResult); + +/* +{ + text: "The Reflexion paper introduces a framework that equips agents with dynamic memory and self-reflection capabilities to improve their reasoning skills. The approach involves showing the agent two-shot examples, where each example consists of a failed trajectory and an ideal reflection on how to guide future changes in the agent's plan. These reflections are then added to the agent's working memory as context for querying a language model. The agent uses this self-reflection information to make decisions on whether to start a new trial or continue with the current plan." +} +*/ +\`\`\` + + +### 4.2 Going deeper + +The [documentation](/docs/modules/chains/popular/chat_vector_db) on \`ConversationalRetrievalQAChain\` offers a few extensions, such as streaming and source documents. + + +# Conversational Retrieval Agents + +This is an agent specifically optimized for doing retrieval when necessary while holding a conversation and being able +to answer questions based on previous dialogue in the conversation. + +To start, we will set up the retriever we want to use, then turn it into a retriever tool. Next, we will use the high-level constructor for this type of agent. +Finally, we will walk through how to construct a conversational retrieval agent from components. + +## The Retriever + +To start, we need a retriever to use! The code here is mostly just example code. Feel free to use your own retriever and skip to the next section on creating a retriever tool. + +\`\`\`typescript +import { FaissStore } from "langchain/vectorstores/faiss"; +import { OpenAIEmbeddings } from "langchain/embeddings/openai"; +import { TextLoader } from "langchain/document_loaders/fs/text"; +import { RecursiveCharacterTextSplitter } from "langchain/text_splitter"; + +const loader = new TextLoader("state_of_the_union.txt"); +const docs = await loader.load(); +const splitter = new RecursiveCharacterTextSplitter({ + chunkSize: 1000, + chunkOverlap: 0 +}); + +const texts = await splitter.splitDocuments(docs); + +const vectorStore = await FaissStore.fromDocuments(texts, new OpenAIEmbeddings()); + +const retriever = vectorStore.asRetriever(); +\`\`\` + +## Retriever Tool + +Now we need to create a tool for our retriever. The main things we need to pass in are a \`name\` for the retriever as well as a \`description\`. These will both be used by the language model, so they should be informative. + +\`\`\`typescript +import { createRetrieverTool } from "langchain/agents/toolkits"; + +const tool = createRetrieverTool(retriever, { + name: "search_state_of_union", + description: "Searches and returns documents regarding the state-of-the-union.", +}); +\`\`\` + +## Agent Constructor + +Here, we will use the high level \`create_conversational_retrieval_agent\` API to construct the agent. +Notice that beside the list of tools, the only thing we need to pass in is a language model to use. + +Under the hood, this agent is using the OpenAIFunctionsAgent, so we need to use an ChatOpenAI model. + +\`\`\`typescript +import { createConversationalRetrievalAgent } from "langchain/agents/toolkits"; +import { ChatOpenAI } from "langchain/chat_models/openai"; + +const model = new ChatOpenAI({ + temperature: 0, +}); + +const executor = await createConversationalRetrievalAgent(model, [tool], { + verbose: true, +}); +\`\`\` + +We can now try it out! + +\`\`\`typescript +const result = await executor.call({ + input: "Hi, I'm Bob!" +}); + +console.log(result); + +/* + { + output: 'Hello Bob! How can I assist you today?', + intermediateSteps: [] + } +*/ + +const result2 = await executor.call({ + input: "What's my name?" +}); + +console.log(result2); + +/* + { output: 'Your name is Bob.', intermediateSteps: [] } +*/ + +const result3 = await executor.call({ + input: "What did the president say about Ketanji Brown Jackson in the most recent state of the union?" +}); + +console.log(result3); + +/* + { + output: "In the most recent state of the union, President Biden mentioned Ketanji Brown Jackson. He nominated her as a Circuit Court of Appeals judge and described her as one of the nation's top legal minds who will continue Justice Breyer's legacy of excellence. He mentioned that she has received a broad range of support, including from the Fraternal Order of Police and former judges appointed by Democrats and Republicans.", + intermediateSteps: [ + {...} + ] + } +*/ + +const result4 = await executor.call({ + input: "How long ago did he nominate her?" +}); + +console.log(result4); + +/* + { + output: 'President Biden nominated Ketanji Brown Jackson four days before the most recent state of the union address.', + intermediateSteps: [] + } +*/ +\`\`\` + +Note that for the final call, the agent used previously retrieved information to answer the query and did not need to call the tool again! + +Here's a trace showing how the agent fetches documents to answer the question with the retrieval tool: + +https://smith.langchain.com/public/1e2b1887-ca44-4210-913b-a69c1b8a8e7e/r + +## Creating from components + +What actually is going on underneath the hood? Let's take a look so we can understand how to modify things going forward. + +### Memory + +In this example, we want the agent to remember not only previous conversations, but also previous intermediate steps. +For that, we can use \`OpenAIAgentTokenBufferMemory\`. Note that if you want to change whether the agent remembers intermediate steps, +how the long the retained buffer is, or anything like that you should change this part. + +\`\`\`typescript +import { OpenAIAgentTokenBufferMemory } from "langchain/agents/toolkits"; + +const memory = new OpenAIAgentTokenBufferMemory({ + llm: model, + memoryKey: "chat_history", + outputKey: "output" +}); +\`\`\` + +You should make sure \`memoryKey\` is set to \`"chat_history"\` and \`outputKey\` is set to \`"output"\` for the OpenAI functions agent. +This memory also has \`returnMessages\` set to \`true\` by default. + +You can also load messages from prior conversations into this memory by initializing it with a pre-loaded chat history: + +\`\`\`typescript +import { ChatOpenAI } from "langchain/chat_models/openai"; +import { OpenAIAgentTokenBufferMemory } from "langchain/agents/toolkits"; +import { HumanMessage, AIMessage } from "langchain/schema"; +import { ChatMessageHistory } from "langchain/memory"; + +const previousMessages = [ + new HumanMessage("My name is Bob"), + new AIMessage("Nice to meet you, Bob!"), +]; + +const chatHistory = new ChatMessageHistory(previousMessages); + +const memory = new OpenAIAgentTokenBufferMemory({ + llm: new ChatOpenAI({}), + memoryKey: "chat_history", + outputKey: "output", + chatHistory, +}); +\`\`\` + +### Agent executor + +We can recreate the agent executor directly with the \`initializeAgentExecutorWithOptions\` method. +This allows us to customize the agent's system message by passing in a \`prefix\` into \`agentArgs\`. +Importantly, we must pass in \`return_intermediate_steps: true\` since we are recording that with our memory object. + +\`\`\`typescript +import { initializeAgentExecutorWithOptions } from "langchain/agents"; + +const executor = await initializeAgentExecutorWithOptions(tools, llm, { + agentType: "openai-functions", + memory, + returnIntermediateSteps: true, + agentArgs: { + prefix: + prefix ?? + \`Do your best to answer the questions. Feel free to use any tools available to look up relevant information, only if necessary.\`, + }, +}); +\`\`\` +`; \ No newline at end of file diff --git a/examples/agent-kit-nextjs-langchain/next.config.js b/examples/agent-kit-nextjs-langchain/next.config.js new file mode 100644 index 0000000..654e669 --- /dev/null +++ b/examples/agent-kit-nextjs-langchain/next.config.js @@ -0,0 +1,4 @@ +const withBundleAnalyzer = require('@next/bundle-analyzer')({ + enabled: process.env.ANALYZE === 'true', +}) +module.exports = withBundleAnalyzer({}) \ No newline at end of file diff --git a/examples/agent-kit-nextjs-langchain/package.json b/examples/agent-kit-nextjs-langchain/package.json new file mode 100644 index 0000000..241a8d4 --- /dev/null +++ b/examples/agent-kit-nextjs-langchain/package.json @@ -0,0 +1,44 @@ +{ + "name": "langchain-nextjs-template", + "version": "0.0.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint", + "format": "prettier --write \"app\"" + }, + "engines": { + "node": ">=18" + }, + "dependencies": { + "@langchain/community": "^0.3.11", + "@langchain/core": "^0.3.17", + "@langchain/langgraph": "^0.2.20", + "@langchain/openai": "^0.3.11", + "@next/bundle-analyzer": "^13.4.19", + "@supabase/supabase-js": "^2.32.0", + "@types/node": "20.12.12", + "@types/react": "18.3.2", + "@types/react-dom": "18.3.0", + "ai": "^3.1.12", + "autoprefixer": "10.4.14", + "eslint": "8.46.0", + "eslint-config-next": "13.4.12", + "langchain": "^0.3.5", + "next": "^14.2.3", + "postcss": "8.4.27", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-toastify": "^9.1.3", + "solana-agent-kit": "^1.3.0", + "tailwindcss": "3.3.3", + "typescript": "5.1.6", + "zod": "^3.22.3", + "zod-to-json-schema": "^3.21.4" + }, + "devDependencies": { + "prettier": "3.0.0" + } +} diff --git a/examples/agent-kit-nextjs-langchain/pnpm-lock.yaml b/examples/agent-kit-nextjs-langchain/pnpm-lock.yaml new file mode 100644 index 0000000..966aa8b --- /dev/null +++ b/examples/agent-kit-nextjs-langchain/pnpm-lock.yaml @@ -0,0 +1,7733 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@langchain/community': + specifier: ^0.3.11 + version: 0.3.20(@browserbasehq/sdk@2.0.0)(@browserbasehq/stagehand@1.8.0(@playwright/test@1.49.1)(bufferutil@4.0.8)(deepmerge@4.3.1)(dotenv@16.4.7)(openai@4.77.0(zod@3.24.1))(utf-8-validate@5.0.10)(zod@3.24.1))(@ibm-cloud/watsonx-ai@1.3.0)(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))))(@supabase/supabase-js@2.47.10(bufferutil@4.0.8)(utf-8-validate@5.0.10))(axios@1.7.4)(ibm-cloud-sdk-core@5.1.0)(ignore@5.3.2)(jsonwebtoken@9.0.2)(lodash@4.17.21)(openai@4.77.0(zod@3.24.1))(playwright@1.49.1)(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@langchain/core': + specifier: ^0.3.17 + version: 0.3.26(openai@4.77.0(zod@3.24.1)) + '@langchain/langgraph': + specifier: ^0.2.20 + version: 0.2.36(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))) + '@langchain/openai': + specifier: ^0.3.11 + version: 0.3.16(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))) + '@next/bundle-analyzer': + specifier: ^13.4.19 + version: 13.5.8(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@supabase/supabase-js': + specifier: ^2.32.0 + version: 2.47.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@types/node': + specifier: 20.12.12 + version: 20.12.12 + '@types/react': + specifier: 18.3.2 + version: 18.3.2 + '@types/react-dom': + specifier: 18.3.0 + version: 18.3.0 + ai: + specifier: ^3.1.12 + version: 3.4.33(openai@4.77.0(zod@3.24.1))(react@18.3.1)(sswr@2.1.0(svelte@5.16.0))(svelte@5.16.0)(vue@3.5.13(typescript@5.1.6))(zod@3.24.1) + autoprefixer: + specifier: 10.4.14 + version: 10.4.14(postcss@8.4.27) + eslint: + specifier: 8.46.0 + version: 8.46.0 + eslint-config-next: + specifier: 13.4.12 + version: 13.4.12(eslint@8.46.0)(typescript@5.1.6) + langchain: + specifier: ^0.3.5 + version: 0.3.8(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))))(axios@1.7.4)(openai@4.77.0(zod@3.24.1)) + next: + specifier: ^14.2.3 + version: 14.2.21(@opentelemetry/api@1.9.0)(@playwright/test@1.49.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + postcss: + specifier: 8.4.27 + version: 8.4.27 + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + react-toastify: + specifier: ^9.1.3 + version: 9.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + solana-agent-kit: + specifier: ^1.3.0 + version: 1.3.0(@noble/hashes@1.6.1)(axios@1.7.4)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)(zod@3.24.1) + tailwindcss: + specifier: 3.3.3 + version: 3.3.3 + typescript: + specifier: 5.1.6 + version: 5.1.6 + zod: + specifier: ^3.22.3 + version: 3.24.1 + zod-to-json-schema: + specifier: ^3.21.4 + version: 3.24.1(zod@3.24.1) + devDependencies: + prettier: + specifier: 3.0.0 + version: 3.0.0 + +packages: + + '@ai-sdk/provider-utils@1.0.22': + resolution: {integrity: sha512-YHK2rpj++wnLVc9vPGzGFP3Pjeld2MwhKinetA0zKXOoHAT/Jit5O8kZsxcSlJPu9wvcGT1UGZEjZrtO7PfFOQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.0.0 + peerDependenciesMeta: + zod: + optional: true + + '@ai-sdk/provider@0.0.26': + resolution: {integrity: sha512-dQkfBDs2lTYpKM8389oopPdQgIU007GQyCbuPPrV+K6MtSII3HBfE0stUIMXUb44L+LK1t6GXPP7wjSzjO6uKg==} + engines: {node: '>=18'} + + '@ai-sdk/react@0.0.70': + resolution: {integrity: sha512-GnwbtjW4/4z7MleLiW+TOZC2M29eCg1tOUpuEiYFMmFNZK8mkrqM0PFZMo6UsYeUYMWqEOOcPOU9OQVJMJh7IQ==} + engines: {node: '>=18'} + peerDependencies: + react: ^18 || ^19 || ^19.0.0-rc + zod: ^3.0.0 + peerDependenciesMeta: + react: + optional: true + zod: + optional: true + + '@ai-sdk/solid@0.0.54': + resolution: {integrity: sha512-96KWTVK+opdFeRubqrgaJXoNiDP89gNxFRWUp0PJOotZW816AbhUf4EnDjBjXTLjXL1n0h8tGSE9sZsRkj9wQQ==} + engines: {node: '>=18'} + peerDependencies: + solid-js: ^1.7.7 + peerDependenciesMeta: + solid-js: + optional: true + + '@ai-sdk/svelte@0.0.57': + resolution: {integrity: sha512-SyF9ItIR9ALP9yDNAD+2/5Vl1IT6kchgyDH8xkmhysfJI6WrvJbtO1wdQ0nylvPLcsPoYu+cAlz1krU4lFHcYw==} + engines: {node: '>=18'} + peerDependencies: + svelte: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + svelte: + optional: true + + '@ai-sdk/ui-utils@0.0.50': + resolution: {integrity: sha512-Z5QYJVW+5XpSaJ4jYCCAVG7zIAuKOOdikhgpksneNmKvx61ACFaf98pmOd+xnjahl0pIlc/QIe6O4yVaJ1sEaw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.0.0 + peerDependenciesMeta: + zod: + optional: true + + '@ai-sdk/vue@0.0.59': + resolution: {integrity: sha512-+ofYlnqdc8c4F6tM0IKF0+7NagZRAiqBJpGDJ+6EYhDW8FHLUP/JFBgu32SjxSxC6IKFZxEnl68ZoP/Z38EMlw==} + engines: {node: '>=18'} + peerDependencies: + vue: ^3.3.4 + peerDependenciesMeta: + vue: + optional: true + + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@anthropic-ai/sdk@0.27.3': + resolution: {integrity: sha512-IjLt0gd3L4jlOfilxVXTifn42FnVffMgDC04RJK1KDZpmkBWLv0XC92MVVmkxrFZNS/7l3xWgP/I3nqtX1sQHw==} + + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.26.3': + resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.26.3': + resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} + engines: {node: '>=6.9.0'} + + '@bonfida/sns-records@0.0.1': + resolution: {integrity: sha512-i28w9+BMFufhhpmLQCNx1CKKXTsEn+5RT18VFpPqdGO3sqaYlnUWC1m3wDpOvlzGk498dljgRpRo5wmcsnuEMg==} + peerDependencies: + '@solana/web3.js': ^1.87.3 + + '@bonfida/spl-name-service@3.0.7': + resolution: {integrity: sha512-okOLXhy+fQoyQ/sZgMleO5RrIZfTkWEoHMxWgUqg6RP/MTBlrKxlhKC6ymKn4UUe0C5s3Nb8A+3Ams7vX0nMDg==} + peerDependencies: + '@solana/web3.js': ^1.87.3 + + '@browserbasehq/sdk@2.0.0': + resolution: {integrity: sha512-BdPlZyn0dpXlL70gNK4acpqWIRB+edo2z0/GalQdWghRq8iQjySd9fVIF3evKH1p2wCYekZJRK6tm29YfXB67g==} + + '@browserbasehq/stagehand@1.8.0': + resolution: {integrity: sha512-ozwE2imQzWhi1pir6+L7bwIWKXQQ+tX7oVRbQkcmHkj+xdDJJDMYxNMBJyt8mnAvXHvsadUowAWSIEfcTrNEqA==} + peerDependencies: + '@playwright/test': ^1.42.1 + deepmerge: ^4.3.1 + dotenv: ^16.4.5 + openai: ^4.62.1 + zod: ^3.23.8 + + '@cfworker/json-schema@4.0.3': + resolution: {integrity: sha512-ZykIcDTVv5UNmKWSTLAs3VukO6NDJkkSKxrgUTDPBkAlORVT3H9n5DbRjRl8xIotklscHdbLIa0b9+y3mQq73g==} + + '@coral-xyz/anchor@0.29.0': + resolution: {integrity: sha512-eny6QNG0WOwqV0zQ7cs/b1tIuzZGmP7U7EcH+ogt4Gdbl8HDmIYVMh/9aTmYZPaFWjtUaI8qSn73uYEXWfATdA==} + engines: {node: '>=11'} + + '@coral-xyz/borsh@0.29.0': + resolution: {integrity: sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==} + engines: {node: '>=10'} + peerDependencies: + '@solana/web3.js': ^1.68.0 + + '@emnapi/runtime@1.3.1': + resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} + + '@eslint-community/eslint-utils@4.4.1': + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@8.57.1': + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@ethersproject/bytes@5.7.0': + resolution: {integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==} + + '@ethersproject/logger@5.7.0': + resolution: {integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==} + + '@ethersproject/sha2@5.7.0': + resolution: {integrity: sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==} + + '@humanwhocodes/config-array@0.11.14': + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + + '@ibm-cloud/watsonx-ai@1.3.0': + resolution: {integrity: sha512-V4PorMPhxwYiayWxycryun4Bjxn3PJrQqJGca+maQd61Q7s+/PUJAHWjwzVSVHxiher17zFHf4NwqB8J6bWj4w==} + engines: {node: '>=18.0.0'} + + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@langchain/community@0.3.20': + resolution: {integrity: sha512-5XmguFWVrfYJ8s9kHPAmC1bTGfdVOKqzWVCoTolSXMVMDaVn+LVvCJxEedO01kU1y2AS4pUl5MDI9wssKS1Ehg==} + engines: {node: '>=18'} + peerDependencies: + '@arcjet/redact': ^v1.0.0-alpha.23 + '@aws-crypto/sha256-js': ^5.0.0 + '@aws-sdk/client-bedrock-agent-runtime': ^3.583.0 + '@aws-sdk/client-bedrock-runtime': ^3.422.0 + '@aws-sdk/client-dynamodb': ^3.310.0 + '@aws-sdk/client-kendra': ^3.352.0 + '@aws-sdk/client-lambda': ^3.310.0 + '@aws-sdk/client-s3': ^3.310.0 + '@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 + '@azure/storage-blob': ^12.15.0 + '@browserbasehq/sdk': '*' + '@browserbasehq/stagehand': ^1.0.0 + '@clickhouse/client': ^0.2.5 + '@cloudflare/ai': '*' + '@datastax/astra-db-ts': ^1.0.0 + '@elastic/elasticsearch': ^8.4.0 + '@getmetal/metal-sdk': '*' + '@getzep/zep-cloud': ^1.0.6 + '@getzep/zep-js': ^0.9.0 + '@gomomento/sdk': ^1.51.1 + '@gomomento/sdk-core': ^1.51.1 + '@google-ai/generativelanguage': '*' + '@google-cloud/storage': ^6.10.1 || ^7.7.0 + '@gradientai/nodejs-sdk': ^1.2.0 + '@huggingface/inference': ^2.6.4 + '@ibm-cloud/watsonx-ai': '*' + '@lancedb/lancedb': ^0.12.0 + '@langchain/core': '>=0.2.21 <0.4.0' + '@layerup/layerup-security': ^1.5.12 + '@libsql/client': ^0.14.0 + '@mendable/firecrawl-js': ^1.4.3 + '@mlc-ai/web-llm': '*' + '@mozilla/readability': '*' + '@neondatabase/serverless': '*' + '@notionhq/client': ^2.2.10 + '@opensearch-project/opensearch': '*' + '@pinecone-database/pinecone': '*' + '@planetscale/database': ^1.8.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 + '@smithy/protocol-http': ^3.0.6 + '@smithy/signature-v4': ^2.0.10 + '@smithy/util-utf8': ^2.0.0 + '@spider-cloud/spider-client': ^0.0.21 + '@supabase/supabase-js': ^2.45.0 + '@tensorflow-models/universal-sentence-encoder': '*' + '@tensorflow/tfjs-converter': '*' + '@tensorflow/tfjs-core': '*' + '@upstash/ratelimit': ^1.1.3 || ^2.0.3 + '@upstash/redis': ^1.20.6 + '@upstash/vector': ^1.1.1 + '@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.17.2 + '@zilliz/milvus2-sdk-node': '>=2.3.5' + apify-client: ^2.7.1 + assemblyai: ^4.6.0 + better-sqlite3: '>=9.4.0 <12.0.0' + cassandra-driver: ^4.7.2 + cborg: ^4.1.1 + cheerio: ^1.0.0-rc.12 + chromadb: '*' + closevector-common: 0.1.3 + closevector-node: 0.1.6 + closevector-web: 0.1.6 + cohere-ai: '*' + convex: ^1.3.1 + crypto-js: ^4.2.0 + d3-dsv: ^2.0.0 + discord.js: ^14.14.1 + dria: ^0.0.3 + duck-duck-scrape: ^2.2.5 + epub2: ^3.0.1 + faiss-node: ^0.5.1 + fast-xml-parser: '*' + firebase-admin: ^11.9.0 || ^12.0.0 + google-auth-library: '*' + googleapis: '*' + hnswlib-node: ^3.0.0 + html-to-text: ^9.0.5 + ibm-cloud-sdk-core: '*' + ignore: ^5.2.0 + 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.7.10 + mammoth: ^1.6.0 + mongodb: '>=5.2.0' + mysql2: ^3.9.8 + neo4j-driver: '*' + notion-to-md: ^3.1.0 + officeparser: ^4.0.4 + openai: '*' + pdf-parse: 1.1.1 + pg: ^8.11.0 + pg-copy-streams: ^6.0.5 + pickleparser: ^0.2.1 + playwright: ^1.32.1 + portkey-ai: ^0.1.11 + puppeteer: '*' + pyodide: '>=0.24.1 <0.27.0' + redis: '*' + replicate: ^0.29.4 + sonix-speech-recognition: ^2.1.1 + srt-parser-2: ^1.2.3 + typeorm: ^0.3.20 + typesense: ^1.5.3 + usearch: ^1.1.1 + voy-search: 0.6.2 + weaviate-ts-client: '*' + web-auth-library: ^1.0.3 + ws: ^8.14.2 + youtube-transcript: ^1.0.6 + youtubei.js: ^9.1.0 + peerDependenciesMeta: + '@arcjet/redact': + optional: true + '@aws-crypto/sha256-js': + optional: true + '@aws-sdk/client-bedrock-agent-runtime': + optional: true + '@aws-sdk/client-bedrock-runtime': + optional: true + '@aws-sdk/client-dynamodb': + optional: true + '@aws-sdk/client-kendra': + optional: true + '@aws-sdk/client-lambda': + optional: true + '@aws-sdk/client-s3': + optional: true + '@aws-sdk/client-sagemaker-runtime': + optional: true + '@aws-sdk/client-sfn': + optional: true + '@aws-sdk/credential-provider-node': + optional: true + '@azure/search-documents': + optional: true + '@azure/storage-blob': + optional: true + '@browserbasehq/sdk': + optional: true + '@clickhouse/client': + optional: true + '@cloudflare/ai': + optional: true + '@datastax/astra-db-ts': + optional: true + '@elastic/elasticsearch': + optional: true + '@getmetal/metal-sdk': + optional: true + '@getzep/zep-cloud': + optional: true + '@getzep/zep-js': + optional: true + '@gomomento/sdk': + optional: true + '@gomomento/sdk-core': + optional: true + '@google-ai/generativelanguage': + optional: true + '@google-cloud/storage': + optional: true + '@gradientai/nodejs-sdk': + optional: true + '@huggingface/inference': + optional: true + '@lancedb/lancedb': + optional: true + '@layerup/layerup-security': + optional: true + '@libsql/client': + optional: true + '@mendable/firecrawl-js': + optional: true + '@mlc-ai/web-llm': + optional: true + '@mozilla/readability': + optional: true + '@neondatabase/serverless': + optional: true + '@notionhq/client': + optional: true + '@opensearch-project/opensearch': + optional: true + '@pinecone-database/pinecone': + optional: true + '@planetscale/database': + optional: true + '@premai/prem-sdk': + optional: true + '@qdrant/js-client-rest': + optional: true + '@raycast/api': + optional: true + '@rockset/client': + optional: true + '@smithy/eventstream-codec': + optional: true + '@smithy/protocol-http': + optional: true + '@smithy/signature-v4': + optional: true + '@smithy/util-utf8': + optional: true + '@spider-cloud/spider-client': + optional: true + '@supabase/supabase-js': + optional: true + '@tensorflow-models/universal-sentence-encoder': + optional: true + '@tensorflow/tfjs-converter': + optional: true + '@tensorflow/tfjs-core': + optional: true + '@upstash/ratelimit': + optional: true + '@upstash/redis': + optional: true + '@upstash/vector': + optional: true + '@vercel/kv': + optional: true + '@vercel/postgres': + optional: true + '@writerai/writer-sdk': + optional: true + '@xata.io/client': + optional: true + '@xenova/transformers': + optional: true + '@zilliz/milvus2-sdk-node': + optional: true + apify-client: + optional: true + assemblyai: + optional: true + better-sqlite3: + optional: true + cassandra-driver: + optional: true + cborg: + optional: true + cheerio: + optional: true + chromadb: + optional: true + closevector-common: + optional: true + closevector-node: + optional: true + closevector-web: + optional: true + cohere-ai: + optional: true + convex: + optional: true + crypto-js: + optional: true + d3-dsv: + optional: true + discord.js: + optional: true + dria: + optional: true + duck-duck-scrape: + optional: true + epub2: + optional: true + faiss-node: + optional: true + fast-xml-parser: + optional: true + firebase-admin: + optional: true + google-auth-library: + optional: true + googleapis: + optional: true + hnswlib-node: + optional: true + html-to-text: + optional: true + ignore: + optional: true + interface-datastore: + optional: true + ioredis: + optional: true + it-all: + optional: true + jsdom: + optional: true + jsonwebtoken: + optional: true + llmonitor: + optional: true + lodash: + optional: true + lunary: + optional: true + mammoth: + optional: true + mongodb: + optional: true + mysql2: + optional: true + neo4j-driver: + optional: true + notion-to-md: + optional: true + officeparser: + optional: true + pdf-parse: + optional: true + pg: + optional: true + pg-copy-streams: + optional: true + pickleparser: + optional: true + playwright: + optional: true + portkey-ai: + optional: true + puppeteer: + optional: true + pyodide: + optional: true + redis: + optional: true + replicate: + optional: true + sonix-speech-recognition: + optional: true + srt-parser-2: + optional: true + typeorm: + optional: true + typesense: + optional: true + usearch: + optional: true + voy-search: + optional: true + weaviate-ts-client: + optional: true + web-auth-library: + optional: true + ws: + optional: true + youtube-transcript: + optional: true + youtubei.js: + optional: true + + '@langchain/core@0.3.26': + resolution: {integrity: sha512-6RUQHEp8wv+JwtYIIEBYBzbLlcAQZFc7EDOgAM0ukExjh9HiXoJzoWpgMRRCrr/koIbtwXPJUqBprZK1I1CXHQ==} + engines: {node: '>=18'} + + '@langchain/groq@0.1.2': + resolution: {integrity: sha512-bgQ9yGoNHOwG6LG2ngGvSNxF/1U1c1u3vKmFWmzecFIcBoQQOJY0jb0MrL3g1uTife0Sr3zxkWKXQg2aK/U4Sg==} + engines: {node: '>=18'} + peerDependencies: + '@langchain/core': '>=0.2.21 <0.4.0' + + '@langchain/langgraph-checkpoint@0.0.13': + resolution: {integrity: sha512-amdmBcNT8a9xP2VwcEWxqArng4gtRDcnVyVI4DsQIo1Aaz8e8+hH17zSwrUF3pt1pIYztngIfYnBOim31mtKMg==} + engines: {node: '>=18'} + peerDependencies: + '@langchain/core': '>=0.2.31 <0.4.0' + + '@langchain/langgraph-sdk@0.0.32': + resolution: {integrity: sha512-KQyM9kLO7T6AxwNrceajH7JOybP3pYpvUPnhiI2rrVndI1WyZUJ1eVC1e722BVRAPi6o+WcoTT4uMSZVinPOtA==} + + '@langchain/langgraph@0.2.36': + resolution: {integrity: sha512-zxk7ZCVxP0/Ut9785EiXCS7BE7sXd8cu943mcZUF2aNFUaQRTBbbiKpNdR3nb1+xO/B+HVktrJT2VFdkAywnng==} + engines: {node: '>=18'} + peerDependencies: + '@langchain/core': '>=0.2.36 <0.3.0 || >=0.3.9 < 0.4.0' + + '@langchain/openai@0.3.16': + resolution: {integrity: sha512-Om9HRlTeI0Ou6D4pfxbWHop4WGfkCdV/7v1W/+Jr7NSf0BNoA9jk5GqGms8ZtOYSGgPvizDu3i0TrM3B4cN4NA==} + engines: {node: '>=18'} + peerDependencies: + '@langchain/core': '>=0.2.26 <0.4.0' + + '@langchain/textsplitters@0.1.0': + resolution: {integrity: sha512-djI4uw9rlkAb5iMhtLED+xJebDdAG935AdP4eRTB02R7OB/act55Bj9wsskhZsvuyQRpO4O1wQOp85s6T6GWmw==} + engines: {node: '>=18'} + peerDependencies: + '@langchain/core': '>=0.2.21 <0.4.0' + + '@lightprotocol/compressed-token@0.17.1': + resolution: {integrity: sha512-493KCmZGw1BcHVRJaeRm8EEs+L7gX8dwY7JG13w2pfgOMtZXZ7Wxt261jFJxQJzRLTrUSlrbRJOmfW1+S1Y8SQ==} + peerDependencies: + '@lightprotocol/stateless.js': 0.17.1 + + '@lightprotocol/stateless.js@0.17.1': + resolution: {integrity: sha512-EjId1n33A6dBwpce33Wsa/fs/CDKtMtRrkxbApH0alXrnEXmbW6QhIViXOrKYXjZ4uJQM1xsBtsKe0vqJ4nbtQ==} + + '@metaplex-foundation/beet-solana@0.4.1': + resolution: {integrity: sha512-/6o32FNUtwK8tjhotrvU/vorP7umBuRFvBZrC6XCk51aKidBHe5LPVPA5AjGPbV3oftMfRuXPNd9yAGeEqeCDQ==} + + '@metaplex-foundation/beet@0.7.2': + resolution: {integrity: sha512-K+g3WhyFxKPc0xIvcIjNyV1eaTVJTiuaHZpig7Xx0MuYRMoJLLvhLTnUXhFdR5Tu2l2QSyKwfyXDgZlzhULqFg==} + + '@metaplex-foundation/mpl-core@1.1.1': + resolution: {integrity: sha512-h1kLw+cGaV8SiykoHDb1/G01+VYqtJXAt0uGuO5+2Towsdtc6ET4M62iqUnh4EacTVMIW1yYHsKsG/LYWBCKaA==} + peerDependencies: + '@metaplex-foundation/umi': '>=0.8.2 < 1' + '@noble/hashes': ^1.3.1 + + '@metaplex-foundation/mpl-token-metadata@3.3.0': + resolution: {integrity: sha512-t5vO8Wr3ZZZPGrVrGNcosX5FMkwQSgBiVMQMRNDG2De7voYFJmIibD5jdG05EoQ4Y5kZVEiwhYaO+wJB3aO5AA==} + peerDependencies: + '@metaplex-foundation/umi': '>= 0.8.2 < 1' + + '@metaplex-foundation/mpl-toolbox@0.9.4': + resolution: {integrity: sha512-fd6JxfoLbj/MM8FG2x91KYVy1U6AjBQw4qjt7+Da3trzQaWnSaYHDcYRG/53xqfvZ9qofY1T2t53GXPlD87lnQ==} + peerDependencies: + '@metaplex-foundation/umi': '>= 0.8.2 < 1' + + '@metaplex-foundation/umi-bundle-defaults@0.9.2': + resolution: {integrity: sha512-kV3tfvgvRjVP1p9OFOtH+ibOtN9omVJSwKr0We4/9r45e5LTj+32su0V/rixZUkG1EZzzOYBsxhtIE0kIw/Hrw==} + peerDependencies: + '@metaplex-foundation/umi': ^0.9.2 + '@solana/web3.js': ^1.72.0 + + '@metaplex-foundation/umi-downloader-http@0.9.2': + resolution: {integrity: sha512-tzPT9hBwenzTzAQg07rmsrqZfgguAXELbcJrsYMoASp5VqWFXYIP00g94KET6XLjWUXH4P1J2zoa6hGennPXHA==} + peerDependencies: + '@metaplex-foundation/umi': ^0.9.2 + + '@metaplex-foundation/umi-eddsa-web3js@0.9.2': + resolution: {integrity: sha512-hhPCxXbYIp4BC4z9gK78sXpWLkNSrfv4ndhF5ruAkdIp7GcRVYKj0QnOUO6lGYGiIkNlw20yoTwOe1CT//OfTQ==} + peerDependencies: + '@metaplex-foundation/umi': ^0.9.2 + '@solana/web3.js': ^1.72.0 + + '@metaplex-foundation/umi-http-fetch@0.9.2': + resolution: {integrity: sha512-YCZuBu24T9ZzEDe4+w12LEZm/fO9pkyViZufGgASC5NX93814Lvf6Ssjn/hZzjfA7CvZbvLFbmujc6CV3Q/m9Q==} + peerDependencies: + '@metaplex-foundation/umi': ^0.9.2 + + '@metaplex-foundation/umi-options@0.8.9': + resolution: {integrity: sha512-jSQ61sZMPSAk/TXn8v8fPqtz3x8d0/blVZXLLbpVbo2/T5XobiI6/MfmlUosAjAUaQl6bHRF8aIIqZEFkJiy4A==} + + '@metaplex-foundation/umi-program-repository@0.9.2': + resolution: {integrity: sha512-g3+FPqXEmYsBa8eETtUE2gb2Oe3mqac0z3/Ur1TvAg5TtIy3mzRzOy/nza+sgzejnfcxcVg835rmpBaxpBnjDA==} + peerDependencies: + '@metaplex-foundation/umi': ^0.9.2 + + '@metaplex-foundation/umi-public-keys@0.8.9': + resolution: {integrity: sha512-CxMzN7dgVGOq9OcNCJe2casKUpJ3RmTVoOvDFyeoTQuK+vkZ1YSSahbqC1iGuHEtKTLSjtWjKvUU6O7zWFTw3Q==} + + '@metaplex-foundation/umi-rpc-chunk-get-accounts@0.9.2': + resolution: {integrity: sha512-YRwVf6xH0jPBAUgMhEPi+UbjioAeqTXmjsN2TnmQCPAmHbrHrMRj0rlWYwFLWAgkmoxazYrXP9lqOFRrfOGAEA==} + peerDependencies: + '@metaplex-foundation/umi': ^0.9.2 + + '@metaplex-foundation/umi-rpc-web3js@0.9.2': + resolution: {integrity: sha512-MqcsBz8B4wGl6jxsf2Jo/rAEpYReU9VCSR15QSjhvADHMmdFxCIZCCAgE+gDE2Vuanfl437VhOcP3g5Uw8C16Q==} + peerDependencies: + '@metaplex-foundation/umi': ^0.9.2 + '@solana/web3.js': ^1.72.0 + + '@metaplex-foundation/umi-serializer-data-view@0.9.2': + resolution: {integrity: sha512-5vGptadJxUxvUcyrwFZxXlEc6Q7AYySBesizCtrBFUY8w8PnF2vzmS45CP1MLySEATNH6T9mD4Rs0tLb87iQyA==} + peerDependencies: + '@metaplex-foundation/umi': ^0.9.2 + + '@metaplex-foundation/umi-serializers-core@0.8.9': + resolution: {integrity: sha512-WT82tkiYJ0Qmscp7uTj1Hz6aWQPETwaKLAENAUN5DeWghkuBKtuxyBKVvEOuoXerJSdhiAk0e8DWA4cxcTTQ/w==} + + '@metaplex-foundation/umi-serializers-encodings@0.8.9': + resolution: {integrity: sha512-N3VWLDTJ0bzzMKcJDL08U3FaqRmwlN79FyE4BHj6bbAaJ9LEHjDQ9RJijZyWqTm0jE7I750fU7Ow5EZL38Xi6Q==} + + '@metaplex-foundation/umi-serializers-numbers@0.8.9': + resolution: {integrity: sha512-NtBf1fnVNQJHFQjLFzRu2i9GGnigb9hOm/Gfrk628d0q0tRJB7BOM3bs5C61VAs7kJs4yd+pDNVAERJkknQ7Lg==} + + '@metaplex-foundation/umi-serializers@0.9.0': + resolution: {integrity: sha512-hAOW9Djl4w4ioKeR4erDZl5IG4iJdP0xA19ZomdaCbMhYAAmG/FEs5khh0uT2mq53/MnzWcXSUPoO8WBN4Q+Vg==} + + '@metaplex-foundation/umi-transaction-factory-web3js@0.9.2': + resolution: {integrity: sha512-fR1Kf21uylMFd1Smkltmj4jTNxhqSWf416owsJ+T+cvJi2VCOcOwq/3UFzOrpz78fA0RhsajKYKj0HYsRnQI1g==} + peerDependencies: + '@metaplex-foundation/umi': ^0.9.2 + '@solana/web3.js': ^1.72.0 + + '@metaplex-foundation/umi-web3js-adapters@0.9.2': + resolution: {integrity: sha512-RQqUTtHYY9fmEMnq7s3Hiv/81flGaoI0ZVVoafnFVaQLnxU6QBKxtboRZHk43XtD9CiFh5f9izrMJX7iK7KlOA==} + peerDependencies: + '@metaplex-foundation/umi': ^0.9.2 + '@solana/web3.js': ^1.72.0 + + '@metaplex-foundation/umi@0.9.2': + resolution: {integrity: sha512-9i4Acm4pruQfJcpRrc2EauPBwkfDN0I9QTvJyZocIlKgoZwD6A6wH0PViH1AjOVG5CQCd1YI3tJd5XjYE1ElBw==} + + '@msgpack/msgpack@3.0.0-beta2': + resolution: {integrity: sha512-y+l1PNV0XDyY8sM3YtuMLK5vE3/hkfId+Do8pLo/OPxfxuFAUwcGz3oiiUuV46/aBpwTzZ+mRWVMtlSKbradhw==} + engines: {node: '>= 14'} + + '@next/bundle-analyzer@13.5.8': + resolution: {integrity: sha512-B/6xFehMbPnBqw6Wtf0iWuOTTHAmymeKS5xKOlaEG0BrGffGZGQ3KTJycMYG6ujLG9A2uCcuTX2vd0M6F5xM3w==} + + '@next/env@14.2.21': + resolution: {integrity: sha512-lXcwcJd5oR01tggjWJ6SrNNYFGuOOMB9c251wUNkjCpkoXOPkDeF/15c3mnVlBqrW4JJXb2kVxDFhC4GduJt2A==} + + '@next/eslint-plugin-next@13.4.12': + resolution: {integrity: sha512-6rhK9CdxEgj/j1qvXIyLTWEaeFv7zOK8yJMulz3Owel0uek0U9MJCGzmKgYxM3aAUBo3gKeywCZKyQnJKto60A==} + + '@next/swc-darwin-arm64@14.2.21': + resolution: {integrity: sha512-HwEjcKsXtvszXz5q5Z7wCtrHeTTDSTgAbocz45PHMUjU3fBYInfvhR+ZhavDRUYLonm53aHZbB09QtJVJj8T7g==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-x64@14.2.21': + resolution: {integrity: sha512-TSAA2ROgNzm4FhKbTbyJOBrsREOMVdDIltZ6aZiKvCi/v0UwFmwigBGeqXDA97TFMpR3LNNpw52CbVelkoQBxA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-linux-arm64-gnu@14.2.21': + resolution: {integrity: sha512-0Dqjn0pEUz3JG+AImpnMMW/m8hRtl1GQCNbO66V1yp6RswSTiKmnHf3pTX6xMdJYSemf3O4Q9ykiL0jymu0TuA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@14.2.21': + resolution: {integrity: sha512-Ggfw5qnMXldscVntwnjfaQs5GbBbjioV4B4loP+bjqNEb42fzZlAaK+ldL0jm2CTJga9LynBMhekNfV8W4+HBw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-x64-gnu@14.2.21': + resolution: {integrity: sha512-uokj0lubN1WoSa5KKdThVPRffGyiWlm/vCc/cMkWOQHw69Qt0X1o3b2PyLLx8ANqlefILZh1EdfLRz9gVpG6tg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@14.2.21': + resolution: {integrity: sha512-iAEBPzWNbciah4+0yI4s7Pce6BIoxTQ0AGCkxn/UBuzJFkYyJt71MadYQkjPqCQCJAFQ26sYh7MOKdU+VQFgPg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-win32-arm64-msvc@14.2.21': + resolution: {integrity: sha512-plykgB3vL2hB4Z32W3ktsfqyuyGAPxqwiyrAi2Mr8LlEUhNn9VgkiAl5hODSBpzIfWweX3er1f5uNpGDygfQVQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-ia32-msvc@14.2.21': + resolution: {integrity: sha512-w5bacz4Vxqrh06BjWgua3Yf7EMDb8iMcVhNrNx8KnJXt8t+Uu0Zg4JHLDL/T7DkTCEEfKXO/Er1fcfWxn2xfPA==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@next/swc-win32-x64-msvc@14.2.21': + resolution: {integrity: sha512-sT6+llIkzpsexGYZq8cjjthRyRGe5cJVhqh12FmlbxHqna6zsDDK8UNaV7g41T6atFHCJUPeLb3uyAwrBwy0NA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@noble/curves@1.7.0': + resolution: {integrity: sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==} + engines: {node: ^14.21.3 || >=16} + + '@noble/hashes@1.5.0': + resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==} + engines: {node: ^14.21.3 || >=16} + + '@noble/hashes@1.6.0': + resolution: {integrity: sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ==} + engines: {node: ^14.21.3 || >=16} + + '@noble/hashes@1.6.1': + resolution: {integrity: sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==} + engines: {node: ^14.21.3 || >=16} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@nolyfill/is-core-module@1.0.39': + resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} + engines: {node: '>=12.4.0'} + + '@onsol/tldparser@0.6.7': + resolution: {integrity: sha512-QwkRDLyC514pxeplCCXZ2kTiRcJSeUrpp+9o2XqLbePy/qzZGGG8I0UbXUKuWVD/bUL1zAm21+D+Eu30OKwcQg==} + engines: {node: '>=14'} + peerDependencies: + '@solana/web3.js': ^1.95.3 + bn.js: ^5.2.1 + borsh: ^0.7.0 + buffer: 6.0.1 + + '@opentelemetry/api@1.9.0': + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + + '@orca-so/common-sdk@0.6.4': + resolution: {integrity: sha512-iOiC6exTA9t2CEOaUPoWlNP3soN/1yZFjoz1mSf7NvOqo/PJZeIdWpB7BRXwU0mGGatjxU4SFgMGQ8NrSx+ONw==} + peerDependencies: + '@solana/spl-token': ^0.4.1 + '@solana/web3.js': ^1.90.0 + decimal.js: ^10.4.3 + + '@orca-so/whirlpools-sdk@0.13.12': + resolution: {integrity: sha512-+LOqGTe0DYUsYwemltOU4WQIviqoICQlIcAmmEX/WnBh6wntpcLDcXkPV6dBHW7NA2/J8WEVAZ50biLJb4subg==} + peerDependencies: + '@coral-xyz/anchor': ~0.29.0 + '@orca-so/common-sdk': 0.6.4 + '@solana/spl-token': ^0.4.8 + '@solana/web3.js': ^1.90.0 + decimal.js: ^10.4.3 + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@playwright/test@1.49.1': + resolution: {integrity: sha512-Ky+BVzPz8pL6PQxHqNRW1k3mIyv933LML7HktS8uik0bUXNCdPhoS/kLihiO1tMf/egaJb4IutXd7UywvXEW+g==} + engines: {node: '>=18'} + hasBin: true + + '@polka/url@1.0.0-next.28': + resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} + + '@pythnetwork/price-service-client@1.9.0': + resolution: {integrity: sha512-SLm3IFcfmy9iMqHeT4Ih6qMNZhJEefY14T9yTlpsH2D/FE5+BaGGnfcexUifVlfH6M7mwRC4hEFdNvZ6ebZjJg==} + deprecated: This package is deprecated and is no longer maintained. Please use @pythnetwork/hermes-client instead. + + '@pythnetwork/price-service-sdk@1.8.0': + resolution: {integrity: sha512-tFZ1thj3Zja06DzPIX2dEWSi7kIfIyqreoywvw5NQ3Z1pl5OJHQGMEhxt6Li3UCGSp2ooYZS9wl8/8XfrfrNSA==} + + '@raydium-io/raydium-sdk-v2@0.1.95-alpha': + resolution: {integrity: sha512-+u7yxo/R1JDysTCzOuAlh90ioBe2DlM2Hbcz/tFsxP/YzmnYQzShvNjcmc0361a4zJhmlrEJfpFXW0J3kkX5vA==} + + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + + '@rushstack/eslint-patch@1.10.4': + resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==} + + '@scure/base@1.2.1': + resolution: {integrity: sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ==} + + '@shikijs/core@1.24.4': + resolution: {integrity: sha512-jjLsld+xEEGYlxAXDyGwWsKJ1sw5Pc1pnp4ai2ORpjx2UX08YYTC0NNqQYO1PaghYaR+PvgMOGuvzw2he9sk0Q==} + + '@shikijs/engine-javascript@1.24.4': + resolution: {integrity: sha512-TClaQOLvo9WEMJv6GoUsykQ6QdynuKszuORFWCke8qvi6PeLm7FcD9+7y45UenysxEWYpDL5KJaVXTngTE+2BA==} + + '@shikijs/engine-oniguruma@1.24.4': + resolution: {integrity: sha512-Do2ry6flp2HWdvpj2XOwwa0ljZBRy15HKZITzPcNIBOGSeprnA8gOooA/bLsSPuy8aJBa+Q/r34dMmC3KNL/zw==} + + '@shikijs/types@1.24.4': + resolution: {integrity: sha512-0r0XU7Eaow0PuDxuWC1bVqmWCgm3XqizIaT7SM42K03vc69LGooT0U8ccSR44xP/hGlNx4FKhtYpV+BU6aaKAA==} + + '@shikijs/vscode-textmate@9.3.1': + resolution: {integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==} + + '@solana/buffer-layout-utils@0.2.0': + resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==} + engines: {node: '>= 10'} + + '@solana/buffer-layout@4.0.1': + resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==} + engines: {node: '>=5.10'} + + '@solana/codecs-core@2.0.0-preview.2': + resolution: {integrity: sha512-gLhCJXieSCrAU7acUJjbXl+IbGnqovvxQLlimztPoGgfLQ1wFYu+XJswrEVQqknZYK1pgxpxH3rZ+OKFs0ndQg==} + + '@solana/codecs-core@2.0.0-preview.4': + resolution: {integrity: sha512-A0VVuDDA5kNKZUinOqHxJQK32aKTucaVbvn31YenGzHX1gPqq+SOnFwgaEY6pq4XEopSmaK16w938ZQS8IvCnw==} + peerDependencies: + typescript: '>=5' + + '@solana/codecs-core@2.0.0-rc.1': + resolution: {integrity: sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ==} + peerDependencies: + typescript: '>=5' + + '@solana/codecs-data-structures@2.0.0-preview.2': + resolution: {integrity: sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg==} + + '@solana/codecs-data-structures@2.0.0-preview.4': + resolution: {integrity: sha512-nt2k2eTeyzlI/ccutPcG36M/J8NAYfxBPI9h/nQjgJ+M+IgOKi31JV8StDDlG/1XvY0zyqugV3I0r3KAbZRJpA==} + peerDependencies: + typescript: '>=5' + + '@solana/codecs-data-structures@2.0.0-rc.1': + resolution: {integrity: sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog==} + peerDependencies: + typescript: '>=5' + + '@solana/codecs-numbers@2.0.0-preview.2': + resolution: {integrity: sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw==} + + '@solana/codecs-numbers@2.0.0-preview.4': + resolution: {integrity: sha512-Q061rLtMadsO7uxpguT+Z7G4UHnjQ6moVIxAQxR58nLxDPCC7MB1Pk106/Z7NDhDLHTcd18uO6DZ7ajHZEn2XQ==} + peerDependencies: + typescript: '>=5' + + '@solana/codecs-numbers@2.0.0-rc.1': + resolution: {integrity: sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ==} + peerDependencies: + typescript: '>=5' + + '@solana/codecs-strings@2.0.0-preview.2': + resolution: {integrity: sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g==} + peerDependencies: + fastestsmallesttextencoderdecoder: ^1.0.22 + + '@solana/codecs-strings@2.0.0-preview.4': + resolution: {integrity: sha512-YDbsQePRWm+xnrfS64losSGRg8Wb76cjK1K6qfR8LPmdwIC3787x9uW5/E4icl/k+9nwgbIRXZ65lpF+ucZUnw==} + peerDependencies: + fastestsmallesttextencoderdecoder: ^1.0.22 + typescript: '>=5' + + '@solana/codecs-strings@2.0.0-rc.1': + resolution: {integrity: sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g==} + peerDependencies: + fastestsmallesttextencoderdecoder: ^1.0.22 + typescript: '>=5' + + '@solana/codecs@2.0.0-preview.2': + resolution: {integrity: sha512-4HHzCD5+pOSmSB71X6w9ptweV48Zj1Vqhe732+pcAQ2cMNnN0gMPMdDq7j3YwaZDZ7yrILVV/3+HTnfT77t2yA==} + + '@solana/codecs@2.0.0-preview.4': + resolution: {integrity: sha512-gLMupqI4i+G4uPi2SGF/Tc1aXcviZF2ybC81x7Q/fARamNSgNOCUUoSCg9nWu1Gid6+UhA7LH80sWI8XjKaRog==} + peerDependencies: + typescript: '>=5' + + '@solana/codecs@2.0.0-rc.1': + resolution: {integrity: sha512-qxoR7VybNJixV51L0G1RD2boZTcxmwUWnKCaJJExQ5qNKwbpSyDdWfFJfM5JhGyKe9DnPVOZB+JHWXnpbZBqrQ==} + peerDependencies: + typescript: '>=5' + + '@solana/errors@2.0.0-preview.2': + resolution: {integrity: sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA==} + hasBin: true + + '@solana/errors@2.0.0-preview.4': + resolution: {integrity: sha512-kadtlbRv2LCWr8A9V22On15Us7Nn8BvqNaOB4hXsTB3O0fU40D1ru2l+cReqLcRPij4znqlRzW9Xi0m6J5DIhA==} + hasBin: true + peerDependencies: + typescript: '>=5' + + '@solana/errors@2.0.0-rc.1': + resolution: {integrity: sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ==} + hasBin: true + peerDependencies: + typescript: '>=5' + + '@solana/options@2.0.0-preview.2': + resolution: {integrity: sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w==} + + '@solana/options@2.0.0-preview.4': + resolution: {integrity: sha512-tv2O/Frxql/wSe3jbzi5nVicIWIus/BftH+5ZR+r9r3FO0/htEllZS5Q9XdbmSboHu+St87584JXeDx3xm4jaA==} + peerDependencies: + typescript: '>=5' + + '@solana/options@2.0.0-rc.1': + resolution: {integrity: sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA==} + peerDependencies: + typescript: '>=5' + + '@solana/spl-token-group@0.0.4': + resolution: {integrity: sha512-7+80nrEMdUKlK37V6kOe024+T7J4nNss0F8LQ9OOPYdWCCfJmsGUzVx2W3oeizZR4IHM6N4yC9v1Xqwc3BTPWw==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.91.6 + + '@solana/spl-token-group@0.0.5': + resolution: {integrity: sha512-CLJnWEcdoUBpQJfx9WEbX3h6nTdNiUzswfFdkABUik7HVwSNA98u5AYvBVK2H93d9PGMOHAak2lHW9xr+zAJGQ==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.94.0 + + '@solana/spl-token-group@0.0.7': + resolution: {integrity: sha512-V1N/iX7Cr7H0uazWUT2uk27TMqlqedpXHRqqAbVO2gvmJyT0E0ummMEAVQeXZ05ZhQ/xF39DLSdBp90XebWEug==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.95.3 + + '@solana/spl-token-metadata@0.1.6': + resolution: {integrity: sha512-7sMt1rsm/zQOQcUWllQX9mD2O6KhSAtY1hFR2hfFwgqfFWzSY9E9GDvFVNYUI1F0iQKcm6HmePU9QbKRXTEBiA==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.95.3 + + '@solana/spl-token@0.4.6': + resolution: {integrity: sha512-1nCnUqfHVtdguFciVWaY/RKcQz1IF4b31jnKgAmjU9QVN1q7dRUkTEWJZgTYIEtsULjVnC9jRqlhgGN39WbKKA==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.91.6 + + '@solana/spl-token@0.4.8': + resolution: {integrity: sha512-RO0JD9vPRi4LsAbMUdNbDJ5/cv2z11MGhtAvFeRzT4+hAGE/FUzRi0tkkWtuCfSIU3twC6CtmAihRp/+XXjWsA==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.94.0 + + '@solana/spl-token@0.4.9': + resolution: {integrity: sha512-g3wbj4F4gq82YQlwqhPB0gHFXfgsC6UmyGMxtSLf/BozT/oKd59465DbnlUK8L8EcimKMavxsVAMoLcEdeCicg==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.95.3 + + '@solana/spl-type-length-value@0.1.0': + resolution: {integrity: sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA==} + engines: {node: '>=16'} + + '@solana/web3.js@1.95.3': + resolution: {integrity: sha512-O6rPUN0w2fkNqx/Z3QJMB9L225Ex10PRDH8bTaIUPZXMPV0QP8ZpPvjQnXK+upUczlRgzHzd6SjKIha1p+I6og==} + + '@solana/web3.js@1.98.0': + resolution: {integrity: sha512-nz3Q5OeyGFpFCR+erX2f6JPt3sKhzhYcSycBCSPkWjzSVDh/Rr1FqTVMRe58FKO16/ivTUcuJjeS5MyBvpkbzA==} + + '@supabase/auth-js@2.67.3': + resolution: {integrity: sha512-NJDaW8yXs49xMvWVOkSIr8j46jf+tYHV0wHhrwOaLLMZSFO4g6kKAf+MfzQ2RaD06OCUkUHIzctLAxjTgEVpzw==} + + '@supabase/functions-js@2.4.4': + resolution: {integrity: sha512-WL2p6r4AXNGwop7iwvul2BvOtuJ1YQy8EbOd0dhG1oN1q8el/BIRSFCFnWAMM/vJJlHWLi4ad22sKbKr9mvjoA==} + + '@supabase/node-fetch@2.6.15': + resolution: {integrity: sha512-1ibVeYUacxWYi9i0cf5efil6adJ9WRyZBLivgjs+AUpewx1F3xPi7gLgaASI2SmIQxPoCEjAsLAzKPgMJVgOUQ==} + engines: {node: 4.x || >=6.0.0} + + '@supabase/postgrest-js@1.17.7': + resolution: {integrity: sha512-aOzOYaTADm/dVTNksyqv9KsbhVa1gHz1Hoxb2ZEF2Ed9H7qlWOfptECQWmkEmrrFjtNaiPrgiSaPECvzI/seDA==} + + '@supabase/realtime-js@2.11.2': + resolution: {integrity: sha512-u/XeuL2Y0QEhXSoIPZZwR6wMXgB+RQbJzG9VErA3VghVt7uRfSVsjeqd7m5GhX3JR6dM/WRmLbVR8URpDWG4+w==} + + '@supabase/storage-js@2.7.1': + resolution: {integrity: sha512-asYHcyDR1fKqrMpytAS1zjyEfvxuOIp1CIXX7ji4lHHcJKqyk+sLl/Vxgm4sN6u8zvuUtae9e4kDxQP2qrwWBA==} + + '@supabase/supabase-js@2.47.10': + resolution: {integrity: sha512-vJfPF820Ho5WILYHfKiBykDQ1SB9odTHrRZ0JxHfuLMC8GRvv21YLkUZQK7/rSVCkLvD6/ZwMWaOAfdUd//guw==} + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + + '@swc/helpers@0.5.5': + resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} + + '@tokenizer/token@0.3.0': + resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/diff-match-patch@1.0.36': + resolution: {integrity: sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + + '@types/node-fetch@2.6.12': + resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==} + + '@types/node@10.14.22': + resolution: {integrity: sha512-9taxKC944BqoTVjE+UT3pQH0nHZlTvITwfsOZqyc+R3sfJuxaTtxWjfn1K2UlxyPcKHf0rnaXcVFrS9F9vf0bw==} + + '@types/node@12.20.55': + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + + '@types/node@18.19.68': + resolution: {integrity: sha512-QGtpFH1vB99ZmTa63K4/FU8twThj4fuVSBkGddTp7uIL/cuoLWIUSL2RcOaigBhfR+hg5pgGkBnkoOxrTVBMKw==} + + '@types/node@20.12.12': + resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==} + + '@types/phoenix@1.6.6': + resolution: {integrity: sha512-PIzZZlEppgrpoT2QgbnDU+MMzuR6BbCjllj0bM70lWoejMeNJAxCchxnv7J3XFkI8MpygtRpzXrIlmWUBclP5A==} + + '@types/prop-types@15.7.14': + resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} + + '@types/react-dom@18.3.0': + resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} + + '@types/react@18.3.2': + resolution: {integrity: sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==} + + '@types/retry@0.12.0': + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + + '@types/tough-cookie@4.0.5': + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@types/uuid@10.0.0': + resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} + + '@types/uuid@8.3.4': + resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} + + '@types/ws@7.4.7': + resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} + + '@types/ws@8.5.13': + resolution: {integrity: sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==} + + '@typescript-eslint/parser@5.62.0': + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@5.62.0': + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@typescript-eslint/types@5.62.0': + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@typescript-eslint/typescript-estree@5.62.0': + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/visitor-keys@5.62.0': + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@ungap/structured-clone@1.2.1': + resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==} + + '@vue/compiler-core@3.5.13': + resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} + + '@vue/compiler-dom@3.5.13': + resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} + + '@vue/compiler-sfc@3.5.13': + resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} + + '@vue/compiler-ssr@3.5.13': + resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} + + '@vue/reactivity@3.5.13': + resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} + + '@vue/runtime-core@3.5.13': + resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==} + + '@vue/runtime-dom@3.5.13': + resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==} + + '@vue/server-renderer@3.5.13': + resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==} + peerDependencies: + vue: 3.5.13 + + '@vue/shared@3.5.13': + resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} + + JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-typescript@1.4.13: + resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==} + peerDependencies: + acorn: '>=8.9.0' + + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + + agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} + + ai@3.4.33: + resolution: {integrity: sha512-plBlrVZKwPoRTmM8+D1sJac9Bq8eaa2jiZlHLZIWekKWI1yMWYZvCCEezY9ASPwRhULYDJB2VhKOBUUeg3S5JQ==} + engines: {node: '>=18'} + peerDependencies: + openai: ^4.42.0 + react: ^18 || ^19 || ^19.0.0-rc + sswr: ^2.1.0 + svelte: ^3.0.0 || ^4.0.0 || ^5.0.0 + zod: ^3.0.0 + peerDependenciesMeta: + openai: + optional: true + react: + optional: true + sswr: + optional: true + svelte: + optional: true + zod: + optional: true + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + ansicolors@0.3.2: + resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} + engines: {node: '>= 0.4'} + + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + + array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + engines: {node: '>= 0.4'} + + array.prototype.flat@1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.3: + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} + engines: {node: '>= 0.4'} + + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} + engines: {node: '>= 0.4'} + + assert@2.1.0: + resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} + + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + + ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + autoprefixer@10.4.14: + resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axe-core@4.10.2: + resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} + engines: {node: '>=4'} + + axios-retry@3.9.1: + resolution: {integrity: sha512-8PJDLJv7qTTMMwdnbMvrLYuvB47M81wRtxQmEdV5w4rgbTXTt+vtPkXwajOfOdSyv/wZICJOC+/UhXH4aQ/R+w==} + + axios@1.7.4: + resolution: {integrity: sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==} + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base-x@3.0.10: + resolution: {integrity: sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==} + + base-x@4.0.0: + resolution: {integrity: sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==} + + base-x@5.0.0: + resolution: {integrity: sha512-sMW3VGSX1QWVFA6l8U62MLKz29rRfpTlYdCqLdpLo1/Yd4zZwSbnUaDfciIAowAqvq7YFnWq9hrhdg1KYgc1lQ==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + big.js@6.2.2: + resolution: {integrity: sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ==} + + bigint-buffer@1.1.5: + resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==} + engines: {node: '>= 10.0.0'} + + bignumber.js@9.1.2: + resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + + bn.js@5.2.1: + resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} + + borsh@0.7.0: + resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==} + + borsh@1.0.0: + resolution: {integrity: sha512-fSVWzzemnyfF89EPwlUNsrS5swF5CrtiN4e+h0/lLf4dz2he4L3ndM20PS9wj7ICSkXJe/TQUHdaPTq15b1mNQ==} + + borsh@2.0.0: + resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.24.3: + resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + bs58@4.0.1: + resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} + + bs58@5.0.0: + resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==} + + bs58@6.0.0: + resolution: {integrity: sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==} + + buffer-equal-constant-time@1.0.1: + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + + buffer-layout@1.2.2: + resolution: {integrity: sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==} + engines: {node: '>=4.5'} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + bufferutil@4.0.8: + resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} + engines: {node: '>=6.14.2'} + + busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + + call-bind-apply-helpers@1.0.1: + resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} + engines: {node: '>= 0.4'} + + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.3: + resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-lite@1.0.30001690: + resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + chai@5.1.2: + resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} + engines: {node: '>=12'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + + clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + engines: {node: '>=6'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + cross-fetch@3.2.0: + resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + crypto-hash@1.3.0: + resolution: {integrity: sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==} + engines: {node: '>=8'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + engines: {node: '>= 0.4'} + + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + decimal.js-light@2.5.1: + resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==} + + decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + delay@5.0.0: + resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} + engines: {node: '>=10'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + diff-match-patch@1.0.5: + resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + + dotenv@16.4.7: + resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} + engines: {node: '>=12'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ecdsa-sig-formatter@1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + + electron-to-chromium@1.5.76: + resolution: {integrity: sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==} + + emoji-regex-xs@1.0.0: + resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + enhanced-resolve@5.18.0: + resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} + engines: {node: '>=10.13.0'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + es-abstract@1.23.7: + resolution: {integrity: sha512-OygGC8kIcDhXX+6yAZRGLqwi2CmEXCbLQixeGUgYeR+Qwlppqmo7DIDr8XibtEBZp+fJcoYpoatp5qwLMEdcqQ==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-iterator-helpers@1.2.1: + resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + + es-to-primitive@1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + engines: {node: '>= 0.4'} + + es6-promise@4.2.8: + resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} + + es6-promisify@5.0.0: + resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-config-next@13.4.12: + resolution: {integrity: sha512-ZF0r5vxKaVazyZH/37Au/XItiG7qUOBw+HaH3PeyXltIMwXorsn6bdrl0Nn9N5v5v9spc+6GM2ryjugbjF6X2g==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-import-resolver-typescript@3.7.0: + resolution: {integrity: sha512-Vrwyi8HHxY97K5ebydMtffsWAn1SCR9eol49eCd5fJS4O1WV7PaAjbcjmbfJJSMz/t4Mal212Uz/fQZrOB8mow==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + + eslint-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-jsx-a11y@6.10.2: + resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + + eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705: + resolution: {integrity: sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + + eslint-plugin-react@7.37.3: + resolution: {integrity: sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint@8.46.0: + resolution: {integrity: sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + hasBin: true + + esm-env@1.2.1: + resolution: {integrity: sha512-U9JedYYjCnadUlXk7e1Kr+aENQhtUaoaV9+gZm1T8LC/YBAPJx3NSPIAurFOC0U5vrdSevnUJS2/wUVxGwPhng==} + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrap@1.3.2: + resolution: {integrity: sha512-C4PXusxYhFT98GjLSmb20k9PREuUdporer50dhzGuJu9IJXktbMddVCMLAERl5dAHyAi73GWWCE4FVHGP1794g==} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + eventsource-parser@1.1.2: + resolution: {integrity: sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==} + engines: {node: '>=14.18'} + + expr-eval@2.0.2: + resolution: {integrity: sha512-4EMSHGOPSwAfBiibw3ndnP0AvjDWLsMvGOvWEZ2F96IGk0bIVdjQisOHxReSkE13mHcfbuCiXw+G4y0zv6N8Eg==} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + eyes@0.1.8: + resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} + engines: {node: '> 0.1.90'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-stable-stringify@1.0.0: + resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==} + + fastestsmallesttextencoderdecoder@1.0.22: + resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==} + + fastq@1.18.0: + resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + file-type@16.5.4: + resolution: {integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==} + engines: {node: '>=10'} + + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + flatted@3.3.2: + resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + + form-data-encoder@1.7.2: + resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + engines: {node: '>= 6'} + + formdata-node@4.4.1: + resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} + engines: {node: '>= 12.20'} + + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + get-intrinsic@1.2.6: + resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==} + engines: {node: '>= 0.4'} + + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + deprecated: Glob versions prior to v9 are no longer supported + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + graphemesplit@2.4.4: + resolution: {integrity: sha512-lKrpp1mk1NH26USxC/Asw4OHbhSQf5XfrWZ+CDv/dFVvd1j17kFgMotdJvOesmHkbFX9P9sBfpH8VogxOWLg8w==} + + groq-sdk@0.5.0: + resolution: {integrity: sha512-RVmhW7qZ+XZoy5fIuSdx/LGQJONpL8MHgZEW7dFwTdgkzStub2XQx6OKv28CHogijdwH41J+Npj/z2jBPu3vmw==} + + gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + engines: {node: '>= 0.4'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hast-util-to-html@9.0.4: + resolution: {integrity: sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + + ibm-cloud-sdk-core@5.1.0: + resolution: {integrity: sha512-KJCbPz3tiXB1NGAD7cL4JtwpWV8yd/C7jsaHsxvedMo2ZblNG8emMyvSpGhiKAQVZmi3c0ujz6eJdy22NHuUWQ==} + engines: {node: '>=18'} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inflight@1.0.6: + resolution: {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. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} + engines: {node: '>= 0.4'} + + ipaddr.js@2.2.0: + resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} + engines: {node: '>= 10'} + + is-arguments@1.2.0: + resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} + engines: {node: '>= 0.4'} + + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + engines: {node: '>= 0.4'} + + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + + is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.2.1: + resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==} + engines: {node: '>= 0.4'} + + is-bun-module@1.3.0: + resolution: {integrity: sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + engines: {node: '>= 0.4'} + + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-nan@1.3.2: + resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} + engines: {node: '>= 0.4'} + + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-reference@3.0.3: + resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} + + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-retry-allowed@2.2.0: + resolution: {integrity: sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==} + engines: {node: '>=10'} + + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + engines: {node: '>= 0.4'} + + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + engines: {node: '>= 0.4'} + + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.1.0: + resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} + engines: {node: '>= 0.4'} + + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + engines: {node: '>= 0.4'} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isomorphic-ws@4.0.1: + resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} + peerDependencies: + ws: '*' + + isstream@0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + + iterator.prototype@1.1.4: + resolution: {integrity: sha512-x4WH0BWmrMmg4oHHl+duwubhrvczGlyuGAZu3nvrf0UXOfPu8IhZObFEr7DE/iv01YgVZrsOiRcqw2srkKEDIA==} + engines: {node: '>= 0.4'} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jayson@4.1.3: + resolution: {integrity: sha512-LtXh5aYZodBZ9Fc3j6f2w+MTNcnxteMOrb+QgIouguGOulWi0lieEkOUg+HkjjFs0DGoWDds6bi4E9hpNFLulQ==} + engines: {node: '>=8'} + hasBin: true + + jiti@1.21.7: + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + hasBin: true + + js-base64@3.7.7: + resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} + + js-tiktoken@1.0.16: + resolution: {integrity: sha512-nUVdO5k/M9llWpiaZlBBDdtmr6qWXwSD6fgaDu2zM8UP+OXxx9V37lFkI6w0/1IuaDx7WffZ37oYd9KvcWKElg==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsondiffpatch@0.6.0: + resolution: {integrity: sha512-3QItJOXp2AP1uv7waBkao5nCvhEv+QmJAd38Ybq7wNI74Q+BBmnLn4EDKz6yI9xGAIQoUF87qHt+kc1IVxB4zQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + + jsonwebtoken@9.0.2: + resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} + engines: {node: '>=12', npm: '>=6'} + + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + + jwa@1.4.1: + resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} + + jws@3.2.2: + resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + langchain@0.3.8: + resolution: {integrity: sha512-EiAHFgBdThuXFmIx9j81wjdPItpRsw0Ck4r5dyhB74gyhehRGna/UK2CTqeKVnIUM/f4g4JbxUgAU4voXljDMw==} + engines: {node: '>=18'} + peerDependencies: + '@langchain/anthropic': '*' + '@langchain/aws': '*' + '@langchain/cohere': '*' + '@langchain/core': '>=0.2.21 <0.4.0' + '@langchain/google-genai': '*' + '@langchain/google-vertexai': '*' + '@langchain/groq': '*' + '@langchain/mistralai': '*' + '@langchain/ollama': '*' + axios: '*' + cheerio: '*' + handlebars: ^4.7.8 + peggy: ^3.0.2 + typeorm: '*' + peerDependenciesMeta: + '@langchain/anthropic': + optional: true + '@langchain/aws': + optional: true + '@langchain/cohere': + optional: true + '@langchain/google-genai': + optional: true + '@langchain/google-vertexai': + optional: true + '@langchain/groq': + optional: true + '@langchain/mistralai': + optional: true + '@langchain/ollama': + optional: true + axios: + optional: true + cheerio: + optional: true + handlebars: + optional: true + peggy: + optional: true + typeorm: + optional: true + + langsmith@0.2.14: + resolution: {integrity: sha512-ClAuAgSf3m9miMYotLEaZKQyKdaWlfjhebCuYco8bc6g72dU2VwTg31Bv4YINBq7EH2i1cMwbOiJxbOXPqjGig==} + peerDependencies: + openai: '*' + peerDependenciesMeta: + openai: + optional: true + + language-subtag-registry@0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} + + language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + + locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.includes@4.3.0: + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + + lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + + lodash.isinteger@4.0.4: + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + + lodash.isnumber@3.0.3: + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.once@4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + loupe@3.1.2: + resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} + + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lunr@2.3.9: + resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} + + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + + markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + hasBin: true + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.1: + resolution: {integrity: sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + mrmime@1.0.1: + resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} + engines: {node: '>=10'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + mustache@4.2.0: + resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} + hasBin: true + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + next@14.2.21: + resolution: {integrity: sha512-rZmLwucLHr3/zfDMYbJXbw0ZeoBpirxkXuvsJbk7UPorvPYZhP7vq7aHbKnU7dQNCYIimRrbB2pp3xmf+wsYUg==} + engines: {node: '>=18.17.0'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + react: ^18.2.0 + react-dom: ^18.2.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + sass: + optional: true + + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} + engines: {node: '>= 0.4'} + + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + engines: {node: '>= 0.4'} + + object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + + object.values@1.2.1: + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} + engines: {node: '>= 0.4'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + oniguruma-to-es@0.8.1: + resolution: {integrity: sha512-dekySTEvCxCj0IgKcA2uUCO/e4ArsqpucDPcX26w9ajx+DvMWLc5eZeJaRQkd7oC/+rwif5gnT900tA34uN9Zw==} + + openai@4.77.0: + resolution: {integrity: sha512-WWacavtns/7pCUkOWvQIjyOfcdr9X+9n9Vvb0zFeKVDAqwCMDHB+iSr24SVaBAhplvSG6JrRXFpcNM9gWhOGIw==} + hasBin: true + peerDependencies: + zod: ^3.23.8 + peerDependenciesMeta: + zod: + optional: true + + openapi-types@12.1.3: + resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} + + opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} + + p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + + p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + pako@0.2.9: + resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} + + pako@2.1.0: + resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} + + peek-readable@4.1.0: + resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==} + engines: {node: '>=8'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + playwright-core@1.49.1: + resolution: {integrity: sha512-BzmpVcs4kE2CH15rWfzpjzVGhWERJfmnXmniSyKeRZUs9Ws65m+RGIi7mjJK/euCegfn3i7jvqWeWyHe9y3Vgg==} + engines: {node: '>=18'} + hasBin: true + + playwright@1.49.1: + resolution: {integrity: sha512-VYL8zLoNTBxVOrJBbDuRgDWa3i+mfQgDTrL8Ah9QXZ7ax4Dsj0MSq5bYgytRnDVVe+njoKnfsYkH3HzqVj5UZA==} + engines: {node: '>=18'} + hasBin: true + + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.0.1: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.4.27: + resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.4.49: + resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier@3.0.0: + resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==} + engines: {node: '>=14'} + hasBin: true + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + property-information@6.5.0: + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + psl@1.15.0: + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} + + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-toastify@9.1.3: + resolution: {integrity: sha512-fPfb8ghtn/XMxw3LkxQBk3IyagNpF/LIKjOBflbexr2AWxAH1MJgvnESwEwBn9liLFXgTKWgBSdZpw9m4OTHTg==} + peerDependencies: + react: '>=16' + react-dom: '>=16' + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readable-web-to-node-stream@3.0.2: + resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==} + engines: {node: '>=8'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + reflect.getprototypeof@1.0.9: + resolution: {integrity: sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q==} + engines: {node: '>= 0.4'} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + regex-recursion@5.0.0: + resolution: {integrity: sha512-UwyOqeobrCCqTXPcsSqH4gDhOjD5cI/b8kjngWgSZbxYh5yVjAwTjO5+hAuPRNiuR70+5RlWSs+U9PVcVcW9Lw==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@5.0.2: + resolution: {integrity: sha512-/pczGbKIQgfTMRV0XjABvc5RzLqQmwqxLHdQao2RTXPk+pmTXB2P0IaUHYdYyk412YLwUIkaeMd5T+RzVgTqnQ==} + + regexp.prototype.flags@1.5.3: + resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} + engines: {node: '>= 0.4'} + + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} + hasBin: true + + resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + + retry-axios@2.6.0: + resolution: {integrity: sha512-pOLi+Gdll3JekwuFjXO3fTq+L9lzMQGcSq7M5gIjExcl3Gu1hd4XXuf5o3+LuSBsaULQH7DiNbsqPd1chVpQGQ==} + engines: {node: '>=10.7.0'} + peerDependencies: + axios: '*' + + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rpc-websockets@9.0.4: + resolution: {integrity: sha512-yWZWN0M+bivtoNLnaDbtny4XchdAIF5Q4g/ZsC5UC61Ckbp0QczwO8fg44rV3uYmY4WHd+EZQbn90W1d8ojzqQ==} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-array-concat@1.1.3: + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + secure-json-parse@2.7.0: + resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shiki@1.24.4: + resolution: {integrity: sha512-aVGSFAOAr1v26Hh/+GBIsRVDWJ583XYV7CuNURKRWh9gpGv4OdbisZGq96B9arMYTZhTQkmRF5BrShOSTvNqhw==} + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + + sirv@1.0.19: + resolution: {integrity: sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==} + engines: {node: '>= 10'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + + solana-agent-kit@1.3.0: + resolution: {integrity: sha512-QEg37BgkjyL+8XoPoHizvCfUchxCXZYorm3IC2wGXsWnIi4XJkdNaMSwisuUFS0WzIHrvK3ublhYGxfRNvTGpg==} + engines: {node: '>=23.1.0', pnpm: '>=8.0.0'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + sswr@2.1.0: + resolution: {integrity: sha512-Cqc355SYlTAaUt8iDPaC/4DPPXK925PePLMxyBKuWd5kKc5mwsG3nT9+Mq2tyguL5s7b4Jg+IRMpTRsNTAfpSQ==} + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.0 + + stable-hash@0.0.4: + resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} + + streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string.prototype.includes@2.0.1: + resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} + engines: {node: '>= 0.4'} + + string.prototype.matchall@4.0.12: + resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} + engines: {node: '>= 0.4'} + + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + + string.prototype.trim@1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strtok3@6.3.0: + resolution: {integrity: sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==} + engines: {node: '>=10'} + + styled-jsx@5.1.1: + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + superstruct@0.15.5: + resolution: {integrity: sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==} + + superstruct@2.0.2: + resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==} + engines: {node: '>=14.0.0'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + svelte@5.16.0: + resolution: {integrity: sha512-Ygqsiac6UogVED2ruKclU+pOeMThxWtp9LG+li7BXeDKC2paVIsRTMkNmcON4Zejerd1s5sZHWx6ZtU85xklVg==} + engines: {node: '>=18'} + + swr@2.3.0: + resolution: {integrity: sha512-NyZ76wA4yElZWBHzSgEJc28a0u6QZvhb6w0azeL2k7+Q1gAzVK+IqQYXhVOC/mzi+HZIozrZvBVeSeOZNR2bqA==} + peerDependencies: + react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + swrev@4.0.0: + resolution: {integrity: sha512-LqVcOHSB4cPGgitD1riJ1Hh4vdmITOp+BkmfmXRh4hSF/t7EnS4iD+SOTmq7w5pPm/SiPeto4ADbKS6dHUDWFA==} + + swrv@1.0.4: + resolution: {integrity: sha512-zjEkcP8Ywmj+xOJW3lIT65ciY/4AL4e/Or7Gj0MzU3zBJNMdJiT8geVZhINavnlHRMMCcJLHhraLTAiDOTmQ9g==} + peerDependencies: + vue: '>=3.2.26 < 4' + + tailwindcss@3.3.3: + resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==} + engines: {node: '>=14.0.0'} + hasBin: true + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + text-encoding-utf-8@1.0.2: + resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + throttleit@2.1.0: + resolution: {integrity: sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==} + engines: {node: '>=18'} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + tiny-inflate@1.0.3: + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toformat@2.0.0: + resolution: {integrity: sha512-03SWBVop6nU8bpyZCx7SodpYznbZF5R4ljwNLBcTQzKOD9xuihRo/psX58llS1BMFhhAI08H3luot5GoXJz2pQ==} + + token-types@4.2.1: + resolution: {integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==} + engines: {node: '>=10'} + + toml@3.0.0: + resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} + + totalist@1.1.0: + resolution: {integrity: sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==} + engines: {node: '>=6'} + + tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + ts-log@2.2.7: + resolution: {integrity: sha512-320x5Ggei84AxzlXp91QkIGSw5wgaLT6GeAH0KsqDmRZdVWW2OiSeVvElVoatk3f7nicwXlElXsoFkARiGE2yg==} + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tsconfig-paths@4.2.0: + resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} + engines: {node: '>=6'} + + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tsutils@3.21.0: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + + tweetnacl@1.0.3: + resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + engines: {node: '>= 0.4'} + + typedoc@0.26.11: + resolution: {integrity: sha512-sFEgRRtrcDl2FxVP58Ze++ZK2UQAEvtvvH8rRlig1Ja3o7dDaMHmaBfvJmdGnNEFaLTpQsN8dpvZaTqJSu/Ugw==} + engines: {node: '>= 18'} + hasBin: true + peerDependencies: + typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x + + typescript@5.1.6: + resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} + engines: {node: '>=14.17'} + hasBin: true + + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + unicode-trie@2.0.0: + resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} + + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + + universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + + use-sync-external-store@1.4.0: + resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + utf-8-validate@5.0.10: + resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} + engines: {node: '>=6.14.2'} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + vue@3.5.13: + resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + + web-streams-polyfill@4.0.0-beta.3: + resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} + engines: {node: '>= 14'} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + webpack-bundle-analyzer@4.7.0: + resolution: {integrity: sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==} + engines: {node: '>= 10.13.0'} + hasBin: true + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-typed-array@1.1.18: + resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} + engines: {node: '>= 0.4'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + yaml@2.6.1: + resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} + engines: {node: '>= 14'} + hasBin: true + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zimmerframe@1.1.2: + resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} + + zod-to-json-schema@3.24.1: + resolution: {integrity: sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==} + peerDependencies: + zod: ^3.24.1 + + zod@3.24.1: + resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@ai-sdk/provider-utils@1.0.22(zod@3.24.1)': + dependencies: + '@ai-sdk/provider': 0.0.26 + eventsource-parser: 1.1.2 + nanoid: 3.3.8 + secure-json-parse: 2.7.0 + optionalDependencies: + zod: 3.24.1 + + '@ai-sdk/provider@0.0.26': + dependencies: + json-schema: 0.4.0 + + '@ai-sdk/react@0.0.70(react@18.3.1)(zod@3.24.1)': + dependencies: + '@ai-sdk/provider-utils': 1.0.22(zod@3.24.1) + '@ai-sdk/ui-utils': 0.0.50(zod@3.24.1) + swr: 2.3.0(react@18.3.1) + throttleit: 2.1.0 + optionalDependencies: + react: 18.3.1 + zod: 3.24.1 + + '@ai-sdk/solid@0.0.54(zod@3.24.1)': + dependencies: + '@ai-sdk/provider-utils': 1.0.22(zod@3.24.1) + '@ai-sdk/ui-utils': 0.0.50(zod@3.24.1) + transitivePeerDependencies: + - zod + + '@ai-sdk/svelte@0.0.57(svelte@5.16.0)(zod@3.24.1)': + dependencies: + '@ai-sdk/provider-utils': 1.0.22(zod@3.24.1) + '@ai-sdk/ui-utils': 0.0.50(zod@3.24.1) + sswr: 2.1.0(svelte@5.16.0) + optionalDependencies: + svelte: 5.16.0 + transitivePeerDependencies: + - zod + + '@ai-sdk/ui-utils@0.0.50(zod@3.24.1)': + dependencies: + '@ai-sdk/provider': 0.0.26 + '@ai-sdk/provider-utils': 1.0.22(zod@3.24.1) + json-schema: 0.4.0 + secure-json-parse: 2.7.0 + zod-to-json-schema: 3.24.1(zod@3.24.1) + optionalDependencies: + zod: 3.24.1 + + '@ai-sdk/vue@0.0.59(vue@3.5.13(typescript@5.1.6))(zod@3.24.1)': + dependencies: + '@ai-sdk/provider-utils': 1.0.22(zod@3.24.1) + '@ai-sdk/ui-utils': 0.0.50(zod@3.24.1) + swrv: 1.0.4(vue@3.5.13(typescript@5.1.6)) + optionalDependencies: + vue: 3.5.13(typescript@5.1.6) + transitivePeerDependencies: + - zod + + '@alloc/quick-lru@5.2.0': {} + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + + '@anthropic-ai/sdk@0.27.3': + dependencies: + '@types/node': 18.19.68 + '@types/node-fetch': 2.6.12 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + '@babel/helper-string-parser@7.25.9': {} + + '@babel/helper-validator-identifier@7.25.9': {} + + '@babel/parser@7.26.3': + dependencies: + '@babel/types': 7.26.3 + + '@babel/runtime@7.26.0': + dependencies: + regenerator-runtime: 0.14.1 + + '@babel/types@7.26.3': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + + '@bonfida/sns-records@0.0.1(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + dependencies: + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + borsh: 1.0.0 + bs58: 5.0.0 + buffer: 6.0.3 + + '@bonfida/spl-name-service@3.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)': + dependencies: + '@bonfida/sns-records': 0.0.1(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@noble/curves': 1.7.0 + '@scure/base': 1.2.1 + '@solana/spl-token': 0.4.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + borsh: 2.0.0 + buffer: 6.0.3 + graphemesplit: 2.4.4 + ipaddr.js: 2.2.0 + punycode: 2.3.1 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + + '@browserbasehq/sdk@2.0.0': + dependencies: + '@types/node': 18.19.68 + '@types/node-fetch': 2.6.12 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + '@browserbasehq/stagehand@1.8.0(@playwright/test@1.49.1)(bufferutil@4.0.8)(deepmerge@4.3.1)(dotenv@16.4.7)(openai@4.77.0(zod@3.24.1))(utf-8-validate@5.0.10)(zod@3.24.1)': + dependencies: + '@anthropic-ai/sdk': 0.27.3 + '@browserbasehq/sdk': 2.0.0 + '@playwright/test': 1.49.1 + deepmerge: 4.3.1 + dotenv: 16.4.7 + openai: 4.77.0(zod@3.24.1) + sharp: 0.33.5 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + zod: 3.24.1 + zod-to-json-schema: 3.24.1(zod@3.24.1) + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@cfworker/json-schema@4.0.3': {} + + '@coral-xyz/anchor@0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@coral-xyz/borsh': 0.29.0(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@noble/hashes': 1.6.1 + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + bn.js: 5.2.1 + bs58: 4.0.1 + buffer-layout: 1.2.2 + camelcase: 6.3.0 + cross-fetch: 3.2.0 + crypto-hash: 1.3.0 + eventemitter3: 4.0.7 + pako: 2.1.0 + snake-case: 3.0.4 + superstruct: 0.15.5 + toml: 3.0.0 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@coral-xyz/borsh@0.29.0(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + dependencies: + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + bn.js: 5.2.1 + buffer-layout: 1.2.2 + + '@emnapi/runtime@1.3.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@eslint-community/eslint-utils@4.4.1(eslint@8.46.0)': + dependencies: + eslint: 8.46.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.4.0 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.1': {} + + '@ethersproject/bytes@5.7.0': + dependencies: + '@ethersproject/logger': 5.7.0 + + '@ethersproject/logger@5.7.0': {} + + '@ethersproject/sha2@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + hash.js: 1.1.7 + + '@humanwhocodes/config-array@0.11.14': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.4.0 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@ibm-cloud/watsonx-ai@1.3.0': + dependencies: + '@types/node': 18.19.68 + extend: 3.0.2 + ibm-cloud-sdk-core: 5.1.0 + transitivePeerDependencies: + - supports-color + + '@img/sharp-darwin-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.4 + optional: true + + '@img/sharp-darwin-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm@1.0.5': + optional: true + + '@img/sharp-libvips-linux-s390x@1.0.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + optional: true + + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true + + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true + + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true + + '@img/sharp-wasm32@0.33.5': + dependencies: + '@emnapi/runtime': 1.3.1 + optional: true + + '@img/sharp-win32-ia32@0.33.5': + optional: true + + '@img/sharp-win32-x64@0.33.5': + optional: true + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jridgewell/gen-mapping@0.3.8': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@langchain/community@0.3.20(@browserbasehq/sdk@2.0.0)(@browserbasehq/stagehand@1.8.0(@playwright/test@1.49.1)(bufferutil@4.0.8)(deepmerge@4.3.1)(dotenv@16.4.7)(openai@4.77.0(zod@3.24.1))(utf-8-validate@5.0.10)(zod@3.24.1))(@ibm-cloud/watsonx-ai@1.3.0)(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))))(@supabase/supabase-js@2.47.10(bufferutil@4.0.8)(utf-8-validate@5.0.10))(axios@1.7.4)(ibm-cloud-sdk-core@5.1.0)(ignore@5.3.2)(jsonwebtoken@9.0.2)(lodash@4.17.21)(openai@4.77.0(zod@3.24.1))(playwright@1.49.1)(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + dependencies: + '@browserbasehq/stagehand': 1.8.0(@playwright/test@1.49.1)(bufferutil@4.0.8)(deepmerge@4.3.1)(dotenv@16.4.7)(openai@4.77.0(zod@3.24.1))(utf-8-validate@5.0.10)(zod@3.24.1) + '@ibm-cloud/watsonx-ai': 1.3.0 + '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1)) + '@langchain/openai': 0.3.16(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))) + binary-extensions: 2.3.0 + expr-eval: 2.0.2 + flat: 5.0.2 + ibm-cloud-sdk-core: 5.1.0 + js-yaml: 4.1.0 + langchain: 0.3.8(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))))(axios@1.7.4)(openai@4.77.0(zod@3.24.1)) + langsmith: 0.2.14(openai@4.77.0(zod@3.24.1)) + openai: 4.77.0(zod@3.24.1) + uuid: 10.0.0 + zod: 3.24.1 + zod-to-json-schema: 3.24.1(zod@3.24.1) + optionalDependencies: + '@browserbasehq/sdk': 2.0.0 + '@supabase/supabase-js': 2.47.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ignore: 5.3.2 + jsonwebtoken: 9.0.2 + lodash: 4.17.21 + playwright: 1.49.1 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - '@langchain/anthropic' + - '@langchain/aws' + - '@langchain/cohere' + - '@langchain/google-genai' + - '@langchain/google-vertexai' + - '@langchain/groq' + - '@langchain/mistralai' + - '@langchain/ollama' + - axios + - encoding + - handlebars + - peggy + + '@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))': + dependencies: + '@cfworker/json-schema': 4.0.3 + ansi-styles: 5.2.0 + camelcase: 6.3.0 + decamelize: 1.2.0 + js-tiktoken: 1.0.16 + langsmith: 0.2.14(openai@4.77.0(zod@3.24.1)) + mustache: 4.2.0 + p-queue: 6.6.2 + p-retry: 4.6.2 + uuid: 10.0.0 + zod: 3.24.1 + zod-to-json-schema: 3.24.1(zod@3.24.1) + transitivePeerDependencies: + - openai + + '@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))': + dependencies: + '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1)) + '@langchain/openai': 0.3.16(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))) + groq-sdk: 0.5.0 + zod: 3.24.1 + zod-to-json-schema: 3.24.1(zod@3.24.1) + transitivePeerDependencies: + - encoding + + '@langchain/langgraph-checkpoint@0.0.13(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))': + dependencies: + '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1)) + uuid: 10.0.0 + + '@langchain/langgraph-sdk@0.0.32': + dependencies: + '@types/json-schema': 7.0.15 + p-queue: 6.6.2 + p-retry: 4.6.2 + uuid: 9.0.1 + + '@langchain/langgraph@0.2.36(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))': + dependencies: + '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1)) + '@langchain/langgraph-checkpoint': 0.0.13(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))) + '@langchain/langgraph-sdk': 0.0.32 + uuid: 10.0.0 + zod: 3.24.1 + + '@langchain/openai@0.3.16(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))': + dependencies: + '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1)) + js-tiktoken: 1.0.16 + openai: 4.77.0(zod@3.24.1) + zod: 3.24.1 + zod-to-json-schema: 3.24.1(zod@3.24.1) + transitivePeerDependencies: + - encoding + + '@langchain/textsplitters@0.1.0(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))': + dependencies: + '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1)) + js-tiktoken: 1.0.16 + + '@lightprotocol/compressed-token@0.17.1(@lightprotocol/stateless.js@0.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)': + dependencies: + '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@lightprotocol/stateless.js': 0.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@solana/spl-token': 0.4.8(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + buffer: 6.0.3 + tweetnacl: 1.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + + '@lightprotocol/stateless.js@0.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@noble/hashes': 1.5.0 + '@solana/web3.js': 1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + buffer: 6.0.3 + superstruct: 2.0.2 + tweetnacl: 1.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@metaplex-foundation/beet': 0.7.2 + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + bs58: 5.0.0 + debug: 4.4.0 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@metaplex-foundation/beet@0.7.2': + dependencies: + ansicolors: 0.3.2 + assert: 2.1.0 + bn.js: 5.2.1 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + + '@metaplex-foundation/mpl-core@1.1.1(@metaplex-foundation/umi@0.9.2)(@noble/hashes@1.6.1)': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + '@msgpack/msgpack': 3.0.0-beta2 + '@noble/hashes': 1.6.1 + + '@metaplex-foundation/mpl-token-metadata@3.3.0(@metaplex-foundation/umi@0.9.2)': + dependencies: + '@metaplex-foundation/mpl-toolbox': 0.9.4(@metaplex-foundation/umi@0.9.2) + '@metaplex-foundation/umi': 0.9.2 + + '@metaplex-foundation/mpl-toolbox@0.9.4(@metaplex-foundation/umi@0.9.2)': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + + '@metaplex-foundation/umi-bundle-defaults@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + '@metaplex-foundation/umi-downloader-http': 0.9.2(@metaplex-foundation/umi@0.9.2) + '@metaplex-foundation/umi-eddsa-web3js': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@metaplex-foundation/umi-http-fetch': 0.9.2(@metaplex-foundation/umi@0.9.2) + '@metaplex-foundation/umi-program-repository': 0.9.2(@metaplex-foundation/umi@0.9.2) + '@metaplex-foundation/umi-rpc-chunk-get-accounts': 0.9.2(@metaplex-foundation/umi@0.9.2) + '@metaplex-foundation/umi-rpc-web3js': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@metaplex-foundation/umi-serializer-data-view': 0.9.2(@metaplex-foundation/umi@0.9.2) + '@metaplex-foundation/umi-transaction-factory-web3js': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - encoding + + '@metaplex-foundation/umi-downloader-http@0.9.2(@metaplex-foundation/umi@0.9.2)': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + + '@metaplex-foundation/umi-eddsa-web3js@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@noble/curves': 1.7.0 + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + + '@metaplex-foundation/umi-http-fetch@0.9.2(@metaplex-foundation/umi@0.9.2)': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + '@metaplex-foundation/umi-options@0.8.9': {} + + '@metaplex-foundation/umi-program-repository@0.9.2(@metaplex-foundation/umi@0.9.2)': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + + '@metaplex-foundation/umi-public-keys@0.8.9': + dependencies: + '@metaplex-foundation/umi-serializers-encodings': 0.8.9 + + '@metaplex-foundation/umi-rpc-chunk-get-accounts@0.9.2(@metaplex-foundation/umi@0.9.2)': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + + '@metaplex-foundation/umi-rpc-web3js@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + + '@metaplex-foundation/umi-serializer-data-view@0.9.2(@metaplex-foundation/umi@0.9.2)': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + + '@metaplex-foundation/umi-serializers-core@0.8.9': {} + + '@metaplex-foundation/umi-serializers-encodings@0.8.9': + dependencies: + '@metaplex-foundation/umi-serializers-core': 0.8.9 + + '@metaplex-foundation/umi-serializers-numbers@0.8.9': + dependencies: + '@metaplex-foundation/umi-serializers-core': 0.8.9 + + '@metaplex-foundation/umi-serializers@0.9.0': + dependencies: + '@metaplex-foundation/umi-options': 0.8.9 + '@metaplex-foundation/umi-public-keys': 0.8.9 + '@metaplex-foundation/umi-serializers-core': 0.8.9 + '@metaplex-foundation/umi-serializers-encodings': 0.8.9 + '@metaplex-foundation/umi-serializers-numbers': 0.8.9 + + '@metaplex-foundation/umi-transaction-factory-web3js@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + + '@metaplex-foundation/umi-web3js-adapters@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + buffer: 6.0.3 + + '@metaplex-foundation/umi@0.9.2': + dependencies: + '@metaplex-foundation/umi-options': 0.8.9 + '@metaplex-foundation/umi-public-keys': 0.8.9 + '@metaplex-foundation/umi-serializers': 0.9.0 + + '@msgpack/msgpack@3.0.0-beta2': {} + + '@next/bundle-analyzer@13.5.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + webpack-bundle-analyzer: 4.7.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@next/env@14.2.21': {} + + '@next/eslint-plugin-next@13.4.12': + dependencies: + glob: 7.1.7 + + '@next/swc-darwin-arm64@14.2.21': + optional: true + + '@next/swc-darwin-x64@14.2.21': + optional: true + + '@next/swc-linux-arm64-gnu@14.2.21': + optional: true + + '@next/swc-linux-arm64-musl@14.2.21': + optional: true + + '@next/swc-linux-x64-gnu@14.2.21': + optional: true + + '@next/swc-linux-x64-musl@14.2.21': + optional: true + + '@next/swc-win32-arm64-msvc@14.2.21': + optional: true + + '@next/swc-win32-ia32-msvc@14.2.21': + optional: true + + '@next/swc-win32-x64-msvc@14.2.21': + optional: true + + '@noble/curves@1.7.0': + dependencies: + '@noble/hashes': 1.6.0 + + '@noble/hashes@1.5.0': {} + + '@noble/hashes@1.6.0': {} + + '@noble/hashes@1.6.1': {} + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.18.0 + + '@nolyfill/is-core-module@1.0.39': {} + + '@onsol/tldparser@0.6.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bn.js@5.2.1)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@ethersproject/sha2': 5.7.0 + '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + bn.js: 5.2.1 + borsh: 2.0.0 + buffer: 6.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@opentelemetry/api@1.9.0': {} + + '@orca-so/common-sdk@0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3)': + dependencies: + '@solana/spl-token': 0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + decimal.js: 10.4.3 + tiny-invariant: 1.3.3 + + '@orca-so/whirlpools-sdk@0.13.12(@coral-xyz/anchor@0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@orca-so/common-sdk@0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3))(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3)': + dependencies: + '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@orca-so/common-sdk': 0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3) + '@solana/spl-token': 0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + decimal.js: 10.4.3 + tiny-invariant: 1.3.3 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@playwright/test@1.49.1': + dependencies: + playwright: 1.49.1 + + '@polka/url@1.0.0-next.28': {} + + '@pythnetwork/price-service-client@1.9.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@pythnetwork/price-service-sdk': 1.8.0 + '@types/ws': 8.5.13 + axios: 1.7.4(debug@4.4.0) + axios-retry: 3.9.1 + isomorphic-ws: 4.0.1(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + ts-log: 2.2.7 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + + '@pythnetwork/price-service-sdk@1.8.0': + dependencies: + bn.js: 5.2.1 + + '@raydium-io/raydium-sdk-v2@0.1.95-alpha(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)': + dependencies: + '@solana/buffer-layout': 4.0.1 + '@solana/spl-token': 0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + axios: 1.7.4(debug@4.4.0) + big.js: 6.2.2 + bn.js: 5.2.1 + dayjs: 1.11.13 + decimal.js-light: 2.5.1 + jsonfile: 6.1.0 + lodash: 4.17.21 + toformat: 2.0.0 + tsconfig-paths: 4.2.0 + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + + '@rtsao/scc@1.1.0': {} + + '@rushstack/eslint-patch@1.10.4': {} + + '@scure/base@1.2.1': {} + + '@shikijs/core@1.24.4': + dependencies: + '@shikijs/engine-javascript': 1.24.4 + '@shikijs/engine-oniguruma': 1.24.4 + '@shikijs/types': 1.24.4 + '@shikijs/vscode-textmate': 9.3.1 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.4 + + '@shikijs/engine-javascript@1.24.4': + dependencies: + '@shikijs/types': 1.24.4 + '@shikijs/vscode-textmate': 9.3.1 + oniguruma-to-es: 0.8.1 + + '@shikijs/engine-oniguruma@1.24.4': + dependencies: + '@shikijs/types': 1.24.4 + '@shikijs/vscode-textmate': 9.3.1 + + '@shikijs/types@1.24.4': + dependencies: + '@shikijs/vscode-textmate': 9.3.1 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@9.3.1': {} + + '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@solana/buffer-layout': 4.0.1 + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + bigint-buffer: 1.1.5 + bignumber.js: 9.1.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@solana/buffer-layout@4.0.1': + dependencies: + buffer: 6.0.3 + + '@solana/codecs-core@2.0.0-preview.2': + dependencies: + '@solana/errors': 2.0.0-preview.2 + + '@solana/codecs-core@2.0.0-preview.4(typescript@5.1.6)': + dependencies: + '@solana/errors': 2.0.0-preview.4(typescript@5.1.6) + typescript: 5.1.6 + + '@solana/codecs-core@2.0.0-rc.1(typescript@5.1.6)': + dependencies: + '@solana/errors': 2.0.0-rc.1(typescript@5.1.6) + typescript: 5.1.6 + + '@solana/codecs-data-structures@2.0.0-preview.2': + dependencies: + '@solana/codecs-core': 2.0.0-preview.2 + '@solana/codecs-numbers': 2.0.0-preview.2 + '@solana/errors': 2.0.0-preview.2 + + '@solana/codecs-data-structures@2.0.0-preview.4(typescript@5.1.6)': + dependencies: + '@solana/codecs-core': 2.0.0-preview.4(typescript@5.1.6) + '@solana/codecs-numbers': 2.0.0-preview.4(typescript@5.1.6) + '@solana/errors': 2.0.0-preview.4(typescript@5.1.6) + typescript: 5.1.6 + + '@solana/codecs-data-structures@2.0.0-rc.1(typescript@5.1.6)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@5.1.6) + '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.1.6) + '@solana/errors': 2.0.0-rc.1(typescript@5.1.6) + typescript: 5.1.6 + + '@solana/codecs-numbers@2.0.0-preview.2': + dependencies: + '@solana/codecs-core': 2.0.0-preview.2 + '@solana/errors': 2.0.0-preview.2 + + '@solana/codecs-numbers@2.0.0-preview.4(typescript@5.1.6)': + dependencies: + '@solana/codecs-core': 2.0.0-preview.4(typescript@5.1.6) + '@solana/errors': 2.0.0-preview.4(typescript@5.1.6) + typescript: 5.1.6 + + '@solana/codecs-numbers@2.0.0-rc.1(typescript@5.1.6)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@5.1.6) + '@solana/errors': 2.0.0-rc.1(typescript@5.1.6) + typescript: 5.1.6 + + '@solana/codecs-strings@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)': + dependencies: + '@solana/codecs-core': 2.0.0-preview.2 + '@solana/codecs-numbers': 2.0.0-preview.2 + '@solana/errors': 2.0.0-preview.2 + fastestsmallesttextencoderdecoder: 1.0.22 + + '@solana/codecs-strings@2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)': + dependencies: + '@solana/codecs-core': 2.0.0-preview.4(typescript@5.1.6) + '@solana/codecs-numbers': 2.0.0-preview.4(typescript@5.1.6) + '@solana/errors': 2.0.0-preview.4(typescript@5.1.6) + fastestsmallesttextencoderdecoder: 1.0.22 + typescript: 5.1.6 + + '@solana/codecs-strings@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@5.1.6) + '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.1.6) + '@solana/errors': 2.0.0-rc.1(typescript@5.1.6) + fastestsmallesttextencoderdecoder: 1.0.22 + typescript: 5.1.6 + + '@solana/codecs@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)': + dependencies: + '@solana/codecs-core': 2.0.0-preview.2 + '@solana/codecs-data-structures': 2.0.0-preview.2 + '@solana/codecs-numbers': 2.0.0-preview.2 + '@solana/codecs-strings': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22) + '@solana/options': 2.0.0-preview.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/codecs@2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)': + dependencies: + '@solana/codecs-core': 2.0.0-preview.4(typescript@5.1.6) + '@solana/codecs-data-structures': 2.0.0-preview.4(typescript@5.1.6) + '@solana/codecs-numbers': 2.0.0-preview.4(typescript@5.1.6) + '@solana/codecs-strings': 2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6) + '@solana/options': 2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6) + typescript: 5.1.6 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/codecs@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@5.1.6) + '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.1.6) + '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.1.6) + '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6) + '@solana/options': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6) + typescript: 5.1.6 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/errors@2.0.0-preview.2': + dependencies: + chalk: 5.4.1 + commander: 12.1.0 + + '@solana/errors@2.0.0-preview.4(typescript@5.1.6)': + dependencies: + chalk: 5.4.1 + commander: 12.1.0 + typescript: 5.1.6 + + '@solana/errors@2.0.0-rc.1(typescript@5.1.6)': + dependencies: + chalk: 5.4.1 + commander: 12.1.0 + typescript: 5.1.6 + + '@solana/options@2.0.0-preview.2': + dependencies: + '@solana/codecs-core': 2.0.0-preview.2 + '@solana/codecs-numbers': 2.0.0-preview.2 + + '@solana/options@2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)': + dependencies: + '@solana/codecs-core': 2.0.0-preview.4(typescript@5.1.6) + '@solana/codecs-data-structures': 2.0.0-preview.4(typescript@5.1.6) + '@solana/codecs-numbers': 2.0.0-preview.4(typescript@5.1.6) + '@solana/codecs-strings': 2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6) + '@solana/errors': 2.0.0-preview.4(typescript@5.1.6) + typescript: 5.1.6 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/options@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@5.1.6) + '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.1.6) + '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.1.6) + '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6) + '@solana/errors': 2.0.0-rc.1(typescript@5.1.6) + typescript: 5.1.6 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/spl-token-group@0.0.4(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)': + dependencies: + '@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22) + '@solana/spl-type-length-value': 0.1.0 + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/spl-token-group@0.0.5(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)': + dependencies: + '@solana/codecs': 2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6) + '@solana/spl-type-length-value': 0.1.0 + '@solana/web3.js': 1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - typescript + + '@solana/spl-token-group@0.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)': + dependencies: + '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - typescript + + '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)': + dependencies: + '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6) + '@solana/web3.js': 1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - typescript + + '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)': + dependencies: + '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - typescript + + '@solana/spl-token@0.4.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)': + dependencies: + '@solana/buffer-layout': 4.0.1 + '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@solana/spl-token-group': 0.0.4(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22) + '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + buffer: 6.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + + '@solana/spl-token@0.4.8(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)': + dependencies: + '@solana/buffer-layout': 4.0.1 + '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@solana/spl-token-group': 0.0.5(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6) + '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6) + '@solana/web3.js': 1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + buffer: 6.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + + '@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)': + dependencies: + '@solana/buffer-layout': 4.0.1 + '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@solana/spl-token-group': 0.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6) + '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + buffer: 6.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + + '@solana/spl-type-length-value@0.1.0': + dependencies: + buffer: 6.0.3 + + '@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@babel/runtime': 7.26.0 + '@noble/curves': 1.7.0 + '@noble/hashes': 1.5.0 + '@solana/buffer-layout': 4.0.1 + agentkeepalive: 4.5.0 + bigint-buffer: 1.1.5 + bn.js: 5.2.1 + borsh: 0.7.0 + bs58: 4.0.1 + buffer: 6.0.3 + fast-stable-stringify: 1.0.0 + jayson: 4.1.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + node-fetch: 2.7.0 + rpc-websockets: 9.0.4 + superstruct: 2.0.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@babel/runtime': 7.26.0 + '@noble/curves': 1.7.0 + '@noble/hashes': 1.6.1 + '@solana/buffer-layout': 4.0.1 + agentkeepalive: 4.5.0 + bigint-buffer: 1.1.5 + bn.js: 5.2.1 + borsh: 0.7.0 + bs58: 4.0.1 + buffer: 6.0.3 + fast-stable-stringify: 1.0.0 + jayson: 4.1.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + node-fetch: 2.7.0 + rpc-websockets: 9.0.4 + superstruct: 2.0.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@supabase/auth-js@2.67.3': + dependencies: + '@supabase/node-fetch': 2.6.15 + + '@supabase/functions-js@2.4.4': + dependencies: + '@supabase/node-fetch': 2.6.15 + + '@supabase/node-fetch@2.6.15': + dependencies: + whatwg-url: 5.0.0 + + '@supabase/postgrest-js@1.17.7': + dependencies: + '@supabase/node-fetch': 2.6.15 + + '@supabase/realtime-js@2.11.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@supabase/node-fetch': 2.6.15 + '@types/phoenix': 1.6.6 + '@types/ws': 8.5.13 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@supabase/storage-js@2.7.1': + dependencies: + '@supabase/node-fetch': 2.6.15 + + '@supabase/supabase-js@2.47.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@supabase/auth-js': 2.67.3 + '@supabase/functions-js': 2.4.4 + '@supabase/node-fetch': 2.6.15 + '@supabase/postgrest-js': 1.17.7 + '@supabase/realtime-js': 2.11.2(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@supabase/storage-js': 2.7.1 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@swc/counter@0.1.3': {} + + '@swc/helpers@0.5.15': + dependencies: + tslib: 2.8.1 + + '@swc/helpers@0.5.5': + dependencies: + '@swc/counter': 0.1.3 + tslib: 2.8.1 + + '@tokenizer/token@0.3.0': {} + + '@types/connect@3.4.38': + dependencies: + '@types/node': 20.12.12 + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 0.7.34 + + '@types/diff-match-patch@1.0.36': {} + + '@types/estree@1.0.6': {} + + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/json-schema@7.0.15': {} + + '@types/json5@0.0.29': {} + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/ms@0.7.34': {} + + '@types/node-fetch@2.6.12': + dependencies: + '@types/node': 20.12.12 + form-data: 4.0.1 + + '@types/node@10.14.22': {} + + '@types/node@12.20.55': {} + + '@types/node@18.19.68': + dependencies: + undici-types: 5.26.5 + + '@types/node@20.12.12': + dependencies: + undici-types: 5.26.5 + + '@types/phoenix@1.6.6': {} + + '@types/prop-types@15.7.14': {} + + '@types/react-dom@18.3.0': + dependencies: + '@types/react': 18.3.2 + + '@types/react@18.3.2': + dependencies: + '@types/prop-types': 15.7.14 + csstype: 3.1.3 + + '@types/retry@0.12.0': {} + + '@types/tough-cookie@4.0.5': {} + + '@types/unist@3.0.3': {} + + '@types/uuid@10.0.0': {} + + '@types/uuid@8.3.4': {} + + '@types/ws@7.4.7': + dependencies: + '@types/node': 20.12.12 + + '@types/ws@8.5.13': + dependencies: + '@types/node': 20.12.12 + + '@typescript-eslint/parser@5.62.0(eslint@8.46.0)(typescript@5.1.6)': + dependencies: + '@typescript-eslint/scope-manager': 5.62.0 + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) + debug: 4.4.0 + eslint: 8.46.0 + optionalDependencies: + typescript: 5.1.6 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@5.62.0': + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + + '@typescript-eslint/types@5.62.0': {} + + '@typescript-eslint/typescript-estree@5.62.0(typescript@5.1.6)': + dependencies: + '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/visitor-keys': 5.62.0 + debug: 4.4.0 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.6.3 + tsutils: 3.21.0(typescript@5.1.6) + optionalDependencies: + typescript: 5.1.6 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@5.62.0': + dependencies: + '@typescript-eslint/types': 5.62.0 + eslint-visitor-keys: 3.4.3 + + '@ungap/structured-clone@1.2.1': {} + + '@vue/compiler-core@3.5.13': + dependencies: + '@babel/parser': 7.26.3 + '@vue/shared': 3.5.13 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.13': + dependencies: + '@vue/compiler-core': 3.5.13 + '@vue/shared': 3.5.13 + + '@vue/compiler-sfc@3.5.13': + dependencies: + '@babel/parser': 7.26.3 + '@vue/compiler-core': 3.5.13 + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-ssr': 3.5.13 + '@vue/shared': 3.5.13 + estree-walker: 2.0.2 + magic-string: 0.30.17 + postcss: 8.4.49 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.13': + dependencies: + '@vue/compiler-dom': 3.5.13 + '@vue/shared': 3.5.13 + + '@vue/reactivity@3.5.13': + dependencies: + '@vue/shared': 3.5.13 + + '@vue/runtime-core@3.5.13': + dependencies: + '@vue/reactivity': 3.5.13 + '@vue/shared': 3.5.13 + + '@vue/runtime-dom@3.5.13': + dependencies: + '@vue/reactivity': 3.5.13 + '@vue/runtime-core': 3.5.13 + '@vue/shared': 3.5.13 + csstype: 3.1.3 + + '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.1.6))': + dependencies: + '@vue/compiler-ssr': 3.5.13 + '@vue/shared': 3.5.13 + vue: 3.5.13(typescript@5.1.6) + + '@vue/shared@3.5.13': {} + + JSONStream@1.3.5: + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + acorn-jsx@5.3.2(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + + acorn-typescript@1.4.13(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + + acorn-walk@8.3.4: + dependencies: + acorn: 8.14.0 + + acorn@8.14.0: {} + + agentkeepalive@4.5.0: + dependencies: + humanize-ms: 1.2.1 + + ai@3.4.33(openai@4.77.0(zod@3.24.1))(react@18.3.1)(sswr@2.1.0(svelte@5.16.0))(svelte@5.16.0)(vue@3.5.13(typescript@5.1.6))(zod@3.24.1): + dependencies: + '@ai-sdk/provider': 0.0.26 + '@ai-sdk/provider-utils': 1.0.22(zod@3.24.1) + '@ai-sdk/react': 0.0.70(react@18.3.1)(zod@3.24.1) + '@ai-sdk/solid': 0.0.54(zod@3.24.1) + '@ai-sdk/svelte': 0.0.57(svelte@5.16.0)(zod@3.24.1) + '@ai-sdk/ui-utils': 0.0.50(zod@3.24.1) + '@ai-sdk/vue': 0.0.59(vue@3.5.13(typescript@5.1.6))(zod@3.24.1) + '@opentelemetry/api': 1.9.0 + eventsource-parser: 1.1.2 + json-schema: 0.4.0 + jsondiffpatch: 0.6.0 + secure-json-parse: 2.7.0 + zod-to-json-schema: 3.24.1(zod@3.24.1) + optionalDependencies: + openai: 4.77.0(zod@3.24.1) + react: 18.3.1 + sswr: 2.1.0(svelte@5.16.0) + svelte: 5.16.0 + zod: 3.24.1 + transitivePeerDependencies: + - solid-js + - vue + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + ansi-styles@6.2.1: {} + + ansicolors@0.3.2: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + arg@5.0.2: {} + + argparse@2.0.1: {} + + aria-query@5.3.2: {} + + array-buffer-byte-length@1.0.2: + dependencies: + call-bound: 1.0.3 + is-array-buffer: 3.0.5 + + array-includes@3.1.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.7 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.6 + is-string: 1.1.1 + + array-union@2.1.0: {} + + array.prototype.findlast@1.2.5: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.7 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + + array.prototype.findlastindex@1.2.5: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.7 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + + array.prototype.flat@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.7 + es-shim-unscopables: 1.0.2 + + array.prototype.flatmap@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.7 + es-shim-unscopables: 1.0.2 + + array.prototype.tosorted@1.1.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.7 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 + + arraybuffer.prototype.slice@1.0.4: + dependencies: + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + is-array-buffer: 3.0.5 + + assert@2.1.0: + dependencies: + call-bind: 1.0.8 + is-nan: 1.3.2 + object-is: 1.1.6 + object.assign: 4.1.7 + util: 0.12.5 + + assertion-error@2.0.1: {} + + ast-types-flow@0.0.8: {} + + asynckit@0.4.0: {} + + autoprefixer@10.4.14(postcss@8.4.27): + dependencies: + browserslist: 4.24.3 + caniuse-lite: 1.0.30001690 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.4.27 + postcss-value-parser: 4.2.0 + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 + + axe-core@4.10.2: {} + + axios-retry@3.9.1: + dependencies: + '@babel/runtime': 7.26.0 + is-retry-allowed: 2.2.0 + + axios@1.7.4(debug@4.4.0): + dependencies: + follow-redirects: 1.15.9(debug@4.4.0) + form-data: 4.0.1 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + axobject-query@4.1.0: {} + + balanced-match@1.0.2: {} + + base-x@3.0.10: + dependencies: + safe-buffer: 5.2.1 + + base-x@4.0.0: {} + + base-x@5.0.0: {} + + base64-js@1.5.1: {} + + big.js@6.2.2: {} + + bigint-buffer@1.1.5: + dependencies: + bindings: 1.5.0 + + bignumber.js@9.1.2: {} + + binary-extensions@2.3.0: {} + + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + + bn.js@5.2.1: {} + + borsh@0.7.0: + dependencies: + bn.js: 5.2.1 + bs58: 4.0.1 + text-encoding-utf-8: 1.0.2 + + borsh@1.0.0: {} + + borsh@2.0.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.24.3: + dependencies: + caniuse-lite: 1.0.30001690 + electron-to-chromium: 1.5.76 + node-releases: 2.0.19 + update-browserslist-db: 1.1.1(browserslist@4.24.3) + + bs58@4.0.1: + dependencies: + base-x: 3.0.10 + + bs58@5.0.0: + dependencies: + base-x: 4.0.0 + + bs58@6.0.0: + dependencies: + base-x: 5.0.0 + + buffer-equal-constant-time@1.0.1: {} + + buffer-layout@1.2.2: {} + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + bufferutil@4.0.8: + dependencies: + node-gyp-build: 4.8.4 + optional: true + + busboy@1.6.0: + dependencies: + streamsearch: 1.1.0 + + call-bind-apply-helpers@1.0.1: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-define-property: 1.0.1 + get-intrinsic: 1.2.6 + set-function-length: 1.2.2 + + call-bound@1.0.3: + dependencies: + call-bind-apply-helpers: 1.0.1 + get-intrinsic: 1.2.6 + + callsites@3.1.0: {} + + camelcase-css@2.0.1: {} + + camelcase@6.3.0: {} + + caniuse-lite@1.0.30001690: {} + + ccount@2.0.1: {} + + chai@5.1.2: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.2 + pathval: 2.0.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.4.1: {} + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + check-error@2.1.1: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + client-only@0.0.1: {} + + clsx@1.2.1: {} + + clsx@2.1.1: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + comma-separated-tokens@2.0.3: {} + + commander@10.0.1: {} + + commander@12.1.0: {} + + commander@2.20.3: {} + + commander@4.1.1: {} + + commander@7.2.0: {} + + concat-map@0.0.1: {} + + cross-fetch@3.2.0: + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypto-hash@1.3.0: {} + + cssesc@3.0.0: {} + + csstype@3.1.3: {} + + damerau-levenshtein@1.0.8: {} + + data-view-buffer@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-length@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-offset@1.0.1: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + dayjs@1.11.13: {} + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.4.0: + dependencies: + ms: 2.1.3 + + decamelize@1.2.0: {} + + decimal.js-light@2.5.1: {} + + decimal.js@10.4.3: {} + + deep-eql@5.0.2: {} + + deep-is@0.1.4: {} + + deepmerge@4.3.1: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + delay@5.0.0: {} + + delayed-stream@1.0.0: {} + + dequal@2.0.3: {} + + detect-libc@2.0.3: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + didyoumean@1.2.2: {} + + diff-match-patch@1.0.5: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dlv@1.1.3: {} + + doctrine@2.1.0: + dependencies: + esutils: 2.0.3 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + dot-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + + dotenv@16.4.7: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + duplexer@0.1.2: {} + + eastasianwidth@0.2.0: {} + + ecdsa-sig-formatter@1.0.11: + dependencies: + safe-buffer: 5.2.1 + + electron-to-chromium@1.5.76: {} + + emoji-regex-xs@1.0.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + enhanced-resolve@5.18.0: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + entities@4.5.0: {} + + es-abstract@1.23.7: + 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.3 + 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.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.2.6 + 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-data-view: 1.0.2 + is-regex: 1.2.1 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.0 + math-intrinsics: 1.1.0 + object-inspect: 1.13.3 + object-keys: 1.1.1 + object.assign: 4.1.7 + regexp.prototype.flags: 1.5.3 + safe-array-concat: 1.1.3 + safe-regex-test: 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.18 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-iterator-helpers@1.2.1: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-abstract: 1.23.7 + 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 + + es-object-atoms@1.0.0: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.0.3: + dependencies: + get-intrinsic: 1.2.6 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-shim-unscopables@1.0.2: + dependencies: + hasown: 2.0.2 + + es-to-primitive@1.3.0: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.1.0 + is-symbol: 1.1.1 + + es6-promise@4.2.8: {} + + es6-promisify@5.0.0: + dependencies: + es6-promise: 4.2.8 + + escalade@3.2.0: {} + + escape-string-regexp@4.0.0: {} + + eslint-config-next@13.4.12(eslint@8.46.0)(typescript@5.1.6): + dependencies: + '@next/eslint-plugin-next': 13.4.12 + '@rushstack/eslint-patch': 1.10.4 + '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6) + eslint: 8.46.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0(eslint@8.46.0))(eslint@8.46.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.46.0)(typescript@5.1.6))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.46.0))(eslint@8.46.0))(eslint@8.46.0) + eslint-plugin-jsx-a11y: 6.10.2(eslint@8.46.0) + eslint-plugin-react: 7.37.3(eslint@8.46.0) + eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.46.0) + optionalDependencies: + typescript: 5.1.6 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.16.1 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color + + eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.46.0))(eslint@8.46.0): + dependencies: + '@nolyfill/is-core-module': 1.0.39 + debug: 4.4.0 + enhanced-resolve: 5.18.0 + eslint: 8.46.0 + fast-glob: 3.3.2 + get-tsconfig: 4.8.1 + is-bun-module: 1.3.0 + is-glob: 4.0.3 + stable-hash: 0.0.4 + optionalDependencies: + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.46.0)(typescript@5.1.6))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.46.0))(eslint@8.46.0))(eslint@8.46.0) + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.46.0)(typescript@5.1.6))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.46.0))(eslint@8.46.0))(eslint@8.46.0): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6) + eslint: 8.46.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0(eslint@8.46.0))(eslint@8.46.0) + transitivePeerDependencies: + - supports-color + + eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.46.0)(typescript@5.1.6))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.46.0))(eslint@8.46.0))(eslint@8.46.0): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.46.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.46.0)(typescript@5.1.6))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.46.0))(eslint@8.46.0))(eslint@8.46.0) + hasown: 2.0.2 + is-core-module: 2.16.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + 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 + optionalDependencies: + '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-jsx-a11y@6.10.2(eslint@8.46.0): + dependencies: + aria-query: 5.3.2 + array-includes: 3.1.8 + array.prototype.flatmap: 1.3.3 + ast-types-flow: 0.0.8 + axe-core: 4.10.2 + axobject-query: 4.1.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.46.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + safe-regex-test: 1.1.0 + string.prototype.includes: 2.0.1 + + eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705(eslint@8.46.0): + dependencies: + eslint: 8.46.0 + + eslint-plugin-react@7.37.3(eslint@8.46.0): + dependencies: + 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.2.1 + eslint: 8.46.0 + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.values: 1.2.1 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.12 + string.prototype.repeat: 1.0.0 + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint@8.46.0: + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@8.46.0) + '@eslint-community/regexpp': 4.12.1 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.0 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + esm-env@1.2.1: {} + + espree@9.6.1: + dependencies: + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 3.4.3 + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrap@1.3.2: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + esutils@2.0.3: {} + + event-target-shim@5.0.1: {} + + eventemitter3@4.0.7: {} + + eventemitter3@5.0.1: {} + + eventsource-parser@1.1.2: {} + + expr-eval@2.0.2: {} + + extend@3.0.2: {} + + eyes@0.1.8: {} + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-stable-stringify@1.0.0: {} + + fastestsmallesttextencoderdecoder@1.0.22: {} + + fastq@1.18.0: + dependencies: + reusify: 1.0.4 + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + + file-type@16.5.4: + dependencies: + readable-web-to-node-stream: 3.0.2 + strtok3: 6.3.0 + token-types: 4.2.1 + + file-uri-to-path@1.0.0: {} + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@3.2.0: + dependencies: + flatted: 3.3.2 + keyv: 4.5.4 + rimraf: 3.0.2 + + flat@5.0.2: {} + + flatted@3.3.2: {} + + follow-redirects@1.15.9(debug@4.4.0): + optionalDependencies: + debug: 4.4.0 + + for-each@0.3.3: + dependencies: + is-callable: 1.2.7 + + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + form-data-encoder@1.7.2: {} + + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + form-data@4.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + formdata-node@4.4.1: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + + fraction.js@4.3.7: {} + + fs.realpath@1.0.0: {} + + fsevents@2.3.2: + optional: true + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + function.prototype.name@1.1.8: + dependencies: + 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 + + functions-have-names@1.2.3: {} + + get-intrinsic@1.2.6: + dependencies: + call-bind-apply-helpers: 1.0.1 + dunder-proto: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + function-bind: 1.1.2 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-symbol-description@1.1.0: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + + get-tsconfig@4.8.1: + dependencies: + resolve-pkg-maps: 1.0.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@7.1.7: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + gopd@1.2.0: {} + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + graphemesplit@2.4.4: + dependencies: + js-base64: 3.7.7 + unicode-trie: 2.0.0 + + groq-sdk@0.5.0: + dependencies: + '@types/node': 18.19.68 + '@types/node-fetch': 2.6.12 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + web-streams-polyfill: 3.3.3 + transitivePeerDependencies: + - encoding + + gzip-size@6.0.0: + dependencies: + duplexer: 0.1.2 + + has-bigints@1.1.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hash.js@1.1.7: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hast-util-to-html@9.0.4: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + html-void-elements@3.0.0: {} + + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + + ibm-cloud-sdk-core@5.1.0: + dependencies: + '@types/debug': 4.1.12 + '@types/node': 10.14.22 + '@types/tough-cookie': 4.0.5 + axios: 1.7.4(debug@4.4.0) + camelcase: 6.3.0 + debug: 4.4.0 + dotenv: 16.4.7 + extend: 3.0.2 + file-type: 16.5.4 + form-data: 4.0.0 + isstream: 0.1.2 + jsonwebtoken: 9.0.2 + mime-types: 2.1.35 + retry-axios: 2.6.0(axios@1.7.4) + tough-cookie: 4.1.4 + transitivePeerDependencies: + - supports-color + + ieee754@1.2.1: {} + + ignore@5.3.2: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + internal-slot@1.1.0: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.1.0 + + ipaddr.js@2.2.0: {} + + is-arguments@1.2.0: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-array-buffer@3.0.5: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + get-intrinsic: 1.2.6 + + is-arrayish@0.3.2: {} + + is-async-function@2.0.0: + dependencies: + has-tostringtag: 1.0.2 + + is-bigint@1.1.0: + dependencies: + has-bigints: 1.1.0 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-boolean-object@1.2.1: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-bun-module@1.3.0: + dependencies: + semver: 7.6.3 + + is-callable@1.2.7: {} + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-data-view@1.0.2: + dependencies: + call-bound: 1.0.3 + get-intrinsic: 1.2.6 + is-typed-array: 1.1.15 + + is-date-object@1.1.0: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-extglob@2.1.1: {} + + is-finalizationregistry@1.1.1: + dependencies: + call-bound: 1.0.3 + + is-fullwidth-code-point@3.0.0: {} + + is-generator-function@1.0.10: + dependencies: + has-tostringtag: 1.0.2 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-map@2.0.3: {} + + is-nan@1.3.2: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + + is-number-object@1.1.1: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-number@7.0.0: {} + + is-path-inside@3.0.3: {} + + is-reference@3.0.3: + dependencies: + '@types/estree': 1.0.6 + + is-regex@1.2.1: + dependencies: + call-bound: 1.0.3 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + is-retry-allowed@2.2.0: {} + + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.4: + dependencies: + call-bound: 1.0.3 + + is-string@1.1.1: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-symbol@1.1.1: + dependencies: + call-bound: 1.0.3 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.18 + + is-weakmap@2.0.2: {} + + is-weakref@1.1.0: + dependencies: + call-bound: 1.0.3 + + is-weakset@2.0.4: + dependencies: + call-bound: 1.0.3 + get-intrinsic: 1.2.6 + + isarray@2.0.5: {} + + isexe@2.0.0: {} + + isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)): + dependencies: + ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + + isomorphic-ws@4.0.1(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)): + dependencies: + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + + isstream@0.1.2: {} + + iterator.prototype@1.1.4: + dependencies: + define-data-property: 1.1.4 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.6 + has-symbols: 1.1.0 + reflect.getprototypeof: 1.0.9 + set-function-name: 2.0.2 + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jayson@4.1.3(bufferutil@4.0.8)(utf-8-validate@5.0.10): + dependencies: + '@types/connect': 3.4.38 + '@types/node': 12.20.55 + '@types/ws': 7.4.7 + JSONStream: 1.3.5 + commander: 2.20.3 + delay: 5.0.0 + es6-promisify: 5.0.0 + eyes: 0.1.8 + isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + json-stringify-safe: 5.0.1 + uuid: 8.3.2 + ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + jiti@1.21.7: {} + + js-base64@3.7.7: {} + + js-tiktoken@1.0.16: + dependencies: + base64-js: 1.5.1 + + js-tokens@4.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-schema@0.4.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json-stringify-safe@5.0.1: {} + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + + json5@2.2.3: {} + + jsondiffpatch@0.6.0: + dependencies: + '@types/diff-match-patch': 1.0.36 + chalk: 5.4.1 + diff-match-patch: 1.0.5 + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + jsonparse@1.3.1: {} + + jsonpointer@5.0.1: {} + + jsonwebtoken@9.0.2: + dependencies: + jws: 3.2.2 + lodash.includes: 4.3.0 + lodash.isboolean: 3.0.3 + lodash.isinteger: 4.0.4 + lodash.isnumber: 3.0.3 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.once: 4.1.1 + ms: 2.1.3 + semver: 7.6.3 + + jsx-ast-utils@3.3.5: + dependencies: + array-includes: 3.1.8 + array.prototype.flat: 1.3.3 + object.assign: 4.1.7 + object.values: 1.2.1 + + jwa@1.4.1: + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + + jws@3.2.2: + dependencies: + jwa: 1.4.1 + safe-buffer: 5.2.1 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + langchain@0.3.8(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))))(axios@1.7.4)(openai@4.77.0(zod@3.24.1)): + dependencies: + '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1)) + '@langchain/openai': 0.3.16(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))) + '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))) + js-tiktoken: 1.0.16 + js-yaml: 4.1.0 + jsonpointer: 5.0.1 + langsmith: 0.2.14(openai@4.77.0(zod@3.24.1)) + openapi-types: 12.1.3 + p-retry: 4.6.2 + uuid: 10.0.0 + yaml: 2.6.1 + zod: 3.24.1 + zod-to-json-schema: 3.24.1(zod@3.24.1) + optionalDependencies: + '@langchain/groq': 0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))) + axios: 1.7.4(debug@4.4.0) + transitivePeerDependencies: + - encoding + - openai + + langsmith@0.2.14(openai@4.77.0(zod@3.24.1)): + dependencies: + '@types/uuid': 10.0.0 + commander: 10.0.1 + p-queue: 6.6.2 + p-retry: 4.6.2 + semver: 7.6.3 + uuid: 10.0.0 + optionalDependencies: + openai: 4.77.0(zod@3.24.1) + + language-subtag-registry@0.3.23: {} + + language-tags@1.0.9: + dependencies: + language-subtag-registry: 0.3.23 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lilconfig@2.1.0: {} + + lilconfig@3.1.3: {} + + lines-and-columns@1.2.4: {} + + linkify-it@5.0.0: + dependencies: + uc.micro: 2.1.0 + + locate-character@3.0.0: {} + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.includes@4.3.0: {} + + lodash.isboolean@3.0.3: {} + + lodash.isinteger@4.0.4: {} + + lodash.isnumber@3.0.3: {} + + lodash.isplainobject@4.0.6: {} + + lodash.isstring@4.0.1: {} + + lodash.merge@4.6.2: {} + + lodash.once@4.1.1: {} + + lodash@4.17.21: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + loupe@3.1.2: {} + + lower-case@2.0.2: + dependencies: + tslib: 2.8.1 + + lru-cache@10.4.3: {} + + lunr@2.3.9: {} + + magic-string@0.30.17: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + markdown-it@14.1.0: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + + math-intrinsics@1.1.0: {} + + mdast-util-to-hast@13.2.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.2.1 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + + mdurl@2.0.0: {} + + merge2@1.4.1: {} + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + minimalistic-assert@1.0.1: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minimist@1.2.8: {} + + minipass@7.1.2: {} + + mrmime@1.0.1: {} + + ms@2.1.3: {} + + mustache@4.2.0: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.8: {} + + natural-compare@1.4.0: {} + + next@14.2.21(@opentelemetry/api@1.9.0)(@playwright/test@1.49.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@next/env': 14.2.21 + '@swc/helpers': 0.5.5 + busboy: 1.6.0 + caniuse-lite: 1.0.30001690 + graceful-fs: 4.2.11 + postcss: 8.4.31 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + styled-jsx: 5.1.1(react@18.3.1) + optionalDependencies: + '@next/swc-darwin-arm64': 14.2.21 + '@next/swc-darwin-x64': 14.2.21 + '@next/swc-linux-arm64-gnu': 14.2.21 + '@next/swc-linux-arm64-musl': 14.2.21 + '@next/swc-linux-x64-gnu': 14.2.21 + '@next/swc-linux-x64-musl': 14.2.21 + '@next/swc-win32-arm64-msvc': 14.2.21 + '@next/swc-win32-ia32-msvc': 14.2.21 + '@next/swc-win32-x64-msvc': 14.2.21 + '@opentelemetry/api': 1.9.0 + '@playwright/test': 1.49.1 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.8.1 + + node-domexception@1.0.0: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-gyp-build@4.8.4: + optional: true + + node-releases@2.0.19: {} + + normalize-path@3.0.0: {} + + normalize-range@0.1.2: {} + + object-assign@4.1.1: {} + + object-hash@3.0.0: {} + + object-inspect@1.13.3: {} + + object-is@1.1.6: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + + object-keys@1.1.1: {} + + object.assign@4.1.7: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + has-symbols: 1.1.0 + object-keys: 1.1.1 + + object.entries@1.1.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.7 + es-object-atoms: 1.0.0 + + object.groupby@1.0.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.7 + + object.values@1.2.1: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + oniguruma-to-es@0.8.1: + dependencies: + emoji-regex-xs: 1.0.0 + regex: 5.0.2 + regex-recursion: 5.0.0 + + openai@4.77.0(zod@3.24.1): + dependencies: + '@types/node': 18.19.68 + '@types/node-fetch': 2.6.12 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + optionalDependencies: + zod: 3.24.1 + transitivePeerDependencies: + - encoding + + openapi-types@12.1.3: {} + + opener@1.5.2: {} + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-finally@1.0.0: {} + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-queue@6.6.2: + dependencies: + eventemitter3: 4.0.7 + p-timeout: 3.2.0 + + p-retry@4.6.2: + dependencies: + '@types/retry': 0.12.0 + retry: 0.13.1 + + p-timeout@3.2.0: + dependencies: + p-finally: 1.0.0 + + package-json-from-dist@1.0.1: {} + + pako@0.2.9: {} + + pako@2.1.0: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-type@4.0.0: {} + + pathval@2.0.0: {} + + peek-readable@4.1.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + pify@2.3.0: {} + + pirates@4.0.6: {} + + playwright-core@1.49.1: {} + + playwright@1.49.1: + dependencies: + playwright-core: 1.49.1 + optionalDependencies: + fsevents: 2.3.2 + + possible-typed-array-names@1.0.0: {} + + postcss-import@15.1.0(postcss@8.4.27): + dependencies: + postcss: 8.4.27 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.10 + + postcss-js@4.0.1(postcss@8.4.27): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.27 + + postcss-load-config@4.0.2(postcss@8.4.27): + dependencies: + lilconfig: 3.1.3 + yaml: 2.6.1 + optionalDependencies: + postcss: 8.4.27 + + postcss-nested@6.2.0(postcss@8.4.27): + dependencies: + postcss: 8.4.27 + postcss-selector-parser: 6.1.2 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.4.27: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + postcss@8.4.31: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + postcss@8.4.49: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prettier@3.0.0: {} + + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + property-information@6.5.0: {} + + proxy-from-env@1.1.0: {} + + psl@1.15.0: + dependencies: + punycode: 2.3.1 + + punycode.js@2.3.1: {} + + punycode@2.3.1: {} + + querystringify@2.2.0: {} + + queue-microtask@1.2.3: {} + + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react-is@16.13.1: {} + + react-toastify@9.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + clsx: 1.2.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readable-web-to-node-stream@3.0.2: + dependencies: + readable-stream: 3.6.2 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + reflect.getprototypeof@1.0.9: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + dunder-proto: 1.0.1 + es-abstract: 1.23.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + gopd: 1.2.0 + which-builtin-type: 1.2.1 + + regenerator-runtime@0.14.1: {} + + regex-recursion@5.0.0: + dependencies: + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@5.0.2: + dependencies: + regex-utilities: 2.3.0 + + regexp.prototype.flags@1.5.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + + requires-port@1.0.0: {} + + resolve-from@4.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + resolve@1.22.10: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + resolve@2.0.0-next.5: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + retry-axios@2.6.0(axios@1.7.4): + dependencies: + axios: 1.7.4(debug@4.4.0) + + retry@0.13.1: {} + + reusify@1.0.4: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rpc-websockets@9.0.4: + dependencies: + '@swc/helpers': 0.5.15 + '@types/uuid': 8.3.4 + '@types/ws': 8.5.13 + buffer: 6.0.3 + eventemitter3: 5.0.1 + uuid: 8.3.2 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safe-array-concat@1.1.3: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + get-intrinsic: 1.2.6 + has-symbols: 1.1.0 + isarray: 2.0.5 + + safe-buffer@5.2.1: {} + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-regex: 1.2.1 + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + secure-json-parse@2.7.0: {} + + semver@6.3.1: {} + + semver@7.6.3: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.6 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + sharp@0.33.5: + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + semver: 7.6.3 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shiki@1.24.4: + dependencies: + '@shikijs/core': 1.24.4 + '@shikijs/engine-javascript': 1.24.4 + '@shikijs/engine-oniguruma': 1.24.4 + '@shikijs/types': 1.24.4 + '@shikijs/vscode-textmate': 9.3.1 + '@types/hast': 3.0.4 + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.3 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + object-inspect: 1.13.3 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + object-inspect: 1.13.3 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + 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 + + signal-exit@4.1.0: {} + + simple-swizzle@0.2.2: + dependencies: + is-arrayish: 0.3.2 + + sirv@1.0.19: + dependencies: + '@polka/url': 1.0.0-next.28 + mrmime: 1.0.1 + totalist: 1.1.0 + + slash@3.0.0: {} + + snake-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.1 + + solana-agent-kit@1.3.0(@noble/hashes@1.6.1)(axios@1.7.4)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)(zod@3.24.1): + dependencies: + '@bonfida/spl-name-service': 3.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10) + '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1)) + '@langchain/groq': 0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))) + '@langchain/langgraph': 0.2.36(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))) + '@langchain/openai': 0.3.16(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))) + '@lightprotocol/compressed-token': 0.17.1(@lightprotocol/stateless.js@0.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10) + '@lightprotocol/stateless.js': 0.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@metaplex-foundation/mpl-core': 1.1.1(@metaplex-foundation/umi@0.9.2)(@noble/hashes@1.6.1) + '@metaplex-foundation/mpl-token-metadata': 3.3.0(@metaplex-foundation/umi@0.9.2) + '@metaplex-foundation/mpl-toolbox': 0.9.4(@metaplex-foundation/umi@0.9.2) + '@metaplex-foundation/umi': 0.9.2 + '@metaplex-foundation/umi-bundle-defaults': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@onsol/tldparser': 0.6.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bn.js@5.2.1)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@orca-so/common-sdk': 0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3) + '@orca-so/whirlpools-sdk': 0.13.12(@coral-xyz/anchor@0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@orca-so/common-sdk@0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3))(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3) + '@pythnetwork/price-service-client': 1.9.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@raydium-io/raydium-sdk-v2': 0.1.95-alpha(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10) + '@solana/spl-token': 0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + bn.js: 5.2.1 + bs58: 6.0.0 + chai: 5.1.2 + decimal.js: 10.4.3 + dotenv: 16.4.7 + form-data: 4.0.1 + langchain: 0.3.8(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))))(axios@1.7.4)(openai@4.77.0(zod@3.24.1)) + openai: 4.77.0(zod@3.24.1) + typedoc: 0.26.11(typescript@5.1.6) + transitivePeerDependencies: + - '@langchain/anthropic' + - '@langchain/aws' + - '@langchain/cohere' + - '@langchain/google-genai' + - '@langchain/google-vertexai' + - '@langchain/mistralai' + - '@langchain/ollama' + - '@noble/hashes' + - axios + - borsh + - buffer + - bufferutil + - cheerio + - debug + - encoding + - fastestsmallesttextencoderdecoder + - handlebars + - peggy + - supports-color + - typeorm + - typescript + - utf-8-validate + - zod + + source-map-js@1.2.1: {} + + space-separated-tokens@2.0.2: {} + + sswr@2.1.0(svelte@5.16.0): + dependencies: + svelte: 5.16.0 + swrev: 4.0.0 + + stable-hash@0.0.4: {} + + streamsearch@1.1.0: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string.prototype.includes@2.0.1: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.7 + + string.prototype.matchall@4.0.12: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-abstract: 1.23.7 + 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 + + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.7 + + string.prototype.trim@1.2.10: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-data-property: 1.1.4 + define-properties: 1.2.1 + es-abstract: 1.23.7 + es-object-atoms: 1.0.0 + has-property-descriptors: 1.0.2 + + string.prototype.trimend@1.0.9: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-bom@3.0.0: {} + + strip-json-comments@3.1.1: {} + + strtok3@6.3.0: + dependencies: + '@tokenizer/token': 0.3.0 + peek-readable: 4.1.0 + + styled-jsx@5.1.1(react@18.3.1): + dependencies: + client-only: 0.0.1 + react: 18.3.1 + + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + + superstruct@0.15.5: {} + + superstruct@2.0.2: {} + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + svelte@5.16.0: + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.5.0 + '@types/estree': 1.0.6 + acorn: 8.14.0 + acorn-typescript: 1.4.13(acorn@8.14.0) + aria-query: 5.3.2 + axobject-query: 4.1.0 + clsx: 2.1.1 + esm-env: 1.2.1 + esrap: 1.3.2 + is-reference: 3.0.3 + locate-character: 3.0.0 + magic-string: 0.30.17 + zimmerframe: 1.1.2 + + swr@2.3.0(react@18.3.1): + dependencies: + dequal: 2.0.3 + react: 18.3.1 + use-sync-external-store: 1.4.0(react@18.3.1) + + swrev@4.0.0: {} + + swrv@1.0.4(vue@3.5.13(typescript@5.1.6)): + dependencies: + vue: 3.5.13(typescript@5.1.6) + + tailwindcss@3.3.3: + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.7 + lilconfig: 2.1.0 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.1 + postcss: 8.4.27 + postcss-import: 15.1.0(postcss@8.4.27) + postcss-js: 4.0.1(postcss@8.4.27) + postcss-load-config: 4.0.2(postcss@8.4.27) + postcss-nested: 6.2.0(postcss@8.4.27) + postcss-selector-parser: 6.1.2 + resolve: 1.22.10 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + + tapable@2.2.1: {} + + text-encoding-utf-8@1.0.2: {} + + text-table@0.2.0: {} + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + throttleit@2.1.0: {} + + through@2.3.8: {} + + tiny-inflate@1.0.3: {} + + tiny-invariant@1.3.3: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toformat@2.0.0: {} + + token-types@4.2.1: + dependencies: + '@tokenizer/token': 0.3.0 + ieee754: 1.2.1 + + toml@3.0.0: {} + + totalist@1.1.0: {} + + tough-cookie@4.1.4: + dependencies: + psl: 1.15.0 + punycode: 2.3.1 + universalify: 0.2.0 + url-parse: 1.5.10 + + tr46@0.0.3: {} + + trim-lines@3.0.1: {} + + ts-interface-checker@0.1.13: {} + + ts-log@2.2.7: {} + + tsconfig-paths@3.15.0: + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tsconfig-paths@4.2.0: + dependencies: + json5: 2.2.3 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tslib@1.14.1: {} + + tslib@2.8.1: {} + + tsutils@3.21.0(typescript@5.1.6): + dependencies: + tslib: 1.14.1 + typescript: 5.1.6 + + tweetnacl@1.0.3: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@0.20.2: {} + + typed-array-buffer@1.0.3: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-typed-array: 1.1.15 + + typed-array-byte-length@1.0.3: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.3 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + + typed-array-byte-offset@1.0.4: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + for-each: 0.3.3 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.9 + + typed-array-length@1.0.7: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.3 + gopd: 1.2.0 + is-typed-array: 1.1.15 + possible-typed-array-names: 1.0.0 + reflect.getprototypeof: 1.0.9 + + typedoc@0.26.11(typescript@5.1.6): + dependencies: + lunr: 2.3.9 + markdown-it: 14.1.0 + minimatch: 9.0.5 + shiki: 1.24.4 + typescript: 5.1.6 + yaml: 2.6.1 + + typescript@5.1.6: {} + + uc.micro@2.1.0: {} + + unbox-primitive@1.1.0: + dependencies: + call-bound: 1.0.3 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 + + undici-types@5.26.5: {} + + unicode-trie@2.0.0: + dependencies: + pako: 0.2.9 + tiny-inflate: 1.0.3 + + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + universalify@0.2.0: {} + + universalify@2.0.1: {} + + update-browserslist-db@1.1.1(browserslist@4.24.3): + dependencies: + browserslist: 4.24.3 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + url-parse@1.5.10: + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + + use-sync-external-store@1.4.0(react@18.3.1): + dependencies: + react: 18.3.1 + + utf-8-validate@5.0.10: + dependencies: + node-gyp-build: 4.8.4 + optional: true + + util-deprecate@1.0.2: {} + + util@0.12.5: + dependencies: + inherits: 2.0.4 + is-arguments: 1.2.0 + is-generator-function: 1.0.10 + is-typed-array: 1.1.15 + which-typed-array: 1.1.18 + + uuid@10.0.0: {} + + uuid@8.3.2: {} + + uuid@9.0.1: {} + + vfile-message@4.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.2 + + vue@3.5.13(typescript@5.1.6): + dependencies: + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-sfc': 3.5.13 + '@vue/runtime-dom': 3.5.13 + '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.1.6)) + '@vue/shared': 3.5.13 + optionalDependencies: + typescript: 5.1.6 + + web-streams-polyfill@3.3.3: {} + + web-streams-polyfill@4.0.0-beta.3: {} + + webidl-conversions@3.0.1: {} + + webpack-bundle-analyzer@4.7.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): + dependencies: + acorn: 8.14.0 + acorn-walk: 8.3.4 + chalk: 4.1.2 + commander: 7.2.0 + gzip-size: 6.0.0 + lodash: 4.17.21 + opener: 1.5.2 + sirv: 1.0.19 + ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + which-boxed-primitive@1.1.1: + dependencies: + 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 + + which-builtin-type@1.2.1: + dependencies: + call-bound: 1.0.3 + function.prototype.name: 1.1.8 + has-tostringtag: 1.0.2 + is-async-function: 2.0.0 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.0.10 + is-regex: 1.2.1 + is-weakref: 1.1.0 + isarray: 2.0.5 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.18 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.4 + + which-typed-array@1.1.18: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 + for-each: 0.3.3 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + + ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + + yaml@2.6.1: {} + + yocto-queue@0.1.0: {} + + zimmerframe@1.1.2: {} + + zod-to-json-schema@3.24.1(zod@3.24.1): + dependencies: + zod: 3.24.1 + + zod@3.24.1: {} + + zwitch@2.0.4: {} diff --git a/examples/agent-kit-nextjs-langchain/postcss.config.js b/examples/agent-kit-nextjs-langchain/postcss.config.js new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/examples/agent-kit-nextjs-langchain/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/examples/agent-kit-nextjs-langchain/public/images/favicon.ico b/examples/agent-kit-nextjs-langchain/public/images/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..4c29611109064a93f09866b3b89d4486b8db1866 GIT binary patch literal 15406 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 Izgq_VANjSAVE_OC literal 0 HcmV?d00001 diff --git a/examples/agent-kit-nextjs-langchain/tailwind.config.js b/examples/agent-kit-nextjs-langchain/tailwind.config.js new file mode 100644 index 0000000..8c4d1b2 --- /dev/null +++ b/examples/agent-kit-nextjs-langchain/tailwind.config.js @@ -0,0 +1,18 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [ + './pages/**/*.{js,ts,jsx,tsx,mdx}', + './components/**/*.{js,ts,jsx,tsx,mdx}', + './app/**/*.{js,ts,jsx,tsx,mdx}', + ], + theme: { + extend: { + backgroundImage: { + 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))', + 'gradient-conic': + 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))', + }, + }, + }, + plugins: [], +} diff --git a/examples/agent-kit-nextjs-langchain/tsconfig.json b/examples/agent-kit-nextjs-langchain/tsconfig.json new file mode 100644 index 0000000..23ba4fd --- /dev/null +++ b/examples/agent-kit-nextjs-langchain/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} From 56185d94fbd24be617895b36fd5e606249fbb053 Mon Sep 17 00:00:00 2001 From: michaelessiet Date: Mon, 30 Dec 2024 12:00:51 +0100 Subject: [PATCH 4/7] feat: markdown formatting --- .../components/ChatMessageBubble.tsx | 93 +++--- .../agent-kit-nextjs-langchain/package.json | 3 + .../agent-kit-nextjs-langchain/pnpm-lock.yaml | 296 +++++++++++++++++- .../tailwind.config.js | 32 +- .../utils/markdownToHTML.ts | 31 ++ 5 files changed, 397 insertions(+), 58 deletions(-) create mode 100644 examples/agent-kit-nextjs-langchain/utils/markdownToHTML.ts diff --git a/examples/agent-kit-nextjs-langchain/components/ChatMessageBubble.tsx b/examples/agent-kit-nextjs-langchain/components/ChatMessageBubble.tsx index 8d1beca..aef1231 100644 --- a/examples/agent-kit-nextjs-langchain/components/ChatMessageBubble.tsx +++ b/examples/agent-kit-nextjs-langchain/components/ChatMessageBubble.tsx @@ -1,39 +1,58 @@ +import markdownToHtml from "@/utils/markdownToHTML"; import type { Message } from "ai/react"; +import { useMemo } from "react"; -export function ChatMessageBubble(props: { message: Message, aiEmoji?: string, sources: any[] }) { - const colorClassName = - props.message.role === "user" ? "bg-sky-600" : "bg-slate-50 text-black"; - const alignmentClassName = - props.message.role === "user" ? "ml-auto" : "mr-auto"; - const prefix = props.message.role === "user" ? "🧑" : props.aiEmoji; - return ( -
-
- {prefix} -
-
- {props.message.content} - {props.sources && props.sources.length ? <> - -

- 🔍 Sources: -

-
- - {props.sources?.map((source, i) => ( -
- {i + 1}. "{source.pageContent}"{ - source.metadata?.loc?.lines !== undefined - ?

Lines {source.metadata?.loc?.lines?.from} to {source.metadata?.loc?.lines?.to}
- : "" - } -
- ))} -
- : ""} -
-
- ); -} \ No newline at end of file +export function ChatMessageBubble(props: { + message: Message; + aiEmoji?: string; + sources: any[]; +}) { + const colorClassName = + props.message.role === "user" ? "bg-sky-600" : "bg-slate-50 text-black"; + const alignmentClassName = + props.message.role === "user" ? "ml-auto" : "mr-auto"; + const prefix = props.message.role === "user" ? "🧑" : props.aiEmoji; + + const content = useMemo(() => { + return markdownToHtml(props.message.content); + }, [props.message.content]); + + return ( +
+
{prefix}
+
+
+ {props.sources && props.sources.length ? ( + <> + +

🔍 Sources:

+
+ + {props.sources?.map((source, i) => ( +
+ {i + 1}. "{source.pageContent}" + {source.metadata?.loc?.lines !== undefined ? ( +
+
+ Lines {source.metadata?.loc?.lines?.from} to{" "} + {source.metadata?.loc?.lines?.to} +
+ ) : ( + "" + )} +
+ ))} +
+ + ) : ( + "" + )} +
+
+ ); +} diff --git a/examples/agent-kit-nextjs-langchain/package.json b/examples/agent-kit-nextjs-langchain/package.json index 241a8d4..b1eba12 100644 --- a/examples/agent-kit-nextjs-langchain/package.json +++ b/examples/agent-kit-nextjs-langchain/package.json @@ -19,6 +19,7 @@ "@langchain/openai": "^0.3.11", "@next/bundle-analyzer": "^13.4.19", "@supabase/supabase-js": "^2.32.0", + "@tailwindcss/typography": "^0.5.15", "@types/node": "20.12.12", "@types/react": "18.3.2", "@types/react-dom": "18.3.0", @@ -26,7 +27,9 @@ "autoprefixer": "10.4.14", "eslint": "8.46.0", "eslint-config-next": "13.4.12", + "isomorphic-dompurify": "^2.19.0", "langchain": "^0.3.5", + "marked": "^15.0.4", "next": "^14.2.3", "postcss": "8.4.27", "react": "^18.3.1", diff --git a/examples/agent-kit-nextjs-langchain/pnpm-lock.yaml b/examples/agent-kit-nextjs-langchain/pnpm-lock.yaml index 966aa8b..1f8f265 100644 --- a/examples/agent-kit-nextjs-langchain/pnpm-lock.yaml +++ b/examples/agent-kit-nextjs-langchain/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: dependencies: '@langchain/community': specifier: ^0.3.11 - version: 0.3.20(@browserbasehq/sdk@2.0.0)(@browserbasehq/stagehand@1.8.0(@playwright/test@1.49.1)(bufferutil@4.0.8)(deepmerge@4.3.1)(dotenv@16.4.7)(openai@4.77.0(zod@3.24.1))(utf-8-validate@5.0.10)(zod@3.24.1))(@ibm-cloud/watsonx-ai@1.3.0)(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))))(@supabase/supabase-js@2.47.10(bufferutil@4.0.8)(utf-8-validate@5.0.10))(axios@1.7.4)(ibm-cloud-sdk-core@5.1.0)(ignore@5.3.2)(jsonwebtoken@9.0.2)(lodash@4.17.21)(openai@4.77.0(zod@3.24.1))(playwright@1.49.1)(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + version: 0.3.20(@browserbasehq/sdk@2.0.0)(@browserbasehq/stagehand@1.8.0(@playwright/test@1.49.1)(bufferutil@4.0.8)(deepmerge@4.3.1)(dotenv@16.4.7)(openai@4.77.0(zod@3.24.1))(utf-8-validate@5.0.10)(zod@3.24.1))(@ibm-cloud/watsonx-ai@1.3.0)(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))))(@supabase/supabase-js@2.47.10(bufferutil@4.0.8)(utf-8-validate@5.0.10))(axios@1.7.4)(ibm-cloud-sdk-core@5.1.0)(ignore@5.3.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(jsonwebtoken@9.0.2)(lodash@4.17.21)(openai@4.77.0(zod@3.24.1))(playwright@1.49.1)(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@langchain/core': specifier: ^0.3.17 version: 0.3.26(openai@4.77.0(zod@3.24.1)) @@ -26,6 +26,9 @@ importers: '@supabase/supabase-js': specifier: ^2.32.0 version: 2.47.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@tailwindcss/typography': + specifier: ^0.5.15 + version: 0.5.15(tailwindcss@3.3.3) '@types/node': specifier: 20.12.12 version: 20.12.12 @@ -47,9 +50,15 @@ importers: eslint-config-next: specifier: 13.4.12 version: 13.4.12(eslint@8.46.0)(typescript@5.1.6) + isomorphic-dompurify: + specifier: ^2.19.0 + version: 2.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) langchain: specifier: ^0.3.5 version: 0.3.8(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))))(axios@1.7.4)(openai@4.77.0(zod@3.24.1)) + marked: + specifier: ^15.0.4 + version: 15.0.4 next: specifier: ^14.2.3 version: 14.2.21(@opentelemetry/api@1.9.0)(@playwright/test@1.49.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1269,6 +1278,11 @@ packages: '@swc/helpers@0.5.5': resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} + '@tailwindcss/typography@0.5.15': + resolution: {integrity: sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20' + '@tokenizer/token@0.3.0': resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} @@ -1332,6 +1346,9 @@ packages: '@types/tough-cookie@4.0.5': resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} @@ -1437,6 +1454,10 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + agent-base@7.1.3: + resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} + engines: {node: '>= 14'} + agentkeepalive@4.5.0: resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} engines: {node: '>= 8.0.0'} @@ -1791,12 +1812,20 @@ packages: engines: {node: '>=4'} hasBin: true + cssstyle@4.1.0: + resolution: {integrity: sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==} + engines: {node: '>=18'} + csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + data-urls@5.0.0: + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} + engines: {node: '>=18'} + data-view-buffer@1.0.2: resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} engines: {node: '>= 0.4'} @@ -1898,6 +1927,9 @@ packages: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} + dompurify@3.2.3: + resolution: {integrity: sha512-U1U5Hzc2MO0oW3DF+G9qYN0aT7atAou4AgI0XjWz061nyBPbdxkfdhfy5uMgGn6+oLFCfn44ZGbdDqCzVmlOWA==} + dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} @@ -2332,9 +2364,21 @@ packages: hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + html-encoding-sniffer@4.0.0: + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} + engines: {node: '>=18'} + html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} @@ -2342,6 +2386,10 @@ packages: resolution: {integrity: sha512-KJCbPz3tiXB1NGAD7cL4JtwpWV8yd/C7jsaHsxvedMo2ZblNG8emMyvSpGhiKAQVZmi3c0ujz6eJdy22NHuUWQ==} engines: {node: '>=18'} + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -2458,6 +2506,9 @@ packages: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} + is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + is-reference@3.0.3: resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} @@ -2507,6 +2558,10 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isomorphic-dompurify@2.19.0: + resolution: {integrity: sha512-ppcgeRlEwOQ+v/JDctcjnOsBwEoJlAWVDH5+LisLHphQFeWCrBiVvK6XF4wF0MJM5tJA6RxJSlpbmthnmonxOQ==} + engines: {node: '>=18'} + isomorphic-ws@4.0.1: resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} peerDependencies: @@ -2544,6 +2599,15 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true + jsdom@25.0.1: + resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==} + engines: {node: '>=18'} + peerDependencies: + canvas: ^2.11.2 + peerDependenciesMeta: + canvas: + optional: true + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -2687,6 +2751,9 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} + lodash.castarray@4.4.0: + resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} + lodash.includes@4.3.0: resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} @@ -2737,6 +2804,11 @@ packages: resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} hasBin: true + marked@15.0.4: + resolution: {integrity: sha512-TCHvDqmb3ZJ4PWG7VEGVgtefA5/euFmsIhxtD0XsBxI39gUSKL81mIRFdt0AiNQozUahd4ke98ZdirExd/vSEw==} + engines: {node: '>= 18'} + hasBin: true + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -2866,6 +2938,9 @@ packages: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} + nwsapi@2.2.16: + resolution: {integrity: sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==} + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -2969,6 +3044,9 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parse5@7.2.1: + resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -3059,6 +3137,10 @@ packages: peerDependencies: postcss: ^8.2.14 + postcss-selector-parser@6.0.10: + resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} + engines: {node: '>=4'} + postcss-selector-parser@6.1.2: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} @@ -3207,6 +3289,9 @@ packages: rpc-websockets@9.0.4: resolution: {integrity: sha512-yWZWN0M+bivtoNLnaDbtny4XchdAIF5Q4g/ZsC5UC61Ckbp0QczwO8fg44rV3uYmY4WHd+EZQbn90W1d8ojzqQ==} + rrweb-cssom@0.7.1: + resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -3221,6 +3306,13 @@ packages: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} @@ -3423,6 +3515,9 @@ packages: peerDependencies: vue: '>=3.2.26 < 4' + symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + tailwindcss@3.3.3: resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==} engines: {node: '>=14.0.0'} @@ -3458,6 +3553,13 @@ packages: tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + tldts-core@6.1.70: + resolution: {integrity: sha512-RNnIXDB1FD4T9cpQRErEqw6ZpjLlGdMOitdV+0xtbsnwr4YFka1zpc7D4KD+aAn8oSG5JyFrdasZTE04qDE9Yg==} + + tldts@6.1.70: + resolution: {integrity: sha512-/W1YVgYVJd9ZDjey5NXadNh0mJXkiUMUue9Zebd0vpdo1sU+H4zFFTaJ1RKD4N6KFoHfcXy6l+Vu7bh+bdWCzA==} + hasBin: true + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -3480,9 +3582,17 @@ packages: resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} engines: {node: '>=6'} + tough-cookie@5.0.0: + resolution: {integrity: sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==} + engines: {node: '>=16'} + tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tr46@5.0.0: + resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} + engines: {node: '>=18'} + trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} @@ -3639,6 +3749,10 @@ packages: typescript: optional: true + w3c-xmlserializer@5.0.0: + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} + engines: {node: '>=18'} + web-streams-polyfill@3.3.3: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} @@ -3650,11 +3764,27 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + webpack-bundle-analyzer@4.7.0: resolution: {integrity: sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==} engines: {node: '>= 10.13.0'} hasBin: true + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + + whatwg-url@14.1.0: + resolution: {integrity: sha512-jlf/foYIKywAt3x/XWKZ/3rz8OSJPiWktjmk891alJUEjiVxKX9LEO92qH3hv4aJ0mN3MWPvGMCy8jQi95xK4w==} + engines: {node: '>=18'} + whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} @@ -3718,6 +3848,13 @@ packages: utf-8-validate: optional: true + xml-name-validator@5.0.0: + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} + engines: {node: '>=18'} + + xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + yaml@2.6.1: resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} engines: {node: '>= 14'} @@ -4084,7 +4221,7 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@langchain/community@0.3.20(@browserbasehq/sdk@2.0.0)(@browserbasehq/stagehand@1.8.0(@playwright/test@1.49.1)(bufferutil@4.0.8)(deepmerge@4.3.1)(dotenv@16.4.7)(openai@4.77.0(zod@3.24.1))(utf-8-validate@5.0.10)(zod@3.24.1))(@ibm-cloud/watsonx-ai@1.3.0)(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))))(@supabase/supabase-js@2.47.10(bufferutil@4.0.8)(utf-8-validate@5.0.10))(axios@1.7.4)(ibm-cloud-sdk-core@5.1.0)(ignore@5.3.2)(jsonwebtoken@9.0.2)(lodash@4.17.21)(openai@4.77.0(zod@3.24.1))(playwright@1.49.1)(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + '@langchain/community@0.3.20(@browserbasehq/sdk@2.0.0)(@browserbasehq/stagehand@1.8.0(@playwright/test@1.49.1)(bufferutil@4.0.8)(deepmerge@4.3.1)(dotenv@16.4.7)(openai@4.77.0(zod@3.24.1))(utf-8-validate@5.0.10)(zod@3.24.1))(@ibm-cloud/watsonx-ai@1.3.0)(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))))(@supabase/supabase-js@2.47.10(bufferutil@4.0.8)(utf-8-validate@5.0.10))(axios@1.7.4)(ibm-cloud-sdk-core@5.1.0)(ignore@5.3.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(jsonwebtoken@9.0.2)(lodash@4.17.21)(openai@4.77.0(zod@3.24.1))(playwright@1.49.1)(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10))': dependencies: '@browserbasehq/stagehand': 1.8.0(@playwright/test@1.49.1)(bufferutil@4.0.8)(deepmerge@4.3.1)(dotenv@16.4.7)(openai@4.77.0(zod@3.24.1))(utf-8-validate@5.0.10)(zod@3.24.1) '@ibm-cloud/watsonx-ai': 1.3.0 @@ -4105,10 +4242,11 @@ snapshots: '@browserbasehq/sdk': 2.0.0 '@supabase/supabase-js': 2.47.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) ignore: 5.3.2 + jsdom: 25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) jsonwebtoken: 9.0.2 lodash: 4.17.21 playwright: 1.49.1 - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - '@langchain/anthropic' - '@langchain/aws' @@ -4874,6 +5012,14 @@ snapshots: '@swc/counter': 0.1.3 tslib: 2.8.1 + '@tailwindcss/typography@0.5.15(tailwindcss@3.3.3)': + dependencies: + lodash.castarray: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + postcss-selector-parser: 6.0.10 + tailwindcss: 3.3.3 + '@tokenizer/token@0.3.0': {} '@types/connect@3.4.38': @@ -4936,6 +5082,9 @@ snapshots: '@types/tough-cookie@4.0.5': {} + '@types/trusted-types@2.0.7': + optional: true + '@types/unist@3.0.3': {} '@types/uuid@10.0.0': {} @@ -5067,6 +5216,8 @@ snapshots: acorn@8.14.0: {} + agent-base@7.1.3: {} + agentkeepalive@4.5.0: dependencies: humanize-ms: 1.2.1 @@ -5445,10 +5596,19 @@ snapshots: cssesc@3.0.0: {} + cssstyle@4.1.0: + dependencies: + rrweb-cssom: 0.7.1 + csstype@3.1.3: {} damerau-levenshtein@1.0.8: {} + data-urls@5.0.0: + dependencies: + whatwg-mimetype: 4.0.0 + whatwg-url: 14.1.0 + data-view-buffer@1.0.2: dependencies: call-bound: 1.0.3 @@ -5531,6 +5691,10 @@ snapshots: dependencies: esutils: 2.0.3 + dompurify@3.2.3: + optionalDependencies: + '@types/trusted-types': 2.0.7 + dot-case@3.0.4: dependencies: no-case: 3.0.4 @@ -6144,8 +6308,26 @@ snapshots: dependencies: '@types/hast': 3.0.4 + html-encoding-sniffer@4.0.0: + dependencies: + whatwg-encoding: 3.1.1 + html-void-elements@3.0.0: {} + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.3 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.3 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + humanize-ms@1.2.1: dependencies: ms: 2.1.3 @@ -6165,11 +6347,15 @@ snapshots: isstream: 0.1.2 jsonwebtoken: 9.0.2 mime-types: 2.1.35 - retry-axios: 2.6.0(axios@1.7.4) + retry-axios: 2.6.0(axios@1.7.4(debug@4.4.0)) tough-cookie: 4.1.4 transitivePeerDependencies: - supports-color + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + ieee754@1.2.1: {} ignore@5.3.2: {} @@ -6279,6 +6465,8 @@ snapshots: is-path-inside@3.0.3: {} + is-potential-custom-element-name@1.0.1: {} + is-reference@3.0.3: dependencies: '@types/estree': 1.0.6 @@ -6328,6 +6516,16 @@ snapshots: isexe@2.0.0: {} + isomorphic-dompurify@2.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): + dependencies: + dompurify: 3.2.3 + jsdom: 25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)): dependencies: ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -6385,6 +6583,34 @@ snapshots: dependencies: argparse: 2.0.1 + jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10): + dependencies: + cssstyle: 4.1.0 + data-urls: 5.0.0 + decimal.js: 10.4.3 + form-data: 4.0.1 + html-encoding-sniffer: 4.0.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.16 + parse5: 7.2.1 + rrweb-cssom: 0.7.1 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 5.0.0 + w3c-xmlserializer: 5.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 3.1.1 + whatwg-mimetype: 4.0.0 + whatwg-url: 14.1.0 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + xml-name-validator: 5.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + json-buffer@3.0.1: {} json-schema-traverse@0.4.1: {} @@ -6512,6 +6738,8 @@ snapshots: dependencies: p-locate: 5.0.0 + lodash.castarray@4.4.0: {} + lodash.includes@4.3.0: {} lodash.isboolean@3.0.3: {} @@ -6557,6 +6785,8 @@ snapshots: punycode.js: 2.3.1 uc.micro: 2.1.0 + marked@15.0.4: {} + math-intrinsics@1.1.0: {} mdast-util-to-hast@13.2.0: @@ -6680,6 +6910,8 @@ snapshots: normalize-range@0.1.2: {} + nwsapi@2.2.16: {} + object-assign@4.1.1: {} object-hash@3.0.0: {} @@ -6799,6 +7031,10 @@ snapshots: dependencies: callsites: 3.1.0 + parse5@7.2.1: + dependencies: + entities: 4.5.0 + path-exists@4.0.0: {} path-is-absolute@1.0.1: {} @@ -6860,6 +7096,11 @@ snapshots: postcss: 8.4.27 postcss-selector-parser: 6.1.2 + postcss-selector-parser@6.0.10: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 @@ -6995,7 +7236,7 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - retry-axios@2.6.0(axios@1.7.4): + retry-axios@2.6.0(axios@1.7.4(debug@4.4.0)): dependencies: axios: 1.7.4(debug@4.4.0) @@ -7020,6 +7261,8 @@ snapshots: bufferutil: 4.0.8 utf-8-validate: 5.0.10 + rrweb-cssom@0.7.1: {} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -7040,6 +7283,12 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 + safer-buffer@2.1.2: {} + + saxes@6.0.0: + dependencies: + xmlchars: 2.2.0 + scheduler@0.23.2: dependencies: loose-envify: 1.4.0 @@ -7366,6 +7615,8 @@ snapshots: dependencies: vue: 3.5.13(typescript@5.1.6) + symbol-tree@3.2.4: {} + tailwindcss@3.3.3: dependencies: '@alloc/quick-lru': 5.2.0 @@ -7415,6 +7666,12 @@ snapshots: tiny-invariant@1.3.3: {} + tldts-core@6.1.70: {} + + tldts@6.1.70: + dependencies: + tldts-core: 6.1.70 + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 @@ -7437,8 +7694,16 @@ snapshots: universalify: 0.2.0 url-parse: 1.5.10 + tough-cookie@5.0.0: + dependencies: + tldts: 6.1.70 + tr46@0.0.3: {} + tr46@5.0.0: + dependencies: + punycode: 2.3.1 + trim-lines@3.0.1: {} ts-interface-checker@0.1.13: {} @@ -7622,12 +7887,18 @@ snapshots: optionalDependencies: typescript: 5.1.6 + w3c-xmlserializer@5.0.0: + dependencies: + xml-name-validator: 5.0.0 + web-streams-polyfill@3.3.3: {} web-streams-polyfill@4.0.0-beta.3: {} webidl-conversions@3.0.1: {} + webidl-conversions@7.0.0: {} + webpack-bundle-analyzer@4.7.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): dependencies: acorn: 8.14.0 @@ -7643,6 +7914,17 @@ snapshots: - bufferutil - utf-8-validate + whatwg-encoding@3.1.1: + dependencies: + iconv-lite: 0.6.3 + + whatwg-mimetype@4.0.0: {} + + whatwg-url@14.1.0: + dependencies: + tr46: 5.0.0 + webidl-conversions: 7.0.0 + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 @@ -7718,6 +8000,10 @@ snapshots: bufferutil: 4.0.8 utf-8-validate: 5.0.10 + xml-name-validator@5.0.0: {} + + xmlchars@2.2.0: {} + yaml@2.6.1: {} yocto-queue@0.1.0: {} diff --git a/examples/agent-kit-nextjs-langchain/tailwind.config.js b/examples/agent-kit-nextjs-langchain/tailwind.config.js index 8c4d1b2..84045aa 100644 --- a/examples/agent-kit-nextjs-langchain/tailwind.config.js +++ b/examples/agent-kit-nextjs-langchain/tailwind.config.js @@ -1,18 +1,18 @@ /** @type {import('tailwindcss').Config} */ module.exports = { - content: [ - './pages/**/*.{js,ts,jsx,tsx,mdx}', - './components/**/*.{js,ts,jsx,tsx,mdx}', - './app/**/*.{js,ts,jsx,tsx,mdx}', - ], - theme: { - extend: { - backgroundImage: { - 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))', - 'gradient-conic': - 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))', - }, - }, - }, - plugins: [], -} + content: [ + "./pages/**/*.{js,ts,jsx,tsx,mdx}", + "./components/**/*.{js,ts,jsx,tsx,mdx}", + "./app/**/*.{js,ts,jsx,tsx,mdx}", + ], + theme: { + extend: { + backgroundImage: { + "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", + "gradient-conic": + "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", + }, + }, + }, + plugins: [require("@tailwindcss/typography")], +}; diff --git a/examples/agent-kit-nextjs-langchain/utils/markdownToHTML.ts b/examples/agent-kit-nextjs-langchain/utils/markdownToHTML.ts new file mode 100644 index 0000000..f62268c --- /dev/null +++ b/examples/agent-kit-nextjs-langchain/utils/markdownToHTML.ts @@ -0,0 +1,31 @@ +import { marked } from "marked"; +import DOMPurify from "isomorphic-dompurify"; + +interface MarkedOptions { + gfm: boolean; + breaks: boolean; + headerIds: boolean; + mangle: false; + highlight?: (code: string, lang: string) => string; +} + +// Configure marked options +const markedOptions: MarkedOptions = { + gfm: true, // GitHub Flavored Markdown + breaks: true, // Convert \n to
+ headerIds: true, // Add ids to headers + mangle: false, // Don't escape HTML + highlight: function (code: string, lang: string): string { + // You can add syntax highlighting here if needed + return code; + }, +}; + +marked.setOptions(markedOptions); + +// Basic markdown to HTML conversion with sanitization +export default function markdownToHtml(markdown: string) { + const rawHtml = marked.parse(markdown); + console.log(rawHtml); + return DOMPurify.sanitize(rawHtml); +} From aedcf4643f1e4668773d1dfb2fb8a182d266acb1 Mon Sep 17 00:00:00 2001 From: michaelessiet Date: Mon, 30 Dec 2024 12:07:02 +0100 Subject: [PATCH 5/7] fix: rawHtml type --- examples/agent-kit-nextjs-langchain/utils/markdownToHTML.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/agent-kit-nextjs-langchain/utils/markdownToHTML.ts b/examples/agent-kit-nextjs-langchain/utils/markdownToHTML.ts index f62268c..dc265b1 100644 --- a/examples/agent-kit-nextjs-langchain/utils/markdownToHTML.ts +++ b/examples/agent-kit-nextjs-langchain/utils/markdownToHTML.ts @@ -26,6 +26,5 @@ marked.setOptions(markedOptions); // Basic markdown to HTML conversion with sanitization export default function markdownToHtml(markdown: string) { const rawHtml = marked.parse(markdown); - console.log(rawHtml); - return DOMPurify.sanitize(rawHtml); + return DOMPurify.sanitize(rawHtml as string); } From b13985f31d8d56d8fbb6a645d217021f8373e23e Mon Sep 17 00:00:00 2001 From: michaelessiet Date: Mon, 30 Dec 2024 22:19:38 +0100 Subject: [PATCH 6/7] fix: deploy to vercel readme button --- examples/agent-kit-nextjs-langchain/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/agent-kit-nextjs-langchain/README.md b/examples/agent-kit-nextjs-langchain/README.md index 35a905d..fafec02 100644 --- a/examples/agent-kit-nextjs-langchain/README.md +++ b/examples/agent-kit-nextjs-langchain/README.md @@ -1,7 +1,7 @@ # SolanaAgentKit 🦜️🔗 LangChain + Next.js Starter Template [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/michaelessiet/solana-agent-nextjs-starter-langchain) -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmichaelessiet%2Fsolana-agent-nextjs-starter-langchain) +[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fsendaifun%2Fsolana-agent-kit%2Ftree%2Fmain%2Fexamples%2Fagent-kit-nextjs-langchain&env=OPENAI_API_KEY,RPC_URL,SOLANA_PRIVATE_KEY&project-name=solana-agent-kit&repository-name=sak-yourprojectname) This template scaffolds a SolanaAgentKit + LangChain.js + Next.js starter app. From f1e4fb21acb2d99366152dd620396b99ab137cc0 Mon Sep 17 00:00:00 2001 From: aryan Date: Tue, 31 Dec 2024 23:54:31 +0530 Subject: [PATCH 7/7] depreceated issue --- docs/assets/hierarchy.js | 1 + docs/assets/icons.js | 2 +- docs/assets/icons.svg | 2 +- docs/assets/main.js | 10 +- docs/assets/navigation.js | 2 +- docs/assets/search.js | 2 +- docs/assets/style.css | 2827 +++++++++-------- docs/classes/SolanaAgentKit.html | 91 +- docs/functions/createSolanaTools.html | 2 +- docs/index.html | 50 +- docs/interfaces/CollectionDeployment.html | 4 +- docs/interfaces/CollectionOptions.html | 6 +- docs/interfaces/Config.html | 4 + docs/interfaces/Creator.html | 4 +- docs/interfaces/FetchPriceResponse.html | 8 +- docs/interfaces/GibworkCreateTaskReponse.html | 6 +- docs/interfaces/JupiterTokenData.html | 6 +- .../LuloAccountDetailsResponse.html | 10 +- .../interfaces/MintCollectionNFTResponse.html | 4 +- docs/interfaces/PumpFunTokenOptions.html | 8 +- docs/interfaces/PumpfunLaunchResponse.html | 6 +- docs/interfaces/PythFetchPriceResponse.html | 6 +- docs/modules.html | 15 +- package.json | 2 +- src/agent/index.ts | 25 +- test/index.ts | 2 +- 26 files changed, 1622 insertions(+), 1483 deletions(-) create mode 100644 docs/assets/hierarchy.js create mode 100644 docs/interfaces/Config.html diff --git a/docs/assets/hierarchy.js b/docs/assets/hierarchy.js new file mode 100644 index 0000000..fb85f0a --- /dev/null +++ b/docs/assets/hierarchy.js @@ -0,0 +1 @@ +window.hierarchyData = "eJyrVirKzy8pVrKKjtVRKkpNy0lNLsnMzytWsqqurQUAmx4Kpg==" \ No newline at end of file diff --git a/docs/assets/icons.js b/docs/assets/icons.js index 3dfbd32..58882d7 100644 --- a/docs/assets/icons.js +++ b/docs/assets/icons.js @@ -3,7 +3,7 @@ function addIcons() { if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons); const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg")); - svg.innerHTML = `MMNEPVFCICPMFPCPTTAAATR`; + svg.innerHTML = `MMNEPVFCICPMFPCPTTAAATR`; svg.style.display = "none"; if (location.protocol === "file:") updateUseElements(); } diff --git a/docs/assets/icons.svg b/docs/assets/icons.svg index a19417d..50ad579 100644 --- a/docs/assets/icons.svg +++ b/docs/assets/icons.svg @@ -1 +1 @@ -MMNEPVFCICPMFPCPTTAAATR \ No newline at end of file +MMNEPVFCICPMFPCPTTAAATR \ No newline at end of file diff --git a/docs/assets/main.js b/docs/assets/main.js index 99097a0..4f59cd9 100644 --- a/docs/assets/main.js +++ b/docs/assets/main.js @@ -1,9 +1,9 @@ "use strict"; -window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings."}; -"use strict";(()=>{var Pe=Object.create;var ie=Object.defineProperty;var Oe=Object.getOwnPropertyDescriptor;var _e=Object.getOwnPropertyNames;var Re=Object.getPrototypeOf,Me=Object.prototype.hasOwnProperty;var Fe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var De=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of _e(e))!Me.call(t,i)&&i!==n&&ie(t,i,{get:()=>e[i],enumerable:!(r=Oe(e,i))||r.enumerable});return t};var Ae=(t,e,n)=>(n=t!=null?Pe(Re(t)):{},De(e||!t||!t.__esModule?ie(n,"default",{value:t,enumerable:!0}):n,t));var ue=Fe((ae,le)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),p;m in s.node.edges?p=s.node.edges[m]:(p=new t.TokenSet,s.node.edges[m]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof ae=="object"?le.exports=n():e.lunr=n()}(this,function(){return t})})()});var se=[];function G(t,e){se.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){se.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!Ve(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function Ve(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var oe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var pe=Ae(ue());async function ce(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=pe.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function fe(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{ce(e,t)}),ce(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");i.addEventListener("mouseup",()=>{te(t)}),r.addEventListener("focus",()=>t.classList.add("has-focus")),He(t,i,r,e)}function He(t,e,n,r){n.addEventListener("input",oe(()=>{Ne(t,e,n,r)},200)),n.addEventListener("keydown",i=>{i.key=="Enter"?Be(e,t):i.key=="ArrowUp"?(de(e,n,-1),i.preventDefault()):i.key==="ArrowDown"&&(de(e,n,1),i.preventDefault())}),document.body.addEventListener("keypress",i=>{i.altKey||i.ctrlKey||i.metaKey||!n.matches(":focus")&&i.key==="/"&&(i.preventDefault(),n.focus())}),document.body.addEventListener("keyup",i=>{t.classList.contains("has-focus")&&(i.key==="Escape"||!e.matches(":focus-within")&&!n.matches(":focus"))&&(n.blur(),te(t))})}function te(t){t.classList.remove("has-focus")}function Ne(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=he(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` - ${he(l.parent,i)}.${d}`);let m=document.createElement("li");m.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=u+d,m.append(p),p.addEventListener("focus",()=>{e.querySelector(".current")?.classList.remove("current"),m.classList.add("current")}),e.appendChild(m)}}function de(t,e,n){let r=t.querySelector(".current");if(!r)r=t.querySelector(n==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let i=r;if(n===1)do i=i.nextElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);else do i=i.previousElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);i?(r.classList.remove("current"),i.classList.add("current")):n===-1&&(r.classList.remove("current"),e.focus())}}function Be(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),te(e)}}function he(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ee(t.substring(s,o)),`${ee(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(ee(t.substring(s))),i.join("")}var je={"&":"&","<":"<",">":">","'":"'",'"':"""};function ee(t){return t.replace(/[&<>"'"]/g,e=>je[e])}var I=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",ye="mousemove",N="mouseup",J={x:0,y:0},me=!1,ne=!1,qe=!1,D=!1,ve=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(ve?"is-mobile":"not-mobile");ve&&"ontouchstart"in document.documentElement&&(qe=!0,F="touchstart",ye="touchmove",N="touchend");document.addEventListener(F,t=>{ne=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(ye,t=>{if(ne&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(N,()=>{ne=!1});document.addEventListener("click",t=>{me&&(t.preventDefault(),t.stopImmediatePropagation(),me=!1)});var X=class extends I{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(N,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(N,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var re;try{re=localStorage}catch{re={getItem(){return null},setItem(){}}}var Q=re;var ge=document.head.appendChild(document.createElement("style"));ge.dataset.for="filters";var Y=class extends I{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ge.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } -`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function Ee(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,xe(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),xe(t.value)})}function xe(t){document.documentElement.dataset.theme=t}var K;function we(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Le),Le())}async function Le(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();K=t.dataset.base,K.endsWith("/")||(K+="/"),t.innerHTML="";for(let s of i)Se(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Se(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',be(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)Se(u,l,i)}else be(t,r,t.class)}function be(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=K+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else{let r=e.appendChild(document.createElement("span"));r.innerHTML='',r.appendChild(document.createElement("span")).textContent=t.text}}G(X,"a[data-toggle]");G(Z,".tsd-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Te=document.getElementById("tsd-theme");Te&&Ee(Te);var $e=new U;Object.defineProperty(window,"app",{value:$e});fe();we();})(); +window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings.","hierarchy_expand":"Expand","hierarchy_collapse":"Collapse"}; +"use strict";(()=>{var De=Object.create;var le=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var Ne=Object.getOwnPropertyNames;var Ve=Object.getPrototypeOf,Be=Object.prototype.hasOwnProperty;var qe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var je=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ne(e))!Be.call(t,i)&&i!==n&&le(t,i,{get:()=>e[i],enumerable:!(r=Fe(e,i))||r.enumerable});return t};var $e=(t,e,n)=>(n=t!=null?De(Ve(t)):{},je(e||!t||!t.__esModule?le(n,"default",{value:t,enumerable:!0}):n,t));var pe=qe((de,he)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,c],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[c+1]*i[d+1],c+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}s.str.length==1&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),p;m in s.node.edges?p=s.node.edges[m]:(p=new t.TokenSet,s.node.edges[m]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof de=="object"?he.exports=n():e.lunr=n()}(this,function(){return t})})()});window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse"};var ce=[];function G(t,e){ce.push({selector:e,constructor:t})}var J=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){ce.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!ze(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function ze(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var ue=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var ge=$e(pe(),1);async function H(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}async function fe(t,e){if(!window.searchData)return;let n=await H(window.searchData);t.data=n,t.index=ge.Index.load(n.index),e.classList.remove("loading"),e.classList.add("ready")}function ve(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:document.documentElement.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{fe(e,t)}),fe(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");i.addEventListener("mouseup",()=>{re(t)}),r.addEventListener("focus",()=>t.classList.add("has-focus")),We(t,i,r,e)}function We(t,e,n,r){n.addEventListener("input",ue(()=>{Ue(t,e,n,r)},200)),n.addEventListener("keydown",i=>{i.key=="Enter"?Je(e,t):i.key=="ArrowUp"?(me(e,n,-1),i.preventDefault()):i.key==="ArrowDown"&&(me(e,n,1),i.preventDefault())}),document.body.addEventListener("keypress",i=>{i.altKey||i.ctrlKey||i.metaKey||!n.matches(":focus")&&i.key==="/"&&(i.preventDefault(),n.focus())}),document.body.addEventListener("keyup",i=>{t.classList.contains("has-focus")&&(i.key==="Escape"||!e.matches(":focus-within")&&!n.matches(":focus"))&&(n.blur(),re(t))})}function re(t){t.classList.remove("has-focus")}function Ue(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=ye(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` + ${ye(l.parent,i)}.${d}`);let m=document.createElement("li");m.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=c+d,m.append(p),p.addEventListener("focus",()=>{e.querySelector(".current")?.classList.remove("current"),m.classList.add("current")}),e.appendChild(m)}}function me(t,e,n){let r=t.querySelector(".current");if(!r)r=t.querySelector(n==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let i=r;if(n===1)do i=i.nextElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);else do i=i.previousElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);i?(r.classList.remove("current"),i.classList.add("current")):n===-1&&(r.classList.remove("current"),e.focus())}}function Je(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),re(e)}}function ye(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ne(t.substring(s,o)),`${ne(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(ne(t.substring(s))),i.join("")}var Ge={"&":"&","<":"<",">":">","'":"'",'"':"""};function ne(t){return t.replace(/[&<>"'"]/g,e=>Ge[e])}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var A="mousedown",Ee="mousemove",B="mouseup",X={x:0,y:0},xe=!1,ie=!1,Xe=!1,D=!1,Le=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(Le?"is-mobile":"not-mobile");Le&&"ontouchstart"in document.documentElement&&(Xe=!0,A="touchstart",Ee="touchmove",B="touchend");document.addEventListener(A,t=>{ie=!0,D=!1;let e=A=="touchstart"?t.targetTouches[0]:t;X.y=e.pageY||0,X.x=e.pageX||0});document.addEventListener(Ee,t=>{if(ie&&!D){let e=A=="touchstart"?t.targetTouches[0]:t,n=X.x-(e.pageX||0),r=X.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{ie=!1});document.addEventListener("click",t=>{xe&&(t.preventDefault(),t.stopImmediatePropagation(),xe=!1)});var Y=class extends I{active;className;constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(B,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(A,n=>this.onDocumentPointerDown(n)),document.addEventListener(B,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var se;try{se=localStorage}catch{se={getItem(){return null},setItem(){}}}var C=se;var be=document.head.appendChild(document.createElement("style"));be.dataset.for="filters";var Z=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),be.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=C.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){C.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var oe=new Map,ae=class{open;accordions=[];key;constructor(e,n){this.key=e,this.open=n}add(e){this.accordions.push(e),e.open=this.open,e.addEventListener("toggle",()=>{this.toggle(e.open)})}toggle(e){for(let n of this.accordions)n.open=e;C.setItem(this.key,e.toString())}},K=class extends I{constructor(e){super(e);let n=this.el.querySelector("summary"),r=n.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)});let i=`tsd-accordion-${n.dataset.key??n.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`,s;if(oe.has(i))s=oe.get(i);else{let o=C.getItem(i),a=o?o==="true":this.el.open;s=new ae(i,a),oe.set(i,s)}s.add(this.el)}};function Se(t){let e=C.getItem("tsd-theme")||"os";t.value=e,we(e),t.addEventListener("change",()=>{C.setItem("tsd-theme",t.value),we(t.value)})}function we(t){document.documentElement.dataset.theme=t}var ee;function Ce(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Te),Te())}async function Te(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let e=await H(window.navigationData);ee=document.documentElement.dataset.base,ee.endsWith("/")||(ee+="/"),t.innerHTML="";for(let n of e)Ie(n,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Ie(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',ke(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let c of t.children)Ie(c,l,i)}else ke(t,r,t.class)}function ke(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=ee+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else{let r=e.appendChild(document.createElement("span"));r.innerHTML='',r.appendChild(document.createElement("span")).textContent=t.text}}var te=document.documentElement.dataset.base;te.endsWith("/")||(te+="/");function Pe(){document.querySelector(".tsd-full-hierarchy")?Ye():document.querySelector(".tsd-hierarchy")&&Ze()}function Ye(){document.addEventListener("click",r=>{let i=r.target;for(;i.parentElement&&i.parentElement.tagName!="LI";)i=i.parentElement;i.dataset.dropdown&&(i.dataset.dropdown=String(i.dataset.dropdown!=="true"))});let t=new Map,e=new Set;for(let r of document.querySelectorAll(".tsd-full-hierarchy [data-refl]")){let i=r.querySelector("ul");t.has(r.dataset.refl)?e.add(r.dataset.refl):i&&t.set(r.dataset.refl,i)}for(let r of e)n(r);function n(r){let i=t.get(r).cloneNode(!0);i.querySelectorAll("[id]").forEach(s=>{s.removeAttribute("id")}),i.querySelectorAll("[data-dropdown]").forEach(s=>{s.dataset.dropdown="false"});for(let s of document.querySelectorAll(`[data-refl="${r}"]`)){let o=tt(),a=s.querySelector("ul");s.insertBefore(o,a),o.dataset.dropdown=String(!!a),a||s.appendChild(i.cloneNode(!0))}}}function Ze(){let t=document.getElementById("tsd-hierarchy-script");t&&(t.addEventListener("load",Qe),Qe())}async function Qe(){let t=document.querySelector(".tsd-panel.tsd-hierarchy:has(h4 a)");if(!t||!window.hierarchyData)return;let e=+t.dataset.refl,n=await H(window.hierarchyData),r=t.querySelector("ul"),i=document.createElement("ul");if(i.classList.add("tsd-hierarchy"),Ke(i,n,e),r.querySelectorAll("li").length==i.querySelectorAll("li").length)return;let s=document.createElement("span");s.classList.add("tsd-hierarchy-toggle"),s.textContent=window.translations.hierarchy_expand,t.querySelector("h4 a")?.insertAdjacentElement("afterend",s),s.insertAdjacentText("beforebegin",", "),s.addEventListener("click",()=>{s.textContent===window.translations.hierarchy_expand?(r.insertAdjacentElement("afterend",i),r.remove(),s.textContent=window.translations.hierarchy_collapse):(i.insertAdjacentElement("afterend",r),i.remove(),s.textContent=window.translations.hierarchy_expand)})}function Ke(t,e,n){let r=e.roots.filter(i=>et(e,i,n));for(let i of r)t.appendChild(Oe(e,i,n))}function Oe(t,e,n,r=new Set){if(r.has(e))return;r.add(e);let i=t.reflections[e],s=document.createElement("li");if(s.classList.add("tsd-hierarchy-item"),e===n){let o=s.appendChild(document.createElement("span"));o.textContent=i.name,o.classList.add("tsd-hierarchy-target")}else{for(let a of i.uniqueNameParents||[]){let l=t.reflections[a],c=s.appendChild(document.createElement("a"));c.textContent=l.name,c.href=te+l.url,c.className=l.class+" tsd-signature-type",s.append(document.createTextNode("."))}let o=s.appendChild(document.createElement("a"));o.textContent=t.reflections[e].name,o.href=te+i.url,o.className=i.class+" tsd-signature-type"}if(i.children){let o=s.appendChild(document.createElement("ul"));o.classList.add("tsd-hierarchy");for(let a of i.children){let l=Oe(t,a,n,r);l&&o.appendChild(l)}}return r.delete(e),s}function et(t,e,n){if(e===n)return!0;let r=new Set,i=[t.reflections[e]];for(;i.length;){let s=i.pop();if(!r.has(s)){r.add(s);for(let o of s.children||[]){if(o===n)return!0;i.push(t.reflections[o])}}}return!1}function tt(){let t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width","20"),t.setAttribute("height","20"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.innerHTML='',t}G(Y,"a[data-toggle]");G(K,".tsd-accordion");G(Z,".tsd-filter-item input[type=checkbox]");var _e=document.getElementById("tsd-theme");_e&&Se(_e);var nt=new J;Object.defineProperty(window,"app",{value:nt});ve();Ce();Pe();})(); /*! Bundled license information: lunr/lunr.js: diff --git a/docs/assets/navigation.js b/docs/assets/navigation.js index 54693ba..d9dd0b7 100644 --- a/docs/assets/navigation.js +++ b/docs/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAE42TwU7DMAyG3yXniooJJtTbRFUkGDCN3hCHEFwaNXWixBFMaO+O6BCsLPW45OIv3x/ZzuOHIHgnUYgHayTKxSsg3WgSmXCSWlEIZWQIEPJx/aSl3ohMdBpfRHE6u9hmP6ZLawwo0hZLcMZuesA9n0YC30gFIU+BY/HsfJ4U37uvMxyxflOs0oMk69OiXY27XgGpduW1gjUEZzFA0nSIcdIr/fxmfTfEQy1Dt4Zp9RTMBVxHpwl8bTvAUpJMiv9CnHAZjV0oZSNSCSS1CWw7pnEu5FYj/c72rqrZjEmai1jF3jURlzKiall9kjymriIO7eS2N8Gx2g21/1zCNMrJ1bBUu49fW2v2XtxEHBob8gNobJyfbZ8+AWWuiIJlBAAA" \ No newline at end of file +window.navigationData = "eJyNlMFKw0AQht9lz8Fg0SK5FUMFrVpqbuJhXSfNks3ssjuLFum7S1PRxm6mXnKZb74/DD/7/CkIPkgU4skaiXK2BqQ7TSITTlIjCqGMDAFCPpyfNdQZkYlW45sozidX2+zHdG2NAUXaYgnO2E0HeODTSOBrqSDkKXAonlxOk+JHt/uGE9Zvildirdcjnt2IXfYgyfr09n7Grc+BVLP0WsEKgrMYIGk6xjjpjX59t77t46GSoV3BuHoM5gJuo9MEvrItYClJJsV/IU64iMbOlLIRqQSS2gT2HOM4F3KvkX6L8TCv2IxRmotYxs7VERcyompYfZI8pZ5H7M/JVT/BsdoNNf8sYRrl5Kov1f7VqKw1B39cR+wPG/IjaGicXmxfvgDluqEc" \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js index 443f1f7..b50d74f 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "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"; \ No newline at end of file diff --git a/docs/assets/style.css b/docs/assets/style.css index 178bfb0..7f80f3d 100644 --- a/docs/assets/style.css +++ b/docs/assets/style.css @@ -1,115 +1,256 @@ -:root { - /* Light */ - --light-color-background: #f2f4f8; - --light-color-background-secondary: #eff0f1; - --light-color-warning-text: #222; - --light-color-background-warning: #e6e600; - --light-color-accent: #c5c7c9; - --light-color-active-menu-item: var(--light-color-accent); - --light-color-text: #222; - --light-color-text-aside: #6e6e6e; - - --light-color-icon-background: var(--light-color-background); - --light-color-icon-text: var(--light-color-text); - - --light-color-comment-tag-text: var(--light-color-text); - --light-color-comment-tag: var(--light-color-background); - - --light-color-link: #1f70c2; - --light-color-focus-outline: #3584e4; - - --light-color-ts-keyword: #056bd6; - --light-color-ts-project: #b111c9; - --light-color-ts-module: var(--light-color-ts-project); - --light-color-ts-namespace: var(--light-color-ts-project); - --light-color-ts-enum: #7e6f15; - --light-color-ts-enum-member: var(--light-color-ts-enum); - --light-color-ts-variable: #4760ec; - --light-color-ts-function: #572be7; - --light-color-ts-class: #1f70c2; - --light-color-ts-interface: #108024; - --light-color-ts-constructor: #4d7fff; - --light-color-ts-property: #ff984d; - --light-color-ts-method: #ff4db8; - --light-color-ts-reference: #ff4d82; - --light-color-ts-call-signature: var(--light-color-ts-method); - --light-color-ts-index-signature: var(--light-color-ts-property); - --light-color-ts-constructor-signature: var(--light-color-ts-constructor); - --light-color-ts-parameter: var(--light-color-ts-variable); - /* type literal not included as links will never be generated to it */ - --light-color-ts-type-parameter: #a55c0e; - --light-color-ts-accessor: #ff4d4d; - --light-color-ts-get-signature: var(--light-color-ts-accessor); - --light-color-ts-set-signature: var(--light-color-ts-accessor); - --light-color-ts-type-alias: #d51270; - /* reference not included as links will be colored with the kind that it points to */ - --light-color-document: #000000; - - --light-external-icon: url("data:image/svg+xml;utf8,"); - --light-color-scheme: light; - - /* Dark */ - --dark-color-background: #2b2e33; - --dark-color-background-secondary: #1e2024; - --dark-color-background-warning: #bebe00; - --dark-color-warning-text: #222; - --dark-color-accent: #9096a2; - --dark-color-active-menu-item: #5d5d6a; - --dark-color-text: #f5f5f5; - --dark-color-text-aside: #dddddd; - - --dark-color-icon-background: var(--dark-color-background-secondary); - --dark-color-icon-text: var(--dark-color-text); - - --dark-color-comment-tag-text: var(--dark-color-text); - --dark-color-comment-tag: var(--dark-color-background); - - --dark-color-link: #00aff4; - --dark-color-focus-outline: #4c97f2; - - --dark-color-ts-keyword: #3399ff; - --dark-color-ts-project: #e358ff; - --dark-color-ts-module: var(--dark-color-ts-project); - --dark-color-ts-namespace: var(--dark-color-ts-project); - --dark-color-ts-enum: #f4d93e; - --dark-color-ts-enum-member: var(--dark-color-ts-enum); - --dark-color-ts-variable: #798dff; - --dark-color-ts-function: #a280ff; - --dark-color-ts-class: #8ac4ff; - --dark-color-ts-interface: #6cff87; - --dark-color-ts-constructor: #4d7fff; - --dark-color-ts-property: #ff984d; - --dark-color-ts-method: #ff4db8; - --dark-color-ts-reference: #ff4d82; - --dark-color-ts-call-signature: var(--dark-color-ts-method); - --dark-color-ts-index-signature: var(--dark-color-ts-property); - --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); - --dark-color-ts-parameter: var(--dark-color-ts-variable); - /* type literal not included as links will never be generated to it */ - --dark-color-ts-type-parameter: #e07d13; - --dark-color-ts-accessor: #ff4d4d; - --dark-color-ts-get-signature: var(--dark-color-ts-accessor); - --dark-color-ts-set-signature: var(--dark-color-ts-accessor); - --dark-color-ts-type-alias: #ff6492; - /* reference not included as links will be colored with the kind that it points to */ - --dark-color-document: #ffffff; - - --dark-external-icon: url("data:image/svg+xml;utf8,"); - --dark-color-scheme: dark; -} - -@media (prefers-color-scheme: light) { +@layer typedoc { :root { + /* Light */ + --light-color-background: #f2f4f8; + --light-color-background-secondary: #eff0f1; + --light-color-warning-text: #222; + --light-color-background-warning: #e6e600; + --light-color-accent: #c5c7c9; + --light-color-active-menu-item: var(--light-color-accent); + --light-color-text: #222; + --light-color-text-aside: #6e6e6e; + + --light-color-icon-background: var(--light-color-background); + --light-color-icon-text: var(--light-color-text); + + --light-color-comment-tag-text: var(--light-color-text); + --light-color-comment-tag: var(--light-color-background); + + --light-color-link: #1f70c2; + --light-color-focus-outline: #3584e4; + + --light-color-ts-keyword: #056bd6; + --light-color-ts-project: #b111c9; + --light-color-ts-module: var(--light-color-ts-project); + --light-color-ts-namespace: var(--light-color-ts-project); + --light-color-ts-enum: #7e6f15; + --light-color-ts-enum-member: var(--light-color-ts-enum); + --light-color-ts-variable: #4760ec; + --light-color-ts-function: #572be7; + --light-color-ts-class: #1f70c2; + --light-color-ts-interface: #108024; + --light-color-ts-constructor: var(--light-color-ts-class); + --light-color-ts-property: #9f5f30; + --light-color-ts-method: #be3989; + --light-color-ts-reference: #ff4d82; + --light-color-ts-call-signature: var(--light-color-ts-method); + --light-color-ts-index-signature: var(--light-color-ts-property); + --light-color-ts-constructor-signature: var( + --light-color-ts-constructor + ); + --light-color-ts-parameter: var(--light-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --light-color-ts-type-parameter: #a55c0e; + --light-color-ts-accessor: #c73c3c; + --light-color-ts-get-signature: var(--light-color-ts-accessor); + --light-color-ts-set-signature: var(--light-color-ts-accessor); + --light-color-ts-type-alias: #d51270; + /* reference not included as links will be colored with the kind that it points to */ + --light-color-document: #000000; + + --light-color-alert-note: #0969d9; + --light-color-alert-tip: #1a7f37; + --light-color-alert-important: #8250df; + --light-color-alert-warning: #9a6700; + --light-color-alert-caution: #cf222e; + + --light-external-icon: url("data:image/svg+xml;utf8,"); + --light-color-scheme: light; + + /* Dark */ + --dark-color-background: #2b2e33; + --dark-color-background-secondary: #1e2024; + --dark-color-background-warning: #bebe00; + --dark-color-warning-text: #222; + --dark-color-accent: #9096a2; + --dark-color-active-menu-item: #5d5d6a; + --dark-color-text: #f5f5f5; + --dark-color-text-aside: #dddddd; + + --dark-color-icon-background: var(--dark-color-background-secondary); + --dark-color-icon-text: var(--dark-color-text); + + --dark-color-comment-tag-text: var(--dark-color-text); + --dark-color-comment-tag: var(--dark-color-background); + + --dark-color-link: #00aff4; + --dark-color-focus-outline: #4c97f2; + + --dark-color-ts-keyword: #3399ff; + --dark-color-ts-project: #e358ff; + --dark-color-ts-module: var(--dark-color-ts-project); + --dark-color-ts-namespace: var(--dark-color-ts-project); + --dark-color-ts-enum: #f4d93e; + --dark-color-ts-enum-member: var(--dark-color-ts-enum); + --dark-color-ts-variable: #798dff; + --dark-color-ts-function: #a280ff; + --dark-color-ts-class: #8ac4ff; + --dark-color-ts-interface: #6cff87; + --dark-color-ts-constructor: var(--dark-color-ts-class); + --dark-color-ts-property: #ff984d; + --dark-color-ts-method: #ff4db8; + --dark-color-ts-reference: #ff4d82; + --dark-color-ts-call-signature: var(--dark-color-ts-method); + --dark-color-ts-index-signature: var(--dark-color-ts-property); + --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); + --dark-color-ts-parameter: var(--dark-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --dark-color-ts-type-parameter: #e07d13; + --dark-color-ts-accessor: #ff6060; + --dark-color-ts-get-signature: var(--dark-color-ts-accessor); + --dark-color-ts-set-signature: var(--dark-color-ts-accessor); + --dark-color-ts-type-alias: #ff6492; + /* reference not included as links will be colored with the kind that it points to */ + --dark-color-document: #ffffff; + + --dark-color-alert-note: #0969d9; + --dark-color-alert-tip: #1a7f37; + --dark-color-alert-important: #8250df; + --dark-color-alert-warning: #9a6700; + --dark-color-alert-caution: #cf222e; + + --dark-external-icon: url("data:image/svg+xml;utf8,"); + --dark-color-scheme: dark; + } + + @media (prefers-color-scheme: light) { + :root { + --color-background: var(--light-color-background); + --color-background-secondary: var( + --light-color-background-secondary + ); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + + --color-icon-background: var(--light-color-icon-background); + --color-icon-text: var(--light-color-icon-text); + + --color-comment-tag-text: var(--light-color-text); + --color-comment-tag: var(--light-color-background); + + --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-project: var(--light-color-ts-project); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-reference: var(--light-color-ts-reference); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); + + --color-alert-note: var(--light-color-alert-note); + --color-alert-tip: var(--light-color-alert-tip); + --color-alert-important: var(--light-color-alert-important); + --color-alert-warning: var(--light-color-alert-warning); + --color-alert-caution: var(--light-color-alert-caution); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); + } + } + + @media (prefers-color-scheme: dark) { + :root { + --color-background: var(--dark-color-background); + --color-background-secondary: var( + --dark-color-background-secondary + ); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + + --color-icon-background: var(--dark-color-icon-background); + --color-icon-text: var(--dark-color-icon-text); + + --color-comment-tag-text: var(--dark-color-text); + --color-comment-tag: var(--dark-color-background); + + --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-project: var(--dark-color-ts-project); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-reference: var(--dark-color-ts-reference); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); + + --color-alert-note: var(--dark-color-alert-note); + --color-alert-tip: var(--dark-color-alert-tip); + --color-alert-important: var(--dark-color-alert-important); + --color-alert-warning: var(--dark-color-alert-warning); + --color-alert-caution: var(--dark-color-alert-caution); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); + } + } + + html { + color-scheme: var(--color-scheme); + } + + body { + margin: 0; + } + + :root[data-theme="light"] { --color-background: var(--light-color-background); --color-background-secondary: var(--light-color-background-secondary); --color-background-warning: var(--light-color-background-warning); --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); --color-accent: var(--light-color-accent); --color-active-menu-item: var(--light-color-active-menu-item); --color-text: var(--light-color-text); --color-text-aside: var(--light-color-text-aside); - - --color-icon-background: var(--light-color-icon-background); --color-icon-text: var(--light-color-icon-text); --color-comment-tag-text: var(--light-color-text); @@ -145,23 +286,26 @@ --color-ts-type-alias: var(--light-color-ts-type-alias); --color-document: var(--light-color-document); + --color-note: var(--light-color-note); + --color-tip: var(--light-color-tip); + --color-important: var(--light-color-important); + --color-warning: var(--light-color-warning); + --color-caution: var(--light-color-caution); + --external-icon: var(--light-external-icon); --color-scheme: var(--light-color-scheme); } -} -@media (prefers-color-scheme: dark) { - :root { + :root[data-theme="dark"] { --color-background: var(--dark-color-background); --color-background-secondary: var(--dark-color-background-secondary); --color-background-warning: var(--dark-color-background-warning); --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); --color-accent: var(--dark-color-accent); --color-active-menu-item: var(--dark-color-active-menu-item); --color-text: var(--dark-color-text); --color-text-aside: var(--dark-color-text-aside); - - --color-icon-background: var(--dark-color-icon-background); --color-icon-text: var(--dark-color-icon-text); --color-comment-tag-text: var(--dark-color-text); @@ -197,1297 +341,1270 @@ --color-ts-type-alias: var(--dark-color-ts-type-alias); --color-document: var(--dark-color-document); + --color-note: var(--dark-color-note); + --color-tip: var(--dark-color-tip); + --color-important: var(--dark-color-important); + --color-warning: var(--dark-color-warning); + --color-caution: var(--dark-color-caution); + --external-icon: var(--dark-external-icon); --color-scheme: var(--dark-color-scheme); } -} -html { - color-scheme: var(--color-scheme); -} - -body { - margin: 0; -} - -:root[data-theme="light"] { - --color-background: var(--light-color-background); - --color-background-secondary: var(--light-color-background-secondary); - --color-background-warning: var(--light-color-background-warning); - --color-warning-text: var(--light-color-warning-text); - --color-icon-background: var(--light-color-icon-background); - --color-accent: var(--light-color-accent); - --color-active-menu-item: var(--light-color-active-menu-item); - --color-text: var(--light-color-text); - --color-text-aside: var(--light-color-text-aside); - --color-icon-text: var(--light-color-icon-text); - - --color-comment-tag-text: var(--light-color-text); - --color-comment-tag: var(--light-color-background); - - --color-link: var(--light-color-link); - --color-focus-outline: var(--light-color-focus-outline); - - --color-ts-keyword: var(--light-color-ts-keyword); - --color-ts-project: var(--light-color-ts-project); - --color-ts-module: var(--light-color-ts-module); - --color-ts-namespace: var(--light-color-ts-namespace); - --color-ts-enum: var(--light-color-ts-enum); - --color-ts-enum-member: var(--light-color-ts-enum-member); - --color-ts-variable: var(--light-color-ts-variable); - --color-ts-function: var(--light-color-ts-function); - --color-ts-class: var(--light-color-ts-class); - --color-ts-interface: var(--light-color-ts-interface); - --color-ts-constructor: var(--light-color-ts-constructor); - --color-ts-property: var(--light-color-ts-property); - --color-ts-method: var(--light-color-ts-method); - --color-ts-reference: var(--light-color-ts-reference); - --color-ts-call-signature: var(--light-color-ts-call-signature); - --color-ts-index-signature: var(--light-color-ts-index-signature); - --color-ts-constructor-signature: var( - --light-color-ts-constructor-signature - ); - --color-ts-parameter: var(--light-color-ts-parameter); - --color-ts-type-parameter: var(--light-color-ts-type-parameter); - --color-ts-accessor: var(--light-color-ts-accessor); - --color-ts-get-signature: var(--light-color-ts-get-signature); - --color-ts-set-signature: var(--light-color-ts-set-signature); - --color-ts-type-alias: var(--light-color-ts-type-alias); - --color-document: var(--light-color-document); - - --external-icon: var(--light-external-icon); - --color-scheme: var(--light-color-scheme); -} - -:root[data-theme="dark"] { - --color-background: var(--dark-color-background); - --color-background-secondary: var(--dark-color-background-secondary); - --color-background-warning: var(--dark-color-background-warning); - --color-warning-text: var(--dark-color-warning-text); - --color-icon-background: var(--dark-color-icon-background); - --color-accent: var(--dark-color-accent); - --color-active-menu-item: var(--dark-color-active-menu-item); - --color-text: var(--dark-color-text); - --color-text-aside: var(--dark-color-text-aside); - --color-icon-text: var(--dark-color-icon-text); - - --color-comment-tag-text: var(--dark-color-text); - --color-comment-tag: var(--dark-color-background); - - --color-link: var(--dark-color-link); - --color-focus-outline: var(--dark-color-focus-outline); - - --color-ts-keyword: var(--dark-color-ts-keyword); - --color-ts-project: var(--dark-color-ts-project); - --color-ts-module: var(--dark-color-ts-module); - --color-ts-namespace: var(--dark-color-ts-namespace); - --color-ts-enum: var(--dark-color-ts-enum); - --color-ts-enum-member: var(--dark-color-ts-enum-member); - --color-ts-variable: var(--dark-color-ts-variable); - --color-ts-function: var(--dark-color-ts-function); - --color-ts-class: var(--dark-color-ts-class); - --color-ts-interface: var(--dark-color-ts-interface); - --color-ts-constructor: var(--dark-color-ts-constructor); - --color-ts-property: var(--dark-color-ts-property); - --color-ts-method: var(--dark-color-ts-method); - --color-ts-reference: var(--dark-color-ts-reference); - --color-ts-call-signature: var(--dark-color-ts-call-signature); - --color-ts-index-signature: var(--dark-color-ts-index-signature); - --color-ts-constructor-signature: var( - --dark-color-ts-constructor-signature - ); - --color-ts-parameter: var(--dark-color-ts-parameter); - --color-ts-type-parameter: var(--dark-color-ts-type-parameter); - --color-ts-accessor: var(--dark-color-ts-accessor); - --color-ts-get-signature: var(--dark-color-ts-get-signature); - --color-ts-set-signature: var(--dark-color-ts-set-signature); - --color-ts-type-alias: var(--dark-color-ts-type-alias); - --color-document: var(--dark-color-document); - - --external-icon: var(--dark-external-icon); - --color-scheme: var(--dark-color-scheme); -} - -*:focus-visible, -.tsd-accordion-summary:focus-visible svg { - outline: 2px solid var(--color-focus-outline); -} - -.always-visible, -.always-visible .tsd-signatures { - display: inherit !important; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - line-height: 1.2; -} - -h1 { - font-size: 1.875rem; - margin: 0.67rem 0; -} - -h2 { - font-size: 1.5rem; - margin: 0.83rem 0; -} - -h3 { - font-size: 1.25rem; - margin: 1rem 0; -} - -h4 { - font-size: 1.05rem; - margin: 1.33rem 0; -} - -h5 { - font-size: 1rem; - margin: 1.5rem 0; -} - -h6 { - font-size: 0.875rem; - margin: 2.33rem 0; -} - -dl, -menu, -ol, -ul { - margin: 1em 0; -} - -dd { - margin: 0 0 0 40px; -} - -.container { - max-width: 1700px; - padding: 0 2rem; -} - -/* Footer */ -footer { - border-top: 1px solid var(--color-accent); - padding-top: 1rem; - padding-bottom: 1rem; - max-height: 3.5rem; -} -footer > p { - margin: 0 1em; -} - -.container-main { - margin: 0 auto; - /* toolbar, footer, margin */ - min-height: calc(100vh - 41px - 56px - 4rem); -} - -@keyframes fade-in { - from { - opacity: 0; + *:focus-visible, + .tsd-accordion-summary:focus-visible svg { + outline: 2px solid var(--color-focus-outline); } - to { + + .always-visible, + .always-visible .tsd-signatures { + display: inherit !important; + } + + h1, + h2, + h3, + h4, + h5, + h6 { + line-height: 1.2; + } + + h1 { + font-size: 1.875rem; + margin: 0.67rem 0; + } + + h2 { + font-size: 1.5rem; + margin: 0.83rem 0; + } + + h3 { + font-size: 1.25rem; + margin: 1rem 0; + } + + h4 { + font-size: 1.05rem; + margin: 1.33rem 0; + } + + h5 { + font-size: 1rem; + margin: 1.5rem 0; + } + + h6 { + font-size: 0.875rem; + margin: 2.33rem 0; + } + + dl, + menu, + ol, + ul { + margin: 1em 0; + } + + dd { + margin: 0 0 0 34px; + } + + .container { + max-width: 1700px; + padding: 0 2rem; + } + + /* Footer */ + footer { + border-top: 1px solid var(--color-accent); + padding-top: 1rem; + padding-bottom: 1rem; + max-height: 3.5rem; + } + footer > p { + margin: 0 1em; + } + + .container-main { + margin: 0 auto; + /* toolbar, footer, margin */ + min-height: calc(100vh - 41px - 56px - 4rem); + } + + @keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } + } + @keyframes fade-out { + from { + opacity: 1; + visibility: visible; + } + to { + opacity: 0; + } + } + @keyframes fade-in-delayed { + 0% { + opacity: 0; + } + 33% { + opacity: 0; + } + 100% { + opacity: 1; + } + } + @keyframes fade-out-delayed { + 0% { + opacity: 1; + visibility: visible; + } + 66% { + opacity: 0; + } + 100% { + opacity: 0; + } + } + @keyframes pop-in-from-right { + from { + transform: translate(100%, 0); + } + to { + transform: translate(0, 0); + } + } + @keyframes pop-out-to-right { + from { + transform: translate(0, 0); + visibility: visible; + } + to { + transform: translate(100%, 0); + } + } + body { + background: var(--color-background); + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", + Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + font-size: 16px; + color: var(--color-text); + } + + a { + color: var(--color-link); + text-decoration: none; + } + a:hover { + text-decoration: underline; + } + a.external[target="_blank"] { + background-image: var(--external-icon); + background-position: top 3px right; + background-repeat: no-repeat; + padding-right: 13px; + } + a.tsd-anchor-link { + color: var(--color-text); + } + + code, + pre { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 0.2em; + margin: 0; + font-size: 0.875rem; + border-radius: 0.8em; + } + + pre { + position: relative; + white-space: pre-wrap; + word-wrap: break-word; + padding: 10px; + border: 1px solid var(--color-accent); + margin-bottom: 8px; + } + pre code { + padding: 0; + font-size: 100%; + } + pre > button { + position: absolute; + top: 10px; + right: 10px; + opacity: 0; + transition: opacity 0.1s; + box-sizing: border-box; + } + pre:hover > button, + pre > button.visible { opacity: 1; } -} -@keyframes fade-out { - from { - opacity: 1; - visibility: visible; + + blockquote { + margin: 1em 0; + padding-left: 1em; + border-left: 4px solid gray; } - to { + + .tsd-typography { + line-height: 1.333em; + } + .tsd-typography ul { + list-style: square; + padding: 0 0 0 20px; + margin: 0; + } + .tsd-typography .tsd-index-panel h3, + .tsd-index-panel .tsd-typography h3, + .tsd-typography h4, + .tsd-typography h5, + .tsd-typography h6 { + font-size: 1em; + } + .tsd-typography h5, + .tsd-typography h6 { + font-weight: normal; + } + .tsd-typography p, + .tsd-typography ul, + .tsd-typography ol { + margin: 1em 0; + } + .tsd-typography table { + border-collapse: collapse; + border: none; + } + .tsd-typography td, + .tsd-typography th { + padding: 6px 13px; + border: 1px solid var(--color-accent); + } + .tsd-typography thead, + .tsd-typography tr:nth-child(even) { + background-color: var(--color-background-secondary); + } + + .tsd-alert { + padding: 8px 16px; + margin-bottom: 16px; + border-left: 0.25em solid var(--alert-color); + } + .tsd-alert blockquote > :last-child, + .tsd-alert > :last-child { + margin-bottom: 0; + } + .tsd-alert-title { + color: var(--alert-color); + display: inline-flex; + align-items: center; + } + .tsd-alert-title span { + margin-left: 4px; + } + + .tsd-alert-note { + --alert-color: var(--color-alert-note); + } + .tsd-alert-tip { + --alert-color: var(--color-alert-tip); + } + .tsd-alert-important { + --alert-color: var(--color-alert-important); + } + .tsd-alert-warning { + --alert-color: var(--color-alert-warning); + } + .tsd-alert-caution { + --alert-color: var(--color-alert-caution); + } + + .tsd-breadcrumb { + margin: 0; + padding: 0; + color: var(--color-text-aside); + } + .tsd-breadcrumb a { + color: var(--color-text-aside); + text-decoration: none; + } + .tsd-breadcrumb a:hover { + text-decoration: underline; + } + .tsd-breadcrumb li { + display: inline; + } + .tsd-breadcrumb li:after { + content: " / "; + } + + .tsd-comment-tags { + display: flex; + flex-direction: column; + } + dl.tsd-comment-tag-group { + display: flex; + align-items: center; + overflow: hidden; + margin: 0.5em 0; + } + dl.tsd-comment-tag-group dt { + display: flex; + margin-right: 0.5em; + font-size: 0.875em; + font-weight: normal; + } + dl.tsd-comment-tag-group dd { + margin: 0; + } + code.tsd-tag { + padding: 0.25em 0.4em; + border: 0.1em solid var(--color-accent); + margin-right: 0.25em; + font-size: 70%; + } + h1 code.tsd-tag:first-of-type { + margin-left: 0.25em; + } + + dl.tsd-comment-tag-group dd:before, + dl.tsd-comment-tag-group dd:after { + content: " "; + } + dl.tsd-comment-tag-group dd pre, + dl.tsd-comment-tag-group dd:after { + clear: both; + } + dl.tsd-comment-tag-group p { + margin: 0; + } + + .tsd-panel.tsd-comment .lead { + font-size: 1.1em; + line-height: 1.333em; + margin-bottom: 2em; + } + .tsd-panel.tsd-comment .lead:last-child { + margin-bottom: 0; + } + + .tsd-filter-visibility h4 { + font-size: 1rem; + padding-top: 0.75rem; + padding-bottom: 0.5rem; + margin: 0; + } + .tsd-filter-item:not(:last-child) { + margin-bottom: 0.5rem; + } + .tsd-filter-input { + display: flex; + width: -moz-fit-content; + width: fit-content; + align-items: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + } + .tsd-filter-input input[type="checkbox"] { + cursor: pointer; + position: absolute; + width: 1.5em; + height: 1.5em; opacity: 0; } -} -@keyframes fade-in-delayed { - 0% { - opacity: 0; + .tsd-filter-input input[type="checkbox"]:disabled { + pointer-events: none; } - 33% { - opacity: 0; - } - 100% { - opacity: 1; - } -} -@keyframes fade-out-delayed { - 0% { - opacity: 1; - visibility: visible; - } - 66% { - opacity: 0; - } - 100% { - opacity: 0; - } -} -@keyframes pop-in-from-right { - from { - transform: translate(100%, 0); - } - to { - transform: translate(0, 0); - } -} -@keyframes pop-out-to-right { - from { - transform: translate(0, 0); - visibility: visible; - } - to { - transform: translate(100%, 0); - } -} -body { - background: var(--color-background); - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", - Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; - font-size: 16px; - color: var(--color-text); -} - -a { - color: var(--color-link); - text-decoration: none; -} -a:hover { - text-decoration: underline; -} -a.external[target="_blank"] { - background-image: var(--external-icon); - background-position: top 3px right; - background-repeat: no-repeat; - padding-right: 13px; -} -a.tsd-anchor-link { - color: var(--color-text); -} - -code, -pre { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; - padding: 0.2em; - margin: 0; - font-size: 0.875rem; - border-radius: 0.8em; -} - -pre { - position: relative; - white-space: pre-wrap; - word-wrap: break-word; - padding: 10px; - border: 1px solid var(--color-accent); -} -pre code { - padding: 0; - font-size: 100%; -} -pre > button { - position: absolute; - top: 10px; - right: 10px; - opacity: 0; - transition: opacity 0.1s; - box-sizing: border-box; -} -pre:hover > button, -pre > button.visible { - opacity: 1; -} - -blockquote { - margin: 1em 0; - padding-left: 1em; - border-left: 4px solid gray; -} - -.tsd-typography { - line-height: 1.333em; -} -.tsd-typography ul { - list-style: square; - padding: 0 0 0 20px; - margin: 0; -} -.tsd-typography .tsd-index-panel h3, -.tsd-index-panel .tsd-typography h3, -.tsd-typography h4, -.tsd-typography h5, -.tsd-typography h6 { - font-size: 1em; -} -.tsd-typography h5, -.tsd-typography h6 { - font-weight: normal; -} -.tsd-typography p, -.tsd-typography ul, -.tsd-typography ol { - margin: 1em 0; -} -.tsd-typography table { - border-collapse: collapse; - border: none; -} -.tsd-typography td, -.tsd-typography th { - padding: 6px 13px; - border: 1px solid var(--color-accent); -} -.tsd-typography thead, -.tsd-typography tr:nth-child(even) { - background-color: var(--color-background-secondary); -} - -.tsd-breadcrumb { - margin: 0; - padding: 0; - color: var(--color-text-aside); -} -.tsd-breadcrumb a { - color: var(--color-text-aside); - text-decoration: none; -} -.tsd-breadcrumb a:hover { - text-decoration: underline; -} -.tsd-breadcrumb li { - display: inline; -} -.tsd-breadcrumb li:after { - content: " / "; -} - -.tsd-comment-tags { - display: flex; - flex-direction: column; -} -dl.tsd-comment-tag-group { - display: flex; - align-items: center; - overflow: hidden; - margin: 0.5em 0; -} -dl.tsd-comment-tag-group dt { - display: flex; - margin-right: 0.5em; - font-size: 0.875em; - font-weight: normal; -} -dl.tsd-comment-tag-group dd { - margin: 0; -} -code.tsd-tag { - padding: 0.25em 0.4em; - border: 0.1em solid var(--color-accent); - margin-right: 0.25em; - font-size: 70%; -} -h1 code.tsd-tag:first-of-type { - margin-left: 0.25em; -} - -dl.tsd-comment-tag-group dd:before, -dl.tsd-comment-tag-group dd:after { - content: " "; -} -dl.tsd-comment-tag-group dd pre, -dl.tsd-comment-tag-group dd:after { - clear: both; -} -dl.tsd-comment-tag-group p { - margin: 0; -} - -.tsd-panel.tsd-comment .lead { - font-size: 1.1em; - line-height: 1.333em; - margin-bottom: 2em; -} -.tsd-panel.tsd-comment .lead:last-child { - margin-bottom: 0; -} - -.tsd-filter-visibility h4 { - font-size: 1rem; - padding-top: 0.75rem; - padding-bottom: 0.5rem; - margin: 0; -} -.tsd-filter-item:not(:last-child) { - margin-bottom: 0.5rem; -} -.tsd-filter-input { - display: flex; - width: -moz-fit-content; - width: fit-content; - align-items: center; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; -} -.tsd-filter-input input[type="checkbox"] { - cursor: pointer; - position: absolute; - width: 1.5em; - height: 1.5em; - opacity: 0; -} -.tsd-filter-input input[type="checkbox"]:disabled { - pointer-events: none; -} -.tsd-filter-input svg { - cursor: pointer; - width: 1.5em; - height: 1.5em; - margin-right: 0.5em; - border-radius: 0.33em; - /* Leaving this at full opacity breaks event listeners on Firefox. + .tsd-filter-input svg { + cursor: pointer; + width: 1.5em; + height: 1.5em; + margin-right: 0.5em; + border-radius: 0.33em; + /* Leaving this at full opacity breaks event listeners on Firefox. Don't remove unless you know what you're doing. */ - opacity: 0.99; -} -.tsd-filter-input input[type="checkbox"]:focus-visible + svg { - outline: 2px solid var(--color-focus-outline); -} -.tsd-checkbox-background { - fill: var(--color-accent); -} -input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { - stroke: var(--color-text); -} -.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { - fill: var(--color-background); - stroke: var(--color-accent); - stroke-width: 0.25rem; -} -.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { - stroke: var(--color-accent); -} - -.settings-label { - font-weight: bold; - text-transform: uppercase; - display: inline-block; -} - -.tsd-filter-visibility .settings-label { - margin: 0.75rem 0 0.5rem 0; -} - -.tsd-theme-toggle .settings-label { - margin: 0.75rem 0.75rem 0 0; -} - -.tsd-hierarchy { - list-style: square; - margin: 0; -} -.tsd-hierarchy .target { - font-weight: bold; -} - -.tsd-full-hierarchy:not(:last-child) { - margin-bottom: 1em; - padding-bottom: 1em; - border-bottom: 1px solid var(--color-accent); -} -.tsd-full-hierarchy, -.tsd-full-hierarchy ul { - list-style: none; - margin: 0; - padding: 0; -} -.tsd-full-hierarchy ul { - padding-left: 1.5rem; -} -.tsd-full-hierarchy a { - padding: 0.25rem 0 !important; - font-size: 1rem; - display: inline-flex; - align-items: center; - color: var(--color-text); -} - -.tsd-panel-group.tsd-index-group { - margin-bottom: 0; -} -.tsd-index-panel .tsd-index-list { - list-style: none; - line-height: 1.333em; - margin: 0; - padding: 0.25rem 0 0 0; - overflow: hidden; - display: grid; - grid-template-columns: repeat(3, 1fr); - column-gap: 1rem; - grid-template-rows: auto; -} -@media (max-width: 1024px) { - .tsd-index-panel .tsd-index-list { - grid-template-columns: repeat(2, 1fr); + opacity: 0.99; } -} -@media (max-width: 768px) { - .tsd-index-panel .tsd-index-list { - grid-template-columns: repeat(1, 1fr); + .tsd-filter-input input[type="checkbox"]:focus-visible + svg { + outline: 2px solid var(--color-focus-outline); + } + .tsd-checkbox-background { + fill: var(--color-accent); + } + input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { + stroke: var(--color-text); + } + .tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { + fill: var(--color-background); + stroke: var(--color-accent); + stroke-width: 0.25rem; + } + .tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { + stroke: var(--color-accent); } -} -.tsd-index-panel .tsd-index-list li { - -webkit-page-break-inside: avoid; - -moz-page-break-inside: avoid; - -ms-page-break-inside: avoid; - -o-page-break-inside: avoid; - page-break-inside: avoid; -} -.tsd-flag { - display: inline-block; - padding: 0.25em 0.4em; - border-radius: 4px; - color: var(--color-comment-tag-text); - background-color: var(--color-comment-tag); - text-indent: 0; - font-size: 75%; - line-height: 1; - font-weight: normal; -} - -.tsd-anchor { - position: relative; - top: -100px; -} - -.tsd-member { - position: relative; -} -.tsd-member .tsd-anchor + h3 { - display: flex; - align-items: center; - margin-top: 0; - margin-bottom: 0; - border-bottom: none; -} - -.tsd-navigation.settings { - margin: 1rem 0; -} -.tsd-navigation > a, -.tsd-navigation .tsd-accordion-summary { - width: calc(100% - 0.25rem); - display: flex; - align-items: center; -} -.tsd-navigation a, -.tsd-navigation summary > span, -.tsd-page-navigation a { - display: flex; - width: calc(100% - 0.25rem); - align-items: center; - padding: 0.25rem; - color: var(--color-text); - text-decoration: none; - box-sizing: border-box; -} -.tsd-navigation a.current, -.tsd-page-navigation a.current { - background: var(--color-active-menu-item); -} -.tsd-navigation a:hover, -.tsd-page-navigation a:hover { - text-decoration: underline; -} -.tsd-navigation ul, -.tsd-page-navigation ul { - margin-top: 0; - margin-bottom: 0; - padding: 0; - list-style: none; -} -.tsd-navigation li, -.tsd-page-navigation li { - padding: 0; - max-width: 100%; -} -.tsd-navigation .tsd-nav-link { - display: none; -} -.tsd-nested-navigation { - margin-left: 3rem; -} -.tsd-nested-navigation > li > details { - margin-left: -1.5rem; -} -.tsd-small-nested-navigation { - margin-left: 1.5rem; -} -.tsd-small-nested-navigation > li > details { - margin-left: -1.5rem; -} - -.tsd-page-navigation-section { - margin-left: 10px; -} -.tsd-page-navigation-section > summary { - padding: 0.25rem; -} -.tsd-page-navigation-section > div { - margin-left: 20px; -} -.tsd-page-navigation ul { - padding-left: 1.75rem; -} - -#tsd-sidebar-links a { - margin-top: 0; - margin-bottom: 0.5rem; - line-height: 1.25rem; -} -#tsd-sidebar-links a:last-of-type { - margin-bottom: 0; -} - -a.tsd-index-link { - padding: 0.25rem 0 !important; - font-size: 1rem; - line-height: 1.25rem; - display: inline-flex; - align-items: center; - color: var(--color-text); -} -.tsd-accordion-summary { - list-style-type: none; /* hide marker on non-safari */ - outline: none; /* broken on safari, so just hide it */ -} -.tsd-accordion-summary::-webkit-details-marker { - display: none; /* hide marker on safari */ -} -.tsd-accordion-summary, -.tsd-accordion-summary a { - -moz-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - user-select: none; - - cursor: pointer; -} -.tsd-accordion-summary a { - width: calc(100% - 1.5rem); -} -.tsd-accordion-summary > * { - margin-top: 0; - margin-bottom: 0; - padding-top: 0; - padding-bottom: 0; -} -.tsd-accordion .tsd-accordion-summary > svg { - margin-left: 0.25rem; - vertical-align: text-top; -} -.tsd-index-content > :not(:first-child) { - margin-top: 0.75rem; -} -.tsd-index-heading { - margin-top: 1.5rem; - margin-bottom: 0.75rem; -} - -.tsd-no-select { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.tsd-kind-icon { - margin-right: 0.5rem; - width: 1.25rem; - height: 1.25rem; - min-width: 1.25rem; - min-height: 1.25rem; -} -.tsd-signature > .tsd-kind-icon { - margin-right: 0.8rem; -} - -.tsd-panel { - margin-bottom: 2.5rem; -} -.tsd-panel.tsd-member { - margin-bottom: 4rem; -} -.tsd-panel:empty { - display: none; -} -.tsd-panel > h1, -.tsd-panel > h2, -.tsd-panel > h3 { - margin: 1.5rem -1.5rem 0.75rem -1.5rem; - padding: 0 1.5rem 0.75rem 1.5rem; -} -.tsd-panel > h1.tsd-before-signature, -.tsd-panel > h2.tsd-before-signature, -.tsd-panel > h3.tsd-before-signature { - margin-bottom: 0; - border-bottom: none; -} - -.tsd-panel-group { - margin: 2rem 0; -} -.tsd-panel-group.tsd-index-group { - margin: 2rem 0; -} -.tsd-panel-group.tsd-index-group details { - margin: 2rem 0; -} -.tsd-panel-group > .tsd-accordion-summary { - margin-bottom: 1rem; -} - -#tsd-search { - transition: background-color 0.2s; -} -#tsd-search .title { - position: relative; - z-index: 2; -} -#tsd-search .field { - position: absolute; - left: 0; - top: 0; - right: 2.5rem; - height: 100%; -} -#tsd-search .field input { - box-sizing: border-box; - position: relative; - top: -50px; - z-index: 1; - width: 100%; - padding: 0 10px; - opacity: 0; - outline: 0; - border: 0; - background: transparent; - color: var(--color-text); -} -#tsd-search .field label { - position: absolute; - overflow: hidden; - right: -40px; -} -#tsd-search .field input, -#tsd-search .title, -#tsd-toolbar-links a { - transition: opacity 0.2s; -} -#tsd-search .results { - position: absolute; - visibility: hidden; - top: 40px; - width: 100%; - margin: 0; - padding: 0; - list-style: none; - box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); -} -#tsd-search .results li { - background-color: var(--color-background); - line-height: initial; - padding: 4px; -} -#tsd-search .results li:nth-child(even) { - background-color: var(--color-background-secondary); -} -#tsd-search .results li.state { - display: none; -} -#tsd-search .results li.current:not(.no-results), -#tsd-search .results li:hover:not(.no-results) { - background-color: var(--color-accent); -} -#tsd-search .results a { - display: flex; - align-items: center; - padding: 0.25rem; - box-sizing: border-box; -} -#tsd-search .results a:before { - top: 10px; -} -#tsd-search .results span.parent { - color: var(--color-text-aside); - font-weight: normal; -} -#tsd-search.has-focus { - background-color: var(--color-accent); -} -#tsd-search.has-focus .field input { - top: 0; - opacity: 1; -} -#tsd-search.has-focus .title, -#tsd-search.has-focus #tsd-toolbar-links a { - z-index: 0; - opacity: 0; -} -#tsd-search.has-focus .results { - visibility: visible; -} -#tsd-search.loading .results li.state.loading { - display: block; -} -#tsd-search.failure .results li.state.failure { - display: block; -} - -#tsd-toolbar-links { - position: absolute; - top: 0; - right: 2rem; - height: 100%; - display: flex; - align-items: center; - justify-content: flex-end; -} -#tsd-toolbar-links a { - margin-left: 1.5rem; -} -#tsd-toolbar-links a:hover { - text-decoration: underline; -} - -.tsd-signature { - margin: 0 0 1rem 0; - padding: 1rem 0.5rem; - border: 1px solid var(--color-accent); - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; - font-size: 14px; - overflow-x: auto; -} - -.tsd-signature-keyword { - color: var(--color-ts-keyword); - font-weight: normal; -} - -.tsd-signature-symbol { - color: var(--color-text-aside); - font-weight: normal; -} - -.tsd-signature-type { - font-style: italic; - font-weight: normal; -} - -.tsd-signatures { - padding: 0; - margin: 0 0 1em 0; - list-style-type: none; -} -.tsd-signatures .tsd-signature { - margin: 0; - border-color: var(--color-accent); - border-width: 1px 0; - transition: background-color 0.1s; -} -.tsd-signatures .tsd-index-signature:not(:last-child) { - margin-bottom: 1em; -} -.tsd-signatures .tsd-index-signature .tsd-signature { - border-width: 1px; -} -.tsd-description .tsd-signatures .tsd-signature { - border-width: 1px; -} - -ul.tsd-parameter-list, -ul.tsd-type-parameter-list { - list-style: square; - margin: 0; - padding-left: 20px; -} -ul.tsd-parameter-list > li.tsd-parameter-signature, -ul.tsd-type-parameter-list > li.tsd-parameter-signature { - list-style: none; - margin-left: -20px; -} -ul.tsd-parameter-list h5, -ul.tsd-type-parameter-list h5 { - font-size: 16px; - margin: 1em 0 0.5em 0; -} -.tsd-sources { - margin-top: 1rem; - font-size: 0.875em; -} -.tsd-sources a { - color: var(--color-text-aside); - text-decoration: underline; -} -.tsd-sources ul { - list-style: none; - padding: 0; -} - -.tsd-page-toolbar { - position: sticky; - z-index: 1; - top: 0; - left: 0; - width: 100%; - color: var(--color-text); - background: var(--color-background-secondary); - border-bottom: 1px var(--color-accent) solid; - transition: transform 0.3s ease-in-out; -} -.tsd-page-toolbar a { - color: var(--color-text); - text-decoration: none; -} -.tsd-page-toolbar a.title { - font-weight: bold; -} -.tsd-page-toolbar a.title:hover { - text-decoration: underline; -} -.tsd-page-toolbar .tsd-toolbar-contents { - display: flex; - justify-content: space-between; - height: 2.5rem; - margin: 0 auto; -} -.tsd-page-toolbar .table-cell { - position: relative; - white-space: nowrap; - line-height: 40px; -} -.tsd-page-toolbar .table-cell:first-child { - width: 100%; -} -.tsd-page-toolbar .tsd-toolbar-icon { - box-sizing: border-box; - line-height: 0; - padding: 12px 0; -} - -.tsd-widget { - display: inline-block; - overflow: hidden; - opacity: 0.8; - height: 40px; - transition: - opacity 0.1s, - background-color 0.2s; - vertical-align: bottom; - cursor: pointer; -} -.tsd-widget:hover { - opacity: 0.9; -} -.tsd-widget.active { - opacity: 1; - background-color: var(--color-accent); -} -.tsd-widget.no-caption { - width: 40px; -} -.tsd-widget.no-caption:before { - margin: 0; -} - -.tsd-widget.options, -.tsd-widget.menu { - display: none; -} -input[type="checkbox"] + .tsd-widget:before { - background-position: -120px 0; -} -input[type="checkbox"]:checked + .tsd-widget:before { - background-position: -160px 0; -} - -img { - max-width: 100%; -} - -.tsd-anchor-icon { - display: inline-flex; - align-items: center; - margin-left: 0.5rem; - vertical-align: middle; - color: var(--color-text); -} - -.tsd-anchor-icon svg { - width: 1em; - height: 1em; - visibility: hidden; -} - -.tsd-anchor-link:hover > .tsd-anchor-icon svg { - visibility: visible; -} - -.deprecated { - text-decoration: line-through !important; -} - -.warning { - padding: 1rem; - color: var(--color-warning-text); - background: var(--color-background-warning); -} - -.tsd-kind-project { - color: var(--color-ts-project); -} -.tsd-kind-module { - color: var(--color-ts-module); -} -.tsd-kind-namespace { - color: var(--color-ts-namespace); -} -.tsd-kind-enum { - color: var(--color-ts-enum); -} -.tsd-kind-enum-member { - color: var(--color-ts-enum-member); -} -.tsd-kind-variable { - color: var(--color-ts-variable); -} -.tsd-kind-function { - color: var(--color-ts-function); -} -.tsd-kind-class { - color: var(--color-ts-class); -} -.tsd-kind-interface { - color: var(--color-ts-interface); -} -.tsd-kind-constructor { - color: var(--color-ts-constructor); -} -.tsd-kind-property { - color: var(--color-ts-property); -} -.tsd-kind-method { - color: var(--color-ts-method); -} -.tsd-kind-reference { - color: var(--color-ts-reference); -} -.tsd-kind-call-signature { - color: var(--color-ts-call-signature); -} -.tsd-kind-index-signature { - color: var(--color-ts-index-signature); -} -.tsd-kind-constructor-signature { - color: var(--color-ts-constructor-signature); -} -.tsd-kind-parameter { - color: var(--color-ts-parameter); -} -.tsd-kind-type-parameter { - color: var(--color-ts-type-parameter); -} -.tsd-kind-accessor { - color: var(--color-ts-accessor); -} -.tsd-kind-get-signature { - color: var(--color-ts-get-signature); -} -.tsd-kind-set-signature { - color: var(--color-ts-set-signature); -} -.tsd-kind-type-alias { - color: var(--color-ts-type-alias); -} - -/* if we have a kind icon, don't color the text by kind */ -.tsd-kind-icon ~ span { - color: var(--color-text); -} - -* { - scrollbar-width: thin; - scrollbar-color: var(--color-accent) var(--color-icon-background); -} - -*::-webkit-scrollbar { - width: 0.75rem; -} - -*::-webkit-scrollbar-track { - background: var(--color-icon-background); -} - -*::-webkit-scrollbar-thumb { - background-color: var(--color-accent); - border-radius: 999rem; - border: 0.25rem solid var(--color-icon-background); -} - -/* mobile */ -@media (max-width: 769px) { - .tsd-widget.options, - .tsd-widget.menu { + .settings-label { + font-weight: bold; + text-transform: uppercase; display: inline-block; } - .container-main { - display: flex; - } - html .col-content { - float: none; - max-width: 100%; - width: 100%; - } - html .col-sidebar { - position: fixed !important; - overflow-y: auto; - -webkit-overflow-scrolling: touch; - z-index: 1024; - top: 0 !important; - bottom: 0 !important; - left: auto !important; - right: 0 !important; - padding: 1.5rem 1.5rem 0 0; - width: 75vw; - visibility: hidden; - background-color: var(--color-background); - transform: translate(100%, 0); - } - html .col-sidebar > *:last-child { - padding-bottom: 20px; - } - html .overlay { - content: ""; - display: block; - position: fixed; - z-index: 1023; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: rgba(0, 0, 0, 0.75); - visibility: hidden; + .tsd-filter-visibility .settings-label { + margin: 0.75rem 0 0.5rem 0; } - .to-has-menu .overlay { - animation: fade-in 0.4s; + .tsd-theme-toggle .settings-label { + margin: 0.75rem 0.75rem 0 0; } - .to-has-menu .col-sidebar { - animation: pop-in-from-right 0.4s; + .tsd-hierarchy h4 label:hover span { + text-decoration: underline; } - .from-has-menu .overlay { - animation: fade-out 0.4s; + .tsd-hierarchy { + list-style: square; + margin: 0; + } + .tsd-hierarchy-target { + font-weight: bold; + } + .tsd-hierarchy-toggle { + color: var(--color-link); + cursor: pointer; } - .from-has-menu .col-sidebar { - animation: pop-out-to-right 0.4s; + .tsd-full-hierarchy:not(:last-child) { + margin-bottom: 1em; + padding-bottom: 1em; + border-bottom: 1px solid var(--color-accent); } - - .has-menu body { - overflow: hidden; + .tsd-full-hierarchy, + .tsd-full-hierarchy ul { + list-style: none; + margin: 0; + padding: 0; } - .has-menu .overlay { - visibility: visible; + .tsd-full-hierarchy ul { + padding-left: 1.5rem; } - .has-menu .col-sidebar { - visibility: visible; - transform: translate(0, 0); - display: flex; - flex-direction: column; - gap: 1.5rem; - max-height: 100vh; - padding: 1rem 2rem; + .tsd-full-hierarchy a { + padding: 0.25rem 0 !important; + font-size: 1rem; + display: inline-flex; + align-items: center; + color: var(--color-text); } - .has-menu .tsd-navigation { - max-height: 100%; + .tsd-full-hierarchy svg[data-dropdown] { + cursor: pointer; } - #tsd-toolbar-links { + .tsd-full-hierarchy svg[data-dropdown="false"] { + transform: rotate(-90deg); + } + .tsd-full-hierarchy svg[data-dropdown="false"] ~ ul { display: none; } - .tsd-navigation .tsd-nav-link { - display: flex; - } -} -/* one sidebar */ -@media (min-width: 770px) { - .container-main { + .tsd-panel-group.tsd-index-group { + margin-bottom: 0; + } + .tsd-index-panel .tsd-index-list { + list-style: none; + line-height: 1.333em; + margin: 0; + padding: 0.25rem 0 0 0; + overflow: hidden; display: grid; - grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); - grid-template-areas: "sidebar content"; - margin: 2rem auto; + grid-template-columns: repeat(3, 1fr); + column-gap: 1rem; + grid-template-rows: auto; + } + @media (max-width: 1024px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(2, 1fr); + } + } + @media (max-width: 768px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(1, 1fr); + } + } + .tsd-index-panel .tsd-index-list li { + -webkit-page-break-inside: avoid; + -moz-page-break-inside: avoid; + -ms-page-break-inside: avoid; + -o-page-break-inside: avoid; + page-break-inside: avoid; } - .col-sidebar { - grid-area: sidebar; + .tsd-flag { + display: inline-block; + padding: 0.25em 0.4em; + border-radius: 4px; + color: var(--color-comment-tag-text); + background-color: var(--color-comment-tag); + text-indent: 0; + font-size: 75%; + line-height: 1; + font-weight: normal; } - .col-content { - grid-area: content; - padding: 0 1rem; + + .tsd-anchor { + position: relative; + top: -100px; } -} -@media (min-width: 770px) and (max-width: 1399px) { - .col-sidebar { - max-height: calc(100vh - 2rem - 42px); - overflow: auto; - position: sticky; - top: 42px; - padding-top: 1rem; + + .tsd-member { + position: relative; } - .site-menu { + .tsd-member .tsd-anchor + h3 { + display: flex; + align-items: center; + margin-top: 0; + margin-bottom: 0; + border-bottom: none; + } + + .tsd-navigation.settings { + margin: 1rem 0; + } + .tsd-navigation > a, + .tsd-navigation .tsd-accordion-summary { + width: calc(100% - 0.25rem); + display: flex; + align-items: center; + } + .tsd-navigation a, + .tsd-navigation summary > span, + .tsd-page-navigation a { + display: flex; + width: calc(100% - 0.25rem); + align-items: center; + padding: 0.25rem; + color: var(--color-text); + text-decoration: none; + box-sizing: border-box; + } + .tsd-navigation a.current, + .tsd-page-navigation a.current { + background: var(--color-active-menu-item); + } + .tsd-navigation a:hover, + .tsd-page-navigation a:hover { + text-decoration: underline; + } + .tsd-navigation ul, + .tsd-page-navigation ul { + margin-top: 0; + margin-bottom: 0; + padding: 0; + list-style: none; + } + .tsd-navigation li, + .tsd-page-navigation li { + padding: 0; + max-width: 100%; + } + .tsd-navigation .tsd-nav-link { + display: none; + } + .tsd-nested-navigation { + margin-left: 3rem; + } + .tsd-nested-navigation > li > details { + margin-left: -1.5rem; + } + .tsd-small-nested-navigation { + margin-left: 1.5rem; + } + .tsd-small-nested-navigation > li > details { + margin-left: -1.5rem; + } + + .tsd-page-navigation-section { + margin-left: 10px; + } + .tsd-page-navigation-section > summary { + padding: 0.25rem; + } + .tsd-page-navigation-section > div { + margin-left: 20px; + } + .tsd-page-navigation ul { + padding-left: 1.75rem; + } + + #tsd-sidebar-links a { + margin-top: 0; + margin-bottom: 0.5rem; + line-height: 1.25rem; + } + #tsd-sidebar-links a:last-of-type { + margin-bottom: 0; + } + + a.tsd-index-link { + padding: 0.25rem 0 !important; + font-size: 1rem; + line-height: 1.25rem; + display: inline-flex; + align-items: center; + color: var(--color-text); + } + .tsd-accordion-summary { + list-style-type: none; /* hide marker on non-safari */ + outline: none; /* broken on safari, so just hide it */ + } + .tsd-accordion-summary::-webkit-details-marker { + display: none; /* hide marker on safari */ + } + .tsd-accordion-summary, + .tsd-accordion-summary a { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + + cursor: pointer; + } + .tsd-accordion-summary a { + width: calc(100% - 1.5rem); + } + .tsd-accordion-summary > * { + margin-top: 0; + margin-bottom: 0; + padding-top: 0; + padding-bottom: 0; + } + .tsd-accordion .tsd-accordion-summary > svg { + margin-left: 0.25rem; + vertical-align: text-top; + } + /* + We need to be careful to target the arrow indicating whether the accordion + is open, but not any other SVGs included in the details element. +*/ + .tsd-accordion:not([open]) > .tsd-accordion-summary > svg:first-child, + .tsd-accordion:not([open]) > .tsd-accordion-summary > h1 > svg:first-child, + .tsd-accordion:not([open]) > .tsd-accordion-summary > h2 > svg:first-child, + .tsd-accordion:not([open]) > .tsd-accordion-summary > h3 > svg:first-child, + .tsd-accordion:not([open]) > .tsd-accordion-summary > h4 > svg:first-child { + transform: rotate(-90deg); + } + .tsd-index-content > :not(:first-child) { + margin-top: 0.75rem; + } + .tsd-index-heading { + margin-top: 1.5rem; + margin-bottom: 0.75rem; + } + + .tsd-no-select { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + } + .tsd-kind-icon { + margin-right: 0.5rem; + width: 1.25rem; + height: 1.25rem; + min-width: 1.25rem; + min-height: 1.25rem; + } + .tsd-signature > .tsd-kind-icon { + margin-right: 0.8rem; + } + + .tsd-panel { + margin-bottom: 2.5rem; + } + .tsd-panel.tsd-member { + margin-bottom: 4rem; + } + .tsd-panel:empty { + display: none; + } + .tsd-panel > h1, + .tsd-panel > h2, + .tsd-panel > h3 { + margin: 1.5rem -1.5rem 0.75rem -1.5rem; + padding: 0 1.5rem 0.75rem 1.5rem; + } + .tsd-panel > h1.tsd-before-signature, + .tsd-panel > h2.tsd-before-signature, + .tsd-panel > h3.tsd-before-signature { + margin-bottom: 0; + border-bottom: none; + } + + .tsd-panel-group { + margin: 2rem 0; + } + .tsd-panel-group.tsd-index-group { + margin: 2rem 0; + } + .tsd-panel-group.tsd-index-group details { + margin: 2rem 0; + } + .tsd-panel-group > .tsd-accordion-summary { + margin-bottom: 1rem; + } + + #tsd-search { + transition: background-color 0.2s; + } + #tsd-search .title { + position: relative; + z-index: 2; + } + #tsd-search .field { + position: absolute; + left: 0; + top: 0; + right: 2.5rem; + height: 100%; + } + #tsd-search .field input { + box-sizing: border-box; + position: relative; + top: -50px; + z-index: 1; + width: 100%; + padding: 0 10px; + opacity: 0; + outline: 0; + border: 0; + background: transparent; + color: var(--color-text); + } + #tsd-search .field label { + position: absolute; + overflow: hidden; + right: -40px; + } + #tsd-search .field input, + #tsd-search .title, + #tsd-toolbar-links a { + transition: opacity 0.2s; + } + #tsd-search .results { + position: absolute; + visibility: hidden; + top: 40px; + width: 100%; + margin: 0; + padding: 0; + list-style: none; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); + } + #tsd-search .results li { + background-color: var(--color-background); + line-height: initial; + padding: 4px; + } + #tsd-search .results li:nth-child(even) { + background-color: var(--color-background-secondary); + } + #tsd-search .results li.state { + display: none; + } + #tsd-search .results li.current:not(.no-results), + #tsd-search .results li:hover:not(.no-results) { + background-color: var(--color-accent); + } + #tsd-search .results a { + display: flex; + align-items: center; + padding: 0.25rem; + box-sizing: border-box; + } + #tsd-search .results a:before { + top: 10px; + } + #tsd-search .results span.parent { + color: var(--color-text-aside); + font-weight: normal; + } + #tsd-search.has-focus { + background-color: var(--color-accent); + } + #tsd-search.has-focus .field input { + top: 0; + opacity: 1; + } + #tsd-search.has-focus .title, + #tsd-search.has-focus #tsd-toolbar-links a { + z-index: 0; + opacity: 0; + } + #tsd-search.has-focus .results { + visibility: visible; + } + #tsd-search.loading .results li.state.loading { + display: block; + } + #tsd-search.failure .results li.state.failure { + display: block; + } + + #tsd-toolbar-links { + position: absolute; + top: 0; + right: 2rem; + height: 100%; + display: flex; + align-items: center; + justify-content: flex-end; + } + #tsd-toolbar-links a { + margin-left: 1.5rem; + } + #tsd-toolbar-links a:hover { + text-decoration: underline; + } + + .tsd-signature { + margin: 0 0 1rem 0; + padding: 1rem 0.5rem; + border: 1px solid var(--color-accent); + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 14px; + overflow-x: auto; + } + + .tsd-signature-keyword { + color: var(--color-ts-keyword); + font-weight: normal; + } + + .tsd-signature-symbol { + color: var(--color-text-aside); + font-weight: normal; + } + + .tsd-signature-type { + font-style: italic; + font-weight: normal; + } + + .tsd-signatures { + padding: 0; + margin: 0 0 1em 0; + list-style-type: none; + } + .tsd-signatures .tsd-signature { + margin: 0; + border-color: var(--color-accent); + border-width: 1px 0; + transition: background-color 0.1s; + } + .tsd-signatures .tsd-index-signature:not(:last-child) { + margin-bottom: 1em; + } + .tsd-signatures .tsd-index-signature .tsd-signature { + border-width: 1px; + } + .tsd-description .tsd-signatures .tsd-signature { + border-width: 1px; + } + + ul.tsd-parameter-list, + ul.tsd-type-parameter-list { + list-style: square; + margin: 0; + padding-left: 20px; + } + ul.tsd-parameter-list > li.tsd-parameter-signature, + ul.tsd-type-parameter-list > li.tsd-parameter-signature { + list-style: none; + margin-left: -20px; + } + ul.tsd-parameter-list h5, + ul.tsd-type-parameter-list h5 { + font-size: 16px; + margin: 1em 0 0.5em 0; + } + .tsd-sources { margin-top: 1rem; + font-size: 0.875em; } -} - -/* two sidebars */ -@media (min-width: 1200px) { - .container-main { - grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, 20rem); - grid-template-areas: "sidebar content toc"; + .tsd-sources a { + color: var(--color-text-aside); + text-decoration: underline; + } + .tsd-sources ul { + list-style: none; + padding: 0; } - .col-sidebar { - display: contents; - } - - .page-menu { - grid-area: toc; - padding-left: 1rem; - } - .site-menu { - grid-area: sidebar; - } - - .site-menu { - margin-top: 1rem; - } - - .page-menu, - .site-menu { - max-height: calc(100vh - 2rem - 42px); - overflow: auto; + .tsd-page-toolbar { position: sticky; - top: 42px; + z-index: 1; + top: 0; + left: 0; + width: 100%; + color: var(--color-text); + background: var(--color-background-secondary); + border-bottom: 1px var(--color-accent) solid; + transition: transform 0.3s ease-in-out; + } + .tsd-page-toolbar a { + color: var(--color-text); + text-decoration: none; + } + .tsd-page-toolbar a.title { + font-weight: bold; + } + .tsd-page-toolbar a.title:hover { + text-decoration: underline; + } + .tsd-page-toolbar .tsd-toolbar-contents { + display: flex; + justify-content: space-between; + height: 2.5rem; + margin: 0 auto; + } + .tsd-page-toolbar .table-cell { + position: relative; + white-space: nowrap; + line-height: 40px; + } + .tsd-page-toolbar .table-cell:first-child { + width: 100%; + } + .tsd-page-toolbar .tsd-toolbar-icon { + box-sizing: border-box; + line-height: 0; + padding: 12px 0; + } + + .tsd-widget { + display: inline-block; + overflow: hidden; + opacity: 0.8; + height: 40px; + transition: + opacity 0.1s, + background-color 0.2s; + vertical-align: bottom; + cursor: pointer; + } + .tsd-widget:hover { + opacity: 0.9; + } + .tsd-widget.active { + opacity: 1; + background-color: var(--color-accent); + } + .tsd-widget.no-caption { + width: 40px; + } + .tsd-widget.no-caption:before { + margin: 0; + } + + .tsd-widget.options, + .tsd-widget.menu { + display: none; + } + input[type="checkbox"] + .tsd-widget:before { + background-position: -120px 0; + } + input[type="checkbox"]:checked + .tsd-widget:before { + background-position: -160px 0; + } + + img { + max-width: 100%; + } + + .tsd-member-summary-name { + display: inline-flex; + align-items: center; + padding: 0.25rem; + text-decoration: none; + } + + .tsd-anchor-icon { + display: inline-flex; + align-items: center; + margin-left: 0.5rem; + color: var(--color-text); + } + + .tsd-anchor-icon svg { + width: 1em; + height: 1em; + visibility: hidden; + } + + .tsd-member-summary-name:hover > .tsd-anchor-icon svg, + .tsd-anchor-link:hover > .tsd-anchor-icon svg { + visibility: visible; + } + + .deprecated { + text-decoration: line-through !important; + } + + .warning { + padding: 1rem; + color: var(--color-warning-text); + background: var(--color-background-warning); + } + + .tsd-kind-project { + color: var(--color-ts-project); + } + .tsd-kind-module { + color: var(--color-ts-module); + } + .tsd-kind-namespace { + color: var(--color-ts-namespace); + } + .tsd-kind-enum { + color: var(--color-ts-enum); + } + .tsd-kind-enum-member { + color: var(--color-ts-enum-member); + } + .tsd-kind-variable { + color: var(--color-ts-variable); + } + .tsd-kind-function { + color: var(--color-ts-function); + } + .tsd-kind-class { + color: var(--color-ts-class); + } + .tsd-kind-interface { + color: var(--color-ts-interface); + } + .tsd-kind-constructor { + color: var(--color-ts-constructor); + } + .tsd-kind-property { + color: var(--color-ts-property); + } + .tsd-kind-method { + color: var(--color-ts-method); + } + .tsd-kind-reference { + color: var(--color-ts-reference); + } + .tsd-kind-call-signature { + color: var(--color-ts-call-signature); + } + .tsd-kind-index-signature { + color: var(--color-ts-index-signature); + } + .tsd-kind-constructor-signature { + color: var(--color-ts-constructor-signature); + } + .tsd-kind-parameter { + color: var(--color-ts-parameter); + } + .tsd-kind-type-parameter { + color: var(--color-ts-type-parameter); + } + .tsd-kind-accessor { + color: var(--color-ts-accessor); + } + .tsd-kind-get-signature { + color: var(--color-ts-get-signature); + } + .tsd-kind-set-signature { + color: var(--color-ts-set-signature); + } + .tsd-kind-type-alias { + color: var(--color-ts-type-alias); + } + + /* if we have a kind icon, don't color the text by kind */ + .tsd-kind-icon ~ span { + color: var(--color-text); + } + + * { + scrollbar-width: thin; + scrollbar-color: var(--color-accent) var(--color-icon-background); + } + + *::-webkit-scrollbar { + width: 0.75rem; + } + + *::-webkit-scrollbar-track { + background: var(--color-icon-background); + } + + *::-webkit-scrollbar-thumb { + background-color: var(--color-accent); + border-radius: 999rem; + border: 0.25rem solid var(--color-icon-background); + } + + /* mobile */ + @media (max-width: 769px) { + .tsd-widget.options, + .tsd-widget.menu { + display: inline-block; + } + + .container-main { + display: flex; + } + html .col-content { + float: none; + max-width: 100%; + width: 100%; + } + html .col-sidebar { + position: fixed !important; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + z-index: 1024; + top: 0 !important; + bottom: 0 !important; + left: auto !important; + right: 0 !important; + padding: 1.5rem 1.5rem 0 0; + width: 75vw; + visibility: hidden; + background-color: var(--color-background); + transform: translate(100%, 0); + } + html .col-sidebar > *:last-child { + padding-bottom: 20px; + } + html .overlay { + content: ""; + display: block; + position: fixed; + z-index: 1023; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.75); + visibility: hidden; + } + + .to-has-menu .overlay { + animation: fade-in 0.4s; + } + + .to-has-menu .col-sidebar { + animation: pop-in-from-right 0.4s; + } + + .from-has-menu .overlay { + animation: fade-out 0.4s; + } + + .from-has-menu .col-sidebar { + animation: pop-out-to-right 0.4s; + } + + .has-menu body { + overflow: hidden; + } + .has-menu .overlay { + visibility: visible; + } + .has-menu .col-sidebar { + visibility: visible; + transform: translate(0, 0); + display: flex; + flex-direction: column; + gap: 1.5rem; + max-height: 100vh; + padding: 1rem 2rem; + } + .has-menu .tsd-navigation { + max-height: 100%; + } + #tsd-toolbar-links { + display: none; + } + .tsd-navigation .tsd-nav-link { + display: flex; + } + } + + /* one sidebar */ + @media (min-width: 770px) { + .container-main { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); + grid-template-areas: "sidebar content"; + margin: 2rem auto; + } + + .col-sidebar { + grid-area: sidebar; + } + .col-content { + grid-area: content; + padding: 0 1rem; + } + } + @media (min-width: 770px) and (max-width: 1399px) { + .col-sidebar { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + padding-top: 1rem; + } + .site-menu { + margin-top: 1rem; + } + } + + /* two sidebars */ + @media (min-width: 1200px) { + .container-main { + grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax( + 0, + 20rem + ); + grid-template-areas: "sidebar content toc"; + } + + .col-sidebar { + display: contents; + } + + .page-menu { + grid-area: toc; + padding-left: 1rem; + } + .site-menu { + grid-area: sidebar; + } + + .site-menu { + margin-top: 1rem; + } + + .page-menu, + .site-menu { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + } } } diff --git a/docs/classes/SolanaAgentKit.html b/docs/classes/SolanaAgentKit.html index 57ee334..d2c7444 100644 --- a/docs/classes/SolanaAgentKit.html +++ b/docs/classes/SolanaAgentKit.html @@ -1,46 +1,59 @@ -SolanaAgentKit | solana-agent-kit

Class SolanaAgentKit

Main class for interacting with Solana blockchain +SolanaAgentKit | solana-agent-kit

Class SolanaAgentKit

Main class for interacting with Solana blockchain Provides a unified interface for token operations, NFT management, trading and more

SolanaAgentKit

-

Constructors

Properties

Constructors

  • Parameters

    • private_key: string
    • rpc_url: string = "https://api.mainnet-beta.solana.com"
    • openai_api_key: null | string = null

    Returns SolanaAgentKit

Properties

connection: Connection

Solana RPC connection

-
openai_api_key: null | string
wallet: Keypair

Wallet keypair for signing transactions

-
wallet_address: PublicKey

Public key of the wallet

-

Methods

  • Parameters

    • title: string
    • content: string
    • requirements: string
    • tags: string[]
    • tokenMintAddress: string
    • tokenAmount: number
    • Optionalpayer: string

    Returns Promise<GibworkCreateTaskReponse>

  • Parameters

    • depositTokenAmount: BN
    • depositTokenMint: PublicKey
    • otherTokenMint: PublicKey
    • initialPrice: Decimal
    • maxPrice: Decimal
    • feeTier:
          | 0.01
          | 0.02
          | 0.04
          | 0.05
          | 0.16
          | 0.3
          | 0.65
          | 1
          | 2

    Returns Promise<string>

  • Parameters

    • amount: number
    • OptionalsplmintAddress: PublicKey

    Returns Promise<{
        signature: string;
        url: string;
    }>

  • Parameters

    • name: string
    • uri: string
    • symbol: string
    • decimals: number = DEFAULT_OPTIONS.TOKEN_DECIMALS
    • OptionalinitialSupply: number

    Returns Promise<{
        mint: PublicKey;
    }>

  • Parameters

    • mint: string

    Returns Promise<string>

  • Returns Promise<String[]>

  • Returns Promise<string[]>

  • Parameters

    • Optionaltoken_address: PublicKey

    Returns Promise<number>

  • Parameters

    • walletAddress: PublicKey
    • OptionaltokenAddress: PublicKey

    Returns Promise<number>

  • Parameters

    • owner: PublicKey

    Returns Promise<null | string>

  • Parameters

    • owner: PublicKey

    Returns Promise<string[]>

  • Parameters

    • tld: string

    Returns Promise<string[]>

  • Parameters

    • account: PublicKey

    Returns Promise<string>

  • Parameters

    • amount: number

    Returns Promise<string>

  • Parameters

    • collectionMint: PublicKey
    • metadata: {
          creators?: {
              address: string;
              share: number;
          }[];
          name: string;
          sellerFeeBasisPoints?: number;
          uri: string;
      }
      • Optionalcreators?: {
            address: string;
            share: number;
        }[]
      • name: string
      • OptionalsellerFeeBasisPoints?: number
      • uri: string
    • Optionalrecipient: PublicKey

    Returns Promise<MintCollectionNFTResponse>

  • Parameters

    • baseMint: PublicKey
    • quoteMint: PublicKey
    • lotSize: number = 1
    • tickSize: number = 0.01

    Returns Promise<string[]>

  • Parameters

    • priceFeedID: string

    Returns Promise<string>

  • Parameters

    • marketId: PublicKey
    • baseAmount: BN
    • quoteAmount: BN
    • startTime: BN

    Returns Promise<string>

  • Parameters

    • mint1: PublicKey
    • mint2: PublicKey
    • configId: PublicKey
    • initialPrice: Decimal
    • startTime: BN

    Returns Promise<string>

  • Parameters

    • mint1: PublicKey
    • mint2: PublicKey
    • configId: PublicKey
    • mintAAmount: BN
    • mintBAmount: BN
    • startTime: BN

    Returns Promise<string>

  • Parameters

    • name: string
    • OptionalspaceKB: number

    Returns Promise<string>

  • Returns Promise<string>

  • Parameters

    • domain: string

    Returns Promise<undefined | PublicKey>

  • Parameters

    • domain: string

    Returns Promise<PublicKey>

  • Parameters

    • amount: number
    • choice: "rock" | "paper" | "scissors"

    Returns Promise<string>

  • Parameters

    • mintAddress: string
    • amount: number
    • decimals: number
    • recipients: string[]
    • priorityFeeInLamports: number
    • shouldLog: boolean

    Returns Promise<string[]>

  • Parameters

    • amount: number

    Returns Promise<string>

  • Parameters

    • outputMint: PublicKey
    • inputAmount: number
    • OptionalinputMint: PublicKey
    • slippageBps: number = DEFAULT_OPTIONS.SLIPPAGE_BPS

    Returns Promise<string>

  • Parameters

    • to: PublicKey
    • amount: number
    • Optionalmint: PublicKey

    Returns Promise<string>

+

Constructors

  • Parameters

    • private_key: string
    • rpc_url: string
    • openai_api_key: null | string

    Returns SolanaAgentKit

    Using openai_api_key directly in constructor is deprecated. +Please use the new constructor with Config object instead:

    +
    const agent = new SolanaAgentKit(privateKey, rpcUrl, { 
    OPENAI_API_KEY: 'your-key'
    }); +
    + +
  • Parameters

    • private_key: string
    • rpc_url: string
    • config: Config

    Returns SolanaAgentKit

Properties

config: Config

Configuration object

+
connection: Connection

Solana RPC connection

+
wallet: Keypair

Wallet keypair for signing transactions

+
wallet_address: PublicKey

Public key of the wallet

+

Methods

  • Parameters

    • title: string
    • content: string
    • requirements: string
    • tags: string[]
    • tokenMintAddress: string
    • tokenAmount: number
    • Optionalpayer: string

    Returns Promise<GibworkCreateTaskReponse>

  • Parameters

    • amount: number
    • OptionalsplmintAddress: PublicKey

    Returns Promise<{ signature: string; url: string }>

  • Parameters

    • name: string
    • uri: string
    • symbol: string
    • decimals: number = DEFAULT_OPTIONS.TOKEN_DECIMALS
    • OptionalinitialSupply: number

    Returns Promise<{ mint: PublicKey }>

  • Parameters

    • mint: string

    Returns Promise<string>

  • Returns Promise<string[]>

  • Returns Promise<string[]>

  • Parameters

    • Optionaltoken_address: PublicKey

    Returns Promise<number>

  • Parameters

    • walletAddress: PublicKey
    • OptionaltokenAddress: PublicKey

    Returns Promise<number>

  • Parameters

    • owner: PublicKey

    Returns Promise<null | string>

  • Parameters

    • owner: PublicKey

    Returns Promise<string[]>

  • Parameters

    • tld: string

    Returns Promise<string[]>

  • Parameters

    • account: PublicKey

    Returns Promise<string>

  • Parameters

    • amount: number

    Returns Promise<string>

  • Parameters

    • collectionMint: PublicKey
    • metadata: {
          creators?: { address: string; share: number }[];
          name: string;
          sellerFeeBasisPoints?: number;
          uri: string;
      }
    • Optionalrecipient: PublicKey

    Returns Promise<MintCollectionNFTResponse>

  • Parameters

    • baseMint: PublicKey
    • quoteMint: PublicKey
    • lotSize: number = 1
    • tickSize: number = 0.01

    Returns Promise<string[]>

  • Parameters

    • positionMintAddress: PublicKey

    Returns Promise<string>

  • Parameters

    • mintDeploy: PublicKey
    • mintPair: PublicKey
    • initialPrice: Decimal
    • feeTier: 1 | 2 | 4 | 5 | 16 | 30 | 65 | 100 | 200

    Returns Promise<string>

  • Parameters

    • depositTokenAmount: number
    • depositTokenMint: PublicKey
    • otherTokenMint: PublicKey
    • initialPrice: Decimal
    • maxPrice: Decimal
    • feeTier: 1 | 2 | 4 | 5 | 16 | 30 | 65 | 100 | 200

    Returns Promise<string>

  • Parameters

    • whirlpoolAddress: PublicKey
    • priceOffsetBps: number
    • inputTokenMint: PublicKey
    • inputAmount: Decimal

    Returns Promise<string>

  • Parameters

    • whirlpoolAddress: PublicKey
    • distanceFromCurrentPriceBps: number
    • widthBps: number
    • inputTokenMint: PublicKey
    • inputAmount: Decimal

    Returns Promise<string>

  • Parameters

    • priceFeedID: string

    Returns Promise<string>

  • Parameters

    • marketId: PublicKey
    • baseAmount: BN
    • quoteAmount: BN
    • startTime: BN

    Returns Promise<string>

  • Parameters

    • mint1: PublicKey
    • mint2: PublicKey
    • configId: PublicKey
    • initialPrice: Decimal
    • startTime: BN

    Returns Promise<string>

  • Parameters

    • mint1: PublicKey
    • mint2: PublicKey
    • configId: PublicKey
    • mintAAmount: BN
    • mintBAmount: BN
    • startTime: BN

    Returns Promise<string>

  • Parameters

    • name: string
    • OptionalspaceKB: number

    Returns Promise<string>

  • Parameters

    • domain: string

    Returns Promise<undefined | PublicKey>

  • Parameters

    • domain: string

    Returns Promise<PublicKey>

  • Parameters

    • amount: number
    • choice: "rock" | "paper" | "scissors"

    Returns Promise<string>

  • Parameters

    • mintAddress: string
    • amount: number
    • decimals: number
    • recipients: string[]
    • priorityFeeInLamports: number
    • shouldLog: boolean

    Returns Promise<string[]>

  • Parameters

    • amount: number

    Returns Promise<string>

  • Parameters

    • nftMint: PublicKey

    Returns Promise<string>

  • Parameters

    • nftMint: PublicKey
    • price: number

    Returns Promise<string>

  • Parameters

    • outputMint: PublicKey
    • inputAmount: number
    • OptionalinputMint: PublicKey
    • slippageBps: number = DEFAULT_OPTIONS.SLIPPAGE_BPS

    Returns Promise<string>

  • Parameters

    • to: PublicKey
    • amount: number
    • Optionalmint: PublicKey

    Returns Promise<string>

diff --git a/docs/functions/createSolanaTools.html b/docs/functions/createSolanaTools.html index 1279b68..f763bbe 100644 --- a/docs/functions/createSolanaTools.html +++ b/docs/functions/createSolanaTools.html @@ -1 +1 @@ -createSolanaTools | solana-agent-kit

Function createSolanaTools

  • Parameters

    Returns (
        | SolanaBalanceTool
        | SolanaBalanceOtherTool
        | SolanaTransferTool
        | SolanaDeployTokenTool
        | SolanaDeployCollectionTool
        | SolanaMintNFTTool
        | SolanaTradeTool
        | SolanaRequestFundsTool
        | SolanaRegisterDomainTool
        | SolanaResolveDomainTool
        | SolanaGetDomainTool
        | SolanaGetWalletAddressTool
        | SolanaPumpfunTokenLaunchTool
        | SolanaCreateImageTool
        | SolanaLendAssetTool
        | SolanaTPSCalculatorTool
        | SolanaStakeTool
        | SolanaFetchPriceTool
        | SolanaTokenDataTool
        | SolanaTokenDataByTickerTool
        | SolanaCompressedAirdropTool
        | SolanaCreateSingleSidedWhirlpoolTool
        | SolanaRaydiumCreateAmmV4
        | SolanaRaydiumCreateClmm
        | SolanaRaydiumCreateCpmm
        | SolanaOpenbookCreateMarket
        | SolanaPythFetchPrice
        | SolanaResolveAllDomainsTool
        | SolanaGetOwnedDomains
        | SolanaGetOwnedTldDomains
        | SolanaGetAllTlds
        | SolanaGetMainDomain
        | SolanaCreateGibworkTask
        | SolanaRockPaperScissorsTool
        | SolanaTipLinkTool)[]

+createSolanaTools | solana-agent-kit

Function createSolanaTools

  • Parameters

    Returns (
        | SolanaBalanceTool
        | SolanaBalanceOtherTool
        | SolanaTransferTool
        | SolanaDeployTokenTool
        | SolanaDeployCollectionTool
        | SolanaMintNFTTool
        | SolanaTradeTool
        | SolanaRequestFundsTool
        | SolanaRegisterDomainTool
        | SolanaResolveDomainTool
        | SolanaGetDomainTool
        | SolanaGetWalletAddressTool
        | SolanaPumpfunTokenLaunchTool
        | SolanaCreateImageTool
        | SolanaLendAssetTool
        | SolanaTPSCalculatorTool
        | SolanaStakeTool
        | SolanaFetchPriceTool
        | SolanaTokenDataTool
        | SolanaTokenDataByTickerTool
        | SolanaCompressedAirdropTool
        | SolanaClosePosition
        | SolanaOrcaCreateCLMM
        | SolanaOrcaCreateSingleSideLiquidityPool
        | SolanaOrcaFetchPositions
        | SolanaOrcaOpenCenteredPosition
        | SolanaOrcaOpenSingleSidedPosition
        | SolanaRaydiumCreateAmmV4
        | SolanaRaydiumCreateClmm
        | SolanaRaydiumCreateCpmm
        | SolanaOpenbookCreateMarket
        | SolanaPythFetchPrice
        | SolanaResolveAllDomainsTool
        | SolanaGetOwnedDomains
        | SolanaGetOwnedTldDomains
        | SolanaGetAllTlds
        | SolanaGetMainDomain
        | SolanaCreateGibworkTask
        | SolanaRockPaperScissorsTool
        | SolanaTipLinkTool
        | SolanaListNFTForSaleTool
        | SolanaCancelNFTListingTool
    )[]

diff --git a/docs/index.html b/docs/index.html index b165d1c..8fecca2 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,5 +1,5 @@ -solana-agent-kit

solana-agent-kit

-

Solana Agent Kit

Solana Agent Kit Cover 1 (3)

+solana-agent-kit

solana-agent-kit

+

Solana Agent Kit

Solana Agent Kit Cover 1 (3)

NPM Downloads GitHub forks GitHub License

@@ -15,11 +15,11 @@
  • And more...
  • Anyone - whether an SF-based AI researcher or a crypto-native builder - can bring their AI agents trained with any model and seamlessly integrate with Solana.

    -

    Run on Repl.it

    +

    Run on Repl.it

    -

    Replit template created by Arpit Singh

    +

    Replit template created by Arpit Singh

    -
      +
      • Token Operations

          @@ -46,7 +46,7 @@
        • Launch on Pump via PumpPortal
        • Raydium pool creation (CPMM, CLMM, AMMv4)
        • Orca Whirlpool integration
        • -
        • Meteora Dynamic AMM, DLMM Pool, and Alpga Vault
        • +
        • Meteora Dynamic AMM, DLMM Pool, and Alpha Vault
        • Openbook market creation
        • Register and Resolve SNS
        • Jito Bundles
        • @@ -57,7 +57,7 @@
        • Solana Blinks

            -
          • Lending by Lulon (Best APR for USDC)
          • +
          • Lending by Lulo (Best APR for USDC)
          • Send Arcade Games
          • JupSOL staking
          @@ -69,7 +69,7 @@
      -
        +
        • LangChain Integration

            @@ -98,34 +98,34 @@
        -
        npm install solana-agent-kit
        +
        npm install solana-agent-kit
         
        -
        import { SolanaAgentKit, createSolanaTools } from "solana-agent-kit";

        // Initialize with private key and optional RPC URL
        const agent = new SolanaAgentKit(
        "your-wallet-private-key-as-base58",
        "https://api.mainnet-beta.solana.com",
        "your-openai-api-key"
        );

        // Create LangChain tools
        const tools = createSolanaTools(agent); +
        import { SolanaAgentKit, createSolanaTools } from "solana-agent-kit";

        // Initialize with private key and optional RPC URL
        const agent = new SolanaAgentKit(
        "your-wallet-private-key-as-base58",
        "https://api.mainnet-beta.solana.com",
        "your-openai-api-key"
        );

        // Create LangChain tools
        const tools = createSolanaTools(agent);
        -
        const result = await agent.deployToken(
        "my ai token", // name
        "uri", // uri
        "token", // symbol
        9, // decimals
        1000000 // initial supply
        );

        console.log("Token Mint Address:", result.mint.toString()); +
        const result = await agent.deployToken(
        "my ai token", // name
        "uri", // uri
        "token", // symbol
        9, // decimals
        1000000 // initial supply
        );

        console.log("Token Mint Address:", result.mint.toString());
        -
        const collection = await agent.deployCollection({
        name: "My NFT Collection",
        uri: "https://arweave.net/metadata.json",
        royaltyBasisPoints: 500, // 5%
        creators: [
        {
        address: "creator-wallet-address",
        percentage: 100,
        },
        ],
        }); +
        const collection = await agent.deployCollection({
        name: "My NFT Collection",
        uri: "https://arweave.net/metadata.json",
        royaltyBasisPoints: 500, // 5%
        creators: [
        {
        address: "creator-wallet-address",
        percentage: 100,
        },
        ],
        });
        -
        import { PublicKey } from "@solana/web3.js";

        const signature = await agent.trade(
        new PublicKey("target-token-mint"),
        100, // amount
        new PublicKey("source-token-mint"),
        300 // 3% slippage
        ); +
        import { PublicKey } from "@solana/web3.js";

        const signature = await agent.trade(
        new PublicKey("target-token-mint"),
        100, // amount
        new PublicKey("source-token-mint"),
        300 // 3% slippage
        );
        -
        import { PublicKey } from "@solana/web3.js";

        const signature = await agent.lendAssets(
        100 // amount of USDC to lend
        ); +
        import { PublicKey } from "@solana/web3.js";

        const signature = await agent.lendAssets(
        100 // amount of USDC to lend
        );
        -
        const signature = await agent.stake(
        1 // amount in SOL to stake
        ); +
        const signature = await agent.stake(
        1 // amount in SOL to stake
        );
        -
        import { PublicKey } from "@solana/web3.js";

        (async () => {
        console.log(
        "~Airdrop cost estimate:",
        getAirdropCostEstimate(
        1000, // recipients
        30_000 // priority fee in lamports
        )
        );

        const signature = await agent.sendCompressedAirdrop(
        new PublicKey("JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN"), // mint
        42, // amount per recipient
        [
        new PublicKey("1nc1nerator11111111111111111111111111111111"),
        // ... add more recipients
        ],
        30_000 // priority fee in lamports
        );
        })(); +
        import { PublicKey } from "@solana/web3.js";

        (async () => {
        console.log(
        "~Airdrop cost estimate:",
        getAirdropCostEstimate(
        1000, // recipients
        30_000 // priority fee in lamports
        )
        );

        const signature = await agent.sendCompressedAirdrop(
        new PublicKey("JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN"), // mint
        42, // amount per recipient
        [
        new PublicKey("1nc1nerator11111111111111111111111111111111"),
        // ... add more recipients
        ],
        30_000 // priority fee in lamports
        );
        })();
        -

        const price = await agent.pythFetchPrice(
        "0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"
        );

        console.log("Price in BTC/USD:", price); +

        const price = await agent.pythFetchPrice(
        "0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"
        );

        console.log("Price in BTC/USD:", price);
        -

        The repository includes an advanced example of building a multi-agent system using LangGraph and Solana Agent Kit. Located in examples/agent-kit-langgraph, this example demonstrates:

        +

        The repository includes an advanced example of building a multi-agent system using LangGraph and Solana Agent Kit. Located in examples/agent-kit-langgraph, this example demonstrates:

        • Multi-agent architecture using LangGraph's StateGraph
        • Specialized agents for different tasks: @@ -140,7 +140,7 @@
        • Environment-based configuration

        Check out the LangGraph example for a complete implementation of an advanced Solana agent system.

        -

        The toolkit relies on several key Solana and Metaplex libraries:

        +

        The toolkit relies on several key Solana and Metaplex libraries:

        • @solana/web3.js
        • @solana/spl-token
        • @@ -151,12 +151,12 @@
        • @lightprotocol/stateless.js
        • @pythnetwork/price-service-client
        -

        Contributions are welcome! Please feel free to submit a Pull Request. +

        Contributions are welcome! Please feel free to submit a Pull Request. Refer to CONTRIBUTING.md for detailed guidelines on how to contribute to this project.

        - + -

        Star History Chart

        -

        Apache-2 License

        -

        This toolkit handles private keys and transactions. Always ensure you're using it in a secure environment and never share your private keys.

        -
    +

    Star History Chart

    +

    Apache-2 License

    +

    This toolkit handles private keys and transactions. Always ensure you're using it in a secure environment and never share your private keys.

    +
    diff --git a/docs/interfaces/CollectionDeployment.html b/docs/interfaces/CollectionDeployment.html index 29d2d44..1b7ff4f 100644 --- a/docs/interfaces/CollectionDeployment.html +++ b/docs/interfaces/CollectionDeployment.html @@ -1,3 +1,3 @@ -CollectionDeployment | solana-agent-kit

    Interface CollectionDeployment

    interface CollectionDeployment {
        collectionAddress: PublicKey;
        signature: Uint8Array<ArrayBufferLike>;
    }

    Properties

    collectionAddress +CollectionDeployment | solana-agent-kit

    Interface CollectionDeployment

    interface CollectionDeployment {
        collectionAddress: PublicKey;
        signature: Uint8Array;
    }

    Properties

    collectionAddress: PublicKey
    signature: Uint8Array<ArrayBufferLike>
    +

    Properties

    collectionAddress: PublicKey
    signature: Uint8Array
    diff --git a/docs/interfaces/CollectionOptions.html b/docs/interfaces/CollectionOptions.html index cb6532a..055d6da 100644 --- a/docs/interfaces/CollectionOptions.html +++ b/docs/interfaces/CollectionOptions.html @@ -1,5 +1,5 @@ -CollectionOptions | solana-agent-kit

    Interface CollectionOptions

    interface CollectionOptions {
        creators?: Creator[];
        name: string;
        royaltyBasisPoints?: number;
        uri: string;
    }

    Properties

    creators? +CollectionOptions | solana-agent-kit

    Interface CollectionOptions

    interface CollectionOptions {
        creators?: Creator[];
        name: string;
        royaltyBasisPoints?: number;
        uri: string;
    }

    Properties

    creators?: Creator[]
    name: string
    royaltyBasisPoints?: number
    uri: string
    +

    Properties

    creators?: Creator[]
    name: string
    royaltyBasisPoints?: number
    uri: string
    diff --git a/docs/interfaces/Config.html b/docs/interfaces/Config.html new file mode 100644 index 0000000..9d46ae7 --- /dev/null +++ b/docs/interfaces/Config.html @@ -0,0 +1,4 @@ +Config | solana-agent-kit

    Interface Config

    interface Config {
        JUPITER_FEE_BPS?: number;
        JUPITER_REFERRAL_ACCOUNT?: string;
        OPENAI_API_KEY?: string;
    }

    Properties

    JUPITER_FEE_BPS?: number
    JUPITER_REFERRAL_ACCOUNT?: string
    OPENAI_API_KEY?: string
    diff --git a/docs/interfaces/Creator.html b/docs/interfaces/Creator.html index 717b3d8..e9bfa4c 100644 --- a/docs/interfaces/Creator.html +++ b/docs/interfaces/Creator.html @@ -1,3 +1,3 @@ -Creator | solana-agent-kit

    Interface Creator

    interface Creator {
        address: string;
        percentage: number;
    }

    Properties

    address +Creator | solana-agent-kit

    Interface Creator

    interface Creator {
        address: string;
        percentage: number;
    }

    Properties

    Properties

    address: string
    percentage: number
    +

    Properties

    address: string
    percentage: number
    diff --git a/docs/interfaces/FetchPriceResponse.html b/docs/interfaces/FetchPriceResponse.html index cfe4fa2..73e4378 100644 --- a/docs/interfaces/FetchPriceResponse.html +++ b/docs/interfaces/FetchPriceResponse.html @@ -1,6 +1,6 @@ -FetchPriceResponse | solana-agent-kit

    Interface FetchPriceResponse

    interface FetchPriceResponse {
        code?: string;
        message?: string;
        priceInUSDC?: string;
        status: "success" | "error";
        tokenId?: string;
    }

    Properties

    code? +FetchPriceResponse | solana-agent-kit

    Interface FetchPriceResponse

    interface FetchPriceResponse {
        code?: string;
        message?: string;
        priceInUSDC?: string;
        status: "success" | "error";
        tokenId?: string;
    }

    Properties

    code?: string
    message?: string
    priceInUSDC?: string
    status: "success" | "error"
    tokenId?: string
    +tokenId? +

    Properties

    code?: string
    message?: string
    priceInUSDC?: string
    status: "success" | "error"
    tokenId?: string
    diff --git a/docs/interfaces/GibworkCreateTaskReponse.html b/docs/interfaces/GibworkCreateTaskReponse.html index 7709d81..520daa9 100644 --- a/docs/interfaces/GibworkCreateTaskReponse.html +++ b/docs/interfaces/GibworkCreateTaskReponse.html @@ -1,4 +1,4 @@ -GibworkCreateTaskReponse | solana-agent-kit

    Interface GibworkCreateTaskReponse

    interface GibworkCreateTaskReponse {
        signature?: string;
        status: "success" | "error";
        taskId?: string;
    }

    Properties

    signature? +GibworkCreateTaskReponse | solana-agent-kit

    Interface GibworkCreateTaskReponse

    interface GibworkCreateTaskReponse {
        signature?: string;
        status: "success" | "error";
        taskId?: string;
    }

    Properties

    signature?: string
    status: "success" | "error"
    taskId?: string
    +taskId? +

    Properties

    signature?: string
    status: "success" | "error"
    taskId?: string
    diff --git a/docs/interfaces/JupiterTokenData.html b/docs/interfaces/JupiterTokenData.html index c1d72cb..e589814 100644 --- a/docs/interfaces/JupiterTokenData.html +++ b/docs/interfaces/JupiterTokenData.html @@ -1,12 +1,12 @@ -JupiterTokenData | solana-agent-kit

    Interface JupiterTokenData

    interface JupiterTokenData {
        address: string;
        daily_volume: number;
        decimals: number;
        extensions: {
            coingeckoId?: string;
        };
        freeze_authority: null | string;
        logoURI: string;
        mint_authority: null | string;
        name: string;
        permanent_delegate: null | string;
        symbol: string;
        tags: string[];
    }

    Properties

    address +JupiterTokenData | solana-agent-kit

    Interface JupiterTokenData

    interface JupiterTokenData {
        address: string;
        daily_volume: number;
        decimals: number;
        extensions: { coingeckoId?: string };
        freeze_authority: null | string;
        logoURI: string;
        mint_authority: null | string;
        name: string;
        permanent_delegate: null | string;
        symbol: string;
        tags: string[];
    }

    Properties

    address: string
    daily_volume: number
    decimals: number
    extensions: {
        coingeckoId?: string;
    }
    freeze_authority: null | string
    logoURI: string
    mint_authority: null | string
    name: string
    permanent_delegate: null | string
    symbol: string
    tags: string[]
    +

    Properties

    address: string
    daily_volume: number
    decimals: number
    extensions: { coingeckoId?: string }
    freeze_authority: null | string
    logoURI: string
    mint_authority: null | string
    name: string
    permanent_delegate: null | string
    symbol: string
    tags: string[]
    diff --git a/docs/interfaces/LuloAccountDetailsResponse.html b/docs/interfaces/LuloAccountDetailsResponse.html index 776cea4..9d03287 100644 --- a/docs/interfaces/LuloAccountDetailsResponse.html +++ b/docs/interfaces/LuloAccountDetailsResponse.html @@ -1,6 +1,6 @@ -LuloAccountDetailsResponse | solana-agent-kit

    Interface LuloAccountDetailsResponse

    Lulo Account Details response format

    -
    interface LuloAccountDetailsResponse {
        interestEarned: number;
        realtimeApy: number;
        settings: {
            allowedProtocols: null | string;
            homebase: null | string;
            minimumRate: string;
            owner: string;
        };
        totalValue: number;
    }

    Properties

    interestEarned -realtimeApy +LuloAccountDetailsResponse | solana-agent-kit

    Interface LuloAccountDetailsResponse

    Lulo Account Details response format

    +
    interface LuloAccountDetailsResponse {
        interestEarned: number;
        realtimeApy: number;
        settings: {
            allowedProtocols: null | string;
            homebase: null | string;
            minimumRate: string;
            owner: string;
        };
        totalValue: number;
    }

    Properties

    interestEarned: number
    realtimeApy: number
    settings: {
        allowedProtocols: null | string;
        homebase: null | string;
        minimumRate: string;
        owner: string;
    }
    totalValue: number
    +totalValue +

    Properties

    interestEarned: number
    realtimeApy: number
    settings: {
        allowedProtocols: null | string;
        homebase: null | string;
        minimumRate: string;
        owner: string;
    }
    totalValue: number
    diff --git a/docs/interfaces/MintCollectionNFTResponse.html b/docs/interfaces/MintCollectionNFTResponse.html index f479f62..db065a2 100644 --- a/docs/interfaces/MintCollectionNFTResponse.html +++ b/docs/interfaces/MintCollectionNFTResponse.html @@ -1,3 +1,3 @@ -MintCollectionNFTResponse | solana-agent-kit

    Interface MintCollectionNFTResponse

    interface MintCollectionNFTResponse {
        metadata: PublicKey;
        mint: PublicKey;
    }

    Properties

    metadata +MintCollectionNFTResponse | solana-agent-kit

    Interface MintCollectionNFTResponse

    interface MintCollectionNFTResponse {
        metadata: PublicKey;
        mint: PublicKey;
    }

    Properties

    Properties

    metadata: PublicKey
    mint: PublicKey
    +

    Properties

    metadata: PublicKey
    mint: PublicKey
    diff --git a/docs/interfaces/PumpFunTokenOptions.html b/docs/interfaces/PumpFunTokenOptions.html index 0617315..eeccce9 100644 --- a/docs/interfaces/PumpFunTokenOptions.html +++ b/docs/interfaces/PumpFunTokenOptions.html @@ -1,7 +1,7 @@ -PumpFunTokenOptions | solana-agent-kit

    Interface PumpFunTokenOptions

    interface PumpFunTokenOptions {
        initialLiquiditySOL?: number;
        priorityFee?: number;
        slippageBps?: number;
        telegram?: string;
        twitter?: string;
        website?: string;
    }

    Properties

    initialLiquiditySOL? -priorityFee? -slippageBps? +PumpFunTokenOptions | solana-agent-kit

    Interface PumpFunTokenOptions

    interface PumpFunTokenOptions {
        initialLiquiditySOL?: number;
        priorityFee?: number;
        slippageBps?: number;
        telegram?: string;
        twitter?: string;
        website?: string;
    }

    Properties

    initialLiquiditySOL?: number
    priorityFee?: number
    slippageBps?: number
    telegram?: string
    twitter?: string
    website?: string
    +

    Properties

    initialLiquiditySOL?: number
    priorityFee?: number
    slippageBps?: number
    telegram?: string
    twitter?: string
    website?: string
    diff --git a/docs/interfaces/PumpfunLaunchResponse.html b/docs/interfaces/PumpfunLaunchResponse.html index 0ee5045..93ddbad 100644 --- a/docs/interfaces/PumpfunLaunchResponse.html +++ b/docs/interfaces/PumpfunLaunchResponse.html @@ -1,5 +1,5 @@ -PumpfunLaunchResponse | solana-agent-kit

    Interface PumpfunLaunchResponse

    interface PumpfunLaunchResponse {
        error?: string;
        metadataUri?: string;
        mint: string;
        signature: string;
    }

    Properties

    error? -metadataUri? +PumpfunLaunchResponse | solana-agent-kit

    Interface PumpfunLaunchResponse

    interface PumpfunLaunchResponse {
        error?: string;
        metadataUri?: string;
        mint: string;
        signature: string;
    }

    Properties

    error?: string
    metadataUri?: string
    mint: string
    signature: string
    +

    Properties

    error?: string
    metadataUri?: string
    mint: string
    signature: string
    diff --git a/docs/interfaces/PythFetchPriceResponse.html b/docs/interfaces/PythFetchPriceResponse.html index c1a1288..933f24a 100644 --- a/docs/interfaces/PythFetchPriceResponse.html +++ b/docs/interfaces/PythFetchPriceResponse.html @@ -1,6 +1,6 @@ -PythFetchPriceResponse | solana-agent-kit

    Interface PythFetchPriceResponse

    interface PythFetchPriceResponse {
        code?: string;
        message?: string;
        price?: string;
        priceFeedID: string;
        status: "success" | "error";
    }

    Properties

    code? +PythFetchPriceResponse | solana-agent-kit

    Interface PythFetchPriceResponse

    interface PythFetchPriceResponse {
        code?: string;
        message?: string;
        price?: string;
        priceFeedID: string;
        status: "success" | "error";
    }

    Properties

    code?: string
    message?: string
    price?: string
    priceFeedID: string
    status: "success" | "error"
    +

    Properties

    code?: string
    message?: string
    price?: string
    priceFeedID: string
    status: "success" | "error"
    diff --git a/docs/modules.html b/docs/modules.html index fba41cb..52a12f1 100644 --- a/docs/modules.html +++ b/docs/modules.html @@ -1,14 +1 @@ -solana-agent-kit
    +solana-agent-kit
    diff --git a/package.json b/package.json index e041365..3f5de39 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "solana-agent-kit", - "version": "1.3.1", + "version": "1.3.2", "description": "connect any ai agents to solana protocols", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/src/agent/index.ts b/src/agent/index.ts index f880994..5d146a1 100644 --- a/src/agent/index.ts +++ b/src/agent/index.ts @@ -67,6 +67,7 @@ import { BN } from "@coral-xyz/anchor"; * @property {Connection} connection - Solana RPC connection * @property {Keypair} wallet - Wallet keypair for signing transactions * @property {PublicKey} wallet_address - Public key of the wallet + * @property {Config} config - Configuration object */ export class SolanaAgentKit { public connection: Connection; @@ -74,15 +75,31 @@ export class SolanaAgentKit { public wallet_address: PublicKey; public config: Config; + /** + * @deprecated Using openai_api_key directly in constructor is deprecated. + * Please use the new constructor with Config object instead: + * @example + * const agent = new SolanaAgentKit(privateKey, rpcUrl, { + * OPENAI_API_KEY: 'your-key' + * }); + */ + constructor(private_key: string, rpc_url: string, openai_api_key: string | null); + constructor(private_key: string, rpc_url: string, config: Config); constructor( private_key: string, - rpc_url = "https://api.mainnet-beta.solana.com", - config: Config, + rpc_url: string, + configOrKey: Config | string | null, ) { - this.connection = new Connection(rpc_url); + this.connection = new Connection(rpc_url || "https://api.mainnet-beta.solana.com"); this.wallet = Keypair.fromSecretKey(bs58.decode(private_key)); this.wallet_address = this.wallet.publicKey; - this.config = config; + + // Handle both old and new patterns + if (typeof configOrKey === 'string' || configOrKey === null) { + this.config = { OPENAI_API_KEY: configOrKey || '' }; + } else { + this.config = configOrKey; + } } // Tool methods diff --git a/test/index.ts b/test/index.ts index abd50d0..b6e51e7 100644 --- a/test/index.ts +++ b/test/index.ts @@ -52,7 +52,7 @@ async function initializeAgent() { const solanaAgent = new SolanaAgentKit( process.env.SOLANA_PRIVATE_KEY!, - process.env.RPC_URL, + process.env.RPC_URL!, { OPENAI_API_KEY: process.env.OPENAI_API_KEY!, },