├── pnpm-workspace.yaml ├── cli.js ├── src ├── tools │ ├── index.ts │ ├── transactions.ts │ ├── objects.ts │ ├── wallet.ts │ ├── coins.ts │ └── move.ts ├── commands │ ├── index.ts │ ├── start.ts │ ├── init.ts │ └── accounts.ts ├── utils │ ├── version.ts │ ├── suiCli.ts │ ├── schema.ts │ └── suiConfig.ts ├── index.ts ├── generate-features.ts ├── logger.ts ├── server │ ├── app.ts │ └── index.ts ├── resources │ └── index.ts └── state │ └── index.ts ├── .github └── workflows │ └── pull_request.yml ├── tsconfig.json ├── .vscode └── settings.json ├── .gitignore ├── biome.json ├── package.json ├── README.md └── pnpm-lock.yaml /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | onlyBuiltDependencies: 2 | - keytar 3 | -------------------------------------------------------------------------------- /cli.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | import "./dist/index.js"; 4 | -------------------------------------------------------------------------------- /src/tools/index.ts: -------------------------------------------------------------------------------- 1 | import "./wallet.js"; 2 | import "./coins.js"; 3 | import "./objects.js"; 4 | import "./transactions.js"; 5 | import "./move.js"; 6 | -------------------------------------------------------------------------------- /src/commands/index.ts: -------------------------------------------------------------------------------- 1 | import { accounts } from "./accounts.js"; 2 | import { init } from "./init.js"; 3 | import { start } from "./start.js"; 4 | 5 | export const commands = [init, start, accounts]; 6 | -------------------------------------------------------------------------------- /src/utils/version.ts: -------------------------------------------------------------------------------- 1 | import fs from "node:fs/promises"; 2 | import path from "node:path"; 3 | 4 | export async function getPackageVersion() { 5 | const packageJson = await fs.readFile( 6 | path.join(import.meta.dirname, "../../package.json"), 7 | "utf-8", 8 | ); 9 | 10 | return JSON.parse(packageJson).version; 11 | } 12 | -------------------------------------------------------------------------------- /.github/workflows/pull_request.yml: -------------------------------------------------------------------------------- 1 | name: Code quality 2 | 3 | on: 4 | push: 5 | pull_request: 6 | 7 | jobs: 8 | quality: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - name: Checkout 12 | uses: actions/checkout@v4 13 | - name: Setup Biome 14 | uses: biomejs/setup-biome@v2 15 | with: 16 | version: latest 17 | - name: Run Biome 18 | run: biome ci . 19 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "module": "NodeNext", 5 | "strict": true, 6 | "verbatimModuleSyntax": true, 7 | "skipLibCheck": true, 8 | "types": ["node"], 9 | "jsx": "react-jsx", 10 | "outDir": "./dist", 11 | "sourceMap": true, 12 | "declaration": true, 13 | "declarationMap": true, 14 | "resolveJsonModule": true 15 | }, 16 | "include": ["src/**/*.ts"] 17 | } 18 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "[javascript]": { 3 | "editor.defaultFormatter": "biomejs.biome" 4 | }, 5 | "[typescript]": { 6 | "editor.defaultFormatter": "biomejs.biome" 7 | }, 8 | "[json]": { 9 | "editor.defaultFormatter": "biomejs.biome" 10 | }, 11 | "[jsonc]": { 12 | "editor.defaultFormatter": "biomejs.biome" 13 | }, 14 | "editor.codeActionsOnSave": { 15 | "source.fixAll.biome": "explicit", 16 | "source.organizeImports.biome": "explicit" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { run } from "@drizzle-team/brocli"; 2 | import { commands } from "./commands/index.js"; 3 | import { logger } from "./logger.js"; 4 | import { getPackageVersion } from "./utils/version.js"; 5 | 6 | run(commands, { 7 | name: "sui-mcp", 8 | description: "SuiMCP CLI", 9 | omitKeysOfUndefinedOptions: true, 10 | version: await getPackageVersion(), 11 | hook: (event, command) => { 12 | logger.debug(`Command Hook: ${event}`, command); 13 | }, 14 | }); 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # dev 2 | .yarn/ 3 | !.yarn/releases 4 | .vscode/* 5 | !.vscode/settings.json 6 | !.vscode/launch.json 7 | !.vscode/*.code-snippets 8 | .idea/workspace.xml 9 | .idea/usage.statistics.xml 10 | .idea/shelf 11 | 12 | # deps 13 | node_modules/ 14 | 15 | # env 16 | .env 17 | .env.production 18 | 19 | # logs 20 | logs/ 21 | *.log 22 | npm-debug.log* 23 | yarn-debug.log* 24 | yarn-error.log* 25 | pnpm-debug.log* 26 | lerna-debug.log* 27 | 28 | # misc 29 | .DS_Store 30 | 31 | # build 32 | dist/ 33 | -------------------------------------------------------------------------------- /src/commands/start.ts: -------------------------------------------------------------------------------- 1 | import { command, string } from "@drizzle-team/brocli"; 2 | import { logger } from "../logger.js"; 3 | import { startServer } from "../server/index.js"; 4 | 5 | export const start = command({ 6 | name: "start", 7 | desc: "Start the SuiMCP server on stdio", 8 | options: { 9 | loglevel: string() 10 | .enum("info", "debug", "warn", "error") 11 | .desc("The log level you want to use") 12 | .default("info"), 13 | }, 14 | handler: ({ loglevel }) => { 15 | logger.level = loglevel; 16 | startServer(); 17 | }, 18 | }); 19 | -------------------------------------------------------------------------------- /src/generate-features.ts: -------------------------------------------------------------------------------- 1 | import { logger } from "./logger.js"; 2 | import { startServer } from "./server/index.js"; 3 | 4 | logger.level = "fatal"; 5 | 6 | const mcp = await startServer(); 7 | 8 | const res = await mcp.fetch( 9 | new Request("https://localhost:3000/tools/list", { method: "POST" }), 10 | ); 11 | 12 | const features = await res.json(); 13 | 14 | console.log( 15 | features.result.tools 16 | .map( 17 | (tool: { name: string; description: string }) => 18 | `- **${tool.name}** - ${tool.description}`, 19 | ) 20 | .join("\n"), 21 | ); 22 | 23 | process.exit(0); 24 | -------------------------------------------------------------------------------- /src/logger.ts: -------------------------------------------------------------------------------- 1 | import { pino } from "pino"; 2 | import pretty from "pino-pretty"; 3 | 4 | export const logger = pino( 5 | { level: "info" }, 6 | pino.multistream( 7 | [ 8 | // NOTE: We need to pass in the destination as 2 (stderr) since stdout is already being used 9 | // for communication via MCP. 10 | pretty({ destination: 2 }), 11 | process.env.SUI_MCP_LOG_FILE !== "off" 12 | ? pino.destination({ 13 | dest: process.env.SUI_MCP_LOG_FILE, 14 | append: false, 15 | }) 16 | : undefined, 17 | ].filter(Boolean) as pino.DestinationStream[], 18 | ), 19 | ); 20 | -------------------------------------------------------------------------------- /biome.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", 3 | "vcs": { 4 | "enabled": false, 5 | "clientKind": "git", 6 | "useIgnoreFile": false 7 | }, 8 | "files": { 9 | "ignoreUnknown": false, 10 | "ignore": ["dist/**", "node_modules/**"] 11 | }, 12 | "formatter": { 13 | "enabled": true, 14 | "indentStyle": "tab" 15 | }, 16 | "organizeImports": { 17 | "enabled": true 18 | }, 19 | "linter": { 20 | "enabled": true, 21 | "rules": { 22 | "recommended": true 23 | } 24 | }, 25 | "javascript": { 26 | "formatter": { 27 | "quoteStyle": "double" 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/server/app.ts: -------------------------------------------------------------------------------- 1 | import { Hono } from "hono"; 2 | import { logger as honoLogger } from "hono/logger"; 3 | import type { ToolResponseType } from "muppet"; 4 | import { logger } from "../logger.js"; 5 | 6 | export const app = new Hono(); 7 | 8 | app.onError((err, c) => { 9 | logger.error(err); 10 | 11 | return c.json( 12 | { 13 | // @ts-expect-error: muppet types are not updated 14 | isError: true, 15 | content: [ 16 | { 17 | type: "text", 18 | text: `Error: ${err.message}`, 19 | }, 20 | ], 21 | }, 22 | 500, 23 | ); 24 | }); 25 | 26 | app.notFound((c) => { 27 | return c.json({ error: "Not Found" }, 404); 28 | }); 29 | 30 | app.use(honoLogger((message, ...rest) => logger.info(message, ...rest))); 31 | -------------------------------------------------------------------------------- /src/server/index.ts: -------------------------------------------------------------------------------- 1 | import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; 2 | 3 | import { bridge, muppet } from "muppet"; 4 | import "../resources/index.js"; 5 | import "../tools/index.js"; 6 | import { logger } from "../logger.js"; 7 | import { getSuiMCPState } from "../state/index.js"; 8 | import { getPackageVersion } from "../utils/version.js"; 9 | import { app } from "./app.js"; 10 | 11 | export async function startServer() { 12 | const { exists } = await getSuiMCPState(); 13 | if (!exists) { 14 | logger.fatal( 15 | "Could not find the SuiMCP configuration. Please run `npx @jordangens/sui-mcp init` to create one.", 16 | ); 17 | process.exit(1); 18 | } 19 | 20 | const mcp = muppet(app, { 21 | name: "SuiMCP", 22 | version: await getPackageVersion(), 23 | }); 24 | 25 | await bridge({ 26 | mcp, 27 | transport: new StdioServerTransport(), 28 | }); 29 | 30 | logger.info("SuiMCP started, listening on stdio"); 31 | 32 | return await mcp; 33 | } 34 | -------------------------------------------------------------------------------- /src/resources/index.ts: -------------------------------------------------------------------------------- 1 | // TODO: Add resources, potentially docs but also potentially the compiled bytecode after a build. 2 | 3 | // import { registerResources, type Resource } from "muppet"; 4 | // import { app } from "../server/app.js"; 5 | 6 | // app.post( 7 | // "/documents", 8 | // registerResources((c) => 9 | // c.json([ 10 | // { 11 | // uri: "https://sdk.mystenlabs.com/llms.txt", 12 | // name: "Sui TypeScript SDK Docs", 13 | // description: 14 | // "The documentation for the Sui TypeScript SDK (@mysten/sui), including React SDKs (@mysten/dapp-kit).", 15 | // mimeType: "text/plain", 16 | // }, 17 | // { 18 | // uri: "https://docs.sui.io/sui-api-ref", 19 | // name: "Sui JSON RPC Reference", 20 | // description: 21 | // "The documentation for the Sui JSON RPC API, which is the primary way to interact with the Sui blockchain.", 22 | // mimeType: "text/html", 23 | // }, 24 | // ]) 25 | // ) 26 | // ); 27 | -------------------------------------------------------------------------------- /src/tools/transactions.ts: -------------------------------------------------------------------------------- 1 | import { type ToolResponseType, describeTool, mValidator } from "muppet"; 2 | import { z } from "zod"; 3 | import { app } from "../server/app.js"; 4 | import { optionalNetwork } from "../utils/schema.js"; 5 | 6 | app.post( 7 | "/get_transaction", 8 | describeTool({ 9 | name: "get_transaction", 10 | description: "Get a transaction by its ID", 11 | }), 12 | mValidator( 13 | "json", 14 | z.object({ 15 | network: optionalNetwork, 16 | digest: z 17 | .string() 18 | .describe("The ID of the transaction you'd like to get."), 19 | }), 20 | ), 21 | async (c) => { 22 | const { network, digest } = c.req.valid("json"); 23 | 24 | const transaction = await network.client.getTransactionBlock({ 25 | digest, 26 | options: { 27 | showBalanceChanges: true, 28 | showEffects: true, 29 | showEvents: true, 30 | showObjectChanges: true, 31 | showInput: true, 32 | }, 33 | }); 34 | 35 | return c.json([ 36 | { 37 | type: "text", 38 | text: JSON.stringify(transaction, null, 2), 39 | }, 40 | ]); 41 | }, 42 | ); 43 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@jordangens/sui-mcp", 3 | "type": "module", 4 | "version": "0.0.5", 5 | "private": false, 6 | "bin": { 7 | "sui-mcp": "cli.js" 8 | }, 9 | "scripts": { 10 | "dev": "pnpx @modelcontextprotocol/inspector bun ./src/index.ts start --loglevel debug", 11 | "dev:server-only": "bun ./src/index.ts", 12 | "build": "tsc -b", 13 | "start": "node ./cli.js", 14 | "prepare": "pnpm run build" 15 | }, 16 | "files": ["cli.js", "dist"], 17 | "publishConfig": { 18 | "access": "public" 19 | }, 20 | "dependencies": { 21 | "@drizzle-team/brocli": "^0.11.0", 22 | "@hono/node-server": "^1.14.0", 23 | "@hono/standard-validator": "^0.1.2", 24 | "@inquirer/prompts": "^7.4.1", 25 | "@modelcontextprotocol/sdk": "^1.8.0", 26 | "@mysten/sui": "^1.26.1", 27 | "fast-glob": "^3.3.3", 28 | "hono": "^4.7.5", 29 | "keytar": "^7.9.0", 30 | "muppet": "^0.2.0", 31 | "pino": "^9.6.0", 32 | "pino-pretty": "^13.0.0", 33 | "yaml": "^2.7.1", 34 | "zod": "^3.24.2" 35 | }, 36 | "devDependencies": { 37 | "@biomejs/biome": "1.9.4", 38 | "@modelcontextprotocol/inspector": "^0.8.1", 39 | "@types/bun": "^1.2.8", 40 | "@types/node": "^20.11.17", 41 | "typescript": "^5.8.3" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/utils/suiCli.ts: -------------------------------------------------------------------------------- 1 | import { execFile } from "node:child_process"; 2 | import util from "node:util"; 3 | import { logger } from "../logger.js"; 4 | 5 | const execFileAsync = util.promisify(execFile); 6 | 7 | export async function getCli() { 8 | const cli = { 9 | moveBuild: async ( 10 | directory: string, 11 | options: { dumpBytecodeAsBase64?: boolean } = {}, 12 | ) => 13 | await execFileAsync( 14 | "sui", 15 | [ 16 | "move", 17 | "build", 18 | "--path", 19 | directory, 20 | "--json-errors", 21 | options.dumpBytecodeAsBase64 ? "--dump-bytecode-as-base64" : "", 22 | ].filter(Boolean), 23 | ), 24 | 25 | moveTest: async (directory: string) => 26 | await execFileAsync("sui", [ 27 | "move", 28 | "test", 29 | "--path", 30 | directory, 31 | "--json-errors", 32 | ]), 33 | }; 34 | 35 | try { 36 | // Get the version of the Sui CLI to ensure it's installed and working. 37 | await execFileAsync("sui", ["--version"]); 38 | } catch (e) { 39 | logger.fatal( 40 | "Could not find the Sui CLI, please ensure that it is installed and try again.", 41 | ); 42 | logger.fatal("https://docs.sui.io/references/cli"); 43 | process.exit(1); 44 | } 45 | 46 | return cli; 47 | } 48 | -------------------------------------------------------------------------------- /src/commands/init.ts: -------------------------------------------------------------------------------- 1 | import { boolean, command } from "@drizzle-team/brocli"; 2 | import { confirm } from "@inquirer/prompts"; 3 | import { 4 | createNewAccount, 5 | getSuiMCPState, 6 | importAccount, 7 | } from "../state/index.js"; 8 | import { 9 | getSuiClientKeypairs, 10 | hasSuiClientKeypairs, 11 | } from "../utils/suiConfig.js"; 12 | 13 | async function importAccounts() { 14 | const kps = await getSuiClientKeypairs(); 15 | 16 | for (const kp of kps) { 17 | const { address } = await importAccount(kp.secretKey); 18 | console.log(`Imported account ${address}`); 19 | } 20 | 21 | console.log(`Initialized SuiMCP with ${kps.length} accounts`); 22 | } 23 | 24 | async function createOrImportAccount() { 25 | console.log( 26 | "To use SuiMCP, you need to import an account. Enter a private key below, or leave empty to generate a new one", 27 | ); 28 | 29 | const { address } = await createNewAccount(); 30 | 31 | console.log(`Initialized SuiMCP with account ${address}`); 32 | } 33 | 34 | export const init = command({ 35 | name: "init", 36 | desc: "Initialize SuiMCP", 37 | options: { 38 | force: boolean() 39 | .desc("Force initialization even if SuiMCP is already initialized") 40 | .default(false), 41 | }, 42 | handler: async ({ force }) => { 43 | if (!force) { 44 | const { exists } = await getSuiMCPState(); 45 | 46 | if (exists) { 47 | console.log("SuiMCP is already initialized, skipping initailization."); 48 | return; 49 | } 50 | } 51 | 52 | const hasAccounts = await hasSuiClientKeypairs(); 53 | if (hasAccounts) { 54 | const confirmInit = await confirm({ 55 | message: "Do you want to import your accounts from the Sui CLI?", 56 | default: true, 57 | }); 58 | 59 | if (confirmInit) { 60 | await importAccounts(); 61 | } else { 62 | await createOrImportAccount(); 63 | } 64 | } else { 65 | await createOrImportAccount(); 66 | } 67 | }, 68 | }); 69 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SuiMCP 2 | 3 | An [MCP server](https://modelcontextprotocol.io/) for the [Sui network](https://sui.io/) which can access data on the Sui network, and interface with your local Sui CLI. 4 | 5 | ## Usage 6 | 7 | To get started, run the following init command to setup SuiMCP: 8 | 9 | ```bash 10 | npx @jordangens/sui-mcp@latest init 11 | ``` 12 | 13 | This will setup the Wallet that you'll use to interact with the chain. You can then configure your client with the following MCP configuration: 14 | 15 | ```json 16 | { 17 | "mcpServers": { 18 | "suiMcp": { 19 | "command": "npx", 20 | "args": ["@jordangens/sui-mcp@latest", "start"] 21 | } 22 | } 23 | } 24 | ``` 25 | 26 | Here's the MCP documentation for popular clients: 27 | 28 | - **[Cursor Guide](https://docs.cursor.com/context/model-context-protocol)** 29 | - **[Claude Desktop Guide](https://modelcontextprotocol.io/quickstart/user)** 30 | 31 | ### Building Move 32 | 33 | To build Move packages, you'll to have the Sui CLI installed and setup before you can use SuiMCP. You can follow the directions here: [Sui CLI](https://docs.sui.io/references/cli). 34 | 35 | ## Features 36 | 37 | ### Tools 38 | 39 | - **get_default_address** - Get the default wallet address 40 | - **list_addresses** - List all addresses available for the current wallet 41 | - **set_default_address** - Set the default address of the wallet 42 | - **get_balance** - Get the balance of a specific coin type for a wallet 43 | - **get_all_balances** - Get all balances for a wallet 44 | - **get_owned_coin_objects** - Get coin objects owned by a wallet, by coin type 45 | - **get_object** - Get an object by its ID 46 | - **get_owned_objects** - Get objects owned by a wallet 47 | - **get_transaction** - Get a transaction by its ID 48 | - **build_move_package** - Build a Sui Move package to bytecode 49 | - **test_move_package** - Test a Sui Move package 50 | - **publish_move_package** - Publish a Sui Move package to the Sui blockchain. This tool will also run Move build and Move test. 51 | -------------------------------------------------------------------------------- /src/tools/objects.ts: -------------------------------------------------------------------------------- 1 | import { type ToolResponseType, describeTool, mValidator } from "muppet"; 2 | import { z } from "zod"; 3 | import { app } from "../server/app.js"; 4 | import { optionalAddress, optionalNetwork } from "../utils/schema.js"; 5 | 6 | app.post( 7 | "/get_object", 8 | describeTool({ 9 | name: "get_object", 10 | description: "Get an object by its ID", 11 | }), 12 | mValidator( 13 | "json", 14 | z.object({ 15 | network: optionalNetwork, 16 | id: z.string().describe("The ID of the object you'd like to get."), 17 | }), 18 | ), 19 | async (c) => { 20 | const { network, id } = c.req.valid("json"); 21 | 22 | const object = await network.client.getObject({ 23 | id, 24 | options: { 25 | showType: true, 26 | showContent: true, 27 | showDisplay: true, 28 | showOwner: true, 29 | showPreviousTransaction: true, 30 | showStorageRebate: true, 31 | }, 32 | }); 33 | 34 | return c.json([ 35 | { 36 | type: "text", 37 | text: JSON.stringify(object, null, 2), 38 | }, 39 | ]); 40 | }, 41 | ); 42 | 43 | app.post( 44 | "/get_owned_objects", 45 | describeTool({ 46 | name: "get_owned_objects", 47 | description: "Get objects owned by a wallet", 48 | }), 49 | mValidator( 50 | "json", 51 | z.object({ 52 | network: optionalNetwork, 53 | address: optionalAddress, 54 | }), 55 | ), 56 | async (c) => { 57 | const { network, address } = c.req.valid("json"); 58 | 59 | const objects = await network.client.getOwnedObjects({ 60 | owner: address, 61 | options: { 62 | showType: true, 63 | showDisplay: true, 64 | showContent: true, 65 | showPreviousTransaction: true, 66 | showStorageRebate: true, 67 | }, 68 | // Filter out coin objects: 69 | filter: { MatchNone: [{ StructType: "0x2::coin::Coin" }] }, 70 | // TODO: Pagination: 71 | limit: 50, 72 | }); 73 | 74 | return c.json([ 75 | { 76 | type: "text", 77 | text: JSON.stringify(objects, null, 2), 78 | }, 79 | ]); 80 | }, 81 | ); 82 | -------------------------------------------------------------------------------- /src/tools/wallet.ts: -------------------------------------------------------------------------------- 1 | import { type ToolResponseType, describeTool, mValidator } from "muppet"; 2 | import { z } from "zod"; 3 | import { app } from "../server/app.js"; 4 | import { getSuiMCPState, setSuiMCPState } from "../state/index.js"; 5 | 6 | app.post( 7 | "/get_default_address", 8 | describeTool({ 9 | name: "get_default_address", 10 | description: "Get the default wallet address", 11 | }), 12 | mValidator("json", z.object({})), 13 | async (c) => { 14 | const { state } = await getSuiMCPState(); 15 | 16 | return c.json([ 17 | { 18 | type: "text", 19 | text: state.activeAddress || "No current default address found", 20 | }, 21 | ]); 22 | }, 23 | ); 24 | 25 | app.post( 26 | "/list_addresses", 27 | describeTool({ 28 | name: "list_addresses", 29 | description: "List all addresses available for the current wallet", 30 | }), 31 | mValidator("json", z.object({})), 32 | async (c) => { 33 | const { state } = await getSuiMCPState(); 34 | 35 | return c.json([ 36 | { 37 | type: "text", 38 | text: JSON.stringify( 39 | { 40 | activeAddress: state.activeAddress, 41 | addresses: state.accounts, 42 | }, 43 | null, 44 | 2, 45 | ), 46 | }, 47 | ]); 48 | }, 49 | ); 50 | 51 | app.post( 52 | "/set_default_address", 53 | describeTool({ 54 | name: "set_default_address", 55 | description: "Set the default address of the wallet", 56 | }), 57 | mValidator( 58 | "json", 59 | z.object({ 60 | address: z 61 | .string() 62 | .describe("The address you want to set as the default"), 63 | }), 64 | ), 65 | async (c) => { 66 | const { address } = c.req.valid("json"); 67 | 68 | const { state } = await getSuiMCPState(); 69 | 70 | if (!state.accounts.some((account) => account.address === address)) { 71 | throw new Error(`Address "${address}" not found`); 72 | } 73 | 74 | state.activeAddress = address; 75 | 76 | await setSuiMCPState(state); 77 | 78 | return c.json([ 79 | { 80 | type: "text", 81 | text: `Switched to "${address}"`, 82 | }, 83 | ]); 84 | }, 85 | ); 86 | -------------------------------------------------------------------------------- /src/commands/accounts.ts: -------------------------------------------------------------------------------- 1 | import { command, positional } from "@drizzle-team/brocli"; 2 | import { 3 | createNewAccount, 4 | deleteAccount, 5 | getSuiMCPState, 6 | setSuiMCPState, 7 | } from "../state/index.js"; 8 | 9 | export const accounts = command({ 10 | name: "accounts", 11 | desc: "Manage your SuiMCP accounts", 12 | subcommands: [ 13 | command({ 14 | name: "create", 15 | desc: "Create or import an account", 16 | handler: async () => { 17 | const { address } = await createNewAccount(); 18 | console.log(`Added account: ${address}`); 19 | }, 20 | }), 21 | command({ 22 | name: "list", 23 | desc: "List all accounts", 24 | handler: async () => { 25 | const { state } = await getSuiMCPState(); 26 | state.accounts.map((account) => { 27 | console.log(`- ${account.address}`); 28 | }); 29 | console.log(`\nDefault Account: ${state.activeAddress}`); 30 | }, 31 | }), 32 | command({ 33 | name: "delete", 34 | desc: "Delete an account", 35 | options: { 36 | address: positional() 37 | .required() 38 | .desc("The address of the account to delete"), 39 | }, 40 | handler: async ({ address }) => { 41 | await deleteAccount(address); 42 | console.log(`Deleted account: ${address}`); 43 | }, 44 | }), 45 | command({ 46 | name: "get-default", 47 | desc: "Get the default account", 48 | handler: async () => { 49 | const { state } = await getSuiMCPState(); 50 | if (!state.activeAddress) { 51 | console.log("No default account found"); 52 | return; 53 | } 54 | 55 | console.log(`Default account: ${state.activeAddress}`); 56 | }, 57 | }), 58 | command({ 59 | name: "set-default", 60 | desc: "Set the default account", 61 | options: { 62 | address: positional() 63 | .required() 64 | .desc("The address of the account to set as the default"), 65 | }, 66 | handler: async ({ address }) => { 67 | const { state } = await getSuiMCPState(); 68 | if (!state.accounts.find((account) => account.address === address)) { 69 | throw new Error(`Account ${address} not found`); 70 | } 71 | 72 | state.activeAddress = address; 73 | await setSuiMCPState(state); 74 | 75 | console.log(`Set default account to ${address}`); 76 | }, 77 | }), 78 | ], 79 | }); 80 | -------------------------------------------------------------------------------- /src/utils/schema.ts: -------------------------------------------------------------------------------- 1 | import { stat } from "node:fs/promises"; 2 | import path from "node:path"; 3 | import { SuiClient, getFullnodeUrl } from "@mysten/sui/client"; 4 | import fg from "fast-glob"; 5 | import { z } from "zod"; 6 | import { logger } from "../logger.js"; 7 | import { getSuiMCPState } from "../state/index.js"; 8 | 9 | export const optionalAddress = z 10 | .string() 11 | .trim() 12 | .optional() 13 | .describe( 14 | "The address of the wallet you'd like to use. If empty, defaults to the current wallet.", 15 | ) 16 | .transform(async (address) => { 17 | const { state } = await getSuiMCPState(); 18 | 19 | if (!address) { 20 | if (!state.activeAddress) { 21 | throw new Error("No address provided and no active address found"); 22 | } 23 | 24 | return state.activeAddress; 25 | } 26 | 27 | return address; 28 | }); 29 | 30 | export const optionalNetwork = z 31 | .string() 32 | .trim() 33 | .optional() 34 | .default("testnet") 35 | .describe( 36 | "The network to use. Must be one of `mainnet`, `testnet`, `devnet`, or `localnet`. If empty, defaults to `testnet`.", 37 | ) 38 | .transform(async (network) => { 39 | if (!network) { 40 | // biome-ignore lint/style/noParameterAssign: Ehhh it's fine. 41 | network = "testnet"; 42 | } 43 | 44 | if (!["mainnet", "testnet", "devnet", "localnet"].includes(network)) { 45 | throw new Error( 46 | "Invalid network. Must be one of `mainnet`, `testnet`, `devnet`, or `localnet`", 47 | ); 48 | } 49 | 50 | return { 51 | alias: network, 52 | client: new SuiClient({ 53 | url: getFullnodeUrl( 54 | network as "mainnet" | "testnet" | "devnet" | "localnet", 55 | ), 56 | }), 57 | }; 58 | }); 59 | 60 | export const moveDirectory = z 61 | .string() 62 | .startsWith("/") 63 | .describe( 64 | "The directory of the Move package. Must be an absolute path, starting with /", 65 | ) 66 | .transform(async (directory) => { 67 | if (!(await stat(directory)).isDirectory()) { 68 | throw new Error("Directory does not exist"); 69 | } 70 | 71 | const moveToml = (await fg(["**/Move.toml"], { cwd: directory })).sort( 72 | (a, b) => a.length - b.length, 73 | ); 74 | 75 | if (moveToml.length === 0) { 76 | throw new Error("Move.toml not found"); 77 | } 78 | 79 | if (moveToml.length > 1) { 80 | logger.warn("Multiple Move.toml files found, using the shortest one"); 81 | } 82 | 83 | return path.join(directory, path.dirname(moveToml[0])); 84 | }); 85 | -------------------------------------------------------------------------------- /src/utils/suiConfig.ts: -------------------------------------------------------------------------------- 1 | import fs from "node:fs/promises"; 2 | import { homedir } from "node:os"; 3 | import path from "node:path"; 4 | import { SIGNATURE_SCHEME_TO_FLAG } from "@mysten/sui/cryptography"; 5 | import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519"; 6 | import { Secp256k1Keypair } from "@mysten/sui/keypairs/secp256k1"; 7 | import { Secp256r1Keypair } from "@mysten/sui/keypairs/secp256r1"; 8 | import { fromBase64 } from "@mysten/sui/utils"; 9 | import yaml from "yaml"; 10 | import { z } from "zod"; 11 | 12 | const SUI_DIR = ".sui"; 13 | const SUI_CONFIG_DIR = "sui_config"; 14 | const SUI_CLIENT_CONFIG = "client.yaml"; 15 | const SUI_KEYSTORE_FILENAME = "sui.keystore"; 16 | 17 | function getSuiConfigDirectory() { 18 | return ( 19 | process.env.SUI_CONFIG_DIR || path.join(homedir(), SUI_DIR, SUI_CONFIG_DIR) 20 | ); 21 | } 22 | 23 | const ClientConfigSchema = z.object({ 24 | // TODO: Add schema for keystore, once we actually need to process it. 25 | keystore: z.any(), 26 | // NOTE: This omits some fields, but we only care about these ones: 27 | envs: z.array(z.object({ alias: z.string(), rpc: z.string() })), 28 | active_env: z.string(), 29 | active_address: z.string(), 30 | }); 31 | 32 | export async function getSuiClientConfig() { 33 | const configDir = getSuiConfigDirectory(); 34 | const configPath = path.join(configDir, SUI_CLIENT_CONFIG); 35 | const file = await fs.readFile(configPath, "utf8"); 36 | const config = yaml.parse(file); 37 | return ClientConfigSchema.parse(config); 38 | } 39 | 40 | const KEYPAIR_CONSTRUCTORS = { 41 | [SIGNATURE_SCHEME_TO_FLAG.ED25519]: Ed25519Keypair, 42 | [SIGNATURE_SCHEME_TO_FLAG.Secp256k1]: Secp256k1Keypair, 43 | [SIGNATURE_SCHEME_TO_FLAG.Secp256r1]: Secp256r1Keypair, 44 | } as Record< 45 | string, 46 | typeof Ed25519Keypair | typeof Secp256k1Keypair | typeof Secp256r1Keypair 47 | >; 48 | 49 | export async function getSuiClientKeypairs() { 50 | const configDir = getSuiConfigDirectory(); 51 | const keystorePath = path.join(configDir, SUI_KEYSTORE_FILENAME); 52 | 53 | const keystore = JSON.parse( 54 | await fs.readFile(keystorePath, "utf8"), 55 | ) as string[]; 56 | 57 | return keystore.map((key) => { 58 | const bytes = fromBase64(key); 59 | const scheme = bytes[0]; 60 | const KeyPair = KEYPAIR_CONSTRUCTORS[scheme]; 61 | 62 | if (!KeyPair) { 63 | throw new Error(`Unsupported key scheme: ${scheme}`); 64 | } 65 | 66 | const kp = KeyPair.fromSecretKey(bytes.slice(1)); 67 | 68 | return { 69 | address: kp.toSuiAddress(), 70 | secretKey: kp.getSecretKey(), 71 | }; 72 | }); 73 | } 74 | 75 | export async function hasSuiClientKeypairs() { 76 | try { 77 | const kps = await getSuiClientKeypairs(); 78 | return kps.length > 0; 79 | } catch { 80 | return false; 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /src/tools/coins.ts: -------------------------------------------------------------------------------- 1 | import { SUI_TYPE_ARG } from "@mysten/sui/utils"; 2 | import { type ToolResponseType, describeTool, mValidator } from "muppet"; 3 | import { z } from "zod"; 4 | import { app } from "../server/app.js"; 5 | import { optionalAddress, optionalNetwork } from "../utils/schema.js"; 6 | 7 | app.post( 8 | "/get_balance", 9 | describeTool({ 10 | name: "get_balance", 11 | description: "Get the balance of a specific coin type for a wallet", 12 | }), 13 | mValidator( 14 | "json", 15 | z.object({ 16 | network: optionalNetwork, 17 | address: optionalAddress, 18 | coinType: z 19 | .string() 20 | .describe( 21 | "The coin type you'd like to get the balance for. Defaults to the SUI coin type.", 22 | ) 23 | .default(SUI_TYPE_ARG), 24 | }), 25 | ), 26 | async (c) => { 27 | const { network, address, coinType } = c.req.valid("json"); 28 | 29 | const [balance, metadata] = await Promise.all([ 30 | network.client.getBalance({ 31 | owner: address, 32 | coinType, 33 | }), 34 | network.client.getCoinMetadata({ coinType }), 35 | ]); 36 | 37 | return c.json([ 38 | { 39 | type: "text", 40 | text: JSON.stringify({ 41 | // TODO: Format balance with decimals: 42 | balance, 43 | metadata, 44 | }), 45 | }, 46 | ]); 47 | }, 48 | ); 49 | 50 | app.post( 51 | "/get_all_balances", 52 | describeTool({ 53 | name: "get_all_balances", 54 | description: "Get all balances for a wallet", 55 | }), 56 | mValidator( 57 | "json", 58 | z.object({ 59 | network: optionalNetwork, 60 | address: optionalAddress, 61 | }), 62 | ), 63 | async (c) => { 64 | const { network, address } = c.req.valid("json"); 65 | 66 | const balances = await network.client.getAllBalances({ 67 | owner: address, 68 | }); 69 | 70 | return c.json([ 71 | { 72 | type: "text", 73 | text: JSON.stringify(balances, null, 2), 74 | }, 75 | ]); 76 | }, 77 | ); 78 | 79 | app.post( 80 | "/get_owned_coin_objects", 81 | describeTool({ 82 | name: "get_owned_coin_objects", 83 | description: "Get coin objects owned by a wallet, by coin type", 84 | }), 85 | mValidator( 86 | "json", 87 | z.object({ 88 | network: optionalNetwork, 89 | address: optionalAddress, 90 | coinType: z 91 | .string() 92 | .describe( 93 | "The coin type you'd like to get the coins for. Defaults to the SUI coin type.", 94 | ) 95 | .default(SUI_TYPE_ARG), 96 | }), 97 | ), 98 | async (c) => { 99 | const { network, address, coinType } = c.req.valid("json"); 100 | 101 | const coins = await network.client.getCoins({ 102 | owner: address, 103 | coinType, 104 | // TODO: Pagination: 105 | limit: 50, 106 | }); 107 | 108 | return c.json([ 109 | { 110 | type: "text", 111 | text: JSON.stringify(coins, null, 2), 112 | }, 113 | ]); 114 | }, 115 | ); 116 | -------------------------------------------------------------------------------- /src/tools/move.ts: -------------------------------------------------------------------------------- 1 | import { Transaction } from "@mysten/sui/transactions"; 2 | import { type ToolResponseType, describeTool, mValidator } from "muppet"; 3 | import { z } from "zod"; 4 | import { app } from "../server/app.js"; 5 | import { getKeypair } from "../state/index.js"; 6 | import { 7 | moveDirectory, 8 | optionalAddress, 9 | optionalNetwork, 10 | } from "../utils/schema.js"; 11 | import { getCli } from "../utils/suiCli.js"; 12 | 13 | app.post( 14 | "/build_move_package", 15 | describeTool({ 16 | name: "build_move_package", 17 | description: "Build a Sui Move package to bytecode", 18 | }), 19 | mValidator( 20 | "json", 21 | z.object({ 22 | directory: moveDirectory, 23 | }), 24 | ), 25 | async (c) => { 26 | const { directory } = c.req.valid("json"); 27 | 28 | const cli = await getCli(); 29 | 30 | const response = await cli.moveBuild(directory); 31 | 32 | return c.json([ 33 | { 34 | type: "text", 35 | text: `${response.stdout}\n${response.stderr}`, 36 | }, 37 | ]); 38 | }, 39 | ); 40 | 41 | app.post( 42 | "/test_move_package ", 43 | describeTool({ 44 | name: "test_move_package", 45 | description: "Test a Sui Move package", 46 | }), 47 | mValidator( 48 | "json", 49 | z.object({ 50 | directory: moveDirectory, 51 | }), 52 | ), 53 | async (c) => { 54 | const { directory } = c.req.valid("json"); 55 | 56 | const cli = await getCli(); 57 | 58 | const response = await cli.moveTest(directory); 59 | 60 | return c.json([ 61 | { 62 | type: "text", 63 | text: `${response.stdout}\n${response.stderr}`, 64 | }, 65 | ]); 66 | }, 67 | ); 68 | 69 | // TODO: Maybe accept bytecode directly so that we can publish via TypeScript SDK and not need to go through CLI, 70 | // and also so that agents can work with less fs access. 71 | app.post( 72 | "/publish_move_package", 73 | describeTool({ 74 | name: "publish_move_package", 75 | description: 76 | "Publish a Sui Move package to the Sui blockchain. This tool will also run Move build and Move test.", 77 | }), 78 | mValidator( 79 | "json", 80 | z.object({ 81 | address: optionalAddress, 82 | network: optionalNetwork, 83 | directory: moveDirectory, 84 | }), 85 | ), 86 | async (c) => { 87 | const { directory, address, network } = c.req.valid("json"); 88 | 89 | const cli = await getCli(); 90 | 91 | const { modules, dependencies } = JSON.parse( 92 | (await cli.moveBuild(directory, { dumpBytecodeAsBase64: true })).stdout, 93 | ); 94 | 95 | // TODO: Run tests and report results: 96 | // const test = await cli.moveTest(directory); 97 | 98 | const tx = new Transaction(); 99 | 100 | tx.setSender(address); 101 | 102 | const cap = tx.publish({ 103 | modules, 104 | dependencies, 105 | }); 106 | 107 | tx.transferObjects([cap], address); 108 | 109 | const results = await network.client.signAndExecuteTransaction({ 110 | transaction: tx, 111 | signer: await getKeypair(address), 112 | options: { 113 | showEffects: true, 114 | showBalanceChanges: true, 115 | showEvents: true, 116 | }, 117 | }); 118 | 119 | return c.json([ 120 | { 121 | type: "text", 122 | text: JSON.stringify(results, null, 2), 123 | }, 124 | ]); 125 | }, 126 | ); 127 | -------------------------------------------------------------------------------- /src/state/index.ts: -------------------------------------------------------------------------------- 1 | import { mkdir, readFile, stat, writeFile } from "node:fs/promises"; 2 | import { homedir } from "node:os"; 3 | import { dirname, join } from "node:path"; 4 | import { password } from "@inquirer/prompts"; 5 | import { decodeSuiPrivateKey } from "@mysten/sui/cryptography"; 6 | import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519"; 7 | import { Secp256k1Keypair } from "@mysten/sui/keypairs/secp256k1"; 8 | import { Secp256r1Keypair } from "@mysten/sui/keypairs/secp256r1"; 9 | import keytar from "keytar"; 10 | import { z } from "zod"; 11 | 12 | const SUI_MCP_SERVICE = "sui-mcp"; 13 | const SUI_MCP_DIRECTORY = ".sui-mcp"; 14 | 15 | const SuiMCPStateSchema = z.object({ 16 | version: z.literal("v1").default("v1"), 17 | service: z.literal("sui-mcp").default("sui-mcp"), 18 | activeAddress: z.string().nullish().default(null), 19 | accounts: z 20 | .array( 21 | z.object({ 22 | address: z.string(), 23 | }), 24 | ) 25 | .default([]), 26 | }); 27 | 28 | function getStatePath() { 29 | return ( 30 | process.env.SUI_MCP_STATE_PATH ?? 31 | join(homedir(), SUI_MCP_DIRECTORY, "state.json") 32 | ); 33 | } 34 | 35 | const SCHEMA_TO_KEYPAIR_CONSTRUCTOR = { 36 | ED25519: Ed25519Keypair, 37 | Secp256k1: Secp256k1Keypair, 38 | Secp256r1: Secp256r1Keypair, 39 | // Unsuppored keypairs: 40 | MultiSig: null, 41 | ZkLogin: null, 42 | Passkey: null, 43 | } as const; 44 | 45 | export async function createNewAccount() { 46 | let privateKey = await password({ 47 | message: "Private Key", 48 | mask: true, 49 | }); 50 | 51 | if (!privateKey) { 52 | privateKey = Ed25519Keypair.generate().getSecretKey(); 53 | } 54 | 55 | return await importAccount(privateKey); 56 | } 57 | 58 | export async function importAccount(privateKey: string) { 59 | const { state } = await getSuiMCPState(); 60 | 61 | const { schema, secretKey } = decodeSuiPrivateKey(privateKey); 62 | 63 | const KeypairConstructor = SCHEMA_TO_KEYPAIR_CONSTRUCTOR[schema]; 64 | 65 | if (!KeypairConstructor) { 66 | throw new Error(`Unsupported key scheme: ${schema}`); 67 | } 68 | 69 | const keypair = KeypairConstructor.fromSecretKey(secretKey); 70 | 71 | await keytar.setPassword(SUI_MCP_SERVICE, keypair.toSuiAddress(), privateKey); 72 | 73 | state.accounts.push({ 74 | address: keypair.toSuiAddress(), 75 | }); 76 | 77 | state.activeAddress = keypair.toSuiAddress(); 78 | 79 | await setSuiMCPState(state); 80 | 81 | return { address: keypair.toSuiAddress() }; 82 | } 83 | 84 | export async function deleteAccount(address: string) { 85 | const { state } = await getSuiMCPState(); 86 | 87 | state.accounts = state.accounts.filter( 88 | (account) => account.address !== address, 89 | ); 90 | 91 | if (state.activeAddress === address) { 92 | state.activeAddress = state.accounts[0]?.address ?? null; 93 | } 94 | 95 | await keytar.deletePassword(SUI_MCP_SERVICE, address); 96 | 97 | await setSuiMCPState(state); 98 | } 99 | 100 | export async function getSuiMCPState() { 101 | const statePath = getStatePath(); 102 | 103 | try { 104 | if (!(await stat(statePath)).isFile()) { 105 | throw Error("State file does not exist or is not a file"); 106 | } 107 | } catch { 108 | return { 109 | state: SuiMCPStateSchema.parse({}), 110 | exists: false, 111 | }; 112 | } 113 | 114 | const state = SuiMCPStateSchema.parse( 115 | JSON.parse(await readFile(statePath, "utf8")), 116 | ); 117 | 118 | return { state, exists: true }; 119 | } 120 | 121 | export async function setSuiMCPState(state: z.infer) { 122 | const statePath = getStatePath(); 123 | 124 | await mkdir(dirname(statePath), { recursive: true }); 125 | 126 | await writeFile(statePath, JSON.stringify(state, null, 2)); 127 | } 128 | 129 | export async function getKeypair(address: string) { 130 | const privateKey = await keytar.getPassword(SUI_MCP_SERVICE, address); 131 | 132 | if (!privateKey) { 133 | throw new Error(`Private key for address "${address}" not found`); 134 | } 135 | 136 | return Ed25519Keypair.fromSecretKey(privateKey); 137 | } 138 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@drizzle-team/brocli': 12 | specifier: ^0.11.0 13 | version: 0.11.0 14 | '@hono/node-server': 15 | specifier: ^1.14.0 16 | version: 1.14.0(hono@4.7.5) 17 | '@hono/standard-validator': 18 | specifier: ^0.1.2 19 | version: 0.1.2(@standard-schema/spec@1.0.0)(hono@4.7.5) 20 | '@inquirer/prompts': 21 | specifier: ^7.4.1 22 | version: 7.4.1(@types/node@20.17.30) 23 | '@modelcontextprotocol/sdk': 24 | specifier: ^1.8.0 25 | version: 1.8.0 26 | '@mysten/sui': 27 | specifier: ^1.26.1 28 | version: 1.26.1(typescript@5.8.3) 29 | fast-glob: 30 | specifier: ^3.3.3 31 | version: 3.3.3 32 | hono: 33 | specifier: ^4.7.5 34 | version: 4.7.5 35 | keytar: 36 | specifier: ^7.9.0 37 | version: 7.9.0 38 | muppet: 39 | specifier: ^0.2.0 40 | version: 0.2.0(@hono/standard-validator@0.1.2(@standard-schema/spec@1.0.0)(hono@4.7.5))(@modelcontextprotocol/sdk@1.8.0)(@standard-community/standard-json@0.1.2(zod-to-json-schema@3.24.5(zod@3.24.2)))(@standard-schema/spec@1.0.0)(hono@4.7.5) 41 | pino: 42 | specifier: ^9.6.0 43 | version: 9.6.0 44 | pino-pretty: 45 | specifier: ^13.0.0 46 | version: 13.0.0 47 | yaml: 48 | specifier: ^2.7.1 49 | version: 2.7.1 50 | zod: 51 | specifier: ^3.24.2 52 | version: 3.24.2 53 | devDependencies: 54 | '@biomejs/biome': 55 | specifier: 1.9.4 56 | version: 1.9.4 57 | '@modelcontextprotocol/inspector': 58 | specifier: ^0.8.1 59 | version: 0.8.1(@types/node@20.17.30)(typescript@5.8.3) 60 | '@types/bun': 61 | specifier: ^1.2.8 62 | version: 1.2.8 63 | '@types/node': 64 | specifier: ^20.11.17 65 | version: 20.17.30 66 | typescript: 67 | specifier: ^5.8.3 68 | version: 5.8.3 69 | 70 | packages: 71 | 72 | '@0no-co/graphql.web@1.1.2': 73 | resolution: {integrity: sha512-N2NGsU5FLBhT8NZ+3l2YrzZSHITjNXNuDhC4iDiikv0IujaJ0Xc6xIxQZ/Ek3Cb+rgPjnLHYyJm11tInuJn+cw==} 74 | peerDependencies: 75 | graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 76 | peerDependenciesMeta: 77 | graphql: 78 | optional: true 79 | 80 | '@0no-co/graphqlsp@1.12.16': 81 | resolution: {integrity: sha512-B5pyYVH93Etv7xjT6IfB7QtMBdaaC07yjbhN6v8H7KgFStMkPvi+oWYBTibMFRMY89qwc9H8YixXg8SXDVgYWw==} 82 | peerDependencies: 83 | graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 84 | typescript: ^5.0.0 85 | 86 | '@biomejs/biome@1.9.4': 87 | resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} 88 | engines: {node: '>=14.21.3'} 89 | hasBin: true 90 | 91 | '@biomejs/cli-darwin-arm64@1.9.4': 92 | resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==} 93 | engines: {node: '>=14.21.3'} 94 | cpu: [arm64] 95 | os: [darwin] 96 | 97 | '@biomejs/cli-darwin-x64@1.9.4': 98 | resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==} 99 | engines: {node: '>=14.21.3'} 100 | cpu: [x64] 101 | os: [darwin] 102 | 103 | '@biomejs/cli-linux-arm64-musl@1.9.4': 104 | resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==} 105 | engines: {node: '>=14.21.3'} 106 | cpu: [arm64] 107 | os: [linux] 108 | 109 | '@biomejs/cli-linux-arm64@1.9.4': 110 | resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==} 111 | engines: {node: '>=14.21.3'} 112 | cpu: [arm64] 113 | os: [linux] 114 | 115 | '@biomejs/cli-linux-x64-musl@1.9.4': 116 | resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==} 117 | engines: {node: '>=14.21.3'} 118 | cpu: [x64] 119 | os: [linux] 120 | 121 | '@biomejs/cli-linux-x64@1.9.4': 122 | resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==} 123 | engines: {node: '>=14.21.3'} 124 | cpu: [x64] 125 | os: [linux] 126 | 127 | '@biomejs/cli-win32-arm64@1.9.4': 128 | resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==} 129 | engines: {node: '>=14.21.3'} 130 | cpu: [arm64] 131 | os: [win32] 132 | 133 | '@biomejs/cli-win32-x64@1.9.4': 134 | resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==} 135 | engines: {node: '>=14.21.3'} 136 | cpu: [x64] 137 | os: [win32] 138 | 139 | '@cspotcode/source-map-support@0.8.1': 140 | resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} 141 | engines: {node: '>=12'} 142 | 143 | '@drizzle-team/brocli@0.11.0': 144 | resolution: {integrity: sha512-hD3pekGiPg0WPCCGAZmusBBJsDqGUR66Y452YgQsZOnkdQ7ViEPKuyP4huUGEZQefp8g34RRodXYmJ2TbCH+tg==} 145 | 146 | '@floating-ui/core@1.6.9': 147 | resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} 148 | 149 | '@floating-ui/dom@1.6.13': 150 | resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} 151 | 152 | '@floating-ui/react-dom@2.1.2': 153 | resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} 154 | peerDependencies: 155 | react: '>=16.8.0' 156 | react-dom: '>=16.8.0' 157 | 158 | '@floating-ui/utils@0.2.9': 159 | resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} 160 | 161 | '@gql.tada/cli-utils@1.6.3': 162 | resolution: {integrity: sha512-jFFSY8OxYeBxdKi58UzeMXG1tdm4FVjXa8WHIi66Gzu9JWtCE6mqom3a8xkmSw+mVaybFW5EN2WXf1WztJVNyQ==} 163 | peerDependencies: 164 | '@0no-co/graphqlsp': ^1.12.13 165 | '@gql.tada/svelte-support': 1.0.1 166 | '@gql.tada/vue-support': 1.0.1 167 | graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 168 | typescript: ^5.0.0 169 | peerDependenciesMeta: 170 | '@gql.tada/svelte-support': 171 | optional: true 172 | '@gql.tada/vue-support': 173 | optional: true 174 | 175 | '@gql.tada/internal@1.0.8': 176 | resolution: {integrity: sha512-XYdxJhtHC5WtZfdDqtKjcQ4d7R1s0d1rnlSs3OcBEUbYiPoJJfZU7tWsVXuv047Z6msvmr4ompJ7eLSK5Km57g==} 177 | peerDependencies: 178 | graphql: ^15.5.0 || ^16.0.0 || ^17.0.0 179 | typescript: ^5.0.0 180 | 181 | '@graphql-typed-document-node/core@3.2.0': 182 | resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} 183 | peerDependencies: 184 | graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 185 | 186 | '@hono/node-server@1.14.0': 187 | resolution: {integrity: sha512-YUCxJwgHRKSqjrdTk9e4VMGKN27MK5r4+MGPyZTgKH+IYbK+KtYbHeOcPGJ91KGGD6RIQiz2dAHxvjauNhOS8g==} 188 | engines: {node: '>=18.14.1'} 189 | peerDependencies: 190 | hono: ^4 191 | 192 | '@hono/standard-validator@0.1.2': 193 | resolution: {integrity: sha512-mVyv2fpx/o0MNAEhjXhvuVbW3BWTGnf8F4w8ZifztE+TWXjUAKr7KAOZfcDhVrurgVhKw7RbTnEog2beZM6QtQ==} 194 | peerDependencies: 195 | '@standard-schema/spec': 1.0.0 196 | hono: '>=3.9.0' 197 | 198 | '@inquirer/checkbox@4.1.5': 199 | resolution: {integrity: sha512-swPczVU+at65xa5uPfNP9u3qx/alNwiaykiI/ExpsmMSQW55trmZcwhYWzw/7fj+n6Q8z1eENvR7vFfq9oPSAQ==} 200 | engines: {node: '>=18'} 201 | peerDependencies: 202 | '@types/node': '>=18' 203 | peerDependenciesMeta: 204 | '@types/node': 205 | optional: true 206 | 207 | '@inquirer/confirm@5.1.9': 208 | resolution: {integrity: sha512-NgQCnHqFTjF7Ys2fsqK2WtnA8X1kHyInyG+nMIuHowVTIgIuS10T4AznI/PvbqSpJqjCUqNBlKGh1v3bwLFL4w==} 209 | engines: {node: '>=18'} 210 | peerDependencies: 211 | '@types/node': '>=18' 212 | peerDependenciesMeta: 213 | '@types/node': 214 | optional: true 215 | 216 | '@inquirer/core@10.1.10': 217 | resolution: {integrity: sha512-roDaKeY1PYY0aCqhRmXihrHjoSW2A00pV3Ke5fTpMCkzcGF64R8e0lw3dK+eLEHwS4vB5RnW1wuQmvzoRul8Mw==} 218 | engines: {node: '>=18'} 219 | peerDependencies: 220 | '@types/node': '>=18' 221 | peerDependenciesMeta: 222 | '@types/node': 223 | optional: true 224 | 225 | '@inquirer/editor@4.2.10': 226 | resolution: {integrity: sha512-5GVWJ+qeI6BzR6TIInLP9SXhWCEcvgFQYmcRG6d6RIlhFjM5TyG18paTGBgRYyEouvCmzeco47x9zX9tQEofkw==} 227 | engines: {node: '>=18'} 228 | peerDependencies: 229 | '@types/node': '>=18' 230 | peerDependenciesMeta: 231 | '@types/node': 232 | optional: true 233 | 234 | '@inquirer/expand@4.0.12': 235 | resolution: {integrity: sha512-jV8QoZE1fC0vPe6TnsOfig+qwu7Iza1pkXoUJ3SroRagrt2hxiL+RbM432YAihNR7m7XnU0HWl/WQ35RIGmXHw==} 236 | engines: {node: '>=18'} 237 | peerDependencies: 238 | '@types/node': '>=18' 239 | peerDependenciesMeta: 240 | '@types/node': 241 | optional: true 242 | 243 | '@inquirer/figures@1.0.11': 244 | resolution: {integrity: sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw==} 245 | engines: {node: '>=18'} 246 | 247 | '@inquirer/input@4.1.9': 248 | resolution: {integrity: sha512-mshNG24Ij5KqsQtOZMgj5TwEjIf+F2HOESk6bjMwGWgcH5UBe8UoljwzNFHqdMbGYbgAf6v2wU/X9CAdKJzgOA==} 249 | engines: {node: '>=18'} 250 | peerDependencies: 251 | '@types/node': '>=18' 252 | peerDependenciesMeta: 253 | '@types/node': 254 | optional: true 255 | 256 | '@inquirer/number@3.0.12': 257 | resolution: {integrity: sha512-7HRFHxbPCA4e4jMxTQglHJwP+v/kpFsCf2szzfBHy98Wlc3L08HL76UDiA87TOdX5fwj2HMOLWqRWv9Pnn+Z5Q==} 258 | engines: {node: '>=18'} 259 | peerDependencies: 260 | '@types/node': '>=18' 261 | peerDependenciesMeta: 262 | '@types/node': 263 | optional: true 264 | 265 | '@inquirer/password@4.0.12': 266 | resolution: {integrity: sha512-FlOB0zvuELPEbnBYiPaOdJIaDzb2PmJ7ghi/SVwIHDDSQ2K4opGBkF+5kXOg6ucrtSUQdLhVVY5tycH0j0l+0g==} 267 | engines: {node: '>=18'} 268 | peerDependencies: 269 | '@types/node': '>=18' 270 | peerDependenciesMeta: 271 | '@types/node': 272 | optional: true 273 | 274 | '@inquirer/prompts@7.4.1': 275 | resolution: {integrity: sha512-UlmM5FVOZF0gpoe1PT/jN4vk8JmpIWBlMvTL8M+hlvPmzN89K6z03+IFmyeu/oFCenwdwHDr2gky7nIGSEVvlA==} 276 | engines: {node: '>=18'} 277 | peerDependencies: 278 | '@types/node': '>=18' 279 | peerDependenciesMeta: 280 | '@types/node': 281 | optional: true 282 | 283 | '@inquirer/rawlist@4.0.12': 284 | resolution: {integrity: sha512-wNPJZy8Oc7RyGISPxp9/MpTOqX8lr0r+lCCWm7hQra+MDtYRgINv1hxw7R+vKP71Bu/3LszabxOodfV/uTfsaA==} 285 | engines: {node: '>=18'} 286 | peerDependencies: 287 | '@types/node': '>=18' 288 | peerDependenciesMeta: 289 | '@types/node': 290 | optional: true 291 | 292 | '@inquirer/search@3.0.12': 293 | resolution: {integrity: sha512-H/kDJA3kNlnNIjB8YsaXoQI0Qccgf0Na14K1h8ExWhNmUg2E941dyFPrZeugihEa9AZNW5NdsD/NcvUME83OPQ==} 294 | engines: {node: '>=18'} 295 | peerDependencies: 296 | '@types/node': '>=18' 297 | peerDependenciesMeta: 298 | '@types/node': 299 | optional: true 300 | 301 | '@inquirer/select@4.1.1': 302 | resolution: {integrity: sha512-IUXzzTKVdiVNMA+2yUvPxWsSgOG4kfX93jOM4Zb5FgujeInotv5SPIJVeXQ+fO4xu7tW8VowFhdG5JRmmCyQ1Q==} 303 | engines: {node: '>=18'} 304 | peerDependencies: 305 | '@types/node': '>=18' 306 | peerDependenciesMeta: 307 | '@types/node': 308 | optional: true 309 | 310 | '@inquirer/type@3.0.6': 311 | resolution: {integrity: sha512-/mKVCtVpyBu3IDarv0G+59KC4stsD5mDsGpYh+GKs1NZT88Jh52+cuoA1AtLk2Q0r/quNl+1cSUyLRHBFeD0XA==} 312 | engines: {node: '>=18'} 313 | peerDependencies: 314 | '@types/node': '>=18' 315 | peerDependenciesMeta: 316 | '@types/node': 317 | optional: true 318 | 319 | '@jridgewell/resolve-uri@3.1.2': 320 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 321 | engines: {node: '>=6.0.0'} 322 | 323 | '@jridgewell/sourcemap-codec@1.5.0': 324 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 325 | 326 | '@jridgewell/trace-mapping@0.3.9': 327 | resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} 328 | 329 | '@modelcontextprotocol/inspector-client@0.8.1': 330 | resolution: {integrity: sha512-4bqUvH4KGtn1eZXhu5siHgbQ0R+ni8eGEt2x5hZhUx1gkzC8gt/qYwMUgkUOBiA90+MbFRSck52vxFQDRaA3Yg==} 331 | hasBin: true 332 | 333 | '@modelcontextprotocol/inspector-server@0.8.1': 334 | resolution: {integrity: sha512-VKbPWOC6/rb5W1Yz+CI4zsRrqG9LU2MZO/keqyVIdwVEKEi9Oty4aOULUmZocBRWU3rZ99JNthQRlD4vJEpdPQ==} 335 | hasBin: true 336 | 337 | '@modelcontextprotocol/inspector@0.8.1': 338 | resolution: {integrity: sha512-BbrzF+1ebkkCmVQHFpulAJmaugim+gXikAP8kc/+L4/UMh7tR6ZmTCyP8TpyU9duGcaRbmmtmdifscyRsIQMZA==} 339 | hasBin: true 340 | 341 | '@modelcontextprotocol/sdk@1.8.0': 342 | resolution: {integrity: sha512-e06W7SwrontJDHwCawNO5SGxG+nU9AAx+jpHHZqGl/WrDBdWOpvirC+s58VpJTB5QemI4jTRcjWT4Pt3Q1NPQQ==} 343 | engines: {node: '>=18'} 344 | 345 | '@mysten/bcs@1.6.0': 346 | resolution: {integrity: sha512-ydDRYdIkIFCpHCcPvAkMC91fVwumjzbTgjqds0KsphDQI3jUlH3jFG5lfYNTmV6V3pkhOiRk1fupLBcsQsiszg==} 347 | 348 | '@mysten/sui@1.26.1': 349 | resolution: {integrity: sha512-bBVvn2wZKipAvuUkKzHwGhs1JiIM33+b97d0uIWg3T6dJH/n1nfnGrzkBQsMGpoBAFOIUnKQAZmDwT4qvJbKkg==} 350 | engines: {node: '>=18'} 351 | 352 | '@noble/curves@1.8.1': 353 | resolution: {integrity: sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==} 354 | engines: {node: ^14.21.3 || >=16} 355 | 356 | '@noble/hashes@1.7.1': 357 | resolution: {integrity: sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==} 358 | engines: {node: ^14.21.3 || >=16} 359 | 360 | '@nodelib/fs.scandir@2.1.5': 361 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 362 | engines: {node: '>= 8'} 363 | 364 | '@nodelib/fs.stat@2.0.5': 365 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 366 | engines: {node: '>= 8'} 367 | 368 | '@nodelib/fs.walk@1.2.8': 369 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 370 | engines: {node: '>= 8'} 371 | 372 | '@radix-ui/number@1.1.0': 373 | resolution: {integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==} 374 | 375 | '@radix-ui/primitive@1.1.1': 376 | resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==} 377 | 378 | '@radix-ui/react-arrow@1.1.2': 379 | resolution: {integrity: sha512-G+KcpzXHq24iH0uGG/pF8LyzpFJYGD4RfLjCIBfGdSLXvjLHST31RUiRVrupIBMvIppMgSzQ6l66iAxl03tdlg==} 380 | peerDependencies: 381 | '@types/react': '*' 382 | '@types/react-dom': '*' 383 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 384 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 385 | peerDependenciesMeta: 386 | '@types/react': 387 | optional: true 388 | '@types/react-dom': 389 | optional: true 390 | 391 | '@radix-ui/react-checkbox@1.1.4': 392 | resolution: {integrity: sha512-wP0CPAHq+P5I4INKe3hJrIa1WoNqqrejzW+zoU0rOvo1b9gDEJJFl2rYfO1PYJUQCc2H1WZxIJmyv9BS8i5fLw==} 393 | peerDependencies: 394 | '@types/react': '*' 395 | '@types/react-dom': '*' 396 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 397 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 398 | peerDependenciesMeta: 399 | '@types/react': 400 | optional: true 401 | '@types/react-dom': 402 | optional: true 403 | 404 | '@radix-ui/react-collection@1.1.2': 405 | resolution: {integrity: sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==} 406 | peerDependencies: 407 | '@types/react': '*' 408 | '@types/react-dom': '*' 409 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 410 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 411 | peerDependenciesMeta: 412 | '@types/react': 413 | optional: true 414 | '@types/react-dom': 415 | optional: true 416 | 417 | '@radix-ui/react-compose-refs@1.1.1': 418 | resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} 419 | peerDependencies: 420 | '@types/react': '*' 421 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 422 | peerDependenciesMeta: 423 | '@types/react': 424 | optional: true 425 | 426 | '@radix-ui/react-context@1.1.1': 427 | resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} 428 | peerDependencies: 429 | '@types/react': '*' 430 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 431 | peerDependenciesMeta: 432 | '@types/react': 433 | optional: true 434 | 435 | '@radix-ui/react-dialog@1.1.6': 436 | resolution: {integrity: sha512-/IVhJV5AceX620DUJ4uYVMymzsipdKBzo3edo+omeskCKGm9FRHM0ebIdbPnlQVJqyuHbuBltQUOG2mOTq2IYw==} 437 | peerDependencies: 438 | '@types/react': '*' 439 | '@types/react-dom': '*' 440 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 441 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 442 | peerDependenciesMeta: 443 | '@types/react': 444 | optional: true 445 | '@types/react-dom': 446 | optional: true 447 | 448 | '@radix-ui/react-direction@1.1.0': 449 | resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} 450 | peerDependencies: 451 | '@types/react': '*' 452 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 453 | peerDependenciesMeta: 454 | '@types/react': 455 | optional: true 456 | 457 | '@radix-ui/react-dismissable-layer@1.1.5': 458 | resolution: {integrity: sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==} 459 | peerDependencies: 460 | '@types/react': '*' 461 | '@types/react-dom': '*' 462 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 463 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 464 | peerDependenciesMeta: 465 | '@types/react': 466 | optional: true 467 | '@types/react-dom': 468 | optional: true 469 | 470 | '@radix-ui/react-focus-guards@1.1.1': 471 | resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==} 472 | peerDependencies: 473 | '@types/react': '*' 474 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 475 | peerDependenciesMeta: 476 | '@types/react': 477 | optional: true 478 | 479 | '@radix-ui/react-focus-scope@1.1.2': 480 | resolution: {integrity: sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA==} 481 | peerDependencies: 482 | '@types/react': '*' 483 | '@types/react-dom': '*' 484 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 485 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 486 | peerDependenciesMeta: 487 | '@types/react': 488 | optional: true 489 | '@types/react-dom': 490 | optional: true 491 | 492 | '@radix-ui/react-icons@1.3.2': 493 | resolution: {integrity: sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==} 494 | peerDependencies: 495 | react: ^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc 496 | 497 | '@radix-ui/react-id@1.1.0': 498 | resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} 499 | peerDependencies: 500 | '@types/react': '*' 501 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 502 | peerDependenciesMeta: 503 | '@types/react': 504 | optional: true 505 | 506 | '@radix-ui/react-label@2.1.2': 507 | resolution: {integrity: sha512-zo1uGMTaNlHehDyFQcDZXRJhUPDuukcnHz0/jnrup0JA6qL+AFpAnty+7VKa9esuU5xTblAZzTGYJKSKaBxBhw==} 508 | peerDependencies: 509 | '@types/react': '*' 510 | '@types/react-dom': '*' 511 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 512 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 513 | peerDependenciesMeta: 514 | '@types/react': 515 | optional: true 516 | '@types/react-dom': 517 | optional: true 518 | 519 | '@radix-ui/react-popover@1.1.6': 520 | resolution: {integrity: sha512-NQouW0x4/GnkFJ/pRqsIS3rM/k97VzKnVb2jB7Gq7VEGPy5g7uNV1ykySFt7eWSp3i2uSGFwaJcvIRJBAHmmFg==} 521 | peerDependencies: 522 | '@types/react': '*' 523 | '@types/react-dom': '*' 524 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 525 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 526 | peerDependenciesMeta: 527 | '@types/react': 528 | optional: true 529 | '@types/react-dom': 530 | optional: true 531 | 532 | '@radix-ui/react-popper@1.2.2': 533 | resolution: {integrity: sha512-Rvqc3nOpwseCyj/rgjlJDYAgyfw7OC1tTkKn2ivhaMGcYt8FSBlahHOZak2i3QwkRXUXgGgzeEe2RuqeEHuHgA==} 534 | peerDependencies: 535 | '@types/react': '*' 536 | '@types/react-dom': '*' 537 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 538 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 539 | peerDependenciesMeta: 540 | '@types/react': 541 | optional: true 542 | '@types/react-dom': 543 | optional: true 544 | 545 | '@radix-ui/react-portal@1.1.4': 546 | resolution: {integrity: sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA==} 547 | peerDependencies: 548 | '@types/react': '*' 549 | '@types/react-dom': '*' 550 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 551 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 552 | peerDependenciesMeta: 553 | '@types/react': 554 | optional: true 555 | '@types/react-dom': 556 | optional: true 557 | 558 | '@radix-ui/react-presence@1.1.2': 559 | resolution: {integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==} 560 | peerDependencies: 561 | '@types/react': '*' 562 | '@types/react-dom': '*' 563 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 564 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 565 | peerDependenciesMeta: 566 | '@types/react': 567 | optional: true 568 | '@types/react-dom': 569 | optional: true 570 | 571 | '@radix-ui/react-primitive@2.0.2': 572 | resolution: {integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==} 573 | peerDependencies: 574 | '@types/react': '*' 575 | '@types/react-dom': '*' 576 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 577 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 578 | peerDependenciesMeta: 579 | '@types/react': 580 | optional: true 581 | '@types/react-dom': 582 | optional: true 583 | 584 | '@radix-ui/react-roving-focus@1.1.2': 585 | resolution: {integrity: sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw==} 586 | peerDependencies: 587 | '@types/react': '*' 588 | '@types/react-dom': '*' 589 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 590 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 591 | peerDependenciesMeta: 592 | '@types/react': 593 | optional: true 594 | '@types/react-dom': 595 | optional: true 596 | 597 | '@radix-ui/react-select@2.1.6': 598 | resolution: {integrity: sha512-T6ajELxRvTuAMWH0YmRJ1qez+x4/7Nq7QIx7zJ0VK3qaEWdnWpNbEDnmWldG1zBDwqrLy5aLMUWcoGirVj5kMg==} 599 | peerDependencies: 600 | '@types/react': '*' 601 | '@types/react-dom': '*' 602 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 603 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 604 | peerDependenciesMeta: 605 | '@types/react': 606 | optional: true 607 | '@types/react-dom': 608 | optional: true 609 | 610 | '@radix-ui/react-slot@1.1.2': 611 | resolution: {integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==} 612 | peerDependencies: 613 | '@types/react': '*' 614 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 615 | peerDependenciesMeta: 616 | '@types/react': 617 | optional: true 618 | 619 | '@radix-ui/react-tabs@1.1.3': 620 | resolution: {integrity: sha512-9mFyI30cuRDImbmFF6O2KUJdgEOsGh9Vmx9x/Dh9tOhL7BngmQPQfwW4aejKm5OHpfWIdmeV6ySyuxoOGjtNng==} 621 | peerDependencies: 622 | '@types/react': '*' 623 | '@types/react-dom': '*' 624 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 625 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 626 | peerDependenciesMeta: 627 | '@types/react': 628 | optional: true 629 | '@types/react-dom': 630 | optional: true 631 | 632 | '@radix-ui/react-toast@1.2.6': 633 | resolution: {integrity: sha512-gN4dpuIVKEgpLn1z5FhzT9mYRUitbfZq9XqN/7kkBMUgFTzTG8x/KszWJugJXHcwxckY8xcKDZPz7kG3o6DsUA==} 634 | peerDependencies: 635 | '@types/react': '*' 636 | '@types/react-dom': '*' 637 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 638 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 639 | peerDependenciesMeta: 640 | '@types/react': 641 | optional: true 642 | '@types/react-dom': 643 | optional: true 644 | 645 | '@radix-ui/react-tooltip@1.1.8': 646 | resolution: {integrity: sha512-YAA2cu48EkJZdAMHC0dqo9kialOcRStbtiY4nJPaht7Ptrhcvpo+eDChaM6BIs8kL6a8Z5l5poiqLnXcNduOkA==} 647 | peerDependencies: 648 | '@types/react': '*' 649 | '@types/react-dom': '*' 650 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 651 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 652 | peerDependenciesMeta: 653 | '@types/react': 654 | optional: true 655 | '@types/react-dom': 656 | optional: true 657 | 658 | '@radix-ui/react-use-callback-ref@1.1.0': 659 | resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} 660 | peerDependencies: 661 | '@types/react': '*' 662 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 663 | peerDependenciesMeta: 664 | '@types/react': 665 | optional: true 666 | 667 | '@radix-ui/react-use-controllable-state@1.1.0': 668 | resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} 669 | peerDependencies: 670 | '@types/react': '*' 671 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 672 | peerDependenciesMeta: 673 | '@types/react': 674 | optional: true 675 | 676 | '@radix-ui/react-use-escape-keydown@1.1.0': 677 | resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} 678 | peerDependencies: 679 | '@types/react': '*' 680 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 681 | peerDependenciesMeta: 682 | '@types/react': 683 | optional: true 684 | 685 | '@radix-ui/react-use-layout-effect@1.1.0': 686 | resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} 687 | peerDependencies: 688 | '@types/react': '*' 689 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 690 | peerDependenciesMeta: 691 | '@types/react': 692 | optional: true 693 | 694 | '@radix-ui/react-use-previous@1.1.0': 695 | resolution: {integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==} 696 | peerDependencies: 697 | '@types/react': '*' 698 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 699 | peerDependenciesMeta: 700 | '@types/react': 701 | optional: true 702 | 703 | '@radix-ui/react-use-rect@1.1.0': 704 | resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==} 705 | peerDependencies: 706 | '@types/react': '*' 707 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 708 | peerDependenciesMeta: 709 | '@types/react': 710 | optional: true 711 | 712 | '@radix-ui/react-use-size@1.1.0': 713 | resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} 714 | peerDependencies: 715 | '@types/react': '*' 716 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 717 | peerDependenciesMeta: 718 | '@types/react': 719 | optional: true 720 | 721 | '@radix-ui/react-visually-hidden@1.1.2': 722 | resolution: {integrity: sha512-1SzA4ns2M1aRlvxErqhLHsBHoS5eI5UUcI2awAMgGUp4LoaoWOKYmvqDY2s/tltuPkh3Yk77YF/r3IRj+Amx4Q==} 723 | peerDependencies: 724 | '@types/react': '*' 725 | '@types/react-dom': '*' 726 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 727 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 728 | peerDependenciesMeta: 729 | '@types/react': 730 | optional: true 731 | '@types/react-dom': 732 | optional: true 733 | 734 | '@radix-ui/rect@1.1.0': 735 | resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} 736 | 737 | '@scure/base@1.2.4': 738 | resolution: {integrity: sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==} 739 | 740 | '@scure/bip32@1.6.2': 741 | resolution: {integrity: sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==} 742 | 743 | '@scure/bip39@1.5.4': 744 | resolution: {integrity: sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==} 745 | 746 | '@standard-community/standard-json@0.1.2': 747 | resolution: {integrity: sha512-GxrChjZ/6/9I2vjxMsG9tBqfniqBQfSgVcnWB5HPQuiv15ZEyiAI3xW2pQ0Aibe37s17ijAx2dyaXFappRvJ4g==} 748 | peerDependencies: 749 | '@valibot/to-json-schema': ^1.0.0-rc.0 750 | effect: ^3.13.10 751 | zod-to-json-schema: ^3.24.1 752 | peerDependenciesMeta: 753 | '@valibot/to-json-schema': 754 | optional: true 755 | effect: 756 | optional: true 757 | zod-to-json-schema: 758 | optional: true 759 | 760 | '@standard-schema/spec@1.0.0': 761 | resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} 762 | 763 | '@tsconfig/node10@1.0.11': 764 | resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} 765 | 766 | '@tsconfig/node12@1.0.11': 767 | resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} 768 | 769 | '@tsconfig/node14@1.0.3': 770 | resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} 771 | 772 | '@tsconfig/node16@1.0.4': 773 | resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} 774 | 775 | '@types/bun@1.2.8': 776 | resolution: {integrity: sha512-t8L1RvJVUghW5V+M/fL3Thbxcs0HwNsXsnTEBEfEVqGteiJToOlZ/fyOEaR1kZsNqnu+3XA4RI/qmnX4w6+S+w==} 777 | 778 | '@types/node@20.17.30': 779 | resolution: {integrity: sha512-7zf4YyHA+jvBNfVrk2Gtvs6x7E8V+YDW05bNfG2XkWDJfYRXrTiP/DsB2zSYTaHX0bGIujTBQdMVAhb+j7mwpg==} 780 | 781 | '@types/prismjs@1.26.5': 782 | resolution: {integrity: sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==} 783 | 784 | '@types/ws@8.18.1': 785 | resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} 786 | 787 | accepts@1.3.8: 788 | resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} 789 | engines: {node: '>= 0.6'} 790 | 791 | accepts@2.0.0: 792 | resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} 793 | engines: {node: '>= 0.6'} 794 | 795 | acorn-walk@8.3.4: 796 | resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} 797 | engines: {node: '>=0.4.0'} 798 | 799 | acorn@8.14.1: 800 | resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} 801 | engines: {node: '>=0.4.0'} 802 | hasBin: true 803 | 804 | ansi-escapes@4.3.2: 805 | resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} 806 | engines: {node: '>=8'} 807 | 808 | ansi-regex@5.0.1: 809 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 810 | engines: {node: '>=8'} 811 | 812 | ansi-styles@4.3.0: 813 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 814 | engines: {node: '>=8'} 815 | 816 | arg@4.1.3: 817 | resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} 818 | 819 | aria-hidden@1.2.4: 820 | resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} 821 | engines: {node: '>=10'} 822 | 823 | array-flatten@1.1.1: 824 | resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} 825 | 826 | atomic-sleep@1.0.0: 827 | resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} 828 | engines: {node: '>=8.0.0'} 829 | 830 | balanced-match@1.0.2: 831 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 832 | 833 | base64-js@1.5.1: 834 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 835 | 836 | bl@4.1.0: 837 | resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} 838 | 839 | body-parser@1.20.3: 840 | resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} 841 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 842 | 843 | body-parser@2.2.0: 844 | resolution: {integrity: sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==} 845 | engines: {node: '>=18'} 846 | 847 | brace-expansion@1.1.11: 848 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 849 | 850 | braces@3.0.3: 851 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 852 | engines: {node: '>=8'} 853 | 854 | buffer@5.7.1: 855 | resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} 856 | 857 | bun-types@1.2.7: 858 | resolution: {integrity: sha512-P4hHhk7kjF99acXqKvltyuMQ2kf/rzIw3ylEDpCxDS9Xa0X0Yp/gJu/vDCucmWpiur5qJ0lwB2bWzOXa2GlHqA==} 859 | 860 | bytes@3.0.0: 861 | resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} 862 | engines: {node: '>= 0.8'} 863 | 864 | bytes@3.1.2: 865 | resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} 866 | engines: {node: '>= 0.8'} 867 | 868 | call-bind-apply-helpers@1.0.2: 869 | resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} 870 | engines: {node: '>= 0.4'} 871 | 872 | call-bound@1.0.4: 873 | resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} 874 | engines: {node: '>= 0.4'} 875 | 876 | chalk@4.1.2: 877 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 878 | engines: {node: '>=10'} 879 | 880 | chardet@0.7.0: 881 | resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} 882 | 883 | chownr@1.1.4: 884 | resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} 885 | 886 | class-variance-authority@0.7.1: 887 | resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} 888 | 889 | cli-width@4.1.0: 890 | resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} 891 | engines: {node: '>= 12'} 892 | 893 | cliui@8.0.1: 894 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 895 | engines: {node: '>=12'} 896 | 897 | clsx@2.1.1: 898 | resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 899 | engines: {node: '>=6'} 900 | 901 | cmdk@1.1.1: 902 | resolution: {integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==} 903 | peerDependencies: 904 | react: ^18 || ^19 || ^19.0.0-rc 905 | react-dom: ^18 || ^19 || ^19.0.0-rc 906 | 907 | color-convert@2.0.1: 908 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 909 | engines: {node: '>=7.0.0'} 910 | 911 | color-name@1.1.4: 912 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 913 | 914 | colorette@2.0.20: 915 | resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} 916 | 917 | concat-map@0.0.1: 918 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 919 | 920 | concurrently@9.1.2: 921 | resolution: {integrity: sha512-H9MWcoPsYddwbOGM6difjVwVZHl63nwMEwDJG/L7VGtuaJhb12h2caPG2tVPWs7emuYix252iGfqOyrz1GczTQ==} 922 | engines: {node: '>=18'} 923 | hasBin: true 924 | 925 | content-disposition@0.5.2: 926 | resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} 927 | engines: {node: '>= 0.6'} 928 | 929 | content-disposition@0.5.4: 930 | resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} 931 | engines: {node: '>= 0.6'} 932 | 933 | content-disposition@1.0.0: 934 | resolution: {integrity: sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==} 935 | engines: {node: '>= 0.6'} 936 | 937 | content-type@1.0.5: 938 | resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} 939 | engines: {node: '>= 0.6'} 940 | 941 | cookie-signature@1.0.6: 942 | resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} 943 | 944 | cookie-signature@1.2.2: 945 | resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} 946 | engines: {node: '>=6.6.0'} 947 | 948 | cookie@0.7.1: 949 | resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} 950 | engines: {node: '>= 0.6'} 951 | 952 | cookie@0.7.2: 953 | resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} 954 | engines: {node: '>= 0.6'} 955 | 956 | cors@2.8.5: 957 | resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} 958 | engines: {node: '>= 0.10'} 959 | 960 | create-require@1.1.1: 961 | resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} 962 | 963 | cross-spawn@7.0.6: 964 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 965 | engines: {node: '>= 8'} 966 | 967 | dateformat@4.6.3: 968 | resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} 969 | 970 | debug@2.6.9: 971 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 972 | peerDependencies: 973 | supports-color: '*' 974 | peerDependenciesMeta: 975 | supports-color: 976 | optional: true 977 | 978 | debug@4.4.0: 979 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} 980 | engines: {node: '>=6.0'} 981 | peerDependencies: 982 | supports-color: '*' 983 | peerDependenciesMeta: 984 | supports-color: 985 | optional: true 986 | 987 | decompress-response@6.0.0: 988 | resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} 989 | engines: {node: '>=10'} 990 | 991 | deep-extend@0.6.0: 992 | resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} 993 | engines: {node: '>=4.0.0'} 994 | 995 | depd@2.0.0: 996 | resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} 997 | engines: {node: '>= 0.8'} 998 | 999 | destroy@1.2.0: 1000 | resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} 1001 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 1002 | 1003 | detect-libc@2.0.3: 1004 | resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} 1005 | engines: {node: '>=8'} 1006 | 1007 | detect-node-es@1.1.0: 1008 | resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} 1009 | 1010 | diff@4.0.2: 1011 | resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} 1012 | engines: {node: '>=0.3.1'} 1013 | 1014 | dunder-proto@1.0.1: 1015 | resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} 1016 | engines: {node: '>= 0.4'} 1017 | 1018 | ee-first@1.1.1: 1019 | resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} 1020 | 1021 | emoji-regex@8.0.0: 1022 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1023 | 1024 | encodeurl@1.0.2: 1025 | resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} 1026 | engines: {node: '>= 0.8'} 1027 | 1028 | encodeurl@2.0.0: 1029 | resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} 1030 | engines: {node: '>= 0.8'} 1031 | 1032 | end-of-stream@1.4.4: 1033 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 1034 | 1035 | es-define-property@1.0.1: 1036 | resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} 1037 | engines: {node: '>= 0.4'} 1038 | 1039 | es-errors@1.3.0: 1040 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 1041 | engines: {node: '>= 0.4'} 1042 | 1043 | es-object-atoms@1.1.1: 1044 | resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} 1045 | engines: {node: '>= 0.4'} 1046 | 1047 | escalade@3.2.0: 1048 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 1049 | engines: {node: '>=6'} 1050 | 1051 | escape-html@1.0.3: 1052 | resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} 1053 | 1054 | etag@1.8.1: 1055 | resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} 1056 | engines: {node: '>= 0.6'} 1057 | 1058 | eventsource-parser@3.0.1: 1059 | resolution: {integrity: sha512-VARTJ9CYeuQYb0pZEPbzi740OWFgpHe7AYJ2WFZVnUDUQp5Dk2yJUgF36YsZ81cOyxT0QxmXD2EQpapAouzWVA==} 1060 | engines: {node: '>=18.0.0'} 1061 | 1062 | eventsource@3.0.6: 1063 | resolution: {integrity: sha512-l19WpE2m9hSuyP06+FbuUUf1G+R0SFLrtQfbRb9PRr+oimOfxQhgGCbVaXg5IvZyyTThJsxh6L/srkMiCeBPDA==} 1064 | engines: {node: '>=18.0.0'} 1065 | 1066 | expand-template@2.0.3: 1067 | resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} 1068 | engines: {node: '>=6'} 1069 | 1070 | express-rate-limit@7.5.0: 1071 | resolution: {integrity: sha512-eB5zbQh5h+VenMPM3fh+nw1YExi5nMr6HUCR62ELSP11huvxm/Uir1H1QEyTkk5QX6A58pX6NmaTMceKZ0Eodg==} 1072 | engines: {node: '>= 16'} 1073 | peerDependencies: 1074 | express: ^4.11 || 5 || ^5.0.0-beta.1 1075 | 1076 | express@4.21.2: 1077 | resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} 1078 | engines: {node: '>= 0.10.0'} 1079 | 1080 | express@5.1.0: 1081 | resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==} 1082 | engines: {node: '>= 18'} 1083 | 1084 | external-editor@3.1.0: 1085 | resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} 1086 | engines: {node: '>=4'} 1087 | 1088 | fast-copy@3.0.2: 1089 | resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==} 1090 | 1091 | fast-glob@3.3.3: 1092 | resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} 1093 | engines: {node: '>=8.6.0'} 1094 | 1095 | fast-redact@3.5.0: 1096 | resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} 1097 | engines: {node: '>=6'} 1098 | 1099 | fast-safe-stringify@2.1.1: 1100 | resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} 1101 | 1102 | fastq@1.19.1: 1103 | resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} 1104 | 1105 | fill-range@7.1.1: 1106 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 1107 | engines: {node: '>=8'} 1108 | 1109 | finalhandler@1.3.1: 1110 | resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} 1111 | engines: {node: '>= 0.8'} 1112 | 1113 | finalhandler@2.1.0: 1114 | resolution: {integrity: sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==} 1115 | engines: {node: '>= 0.8'} 1116 | 1117 | forwarded@0.2.0: 1118 | resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} 1119 | engines: {node: '>= 0.6'} 1120 | 1121 | fresh@0.5.2: 1122 | resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} 1123 | engines: {node: '>= 0.6'} 1124 | 1125 | fresh@2.0.0: 1126 | resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} 1127 | engines: {node: '>= 0.8'} 1128 | 1129 | fs-constants@1.0.0: 1130 | resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} 1131 | 1132 | function-bind@1.1.2: 1133 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1134 | 1135 | get-caller-file@2.0.5: 1136 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 1137 | engines: {node: 6.* || 8.* || >= 10.*} 1138 | 1139 | get-intrinsic@1.3.0: 1140 | resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} 1141 | engines: {node: '>= 0.4'} 1142 | 1143 | get-nonce@1.0.1: 1144 | resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} 1145 | engines: {node: '>=6'} 1146 | 1147 | get-proto@1.0.1: 1148 | resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} 1149 | engines: {node: '>= 0.4'} 1150 | 1151 | github-from-package@0.0.0: 1152 | resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} 1153 | 1154 | glob-parent@5.1.2: 1155 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1156 | engines: {node: '>= 6'} 1157 | 1158 | gopd@1.2.0: 1159 | resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} 1160 | engines: {node: '>= 0.4'} 1161 | 1162 | gql.tada@1.8.10: 1163 | resolution: {integrity: sha512-FrvSxgz838FYVPgZHGOSgbpOjhR+yq44rCzww3oOPJYi0OvBJjAgCiP6LEokZIYND2fUTXzQAyLgcvgw1yNP5A==} 1164 | hasBin: true 1165 | peerDependencies: 1166 | typescript: ^5.0.0 1167 | 1168 | graphql@16.10.0: 1169 | resolution: {integrity: sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==} 1170 | engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} 1171 | 1172 | has-flag@4.0.0: 1173 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1174 | engines: {node: '>=8'} 1175 | 1176 | has-symbols@1.1.0: 1177 | resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} 1178 | engines: {node: '>= 0.4'} 1179 | 1180 | hasown@2.0.2: 1181 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1182 | engines: {node: '>= 0.4'} 1183 | 1184 | help-me@5.0.0: 1185 | resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==} 1186 | 1187 | hono@4.7.5: 1188 | resolution: {integrity: sha512-fDOK5W2C1vZACsgLONigdZTRZxuBqFtcKh7bUQ5cVSbwI2RWjloJDcgFOVzbQrlI6pCmhlTsVYZ7zpLj4m4qMQ==} 1189 | engines: {node: '>=16.9.0'} 1190 | 1191 | http-errors@2.0.0: 1192 | resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} 1193 | engines: {node: '>= 0.8'} 1194 | 1195 | iconv-lite@0.4.24: 1196 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 1197 | engines: {node: '>=0.10.0'} 1198 | 1199 | iconv-lite@0.6.3: 1200 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 1201 | engines: {node: '>=0.10.0'} 1202 | 1203 | ieee754@1.2.1: 1204 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 1205 | 1206 | inherits@2.0.4: 1207 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1208 | 1209 | ini@1.3.8: 1210 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 1211 | 1212 | ipaddr.js@1.9.1: 1213 | resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} 1214 | engines: {node: '>= 0.10'} 1215 | 1216 | is-extglob@2.1.1: 1217 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1218 | engines: {node: '>=0.10.0'} 1219 | 1220 | is-fullwidth-code-point@3.0.0: 1221 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1222 | engines: {node: '>=8'} 1223 | 1224 | is-glob@4.0.3: 1225 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1226 | engines: {node: '>=0.10.0'} 1227 | 1228 | is-number@7.0.0: 1229 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1230 | engines: {node: '>=0.12.0'} 1231 | 1232 | is-promise@4.0.0: 1233 | resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} 1234 | 1235 | isexe@2.0.0: 1236 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1237 | 1238 | joycon@3.1.1: 1239 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 1240 | engines: {node: '>=10'} 1241 | 1242 | js-tokens@4.0.0: 1243 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1244 | 1245 | keytar@7.9.0: 1246 | resolution: {integrity: sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==} 1247 | 1248 | lodash@4.17.21: 1249 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1250 | 1251 | loose-envify@1.4.0: 1252 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1253 | hasBin: true 1254 | 1255 | lucide-react@0.447.0: 1256 | resolution: {integrity: sha512-SZ//hQmvi+kDKrNepArVkYK7/jfeZ5uFNEnYmd45RKZcbGD78KLnrcNXmgeg6m+xNHFvTG+CblszXCy4n6DN4w==} 1257 | peerDependencies: 1258 | react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc 1259 | 1260 | make-error@1.3.6: 1261 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} 1262 | 1263 | math-intrinsics@1.1.0: 1264 | resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} 1265 | engines: {node: '>= 0.4'} 1266 | 1267 | media-typer@0.3.0: 1268 | resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} 1269 | engines: {node: '>= 0.6'} 1270 | 1271 | media-typer@1.1.0: 1272 | resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} 1273 | engines: {node: '>= 0.8'} 1274 | 1275 | merge-descriptors@1.0.3: 1276 | resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} 1277 | 1278 | merge-descriptors@2.0.0: 1279 | resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} 1280 | engines: {node: '>=18'} 1281 | 1282 | merge2@1.4.1: 1283 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1284 | engines: {node: '>= 8'} 1285 | 1286 | methods@1.1.2: 1287 | resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} 1288 | engines: {node: '>= 0.6'} 1289 | 1290 | micromatch@4.0.8: 1291 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1292 | engines: {node: '>=8.6'} 1293 | 1294 | mime-db@1.33.0: 1295 | resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} 1296 | engines: {node: '>= 0.6'} 1297 | 1298 | mime-db@1.52.0: 1299 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1300 | engines: {node: '>= 0.6'} 1301 | 1302 | mime-db@1.54.0: 1303 | resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} 1304 | engines: {node: '>= 0.6'} 1305 | 1306 | mime-types@2.1.18: 1307 | resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} 1308 | engines: {node: '>= 0.6'} 1309 | 1310 | mime-types@2.1.35: 1311 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1312 | engines: {node: '>= 0.6'} 1313 | 1314 | mime-types@3.0.1: 1315 | resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} 1316 | engines: {node: '>= 0.6'} 1317 | 1318 | mime@1.6.0: 1319 | resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} 1320 | engines: {node: '>=4'} 1321 | hasBin: true 1322 | 1323 | mimic-response@3.1.0: 1324 | resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} 1325 | engines: {node: '>=10'} 1326 | 1327 | minimatch@3.1.2: 1328 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1329 | 1330 | minimist@1.2.8: 1331 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1332 | 1333 | mkdirp-classic@0.5.3: 1334 | resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} 1335 | 1336 | ms@2.0.0: 1337 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 1338 | 1339 | ms@2.1.3: 1340 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1341 | 1342 | muppet@0.2.0: 1343 | resolution: {integrity: sha512-R8EeIol6VtaEWwHDp7SL6B0xG1koxyGBmkCLZcuMKIrmzikK/jGd51DvXY6NFmacqG6r0zjX2AxEG6QCsMbq5A==} 1344 | peerDependencies: 1345 | '@hono/standard-validator': ^0.1.2 1346 | '@modelcontextprotocol/sdk': ^1.7.0 1347 | '@standard-community/standard-json': ^0.1.2 1348 | '@standard-schema/spec': ^1.0.0 1349 | hono: ^4.6.13 1350 | openapi-types: ^12.1.3 1351 | peerDependenciesMeta: 1352 | '@standard-schema/spec': 1353 | optional: true 1354 | hono: 1355 | optional: true 1356 | openapi-types: 1357 | optional: true 1358 | 1359 | mute-stream@2.0.0: 1360 | resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} 1361 | engines: {node: ^18.17.0 || >=20.5.0} 1362 | 1363 | napi-build-utils@2.0.0: 1364 | resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} 1365 | 1366 | negotiator@0.6.3: 1367 | resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} 1368 | engines: {node: '>= 0.6'} 1369 | 1370 | negotiator@1.0.0: 1371 | resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} 1372 | engines: {node: '>= 0.6'} 1373 | 1374 | node-abi@3.74.0: 1375 | resolution: {integrity: sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==} 1376 | engines: {node: '>=10'} 1377 | 1378 | node-addon-api@4.3.0: 1379 | resolution: {integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==} 1380 | 1381 | object-assign@4.1.1: 1382 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1383 | engines: {node: '>=0.10.0'} 1384 | 1385 | object-inspect@1.13.4: 1386 | resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} 1387 | engines: {node: '>= 0.4'} 1388 | 1389 | on-exit-leak-free@2.1.2: 1390 | resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} 1391 | engines: {node: '>=14.0.0'} 1392 | 1393 | on-finished@2.4.1: 1394 | resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} 1395 | engines: {node: '>= 0.8'} 1396 | 1397 | once@1.4.0: 1398 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1399 | 1400 | os-tmpdir@1.0.2: 1401 | resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} 1402 | engines: {node: '>=0.10.0'} 1403 | 1404 | parseurl@1.3.3: 1405 | resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} 1406 | engines: {node: '>= 0.8'} 1407 | 1408 | path-is-inside@1.0.2: 1409 | resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} 1410 | 1411 | path-key@3.1.1: 1412 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1413 | engines: {node: '>=8'} 1414 | 1415 | path-to-regexp@0.1.12: 1416 | resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} 1417 | 1418 | path-to-regexp@3.3.0: 1419 | resolution: {integrity: sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==} 1420 | 1421 | path-to-regexp@8.2.0: 1422 | resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==} 1423 | engines: {node: '>=16'} 1424 | 1425 | picomatch@2.3.1: 1426 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1427 | engines: {node: '>=8.6'} 1428 | 1429 | pino-abstract-transport@2.0.0: 1430 | resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==} 1431 | 1432 | pino-pretty@13.0.0: 1433 | resolution: {integrity: sha512-cQBBIVG3YajgoUjo1FdKVRX6t9XPxwB9lcNJVD5GCnNM4Y6T12YYx8c6zEejxQsU0wrg9TwmDulcE9LR7qcJqA==} 1434 | hasBin: true 1435 | 1436 | pino-std-serializers@7.0.0: 1437 | resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} 1438 | 1439 | pino@9.6.0: 1440 | resolution: {integrity: sha512-i85pKRCt4qMjZ1+L7sy2Ag4t1atFcdbEt76+7iRJn1g2BvsnRMGu9p8pivl9fs63M2kF/A0OacFZhTub+m/qMg==} 1441 | hasBin: true 1442 | 1443 | pkce-challenge@4.1.0: 1444 | resolution: {integrity: sha512-ZBmhE1C9LcPoH9XZSdwiPtbPHZROwAnMy+kIFQVrnMCxY4Cudlz3gBOpzilgc0jOgRaiT3sIWfpMomW2ar2orQ==} 1445 | engines: {node: '>=16.20.0'} 1446 | 1447 | poseidon-lite@0.2.1: 1448 | resolution: {integrity: sha512-xIr+G6HeYfOhCuswdqcFpSX47SPhm0EpisWJ6h7fHlWwaVIvH3dLnejpatrtw6Xc6HaLrpq05y7VRfvDmDGIog==} 1449 | 1450 | prebuild-install@7.1.3: 1451 | resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} 1452 | engines: {node: '>=10'} 1453 | hasBin: true 1454 | 1455 | prismjs@1.30.0: 1456 | resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} 1457 | engines: {node: '>=6'} 1458 | 1459 | process-warning@4.0.1: 1460 | resolution: {integrity: sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==} 1461 | 1462 | proxy-addr@2.0.7: 1463 | resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} 1464 | engines: {node: '>= 0.10'} 1465 | 1466 | pump@3.0.2: 1467 | resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} 1468 | 1469 | qs@6.13.0: 1470 | resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} 1471 | engines: {node: '>=0.6'} 1472 | 1473 | qs@6.14.0: 1474 | resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} 1475 | engines: {node: '>=0.6'} 1476 | 1477 | queue-microtask@1.2.3: 1478 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1479 | 1480 | quick-format-unescaped@4.0.4: 1481 | resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} 1482 | 1483 | range-parser@1.2.0: 1484 | resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} 1485 | engines: {node: '>= 0.6'} 1486 | 1487 | range-parser@1.2.1: 1488 | resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} 1489 | engines: {node: '>= 0.6'} 1490 | 1491 | raw-body@2.5.2: 1492 | resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} 1493 | engines: {node: '>= 0.8'} 1494 | 1495 | raw-body@3.0.0: 1496 | resolution: {integrity: sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==} 1497 | engines: {node: '>= 0.8'} 1498 | 1499 | rc@1.2.8: 1500 | resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} 1501 | hasBin: true 1502 | 1503 | react-dom@18.3.1: 1504 | resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} 1505 | peerDependencies: 1506 | react: ^18.3.1 1507 | 1508 | react-remove-scroll-bar@2.3.8: 1509 | resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} 1510 | engines: {node: '>=10'} 1511 | peerDependencies: 1512 | '@types/react': '*' 1513 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 1514 | peerDependenciesMeta: 1515 | '@types/react': 1516 | optional: true 1517 | 1518 | react-remove-scroll@2.6.3: 1519 | resolution: {integrity: sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==} 1520 | engines: {node: '>=10'} 1521 | peerDependencies: 1522 | '@types/react': '*' 1523 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc 1524 | peerDependenciesMeta: 1525 | '@types/react': 1526 | optional: true 1527 | 1528 | react-simple-code-editor@0.14.1: 1529 | resolution: {integrity: sha512-BR5DtNRy+AswWJECyA17qhUDvrrCZ6zXOCfkQY5zSmb96BVUbpVAv03WpcjcwtCwiLbIANx3gebHOcXYn1EHow==} 1530 | peerDependencies: 1531 | react: '>=16.8.0' 1532 | react-dom: '>=16.8.0' 1533 | 1534 | react-style-singleton@2.2.3: 1535 | resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} 1536 | engines: {node: '>=10'} 1537 | peerDependencies: 1538 | '@types/react': '*' 1539 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc 1540 | peerDependenciesMeta: 1541 | '@types/react': 1542 | optional: true 1543 | 1544 | react@18.3.1: 1545 | resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} 1546 | engines: {node: '>=0.10.0'} 1547 | 1548 | readable-stream@3.6.2: 1549 | resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} 1550 | engines: {node: '>= 6'} 1551 | 1552 | real-require@0.2.0: 1553 | resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} 1554 | engines: {node: '>= 12.13.0'} 1555 | 1556 | require-directory@2.1.1: 1557 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 1558 | engines: {node: '>=0.10.0'} 1559 | 1560 | reusify@1.1.0: 1561 | resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} 1562 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1563 | 1564 | router@2.2.0: 1565 | resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} 1566 | engines: {node: '>= 18'} 1567 | 1568 | run-parallel@1.2.0: 1569 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1570 | 1571 | rxjs@7.8.2: 1572 | resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} 1573 | 1574 | safe-buffer@5.2.1: 1575 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1576 | 1577 | safe-stable-stringify@2.5.0: 1578 | resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} 1579 | engines: {node: '>=10'} 1580 | 1581 | safer-buffer@2.1.2: 1582 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1583 | 1584 | scheduler@0.23.2: 1585 | resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} 1586 | 1587 | secure-json-parse@2.7.0: 1588 | resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} 1589 | 1590 | semver@7.7.1: 1591 | resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} 1592 | engines: {node: '>=10'} 1593 | hasBin: true 1594 | 1595 | send@0.19.0: 1596 | resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} 1597 | engines: {node: '>= 0.8.0'} 1598 | 1599 | send@1.2.0: 1600 | resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} 1601 | engines: {node: '>= 18'} 1602 | 1603 | serve-handler@6.1.6: 1604 | resolution: {integrity: sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==} 1605 | 1606 | serve-static@1.16.2: 1607 | resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} 1608 | engines: {node: '>= 0.8.0'} 1609 | 1610 | serve-static@2.2.0: 1611 | resolution: {integrity: sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==} 1612 | engines: {node: '>= 18'} 1613 | 1614 | setprototypeof@1.2.0: 1615 | resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} 1616 | 1617 | shebang-command@2.0.0: 1618 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1619 | engines: {node: '>=8'} 1620 | 1621 | shebang-regex@3.0.0: 1622 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1623 | engines: {node: '>=8'} 1624 | 1625 | shell-quote@1.8.2: 1626 | resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} 1627 | engines: {node: '>= 0.4'} 1628 | 1629 | side-channel-list@1.0.0: 1630 | resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} 1631 | engines: {node: '>= 0.4'} 1632 | 1633 | side-channel-map@1.0.1: 1634 | resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} 1635 | engines: {node: '>= 0.4'} 1636 | 1637 | side-channel-weakmap@1.0.2: 1638 | resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} 1639 | engines: {node: '>= 0.4'} 1640 | 1641 | side-channel@1.1.0: 1642 | resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} 1643 | engines: {node: '>= 0.4'} 1644 | 1645 | signal-exit@4.1.0: 1646 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1647 | engines: {node: '>=14'} 1648 | 1649 | simple-concat@1.0.1: 1650 | resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} 1651 | 1652 | simple-get@4.0.1: 1653 | resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} 1654 | 1655 | sonic-boom@4.2.0: 1656 | resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==} 1657 | 1658 | spawn-rx@5.1.2: 1659 | resolution: {integrity: sha512-/y7tJKALVZ1lPzeZZB9jYnmtrL7d0N2zkorii5a7r7dhHkWIuLTzZpZzMJLK1dmYRgX/NCc4iarTO3F7BS2c/A==} 1660 | 1661 | split2@4.2.0: 1662 | resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} 1663 | engines: {node: '>= 10.x'} 1664 | 1665 | statuses@2.0.1: 1666 | resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} 1667 | engines: {node: '>= 0.8'} 1668 | 1669 | string-width@4.2.3: 1670 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1671 | engines: {node: '>=8'} 1672 | 1673 | string_decoder@1.3.0: 1674 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 1675 | 1676 | strip-ansi@6.0.1: 1677 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1678 | engines: {node: '>=8'} 1679 | 1680 | strip-json-comments@2.0.1: 1681 | resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} 1682 | engines: {node: '>=0.10.0'} 1683 | 1684 | strip-json-comments@3.1.1: 1685 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1686 | engines: {node: '>=8'} 1687 | 1688 | supports-color@7.2.0: 1689 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1690 | engines: {node: '>=8'} 1691 | 1692 | supports-color@8.1.1: 1693 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 1694 | engines: {node: '>=10'} 1695 | 1696 | tailwind-merge@2.6.0: 1697 | resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==} 1698 | 1699 | tailwindcss-animate@1.0.7: 1700 | resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} 1701 | peerDependencies: 1702 | tailwindcss: '>=3.0.0 || insiders' 1703 | 1704 | tar-fs@2.1.2: 1705 | resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==} 1706 | 1707 | tar-stream@2.2.0: 1708 | resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} 1709 | engines: {node: '>=6'} 1710 | 1711 | thread-stream@3.1.0: 1712 | resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} 1713 | 1714 | tmp@0.0.33: 1715 | resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} 1716 | engines: {node: '>=0.6.0'} 1717 | 1718 | to-regex-range@5.0.1: 1719 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1720 | engines: {node: '>=8.0'} 1721 | 1722 | toidentifier@1.0.1: 1723 | resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} 1724 | engines: {node: '>=0.6'} 1725 | 1726 | tree-kill@1.2.2: 1727 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 1728 | hasBin: true 1729 | 1730 | ts-node@10.9.2: 1731 | resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} 1732 | hasBin: true 1733 | peerDependencies: 1734 | '@swc/core': '>=1.2.50' 1735 | '@swc/wasm': '>=1.2.50' 1736 | '@types/node': '*' 1737 | typescript: '>=2.7' 1738 | peerDependenciesMeta: 1739 | '@swc/core': 1740 | optional: true 1741 | '@swc/wasm': 1742 | optional: true 1743 | 1744 | tslib@2.8.1: 1745 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 1746 | 1747 | tunnel-agent@0.6.0: 1748 | resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} 1749 | 1750 | type-fest@0.21.3: 1751 | resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} 1752 | engines: {node: '>=10'} 1753 | 1754 | type-is@1.6.18: 1755 | resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} 1756 | engines: {node: '>= 0.6'} 1757 | 1758 | type-is@2.0.1: 1759 | resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} 1760 | engines: {node: '>= 0.6'} 1761 | 1762 | typescript@5.8.3: 1763 | resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} 1764 | engines: {node: '>=14.17'} 1765 | hasBin: true 1766 | 1767 | undici-types@6.19.8: 1768 | resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} 1769 | 1770 | unpipe@1.0.0: 1771 | resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} 1772 | engines: {node: '>= 0.8'} 1773 | 1774 | use-callback-ref@1.3.3: 1775 | resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} 1776 | engines: {node: '>=10'} 1777 | peerDependencies: 1778 | '@types/react': '*' 1779 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc 1780 | peerDependenciesMeta: 1781 | '@types/react': 1782 | optional: true 1783 | 1784 | use-sidecar@1.1.3: 1785 | resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} 1786 | engines: {node: '>=10'} 1787 | peerDependencies: 1788 | '@types/react': '*' 1789 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc 1790 | peerDependenciesMeta: 1791 | '@types/react': 1792 | optional: true 1793 | 1794 | util-deprecate@1.0.2: 1795 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1796 | 1797 | utils-merge@1.0.1: 1798 | resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} 1799 | engines: {node: '>= 0.4.0'} 1800 | 1801 | v8-compile-cache-lib@3.0.1: 1802 | resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} 1803 | 1804 | valibot@0.36.0: 1805 | resolution: {integrity: sha512-CjF1XN4sUce8sBK9TixrDqFM7RwNkuXdJu174/AwmQUB62QbCQADg5lLe8ldBalFgtj1uKj+pKwDJiNo4Mn+eQ==} 1806 | 1807 | vary@1.1.2: 1808 | resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} 1809 | engines: {node: '>= 0.8'} 1810 | 1811 | which@2.0.2: 1812 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1813 | engines: {node: '>= 8'} 1814 | hasBin: true 1815 | 1816 | wrap-ansi@6.2.0: 1817 | resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} 1818 | engines: {node: '>=8'} 1819 | 1820 | wrap-ansi@7.0.0: 1821 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1822 | engines: {node: '>=10'} 1823 | 1824 | wrappy@1.0.2: 1825 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1826 | 1827 | ws@8.18.1: 1828 | resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==} 1829 | engines: {node: '>=10.0.0'} 1830 | peerDependencies: 1831 | bufferutil: ^4.0.1 1832 | utf-8-validate: '>=5.0.2' 1833 | peerDependenciesMeta: 1834 | bufferutil: 1835 | optional: true 1836 | utf-8-validate: 1837 | optional: true 1838 | 1839 | y18n@5.0.8: 1840 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 1841 | engines: {node: '>=10'} 1842 | 1843 | yaml@2.7.1: 1844 | resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==} 1845 | engines: {node: '>= 14'} 1846 | hasBin: true 1847 | 1848 | yargs-parser@21.1.1: 1849 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 1850 | engines: {node: '>=12'} 1851 | 1852 | yargs@17.7.2: 1853 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 1854 | engines: {node: '>=12'} 1855 | 1856 | yn@3.1.1: 1857 | resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} 1858 | engines: {node: '>=6'} 1859 | 1860 | yoctocolors-cjs@2.1.2: 1861 | resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} 1862 | engines: {node: '>=18'} 1863 | 1864 | zod-to-json-schema@3.24.5: 1865 | resolution: {integrity: sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==} 1866 | peerDependencies: 1867 | zod: ^3.24.1 1868 | 1869 | zod@3.24.2: 1870 | resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==} 1871 | 1872 | snapshots: 1873 | 1874 | '@0no-co/graphql.web@1.1.2(graphql@16.10.0)': 1875 | optionalDependencies: 1876 | graphql: 16.10.0 1877 | 1878 | '@0no-co/graphqlsp@1.12.16(graphql@16.10.0)(typescript@5.8.3)': 1879 | dependencies: 1880 | '@gql.tada/internal': 1.0.8(graphql@16.10.0)(typescript@5.8.3) 1881 | graphql: 16.10.0 1882 | typescript: 5.8.3 1883 | 1884 | '@biomejs/biome@1.9.4': 1885 | optionalDependencies: 1886 | '@biomejs/cli-darwin-arm64': 1.9.4 1887 | '@biomejs/cli-darwin-x64': 1.9.4 1888 | '@biomejs/cli-linux-arm64': 1.9.4 1889 | '@biomejs/cli-linux-arm64-musl': 1.9.4 1890 | '@biomejs/cli-linux-x64': 1.9.4 1891 | '@biomejs/cli-linux-x64-musl': 1.9.4 1892 | '@biomejs/cli-win32-arm64': 1.9.4 1893 | '@biomejs/cli-win32-x64': 1.9.4 1894 | 1895 | '@biomejs/cli-darwin-arm64@1.9.4': 1896 | optional: true 1897 | 1898 | '@biomejs/cli-darwin-x64@1.9.4': 1899 | optional: true 1900 | 1901 | '@biomejs/cli-linux-arm64-musl@1.9.4': 1902 | optional: true 1903 | 1904 | '@biomejs/cli-linux-arm64@1.9.4': 1905 | optional: true 1906 | 1907 | '@biomejs/cli-linux-x64-musl@1.9.4': 1908 | optional: true 1909 | 1910 | '@biomejs/cli-linux-x64@1.9.4': 1911 | optional: true 1912 | 1913 | '@biomejs/cli-win32-arm64@1.9.4': 1914 | optional: true 1915 | 1916 | '@biomejs/cli-win32-x64@1.9.4': 1917 | optional: true 1918 | 1919 | '@cspotcode/source-map-support@0.8.1': 1920 | dependencies: 1921 | '@jridgewell/trace-mapping': 0.3.9 1922 | 1923 | '@drizzle-team/brocli@0.11.0': {} 1924 | 1925 | '@floating-ui/core@1.6.9': 1926 | dependencies: 1927 | '@floating-ui/utils': 0.2.9 1928 | 1929 | '@floating-ui/dom@1.6.13': 1930 | dependencies: 1931 | '@floating-ui/core': 1.6.9 1932 | '@floating-ui/utils': 0.2.9 1933 | 1934 | '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 1935 | dependencies: 1936 | '@floating-ui/dom': 1.6.13 1937 | react: 18.3.1 1938 | react-dom: 18.3.1(react@18.3.1) 1939 | 1940 | '@floating-ui/utils@0.2.9': {} 1941 | 1942 | '@gql.tada/cli-utils@1.6.3(@0no-co/graphqlsp@1.12.16(graphql@16.10.0)(typescript@5.8.3))(graphql@16.10.0)(typescript@5.8.3)': 1943 | dependencies: 1944 | '@0no-co/graphqlsp': 1.12.16(graphql@16.10.0)(typescript@5.8.3) 1945 | '@gql.tada/internal': 1.0.8(graphql@16.10.0)(typescript@5.8.3) 1946 | graphql: 16.10.0 1947 | typescript: 5.8.3 1948 | 1949 | '@gql.tada/internal@1.0.8(graphql@16.10.0)(typescript@5.8.3)': 1950 | dependencies: 1951 | '@0no-co/graphql.web': 1.1.2(graphql@16.10.0) 1952 | graphql: 16.10.0 1953 | typescript: 5.8.3 1954 | 1955 | '@graphql-typed-document-node/core@3.2.0(graphql@16.10.0)': 1956 | dependencies: 1957 | graphql: 16.10.0 1958 | 1959 | '@hono/node-server@1.14.0(hono@4.7.5)': 1960 | dependencies: 1961 | hono: 4.7.5 1962 | 1963 | '@hono/standard-validator@0.1.2(@standard-schema/spec@1.0.0)(hono@4.7.5)': 1964 | dependencies: 1965 | '@standard-schema/spec': 1.0.0 1966 | hono: 4.7.5 1967 | 1968 | '@inquirer/checkbox@4.1.5(@types/node@20.17.30)': 1969 | dependencies: 1970 | '@inquirer/core': 10.1.10(@types/node@20.17.30) 1971 | '@inquirer/figures': 1.0.11 1972 | '@inquirer/type': 3.0.6(@types/node@20.17.30) 1973 | ansi-escapes: 4.3.2 1974 | yoctocolors-cjs: 2.1.2 1975 | optionalDependencies: 1976 | '@types/node': 20.17.30 1977 | 1978 | '@inquirer/confirm@5.1.9(@types/node@20.17.30)': 1979 | dependencies: 1980 | '@inquirer/core': 10.1.10(@types/node@20.17.30) 1981 | '@inquirer/type': 3.0.6(@types/node@20.17.30) 1982 | optionalDependencies: 1983 | '@types/node': 20.17.30 1984 | 1985 | '@inquirer/core@10.1.10(@types/node@20.17.30)': 1986 | dependencies: 1987 | '@inquirer/figures': 1.0.11 1988 | '@inquirer/type': 3.0.6(@types/node@20.17.30) 1989 | ansi-escapes: 4.3.2 1990 | cli-width: 4.1.0 1991 | mute-stream: 2.0.0 1992 | signal-exit: 4.1.0 1993 | wrap-ansi: 6.2.0 1994 | yoctocolors-cjs: 2.1.2 1995 | optionalDependencies: 1996 | '@types/node': 20.17.30 1997 | 1998 | '@inquirer/editor@4.2.10(@types/node@20.17.30)': 1999 | dependencies: 2000 | '@inquirer/core': 10.1.10(@types/node@20.17.30) 2001 | '@inquirer/type': 3.0.6(@types/node@20.17.30) 2002 | external-editor: 3.1.0 2003 | optionalDependencies: 2004 | '@types/node': 20.17.30 2005 | 2006 | '@inquirer/expand@4.0.12(@types/node@20.17.30)': 2007 | dependencies: 2008 | '@inquirer/core': 10.1.10(@types/node@20.17.30) 2009 | '@inquirer/type': 3.0.6(@types/node@20.17.30) 2010 | yoctocolors-cjs: 2.1.2 2011 | optionalDependencies: 2012 | '@types/node': 20.17.30 2013 | 2014 | '@inquirer/figures@1.0.11': {} 2015 | 2016 | '@inquirer/input@4.1.9(@types/node@20.17.30)': 2017 | dependencies: 2018 | '@inquirer/core': 10.1.10(@types/node@20.17.30) 2019 | '@inquirer/type': 3.0.6(@types/node@20.17.30) 2020 | optionalDependencies: 2021 | '@types/node': 20.17.30 2022 | 2023 | '@inquirer/number@3.0.12(@types/node@20.17.30)': 2024 | dependencies: 2025 | '@inquirer/core': 10.1.10(@types/node@20.17.30) 2026 | '@inquirer/type': 3.0.6(@types/node@20.17.30) 2027 | optionalDependencies: 2028 | '@types/node': 20.17.30 2029 | 2030 | '@inquirer/password@4.0.12(@types/node@20.17.30)': 2031 | dependencies: 2032 | '@inquirer/core': 10.1.10(@types/node@20.17.30) 2033 | '@inquirer/type': 3.0.6(@types/node@20.17.30) 2034 | ansi-escapes: 4.3.2 2035 | optionalDependencies: 2036 | '@types/node': 20.17.30 2037 | 2038 | '@inquirer/prompts@7.4.1(@types/node@20.17.30)': 2039 | dependencies: 2040 | '@inquirer/checkbox': 4.1.5(@types/node@20.17.30) 2041 | '@inquirer/confirm': 5.1.9(@types/node@20.17.30) 2042 | '@inquirer/editor': 4.2.10(@types/node@20.17.30) 2043 | '@inquirer/expand': 4.0.12(@types/node@20.17.30) 2044 | '@inquirer/input': 4.1.9(@types/node@20.17.30) 2045 | '@inquirer/number': 3.0.12(@types/node@20.17.30) 2046 | '@inquirer/password': 4.0.12(@types/node@20.17.30) 2047 | '@inquirer/rawlist': 4.0.12(@types/node@20.17.30) 2048 | '@inquirer/search': 3.0.12(@types/node@20.17.30) 2049 | '@inquirer/select': 4.1.1(@types/node@20.17.30) 2050 | optionalDependencies: 2051 | '@types/node': 20.17.30 2052 | 2053 | '@inquirer/rawlist@4.0.12(@types/node@20.17.30)': 2054 | dependencies: 2055 | '@inquirer/core': 10.1.10(@types/node@20.17.30) 2056 | '@inquirer/type': 3.0.6(@types/node@20.17.30) 2057 | yoctocolors-cjs: 2.1.2 2058 | optionalDependencies: 2059 | '@types/node': 20.17.30 2060 | 2061 | '@inquirer/search@3.0.12(@types/node@20.17.30)': 2062 | dependencies: 2063 | '@inquirer/core': 10.1.10(@types/node@20.17.30) 2064 | '@inquirer/figures': 1.0.11 2065 | '@inquirer/type': 3.0.6(@types/node@20.17.30) 2066 | yoctocolors-cjs: 2.1.2 2067 | optionalDependencies: 2068 | '@types/node': 20.17.30 2069 | 2070 | '@inquirer/select@4.1.1(@types/node@20.17.30)': 2071 | dependencies: 2072 | '@inquirer/core': 10.1.10(@types/node@20.17.30) 2073 | '@inquirer/figures': 1.0.11 2074 | '@inquirer/type': 3.0.6(@types/node@20.17.30) 2075 | ansi-escapes: 4.3.2 2076 | yoctocolors-cjs: 2.1.2 2077 | optionalDependencies: 2078 | '@types/node': 20.17.30 2079 | 2080 | '@inquirer/type@3.0.6(@types/node@20.17.30)': 2081 | optionalDependencies: 2082 | '@types/node': 20.17.30 2083 | 2084 | '@jridgewell/resolve-uri@3.1.2': {} 2085 | 2086 | '@jridgewell/sourcemap-codec@1.5.0': {} 2087 | 2088 | '@jridgewell/trace-mapping@0.3.9': 2089 | dependencies: 2090 | '@jridgewell/resolve-uri': 3.1.2 2091 | '@jridgewell/sourcemap-codec': 1.5.0 2092 | 2093 | '@modelcontextprotocol/inspector-client@0.8.1': 2094 | dependencies: 2095 | '@modelcontextprotocol/sdk': 1.8.0 2096 | '@radix-ui/react-checkbox': 1.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2097 | '@radix-ui/react-dialog': 1.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2098 | '@radix-ui/react-icons': 1.3.2(react@18.3.1) 2099 | '@radix-ui/react-label': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2100 | '@radix-ui/react-popover': 1.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2101 | '@radix-ui/react-select': 2.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2102 | '@radix-ui/react-slot': 1.1.2(react@18.3.1) 2103 | '@radix-ui/react-tabs': 1.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2104 | '@radix-ui/react-toast': 1.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2105 | '@radix-ui/react-tooltip': 1.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2106 | '@types/prismjs': 1.26.5 2107 | class-variance-authority: 0.7.1 2108 | clsx: 2.1.1 2109 | cmdk: 1.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2110 | lucide-react: 0.447.0(react@18.3.1) 2111 | pkce-challenge: 4.1.0 2112 | prismjs: 1.30.0 2113 | react: 18.3.1 2114 | react-dom: 18.3.1(react@18.3.1) 2115 | react-simple-code-editor: 0.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2116 | serve-handler: 6.1.6 2117 | tailwind-merge: 2.6.0 2118 | tailwindcss-animate: 1.0.7 2119 | zod: 3.24.2 2120 | transitivePeerDependencies: 2121 | - '@types/react' 2122 | - '@types/react-dom' 2123 | - supports-color 2124 | - tailwindcss 2125 | 2126 | '@modelcontextprotocol/inspector-server@0.8.1': 2127 | dependencies: 2128 | '@modelcontextprotocol/sdk': 1.8.0 2129 | cors: 2.8.5 2130 | express: 4.21.2 2131 | ws: 8.18.1 2132 | zod: 3.24.2 2133 | transitivePeerDependencies: 2134 | - bufferutil 2135 | - supports-color 2136 | - utf-8-validate 2137 | 2138 | '@modelcontextprotocol/inspector@0.8.1(@types/node@20.17.30)(typescript@5.8.3)': 2139 | dependencies: 2140 | '@modelcontextprotocol/inspector-client': 0.8.1 2141 | '@modelcontextprotocol/inspector-server': 0.8.1 2142 | concurrently: 9.1.2 2143 | shell-quote: 1.8.2 2144 | spawn-rx: 5.1.2 2145 | ts-node: 10.9.2(@types/node@20.17.30)(typescript@5.8.3) 2146 | transitivePeerDependencies: 2147 | - '@swc/core' 2148 | - '@swc/wasm' 2149 | - '@types/node' 2150 | - '@types/react' 2151 | - '@types/react-dom' 2152 | - bufferutil 2153 | - supports-color 2154 | - tailwindcss 2155 | - typescript 2156 | - utf-8-validate 2157 | 2158 | '@modelcontextprotocol/sdk@1.8.0': 2159 | dependencies: 2160 | content-type: 1.0.5 2161 | cors: 2.8.5 2162 | cross-spawn: 7.0.6 2163 | eventsource: 3.0.6 2164 | express: 5.1.0 2165 | express-rate-limit: 7.5.0(express@5.1.0) 2166 | pkce-challenge: 4.1.0 2167 | raw-body: 3.0.0 2168 | zod: 3.24.2 2169 | zod-to-json-schema: 3.24.5(zod@3.24.2) 2170 | transitivePeerDependencies: 2171 | - supports-color 2172 | 2173 | '@mysten/bcs@1.6.0': 2174 | dependencies: 2175 | '@scure/base': 1.2.4 2176 | 2177 | '@mysten/sui@1.26.1(typescript@5.8.3)': 2178 | dependencies: 2179 | '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) 2180 | '@mysten/bcs': 1.6.0 2181 | '@noble/curves': 1.8.1 2182 | '@noble/hashes': 1.7.1 2183 | '@scure/base': 1.2.4 2184 | '@scure/bip32': 1.6.2 2185 | '@scure/bip39': 1.5.4 2186 | gql.tada: 1.8.10(graphql@16.10.0)(typescript@5.8.3) 2187 | graphql: 16.10.0 2188 | poseidon-lite: 0.2.1 2189 | valibot: 0.36.0 2190 | transitivePeerDependencies: 2191 | - '@gql.tada/svelte-support' 2192 | - '@gql.tada/vue-support' 2193 | - typescript 2194 | 2195 | '@noble/curves@1.8.1': 2196 | dependencies: 2197 | '@noble/hashes': 1.7.1 2198 | 2199 | '@noble/hashes@1.7.1': {} 2200 | 2201 | '@nodelib/fs.scandir@2.1.5': 2202 | dependencies: 2203 | '@nodelib/fs.stat': 2.0.5 2204 | run-parallel: 1.2.0 2205 | 2206 | '@nodelib/fs.stat@2.0.5': {} 2207 | 2208 | '@nodelib/fs.walk@1.2.8': 2209 | dependencies: 2210 | '@nodelib/fs.scandir': 2.1.5 2211 | fastq: 1.19.1 2212 | 2213 | '@radix-ui/number@1.1.0': {} 2214 | 2215 | '@radix-ui/primitive@1.1.1': {} 2216 | 2217 | '@radix-ui/react-arrow@1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2218 | dependencies: 2219 | '@radix-ui/react-primitive': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2220 | react: 18.3.1 2221 | react-dom: 18.3.1(react@18.3.1) 2222 | 2223 | '@radix-ui/react-checkbox@1.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2224 | dependencies: 2225 | '@radix-ui/primitive': 1.1.1 2226 | '@radix-ui/react-compose-refs': 1.1.1(react@18.3.1) 2227 | '@radix-ui/react-context': 1.1.1(react@18.3.1) 2228 | '@radix-ui/react-presence': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2229 | '@radix-ui/react-primitive': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2230 | '@radix-ui/react-use-controllable-state': 1.1.0(react@18.3.1) 2231 | '@radix-ui/react-use-previous': 1.1.0(react@18.3.1) 2232 | '@radix-ui/react-use-size': 1.1.0(react@18.3.1) 2233 | react: 18.3.1 2234 | react-dom: 18.3.1(react@18.3.1) 2235 | 2236 | '@radix-ui/react-collection@1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2237 | dependencies: 2238 | '@radix-ui/react-compose-refs': 1.1.1(react@18.3.1) 2239 | '@radix-ui/react-context': 1.1.1(react@18.3.1) 2240 | '@radix-ui/react-primitive': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2241 | '@radix-ui/react-slot': 1.1.2(react@18.3.1) 2242 | react: 18.3.1 2243 | react-dom: 18.3.1(react@18.3.1) 2244 | 2245 | '@radix-ui/react-compose-refs@1.1.1(react@18.3.1)': 2246 | dependencies: 2247 | react: 18.3.1 2248 | 2249 | '@radix-ui/react-context@1.1.1(react@18.3.1)': 2250 | dependencies: 2251 | react: 18.3.1 2252 | 2253 | '@radix-ui/react-dialog@1.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2254 | dependencies: 2255 | '@radix-ui/primitive': 1.1.1 2256 | '@radix-ui/react-compose-refs': 1.1.1(react@18.3.1) 2257 | '@radix-ui/react-context': 1.1.1(react@18.3.1) 2258 | '@radix-ui/react-dismissable-layer': 1.1.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2259 | '@radix-ui/react-focus-guards': 1.1.1(react@18.3.1) 2260 | '@radix-ui/react-focus-scope': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2261 | '@radix-ui/react-id': 1.1.0(react@18.3.1) 2262 | '@radix-ui/react-portal': 1.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2263 | '@radix-ui/react-presence': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2264 | '@radix-ui/react-primitive': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2265 | '@radix-ui/react-slot': 1.1.2(react@18.3.1) 2266 | '@radix-ui/react-use-controllable-state': 1.1.0(react@18.3.1) 2267 | aria-hidden: 1.2.4 2268 | react: 18.3.1 2269 | react-dom: 18.3.1(react@18.3.1) 2270 | react-remove-scroll: 2.6.3(react@18.3.1) 2271 | 2272 | '@radix-ui/react-direction@1.1.0(react@18.3.1)': 2273 | dependencies: 2274 | react: 18.3.1 2275 | 2276 | '@radix-ui/react-dismissable-layer@1.1.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2277 | dependencies: 2278 | '@radix-ui/primitive': 1.1.1 2279 | '@radix-ui/react-compose-refs': 1.1.1(react@18.3.1) 2280 | '@radix-ui/react-primitive': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2281 | '@radix-ui/react-use-callback-ref': 1.1.0(react@18.3.1) 2282 | '@radix-ui/react-use-escape-keydown': 1.1.0(react@18.3.1) 2283 | react: 18.3.1 2284 | react-dom: 18.3.1(react@18.3.1) 2285 | 2286 | '@radix-ui/react-focus-guards@1.1.1(react@18.3.1)': 2287 | dependencies: 2288 | react: 18.3.1 2289 | 2290 | '@radix-ui/react-focus-scope@1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2291 | dependencies: 2292 | '@radix-ui/react-compose-refs': 1.1.1(react@18.3.1) 2293 | '@radix-ui/react-primitive': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2294 | '@radix-ui/react-use-callback-ref': 1.1.0(react@18.3.1) 2295 | react: 18.3.1 2296 | react-dom: 18.3.1(react@18.3.1) 2297 | 2298 | '@radix-ui/react-icons@1.3.2(react@18.3.1)': 2299 | dependencies: 2300 | react: 18.3.1 2301 | 2302 | '@radix-ui/react-id@1.1.0(react@18.3.1)': 2303 | dependencies: 2304 | '@radix-ui/react-use-layout-effect': 1.1.0(react@18.3.1) 2305 | react: 18.3.1 2306 | 2307 | '@radix-ui/react-label@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2308 | dependencies: 2309 | '@radix-ui/react-primitive': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2310 | react: 18.3.1 2311 | react-dom: 18.3.1(react@18.3.1) 2312 | 2313 | '@radix-ui/react-popover@1.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2314 | dependencies: 2315 | '@radix-ui/primitive': 1.1.1 2316 | '@radix-ui/react-compose-refs': 1.1.1(react@18.3.1) 2317 | '@radix-ui/react-context': 1.1.1(react@18.3.1) 2318 | '@radix-ui/react-dismissable-layer': 1.1.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2319 | '@radix-ui/react-focus-guards': 1.1.1(react@18.3.1) 2320 | '@radix-ui/react-focus-scope': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2321 | '@radix-ui/react-id': 1.1.0(react@18.3.1) 2322 | '@radix-ui/react-popper': 1.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2323 | '@radix-ui/react-portal': 1.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2324 | '@radix-ui/react-presence': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2325 | '@radix-ui/react-primitive': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2326 | '@radix-ui/react-slot': 1.1.2(react@18.3.1) 2327 | '@radix-ui/react-use-controllable-state': 1.1.0(react@18.3.1) 2328 | aria-hidden: 1.2.4 2329 | react: 18.3.1 2330 | react-dom: 18.3.1(react@18.3.1) 2331 | react-remove-scroll: 2.6.3(react@18.3.1) 2332 | 2333 | '@radix-ui/react-popper@1.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2334 | dependencies: 2335 | '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2336 | '@radix-ui/react-arrow': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2337 | '@radix-ui/react-compose-refs': 1.1.1(react@18.3.1) 2338 | '@radix-ui/react-context': 1.1.1(react@18.3.1) 2339 | '@radix-ui/react-primitive': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2340 | '@radix-ui/react-use-callback-ref': 1.1.0(react@18.3.1) 2341 | '@radix-ui/react-use-layout-effect': 1.1.0(react@18.3.1) 2342 | '@radix-ui/react-use-rect': 1.1.0(react@18.3.1) 2343 | '@radix-ui/react-use-size': 1.1.0(react@18.3.1) 2344 | '@radix-ui/rect': 1.1.0 2345 | react: 18.3.1 2346 | react-dom: 18.3.1(react@18.3.1) 2347 | 2348 | '@radix-ui/react-portal@1.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2349 | dependencies: 2350 | '@radix-ui/react-primitive': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2351 | '@radix-ui/react-use-layout-effect': 1.1.0(react@18.3.1) 2352 | react: 18.3.1 2353 | react-dom: 18.3.1(react@18.3.1) 2354 | 2355 | '@radix-ui/react-presence@1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2356 | dependencies: 2357 | '@radix-ui/react-compose-refs': 1.1.1(react@18.3.1) 2358 | '@radix-ui/react-use-layout-effect': 1.1.0(react@18.3.1) 2359 | react: 18.3.1 2360 | react-dom: 18.3.1(react@18.3.1) 2361 | 2362 | '@radix-ui/react-primitive@2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2363 | dependencies: 2364 | '@radix-ui/react-slot': 1.1.2(react@18.3.1) 2365 | react: 18.3.1 2366 | react-dom: 18.3.1(react@18.3.1) 2367 | 2368 | '@radix-ui/react-roving-focus@1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2369 | dependencies: 2370 | '@radix-ui/primitive': 1.1.1 2371 | '@radix-ui/react-collection': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2372 | '@radix-ui/react-compose-refs': 1.1.1(react@18.3.1) 2373 | '@radix-ui/react-context': 1.1.1(react@18.3.1) 2374 | '@radix-ui/react-direction': 1.1.0(react@18.3.1) 2375 | '@radix-ui/react-id': 1.1.0(react@18.3.1) 2376 | '@radix-ui/react-primitive': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2377 | '@radix-ui/react-use-callback-ref': 1.1.0(react@18.3.1) 2378 | '@radix-ui/react-use-controllable-state': 1.1.0(react@18.3.1) 2379 | react: 18.3.1 2380 | react-dom: 18.3.1(react@18.3.1) 2381 | 2382 | '@radix-ui/react-select@2.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2383 | dependencies: 2384 | '@radix-ui/number': 1.1.0 2385 | '@radix-ui/primitive': 1.1.1 2386 | '@radix-ui/react-collection': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2387 | '@radix-ui/react-compose-refs': 1.1.1(react@18.3.1) 2388 | '@radix-ui/react-context': 1.1.1(react@18.3.1) 2389 | '@radix-ui/react-direction': 1.1.0(react@18.3.1) 2390 | '@radix-ui/react-dismissable-layer': 1.1.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2391 | '@radix-ui/react-focus-guards': 1.1.1(react@18.3.1) 2392 | '@radix-ui/react-focus-scope': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2393 | '@radix-ui/react-id': 1.1.0(react@18.3.1) 2394 | '@radix-ui/react-popper': 1.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2395 | '@radix-ui/react-portal': 1.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2396 | '@radix-ui/react-primitive': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2397 | '@radix-ui/react-slot': 1.1.2(react@18.3.1) 2398 | '@radix-ui/react-use-callback-ref': 1.1.0(react@18.3.1) 2399 | '@radix-ui/react-use-controllable-state': 1.1.0(react@18.3.1) 2400 | '@radix-ui/react-use-layout-effect': 1.1.0(react@18.3.1) 2401 | '@radix-ui/react-use-previous': 1.1.0(react@18.3.1) 2402 | '@radix-ui/react-visually-hidden': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2403 | aria-hidden: 1.2.4 2404 | react: 18.3.1 2405 | react-dom: 18.3.1(react@18.3.1) 2406 | react-remove-scroll: 2.6.3(react@18.3.1) 2407 | 2408 | '@radix-ui/react-slot@1.1.2(react@18.3.1)': 2409 | dependencies: 2410 | '@radix-ui/react-compose-refs': 1.1.1(react@18.3.1) 2411 | react: 18.3.1 2412 | 2413 | '@radix-ui/react-tabs@1.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2414 | dependencies: 2415 | '@radix-ui/primitive': 1.1.1 2416 | '@radix-ui/react-context': 1.1.1(react@18.3.1) 2417 | '@radix-ui/react-direction': 1.1.0(react@18.3.1) 2418 | '@radix-ui/react-id': 1.1.0(react@18.3.1) 2419 | '@radix-ui/react-presence': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2420 | '@radix-ui/react-primitive': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2421 | '@radix-ui/react-roving-focus': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2422 | '@radix-ui/react-use-controllable-state': 1.1.0(react@18.3.1) 2423 | react: 18.3.1 2424 | react-dom: 18.3.1(react@18.3.1) 2425 | 2426 | '@radix-ui/react-toast@1.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2427 | dependencies: 2428 | '@radix-ui/primitive': 1.1.1 2429 | '@radix-ui/react-collection': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2430 | '@radix-ui/react-compose-refs': 1.1.1(react@18.3.1) 2431 | '@radix-ui/react-context': 1.1.1(react@18.3.1) 2432 | '@radix-ui/react-dismissable-layer': 1.1.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2433 | '@radix-ui/react-portal': 1.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2434 | '@radix-ui/react-presence': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2435 | '@radix-ui/react-primitive': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2436 | '@radix-ui/react-use-callback-ref': 1.1.0(react@18.3.1) 2437 | '@radix-ui/react-use-controllable-state': 1.1.0(react@18.3.1) 2438 | '@radix-ui/react-use-layout-effect': 1.1.0(react@18.3.1) 2439 | '@radix-ui/react-visually-hidden': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2440 | react: 18.3.1 2441 | react-dom: 18.3.1(react@18.3.1) 2442 | 2443 | '@radix-ui/react-tooltip@1.1.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2444 | dependencies: 2445 | '@radix-ui/primitive': 1.1.1 2446 | '@radix-ui/react-compose-refs': 1.1.1(react@18.3.1) 2447 | '@radix-ui/react-context': 1.1.1(react@18.3.1) 2448 | '@radix-ui/react-dismissable-layer': 1.1.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2449 | '@radix-ui/react-id': 1.1.0(react@18.3.1) 2450 | '@radix-ui/react-popper': 1.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2451 | '@radix-ui/react-portal': 1.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2452 | '@radix-ui/react-presence': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2453 | '@radix-ui/react-primitive': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2454 | '@radix-ui/react-slot': 1.1.2(react@18.3.1) 2455 | '@radix-ui/react-use-controllable-state': 1.1.0(react@18.3.1) 2456 | '@radix-ui/react-visually-hidden': 1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2457 | react: 18.3.1 2458 | react-dom: 18.3.1(react@18.3.1) 2459 | 2460 | '@radix-ui/react-use-callback-ref@1.1.0(react@18.3.1)': 2461 | dependencies: 2462 | react: 18.3.1 2463 | 2464 | '@radix-ui/react-use-controllable-state@1.1.0(react@18.3.1)': 2465 | dependencies: 2466 | '@radix-ui/react-use-callback-ref': 1.1.0(react@18.3.1) 2467 | react: 18.3.1 2468 | 2469 | '@radix-ui/react-use-escape-keydown@1.1.0(react@18.3.1)': 2470 | dependencies: 2471 | '@radix-ui/react-use-callback-ref': 1.1.0(react@18.3.1) 2472 | react: 18.3.1 2473 | 2474 | '@radix-ui/react-use-layout-effect@1.1.0(react@18.3.1)': 2475 | dependencies: 2476 | react: 18.3.1 2477 | 2478 | '@radix-ui/react-use-previous@1.1.0(react@18.3.1)': 2479 | dependencies: 2480 | react: 18.3.1 2481 | 2482 | '@radix-ui/react-use-rect@1.1.0(react@18.3.1)': 2483 | dependencies: 2484 | '@radix-ui/rect': 1.1.0 2485 | react: 18.3.1 2486 | 2487 | '@radix-ui/react-use-size@1.1.0(react@18.3.1)': 2488 | dependencies: 2489 | '@radix-ui/react-use-layout-effect': 1.1.0(react@18.3.1) 2490 | react: 18.3.1 2491 | 2492 | '@radix-ui/react-visually-hidden@1.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2493 | dependencies: 2494 | '@radix-ui/react-primitive': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2495 | react: 18.3.1 2496 | react-dom: 18.3.1(react@18.3.1) 2497 | 2498 | '@radix-ui/rect@1.1.0': {} 2499 | 2500 | '@scure/base@1.2.4': {} 2501 | 2502 | '@scure/bip32@1.6.2': 2503 | dependencies: 2504 | '@noble/curves': 1.8.1 2505 | '@noble/hashes': 1.7.1 2506 | '@scure/base': 1.2.4 2507 | 2508 | '@scure/bip39@1.5.4': 2509 | dependencies: 2510 | '@noble/hashes': 1.7.1 2511 | '@scure/base': 1.2.4 2512 | 2513 | '@standard-community/standard-json@0.1.2(zod-to-json-schema@3.24.5(zod@3.24.2))': 2514 | optionalDependencies: 2515 | zod-to-json-schema: 3.24.5(zod@3.24.2) 2516 | 2517 | '@standard-schema/spec@1.0.0': {} 2518 | 2519 | '@tsconfig/node10@1.0.11': {} 2520 | 2521 | '@tsconfig/node12@1.0.11': {} 2522 | 2523 | '@tsconfig/node14@1.0.3': {} 2524 | 2525 | '@tsconfig/node16@1.0.4': {} 2526 | 2527 | '@types/bun@1.2.8': 2528 | dependencies: 2529 | bun-types: 1.2.7 2530 | 2531 | '@types/node@20.17.30': 2532 | dependencies: 2533 | undici-types: 6.19.8 2534 | 2535 | '@types/prismjs@1.26.5': {} 2536 | 2537 | '@types/ws@8.18.1': 2538 | dependencies: 2539 | '@types/node': 20.17.30 2540 | 2541 | accepts@1.3.8: 2542 | dependencies: 2543 | mime-types: 2.1.35 2544 | negotiator: 0.6.3 2545 | 2546 | accepts@2.0.0: 2547 | dependencies: 2548 | mime-types: 3.0.1 2549 | negotiator: 1.0.0 2550 | 2551 | acorn-walk@8.3.4: 2552 | dependencies: 2553 | acorn: 8.14.1 2554 | 2555 | acorn@8.14.1: {} 2556 | 2557 | ansi-escapes@4.3.2: 2558 | dependencies: 2559 | type-fest: 0.21.3 2560 | 2561 | ansi-regex@5.0.1: {} 2562 | 2563 | ansi-styles@4.3.0: 2564 | dependencies: 2565 | color-convert: 2.0.1 2566 | 2567 | arg@4.1.3: {} 2568 | 2569 | aria-hidden@1.2.4: 2570 | dependencies: 2571 | tslib: 2.8.1 2572 | 2573 | array-flatten@1.1.1: {} 2574 | 2575 | atomic-sleep@1.0.0: {} 2576 | 2577 | balanced-match@1.0.2: {} 2578 | 2579 | base64-js@1.5.1: {} 2580 | 2581 | bl@4.1.0: 2582 | dependencies: 2583 | buffer: 5.7.1 2584 | inherits: 2.0.4 2585 | readable-stream: 3.6.2 2586 | 2587 | body-parser@1.20.3: 2588 | dependencies: 2589 | bytes: 3.1.2 2590 | content-type: 1.0.5 2591 | debug: 2.6.9 2592 | depd: 2.0.0 2593 | destroy: 1.2.0 2594 | http-errors: 2.0.0 2595 | iconv-lite: 0.4.24 2596 | on-finished: 2.4.1 2597 | qs: 6.13.0 2598 | raw-body: 2.5.2 2599 | type-is: 1.6.18 2600 | unpipe: 1.0.0 2601 | transitivePeerDependencies: 2602 | - supports-color 2603 | 2604 | body-parser@2.2.0: 2605 | dependencies: 2606 | bytes: 3.1.2 2607 | content-type: 1.0.5 2608 | debug: 4.4.0 2609 | http-errors: 2.0.0 2610 | iconv-lite: 0.6.3 2611 | on-finished: 2.4.1 2612 | qs: 6.14.0 2613 | raw-body: 3.0.0 2614 | type-is: 2.0.1 2615 | transitivePeerDependencies: 2616 | - supports-color 2617 | 2618 | brace-expansion@1.1.11: 2619 | dependencies: 2620 | balanced-match: 1.0.2 2621 | concat-map: 0.0.1 2622 | 2623 | braces@3.0.3: 2624 | dependencies: 2625 | fill-range: 7.1.1 2626 | 2627 | buffer@5.7.1: 2628 | dependencies: 2629 | base64-js: 1.5.1 2630 | ieee754: 1.2.1 2631 | 2632 | bun-types@1.2.7: 2633 | dependencies: 2634 | '@types/node': 20.17.30 2635 | '@types/ws': 8.18.1 2636 | 2637 | bytes@3.0.0: {} 2638 | 2639 | bytes@3.1.2: {} 2640 | 2641 | call-bind-apply-helpers@1.0.2: 2642 | dependencies: 2643 | es-errors: 1.3.0 2644 | function-bind: 1.1.2 2645 | 2646 | call-bound@1.0.4: 2647 | dependencies: 2648 | call-bind-apply-helpers: 1.0.2 2649 | get-intrinsic: 1.3.0 2650 | 2651 | chalk@4.1.2: 2652 | dependencies: 2653 | ansi-styles: 4.3.0 2654 | supports-color: 7.2.0 2655 | 2656 | chardet@0.7.0: {} 2657 | 2658 | chownr@1.1.4: {} 2659 | 2660 | class-variance-authority@0.7.1: 2661 | dependencies: 2662 | clsx: 2.1.1 2663 | 2664 | cli-width@4.1.0: {} 2665 | 2666 | cliui@8.0.1: 2667 | dependencies: 2668 | string-width: 4.2.3 2669 | strip-ansi: 6.0.1 2670 | wrap-ansi: 7.0.0 2671 | 2672 | clsx@2.1.1: {} 2673 | 2674 | cmdk@1.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): 2675 | dependencies: 2676 | '@radix-ui/react-compose-refs': 1.1.1(react@18.3.1) 2677 | '@radix-ui/react-dialog': 1.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2678 | '@radix-ui/react-id': 1.1.0(react@18.3.1) 2679 | '@radix-ui/react-primitive': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2680 | react: 18.3.1 2681 | react-dom: 18.3.1(react@18.3.1) 2682 | transitivePeerDependencies: 2683 | - '@types/react' 2684 | - '@types/react-dom' 2685 | 2686 | color-convert@2.0.1: 2687 | dependencies: 2688 | color-name: 1.1.4 2689 | 2690 | color-name@1.1.4: {} 2691 | 2692 | colorette@2.0.20: {} 2693 | 2694 | concat-map@0.0.1: {} 2695 | 2696 | concurrently@9.1.2: 2697 | dependencies: 2698 | chalk: 4.1.2 2699 | lodash: 4.17.21 2700 | rxjs: 7.8.2 2701 | shell-quote: 1.8.2 2702 | supports-color: 8.1.1 2703 | tree-kill: 1.2.2 2704 | yargs: 17.7.2 2705 | 2706 | content-disposition@0.5.2: {} 2707 | 2708 | content-disposition@0.5.4: 2709 | dependencies: 2710 | safe-buffer: 5.2.1 2711 | 2712 | content-disposition@1.0.0: 2713 | dependencies: 2714 | safe-buffer: 5.2.1 2715 | 2716 | content-type@1.0.5: {} 2717 | 2718 | cookie-signature@1.0.6: {} 2719 | 2720 | cookie-signature@1.2.2: {} 2721 | 2722 | cookie@0.7.1: {} 2723 | 2724 | cookie@0.7.2: {} 2725 | 2726 | cors@2.8.5: 2727 | dependencies: 2728 | object-assign: 4.1.1 2729 | vary: 1.1.2 2730 | 2731 | create-require@1.1.1: {} 2732 | 2733 | cross-spawn@7.0.6: 2734 | dependencies: 2735 | path-key: 3.1.1 2736 | shebang-command: 2.0.0 2737 | which: 2.0.2 2738 | 2739 | dateformat@4.6.3: {} 2740 | 2741 | debug@2.6.9: 2742 | dependencies: 2743 | ms: 2.0.0 2744 | 2745 | debug@4.4.0: 2746 | dependencies: 2747 | ms: 2.1.3 2748 | 2749 | decompress-response@6.0.0: 2750 | dependencies: 2751 | mimic-response: 3.1.0 2752 | 2753 | deep-extend@0.6.0: {} 2754 | 2755 | depd@2.0.0: {} 2756 | 2757 | destroy@1.2.0: {} 2758 | 2759 | detect-libc@2.0.3: {} 2760 | 2761 | detect-node-es@1.1.0: {} 2762 | 2763 | diff@4.0.2: {} 2764 | 2765 | dunder-proto@1.0.1: 2766 | dependencies: 2767 | call-bind-apply-helpers: 1.0.2 2768 | es-errors: 1.3.0 2769 | gopd: 1.2.0 2770 | 2771 | ee-first@1.1.1: {} 2772 | 2773 | emoji-regex@8.0.0: {} 2774 | 2775 | encodeurl@1.0.2: {} 2776 | 2777 | encodeurl@2.0.0: {} 2778 | 2779 | end-of-stream@1.4.4: 2780 | dependencies: 2781 | once: 1.4.0 2782 | 2783 | es-define-property@1.0.1: {} 2784 | 2785 | es-errors@1.3.0: {} 2786 | 2787 | es-object-atoms@1.1.1: 2788 | dependencies: 2789 | es-errors: 1.3.0 2790 | 2791 | escalade@3.2.0: {} 2792 | 2793 | escape-html@1.0.3: {} 2794 | 2795 | etag@1.8.1: {} 2796 | 2797 | eventsource-parser@3.0.1: {} 2798 | 2799 | eventsource@3.0.6: 2800 | dependencies: 2801 | eventsource-parser: 3.0.1 2802 | 2803 | expand-template@2.0.3: {} 2804 | 2805 | express-rate-limit@7.5.0(express@5.1.0): 2806 | dependencies: 2807 | express: 5.1.0 2808 | 2809 | express@4.21.2: 2810 | dependencies: 2811 | accepts: 1.3.8 2812 | array-flatten: 1.1.1 2813 | body-parser: 1.20.3 2814 | content-disposition: 0.5.4 2815 | content-type: 1.0.5 2816 | cookie: 0.7.1 2817 | cookie-signature: 1.0.6 2818 | debug: 2.6.9 2819 | depd: 2.0.0 2820 | encodeurl: 2.0.0 2821 | escape-html: 1.0.3 2822 | etag: 1.8.1 2823 | finalhandler: 1.3.1 2824 | fresh: 0.5.2 2825 | http-errors: 2.0.0 2826 | merge-descriptors: 1.0.3 2827 | methods: 1.1.2 2828 | on-finished: 2.4.1 2829 | parseurl: 1.3.3 2830 | path-to-regexp: 0.1.12 2831 | proxy-addr: 2.0.7 2832 | qs: 6.13.0 2833 | range-parser: 1.2.1 2834 | safe-buffer: 5.2.1 2835 | send: 0.19.0 2836 | serve-static: 1.16.2 2837 | setprototypeof: 1.2.0 2838 | statuses: 2.0.1 2839 | type-is: 1.6.18 2840 | utils-merge: 1.0.1 2841 | vary: 1.1.2 2842 | transitivePeerDependencies: 2843 | - supports-color 2844 | 2845 | express@5.1.0: 2846 | dependencies: 2847 | accepts: 2.0.0 2848 | body-parser: 2.2.0 2849 | content-disposition: 1.0.0 2850 | content-type: 1.0.5 2851 | cookie: 0.7.2 2852 | cookie-signature: 1.2.2 2853 | debug: 4.4.0 2854 | encodeurl: 2.0.0 2855 | escape-html: 1.0.3 2856 | etag: 1.8.1 2857 | finalhandler: 2.1.0 2858 | fresh: 2.0.0 2859 | http-errors: 2.0.0 2860 | merge-descriptors: 2.0.0 2861 | mime-types: 3.0.1 2862 | on-finished: 2.4.1 2863 | once: 1.4.0 2864 | parseurl: 1.3.3 2865 | proxy-addr: 2.0.7 2866 | qs: 6.14.0 2867 | range-parser: 1.2.1 2868 | router: 2.2.0 2869 | send: 1.2.0 2870 | serve-static: 2.2.0 2871 | statuses: 2.0.1 2872 | type-is: 2.0.1 2873 | vary: 1.1.2 2874 | transitivePeerDependencies: 2875 | - supports-color 2876 | 2877 | external-editor@3.1.0: 2878 | dependencies: 2879 | chardet: 0.7.0 2880 | iconv-lite: 0.4.24 2881 | tmp: 0.0.33 2882 | 2883 | fast-copy@3.0.2: {} 2884 | 2885 | fast-glob@3.3.3: 2886 | dependencies: 2887 | '@nodelib/fs.stat': 2.0.5 2888 | '@nodelib/fs.walk': 1.2.8 2889 | glob-parent: 5.1.2 2890 | merge2: 1.4.1 2891 | micromatch: 4.0.8 2892 | 2893 | fast-redact@3.5.0: {} 2894 | 2895 | fast-safe-stringify@2.1.1: {} 2896 | 2897 | fastq@1.19.1: 2898 | dependencies: 2899 | reusify: 1.1.0 2900 | 2901 | fill-range@7.1.1: 2902 | dependencies: 2903 | to-regex-range: 5.0.1 2904 | 2905 | finalhandler@1.3.1: 2906 | dependencies: 2907 | debug: 2.6.9 2908 | encodeurl: 2.0.0 2909 | escape-html: 1.0.3 2910 | on-finished: 2.4.1 2911 | parseurl: 1.3.3 2912 | statuses: 2.0.1 2913 | unpipe: 1.0.0 2914 | transitivePeerDependencies: 2915 | - supports-color 2916 | 2917 | finalhandler@2.1.0: 2918 | dependencies: 2919 | debug: 4.4.0 2920 | encodeurl: 2.0.0 2921 | escape-html: 1.0.3 2922 | on-finished: 2.4.1 2923 | parseurl: 1.3.3 2924 | statuses: 2.0.1 2925 | transitivePeerDependencies: 2926 | - supports-color 2927 | 2928 | forwarded@0.2.0: {} 2929 | 2930 | fresh@0.5.2: {} 2931 | 2932 | fresh@2.0.0: {} 2933 | 2934 | fs-constants@1.0.0: {} 2935 | 2936 | function-bind@1.1.2: {} 2937 | 2938 | get-caller-file@2.0.5: {} 2939 | 2940 | get-intrinsic@1.3.0: 2941 | dependencies: 2942 | call-bind-apply-helpers: 1.0.2 2943 | es-define-property: 1.0.1 2944 | es-errors: 1.3.0 2945 | es-object-atoms: 1.1.1 2946 | function-bind: 1.1.2 2947 | get-proto: 1.0.1 2948 | gopd: 1.2.0 2949 | has-symbols: 1.1.0 2950 | hasown: 2.0.2 2951 | math-intrinsics: 1.1.0 2952 | 2953 | get-nonce@1.0.1: {} 2954 | 2955 | get-proto@1.0.1: 2956 | dependencies: 2957 | dunder-proto: 1.0.1 2958 | es-object-atoms: 1.1.1 2959 | 2960 | github-from-package@0.0.0: {} 2961 | 2962 | glob-parent@5.1.2: 2963 | dependencies: 2964 | is-glob: 4.0.3 2965 | 2966 | gopd@1.2.0: {} 2967 | 2968 | gql.tada@1.8.10(graphql@16.10.0)(typescript@5.8.3): 2969 | dependencies: 2970 | '@0no-co/graphql.web': 1.1.2(graphql@16.10.0) 2971 | '@0no-co/graphqlsp': 1.12.16(graphql@16.10.0)(typescript@5.8.3) 2972 | '@gql.tada/cli-utils': 1.6.3(@0no-co/graphqlsp@1.12.16(graphql@16.10.0)(typescript@5.8.3))(graphql@16.10.0)(typescript@5.8.3) 2973 | '@gql.tada/internal': 1.0.8(graphql@16.10.0)(typescript@5.8.3) 2974 | typescript: 5.8.3 2975 | transitivePeerDependencies: 2976 | - '@gql.tada/svelte-support' 2977 | - '@gql.tada/vue-support' 2978 | - graphql 2979 | 2980 | graphql@16.10.0: {} 2981 | 2982 | has-flag@4.0.0: {} 2983 | 2984 | has-symbols@1.1.0: {} 2985 | 2986 | hasown@2.0.2: 2987 | dependencies: 2988 | function-bind: 1.1.2 2989 | 2990 | help-me@5.0.0: {} 2991 | 2992 | hono@4.7.5: {} 2993 | 2994 | http-errors@2.0.0: 2995 | dependencies: 2996 | depd: 2.0.0 2997 | inherits: 2.0.4 2998 | setprototypeof: 1.2.0 2999 | statuses: 2.0.1 3000 | toidentifier: 1.0.1 3001 | 3002 | iconv-lite@0.4.24: 3003 | dependencies: 3004 | safer-buffer: 2.1.2 3005 | 3006 | iconv-lite@0.6.3: 3007 | dependencies: 3008 | safer-buffer: 2.1.2 3009 | 3010 | ieee754@1.2.1: {} 3011 | 3012 | inherits@2.0.4: {} 3013 | 3014 | ini@1.3.8: {} 3015 | 3016 | ipaddr.js@1.9.1: {} 3017 | 3018 | is-extglob@2.1.1: {} 3019 | 3020 | is-fullwidth-code-point@3.0.0: {} 3021 | 3022 | is-glob@4.0.3: 3023 | dependencies: 3024 | is-extglob: 2.1.1 3025 | 3026 | is-number@7.0.0: {} 3027 | 3028 | is-promise@4.0.0: {} 3029 | 3030 | isexe@2.0.0: {} 3031 | 3032 | joycon@3.1.1: {} 3033 | 3034 | js-tokens@4.0.0: {} 3035 | 3036 | keytar@7.9.0: 3037 | dependencies: 3038 | node-addon-api: 4.3.0 3039 | prebuild-install: 7.1.3 3040 | 3041 | lodash@4.17.21: {} 3042 | 3043 | loose-envify@1.4.0: 3044 | dependencies: 3045 | js-tokens: 4.0.0 3046 | 3047 | lucide-react@0.447.0(react@18.3.1): 3048 | dependencies: 3049 | react: 18.3.1 3050 | 3051 | make-error@1.3.6: {} 3052 | 3053 | math-intrinsics@1.1.0: {} 3054 | 3055 | media-typer@0.3.0: {} 3056 | 3057 | media-typer@1.1.0: {} 3058 | 3059 | merge-descriptors@1.0.3: {} 3060 | 3061 | merge-descriptors@2.0.0: {} 3062 | 3063 | merge2@1.4.1: {} 3064 | 3065 | methods@1.1.2: {} 3066 | 3067 | micromatch@4.0.8: 3068 | dependencies: 3069 | braces: 3.0.3 3070 | picomatch: 2.3.1 3071 | 3072 | mime-db@1.33.0: {} 3073 | 3074 | mime-db@1.52.0: {} 3075 | 3076 | mime-db@1.54.0: {} 3077 | 3078 | mime-types@2.1.18: 3079 | dependencies: 3080 | mime-db: 1.33.0 3081 | 3082 | mime-types@2.1.35: 3083 | dependencies: 3084 | mime-db: 1.52.0 3085 | 3086 | mime-types@3.0.1: 3087 | dependencies: 3088 | mime-db: 1.54.0 3089 | 3090 | mime@1.6.0: {} 3091 | 3092 | mimic-response@3.1.0: {} 3093 | 3094 | minimatch@3.1.2: 3095 | dependencies: 3096 | brace-expansion: 1.1.11 3097 | 3098 | minimist@1.2.8: {} 3099 | 3100 | mkdirp-classic@0.5.3: {} 3101 | 3102 | ms@2.0.0: {} 3103 | 3104 | ms@2.1.3: {} 3105 | 3106 | muppet@0.2.0(@hono/standard-validator@0.1.2(@standard-schema/spec@1.0.0)(hono@4.7.5))(@modelcontextprotocol/sdk@1.8.0)(@standard-community/standard-json@0.1.2(zod-to-json-schema@3.24.5(zod@3.24.2)))(@standard-schema/spec@1.0.0)(hono@4.7.5): 3107 | dependencies: 3108 | '@hono/standard-validator': 0.1.2(@standard-schema/spec@1.0.0)(hono@4.7.5) 3109 | '@modelcontextprotocol/sdk': 1.8.0 3110 | '@standard-community/standard-json': 0.1.2(zod-to-json-schema@3.24.5(zod@3.24.2)) 3111 | optionalDependencies: 3112 | '@standard-schema/spec': 1.0.0 3113 | hono: 4.7.5 3114 | 3115 | mute-stream@2.0.0: {} 3116 | 3117 | napi-build-utils@2.0.0: {} 3118 | 3119 | negotiator@0.6.3: {} 3120 | 3121 | negotiator@1.0.0: {} 3122 | 3123 | node-abi@3.74.0: 3124 | dependencies: 3125 | semver: 7.7.1 3126 | 3127 | node-addon-api@4.3.0: {} 3128 | 3129 | object-assign@4.1.1: {} 3130 | 3131 | object-inspect@1.13.4: {} 3132 | 3133 | on-exit-leak-free@2.1.2: {} 3134 | 3135 | on-finished@2.4.1: 3136 | dependencies: 3137 | ee-first: 1.1.1 3138 | 3139 | once@1.4.0: 3140 | dependencies: 3141 | wrappy: 1.0.2 3142 | 3143 | os-tmpdir@1.0.2: {} 3144 | 3145 | parseurl@1.3.3: {} 3146 | 3147 | path-is-inside@1.0.2: {} 3148 | 3149 | path-key@3.1.1: {} 3150 | 3151 | path-to-regexp@0.1.12: {} 3152 | 3153 | path-to-regexp@3.3.0: {} 3154 | 3155 | path-to-regexp@8.2.0: {} 3156 | 3157 | picomatch@2.3.1: {} 3158 | 3159 | pino-abstract-transport@2.0.0: 3160 | dependencies: 3161 | split2: 4.2.0 3162 | 3163 | pino-pretty@13.0.0: 3164 | dependencies: 3165 | colorette: 2.0.20 3166 | dateformat: 4.6.3 3167 | fast-copy: 3.0.2 3168 | fast-safe-stringify: 2.1.1 3169 | help-me: 5.0.0 3170 | joycon: 3.1.1 3171 | minimist: 1.2.8 3172 | on-exit-leak-free: 2.1.2 3173 | pino-abstract-transport: 2.0.0 3174 | pump: 3.0.2 3175 | secure-json-parse: 2.7.0 3176 | sonic-boom: 4.2.0 3177 | strip-json-comments: 3.1.1 3178 | 3179 | pino-std-serializers@7.0.0: {} 3180 | 3181 | pino@9.6.0: 3182 | dependencies: 3183 | atomic-sleep: 1.0.0 3184 | fast-redact: 3.5.0 3185 | on-exit-leak-free: 2.1.2 3186 | pino-abstract-transport: 2.0.0 3187 | pino-std-serializers: 7.0.0 3188 | process-warning: 4.0.1 3189 | quick-format-unescaped: 4.0.4 3190 | real-require: 0.2.0 3191 | safe-stable-stringify: 2.5.0 3192 | sonic-boom: 4.2.0 3193 | thread-stream: 3.1.0 3194 | 3195 | pkce-challenge@4.1.0: {} 3196 | 3197 | poseidon-lite@0.2.1: {} 3198 | 3199 | prebuild-install@7.1.3: 3200 | dependencies: 3201 | detect-libc: 2.0.3 3202 | expand-template: 2.0.3 3203 | github-from-package: 0.0.0 3204 | minimist: 1.2.8 3205 | mkdirp-classic: 0.5.3 3206 | napi-build-utils: 2.0.0 3207 | node-abi: 3.74.0 3208 | pump: 3.0.2 3209 | rc: 1.2.8 3210 | simple-get: 4.0.1 3211 | tar-fs: 2.1.2 3212 | tunnel-agent: 0.6.0 3213 | 3214 | prismjs@1.30.0: {} 3215 | 3216 | process-warning@4.0.1: {} 3217 | 3218 | proxy-addr@2.0.7: 3219 | dependencies: 3220 | forwarded: 0.2.0 3221 | ipaddr.js: 1.9.1 3222 | 3223 | pump@3.0.2: 3224 | dependencies: 3225 | end-of-stream: 1.4.4 3226 | once: 1.4.0 3227 | 3228 | qs@6.13.0: 3229 | dependencies: 3230 | side-channel: 1.1.0 3231 | 3232 | qs@6.14.0: 3233 | dependencies: 3234 | side-channel: 1.1.0 3235 | 3236 | queue-microtask@1.2.3: {} 3237 | 3238 | quick-format-unescaped@4.0.4: {} 3239 | 3240 | range-parser@1.2.0: {} 3241 | 3242 | range-parser@1.2.1: {} 3243 | 3244 | raw-body@2.5.2: 3245 | dependencies: 3246 | bytes: 3.1.2 3247 | http-errors: 2.0.0 3248 | iconv-lite: 0.4.24 3249 | unpipe: 1.0.0 3250 | 3251 | raw-body@3.0.0: 3252 | dependencies: 3253 | bytes: 3.1.2 3254 | http-errors: 2.0.0 3255 | iconv-lite: 0.6.3 3256 | unpipe: 1.0.0 3257 | 3258 | rc@1.2.8: 3259 | dependencies: 3260 | deep-extend: 0.6.0 3261 | ini: 1.3.8 3262 | minimist: 1.2.8 3263 | strip-json-comments: 2.0.1 3264 | 3265 | react-dom@18.3.1(react@18.3.1): 3266 | dependencies: 3267 | loose-envify: 1.4.0 3268 | react: 18.3.1 3269 | scheduler: 0.23.2 3270 | 3271 | react-remove-scroll-bar@2.3.8(react@18.3.1): 3272 | dependencies: 3273 | react: 18.3.1 3274 | react-style-singleton: 2.2.3(react@18.3.1) 3275 | tslib: 2.8.1 3276 | 3277 | react-remove-scroll@2.6.3(react@18.3.1): 3278 | dependencies: 3279 | react: 18.3.1 3280 | react-remove-scroll-bar: 2.3.8(react@18.3.1) 3281 | react-style-singleton: 2.2.3(react@18.3.1) 3282 | tslib: 2.8.1 3283 | use-callback-ref: 1.3.3(react@18.3.1) 3284 | use-sidecar: 1.1.3(react@18.3.1) 3285 | 3286 | react-simple-code-editor@0.14.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): 3287 | dependencies: 3288 | react: 18.3.1 3289 | react-dom: 18.3.1(react@18.3.1) 3290 | 3291 | react-style-singleton@2.2.3(react@18.3.1): 3292 | dependencies: 3293 | get-nonce: 1.0.1 3294 | react: 18.3.1 3295 | tslib: 2.8.1 3296 | 3297 | react@18.3.1: 3298 | dependencies: 3299 | loose-envify: 1.4.0 3300 | 3301 | readable-stream@3.6.2: 3302 | dependencies: 3303 | inherits: 2.0.4 3304 | string_decoder: 1.3.0 3305 | util-deprecate: 1.0.2 3306 | 3307 | real-require@0.2.0: {} 3308 | 3309 | require-directory@2.1.1: {} 3310 | 3311 | reusify@1.1.0: {} 3312 | 3313 | router@2.2.0: 3314 | dependencies: 3315 | debug: 4.4.0 3316 | depd: 2.0.0 3317 | is-promise: 4.0.0 3318 | parseurl: 1.3.3 3319 | path-to-regexp: 8.2.0 3320 | transitivePeerDependencies: 3321 | - supports-color 3322 | 3323 | run-parallel@1.2.0: 3324 | dependencies: 3325 | queue-microtask: 1.2.3 3326 | 3327 | rxjs@7.8.2: 3328 | dependencies: 3329 | tslib: 2.8.1 3330 | 3331 | safe-buffer@5.2.1: {} 3332 | 3333 | safe-stable-stringify@2.5.0: {} 3334 | 3335 | safer-buffer@2.1.2: {} 3336 | 3337 | scheduler@0.23.2: 3338 | dependencies: 3339 | loose-envify: 1.4.0 3340 | 3341 | secure-json-parse@2.7.0: {} 3342 | 3343 | semver@7.7.1: {} 3344 | 3345 | send@0.19.0: 3346 | dependencies: 3347 | debug: 2.6.9 3348 | depd: 2.0.0 3349 | destroy: 1.2.0 3350 | encodeurl: 1.0.2 3351 | escape-html: 1.0.3 3352 | etag: 1.8.1 3353 | fresh: 0.5.2 3354 | http-errors: 2.0.0 3355 | mime: 1.6.0 3356 | ms: 2.1.3 3357 | on-finished: 2.4.1 3358 | range-parser: 1.2.1 3359 | statuses: 2.0.1 3360 | transitivePeerDependencies: 3361 | - supports-color 3362 | 3363 | send@1.2.0: 3364 | dependencies: 3365 | debug: 4.4.0 3366 | encodeurl: 2.0.0 3367 | escape-html: 1.0.3 3368 | etag: 1.8.1 3369 | fresh: 2.0.0 3370 | http-errors: 2.0.0 3371 | mime-types: 3.0.1 3372 | ms: 2.1.3 3373 | on-finished: 2.4.1 3374 | range-parser: 1.2.1 3375 | statuses: 2.0.1 3376 | transitivePeerDependencies: 3377 | - supports-color 3378 | 3379 | serve-handler@6.1.6: 3380 | dependencies: 3381 | bytes: 3.0.0 3382 | content-disposition: 0.5.2 3383 | mime-types: 2.1.18 3384 | minimatch: 3.1.2 3385 | path-is-inside: 1.0.2 3386 | path-to-regexp: 3.3.0 3387 | range-parser: 1.2.0 3388 | 3389 | serve-static@1.16.2: 3390 | dependencies: 3391 | encodeurl: 2.0.0 3392 | escape-html: 1.0.3 3393 | parseurl: 1.3.3 3394 | send: 0.19.0 3395 | transitivePeerDependencies: 3396 | - supports-color 3397 | 3398 | serve-static@2.2.0: 3399 | dependencies: 3400 | encodeurl: 2.0.0 3401 | escape-html: 1.0.3 3402 | parseurl: 1.3.3 3403 | send: 1.2.0 3404 | transitivePeerDependencies: 3405 | - supports-color 3406 | 3407 | setprototypeof@1.2.0: {} 3408 | 3409 | shebang-command@2.0.0: 3410 | dependencies: 3411 | shebang-regex: 3.0.0 3412 | 3413 | shebang-regex@3.0.0: {} 3414 | 3415 | shell-quote@1.8.2: {} 3416 | 3417 | side-channel-list@1.0.0: 3418 | dependencies: 3419 | es-errors: 1.3.0 3420 | object-inspect: 1.13.4 3421 | 3422 | side-channel-map@1.0.1: 3423 | dependencies: 3424 | call-bound: 1.0.4 3425 | es-errors: 1.3.0 3426 | get-intrinsic: 1.3.0 3427 | object-inspect: 1.13.4 3428 | 3429 | side-channel-weakmap@1.0.2: 3430 | dependencies: 3431 | call-bound: 1.0.4 3432 | es-errors: 1.3.0 3433 | get-intrinsic: 1.3.0 3434 | object-inspect: 1.13.4 3435 | side-channel-map: 1.0.1 3436 | 3437 | side-channel@1.1.0: 3438 | dependencies: 3439 | es-errors: 1.3.0 3440 | object-inspect: 1.13.4 3441 | side-channel-list: 1.0.0 3442 | side-channel-map: 1.0.1 3443 | side-channel-weakmap: 1.0.2 3444 | 3445 | signal-exit@4.1.0: {} 3446 | 3447 | simple-concat@1.0.1: {} 3448 | 3449 | simple-get@4.0.1: 3450 | dependencies: 3451 | decompress-response: 6.0.0 3452 | once: 1.4.0 3453 | simple-concat: 1.0.1 3454 | 3455 | sonic-boom@4.2.0: 3456 | dependencies: 3457 | atomic-sleep: 1.0.0 3458 | 3459 | spawn-rx@5.1.2: 3460 | dependencies: 3461 | debug: 4.4.0 3462 | rxjs: 7.8.2 3463 | transitivePeerDependencies: 3464 | - supports-color 3465 | 3466 | split2@4.2.0: {} 3467 | 3468 | statuses@2.0.1: {} 3469 | 3470 | string-width@4.2.3: 3471 | dependencies: 3472 | emoji-regex: 8.0.0 3473 | is-fullwidth-code-point: 3.0.0 3474 | strip-ansi: 6.0.1 3475 | 3476 | string_decoder@1.3.0: 3477 | dependencies: 3478 | safe-buffer: 5.2.1 3479 | 3480 | strip-ansi@6.0.1: 3481 | dependencies: 3482 | ansi-regex: 5.0.1 3483 | 3484 | strip-json-comments@2.0.1: {} 3485 | 3486 | strip-json-comments@3.1.1: {} 3487 | 3488 | supports-color@7.2.0: 3489 | dependencies: 3490 | has-flag: 4.0.0 3491 | 3492 | supports-color@8.1.1: 3493 | dependencies: 3494 | has-flag: 4.0.0 3495 | 3496 | tailwind-merge@2.6.0: {} 3497 | 3498 | tailwindcss-animate@1.0.7: {} 3499 | 3500 | tar-fs@2.1.2: 3501 | dependencies: 3502 | chownr: 1.1.4 3503 | mkdirp-classic: 0.5.3 3504 | pump: 3.0.2 3505 | tar-stream: 2.2.0 3506 | 3507 | tar-stream@2.2.0: 3508 | dependencies: 3509 | bl: 4.1.0 3510 | end-of-stream: 1.4.4 3511 | fs-constants: 1.0.0 3512 | inherits: 2.0.4 3513 | readable-stream: 3.6.2 3514 | 3515 | thread-stream@3.1.0: 3516 | dependencies: 3517 | real-require: 0.2.0 3518 | 3519 | tmp@0.0.33: 3520 | dependencies: 3521 | os-tmpdir: 1.0.2 3522 | 3523 | to-regex-range@5.0.1: 3524 | dependencies: 3525 | is-number: 7.0.0 3526 | 3527 | toidentifier@1.0.1: {} 3528 | 3529 | tree-kill@1.2.2: {} 3530 | 3531 | ts-node@10.9.2(@types/node@20.17.30)(typescript@5.8.3): 3532 | dependencies: 3533 | '@cspotcode/source-map-support': 0.8.1 3534 | '@tsconfig/node10': 1.0.11 3535 | '@tsconfig/node12': 1.0.11 3536 | '@tsconfig/node14': 1.0.3 3537 | '@tsconfig/node16': 1.0.4 3538 | '@types/node': 20.17.30 3539 | acorn: 8.14.1 3540 | acorn-walk: 8.3.4 3541 | arg: 4.1.3 3542 | create-require: 1.1.1 3543 | diff: 4.0.2 3544 | make-error: 1.3.6 3545 | typescript: 5.8.3 3546 | v8-compile-cache-lib: 3.0.1 3547 | yn: 3.1.1 3548 | 3549 | tslib@2.8.1: {} 3550 | 3551 | tunnel-agent@0.6.0: 3552 | dependencies: 3553 | safe-buffer: 5.2.1 3554 | 3555 | type-fest@0.21.3: {} 3556 | 3557 | type-is@1.6.18: 3558 | dependencies: 3559 | media-typer: 0.3.0 3560 | mime-types: 2.1.35 3561 | 3562 | type-is@2.0.1: 3563 | dependencies: 3564 | content-type: 1.0.5 3565 | media-typer: 1.1.0 3566 | mime-types: 3.0.1 3567 | 3568 | typescript@5.8.3: {} 3569 | 3570 | undici-types@6.19.8: {} 3571 | 3572 | unpipe@1.0.0: {} 3573 | 3574 | use-callback-ref@1.3.3(react@18.3.1): 3575 | dependencies: 3576 | react: 18.3.1 3577 | tslib: 2.8.1 3578 | 3579 | use-sidecar@1.1.3(react@18.3.1): 3580 | dependencies: 3581 | detect-node-es: 1.1.0 3582 | react: 18.3.1 3583 | tslib: 2.8.1 3584 | 3585 | util-deprecate@1.0.2: {} 3586 | 3587 | utils-merge@1.0.1: {} 3588 | 3589 | v8-compile-cache-lib@3.0.1: {} 3590 | 3591 | valibot@0.36.0: {} 3592 | 3593 | vary@1.1.2: {} 3594 | 3595 | which@2.0.2: 3596 | dependencies: 3597 | isexe: 2.0.0 3598 | 3599 | wrap-ansi@6.2.0: 3600 | dependencies: 3601 | ansi-styles: 4.3.0 3602 | string-width: 4.2.3 3603 | strip-ansi: 6.0.1 3604 | 3605 | wrap-ansi@7.0.0: 3606 | dependencies: 3607 | ansi-styles: 4.3.0 3608 | string-width: 4.2.3 3609 | strip-ansi: 6.0.1 3610 | 3611 | wrappy@1.0.2: {} 3612 | 3613 | ws@8.18.1: {} 3614 | 3615 | y18n@5.0.8: {} 3616 | 3617 | yaml@2.7.1: {} 3618 | 3619 | yargs-parser@21.1.1: {} 3620 | 3621 | yargs@17.7.2: 3622 | dependencies: 3623 | cliui: 8.0.1 3624 | escalade: 3.2.0 3625 | get-caller-file: 2.0.5 3626 | require-directory: 2.1.1 3627 | string-width: 4.2.3 3628 | y18n: 5.0.8 3629 | yargs-parser: 21.1.1 3630 | 3631 | yn@3.1.1: {} 3632 | 3633 | yoctocolors-cjs@2.1.2: {} 3634 | 3635 | zod-to-json-schema@3.24.5(zod@3.24.2): 3636 | dependencies: 3637 | zod: 3.24.2 3638 | 3639 | zod@3.24.2: {} 3640 | --------------------------------------------------------------------------------