From 4b6570e300eedb265af215c0ca6baeb772d42e4a Mon Sep 17 00:00:00 2001 From: Ralph Khreish <35776126+Crunchyman-ralph@users.noreply.github.com> Date: Tue, 16 Dec 2025 16:14:24 +0100 Subject: [PATCH] fix: support Azure provider with reasoning models (#1310) Co-authored-by: Ralph Khreish Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Fixes #638 --- .changeset/light-trees-deny.md | 7 + .../src/commands/models/custom-providers.ts | 19 +- apps/cli/src/commands/models/setup.ts | 3 +- apps/cli/src/lib/model-management.ts | 8 + apps/docs/docs.json | 8 +- apps/docs/favicon.svg | 11 +- apps/docs/logo/dark.svg | 21 +- apps/docs/logo/light.svg | 21 +- apps/docs/logo/task-master-logo.png | Bin 29537 -> 0 bytes apps/docs/package.json | 2 +- apps/docs/providers/azure.mdx | 159 + package-lock.json | 3734 ++++++++--------- package.json | 2 +- .../tm-core/src/common/constants/providers.ts | 13 +- scripts/modules/supported-models.json | 94 + scripts/modules/task-manager/models.js | 30 +- src/ai-providers/azure.js | 36 +- tests/unit/ai-services-unified.test.js | 2 +- 18 files changed, 2093 insertions(+), 2077 deletions(-) create mode 100644 .changeset/light-trees-deny.md delete mode 100644 apps/docs/logo/task-master-logo.png create mode 100644 apps/docs/providers/azure.mdx diff --git a/.changeset/light-trees-deny.md b/.changeset/light-trees-deny.md new file mode 100644 index 00000000..04681e38 --- /dev/null +++ b/.changeset/light-trees-deny.md @@ -0,0 +1,7 @@ +--- +"task-master-ai": patch +--- + +Fix Azure OpenAI provider to use correct deployment-based URL format + +- Add Azure OpenAI documentation page diff --git a/apps/cli/src/commands/models/custom-providers.ts b/apps/cli/src/commands/models/custom-providers.ts index ff29a6da..76d44197 100644 --- a/apps/cli/src/commands/models/custom-providers.ts +++ b/apps/cli/src/commands/models/custom-providers.ts @@ -5,6 +5,7 @@ import { CUSTOM_PROVIDERS } from '@tm/core'; import chalk from 'chalk'; import inquirer from 'inquirer'; +import { getAzureBaseURL } from '../../lib/model-management.js'; import { validateOllamaModel, validateOpenRouterModel } from './fetchers.js'; import { CUSTOM_PROVIDER_IDS } from './types.js'; import type { @@ -86,18 +87,16 @@ export const customProviderConfigs: Record< }, AZURE: { id: '__CUSTOM_AZURE__', - name: '* Custom Azure model', + name: '* Custom Azure OpenAI model', provider: CUSTOM_PROVIDERS.AZURE, + requiresBaseURL: true, promptMessage: (role) => - `Enter the custom Azure OpenAI Model ID for the ${role} role (e.g., gpt-4o):`, + `Enter the Azure deployment name for the ${role} role (e.g., gpt-4o):`, checkEnvVars: () => { - if ( - !process.env.AZURE_OPENAI_API_KEY || - !process.env.AZURE_OPENAI_ENDPOINT - ) { + if (!process.env.AZURE_OPENAI_API_KEY) { console.error( chalk.red( - 'Error: AZURE_OPENAI_API_KEY and/or AZURE_OPENAI_ENDPOINT environment variables are missing. Please set them before using custom Azure models.' + 'Error: AZURE_OPENAI_API_KEY environment variable is missing. Please set it before using Azure models.' ) ); return false; @@ -171,7 +170,8 @@ export async function handleCustomProvider( modelId?: string | null; provider?: string | null; baseURL?: string | null; - } | null = null + } | null = null, + projectRoot?: string ): Promise<{ modelId: string | null; provider: string | null; @@ -203,6 +203,9 @@ export async function handleCustomProvider( if (currentModel?.provider === config.provider && currentModel?.baseURL) { // Already using this provider - preserve existing baseURL defaultBaseURL = currentModel.baseURL; + } else if (config.provider === CUSTOM_PROVIDERS.AZURE && projectRoot) { + // For Azure, try to use the global azureBaseURL from config + defaultBaseURL = getAzureBaseURL(projectRoot) || ''; } else { // Switching providers or no existing baseURL - use fallback default defaultBaseURL = config.defaultBaseURL || ''; diff --git a/apps/cli/src/commands/models/setup.ts b/apps/cli/src/commands/models/setup.ts index 2ff68f73..6719c1b7 100644 --- a/apps/cli/src/commands/models/setup.ts +++ b/apps/cli/src/commands/models/setup.ts @@ -69,7 +69,8 @@ async function handleSetModel( const result = await handleCustomProvider( selectedValue, role, - currentModel + currentModel, + projectRoot ); if (!result.success) { return { success: false, modified: false }; diff --git a/apps/cli/src/lib/model-management.ts b/apps/cli/src/lib/model-management.ts index 429ead24..6f873cc8 100644 --- a/apps/cli/src/lib/model-management.ts +++ b/apps/cli/src/lib/model-management.ts @@ -160,3 +160,11 @@ export function writeConfig(config: any, projectRoot: string): boolean { export function getAvailableModels(): ModelData[] { return configManagerJs.getAvailableModels() as ModelData[]; } + +/** + * Get Azure base URL from config + */ +export function getAzureBaseURL(projectRoot?: string | null): string { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return (configManagerJs.getAzureBaseURL(projectRoot as any) as string) ?? ''; +} diff --git a/apps/docs/docs.json b/apps/docs/docs.json index 25fefec1..3ac77073 100644 --- a/apps/docs/docs.json +++ b/apps/docs/docs.json @@ -53,6 +53,10 @@ "capabilities/task-structure" ] }, + { + "group": "AI Providers", + "pages": ["providers/azure"] + }, { "group": "TDD Workflow (Autopilot)", "pages": [ @@ -79,8 +83,8 @@ } }, "logo": { - "light": "/logo/task-master-logo.png", - "dark": "/logo/task-master-logo.png" + "light": "/logo/light.svg", + "dark": "/logo/dark.svg" }, "footer": { "socials": { diff --git a/apps/docs/favicon.svg b/apps/docs/favicon.svg index 542d4b29..10b65d66 100644 --- a/apps/docs/favicon.svg +++ b/apps/docs/favicon.svg @@ -1,9 +1,4 @@ - - - - - - - - + + + diff --git a/apps/docs/logo/dark.svg b/apps/docs/logo/dark.svg index b4f7fb74..716ff1fa 100644 --- a/apps/docs/logo/dark.svg +++ b/apps/docs/logo/dark.svg @@ -1,19 +1,4 @@ - - - - - - { - } - - - - - - - - - - - Task Master + + + diff --git a/apps/docs/logo/light.svg b/apps/docs/logo/light.svg index 12b4aec7..d81b4813 100644 --- a/apps/docs/logo/light.svg +++ b/apps/docs/logo/light.svg @@ -1,19 +1,4 @@ - - - - - - { - } - - - - - - - - - - - Task Master + + + diff --git a/apps/docs/logo/task-master-logo.png b/apps/docs/logo/task-master-logo.png deleted file mode 100644 index a1291a482f68eb180608c428b5323baba7a47f51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29537 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

%lz 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 x2)sq$--f{34(Q(o{lDv*^S0f$2>jH@$ diff --git a/apps/docs/package.json b/apps/docs/package.json index 6a1fae61..04de008f 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -8,6 +8,6 @@ "preview": "mintlify preview" }, "devDependencies": { - "mintlify": "^4.2.111" + "mintlify": "^4.2.243" } } diff --git a/apps/docs/providers/azure.mdx b/apps/docs/providers/azure.mdx new file mode 100644 index 00000000..cce7df9a --- /dev/null +++ b/apps/docs/providers/azure.mdx @@ -0,0 +1,159 @@ +--- +title: "Azure OpenAI" +sidebarTitle: "Azure OpenAI" +description: "Configure Task Master to use Azure OpenAI Service" +--- + +Azure OpenAI Service provides enterprise-grade access to OpenAI models through Microsoft Azure. + +## Prerequisites + +1. **Azure subscription** with access to Azure OpenAI Service +2. **Deployed model** in your Azure OpenAI resource +3. **API key** from your Azure OpenAI resource + +## Quick Setup + +### 1. Set Your API Key + +Add your Azure OpenAI API key to your `.env` file: + +```bash +AZURE_OPENAI_API_KEY="your-azure-openai-api-key" +``` + +### 2. Configure the Base URL + +Set `azureBaseURL` in your `.taskmaster/config.json` under the `global` section: + +```json +{ + "global": { + "azureBaseURL": "https://your-resource.openai.azure.com/openai" + } +} +``` + +Or use the CLI: + +```bash +task-master models --set-azure-base-url "https://your-resource.openai.azure.com/openai" +``` + + +Task Master automatically appends `/openai` to your base URL if needed. + + +### 3. Set Azure as Your Provider + +```bash +task-master models --set-main azure:gpt-4o +``` + +## Supported Models + +Task Master supports Azure OpenAI models that use the Chat Completions API: + +| Model | Notes | +|-------|-------| +| `gpt-4o` | Recommended for most use cases | +| `gpt-4o-mini` | Cost-effective option | +| `gpt-4-1` | GPT-4 Turbo | + + +The `modelId` should match your Azure deployment name exactly. Azure deployment names are case-sensitive. + + +## Configuration Examples + +### Basic Configuration + +```json +{ + "models": { + "main": { + "provider": "azure", + "modelId": "gpt-4o", + "maxTokens": 16384, + "temperature": 0.2 + } + }, + "global": { + "azureBaseURL": "https://my-resource.openai.azure.com/openai" + } +} +``` + +### Role-Specific Base URLs + +You can set different base URLs per role if you have deployments in different regions: + +```json +{ + "models": { + "main": { + "provider": "azure", + "modelId": "gpt-4o", + "baseURL": "https://us-east-resource.openai.azure.com/openai", + "maxTokens": 16384 + }, + "fallback": { + "provider": "azure", + "modelId": "gpt-4o-mini", + "baseURL": "https://eu-west-resource.openai.azure.com/openai", + "maxTokens": 16384 + } + } +} +``` + +## MCP Server Configuration + +For Claude Code integration, include your Azure configuration in `.mcp.json`: + +```json +{ + "mcpServers": { + "task-master-ai": { + "command": "npx", + "args": ["-y", "task-master-ai"], + "env": { + "AZURE_OPENAI_API_KEY": "your-azure-key-here" + } + } + } +} +``` + +## Troubleshooting + +### "Azure endpoint URL is required" + +Make sure you've set either: +- `global.azureBaseURL` in config +- `models.[role].baseURL` for the specific role + +### "Invalid API key" + +Verify your `AZURE_OPENAI_API_KEY` is correct and has access to the deployment. + +### "Resource not found" (404) + +1. Ensure the `modelId` matches your Azure deployment name exactly +2. Verify your base URL format is correct (should be `https://your-resource.openai.azure.com`) + +## Getting Your Azure Credentials + +### Azure Portal + +1. Go to [Azure Portal](https://portal.azure.com) +2. Navigate to your Azure OpenAI resource +3. Under **Keys and Endpoint**, copy: + - One of the API keys + - The endpoint URL + +### Creating a Deployment + +1. In your Azure OpenAI resource, go to **Model deployments** +2. Click **Manage Deployments** to open Azure AI Studio +3. Create a new deployment and note the deployment name - this is your `modelId` diff --git a/package-lock.json b/package-lock.json index 38e506b1..12996151 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "dependencies": { "@ai-sdk/amazon-bedrock": "^3.0.23", "@ai-sdk/anthropic": "^2.0.18", - "@ai-sdk/azure": "^2.0.34", + "@ai-sdk/azure": "^2.0.89", "@ai-sdk/google": "^2.0.16", "@ai-sdk/google-vertex": "^3.0.86", "@ai-sdk/groq": "^2.0.21", @@ -164,7 +164,1653 @@ "apps/docs": { "version": "0.0.14", "devDependencies": { - "mintlify": "^4.2.111" + "mintlify": "^4.2.243" + } + }, + "apps/docs/node_modules/@inquirer/prompts": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.9.0.tgz", + "integrity": "sha512-X7/+dG9SLpSzRkwgG5/xiIzW0oMrV3C0HOa7YHG1WnrLK+vCQHfte4k/T80059YBdei29RBC3s+pSMvPJDU9/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/checkbox": "^4.3.0", + "@inquirer/confirm": "^5.1.19", + "@inquirer/editor": "^4.2.21", + "@inquirer/expand": "^4.0.21", + "@inquirer/input": "^4.2.5", + "@inquirer/number": "^3.0.21", + "@inquirer/password": "^4.0.21", + "@inquirer/rawlist": "^4.1.9", + "@inquirer/search": "^3.2.0", + "@inquirer/select": "^4.4.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "apps/docs/node_modules/@mintlify/cli": { + "version": "4.0.847", + "resolved": "https://registry.npmjs.org/@mintlify/cli/-/cli-4.0.847.tgz", + "integrity": "sha512-oqMqeR4FjDhBl6YYk/JHJk14NoFWkUlPzWBSKhjUoLefzh9lwgOfjVTyxs20JpcdQSUqaOuizSKSXAB1fNc+IQ==", + "dev": true, + "license": "Elastic-2.0", + "dependencies": { + "@inquirer/prompts": "7.9.0", + "@mintlify/common": "1.0.638", + "@mintlify/link-rot": "3.0.787", + "@mintlify/models": "0.0.247", + "@mintlify/prebuild": "1.0.769", + "@mintlify/previewing": "4.0.822", + "@mintlify/validation": "0.1.540", + "adm-zip": "0.5.16", + "chalk": "5.2.0", + "color": "4.2.3", + "detect-port": "1.5.1", + "front-matter": "4.0.2", + "fs-extra": "11.2.0", + "ink": "6.3.0", + "inquirer": "12.3.0", + "js-yaml": "4.1.0", + "mdast-util-mdx-jsx": "3.2.0", + "react": "19.2.3", + "semver": "7.7.2", + "unist-util-visit": "5.0.0", + "yargs": "17.7.1" + }, + "bin": { + "mint": "bin/index.js", + "mintlify": "bin/index.js" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "apps/docs/node_modules/@mintlify/common": { + "version": "1.0.638", + "resolved": "https://registry.npmjs.org/@mintlify/common/-/common-1.0.638.tgz", + "integrity": "sha512-G9o29cMcKfi9+uFRIlu/HYgOIfUTcLNFTaHjrkovucXBgPtfDCOrHxu1VCq0u1zv5+oLWmME6Q/W+EaljblFqQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@asyncapi/parser": "3.4.0", + "@mintlify/mdx": "^3.0.4", + "@mintlify/models": "0.0.247", + "@mintlify/openapi-parser": "^0.0.8", + "@mintlify/validation": "0.1.540", + "@sindresorhus/slugify": "2.2.0", + "acorn": "8.11.2", + "acorn-jsx": "5.3.2", + "color-blend": "4.0.0", + "estree-util-to-js": "2.0.0", + "estree-walker": "3.0.3", + "front-matter": "4.0.2", + "hast-util-from-html": "2.0.3", + "hast-util-to-html": "9.0.4", + "hast-util-to-text": "4.0.2", + "hex-rgb": "5.0.0", + "ignore": "7.0.5", + "js-yaml": "4.1.0", + "lodash": "4.17.21", + "mdast-util-from-markdown": "2.0.2", + "mdast-util-gfm": "3.0.0", + "mdast-util-mdx": "3.0.0", + "mdast-util-mdx-jsx": "3.1.3", + "micromark-extension-gfm": "3.0.0", + "micromark-extension-mdx-jsx": "3.0.1", + "micromark-extension-mdxjs": "3.0.0", + "openapi-types": "12.1.3", + "postcss": "8.5.6", + "remark": "15.0.1", + "remark-frontmatter": "5.0.0", + "remark-gfm": "4.0.0", + "remark-math": "6.0.0", + "remark-mdx": "3.1.0", + "remark-stringify": "11.0.0", + "tailwindcss": "3.4.4", + "unified": "11.0.5", + "unist-builder": "4.0.0", + "unist-util-map": "4.0.0", + "unist-util-remove": "4.0.0", + "unist-util-remove-position": "5.0.0", + "unist-util-visit": "5.0.0", + "unist-util-visit-parents": "6.0.1", + "vfile": "6.0.3" + } + }, + "apps/docs/node_modules/@mintlify/common/node_modules/@mintlify/mdx": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@mintlify/mdx/-/mdx-3.0.4.tgz", + "integrity": "sha512-tJhdpnM5ReJLNJ2fuDRIEr0zgVd6id7/oAIfs26V46QlygiLsc8qx4Rz3LWIX51rUXW/cfakjj0EATxIciIw+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/transformers": "^3.11.0", + "@shikijs/twoslash": "^3.12.2", + "arktype": "^2.1.26", + "hast-util-to-string": "^3.0.1", + "mdast-util-from-markdown": "^2.0.2", + "mdast-util-gfm": "^3.1.0", + "mdast-util-mdx-jsx": "^3.2.0", + "mdast-util-to-hast": "^13.2.0", + "next-mdx-remote-client": "^1.0.3", + "rehype-katex": "^7.0.1", + "remark-gfm": "^4.0.0", + "remark-math": "^6.0.0", + "remark-smartypants": "^3.0.2", + "shiki": "^3.11.0", + "unified": "^11.0.0", + "unist-util-visit": "^5.0.0" + }, + "peerDependencies": { + "@radix-ui/react-popover": "^1.1.15", + "react": "^18.3.1", + "react-dom": "^18.3.1" + } + }, + "apps/docs/node_modules/@mintlify/common/node_modules/@mintlify/mdx/node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "apps/docs/node_modules/@mintlify/common/node_modules/@mintlify/mdx/node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "apps/docs/node_modules/@mintlify/common/node_modules/mdast-util-mdx-jsx": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz", + "integrity": "sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "apps/docs/node_modules/@mintlify/common/node_modules/next-mdx-remote-client": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/next-mdx-remote-client/-/next-mdx-remote-client-1.1.4.tgz", + "integrity": "sha512-psCMdO50tfoT1kAH7OGXZvhyRfiHVK6IqwjmWFV5gtLo4dnqjAgcjcLNeJ92iI26UNlKShxYrBs1GQ6UXxk97A==", + "dev": true, + "license": "MPL 2.0", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@mdx-js/mdx": "^3.1.1", + "@mdx-js/react": "^3.1.1", + "remark-mdx-remove-esm": "^1.2.1", + "serialize-error": "^12.0.0", + "vfile": "^6.0.3", + "vfile-matter": "^5.0.1" + }, + "engines": { + "node": ">=18.18.0" + }, + "peerDependencies": { + "react": ">= 18.3.0 < 19.0.0", + "react-dom": ">= 18.3.0 < 19.0.0" + } + }, + "apps/docs/node_modules/@mintlify/common/node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "apps/docs/node_modules/@mintlify/common/node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "apps/docs/node_modules/@mintlify/link-rot": { + "version": "3.0.787", + "resolved": "https://registry.npmjs.org/@mintlify/link-rot/-/link-rot-3.0.787.tgz", + "integrity": "sha512-mFoRAsdLNAoJp2V4jsvGl0svt8xNTqdKkYlElBVu+ICK1+5g+k3OmhENjlbrKwlTIdvUMfV3yeWtfihhA/aQeQ==", + "dev": true, + "license": "Elastic-2.0", + "dependencies": { + "@mintlify/common": "1.0.638", + "@mintlify/prebuild": "1.0.769", + "@mintlify/previewing": "4.0.822", + "@mintlify/validation": "0.1.540", + "fs-extra": "11.1.0", + "unist-util-visit": "4.1.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "apps/docs/node_modules/@mintlify/link-rot/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "dev": true, + "license": "MIT" + }, + "apps/docs/node_modules/@mintlify/link-rot/node_modules/fs-extra": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", + "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "apps/docs/node_modules/@mintlify/link-rot/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "apps/docs/node_modules/@mintlify/link-rot/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "apps/docs/node_modules/@mintlify/models": { + "version": "0.0.247", + "resolved": "https://registry.npmjs.org/@mintlify/models/-/models-0.0.247.tgz", + "integrity": "sha512-a+DheH/5o31jRy/+ZLf3II3I2fwMX8xpXl8Wy5IFzT+T1mYF+11viAHhxAsxogTfbmB7RYtN7YtW2ToiG4DXbg==", + "dev": true, + "license": "Elastic-2.0", + "dependencies": { + "axios": "1.10.0", + "openapi-types": "12.1.3" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "apps/docs/node_modules/@mintlify/prebuild": { + "version": "1.0.769", + "resolved": "https://registry.npmjs.org/@mintlify/prebuild/-/prebuild-1.0.769.tgz", + "integrity": "sha512-HiNwGZXFh/jU60QKX+pkGOG3ixGQUgcSBw8XhmtNAvXGeX//BNbjuU7bimM2UChdKRu9KoGi1FHESbVT/fssyA==", + "dev": true, + "license": "Elastic-2.0", + "dependencies": { + "@mintlify/common": "1.0.638", + "@mintlify/openapi-parser": "^0.0.8", + "@mintlify/scraping": "4.0.498", + "@mintlify/validation": "0.1.540", + "chalk": "5.3.0", + "favicons": "7.2.0", + "front-matter": "4.0.2", + "fs-extra": "11.1.0", + "js-yaml": "4.1.0", + "openapi-types": "12.1.3", + "sharp": "0.33.5", + "sharp-ico": "0.1.5", + "unist-util-visit": "4.1.2", + "uuid": "11.1.0" + } + }, + "apps/docs/node_modules/@mintlify/prebuild/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "dev": true, + "license": "MIT" + }, + "apps/docs/node_modules/@mintlify/prebuild/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "apps/docs/node_modules/@mintlify/prebuild/node_modules/fs-extra": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", + "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "apps/docs/node_modules/@mintlify/prebuild/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "apps/docs/node_modules/@mintlify/prebuild/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "apps/docs/node_modules/@mintlify/previewing": { + "version": "4.0.822", + "resolved": "https://registry.npmjs.org/@mintlify/previewing/-/previewing-4.0.822.tgz", + "integrity": "sha512-bmbCJy83fdyOCZjDKGsF+p+a40Kk79ntb+Z26mNfcCwtAwtHkHWfwxYXzbwO2pizFQWncuQeHU3J0U0crJaHtA==", + "dev": true, + "license": "Elastic-2.0", + "dependencies": { + "@mintlify/common": "1.0.638", + "@mintlify/prebuild": "1.0.769", + "@mintlify/validation": "0.1.540", + "better-opn": "3.0.2", + "chalk": "5.2.0", + "chokidar": "3.5.3", + "express": "4.18.2", + "front-matter": "4.0.2", + "fs-extra": "11.1.0", + "got": "13.0.0", + "ink": "6.3.0", + "ink-spinner": "5.0.0", + "is-online": "10.0.0", + "js-yaml": "4.1.0", + "openapi-types": "12.1.3", + "react": "19.2.3", + "socket.io": "4.7.2", + "tar": "6.1.15", + "unist-util-visit": "4.1.2", + "yargs": "17.7.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "apps/docs/node_modules/@mintlify/previewing/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "dev": true, + "license": "MIT" + }, + "apps/docs/node_modules/@mintlify/previewing/node_modules/fs-extra": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", + "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "apps/docs/node_modules/@mintlify/previewing/node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "apps/docs/node_modules/@mintlify/previewing/node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "apps/docs/node_modules/@mintlify/scraping": { + "version": "4.0.498", + "resolved": "https://registry.npmjs.org/@mintlify/scraping/-/scraping-4.0.498.tgz", + "integrity": "sha512-pHvFfMq0hCMIfXEU7Wr4+xs9yiBh5aHM74zVlHtRPziYWgWegkg6/PDlk+fxXGRhCuxnymTSl4wm44l5np+hHA==", + "dev": true, + "license": "Elastic-2.0", + "dependencies": { + "@mintlify/common": "1.0.638", + "@mintlify/openapi-parser": "^0.0.8", + "fs-extra": "11.1.1", + "hast-util-to-mdast": "10.1.0", + "js-yaml": "4.1.0", + "mdast-util-mdx-jsx": "3.1.3", + "neotraverse": "0.6.18", + "puppeteer": "22.14.0", + "rehype-parse": "9.0.1", + "remark-gfm": "4.0.0", + "remark-mdx": "3.0.1", + "remark-parse": "11.0.0", + "remark-stringify": "11.0.0", + "unified": "11.0.5", + "unist-util-visit": "5.0.0", + "yargs": "17.7.1", + "zod": "3.21.4" + }, + "bin": { + "mintlify-scrape": "bin/cli.js" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "apps/docs/node_modules/@mintlify/scraping/node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "apps/docs/node_modules/@mintlify/scraping/node_modules/mdast-util-mdx-jsx": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz", + "integrity": "sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "apps/docs/node_modules/@mintlify/scraping/node_modules/remark-mdx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.0.1.tgz", + "integrity": "sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "apps/docs/node_modules/@mintlify/validation": { + "version": "0.1.540", + "resolved": "https://registry.npmjs.org/@mintlify/validation/-/validation-0.1.540.tgz", + "integrity": "sha512-J0PflasWriO4rOAvzvIxPH+Qo0G7nFjMMG7fkM8yNHtz3u/7bB4OyBnrxZ6VPgwSwzQ7dR+zC5wql2WA2mveWQ==", + "dev": true, + "license": "Elastic-2.0", + "dependencies": { + "@mintlify/mdx": "^3.0.4", + "@mintlify/models": "0.0.247", + "arktype": "2.1.27", + "js-yaml": "4.1.0", + "lcm": "0.0.3", + "lodash": "4.17.21", + "object-hash": "3.0.0", + "openapi-types": "12.1.3", + "uuid": "11.1.0", + "zod": "3.21.4", + "zod-to-json-schema": "3.20.4" + } + }, + "apps/docs/node_modules/@mintlify/validation/node_modules/@mintlify/mdx": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@mintlify/mdx/-/mdx-3.0.4.tgz", + "integrity": "sha512-tJhdpnM5ReJLNJ2fuDRIEr0zgVd6id7/oAIfs26V46QlygiLsc8qx4Rz3LWIX51rUXW/cfakjj0EATxIciIw+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/transformers": "^3.11.0", + "@shikijs/twoslash": "^3.12.2", + "arktype": "^2.1.26", + "hast-util-to-string": "^3.0.1", + "mdast-util-from-markdown": "^2.0.2", + "mdast-util-gfm": "^3.1.0", + "mdast-util-mdx-jsx": "^3.2.0", + "mdast-util-to-hast": "^13.2.0", + "next-mdx-remote-client": "^1.0.3", + "rehype-katex": "^7.0.1", + "remark-gfm": "^4.0.0", + "remark-math": "^6.0.0", + "remark-smartypants": "^3.0.2", + "shiki": "^3.11.0", + "unified": "^11.0.0", + "unist-util-visit": "^5.0.0" + }, + "peerDependencies": { + "@radix-ui/react-popover": "^1.1.15", + "react": "^18.3.1", + "react-dom": "^18.3.1" + } + }, + "apps/docs/node_modules/@mintlify/validation/node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "apps/docs/node_modules/@mintlify/validation/node_modules/next-mdx-remote-client": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/next-mdx-remote-client/-/next-mdx-remote-client-1.1.4.tgz", + "integrity": "sha512-psCMdO50tfoT1kAH7OGXZvhyRfiHVK6IqwjmWFV5gtLo4dnqjAgcjcLNeJ92iI26UNlKShxYrBs1GQ6UXxk97A==", + "dev": true, + "license": "MPL 2.0", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@mdx-js/mdx": "^3.1.1", + "@mdx-js/react": "^3.1.1", + "remark-mdx-remove-esm": "^1.2.1", + "serialize-error": "^12.0.0", + "vfile": "^6.0.3", + "vfile-matter": "^5.0.1" + }, + "engines": { + "node": ">=18.18.0" + }, + "peerDependencies": { + "react": ">= 18.3.0 < 19.0.0", + "react-dom": ">= 18.3.0 < 19.0.0" + } + }, + "apps/docs/node_modules/@mintlify/validation/node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "apps/docs/node_modules/@mintlify/validation/node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "apps/docs/node_modules/@sindresorhus/is": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "apps/docs/node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "apps/docs/node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "apps/docs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "apps/docs/node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "apps/docs/node_modules/cacheable-request": { + "version": "10.2.14", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", + "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "^4.0.2", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.3", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "apps/docs/node_modules/chalk": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", + "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "apps/docs/node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "apps/docs/node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "apps/docs/node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "apps/docs/node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true, + "license": "MIT" + }, + "apps/docs/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "apps/docs/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "apps/docs/node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "apps/docs/node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "apps/docs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "apps/docs/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "apps/docs/node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "apps/docs/node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "apps/docs/node_modules/form-data-encoder": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", + "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.17" + } + }, + "apps/docs/node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "apps/docs/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "apps/docs/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "apps/docs/node_modules/got": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz", + "integrity": "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "apps/docs/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "apps/docs/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "apps/docs/node_modules/inquirer": { + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-12.3.0.tgz", + "integrity": "sha512-3NixUXq+hM8ezj2wc7wC37b32/rHq1MwNZDYdvx+d6jokOD+r+i8Q4Pkylh9tISYP114A128LCX8RKhopC5RfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.2", + "@inquirer/prompts": "^7.2.1", + "@inquirer/type": "^3.0.2", + "ansi-escapes": "^4.3.2", + "mute-stream": "^2.0.0", + "run-async": "^3.0.0", + "rxjs": "^7.8.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + } + }, + "apps/docs/node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "apps/docs/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "apps/docs/node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "apps/docs/node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "apps/docs/node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true, + "license": "MIT" + }, + "apps/docs/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "apps/docs/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "apps/docs/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "apps/docs/node_modules/mintlify": { + "version": "4.2.243", + "resolved": "https://registry.npmjs.org/mintlify/-/mintlify-4.2.243.tgz", + "integrity": "sha512-quZo24ay+V1/WU5Yk39aVPnEUmpApVJKnhhjmVFKIN2qkR0MGYF1jQsx1KIlnqH/9i+TKz68PAdrZLlFFomKyA==", + "dev": true, + "license": "Elastic-2.0", + "dependencies": { + "@mintlify/cli": "4.0.847" + }, + "bin": { + "mint": "index.js", + "mintlify": "index.js" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "apps/docs/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "apps/docs/node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + } + }, + "apps/docs/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true, + "license": "MIT" + }, + "apps/docs/node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "apps/docs/node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "apps/docs/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "apps/docs/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "apps/docs/node_modules/react": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz", + "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "apps/docs/node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "apps/docs/node_modules/run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "apps/docs/node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "apps/docs/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "apps/docs/node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "apps/docs/node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "apps/docs/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "apps/docs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "apps/docs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "apps/docs/node_modules/tailwindcss": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", + "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "apps/docs/node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "apps/docs/node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "apps/docs/node_modules/unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "apps/docs/node_modules/unist-util-is/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "dev": true, + "license": "MIT" + }, + "apps/docs/node_modules/yaml": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "apps/docs/node_modules/yargs": { + "version": "17.7.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", + "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "apps/docs/node_modules/zod": { + "version": "3.21.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz", + "integrity": "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "apps/docs/node_modules/zod-to-json-schema": { + "version": "3.20.4", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.20.4.tgz", + "integrity": "sha512-Un9+kInJ2Zt63n6Z7mLqBifzzPcOyX+b+Exuzf7L1+xqck9Q2EPByyTRduV3kmSPaXaRer1JCsucubpgL1fipg==", + "dev": true, + "license": "ISC", + "peerDependencies": { + "zod": "^3.20.0" } }, "apps/extension": { @@ -391,14 +2037,31 @@ } }, "node_modules/@ai-sdk/azure": { - "version": "2.0.76", - "resolved": "https://registry.npmjs.org/@ai-sdk/azure/-/azure-2.0.76.tgz", - "integrity": "sha512-cWkt0bt07PZQzJyJgAmxKdjxzDC4N4TDlia0o+UKB6DzPbL2TEa5bE5i8DGA5DRYv5oR38GWHYd2uWzKYmQMpg==", + "version": "2.0.89", + "resolved": "https://registry.npmjs.org/@ai-sdk/azure/-/azure-2.0.89.tgz", + "integrity": "sha512-ELwVkqvvBVDtDH5DtAFhp4tltIdCWVZMwtwodc8v9y0XJyGJiCNdx1Dl9dwS/VzgJpjcj/u2pGs6vTjzBA+M9Q==", "license": "Apache-2.0", "dependencies": { - "@ai-sdk/openai": "2.0.74", + "@ai-sdk/openai": "2.0.87", "@ai-sdk/provider": "2.0.0", - "@ai-sdk/provider-utils": "3.0.18" + "@ai-sdk/provider-utils": "3.0.19" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "zod": "^3.25.76 || ^4.1.8" + } + }, + "node_modules/@ai-sdk/azure/node_modules/@ai-sdk/provider-utils": { + "version": "3.0.19", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-3.0.19.tgz", + "integrity": "sha512-W41Wc9/jbUVXVwCN/7bWa4IKe8MtxO3EyA0Hfhx6grnmiYlCvpI8neSYWFE0zScXJkgA/YK3BRybzgyiXuu6JA==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/provider": "2.0.0", + "@standard-schema/spec": "^1.0.0", + "eventsource-parser": "^3.0.6" }, "engines": { "node": ">=18" @@ -577,13 +2240,13 @@ } }, "node_modules/@ai-sdk/openai": { - "version": "2.0.74", - "resolved": "https://registry.npmjs.org/@ai-sdk/openai/-/openai-2.0.74.tgz", - "integrity": "sha512-vvsL7rGoBEyQIePs630p31ebLeF+xxwLOrRKeIArHko8w7Wh9Kj3wL4Ns+PCzrEpAij31OKKDcxLQ1dSIg/qMw==", + "version": "2.0.87", + "resolved": "https://registry.npmjs.org/@ai-sdk/openai/-/openai-2.0.87.tgz", + "integrity": "sha512-qywHMz8Kd+y/cluanX63SqFV/J8gLq596+W8K/MgdNroEnSabRIeikEP1/K0wwuKtSI7/KaLlVUnt1N5E3889Q==", "license": "Apache-2.0", "dependencies": { "@ai-sdk/provider": "2.0.0", - "@ai-sdk/provider-utils": "3.0.18" + "@ai-sdk/provider-utils": "3.0.19" }, "engines": { "node": ">=18" @@ -608,6 +2271,23 @@ "zod": "^3.25.76 || ^4.1.8" } }, + "node_modules/@ai-sdk/openai/node_modules/@ai-sdk/provider-utils": { + "version": "3.0.19", + "resolved": "https://registry.npmjs.org/@ai-sdk/provider-utils/-/provider-utils-3.0.19.tgz", + "integrity": "sha512-W41Wc9/jbUVXVwCN/7bWa4IKe8MtxO3EyA0Hfhx6grnmiYlCvpI8neSYWFE0zScXJkgA/YK3BRybzgyiXuu6JA==", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/provider": "2.0.0", + "@standard-schema/spec": "^1.0.0", + "eventsource-parser": "^3.0.6" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "zod": "^3.25.76 || ^4.1.8" + } + }, "node_modules/@ai-sdk/perplexity": { "version": "2.0.21", "resolved": "https://registry.npmjs.org/@ai-sdk/perplexity/-/perplexity-2.0.21.tgz", @@ -6144,696 +7824,6 @@ "react": ">=16" } }, - "node_modules/@mintlify/cli": { - "version": "4.0.822", - "resolved": "https://registry.npmjs.org/@mintlify/cli/-/cli-4.0.822.tgz", - "integrity": "sha512-aBzFUtN9HYZrV0mulI035PLdwRwb0mbbHJjNj/HGM9RvEFu0sYW4q4e8OiJWNC/IpuSKi836ToMHNJ6YlLucfQ==", - "dev": true, - "license": "Elastic-2.0", - "dependencies": { - "@inquirer/prompts": "7.9.0", - "@mintlify/common": "1.0.619", - "@mintlify/link-rot": "3.0.762", - "@mintlify/models": "0.0.243", - "@mintlify/prebuild": "1.0.748", - "@mintlify/previewing": "4.0.798", - "@mintlify/validation": "0.1.529", - "adm-zip": "0.5.16", - "chalk": "5.2.0", - "color": "4.2.3", - "detect-port": "1.5.1", - "fs-extra": "11.2.0", - "gray-matter": "4.0.3", - "ink": "6.3.0", - "inquirer": "12.3.0", - "js-yaml": "4.1.0", - "mdast-util-mdx-jsx": "3.2.0", - "react": "19.1.1", - "semver": "7.7.2", - "unist-util-visit": "5.0.0", - "yargs": "17.7.1" - }, - "bin": { - "mint": "bin/index.js", - "mintlify": "bin/index.js" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@mintlify/cli/node_modules/@inquirer/prompts": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.9.0.tgz", - "integrity": "sha512-X7/+dG9SLpSzRkwgG5/xiIzW0oMrV3C0HOa7YHG1WnrLK+vCQHfte4k/T80059YBdei29RBC3s+pSMvPJDU9/A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/checkbox": "^4.3.0", - "@inquirer/confirm": "^5.1.19", - "@inquirer/editor": "^4.2.21", - "@inquirer/expand": "^4.0.21", - "@inquirer/input": "^4.2.5", - "@inquirer/number": "^3.0.21", - "@inquirer/password": "^4.0.21", - "@inquirer/rawlist": "^4.1.9", - "@inquirer/search": "^3.2.0", - "@inquirer/select": "^4.4.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@mintlify/cli/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@mintlify/cli/node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@mintlify/cli/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@mintlify/cli/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@mintlify/cli/node_modules/inquirer": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-12.3.0.tgz", - "integrity": "sha512-3NixUXq+hM8ezj2wc7wC37b32/rHq1MwNZDYdvx+d6jokOD+r+i8Q4Pkylh9tISYP114A128LCX8RKhopC5RfQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.1.2", - "@inquirer/prompts": "^7.2.1", - "@inquirer/type": "^3.0.2", - "ansi-escapes": "^4.3.2", - "mute-stream": "^2.0.0", - "run-async": "^3.0.0", - "rxjs": "^7.8.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - } - }, - "node_modules/@mintlify/cli/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@mintlify/cli/node_modules/react": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", - "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@mintlify/cli/node_modules/run-async": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", - "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/@mintlify/cli/node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@mintlify/cli/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@mintlify/cli/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@mintlify/cli/node_modules/yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@mintlify/common": { - "version": "1.0.619", - "resolved": "https://registry.npmjs.org/@mintlify/common/-/common-1.0.619.tgz", - "integrity": "sha512-NAv0iah3NZS+t40HWXglWrGBzx0d3TpZfgw5HQ1QvFlcqFzxTpsJTK23WQ9ckrW+0WRE5inyr16Hb8epVH5RZg==", - "dev": true, - "license": "ISC", - "dependencies": { - "@asyncapi/parser": "3.4.0", - "@mintlify/mdx": "^3.0.4", - "@mintlify/models": "0.0.243", - "@mintlify/openapi-parser": "^0.0.8", - "@mintlify/validation": "0.1.529", - "@sindresorhus/slugify": "2.2.0", - "acorn": "8.11.2", - "acorn-jsx": "5.3.2", - "color-blend": "4.0.0", - "estree-util-to-js": "2.0.0", - "estree-walker": "3.0.3", - "gray-matter": "4.0.3", - "hast-util-from-html": "2.0.3", - "hast-util-to-html": "9.0.4", - "hast-util-to-text": "4.0.2", - "hex-rgb": "5.0.0", - "ignore": "7.0.5", - "js-yaml": "4.1.0", - "lodash": "4.17.21", - "mdast-util-from-markdown": "2.0.2", - "mdast-util-gfm": "3.0.0", - "mdast-util-mdx": "3.0.0", - "mdast-util-mdx-jsx": "3.1.3", - "micromark-extension-gfm": "3.0.0", - "micromark-extension-mdx-jsx": "3.0.1", - "micromark-extension-mdxjs": "3.0.0", - "openapi-types": "12.1.3", - "postcss": "8.5.6", - "remark": "15.0.1", - "remark-frontmatter": "5.0.0", - "remark-gfm": "4.0.0", - "remark-math": "6.0.0", - "remark-mdx": "3.1.0", - "remark-stringify": "11.0.0", - "tailwindcss": "3.4.4", - "unified": "11.0.5", - "unist-builder": "4.0.0", - "unist-util-map": "4.0.0", - "unist-util-remove": "4.0.0", - "unist-util-remove-position": "5.0.0", - "unist-util-visit": "5.0.0", - "unist-util-visit-parents": "6.0.1", - "vfile": "6.0.3" - } - }, - "node_modules/@mintlify/common/node_modules/@mintlify/mdx": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@mintlify/mdx/-/mdx-3.0.4.tgz", - "integrity": "sha512-tJhdpnM5ReJLNJ2fuDRIEr0zgVd6id7/oAIfs26V46QlygiLsc8qx4Rz3LWIX51rUXW/cfakjj0EATxIciIw+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/transformers": "^3.11.0", - "@shikijs/twoslash": "^3.12.2", - "arktype": "^2.1.26", - "hast-util-to-string": "^3.0.1", - "mdast-util-from-markdown": "^2.0.2", - "mdast-util-gfm": "^3.1.0", - "mdast-util-mdx-jsx": "^3.2.0", - "mdast-util-to-hast": "^13.2.0", - "next-mdx-remote-client": "^1.0.3", - "rehype-katex": "^7.0.1", - "remark-gfm": "^4.0.0", - "remark-math": "^6.0.0", - "remark-smartypants": "^3.0.2", - "shiki": "^3.11.0", - "unified": "^11.0.0", - "unist-util-visit": "^5.0.0" - }, - "peerDependencies": { - "@radix-ui/react-popover": "^1.1.15", - "react": "^18.3.1", - "react-dom": "^18.3.1" - } - }, - "node_modules/@mintlify/common/node_modules/@mintlify/mdx/node_modules/mdast-util-gfm": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", - "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-gfm-autolink-literal": "^2.0.0", - "mdast-util-gfm-footnote": "^2.0.0", - "mdast-util-gfm-strikethrough": "^2.0.0", - "mdast-util-gfm-table": "^2.0.0", - "mdast-util-gfm-task-list-item": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mintlify/common/node_modules/@mintlify/mdx/node_modules/mdast-util-mdx-jsx": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", - "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mintlify/common/node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/@mintlify/common/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@mintlify/common/node_modules/jiti": { - "version": "1.21.7", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", - "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "dev": true, - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/@mintlify/common/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@mintlify/common/node_modules/mdast-util-mdx-jsx": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz", - "integrity": "sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mintlify/common/node_modules/next-mdx-remote-client": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/next-mdx-remote-client/-/next-mdx-remote-client-1.1.4.tgz", - "integrity": "sha512-psCMdO50tfoT1kAH7OGXZvhyRfiHVK6IqwjmWFV5gtLo4dnqjAgcjcLNeJ92iI26UNlKShxYrBs1GQ6UXxk97A==", - "dev": true, - "license": "MPL 2.0", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@mdx-js/mdx": "^3.1.1", - "@mdx-js/react": "^3.1.1", - "remark-mdx-remove-esm": "^1.2.1", - "serialize-error": "^12.0.0", - "vfile": "^6.0.3", - "vfile-matter": "^5.0.1" - }, - "engines": { - "node": ">=18.18.0" - }, - "peerDependencies": { - "react": ">= 18.3.0 < 19.0.0", - "react-dom": ">= 18.3.0 < 19.0.0" - } - }, - "node_modules/@mintlify/common/node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/@mintlify/common/node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/@mintlify/common/node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@mintlify/common/node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/@mintlify/common/node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/@mintlify/common/node_modules/tailwindcss": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", - "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.0", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@mintlify/common/node_modules/yaml": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", - "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", - "dev": true, - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - } - }, - "node_modules/@mintlify/link-rot": { - "version": "3.0.762", - "resolved": "https://registry.npmjs.org/@mintlify/link-rot/-/link-rot-3.0.762.tgz", - "integrity": "sha512-6n28KfmfmSc0B/zSU2jWQju6RVi7nAPYEDvzDEB0Cl/SVCOHIOhY34vNnJVvjkoq6BsyyEHsJmOPv8PQwwgCow==", - "dev": true, - "license": "Elastic-2.0", - "dependencies": { - "@mintlify/common": "1.0.619", - "@mintlify/prebuild": "1.0.748", - "@mintlify/previewing": "4.0.798", - "@mintlify/validation": "0.1.529", - "fs-extra": "11.1.0", - "unist-util-visit": "4.1.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@mintlify/link-rot/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@mintlify/link-rot/node_modules/fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@mintlify/link-rot/node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mintlify/link-rot/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mintlify/link-rot/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mintlify/models": { - "version": "0.0.243", - "resolved": "https://registry.npmjs.org/@mintlify/models/-/models-0.0.243.tgz", - "integrity": "sha512-BRnqHHOWT1DAAmiG+kJ0BpE0ozq6+UWUeMB3NOESRSntHTmjMPvRHmm33BCo4QWk8CiWSUVEFrrHUXz63B9wvw==", - "dev": true, - "license": "Elastic-2.0", - "dependencies": { - "axios": "1.10.0", - "openapi-types": "12.1.3" - }, - "engines": { - "node": ">=18.0.0" - } - }, "node_modules/@mintlify/openapi-parser": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/@mintlify/openapi-parser/-/openapi-parser-0.0.8.tgz", @@ -6878,1200 +7868,6 @@ "node": ">= 14.6" } }, - "node_modules/@mintlify/prebuild": { - "version": "1.0.748", - "resolved": "https://registry.npmjs.org/@mintlify/prebuild/-/prebuild-1.0.748.tgz", - "integrity": "sha512-vSaiG2NcQkYyzdU74RHFu0LvnMZuWzy3CHUt6DZi2V1APPTHpnB++ssyAghZ2QbTyS5QgRNlR4C/4MoQzzn9Xg==", - "dev": true, - "license": "Elastic-2.0", - "dependencies": { - "@mintlify/common": "1.0.619", - "@mintlify/openapi-parser": "^0.0.8", - "@mintlify/scraping": "4.0.479", - "@mintlify/validation": "0.1.529", - "chalk": "5.3.0", - "favicons": "7.2.0", - "fs-extra": "11.1.0", - "gray-matter": "4.0.3", - "js-yaml": "4.1.0", - "openapi-types": "12.1.3", - "sharp": "0.33.5", - "sharp-ico": "0.1.5", - "unist-util-visit": "4.1.2", - "uuid": "11.1.0" - } - }, - "node_modules/@mintlify/prebuild/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@mintlify/prebuild/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@mintlify/prebuild/node_modules/fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@mintlify/prebuild/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@mintlify/prebuild/node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mintlify/prebuild/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mintlify/prebuild/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mintlify/previewing": { - "version": "4.0.798", - "resolved": "https://registry.npmjs.org/@mintlify/previewing/-/previewing-4.0.798.tgz", - "integrity": "sha512-PtMg56VbIgRDDJtPIhmfU1YO8pznyBOWrBYTCOdIjIywxcHdWLniPrWf1/q8M8eqjVUGzFfaaqLYjDoChP6OsQ==", - "dev": true, - "license": "Elastic-2.0", - "dependencies": { - "@mintlify/common": "1.0.619", - "@mintlify/prebuild": "1.0.748", - "@mintlify/validation": "0.1.529", - "better-opn": "3.0.2", - "chalk": "5.2.0", - "chokidar": "3.5.3", - "express": "4.18.2", - "fs-extra": "11.1.0", - "got": "13.0.0", - "gray-matter": "4.0.3", - "ink": "6.3.0", - "ink-spinner": "5.0.0", - "is-online": "10.0.0", - "js-yaml": "4.1.0", - "openapi-types": "12.1.3", - "react": "19.1.1", - "socket.io": "4.7.2", - "tar": "6.1.15", - "unist-util-visit": "4.1.2", - "yargs": "17.7.1" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@mintlify/previewing/node_modules/@sindresorhus/is": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", - "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@mintlify/previewing/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@mintlify/previewing/node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@mintlify/previewing/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@mintlify/previewing/node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/@mintlify/previewing/node_modules/cacheable-request": { - "version": "10.2.14", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", - "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-cache-semantics": "^4.0.2", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.3", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@mintlify/previewing/node_modules/chalk": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.2.0.tgz", - "integrity": "sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@mintlify/previewing/node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/@mintlify/previewing/node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@mintlify/previewing/node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@mintlify/previewing/node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@mintlify/previewing/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/@mintlify/previewing/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@mintlify/previewing/node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@mintlify/previewing/node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@mintlify/previewing/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@mintlify/previewing/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/@mintlify/previewing/node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/@mintlify/previewing/node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/@mintlify/previewing/node_modules/form-data-encoder": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", - "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14.17" - } - }, - "node_modules/@mintlify/previewing/node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@mintlify/previewing/node_modules/fs-extra": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", - "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@mintlify/previewing/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@mintlify/previewing/node_modules/got": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz", - "integrity": "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/@mintlify/previewing/node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/@mintlify/previewing/node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@mintlify/previewing/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@mintlify/previewing/node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/@mintlify/previewing/node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@mintlify/previewing/node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@mintlify/previewing/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@mintlify/previewing/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@mintlify/previewing/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@mintlify/previewing/node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@mintlify/previewing/node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.20" - } - }, - "node_modules/@mintlify/previewing/node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@mintlify/previewing/node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/@mintlify/previewing/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/@mintlify/previewing/node_modules/react": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", - "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@mintlify/previewing/node_modules/responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "dev": true, - "license": "MIT", - "dependencies": { - "lowercase-keys": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@mintlify/previewing/node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/@mintlify/previewing/node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/@mintlify/previewing/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/@mintlify/previewing/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@mintlify/previewing/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@mintlify/previewing/node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@mintlify/previewing/node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mintlify/previewing/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mintlify/previewing/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mintlify/previewing/node_modules/yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@mintlify/scraping": { - "version": "4.0.479", - "resolved": "https://registry.npmjs.org/@mintlify/scraping/-/scraping-4.0.479.tgz", - "integrity": "sha512-1f4y3GgmJgFLQ1c5i3SRilSI+VXGU+Ui/ZpYhU0x6jlAciekWqicVUkMZDEcqaBt+BLj0mGWr7DAdAezk2G7YQ==", - "dev": true, - "license": "Elastic-2.0", - "dependencies": { - "@mintlify/common": "1.0.619", - "@mintlify/openapi-parser": "^0.0.8", - "fs-extra": "11.1.1", - "hast-util-to-mdast": "10.1.0", - "js-yaml": "4.1.0", - "mdast-util-mdx-jsx": "3.1.3", - "neotraverse": "0.6.18", - "puppeteer": "22.14.0", - "rehype-parse": "9.0.1", - "remark-gfm": "4.0.0", - "remark-mdx": "3.0.1", - "remark-parse": "11.0.0", - "remark-stringify": "11.0.0", - "unified": "11.0.5", - "unist-util-visit": "5.0.0", - "yargs": "17.7.1", - "zod": "3.21.4" - }, - "bin": { - "mintlify-scrape": "bin/cli.js" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@mintlify/scraping/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@mintlify/scraping/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@mintlify/scraping/node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/@mintlify/scraping/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@mintlify/scraping/node_modules/mdast-util-mdx-jsx": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz", - "integrity": "sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mintlify/scraping/node_modules/remark-mdx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.0.1.tgz", - "integrity": "sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdast-util-mdx": "^3.0.0", - "micromark-extension-mdxjs": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mintlify/scraping/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@mintlify/scraping/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@mintlify/scraping/node_modules/yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@mintlify/scraping/node_modules/zod": { - "version": "3.21.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz", - "integrity": "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "node_modules/@mintlify/validation": { - "version": "0.1.529", - "resolved": "https://registry.npmjs.org/@mintlify/validation/-/validation-0.1.529.tgz", - "integrity": "sha512-lhRl5p73rgtt0FKGoAYDwYi3yiZLmmM6OA6FL2dD6pYiO7gR6Pzu2hwkiWJW/1Jye3bLwW++1zchlModnvru8A==", - "dev": true, - "license": "Elastic-2.0", - "dependencies": { - "@mintlify/mdx": "^3.0.4", - "@mintlify/models": "0.0.243", - "arktype": "2.1.27", - "js-yaml": "4.1.0", - "lcm": "0.0.3", - "lodash": "4.17.21", - "object-hash": "3.0.0", - "openapi-types": "12.1.3", - "uuid": "11.1.0", - "zod": "3.21.4", - "zod-to-json-schema": "3.20.4" - } - }, - "node_modules/@mintlify/validation/node_modules/@mintlify/mdx": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@mintlify/mdx/-/mdx-3.0.4.tgz", - "integrity": "sha512-tJhdpnM5ReJLNJ2fuDRIEr0zgVd6id7/oAIfs26V46QlygiLsc8qx4Rz3LWIX51rUXW/cfakjj0EATxIciIw+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/transformers": "^3.11.0", - "@shikijs/twoslash": "^3.12.2", - "arktype": "^2.1.26", - "hast-util-to-string": "^3.0.1", - "mdast-util-from-markdown": "^2.0.2", - "mdast-util-gfm": "^3.1.0", - "mdast-util-mdx-jsx": "^3.2.0", - "mdast-util-to-hast": "^13.2.0", - "next-mdx-remote-client": "^1.0.3", - "rehype-katex": "^7.0.1", - "remark-gfm": "^4.0.0", - "remark-math": "^6.0.0", - "remark-smartypants": "^3.0.2", - "shiki": "^3.11.0", - "unified": "^11.0.0", - "unist-util-visit": "^5.0.0" - }, - "peerDependencies": { - "@radix-ui/react-popover": "^1.1.15", - "react": "^18.3.1", - "react-dom": "^18.3.1" - } - }, - "node_modules/@mintlify/validation/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@mintlify/validation/node_modules/mdast-util-gfm": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", - "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-gfm-autolink-literal": "^2.0.0", - "mdast-util-gfm-footnote": "^2.0.0", - "mdast-util-gfm-strikethrough": "^2.0.0", - "mdast-util-gfm-table": "^2.0.0", - "mdast-util-gfm-task-list-item": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mintlify/validation/node_modules/next-mdx-remote-client": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/next-mdx-remote-client/-/next-mdx-remote-client-1.1.4.tgz", - "integrity": "sha512-psCMdO50tfoT1kAH7OGXZvhyRfiHVK6IqwjmWFV5gtLo4dnqjAgcjcLNeJ92iI26UNlKShxYrBs1GQ6UXxk97A==", - "dev": true, - "license": "MPL 2.0", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@mdx-js/mdx": "^3.1.1", - "@mdx-js/react": "^3.1.1", - "remark-mdx-remove-esm": "^1.2.1", - "serialize-error": "^12.0.0", - "vfile": "^6.0.3", - "vfile-matter": "^5.0.1" - }, - "engines": { - "node": ">=18.18.0" - }, - "peerDependencies": { - "react": ">= 18.3.0 < 19.0.0", - "react-dom": ">= 18.3.0 < 19.0.0" - } - }, - "node_modules/@mintlify/validation/node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@mintlify/validation/node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/@mintlify/validation/node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/@mintlify/validation/node_modules/zod": { - "version": "3.21.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz", - "integrity": "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "node_modules/@mintlify/validation/node_modules/zod-to-json-schema": { - "version": "3.20.4", - "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.20.4.tgz", - "integrity": "sha512-Un9+kInJ2Zt63n6Z7mLqBifzzPcOyX+b+Exuzf7L1+xqck9Q2EPByyTRduV3kmSPaXaRer1JCsucubpgL1fipg==", - "dev": true, - "license": "ISC", - "peerDependencies": { - "zod": "^3.20.0" - } - }, "node_modules/@mixmark-io/domino": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@mixmark-io/domino/-/domino-2.2.0.tgz", @@ -19814,19 +19610,6 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "license": "MIT" }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/extendable-error": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/extendable-error/-/extendable-error-0.1.7.tgz", @@ -20593,6 +20376,40 @@ "node": ">= 0.8" } }, + "node_modules/front-matter": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", + "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-yaml": "^3.13.1" + } + }, + "node_modules/front-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/front-matter/node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", @@ -21241,46 +21058,6 @@ "node": ">=14" } }, - "node_modules/gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/gray-matter/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/gray-matter/node_modules/js-yaml": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", - "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/gtoken": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz", @@ -22696,16 +22473,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -25599,16 +25366,6 @@ "@keyv/serialize": "^1.1.1" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -27821,23 +27578,6 @@ "dev": true, "license": "ISC" }, - "node_modules/mintlify": { - "version": "4.2.218", - "resolved": "https://registry.npmjs.org/mintlify/-/mintlify-4.2.218.tgz", - "integrity": "sha512-DZH9BkQLa37KX9WVqShR1ycZv9gknEj7H9M2y0g8vq/yTrsQYUe18/WtpeO7SLBB0zXw2y/8cSYFldTJbq1edQ==", - "dev": true, - "license": "Elastic-2.0", - "dependencies": { - "@mintlify/cli": "4.0.822" - }, - "bin": { - "mint": "index.js", - "mintlify": "index.js" - }, - "engines": { - "node": ">=18.0.0" - } - }, "node_modules/mitt": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", @@ -31762,20 +31502,6 @@ "dev": true, "license": "MIT" }, - "node_modules/section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/selderee": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/selderee/-/selderee-0.11.0.tgz", @@ -32990,16 +32716,6 @@ "node": ">=8" } }, - "node_modules/strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/strip-final-newline": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", diff --git a/package.json b/package.json index 5e15cde4..37e02fc4 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "dependencies": { "@ai-sdk/amazon-bedrock": "^3.0.23", "@ai-sdk/anthropic": "^2.0.18", - "@ai-sdk/azure": "^2.0.34", + "@ai-sdk/azure": "^2.0.89", "@ai-sdk/google": "^2.0.16", "@ai-sdk/google-vertex": "^3.0.86", "@ai-sdk/groq": "^2.0.21", diff --git a/packages/tm-core/src/common/constants/providers.ts b/packages/tm-core/src/common/constants/providers.ts index 6e6c570e..5a47a042 100644 --- a/packages/tm-core/src/common/constants/providers.ts +++ b/packages/tm-core/src/common/constants/providers.ts @@ -13,7 +13,11 @@ export const VALIDATED_PROVIDERS = [ 'perplexity', 'xai', 'groq', - 'mistral' + 'mistral', + 'azure', + 'openrouter', + 'bedrock', + 'ollama' ] as const; export type ValidatedProvider = (typeof VALIDATED_PROVIDERS)[number]; @@ -42,8 +46,5 @@ export const CUSTOM_PROVIDERS_ARRAY = Object.values(CUSTOM_PROVIDERS); // All known providers (for reference) export const ALL_PROVIDERS = [ - ...VALIDATED_PROVIDERS, - ...CUSTOM_PROVIDERS_ARRAY -] as const; - -export type Provider = ValidatedProvider | CustomProvider; + ...new Set([...VALIDATED_PROVIDERS, ...CUSTOM_PROVIDERS_ARRAY]) +]; diff --git a/scripts/modules/supported-models.json b/scripts/modules/supported-models.json index f0a799c9..ad7810ee 100644 --- a/scripts/modules/supported-models.json +++ b/scripts/modules/supported-models.json @@ -1232,6 +1232,100 @@ "allowed_roles": ["main", "fallback"], "max_tokens": 16384, "supported": true + }, + { + "id": "gpt-5", + "name": "GPT-5", + "swe_score": 0.749, + "cost_per_1m_tokens": { + "input": 5.0, + "output": 20.0 + }, + "allowed_roles": ["main", "fallback"], + "max_tokens": 100000, + "temperature": 1, + "supported": true, + "api_type": "responses" + }, + { + "id": "o1", + "name": "o1", + "swe_score": 0.489, + "cost_per_1m_tokens": { + "input": 15.0, + "output": 60.0 + }, + "allowed_roles": ["main"], + "max_tokens": 100000, + "supported": true, + "api_type": "responses" + }, + { + "id": "o3", + "name": "o3", + "swe_score": 0.5, + "cost_per_1m_tokens": { + "input": 2.0, + "output": 8.0 + }, + "allowed_roles": ["main", "fallback"], + "max_tokens": 100000, + "supported": true, + "api_type": "responses" + }, + { + "id": "o3-mini", + "name": "o3-mini", + "swe_score": 0.493, + "cost_per_1m_tokens": { + "input": 1.1, + "output": 4.4 + }, + "allowed_roles": ["main"], + "max_tokens": 100000, + "supported": true, + "api_type": "responses" + }, + { + "id": "o4-mini", + "name": "o4-mini", + "swe_score": 0.45, + "cost_per_1m_tokens": { + "input": 1.1, + "output": 4.4 + }, + "allowed_roles": ["main", "fallback"], + "max_tokens": 100000, + "supported": true, + "api_type": "responses" + }, + { + "id": "gpt-5.1", + "name": "GPT-5.1", + "swe_score": 0.76, + "cost_per_1m_tokens": { + "input": 1.25, + "output": 10.0 + }, + "allowed_roles": ["main", "fallback"], + "max_tokens": 128000, + "reasoning_efforts": ["none", "low", "medium", "high"], + "supported": true, + "api_type": "responses" + }, + { + "id": "gpt-5.2", + "name": "GPT-5.2", + "swe_score": 0.8, + "cost_per_1m_tokens": { + "input": 1.75, + "output": 14.0 + }, + "allowed_roles": ["main", "fallback"], + "max_tokens": 128000, + "reasoning_efforts": ["none", "low", "medium", "high", "xhigh"], + "supported": true, + "api_type": "responses" } ], "bedrock": [ diff --git a/scripts/modules/task-manager/models.js b/scripts/modules/task-manager/models.js index b2bde729..24887c1d 100644 --- a/scripts/modules/task-manager/models.js +++ b/scripts/modules/task-manager/models.js @@ -551,8 +551,33 @@ async function setModel(role, modelId, options = {}) { } else if (providerHint === CUSTOM_PROVIDERS.AZURE) { // Set provider without model validation since Azure models are managed by Azure determinedProvider = CUSTOM_PROVIDERS.AZURE; - warningMessage = `Warning: Custom Azure model '${modelId}' set. Please ensure the model deployment is valid and accessible in your Azure account.`; + + // Get current provider for this role to check if we should preserve baseURL + let currentProvider; + if (role === 'main') { + currentProvider = getMainProvider(projectRoot); + } else if (role === 'research') { + currentProvider = getResearchProvider(projectRoot); + } else if (role === 'fallback') { + currentProvider = getFallbackProvider(projectRoot); + } + + // Only preserve baseURL if we're already using AZURE + const existingBaseURL = + currentProvider === CUSTOM_PROVIDERS.AZURE + ? getBaseUrlForRole(role, projectRoot) + : null; + + const resolvedBaseURL = baseURL || existingBaseURL; + if (!resolvedBaseURL) { + throw new Error( + `Base URL is required for Azure providers. Please provide a baseURL or set global.azureBaseURL in config.` + ); + } + warningMessage = `Warning: Custom Azure model '${modelId}' set with base URL '${resolvedBaseURL}'. Please ensure the model deployment is valid and accessible in your Azure account.`; report('warn', warningMessage); + // Store the computed baseURL so it gets saved in config + computedBaseURL = resolvedBaseURL; } else if (providerHint === CUSTOM_PROVIDERS.VERTEX) { // Set provider without model validation since Vertex models are managed by Google Cloud determinedProvider = CUSTOM_PROVIDERS.VERTEX; @@ -700,7 +725,8 @@ async function setModel(role, modelId, options = {}) { computedBaseURL && (determinedProvider === CUSTOM_PROVIDERS.OPENAI_COMPATIBLE || determinedProvider === CUSTOM_PROVIDERS.LMSTUDIO || - determinedProvider === CUSTOM_PROVIDERS.OLLAMA) + determinedProvider === CUSTOM_PROVIDERS.OLLAMA || + determinedProvider === CUSTOM_PROVIDERS.AZURE) ) { currentConfig.models[role].baseURL = computedBaseURL; } else { diff --git a/src/ai-providers/azure.js b/src/ai-providers/azure.js index c6dcb1cb..a46fb765 100644 --- a/src/ai-providers/azure.js +++ b/src/ai-providers/azure.js @@ -1,6 +1,6 @@ /** * azure.js - * AI provider implementation for Azure OpenAI models using Vercel AI SDK. + * AI provider implementation for Azure OpenAI Service using Vercel AI SDK. */ import { createAzure } from '@ai-sdk/azure'; @@ -37,6 +37,35 @@ export class AzureProvider extends BaseAIProvider { } } + /** + * Normalizes the base URL to ensure it ends with /openai for proper Azure API routing. + * The Azure API expects paths like /openai/deployments/{model}/chat/completions + * @param {string} baseURL - Original base URL + * @returns {string} Normalized base URL ending with /openai + */ + normalizeBaseURL(baseURL) { + if (!baseURL) return baseURL; + + try { + const url = new URL(baseURL); + let pathname = url.pathname.replace(/\/+$/, ''); // Remove trailing slashes + + // If the path doesn't end with /openai, append it + if (!pathname.endsWith('/openai')) { + pathname = `${pathname}/openai`; + } + + url.pathname = pathname; + return url.toString(); + } catch { + // Fallback for invalid URLs + const normalized = baseURL.replace(/\/+$/, ''); + return normalized.endsWith('/openai') + ? normalized + : `${normalized}/openai`; + } + } + /** * Creates and returns an Azure OpenAI client instance. * @param {object} params - Parameters for client initialization @@ -48,11 +77,14 @@ export class AzureProvider extends BaseAIProvider { getClient(params) { try { const { apiKey, baseURL } = params; + + // Normalize base URL to ensure it ends with /openai + const normalizedBaseURL = this.normalizeBaseURL(baseURL); const fetchImpl = this.createProxyFetch(); return createAzure({ apiKey, - baseURL, + baseURL: normalizedBaseURL, ...(fetchImpl && { fetch: fetchImpl }) }); } catch (error) { diff --git a/tests/unit/ai-services-unified.test.js b/tests/unit/ai-services-unified.test.js index be9f557e..0c4cc2fc 100644 --- a/tests/unit/ai-services-unified.test.js +++ b/tests/unit/ai-services-unified.test.js @@ -221,7 +221,7 @@ jest.unstable_mockModule('../../src/ai-providers/index.js', () => ({ generateText: jest.fn(), streamText: jest.fn(), generateObject: jest.fn(), - getRequiredApiKeyName: jest.fn(() => 'AZURE_API_KEY'), + getRequiredApiKeyName: jest.fn(() => 'AZURE_OPENAI_API_KEY'), isRequiredApiKey: jest.fn(() => true) })), VertexAIProvider: jest.fn(() => ({