arshad-yaseen-monacopilot-6c00011/000077500000000000000000000000001477106012500170175ustar00rootroot00000000000000arshad-yaseen-monacopilot-6c00011/.commitlintrc.json000066400000000000000000000007301477106012500224740ustar00rootroot00000000000000{ "extends": ["@commitlint/config-conventional"], "rules": { "type-enum": [ 2, "always", [ "build", "chore", "ci", "docs", "feat", "fix", "perf", "refactor", "revert", "style", "test", "breaking" ] ] } } arshad-yaseen-monacopilot-6c00011/.eslintrc.json000066400000000000000000000011661477106012500216170ustar00rootroot00000000000000{ "root": true, "env": { "browser": true, "es2021": true }, "extends": ["eslint:recommended", "plugin:@typescript-eslint/strict"], "parserOptions": { "ecmaFeatures": { "jsx": true }, "ecmaVersion": "latest", "sourceType": "module", "project": ["./packages/*/tsconfig.json"] }, "ignorePatterns": ["node_modules/**/*", "build/**/*"], "plugins": ["@typescript-eslint"], "rules": { "@typescript-eslint/no-unused-vars": "warn", "react/prop-types": "off", "@typescript-eslint/no-explicit-any": "off" } } arshad-yaseen-monacopilot-6c00011/.gitignore000066400000000000000000000004531477106012500210110ustar00rootroot00000000000000.DS_Store .idea .env .env.local .env.development .env.development.local *.log yalc.lock .vercel/ .turbo/ .next/ .yalc/ build/ dist/ node_modules/ .vercel /test-results/ /playwright-report/ /blob-report/ /playwright/.cache/ /test-results/ /playwright-report/ /blob-report/ /playwright/.cache/ cache arshad-yaseen-monacopilot-6c00011/.npmrc000066400000000000000000000000211477106012500201300ustar00rootroot00000000000000git-checks=false arshad-yaseen-monacopilot-6c00011/.prettierignore000066400000000000000000000001531477106012500220610ustar00rootroot00000000000000node_modules/ dist/ build/ .git/ .vscode/ CHANGELOG.md docs/.vitepress/cache/ docs/.vitepress/dist/ arshad-yaseen-monacopilot-6c00011/.prettierrc000066400000000000000000000012701477106012500212030ustar00rootroot00000000000000{ "tabWidth": 4, "useTabs": false, "bracketSpacing": false, "bracketSameLine": true, "singleQuote": true, "trailingComma": "all", "arrowParens": "avoid", "importOrder": [ "^styles.css$", "", "^(react/(.*)$)|^(react$)", "^(next/(.*)$)|^(next$)", "", "", "", "^@types/(.*)$", "^types/(.*)$", "", "^constants/(.*)$", "", "^utils/(.*)$", "", "^hooks/(.*)$", "", "^components/(.*)$", "", "^src/(.*)$", "", "^[./]" ], "plugins": ["@ianvs/prettier-plugin-sort-imports"] } arshad-yaseen-monacopilot-6c00011/LICENSE000066400000000000000000000020561477106012500200270ustar00rootroot00000000000000MIT License Copyright (c) 2024 Arshad Yaseen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. arshad-yaseen-monacopilot-6c00011/README.md000066400000000000000000000014701477106012500203000ustar00rootroot00000000000000![Monacopilot Banner](https://copilot.arshadyaseen.com/og.png) ### Features - 🔄 Real-time Code Completions - ⚡️ Efficient Caching System - 🎨 Context-Aware Suggestions - 🛠️ Customizable Completion Behavior - 📦 Framework Agnostic - 🔌 Custom Model Support - 🎮 Manual Trigger Support ### Demo [Inline Completions Demo Video](https://github.com/user-attachments/assets/f2ec4ae1-f658-4002-af9c-c6b1bbad70d9) ## Documentation Go to the [documentation](https://copilot.arshadyaseen.com) to get started with Monacopilot. ## Contributing For guidelines on contributing, please read the [contributing guide](https://github.com/arshad-yaseen/monacopilot/blob/main/CONTRIBUTING.md). We welcome contributions from the community to enhance Monacopilot's capabilities and make it even more powerful. ❤️ arshad-yaseen-monacopilot-6c00011/package.json000066400000000000000000000022331477106012500213050ustar00rootroot00000000000000{ "version": "1.1.15", "scripts": { "build": "pnpm -r --filter '!playground' build", "dev:core": "pnpm -C packages/core dev", "dev:monacopilot": "pnpm -C packages/monacopilot dev", "dev:docs": "pnpm -C docs dev", "dev:playground": "pnpm -C playground dev", "build:docs": "pnpm -C docs build", "test": "vitest run", "tsc": "tsc --noEmit", "lint": "eslint . --ext .ts,.tsx --fix", "validate": "pnpm build && pnpm tsc && pnpm lint", "format": "prettier --write .", "release": "bumpp", "publish:ci": "pnpm -r --filter '!docs' --filter '!playground' publish --access public --no-git-checks", "prepare": "husky" }, "devDependencies": { "@commitlint/cli": "^19.5.0", "@commitlint/config-conventional": "^19.5.0", "@ianvs/prettier-plugin-sort-imports": "^4.2.1", "@typescript-eslint/eslint-plugin": "^7.3.1", "bumpp": "^10.0.2", "eslint": "^8.57.0", "husky": "^9.1.6", "prettier": "^3.2.5", "typescript": "^5.4.3", "vitest": "^2.0.5" }, "packageManager": "pnpm@9.15.4" } arshad-yaseen-monacopilot-6c00011/packages/000077500000000000000000000000001477106012500205755ustar00rootroot00000000000000arshad-yaseen-monacopilot-6c00011/packages/core/000077500000000000000000000000001477106012500215255ustar00rootroot00000000000000arshad-yaseen-monacopilot-6c00011/packages/core/README.md000066400000000000000000000002731477106012500230060ustar00rootroot00000000000000# @monacopilot/core The core package provides essential functionality and shared utilities for monacopilot. It handles llm provider integrations and implements the core copilot engine. arshad-yaseen-monacopilot-6c00011/packages/core/package.json000066400000000000000000000017611477106012500240200ustar00rootroot00000000000000{ "name": "@monacopilot/core", "version": "1.1.15", "description": "Core package for monacopilot", "main": "./build/index.js", "module": "./build/index.mjs", "types": "./build/index.d.ts", "files": [ "build" ], "scripts": { "build": "tsup", "dev": "tsup --watch" }, "devDependencies": { "@mistralai/mistralai": "^1.5.0", "tsup": "^8.0.2", "typescript": "^5.4.3" }, "keywords": [ "monacopilot", "monaco", "copilot", "core" ], "repository": { "type": "git", "url": "git+https://github.com/arshad-yaseen/monacopilot.git" }, "homepage": "https://copilot.arshadyaseen.com", "maintainers": [ { "name": "Arshad Yaseen", "email": "m@arshadyaseen.com", "url": "https://arshadyaseen.com" } ], "license": "MIT", "author": "Arshad Yaseen (https://arshadyaseen.com)" } arshad-yaseen-monacopilot-6c00011/packages/core/src/000077500000000000000000000000001477106012500223145ustar00rootroot00000000000000arshad-yaseen-monacopilot-6c00011/packages/core/src/copilot.ts000066400000000000000000000105421477106012500243370ustar00rootroot00000000000000import { createProviderEndpoint, createProviderHeaders, createRequestBody, parseProviderCompletion, } from './llm/operations'; import {logger} from './logger'; import type { CopilotOptions, CustomCopilotModel, CustomPrompt, PromptData, } from './types/copilot'; import type {CopilotAIResponse} from './types/internal'; import type { Completion, CompletionCreateParams, Model, Provider, } from './types/llm'; import {BaseCopilotMetadata} from './types/metadata'; import {fetchWithTimeout} from './utils/fetch-with-timeout'; import validate from './validator'; export abstract class Copilot { protected readonly apiKey: string; protected provider: Provider | undefined; protected model: Model | CustomCopilotModel; constructor(apiKey: string | undefined, options: CopilotOptions) { validate.params(apiKey, options); this.apiKey = apiKey ?? ''; this.provider = options.provider; this.model = options.model; validate.inputs(this.model, this.provider); } protected abstract getDefaultPrompt(metadata: Metadata): PromptData; protected generatePrompt( metadata: Metadata, customPrompt?: CustomPrompt, ): PromptData { const defaultPrompt = this.getDefaultPrompt(metadata); return customPrompt ? {...defaultPrompt, ...customPrompt(metadata)} : defaultPrompt; } protected async makeAIRequest( metadata: Metadata, options: { customPrompt?: CustomPrompt; customHeaders?: Record; } = {}, ): Promise { try { const prompt = this.generatePrompt(metadata, options.customPrompt); if (this.isCustomModel()) { return this.model(prompt); } else { const {customHeaders = {}} = options; const requestDetails = await this.prepareRequest( prompt, metadata as BaseCopilotMetadata, ); const response = await this.sendRequest( requestDetails.endpoint, requestDetails.requestBody, {...requestDetails.headers, ...customHeaders}, ); return this.processResponse(response); } } catch (error) { return this.handleError(error); } } private async prepareRequest( prompt: PromptData, metadata: BaseCopilotMetadata, ) { if (!this.provider) { throw new Error('Provider is required for non-custom models'); } return { endpoint: createProviderEndpoint( this.model as Model, this.apiKey, this.provider, ), headers: createProviderHeaders(this.apiKey, this.provider), requestBody: createRequestBody( this.model as Model, this.provider, prompt, metadata, ), }; } private processResponse(response: unknown): CopilotAIResponse { if (!this.provider) { throw new Error('Provider is required for non-custom models'); } return { text: parseProviderCompletion( response as Completion, this.provider, ), raw: response, }; } private isCustomModel(): this is { model: CustomCopilotModel; } { return typeof this.model === 'function'; } protected async sendRequest( endpoint: string, requestBody: CompletionCreateParams, headers: Record, ) { const response = await fetchWithTimeout(endpoint, { method: 'POST', headers: { 'Content-Type': 'application/json', ...headers, }, body: JSON.stringify(requestBody), }); if (!response.ok) { throw new Error(await response.text()); } return response.json(); } protected handleError(error: unknown): CopilotAIResponse { const errorDetails = logger.report(error); return { text: null, error: errorDetails.message, }; } } arshad-yaseen-monacopilot-6c00011/packages/core/src/defaults.ts000066400000000000000000000004301477106012500244700ustar00rootroot00000000000000export const DEFAULT_COPILOT_MAX_TOKENS = 256 as const; export const DEFAULT_COPILOT_STOP_SEQUENCE = '\n\n' as const; export const DEFAULT_COPILOT_TEMPERATURE = 0.1 as const; export const DEFAULT_COPILOT_TOP_P = 0.1 as const; export const DEFAULT_COPILOT_STREAM = false as const; arshad-yaseen-monacopilot-6c00011/packages/core/src/index.ts000066400000000000000000000003461477106012500237760ustar00rootroot00000000000000export {Copilot} from './copilot'; export * from './logger'; export * from './defaults'; export * from './llm/base'; export type * from './types/llm'; export type * from './types/copilot'; export type * from './types/metadata'; arshad-yaseen-monacopilot-6c00011/packages/core/src/llm/000077500000000000000000000000001477106012500231005ustar00rootroot00000000000000arshad-yaseen-monacopilot-6c00011/packages/core/src/llm/base.ts000066400000000000000000000006651477106012500243710ustar00rootroot00000000000000import type {Model, Provider} from '../types/llm'; export const PROVIDERS = ['mistral'] as const; export const MODEL_IDS: Record = { codestral: 'codestral-latest', } as const; export const PROVIDER_MODEL_MAP: Record = { mistral: ['codestral'], } as const; export const PROVIDER_ENDPOINT_MAP: Record = { mistral: 'https://api.mistral.ai/v1/fim/completions', } as const; arshad-yaseen-monacopilot-6c00011/packages/core/src/llm/handler.ts000066400000000000000000000012521477106012500250650ustar00rootroot00000000000000import type {PromptData} from '../types/copilot'; import type { Model, PickCompletion, PickCompletionCreateParams, PickModel, Provider, } from '../types/llm'; import {BaseCopilotMetadata} from '../types/metadata'; export abstract class BaseProviderHandler

{ abstract createEndpoint(model: Model, apiKey?: string): string; abstract createRequestBody( model: PickModel

, prompt: PromptData, metadata: BaseCopilotMetadata, ): PickCompletionCreateParams

; abstract createHeaders(apiKey: string): Record; abstract parseCompletion(completion: PickCompletion

): string | null; } arshad-yaseen-monacopilot-6c00011/packages/core/src/llm/operations.ts000066400000000000000000000023321477106012500256330ustar00rootroot00000000000000import type {PromptData} from '../types/copilot'; import type { Completion, CompletionCreateParams, PickModel, Provider, } from '../types/llm'; import type {BaseCopilotMetadata} from '../types/metadata'; import {BaseProviderHandler} from './handler'; import {MistralHandler} from './providers/mistral'; const providerHandlers: {[P in Provider]: BaseProviderHandler

} = { mistral: new MistralHandler(), }; export const createProviderEndpoint =

( model: PickModel

, apiKey: string, provider: P, ): string => providerHandlers[provider].createEndpoint(model, apiKey); export const createRequestBody =

( model: PickModel

, provider: P, prompt: PromptData, metadata: BaseCopilotMetadata, ): CompletionCreateParams => providerHandlers[provider].createRequestBody(model, prompt, metadata); export const createProviderHeaders =

( apiKey: string, provider: P, ): Record => providerHandlers[provider].createHeaders(apiKey); export const parseProviderCompletion =

( completion: Completion, provider: P, ): string | null => providerHandlers[provider].parseCompletion(completion); arshad-yaseen-monacopilot-6c00011/packages/core/src/llm/providers/000077500000000000000000000000001477106012500251155ustar00rootroot00000000000000arshad-yaseen-monacopilot-6c00011/packages/core/src/llm/providers/mistral.ts000066400000000000000000000035521477106012500271450ustar00rootroot00000000000000import { DEFAULT_COPILOT_MAX_TOKENS, DEFAULT_COPILOT_STOP_SEQUENCE, DEFAULT_COPILOT_STREAM, DEFAULT_COPILOT_TEMPERATURE, DEFAULT_COPILOT_TOP_P, } from '../../defaults'; import type {PromptData} from '../../types/copilot'; import type { PickCompletion, PickCompletionCreateParams, PickModel, } from '../../types/llm'; import {BaseCopilotMetadata} from '../../types/metadata'; import {MODEL_IDS, PROVIDER_ENDPOINT_MAP} from '../base'; import {BaseProviderHandler} from '../handler'; export class MistralHandler extends BaseProviderHandler<'mistral'> { createEndpoint(): string { return PROVIDER_ENDPOINT_MAP.mistral; } createRequestBody( model: PickModel<'mistral'>, prompt: PromptData, metadata: BaseCopilotMetadata, ): PickCompletionCreateParams<'mistral'> { return { model: MODEL_IDS[model], prompt: `${prompt.context}\n${prompt.instruction}\n${metadata.textBeforeCursor}`, suffix: metadata.textAfterCursor, stream: DEFAULT_COPILOT_STREAM, top_p: DEFAULT_COPILOT_TOP_P, temperature: DEFAULT_COPILOT_TEMPERATURE, max_tokens: DEFAULT_COPILOT_MAX_TOKENS, stop: DEFAULT_COPILOT_STOP_SEQUENCE, }; } createHeaders(apiKey: string): Record { return { 'Content-Type': 'application/json', Authorization: `Bearer ${apiKey}`, }; } parseCompletion(completion: PickCompletion<'mistral'>): string | null { const content = completion.choices?.[0]?.message.content; if (!content) return null; return Array.isArray(content) ? content .filter(chunk => 'text' in chunk) .map(chunk => (chunk as { text: string }).text) .join('') : content; } } arshad-yaseen-monacopilot-6c00011/packages/core/src/logger.ts000066400000000000000000000022441477106012500241450ustar00rootroot00000000000000const RESET = '\x1b[0m'; const BOLD = '\x1b[1m'; const parseErrorMessage = (error: unknown): string => { if (error instanceof Error) { return error.message; } else if (typeof error === 'string') { return error; } else { return 'An unknown error occurred'; } }; const report = (error: unknown): {message: string; stack?: string} => { const errorMessage = parseErrorMessage(error); const formattedError = `${BOLD}[MONACOPILOT ERROR] ${errorMessage}${RESET}`; console.error(formattedError); return {message: errorMessage}; }; const warn = (message: string, error?: unknown): void => { console.warn( `${BOLD}[MONACOPILOT WARN] ${message}${error ? `\n${parseErrorMessage(error)}` : ''}${RESET}`, ); }; const warnDeprecated = ( oldFeature: string, newFeature: string, location?: string, ): void => console.warn( `${BOLD}[MONACOPILOT DEPRECATED] "${oldFeature}" is deprecated${location ? ` in ${location}` : ''}. ` + `Please use "${newFeature}" instead. It will be removed in a future version.${RESET}`, ); export const logger = { report, warn, warnDeprecated, }; arshad-yaseen-monacopilot-6c00011/packages/core/src/types/000077500000000000000000000000001477106012500234605ustar00rootroot00000000000000arshad-yaseen-monacopilot-6c00011/packages/core/src/types/copilot.ts000066400000000000000000000027261477106012500255100ustar00rootroot00000000000000import {Awaitable} from './internal'; import type {Provider, ProviderImplementationMap} from './llm'; /** * Represents the structure of a prompt used for code completion. */ export interface PromptData { /** * Contextual information about the code environment * @example filename, technologies, etc. */ context: string; /** Instructions for the AI model on how to generate the completion */ instruction: string; /** The content of the file being edited */ fileContent: string; } export type CustomPrompt = (metadata: T) => Partial; type CustomOptions = { /** Should be undefined when using a custom model */ provider?: undefined; /** * Custom model implementation function. * @param prompt - The prompt data used to generate the completion. * @returns Object containing the generated text. * @see {@link https://copilot.arshadyaseen.com/advanced/custom-model} */ model: CustomCopilotModel; }; export type CustomCopilotModel = ( prompt: PromptData, ) => Awaitable; type CustomModelResponse = { /** The generated text content, or null if no text was generated for some reason. * The text is used to insert into the editor directly. */ text: string | null; }; export type CopilotOptions = ProviderOptions<'mistral'> | CustomOptions; export type ProviderOptions = { provider: T; model: ProviderImplementationMap[T]['Model']; }; arshad-yaseen-monacopilot-6c00011/packages/core/src/types/internal.ts000066400000000000000000000002211477106012500256370ustar00rootroot00000000000000export type Awaitable = T | Promise; export type CopilotAIResponse = { text: string | null; raw?: unknown; error?: string; }; arshad-yaseen-monacopilot-6c00011/packages/core/src/types/llm.ts000066400000000000000000000040441477106012500246160ustar00rootroot00000000000000import { FIMCompletionResponse as MistralFIMCompletion, FIMCompletionRequest$Outbound as MistralFIMCompletionCreateParams, } from '@mistralai/mistralai/models/components'; import type {PromptData} from './copilot'; /** * Providers supported by Copilot. */ export type Provider = 'mistral'; /** * Core type mapping for provider-specific implementations */ export interface ProviderImplementationMap { mistral: { Model: 'codestral'; Params: MistralFIMCompletionCreateParams; Completion: MistralFIMCompletion; }; } /** * Models available for each provider (maintained as individual exports) */ export type MistralModel = ProviderImplementationMap['mistral']['Model']; /** * Union of all predefined Copilot models */ export type Model = { [K in Provider]: ProviderImplementationMap[K]['Model']; }[Provider]; /** * Utility types for provider-specific implementations */ export type PickModel

= ProviderImplementationMap[P]['Model']; export type PickCompletionCreateParams

= ProviderImplementationMap[P]['Params']; export type PickCompletion

= ProviderImplementationMap[P]['Completion']; /** * Consolidated chat completion types (maintained as individual exports) */ export type CompletionCreateParams = { [K in Provider]: ProviderImplementationMap[K]['Params']; }[Provider]; export type Completion = { [K in Provider]: ProviderImplementationMap[K]['Completion']; }[Provider]; /** * Individual provider type aliases (preserved from original) */ export type MistralCompletionCreateParams = MistralFIMCompletionCreateParams; export type MistralCompletion = MistralFIMCompletion; export interface ProviderHandler

{ createEndpoint(model: PickModel

, apiKey: string): string; createRequestBody( model: PickModel

, prompt: PromptData, ): PickCompletionCreateParams

; createHeaders(apiKey: string): Record; parseCompletion(completion: PickCompletion

): string | null; } arshad-yaseen-monacopilot-6c00011/packages/core/src/types/metadata.ts000066400000000000000000000030501477106012500256060ustar00rootroot00000000000000export type Endpoint = string; export type Filename = string; export type Technologies = string[]; export type RelatedFile = { /** * The relative path from the current editing code in the editor to an external file. * * Examples: * - To include a file `utils.js` in the same directory, set as `./utils.js`. * - To include a file `utils.js` in the parent directory, set as `../utils.js`. * - To include a file `utils.js` in the child directory, set as `./child/utils.js`. */ path: string; /** * The content of the external file as a string. */ content: string; }; export interface BaseCopilotMetadata { /** * The programming language of the code. */ language: string | undefined; /** * The name of the file being edited. */ filename: Filename | undefined; /** * The technologies used in the completion. */ technologies: Technologies | undefined; /** * Additional context from related files. */ relatedFiles: RelatedFile[] | undefined; /** * The text that appears after the cursor. */ textAfterCursor: string; /** * The text that appears before the cursor. */ textBeforeCursor: string; /** * The current cursor position. */ cursorPosition: { /** * line number (starts at 1) */ readonly lineNumber: number; /** * column (the first character in a line is between column 1 and column 2) */ readonly column: number; }; } arshad-yaseen-monacopilot-6c00011/packages/core/src/utils/000077500000000000000000000000001477106012500234545ustar00rootroot00000000000000arshad-yaseen-monacopilot-6c00011/packages/core/src/utils/fetch-with-timeout.ts000066400000000000000000000013041477106012500275500ustar00rootroot00000000000000export const fetchWithTimeout = async ( url: string, options: RequestInit = {}, timeoutMs: number = 20000, ): Promise => { const controller = new AbortController(); const {signal} = controller; const timeoutId = setTimeout(() => { controller.abort(); }, timeoutMs); try { const response = await fetch(url, { ...options, signal, }); return response; } catch (error) { if (error instanceof DOMException && error.name === 'AbortError') { throw new Error(`Request timed out after ${timeoutMs}ms`); } throw error; } finally { clearTimeout(timeoutId); } }; arshad-yaseen-monacopilot-6c00011/packages/core/src/utils/text.ts000066400000000000000000000004341477106012500250110ustar00rootroot00000000000000export const joinWithAnd = ( arr: string[] | readonly string[] | undefined, ): string => { if (!arr || arr.length === 0) { return ''; } if (arr.length === 1) { return arr[0]; } return `${arr.slice(0, -1).join(', ')} and ${arr.slice(-1)}`; }; arshad-yaseen-monacopilot-6c00011/packages/core/src/validator.ts000066400000000000000000000035351477106012500246570ustar00rootroot00000000000000import {PROVIDER_MODEL_MAP, PROVIDERS} from './llm/base'; import type {CopilotOptions, CustomCopilotModel} from './types/copilot'; import type {Model, Provider} from './types/llm'; import {joinWithAnd} from './utils/text'; const _validateParams = ( apiKey: string | undefined, options: CopilotOptions, ): void => { if (!apiKey && typeof options.model !== 'function') { throw new Error( options.provider ? `Please provide the ${options.provider} API key.` : 'Please provide an API key.', ); } if ( !options || (typeof options === 'object' && Object.keys(options).length === 0) ) { throw new Error( 'Please provide required Copilot options, such as "model" and "provider".', ); } }; const _validateInputs = ( model: Model | CustomCopilotModel, provider?: Provider, ): void => { if (typeof model === 'function' && provider !== undefined) { throw new Error( 'Provider should not be specified when using a custom model.', ); } if ( typeof model !== 'function' && (!provider || !PROVIDERS.includes(provider)) ) { throw new Error( `Provider must be specified and supported when using built-in models. Please choose from: ${joinWithAnd( PROVIDERS, )}`, ); } if ( typeof model === 'string' && provider !== undefined && !PROVIDER_MODEL_MAP[provider].includes(model) ) { throw new Error( `Model "${model}" is not supported by the "${ provider }" provider. Supported models: ${joinWithAnd( PROVIDER_MODEL_MAP[provider], )}`, ); } }; export default { params: _validateParams, inputs: _validateInputs, }; arshad-yaseen-monacopilot-6c00011/packages/core/tests/000077500000000000000000000000001477106012500226675ustar00rootroot00000000000000arshad-yaseen-monacopilot-6c00011/packages/core/tests/logger.test.ts000066400000000000000000000036271477106012500255040ustar00rootroot00000000000000import {afterEach, beforeEach, describe, expect, it, vi} from 'vitest'; import {logger} from '../src/logger'; describe('Logger', () => { beforeEach(() => { vi.spyOn(console, 'error').mockImplementation(() => {}); vi.spyOn(console, 'warn').mockImplementation(() => {}); }); afterEach(() => { vi.restoreAllMocks(); }); describe('report', () => { it('should handle Error objects', () => { const error = new Error('test error'); const result = logger.report(error); expect(result.message).toBe('test error'); expect(console.error).toHaveBeenCalled(); }); it('should handle string errors', () => { const result = logger.report('string error'); expect(result.message).toBe('string error'); expect(console.error).toHaveBeenCalled(); }); it('should handle unknown error types', () => { const result = logger.report({}); expect(result.message).toBe('An unknown error occurred'); expect(console.error).toHaveBeenCalled(); }); }); describe('warn', () => { it('should log warning message', () => { logger.warn('test warning'); expect(console.warn).toHaveBeenCalled(); }); }); describe('warnDeprecated', () => { it('should warn about deprecated features', () => { logger.warnDeprecated('oldFeature', 'newFeature'); expect(console.warn).toHaveBeenCalledWith( expect.stringContaining('"oldFeature" is deprecated'), ); }); it('should include location if provided', () => { logger.warnDeprecated('oldFeature', 'newFeature', 'TestLocation'); expect(console.warn).toHaveBeenCalledWith( expect.stringContaining('in TestLocation'), ); }); }); }); arshad-yaseen-monacopilot-6c00011/packages/core/tests/text.test.ts000066400000000000000000000020521477106012500252000ustar00rootroot00000000000000import {describe, expect, it} from 'vitest'; import {joinWithAnd} from '../src/utils/text'; describe('Text Utils', () => { describe('joinWithAnd', () => { it('should return empty string for empty array', () => { expect(joinWithAnd([])).toBe(''); }); it('should return empty string for undefined input', () => { expect(joinWithAnd(undefined)).toBe(''); }); it('should return single item without and', () => { expect(joinWithAnd(['one'])).toBe('one'); }); it('should join two items with and', () => { expect(joinWithAnd(['one', 'two'])).toBe('one and two'); }); it('should join multiple items with commas and and', () => { expect(joinWithAnd(['one', 'two', 'three'])).toBe( 'one, two and three', ); }); it('should work with readonly arrays', () => { const arr = ['one', 'two'] as const; expect(joinWithAnd(arr)).toBe('one and two'); }); }); }); arshad-yaseen-monacopilot-6c00011/packages/core/tests/validator.test.ts000066400000000000000000000050761477106012500262120ustar00rootroot00000000000000import {describe, expect, it} from 'vitest'; import type {CopilotOptions, CustomCopilotModel} from '../src/types/copilot'; import validator from '../src/validator'; describe('Validator', () => { describe('params validation', () => { it('should throw error if apiKey is missing', () => { expect(() => validator.params('', {} as CopilotOptions)).toThrow( 'Please provide an API key.', ); }); it('should throw error if options are missing', () => { expect(() => validator.params('key', {} as CopilotOptions)).toThrow( 'Please provide required Copilot options, such as "model" and "provider".', ); }); it('should not throw with valid params', () => { expect(() => validator.params('key', { provider: 'mistral', model: 'codestral', }), ).not.toThrow(); }); }); describe('inputs validation', () => { const customModel: CustomCopilotModel = () => ({ text: 'Hello, world!', }); it('should throw if provider specified with custom model', () => { expect(() => validator.inputs(customModel, 'mistral')).toThrow( 'Provider should not be specified when using a custom model.', ); }); it('should throw if custom model missing required properties', () => { expect(() => validator.inputs({} as CustomCopilotModel)).toThrow( 'Provider must be specified and supported when using built-in models. Please choose from: mistral', ); }); it('should throw if provider not specified for built-in model', () => { expect(() => validator.inputs('codestral')).toThrow( 'Provider must be specified and supported', ); }); it('should throw if model not supported by provider', () => { // @ts-expect-error - model is not supported by the provider expect(() => validator.inputs('codestrals', 'mistral')).toThrow( 'Model "codestrals" is not supported by the "mistral" provider', ); }); it('should not throw with valid built-in model and provider', () => { expect(() => validator.inputs('codestral', 'mistral'), ).not.toThrow(); }); it('should not throw with valid custom model', () => { expect(() => validator.inputs(customModel)).not.toThrow(); }); }); }); arshad-yaseen-monacopilot-6c00011/packages/core/tsup.config.ts000066400000000000000000000003611477106012500243340ustar00rootroot00000000000000import {defineConfig} from 'tsup'; export default defineConfig({ outDir: 'build', entry: ['src/index.ts'], target: 'es2021', minify: true, format: ['esm', 'cjs'], clean: true, dts: true, treeshake: true, }); arshad-yaseen-monacopilot-6c00011/packages/monacopilot/000077500000000000000000000000001477106012500231215ustar00rootroot00000000000000arshad-yaseen-monacopilot-6c00011/packages/monacopilot/README.md000066400000000000000000000014701477106012500244020ustar00rootroot00000000000000![Monacopilot Banner](https://copilot.arshadyaseen.com/og.png) ### Features - 🔄 Real-time Code Completions - ⚡️ Efficient Caching System - 🎨 Context-Aware Suggestions - 🛠️ Customizable Completion Behavior - 📦 Framework Agnostic - 🔌 Custom Model Support - 🎮 Manual Trigger Support ### Demo [Inline Completions Demo Video](https://github.com/user-attachments/assets/f2ec4ae1-f658-4002-af9c-c6b1bbad70d9) ## Documentation Go to the [documentation](https://copilot.arshadyaseen.com) to get started with Monacopilot. ## Contributing For guidelines on contributing, please read the [contributing guide](https://github.com/arshad-yaseen/monacopilot/blob/main/CONTRIBUTING.md). We welcome contributions from the community to enhance Monacopilot's capabilities and make it even more powerful. ❤️ arshad-yaseen-monacopilot-6c00011/packages/monacopilot/package.json000066400000000000000000000023211477106012500254050ustar00rootroot00000000000000{ "name": "monacopilot", "version": "1.1.15", "description": "AI auto-completion plugin for Monaco Editor", "main": "./build/index.js", "module": "./build/index.mjs", "types": "./build/index.d.ts", "files": [ "build" ], "scripts": { "build": "tsup", "dev": "tsup --watch" }, "devDependencies": { "monaco-editor": "^0.52.0", "tsup": "^8.0.2", "typescript": "^5.4.3" }, "keywords": [ "monaco-editor", "monaco", "ai", "auto-completion", "code-completion", "copilot", "github-copilot" ], "repository": { "type": "git", "url": "git+https://github.com/arshad-yaseen/monacopilot.git" }, "homepage": "https://copilot.arshadyaseen.com", "maintainers": [ { "name": "Arshad Yaseen", "email": "m@arshadyaseen.com", "url": "https://arshadyaseen.com" } ], "license": "MIT", "author": "Arshad Yaseen (https://arshadyaseen.com)", "dependencies": { "@monacopilot/core": "workspace:*" }, "peerDependencies": { "monaco-editor": ">=0.41.0" } } arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/000077500000000000000000000000001477106012500237105ustar00rootroot00000000000000arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/classes/000077500000000000000000000000001477106012500253455ustar00rootroot00000000000000arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/classes/cache.ts000066400000000000000000000063031477106012500267620ustar00rootroot00000000000000import type {CompletionCacheItem} from '../types/cache'; import type {CursorPosition, EditorModel} from '../types/monaco'; import {getTextBeforeCursor} from '../utils/editor'; import {Queue} from './queue'; export class CompletionCache { private static readonly MAX_CACHE_SIZE = 20; private cache: Queue; constructor() { this.cache = new Queue( CompletionCache.MAX_CACHE_SIZE, ); } public get( pos: Readonly, mdl: Readonly, ): readonly CompletionCacheItem[] { return this.cache .getAll() .filter(cacheItem => this.isValidCacheItem(cacheItem, pos, mdl)); } public add(cacheItem: Readonly): void { if (!cacheItem.completion.trim()) { return; } this.cache.enqueue(cacheItem); } public clear(): void { this.cache.clear(); } private isValidCacheItem( cacheItem: Readonly, pos: Readonly, mdl: Readonly, ): boolean { const cachedPrefix = cacheItem.textBeforeCursor.trim(); const textBeforeCursor = getTextBeforeCursor(pos, mdl); let extendedTextBeforeCursor = textBeforeCursor; const currentLineContent = mdl.getLineContent(pos.lineNumber); if ( pos.column === currentLineContent.length + 1 && pos.lineNumber < mdl.getLineCount() ) { const nextLineContent = mdl.getLineContent(pos.lineNumber + 1); extendedTextBeforeCursor = textBeforeCursor + '\n' + nextLineContent; } if ( !( extendedTextBeforeCursor.trim().includes(cachedPrefix) || cachedPrefix.includes(extendedTextBeforeCursor.trim()) ) ) { return false; } const currentRangeValue = mdl.getValueInRange(cacheItem.range); if (!this.isPartialMatch(currentRangeValue, cacheItem.completion)) { return false; } return this.isPositionValid(cacheItem, pos); } private isPartialMatch(current: string, cached: string): boolean { const currentTrim = current.trim(); const cachedTrim = cached.trim(); return ( cachedTrim.startsWith(currentTrim) || currentTrim.startsWith(cachedTrim) ); } private isPositionValid( cacheItem: Readonly, pos: Readonly, ): boolean { const {range} = cacheItem; const {startLineNumber, startColumn, endLineNumber, endColumn} = range; const {lineNumber, column} = pos; if (lineNumber < startLineNumber || lineNumber > endLineNumber) { return false; } if (startLineNumber === endLineNumber) { return column >= startColumn - 1 && column <= endColumn + 1; } if (lineNumber === startLineNumber) { return column >= startColumn - 1; } if (lineNumber === endLineNumber) { return column <= endColumn + 1; } return true; } } arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/classes/formatter.ts000066400000000000000000000031331477106012500277200ustar00rootroot00000000000000export class CompletionFormatter { private formattedCompletion = ''; constructor(completion: string) { this.formattedCompletion = completion; } public setCompletion(completion: string): CompletionFormatter { this.formattedCompletion = completion; return this; } public removeInvalidLineBreaks(): CompletionFormatter { this.formattedCompletion = this.formattedCompletion.trimEnd(); return this; } public removeMarkdownCodeSyntax(): CompletionFormatter { this.formattedCompletion = this.removeMarkdownCodeBlocks( this.formattedCompletion, ); return this; } private removeMarkdownCodeBlocks(text: string): string { const lines = text.split('\n'); const result: string[] = []; let inCodeBlock = false; for (let i = 0; i < lines.length; i++) { const line = lines[i]; const isCodeBlockStart = line.trim().startsWith('```'); if (isCodeBlockStart && !inCodeBlock) { inCodeBlock = true; continue; } if (isCodeBlockStart && inCodeBlock) { inCodeBlock = false; continue; } result.push(line); } return result.join('\n'); } public removeExcessiveNewlines(): CompletionFormatter { this.formattedCompletion = this.formattedCompletion.replace( /\n{3,}/g, '\n\n', ); return this; } public build(): string { return this.formattedCompletion; } } arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/classes/queue.ts000066400000000000000000000024201477106012500270370ustar00rootroot00000000000000export class Queue { private buffer: (T | undefined)[]; private head: number = 0; private tail: number = 0; private size: number = 0; constructor(private readonly capacity: number) { this.buffer = new Array(capacity); } enqueue(item: T): T | undefined { let removedItem: T | undefined; if (this.size === this.capacity) { removedItem = this.dequeue(); } this.buffer[this.tail] = item; this.tail = (this.tail + 1) % this.capacity; this.size++; return removedItem; } dequeue(): T | undefined { if (this.size === 0) return undefined; const item = this.buffer[this.head]; this.buffer[this.head] = undefined; this.head = (this.head + 1) % this.capacity; this.size--; return item; } getAll(): T[] { return this.buffer.filter((item): item is T => item !== undefined); } clear(): void { this.buffer = new Array(this.capacity); this.head = 0; this.tail = 0; this.size = 0; } getSize(): number { return this.size; } isEmpty(): boolean { return this.size === 0; } isFull(): boolean { return this.size === this.capacity; } } arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/classes/range.ts000066400000000000000000000051151477106012500270130ustar00rootroot00000000000000import type { CursorPosition, EditorModel, EditorRange, Monaco, } from '../types/monaco'; import {TextOverlapCalculator} from './text-overlap-calculator'; export class CompletionRange { private textOverlapCalculator: TextOverlapCalculator; constructor(private monaco: Monaco) { this.textOverlapCalculator = new TextOverlapCalculator(); } public computeInsertionRange( pos: CursorPosition, completion: string, mdl: EditorModel, ): EditorRange { if (!completion) { return this.createEmptyRange(pos); } const startOffset = mdl.getOffsetAt(pos); const textBeforeCursor = mdl.getValue().substring(0, startOffset); const textAfterCursor = mdl.getValue().substring(startOffset); if (startOffset >= mdl.getValue().length) { return this.createEmptyRange(pos); } if (textAfterCursor.length === 0) { return this.createEmptyRange(pos); } const {startOverlapLength, maxOverlapLength} = this.textOverlapCalculator.findOverlaps( completion, textBeforeCursor, textAfterCursor, ); const startPosition = startOverlapLength > 0 ? mdl.getPositionAt(startOffset - startOverlapLength) : pos; const endOffset = startOffset + maxOverlapLength; const endPosition = mdl.getPositionAt(endOffset); return new this.monaco.Range( startPosition.lineNumber, startPosition.column, endPosition.lineNumber, endPosition.column, ); } public computeCacheRange( pos: CursorPosition, completion: string, ): EditorRange { const startLineNumber = pos.lineNumber; const startColumn = pos.column; const completionLines = completion.split('\n'); const lastLineIndex = completionLines.length - 1; const endLineNumber = startLineNumber + lastLineIndex; const endColumn = lastLineIndex === 0 ? startColumn + completionLines[0].length : completionLines[lastLineIndex].length + 1; return new this.monaco.Range( startLineNumber, startColumn, endLineNumber, endColumn, ); } private createEmptyRange(pos: CursorPosition): EditorRange { return new this.monaco.Range( pos.lineNumber, pos.column, pos.lineNumber, pos.column, ); } } arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/classes/text-overlap-calculator.ts000066400000000000000000000036571477106012500325110ustar00rootroot00000000000000export class TextOverlapCalculator { public findOverlaps( completion: string, textBeforeCursor: string, textAfterCursor: string, ): { startOverlapLength: number; maxOverlapLength: number; } { if (!completion) { return { startOverlapLength: 0, maxOverlapLength: 0, }; } const completionLength = completion.length; const beforeLength = textBeforeCursor.length; const afterLength = textAfterCursor.length; let prefixOverlapLength = 0; let suffixOverlapLength = 0; let startOverlapLength = 0; const maxBeforeOverlap = Math.min(completionLength, beforeLength); for (let i = 1; i <= maxBeforeOverlap; i++) { const completionStart = completion.substring(0, i); const textEnd = textBeforeCursor.slice(-i); if (completionStart === textEnd) { startOverlapLength = i; } } const maxAfterOverlap = Math.min(completionLength, afterLength); for (let i = 0; i < maxAfterOverlap; i++) { if (completion[i] !== textAfterCursor[i]) break; prefixOverlapLength++; } for (let i = 1; i <= maxAfterOverlap; i++) { if (completion.slice(-i) === textAfterCursor.slice(0, i)) { suffixOverlapLength = i; } } let maxOverlapLength = Math.max( prefixOverlapLength, suffixOverlapLength, ); if (maxOverlapLength === 0) { for (let i = 1; i < completionLength; i++) { if (textAfterCursor.startsWith(completion.substring(i))) { maxOverlapLength = completionLength - i; break; } } } return { startOverlapLength, maxOverlapLength, }; } } arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/completion-copilot.ts000066400000000000000000000016001477106012500300750ustar00rootroot00000000000000import {Copilot, type PromptData} from '@monacopilot/core'; import {buildPrompt} from './prompt'; import type { CompletionMetadata, CompletionRequest, CompletionResponse, } from './types/core'; export class CompletionCopilot extends Copilot { public async complete( request: CompletionRequest, ): Promise { const {body, options} = request; const {customPrompt, headers} = options ?? {}; const {completionMetadata} = body; const {text, raw, error} = await this.makeAIRequest( completionMetadata, { customPrompt, customHeaders: headers, }, ); return {completion: text, raw, error}; } protected getDefaultPrompt(metadata: CompletionMetadata): PromptData { return buildPrompt(metadata); } } arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/completions-provider.ts000066400000000000000000000041301477106012500304420ustar00rootroot00000000000000import {DEFAULT_TRIGGER} from './defaults'; import {processInlineCompletions} from './processor'; import {getEditorState} from './state'; import {RegisterCompletionOptions, TriggerEnum} from './types/core'; import type {Monaco, StandaloneCodeEditor} from './types/monaco'; import {getCurrentValue} from './utils/editor'; export const createInlineCompletionsProvider = ( monaco: Monaco, editor: StandaloneCodeEditor, options: RegisterCompletionOptions, ) => { const state = getEditorState(editor); if (!state) return null; return monaco.languages.registerInlineCompletionsProvider( options.language, { provideInlineCompletions: (mdl, pos, _, token) => { if ( // Skip completion if trigger is on-demand and not explicitly triggered by user (options.trigger === TriggerEnum.OnDemand && !state.isExplicitlyTriggered) || // Skip completion if triggerIf returns false (options.triggerIf && !options.triggerIf({ text: getCurrentValue(editor), position: pos, triggerType: options.trigger ?? DEFAULT_TRIGGER, })) ) { return; } return processInlineCompletions({ monaco, mdl, pos, token, isCompletionAccepted: state.isCompletionAccepted, options, }); }, handleItemDidShow: (_, item, completion) => { state.isExplicitlyTriggered = false; state.hasRejectedCurrentCompletion = false; if (state.isCompletionAccepted) return; state.isCompletionVisible = true; options.onCompletionShown?.(completion, item.range); }, freeInlineCompletions: () => { /* No-op */ }, }, ); }; arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/defaults.ts000066400000000000000000000005731477106012500260740ustar00rootroot00000000000000import {TriggerEnum} from './types/core'; export const DEFAULT_MAX_CONTEXT_LINES = 100; export const DEFAULT_ENABLE_CACHING = true; export const DEFAULT_TRIGGER = TriggerEnum.OnIdle; export const DEFAULT_ALLOW_FOLLOW_UP_COMPLETIONS = true; export const DEFAULT_ON_TYPING_DEBOUNCE = 120; export const DEFAULT_ON_IDLE_DEBOUNCE = 400; export const DEFAULT_ON_DEMAND_DEBOUNCE = 0; arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/index.ts000066400000000000000000000012041477106012500253640ustar00rootroot00000000000000import {CompletionCopilot} from './completion-copilot'; import {registerCompletion} from './register'; /** @deprecated Use `CompletionCopilot` instead */ export const Copilot = CompletionCopilot; export {registerCompletion, CompletionCopilot}; export type {Monaco, StandaloneCodeEditor} from './types/monaco'; export type { CopilotOptions, CustomCopilotModel, Provider, Model, MistralModel, } from '@monacopilot/core'; export type { CompletionMetadata, CompletionRequest, CompletionRequestBody, CompletionRequestOptions, RegisterCompletionOptions, CompletionRegistration, } from './types/core'; arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/key-events.ts000066400000000000000000000053771477106012500263660ustar00rootroot00000000000000import type {RegisterCompletionOptions} from './types/core'; import type { CompletionKeyEventHandlerParams, EditorCompletionState, } from './types/internal'; import type { EditorKeyboardEvent, Monaco, StandaloneCodeEditor, } from './types/monaco'; const ACCEPTANCE_KEYS = { TAB: (monaco: Monaco, event: EditorKeyboardEvent) => event.keyCode === monaco.KeyCode.Tab, CMD_RIGHT_ARROW: (monaco: Monaco, event: EditorKeyboardEvent) => event.keyCode === monaco.KeyCode.RightArrow && event.metaKey, } as const; class CompletionKeyEventHandler { constructor( private readonly monaco: Monaco, private readonly state: EditorCompletionState, private readonly options: RegisterCompletionOptions, ) {} handleKeyEvent(event: EditorKeyboardEvent): void { const params = { monaco: this.monaco, event, state: this.state, options: this.options, }; this.handleCompletionAcceptance(params); this.handleCompletionRejection(params); } private handleCompletionAcceptance( params: CompletionKeyEventHandlerParams, ): boolean { const shouldAcceptCompletion = params.state.isCompletionVisible && this.isAcceptanceKey(params.event); if (!shouldAcceptCompletion) { params.state.isCompletionAccepted = false; return false; } params.options.onCompletionAccepted?.(); params.state.isCompletionAccepted = true; params.state.isCompletionVisible = false; return true; } private handleCompletionRejection( params: CompletionKeyEventHandlerParams, ): boolean { if (!this.shouldRejectCompletion(params)) { return false; } params.options.onCompletionRejected?.(); params.state.hasRejectedCurrentCompletion = true; return true; } private shouldRejectCompletion( params: CompletionKeyEventHandlerParams, ): boolean { return ( params.state.isCompletionVisible && !params.state.hasRejectedCurrentCompletion && !params.state.isCompletionAccepted && !this.isAcceptanceKey(params.event) ); } private isAcceptanceKey(event: EditorKeyboardEvent): boolean { return Object.values(ACCEPTANCE_KEYS).some(keyCheck => keyCheck(this.monaco, event), ); } } export const createKeyDownListener = ( monaco: Monaco, editor: StandaloneCodeEditor, state: EditorCompletionState, options: RegisterCompletionOptions, ) => { const handler = new CompletionKeyEventHandler(monaco, state, options); return editor.onKeyDown(event => handler.handleKeyEvent(event)); }; arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/processor.ts000066400000000000000000000104041477106012500262760ustar00rootroot00000000000000import {logger} from '@monacopilot/core'; import {CompletionCache} from './classes/cache'; import {CompletionFormatter} from './classes/formatter'; import {CompletionRange} from './classes/range'; import { DEFAULT_ALLOW_FOLLOW_UP_COMPLETIONS, DEFAULT_ENABLE_CACHING, DEFAULT_ON_DEMAND_DEBOUNCE, DEFAULT_ON_IDLE_DEBOUNCE, DEFAULT_ON_TYPING_DEBOUNCE, DEFAULT_TRIGGER, } from './defaults'; import { buildCompletionMetadata, requestCompletionItem, } from './request-completion'; import { CompletionMetadata, InlineCompletionProcessorParams, TriggerEnum, } from './types/core'; import {FetchCompletionItemParams} from './types/internal'; import type {EditorInlineCompletionsResult} from './types/monaco'; import {asyncDebounce} from './utils/async-debounce'; import {getTextBeforeCursor} from './utils/editor'; import {isCancellationError} from './utils/error'; import {createInlineCompletionResult} from './utils/result'; export const completionCache = new CompletionCache(); export const processInlineCompletions = async ({ monaco, mdl, pos, token, isCompletionAccepted, options, }: InlineCompletionProcessorParams): Promise => { const { trigger = DEFAULT_TRIGGER, endpoint, enableCaching = DEFAULT_ENABLE_CACHING, allowFollowUpCompletions = DEFAULT_ALLOW_FOLLOW_UP_COMPLETIONS, onError, requestHandler, } = options; if (enableCaching && !isCompletionAccepted) { const cachedCompletions = completionCache.get(pos, mdl).map(cache => ({ insertText: cache.completion, range: cache.range, })); if (cachedCompletions.length > 0) { return createInlineCompletionResult(cachedCompletions); } } if ( token.isCancellationRequested || (!allowFollowUpCompletions && isCompletionAccepted) ) { return createInlineCompletionResult([]); } try { const requestCompletion = asyncDebounce( (params: FetchCompletionItemParams) => { options.onCompletionRequested?.(params); return ( requestHandler?.(params) ?? requestCompletionItem(params) ); }, { [TriggerEnum.OnTyping]: DEFAULT_ON_TYPING_DEBOUNCE, [TriggerEnum.OnIdle]: DEFAULT_ON_IDLE_DEBOUNCE, [TriggerEnum.OnDemand]: DEFAULT_ON_DEMAND_DEBOUNCE, }[trigger], ); token.onCancellationRequested(() => { requestCompletion.cancel(); }); const completionMetadata: CompletionMetadata = buildCompletionMetadata({ pos, mdl, options, }); const {completion} = await requestCompletion({ endpoint, body: { completionMetadata, }, }); if (completion) { const formattedCompletion = new CompletionFormatter(completion) .removeMarkdownCodeSyntax() .removeExcessiveNewlines() .removeInvalidLineBreaks() .build(); const completionRange = new CompletionRange(monaco); if (enableCaching) { completionCache.add({ completion: formattedCompletion, range: completionRange.computeCacheRange( pos, formattedCompletion, ), textBeforeCursor: getTextBeforeCursor(pos, mdl), }); } return createInlineCompletionResult([ { insertText: formattedCompletion, range: completionRange.computeInsertionRange( pos, formattedCompletion, mdl, ), }, ]); } } catch (error) { if (isCancellationError(error)) { return createInlineCompletionResult([]); } else if (onError) { onError(error as Error); } else { logger.warn('Cannot provide completion', error); } } return createInlineCompletionResult([]); }; arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/prompt.ts000066400000000000000000000033731477106012500256070ustar00rootroot00000000000000import type {PromptData} from '@monacopilot/core'; import type {CompletionMetadata} from './types/core'; import {joinWithAnd} from './utils/text'; const CURSOR_PLACEHOLDER = '<|developer_cursor_is_here|>'; export const buildPrompt = (metadata: CompletionMetadata): PromptData => { return { instruction: getInstruction(), context: buildContext(metadata), fileContent: getFileContent(metadata), }; }; const getInstruction = (): string => { return `Provide concise and readable code completions that are syntactically and logically accurate, and seamlessly integrate with the existing context. Output only the raw code to be inserted at the cursor location without any additional text, comments, or text before or after the cursor.`; }; const buildContext = (metadata: CompletionMetadata): string => { const {technologies = [], filename, relatedFiles = [], language} = metadata; const techStack = joinWithAnd( [language, ...technologies].filter((item): item is string => Boolean(item), ), ); const relatedFilesText = relatedFiles.length === 0 ? '' : relatedFiles .map(({path, content}) => `### ${path}\n${content}`) .join('\n\n'); const contextHeader = [ techStack ? `Technology stack: ${techStack}` : '', `File: ${filename || 'unknown'}`, ] .filter(Boolean) .join('\n'); return `${relatedFilesText ? `${relatedFilesText}\n\n` : ''}${contextHeader}`; }; const getFileContent = (metadata: CompletionMetadata): string => { const {textBeforeCursor, textAfterCursor} = metadata; return `**Current code:** \`\`\` ${textBeforeCursor}${CURSOR_PLACEHOLDER}${textAfterCursor} \`\`\``; }; arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/register.ts000066400000000000000000000065261477106012500261150ustar00rootroot00000000000000import {logger} from '@monacopilot/core'; import {createInlineCompletionsProvider} from './completions-provider'; import {createKeyDownListener} from './key-events'; import {completionCache} from './processor'; import { createInitialState, deleteEditorState, getEditorState, setEditorState, } from './state'; import type { CompletionRegistration, RegisterCompletionOptions, } from './types/core'; import type {Disposable, Monaco, StandaloneCodeEditor} from './types/monaco'; let activeCompletionRegistration: CompletionRegistration | null = null; /** * Registers completion functionality with the Monaco editor. * @param monaco - The Monaco instance. * @param editor - The editor instance. * @param options - Options for the completion. * @returns A CompletionRegistration object with deregister and trigger methods. */ export const registerCompletion = ( monaco: Monaco, editor: StandaloneCodeEditor, options: RegisterCompletionOptions, ): CompletionRegistration => { if (activeCompletionRegistration) { activeCompletionRegistration.deregister(); } const disposables: Disposable[] = []; setEditorState(editor, createInitialState()); editor.updateOptions({ inlineSuggest: { enabled: true, }, }); try { const state = getEditorState(editor); if (!state) { logger.warn( 'Completion is not registered properly. State not found.', ); return createEmptyRegistration(); } const provider = createInlineCompletionsProvider( monaco, editor, options, ); if (provider) { disposables.push(provider); } const keyDownListener = createKeyDownListener( monaco, editor, state, options, ); disposables.push(keyDownListener); const registration: CompletionRegistration = { deregister: () => { disposables.forEach(disposable => disposable.dispose()); completionCache.clear(); deleteEditorState(editor); activeCompletionRegistration = null; }, trigger: () => handleTriggerCompletion(editor), }; activeCompletionRegistration = registration; return registration; } catch (error) { if (options.onError) { options.onError(error as Error); } else { logger.report(error); } return { deregister: () => { disposables.forEach(disposable => disposable.dispose()); deleteEditorState(editor); activeCompletionRegistration = null; }, trigger: () => {}, }; } }; export const handleTriggerCompletion = (editor: StandaloneCodeEditor) => { const state = getEditorState(editor); if (!state) { logger.warn( 'Completion is not registered. Use `registerCompletion` to register completion first.', ); return; } state.isExplicitlyTriggered = true; editor.trigger('keyboard', 'editor.action.inlineSuggest.trigger', {}); }; const createEmptyRegistration = (): CompletionRegistration => { return { deregister: () => {}, trigger: () => {}, }; }; arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/request-completion.ts000066400000000000000000000061051477106012500301210ustar00rootroot00000000000000import type {RelatedFile} from '@monacopilot/core'; import {DEFAULT_MAX_CONTEXT_LINES} from './defaults'; import type {CompletionMetadata, CompletionResponse} from './types/core'; import type { ConstructCompletionMetadataParams, FetchCompletionItemParams, FetchCompletionItemReturn, } from './types/internal'; import type {CursorPosition, EditorModel} from './types/monaco'; import {getTextAfterCursor, getTextBeforeCursor} from './utils/editor'; import { truncateTextToMaxLines, TruncateTextToMaxLinesOptions, } from './utils/text'; export const requestCompletionItem = async ( params: FetchCompletionItemParams, ): Promise => { const {endpoint, body} = params; const response = await fetch(endpoint, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(body), }); if (!response.ok) { throw new Error( `Error while fetching completion item: ${response.statusText}`, ); } const {completion, error} = (await response.json()) as CompletionResponse; if (error) { throw new Error(error); } return {completion}; }; export const buildCompletionMetadata = ({ pos, mdl, options, }: ConstructCompletionMetadataParams): CompletionMetadata => { const { filename, language, technologies, relatedFiles, maxContextLines = DEFAULT_MAX_CONTEXT_LINES, } = options; const hasRelatedFiles = relatedFiles && relatedFiles.length > 0; const contextLinesDivisor = hasRelatedFiles ? 3 : 2; const adjustedMaxContextLines = maxContextLines ? Math.floor(maxContextLines / contextLinesDivisor) : undefined; const limitText = ( getTextFn: (pos: CursorPosition, mdl: EditorModel) => string, maxLines?: number, options?: TruncateTextToMaxLinesOptions, ): string => { const text = getTextFn(pos, mdl); return maxLines ? truncateTextToMaxLines(text, maxLines, options) : text; }; const processRelatedFiles = ( files?: RelatedFile[], maxLines?: number, ): RelatedFile[] | undefined => { if (!files || !maxLines) return files; return files.map(({content, ...otherProps}) => ({ ...otherProps, content: truncateTextToMaxLines(content, maxLines), })); }; const textBeforeCursor = limitText( getTextBeforeCursor, adjustedMaxContextLines, { truncateDirection: 'keepEnd', }, ); const textAfterCursor = limitText( getTextAfterCursor, adjustedMaxContextLines, { truncateDirection: 'keepStart', }, ); const limitedRelatedFiles = processRelatedFiles( relatedFiles, adjustedMaxContextLines, ); return { filename, language, technologies, relatedFiles: limitedRelatedFiles, textBeforeCursor, textAfterCursor, cursorPosition: pos, }; }; arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/state.ts000066400000000000000000000014631477106012500254040ustar00rootroot00000000000000import type {EditorCompletionState} from './types/internal'; import type {StandaloneCodeEditor} from './types/monaco'; const editorCompletionState = new WeakMap< StandaloneCodeEditor, EditorCompletionState >(); export const getEditorState = (editor: StandaloneCodeEditor) => { return editorCompletionState.get(editor); }; export const setEditorState = ( editor: StandaloneCodeEditor, state: EditorCompletionState, ) => { editorCompletionState.set(editor, state); }; export const deleteEditorState = (editor: StandaloneCodeEditor) => { editorCompletionState.delete(editor); }; export const createInitialState = (): EditorCompletionState => ({ isCompletionAccepted: false, isCompletionVisible: false, isExplicitlyTriggered: false, hasRejectedCurrentCompletion: false, }); arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/types/000077500000000000000000000000001477106012500250545ustar00rootroot00000000000000arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/types/cache.ts000066400000000000000000000002431477106012500264660ustar00rootroot00000000000000import type {EditorRange} from './monaco'; export interface CompletionCacheItem { completion: string; range: EditorRange; textBeforeCursor: string; } arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/types/core.ts000066400000000000000000000206351477106012500263620ustar00rootroot00000000000000import type { BaseCopilotMetadata, CustomPrompt, Endpoint, Filename, RelatedFile, Technologies, } from '@monacopilot/core'; import { FetchCompletionItemHandler, FetchCompletionItemParams, } from './internal'; import type { CursorPosition, EditorCancellationToken, EditorModel, EditorRange, Monaco, } from './monaco'; export type CompletionMetadata = BaseCopilotMetadata; export interface RegisterCompletionOptions { /** * Language of the current model */ language: string; /** * The API endpoint where you started the completion service. */ endpoint: Endpoint; /** * Specifies when the completion service should provide code completions. * * Options: * - `'onIdle'`: Provides completions after a brief pause in typing. * - `'onTyping'`: Provides completions in real-time as you type. * - *Consideration:* May initiate additional background requests to deliver real-time suggestions. * - `'onDemand'`: Completions are not provided automatically. You need to trigger the completion manually, possibly by using the `trigger` function from `registerCompletion` return. * * @default 'onIdle' */ trigger?: Trigger; /** * The name of the file you are editing. This is used to provide more relevant completions based on the file's purpose. * For example, if you are editing a file named `utils.js`, the completions will be more relevant to utility functions. */ filename?: Filename; /** * The technologies (libraries, frameworks, etc.) you want to use for the completion. * This can provide technology-specific completions. * If you don't specify a technology, the completion will be specific to the language (provided as the `language`). * * @example * ['react', 'nextjs', 'tailwindcss', 'tanstack/react-query'] * ['tensorflow', 'keras', 'numpy', 'pandas'] * etc. */ technologies?: Technologies; /** * Helps to give more relevant completions based on the full context. * You can include things like the contents/codes of other files in the same workspace. */ relatedFiles?: RelatedFile[]; /** * The maximum number of lines of code to include in the completion request. * This limits the request size to the model to prevent `429 Too Many Requests` errors * and reduce costs for long code. * * @default 100 */ maxContextLines?: number; /** * Determines if completions should be cached. * Enabling caching can enhance performance by reusing previous results when the cursor position and context remain the same while editing. * @default true */ enableCaching?: boolean; /** * Controls whether follow-up completions are allowed immediately after accepting a completion. * When enabled (default), the system will generate new completion right after accepting one. * @default true */ allowFollowUpCompletions?: boolean; /** * When an error occurs during the completion process or requests, Monacopilot will log it to the console by default * rather than throwing errors. This ensures smooth editing even when completions are unavailable. * You can provide this callback to handle errors yourself, which will disable the default console logging. * @param error - The error object containing information about the encountered error. */ onError?: (error: Error) => void; /** * Custom fetch completion handler. This function overrides the default fetch completion handler. * It allows you to customize how completion requests are made and responses are processed. * You can implement your own logic for fetching and processing completions. * The function should return either a string (the completion to be inserted into the editor) or null. * @param params - The parameters for the completion request. * @param {string} params.endpoint - The endpoint to fetch the completion from. * @param {CompletionRequestBody} params.body - The body of the completion request. * @returns {Promise<{completion: string | null}>} An object containing the completion or null if no completion is available. */ requestHandler?: FetchCompletionItemHandler; /** * Callback function that is triggered when a completion is shown in the editor. * @param completion - The completion text that is being shown. * @param range - The editor range where the completion will be inserted. */ onCompletionShown?: ( completion: string, range: EditorRange | undefined, ) => void; /** * Callback function triggered when a completion is accepted by the user. */ onCompletionAccepted?: () => void; /** * Callback function triggered when a completion is rejected by the user. */ onCompletionRejected?: () => void; /** * Callback function triggered when a completion is requested. * This is called before the completion is fetched, allowing you to track when * completion requests are initiated and access the request parameters. * @param {FetchCompletionItemParams} params - The parameters being used for the completion request, * including the endpoint and request body with completion metadata. */ onCompletionRequested?: (params: FetchCompletionItemParams) => void; /** * Optional function to determine whether a completion should be triggered. * This allows for custom logic to control when completions are shown. * * @param {object} params - Parameters for the trigger decision * @param {string} params.text - The current text in the editor * @param {CursorPosition} params.position - The current cursor position * @param {Trigger} params.triggerType - The type of trigger that initiated the completion * @returns {boolean} - Return true to allow the completion, false to prevent it */ triggerIf?: (params: { text: string; position: CursorPosition; triggerType: Trigger; }) => boolean; } export type Trigger = 'onTyping' | 'onIdle' | 'onDemand'; export enum TriggerEnum { OnTyping = 'onTyping', OnIdle = 'onIdle', OnDemand = 'onDemand', } export interface CompletionRegistration { /** * Triggers the completion. */ trigger: () => void; /** * Deregisters the completion provider and cleans up all associated resources. * This should be called when unmounting the editor or when completion features * are no longer needed to prevent memory leaks and ensure proper cleanup. */ deregister: () => void; } export interface InlineCompletionProcessorParams { monaco: Monaco; mdl: EditorModel; pos: CursorPosition; token: EditorCancellationToken; isCompletionAccepted: boolean; options: RegisterCompletionOptions; } export type LocalPredictionSnippets = Record; export interface LocalPrediction { language: string; snippets: LocalPredictionSnippets; } export interface CompletionRequest { /** * The body of the completion request. */ body: CompletionRequestBody; /** * Additional options to include in the completion request. */ options?: CompletionRequestOptions; } export interface CompletionRequestBody { /** * The metadata required to generate the completion. */ completionMetadata: CompletionMetadata; } export interface CompletionRequestOptions { /** * Custom headers to include in the request to the LLM provider. */ headers?: Record; /** * Custom prompt generator function for the completion request. * This function allows you to override the default prompt * used in the completion request, providing more control over the AI's context and behavior. * * @param completionMetadata - Metadata about the current completion context * @returns A partial PromptData object that can override context and/or instruction * @see {@link https://github.com/arshad-yaseen/monacopilot/blob/main/packages/monacopilot/src/prompt.ts | Monacopilot default prompt implementation} */ customPrompt?: CustomPrompt; } export interface CompletionResponse { /** * The completion text. */ completion: string | null; /** * The error message. */ error?: string; /** * The raw response from the LLM. */ raw?: unknown; } arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/types/internal.ts000066400000000000000000000024371477106012500272460ustar00rootroot00000000000000import {CompletionRequestBody, RegisterCompletionOptions} from './core'; import type { CursorPosition, EditorKeyboardEvent, EditorModel, Monaco, } from './monaco'; export type EditorCompletionState = { /** Whether the current completion suggestion has been accepted by the user */ isCompletionAccepted: boolean; /** Whether a completion suggestion is currently being shown */ isCompletionVisible: boolean; /** Whether completion was explicitly triggered by user action (vs automatic) */ isExplicitlyTriggered: boolean; /** Whether the current completion suggestion was rejected by the user */ hasRejectedCurrentCompletion: boolean; }; export type FetchCompletionItemHandler = ( params: FetchCompletionItemParams, ) => Promise; export type FetchCompletionItemReturn = { completion: string | null; }; export interface FetchCompletionItemParams { endpoint: string; body: CompletionRequestBody; } export interface ConstructCompletionMetadataParams { mdl: EditorModel; pos: CursorPosition; options: RegisterCompletionOptions; } export interface CompletionKeyEventHandlerParams { monaco: Monaco; event: EditorKeyboardEvent; state: EditorCompletionState; options: RegisterCompletionOptions; } arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/types/monaco.ts000066400000000000000000000014751477106012500267070ustar00rootroot00000000000000import * as monaco from 'monaco-editor/esm/vs/editor/editor.api'; export type Monaco = typeof monaco; export type StandaloneCodeEditor = monaco.editor.IStandaloneCodeEditor; export type EditorModel = monaco.editor.ITextModel; export type CursorPosition = monaco.IPosition; export type EditorRange = monaco.IRange; export type EditorInlineCompletion = monaco.languages.InlineCompletion; export type EditorThemeData = monaco.editor.IStandaloneThemeData; export type EditorCancellationToken = monaco.CancellationToken; export type EditorInlineCompletionContext = monaco.languages.InlineCompletionContext; export type EditorInlineCompletionsResult = monaco.languages.InlineCompletions; export type Disposable = monaco.IDisposable; export type EditorKeyboardEvent = monaco.IKeyboardEvent; arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/utils/000077500000000000000000000000001477106012500250505ustar00rootroot00000000000000arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/utils/async-debounce.ts000066400000000000000000000035621477106012500303250ustar00rootroot00000000000000export const asyncDebounce = Promise>( func: T, wait: number = 300, ): { (...args: Parameters): Promise>; cancel: () => void; } => { type R = ReturnType; let timer: ReturnType | null = null; let pending: { promise: Promise; resolve: (value: R | PromiseLike) => void; reject: (reason?: any) => void; args: Parameters; } | null = null; const debounced = (...args: Parameters): Promise => { if (pending) { pending.args = args; return pending.promise; } let resolvePromise!: (value: R | PromiseLike) => void; let rejectPromise!: (reason?: any) => void; const promise = new Promise((resolve, reject) => { resolvePromise = resolve; rejectPromise = reject; }); pending = { args, promise, resolve: resolvePromise, reject: rejectPromise, }; if (timer) { clearTimeout(timer); timer = null; } timer = setTimeout(async () => { const currentPending = pending; if (!currentPending) { return; } pending = null; timer = null; try { const result = await func(...currentPending.args); currentPending.resolve(result); } catch (error) { currentPending.reject(error); } }, wait); return promise; }; debounced.cancel = () => { if (timer) { clearTimeout(timer); timer = null; } if (pending) { pending.reject(new Error('Cancelled')); pending = null; } }; return debounced; }; arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/utils/editor.ts000066400000000000000000000030301477106012500267020ustar00rootroot00000000000000import type { CursorPosition, EditorModel, StandaloneCodeEditor, } from '../types/monaco'; export const getCharBeforeCursor = ( pos: CursorPosition, mdl: EditorModel, ): string => { const line = mdl.getLineContent(pos.lineNumber); return line[pos.column - 2]; }; export const getCharAfterCursor = ( pos: CursorPosition, mdl: EditorModel, ): string | undefined => { const line = mdl.getLineContent(pos.lineNumber); return line[pos.column - 1]; }; export const getTextAfterCursorInLine = ( pos: CursorPosition, mdl: EditorModel, ): string => { const line = mdl.getLineContent(pos.lineNumber); return line.slice(pos.column - 1); }; export const getTextBeforeCursorInLine = ( pos: CursorPosition, mdl: EditorModel, ): string => { const line = mdl.getLineContent(pos.lineNumber); return line.slice(0, pos.column - 1); }; export const getTextBeforeCursor = ( pos: CursorPosition, mdl: EditorModel, ): string => mdl.getValueInRange({ startLineNumber: 1, startColumn: 1, endLineNumber: pos.lineNumber, endColumn: pos.column, }); export const getTextAfterCursor = ( pos: CursorPosition, mdl: EditorModel, ): string => mdl.getValueInRange({ startLineNumber: pos.lineNumber, startColumn: pos.column, endLineNumber: mdl.getLineCount(), endColumn: mdl.getLineMaxColumn(mdl.getLineCount()), }); export const getCurrentValue = (editor: StandaloneCodeEditor) => { return editor.getValue(); }; arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/utils/error.ts000066400000000000000000000004521477106012500265520ustar00rootroot00000000000000export const isCancellationError = (err: unknown): boolean => { if (typeof err === 'string') { return err === 'Cancelled' || err === 'AbortError'; } else if (err instanceof Error) { return err.message === 'Cancelled' || err.name === 'AbortError'; } return false; }; arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/utils/result.ts000066400000000000000000000004231477106012500267350ustar00rootroot00000000000000import type { EditorInlineCompletion, EditorInlineCompletionsResult, } from '../types/monaco'; export const createInlineCompletionResult = ( items: EditorInlineCompletion[], ): EditorInlineCompletionsResult => ({ items, enableForwardStability: true, }); arshad-yaseen-monacopilot-6c00011/packages/monacopilot/src/utils/text.ts000066400000000000000000000024761477106012500264150ustar00rootroot00000000000000export const joinWithAnd = ( arr: string[] | readonly string[] | undefined, ): string => { if (!arr || arr.length === 0) { return ''; } if (arr.length === 1) { return arr[0]; } return `${arr.slice(0, -1).join(', ')} and ${arr.slice(-1)}`; }; export const capitalizeFirstLetter = (str: string): string => { return str.charAt(0).toUpperCase() + str.slice(1); }; export type TruncateTextToMaxLinesOptions = { truncateDirection?: 'keepStart' | 'keepEnd'; }; export const truncateTextToMaxLines = ( text: string, maxLinesCount: number, options: { truncateDirection?: 'keepStart' | 'keepEnd'; } = {}, ): string => { if (maxLinesCount <= 0) { return ''; } const lines = text.split('\n'); const totalLines = lines.length; if (maxLinesCount >= totalLines) { return text; } if (options.truncateDirection === 'keepEnd') { const linesToKeep = lines.slice(-maxLinesCount); if (linesToKeep.every(line => line === '')) { return '\n'.repeat(maxLinesCount); } return linesToKeep.join('\n'); } const linesToKeep = lines.slice(0, maxLinesCount); if (linesToKeep.every(line => line === '')) { return '\n'.repeat(maxLinesCount); } return linesToKeep.join('\n'); }; arshad-yaseen-monacopilot-6c00011/packages/monacopilot/tests/000077500000000000000000000000001477106012500242635ustar00rootroot00000000000000arshad-yaseen-monacopilot-6c00011/packages/monacopilot/tests/editor-utils.test.ts000066400000000000000000000144051477106012500302410ustar00rootroot00000000000000import {afterEach, beforeEach, describe, expect, it, vi} from 'vitest'; import {CursorPosition, EditorModel} from '../src/types/monaco'; import { getCharAfterCursor, getCharBeforeCursor, getTextAfterCursorInLine, getTextBeforeCursorInLine, } from '../src/utils/editor'; import {truncateTextToMaxLines} from '../src/utils/text'; import {MOCK_MODEL} from './mock'; describe('Editor Utilities', () => { let mdl: EditorModel; beforeEach(() => { mdl = MOCK_MODEL; vi.clearAllMocks(); }); afterEach(() => { vi.restoreAllMocks(); }); describe('getCharBeforeCursor', () => { it('should return the character before the cursor', () => { const pos: CursorPosition = {lineNumber: 1, column: 10}; vi.spyOn(mdl, 'getLineContent').mockReturnValue( 'let x = 5; let y = 10;', ); const result = getCharBeforeCursor(pos, mdl); expect(result).toBe('5'); }); it('should return undefined if cursor is at the start of the line', () => { const pos: CursorPosition = {lineNumber: 1, column: 1}; vi.spyOn(mdl, 'getLineContent').mockReturnValue( 'const PI = 3.14159;', ); const result = getCharBeforeCursor(pos, mdl); expect(result).toBeUndefined(); }); }); describe('getCharAfterCursor', () => { it('should return the character after the cursor', () => { const pos: CursorPosition = {lineNumber: 1, column: 11}; vi.spyOn(mdl, 'getLineContent').mockReturnValue( 'console.log("Hello, World!");', ); const result = getCharAfterCursor(pos, mdl); expect(result).toBe('g'); }); it('should return undefined if cursor is at the end of the line', () => { const pos: CursorPosition = {lineNumber: 1, column: 30}; vi.spyOn(mdl, 'getLineContent').mockReturnValue( 'console.log("Hello, World!");', ); const result = getCharAfterCursor(pos, mdl); expect(result).toBeUndefined(); }); }); describe('getTextAfterCursorInLine', () => { it('should return the text after the cursor in the current line', () => { const pos: CursorPosition = {lineNumber: 1, column: 17}; vi.spyOn(mdl, 'getLineContent').mockReturnValue( 'function multiply(a, b) { return a * b; }', ); const result = getTextAfterCursorInLine(pos, mdl); expect(result).toBe('y(a, b) { return a * b; }'); }); it('should return an empty string if cursor is at the end of the line', () => { const pos: CursorPosition = {lineNumber: 1, column: 42}; vi.spyOn(mdl, 'getLineContent').mockReturnValue( 'function multiply(a, b) { return a * b; }', ); const result = getTextAfterCursorInLine(pos, mdl); expect(result).toBe(''); }); }); describe('getTextBeforeCursorInLine', () => { it('should return the text before the cursor in the current line', () => { const pos: CursorPosition = {lineNumber: 1, column: 20}; vi.spyOn(mdl, 'getLineContent').mockReturnValue( 'const array = [1, 2, 3, 4, 5];', ); const result = getTextBeforeCursorInLine(pos, mdl); expect(result).toBe('const array = [1, 2'); }); it('should return an empty string if cursor is at the start of the line', () => { const pos: CursorPosition = {lineNumber: 1, column: 1}; vi.spyOn(mdl, 'getLineContent').mockReturnValue( 'const array = [1, 2, 3, 4, 5];', ); const result = getTextBeforeCursorInLine(pos, mdl); expect(result).toBe(''); }); }); describe('truncateTextToMaxLines', () => { it('should keep the specified number of lines from the start', () => { const text = 'Line 1\nLine 2\nLine 3\nLine 4\nLine 5'; const result = truncateTextToMaxLines(text, 3); expect(result).toBe('Line 1\nLine 2\nLine 3'); }); it('should keep the specified number of lines from the end', () => { const text = 'Line 1\nLine 2\nLine 3\nLine 4\nLine 5'; const result = truncateTextToMaxLines(text, 3, { truncateDirection: 'keepEnd', }); expect(result).toBe('Line 3\nLine 4\nLine 5'); }); it('should return the entire text if maxLinesCount is greater than the number of lines', () => { const text = 'Line 1\nLine 2\nLine 3'; const result = truncateTextToMaxLines(text, 5); expect(result).toBe(text); }); it('should handle empty string input', () => { const result = truncateTextToMaxLines('', 3); expect(result).toBe(''); }); it('should handle single-line input', () => { const text = 'Single line'; const result = truncateTextToMaxLines(text, 3); expect(result).toBe(text); }); it('should handle input with trailing newline', () => { const text = 'Line 1\nLine 2\nLine 3\n'; const result = truncateTextToMaxLines(text, 2); expect(result).toBe('Line 1\nLine 2'); }); it('should handle maxLinesCount of 0', () => { const text = 'Line 1\nLine 2\nLine 3'; const result = truncateTextToMaxLines(text, 0); expect(result).toBe(''); }); it('should handle negative maxLinesCount', () => { const text = 'Line 1\nLine 2\nLine 3'; const result = truncateTextToMaxLines(text, -2); expect(result).toBe(''); }); it('should handle text with empty lines', () => { const text = 'Line 1\n\nLine 3\n\nLine 5'; const result = truncateTextToMaxLines(text, 3); expect(result).toBe('Line 1\n\nLine 3'); }); it('should handle text with only newlines', () => { const text = '\n\n\n\n'; const result = truncateTextToMaxLines(text, 2); expect(result).toBe('\n\n'); }); }); }); arshad-yaseen-monacopilot-6c00011/packages/monacopilot/tests/formatter.test.ts000066400000000000000000000220551477106012500276200ustar00rootroot00000000000000import {describe, expect, it} from 'vitest'; import {CompletionFormatter} from '../src/classes/formatter'; describe('CompletionFormatter', () => { describe('create', () => { it('should create a new instance of CompletionFormatter', () => { const formatter = new CompletionFormatter( 'const greeting = "Hello, World!";', ); expect(formatter).toBeInstanceOf(CompletionFormatter); }); }); describe('removeInvalidLineBreaks', () => { it('should remove trailing line breaks', () => { const formatter = new CompletionFormatter( 'function sum(a, b) {\n return a + b;\n}\n\n', ); const result = formatter.removeInvalidLineBreaks().build(); expect(result).toBe('function sum(a, b) {\n return a + b;\n}'); }); it('should not remove line breaks in the middle of the text', () => { const formatter = new CompletionFormatter( 'const x = 5;\nconst y = 10;\nconst sum = x + y;', ); const result = formatter.removeInvalidLineBreaks().build(); expect(result).toBe( 'const x = 5;\nconst y = 10;\nconst sum = x + y;', ); }); it('should handle empty string', () => { const formatter = new CompletionFormatter(''); const result = formatter.removeInvalidLineBreaks().build(); expect(result).toBe(''); }); }); describe('removeMarkdownCodeSyntax', () => { it('should remove markdown code block syntax', () => { const formatter = new CompletionFormatter( '```\nconst array = [1, 2, 3];\narray.map(x => x * 2);\n```', ); const result = formatter.removeMarkdownCodeSyntax().build(); expect(result).toBe( 'const array = [1, 2, 3];\narray.map(x => x * 2);', ); }); it('should remove markdown code block in the middle of the text', () => { const formatter = new CompletionFormatter( 'calculate the factorial of a given number using recursion\n```javascript\nfunction calculateFactorial(n) {\n // Base case: factorial of 0 or 1 is 1\n if (n === 0 || n === 1) {\n return 1;\n ', ); const result = formatter.removeMarkdownCodeSyntax().build(); expect(result).toBe( 'calculate the factorial of a given number using recursion\nfunction calculateFactorial(n) {\n // Base case: factorial of 0 or 1 is 1\n if (n === 0 || n === 1) {\n return 1;\n ', ); }); it('should remove multiple markdown code blocks', () => { const formatter = new CompletionFormatter( '```\nfunction greet(name) {\n return `Hello, ${name}!`;\n}\n```\nSome text\n```\nconst result = greet("Alice");\nconsole.log(result);\n```', ); const result = formatter.removeMarkdownCodeSyntax().build(); expect(result).toBe( 'function greet(name) {\n return `Hello, ${name}!`;\n}\nSome text\nconst result = greet("Alice");\nconsole.log(result);', ); }); it('should handle code blocks with language specifiers', () => { const formatter = new CompletionFormatter( '```javascript\nclass Person {\n constructor(name) {\n this.name = name;\n }\n}\n```', ); const result = formatter.removeMarkdownCodeSyntax().build(); expect(result).toBe( 'class Person {\n constructor(name) {\n this.name = name;\n }\n}', ); }); it('should not modify text without code blocks', () => { const formatter = new CompletionFormatter('const PI = 3.14159;'); const result = formatter.removeMarkdownCodeSyntax().build(); expect(result).toBe('const PI = 3.14159;'); }); it('should handle empty string', () => { const formatter = new CompletionFormatter(''); const result = formatter.removeMarkdownCodeSyntax().build(); expect(result).toBe(''); }); it('should handle incomplete code blocks', () => { const formatter = new CompletionFormatter( '```\nconst incomplete = true;', ); const result = formatter.removeMarkdownCodeSyntax().build(); expect(result).toBe('const incomplete = true;'); }); it('should keep starting whitespaces', () => { const formatter = new CompletionFormatter(' 3.14159;'); const result = formatter.removeMarkdownCodeSyntax().build(); expect(result).toBe(' 3.14159;'); }); it('should keep leading newlines', () => { const formatter = new CompletionFormatter('\nconst PI = 3.14159;'); const result = formatter.removeMarkdownCodeSyntax().build(); expect(result).toBe('\nconst PI = 3.14159;'); }); it('should preserve leading newline with code block', () => { const formatter = new CompletionFormatter( '\n```\nconst x = 5;\n```', ); const result = formatter.removeMarkdownCodeSyntax().build(); expect(result).toBe('\nconst x = 5;'); }); }); describe('removeExcessiveNewlines', () => { it('should replace three or more consecutive newlines with two newlines', () => { const formatter = new CompletionFormatter( 'import React from "react";\n\n\n\nconst App = () => {\n return

Hello React
;\n};', ); const result = formatter.removeExcessiveNewlines().build(); expect(result).toBe( 'import React from "react";\n\nconst App = () => {\n return
Hello React
;\n};', ); }); it('should not modify text with two or fewer consecutive newlines', () => { const formatter = new CompletionFormatter( 'const x = 10;\n\nconst y = 20;', ); const result = formatter.removeExcessiveNewlines().build(); expect(result).toBe('const x = 10;\n\nconst y = 20;'); }); it('should handle multiple occurrences of excessive newlines', () => { const formatter = new CompletionFormatter( 'function add(a, b) {\n return a + b;\n}\n\n\nfunction subtract(a, b) {\n return a - b;\n}\n\n\n\nconst result = add(5, 3);', ); const result = formatter.removeExcessiveNewlines().build(); expect(result).toBe( 'function add(a, b) {\n return a + b;\n}\n\nfunction subtract(a, b) {\n return a - b;\n}\n\nconst result = add(5, 3);', ); }); it('should handle empty string', () => { const formatter = new CompletionFormatter(''); const result = formatter.removeExcessiveNewlines().build(); expect(result).toBe(''); }); it('should handle string with only newlines', () => { const formatter = new CompletionFormatter('\n\n\n\n'); const result = formatter.removeExcessiveNewlines().build(); expect(result).toBe('\n\n'); }); it('should maintain single leading newline', () => { const formatter = new CompletionFormatter( '\nconst x = 10;\n\nconst y = 20;', ); const result = formatter.removeExcessiveNewlines().build(); expect(result).toBe('\nconst x = 10;\n\nconst y = 20;'); }); }); describe('build', () => { it('should return the formatted completion', () => { const formatter = new CompletionFormatter( ' const square = (x) => x * x; ', ); const result = formatter.build(); expect(result).toBe(' const square = (x) => x * x; '); }); }); describe('chaining methods', () => { it('should allow chaining of multiple formatting methods', () => { const formatter = new CompletionFormatter( '```\nconst fruits = ["apple", "banana", "orange"];\nconst upperFruits = fruits.map(fruit => fruit.toUpperCase());\n```\n\n\n\nconsole.log(upperFruits);', ); const result = formatter .removeMarkdownCodeSyntax() .removeExcessiveNewlines() .removeInvalidLineBreaks() .build(); expect(result).toBe( 'const fruits = ["apple", "banana", "orange"];\nconst upperFruits = fruits.map(fruit => fruit.toUpperCase());\n\nconsole.log(upperFruits);', ); }); it('should handle empty string with all formatting methods', () => { const formatter = new CompletionFormatter(''); const result = formatter .removeMarkdownCodeSyntax() .removeExcessiveNewlines() .removeInvalidLineBreaks() .build(); expect(result).toBe(''); }); }); }); arshad-yaseen-monacopilot-6c00011/packages/monacopilot/tests/mock.ts000066400000000000000000000022211477106012500255610ustar00rootroot00000000000000import {vi} from 'vitest'; import type {CompletionMetadata} from '../src/types/core'; import type {CursorPosition, EditorModel} from '../src/types/monaco'; export const MOCK_MODEL = { getLineContent: vi.fn(), getValueInRange: vi.fn(), getLineCount: vi.fn(), getLineMaxColumn: vi.fn(), } as unknown as EditorModel; export const MOCK_API_KEY = 'test-api-key'; export const MOCK_COMPLETION_METADATA: CompletionMetadata = { language: 'javascript', cursorPosition: {lineNumber: 1, column: 1}, filename: 'test.js', technologies: ['react'], relatedFiles: [{path: './utils.js', content: 'function test() {}'}], textAfterCursor: 'console.log(', textBeforeCursor: 'function hello() {', }; export const MOCK_COMPLETION_POS: CursorPosition = { lineNumber: 1, column: 1, }; export const MOCK_COMPLETION_CONTENT = "Hi, I'm Claude."; export const MOCK_COMPLETION = { content: [{type: 'text', text: MOCK_COMPLETION_CONTENT}], }; export const MOCK_ERROR = new Error('API Error'); export const MOCK_NETWORK_ERROR = new Error('Network error'); export const TEST_PROVIDER = 'mistral'; export const TEST_MODEL = 'codestral'; arshad-yaseen-monacopilot-6c00011/packages/monacopilot/tsup.config.ts000066400000000000000000000010471477106012500257320ustar00rootroot00000000000000import {defineConfig, Options} from 'tsup'; const COMMON_CONFIG: Options = { outDir: 'build', entry: ['src/index.ts'], target: 'es2021', minify: true, clean: true, dts: true, treeshake: true, }; export default defineConfig([ { ...COMMON_CONFIG, name: 'monacopilot', platform: 'node', format: ['esm', 'cjs'], }, { ...COMMON_CONFIG, name: 'monacopilot-browser', globalName: 'monacopilot', platform: 'browser', format: ['iife'], }, ]); arshad-yaseen-monacopilot-6c00011/pnpm-lock.yaml000066400000000000000000011364541477106012500216210ustar00rootroot00000000000000lockfileVersion: '9.0' settings: autoInstallPeers: true excludeLinksFromLockfile: false importers: .: devDependencies: '@commitlint/cli': specifier: ^19.5.0 version: 19.7.1(@types/node@20.17.19)(typescript@5.7.3) '@commitlint/config-conventional': specifier: ^19.5.0 version: 19.7.1 '@ianvs/prettier-plugin-sort-imports': specifier: ^4.2.1 version: 4.4.1(@vue/compiler-sfc@3.5.13)(prettier@3.5.2) '@typescript-eslint/eslint-plugin': specifier: ^7.3.1 version: 7.18.0(@typescript-eslint/parser@8.25.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3) bumpp: specifier: ^10.0.2 version: 10.0.3 eslint: specifier: ^8.57.0 version: 8.57.1 husky: specifier: ^9.1.6 version: 9.1.7 prettier: specifier: ^3.2.5 version: 3.5.2 typescript: specifier: ^5.4.3 version: 5.7.3 vitest: specifier: ^2.0.5 version: 2.1.9(@types/node@20.17.19) docs: devDependencies: vitepress: specifier: ^1.6.3 version: 1.6.3(@algolia/client-search@5.20.3)(@types/node@20.17.19)(postcss@8.5.3)(search-insights@2.17.3)(typescript@5.7.3) packages/core: devDependencies: '@mistralai/mistralai': specifier: ^1.5.0 version: 1.5.0(zod@3.24.2) tsup: specifier: ^8.0.2 version: 8.4.0(jiti@2.4.2)(postcss@8.5.3)(typescript@5.7.3)(yaml@2.7.0) typescript: specifier: ^5.4.3 version: 5.7.3 packages/monacopilot: dependencies: '@monacopilot/core': specifier: workspace:* version: link:../core devDependencies: monaco-editor: specifier: ^0.52.0 version: 0.52.2 tsup: specifier: ^8.0.2 version: 8.4.0(jiti@2.4.2)(postcss@8.5.3)(typescript@5.7.3)(yaml@2.7.0) typescript: specifier: ^5.4.3 version: 5.7.3 playground: dependencies: '@monaco-editor/react': specifier: ^4.7.0 version: 4.7.0(monaco-editor@0.52.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-dialog': specifier: ^1.1.6 version: 1.1.6(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-slot': specifier: ^1.1.2 version: 1.1.2(@types/react@19.0.10)(react@19.0.0) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 clsx: specifier: ^2.1.1 version: 2.1.1 lucide-react: specifier: ^0.475.0 version: 0.475.0(react@19.0.0) monacopilot: specifier: workspace:* version: link:../packages/monacopilot next: specifier: 15.1.7 version: 15.1.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: specifier: ^19.0.0 version: 19.0.0 react-dom: specifier: ^19.0.0 version: 19.0.0(react@19.0.0) tailwind-merge: specifier: ^3.0.1 version: 3.0.2 tailwindcss-animate: specifier: ^1.0.7 version: 1.0.7(tailwindcss@3.4.17) devDependencies: '@eslint/eslintrc': specifier: ^3 version: 3.3.0 '@types/node': specifier: ^20 version: 20.17.19 '@types/react': specifier: ^19 version: 19.0.10 '@types/react-dom': specifier: ^19 version: 19.0.4(@types/react@19.0.10) eslint: specifier: ^9 version: 9.21.0(jiti@2.4.2) eslint-config-next: specifier: 15.1.7 version: 15.1.7(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) postcss: specifier: ^8 version: 8.5.3 tailwindcss: specifier: ^3.4.1 version: 3.4.17 typescript: specifier: ^5 version: 5.7.3 packages: '@algolia/autocomplete-core@1.17.7': resolution: { integrity: sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==, } '@algolia/autocomplete-plugin-algolia-insights@1.17.7': resolution: { integrity: sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==, } peerDependencies: search-insights: '>= 1 < 3' '@algolia/autocomplete-preset-algolia@1.17.7': resolution: { integrity: sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==, } peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' '@algolia/autocomplete-shared@1.17.7': resolution: { integrity: sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==, } peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' '@algolia/client-abtesting@5.20.3': resolution: { integrity: sha512-wPOzHYSsW+H97JkBLmnlOdJSpbb9mIiuNPycUCV5DgzSkJFaI/OFxXfZXAh1gqxK+hf0miKue1C9bltjWljrNA==, } engines: {node: '>= 14.0.0'} '@algolia/client-analytics@5.20.3': resolution: { integrity: sha512-XE3iduH9lA7iTQacDGofBQyIyIgaX8qbTRRdj1bOCmfzc9b98CoiMwhNwdTifmmMewmN0EhVF3hP8KjKWwX7Yw==, } engines: {node: '>= 14.0.0'} '@algolia/client-common@5.20.3': resolution: { integrity: sha512-IYRd/A/R3BXeaQVT2805lZEdWo54v39Lqa7ABOxIYnUvX2vvOMW1AyzCuT0U7Q+uPdD4UW48zksUKRixShcWxA==, } engines: {node: '>= 14.0.0'} '@algolia/client-insights@5.20.3': resolution: { integrity: sha512-QGc/bmDUBgzB71rDL6kihI2e1Mx6G6PxYO5Ks84iL3tDcIel1aFuxtRF14P8saGgdIe1B6I6QkpkeIddZ6vWQw==, } engines: {node: '>= 14.0.0'} '@algolia/client-personalization@5.20.3': resolution: { integrity: sha512-zuM31VNPDJ1LBIwKbYGz/7+CSm+M8EhlljDamTg8AnDilnCpKjBebWZR5Tftv/FdWSro4tnYGOIz1AURQgZ+tQ==, } engines: {node: '>= 14.0.0'} '@algolia/client-query-suggestions@5.20.3': resolution: { integrity: sha512-Nn872PuOI8qzi1bxMMhJ0t2AzVBqN01jbymBQOkypvZHrrjZPso3iTpuuLLo9gi3yc/08vaaWTAwJfPhxPwJUw==, } engines: {node: '>= 14.0.0'} '@algolia/client-search@5.20.3': resolution: { integrity: sha512-9+Fm1ahV8/2goSIPIqZnVitV5yHW5E5xTdKy33xnqGd45A9yVv5tTkudWzEXsbfBB47j9Xb3uYPZjAvV5RHbKA==, } engines: {node: '>= 14.0.0'} '@algolia/ingestion@1.20.3': resolution: { integrity: sha512-5GHNTiZ3saLjTNyr6WkP5hzDg2eFFAYWomvPcm9eHWskjzXt8R0IOiW9kkTS6I6hXBwN5H9Zna5mZDSqqJdg+g==, } engines: {node: '>= 14.0.0'} '@algolia/monitoring@1.20.3': resolution: { integrity: sha512-KUWQbTPoRjP37ivXSQ1+lWMfaifCCMzTnEcEnXwAmherS5Tp7us6BAqQDMGOD4E7xyaS2I8pto6WlOzxH+CxmA==, } engines: {node: '>= 14.0.0'} '@algolia/recommend@5.20.3': resolution: { integrity: sha512-oo/gG77xTTTclkrdFem0Kmx5+iSRFiwuRRdxZETDjwzCI7svutdbwBgV/Vy4D4QpYaX4nhY/P43k84uEowCE4Q==, } engines: {node: '>= 14.0.0'} '@algolia/requester-browser-xhr@5.20.3': resolution: { integrity: sha512-BkkW7otbiI/Er1AiEPZs1h7lxbtSO9p09jFhv3/iT8/0Yz0CY79VJ9iq+Wv1+dq/l0OxnMpBy8mozrieGA3mXQ==, } engines: {node: '>= 14.0.0'} '@algolia/requester-fetch@5.20.3': resolution: { integrity: sha512-eAVlXz7UNzTsA1EDr+p0nlIH7WFxo7k3NMxYe8p38DH8YVWLgm2MgOVFUMNg9HCi6ZNOi/A2w/id2ZZ4sKgUOw==, } engines: {node: '>= 14.0.0'} '@algolia/requester-node-http@5.20.3': resolution: { integrity: sha512-FqR3pQPfHfQyX1wgcdK6iyqu86yP76MZd4Pzj1y/YLMj9rRmRCY0E0AffKr//nrOFEwv6uY8BQY4fd9/6b0ZCg==, } engines: {node: '>= 14.0.0'} '@alloc/quick-lru@5.2.0': resolution: { integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==, } engines: {node: '>=10'} '@babel/code-frame@7.26.2': resolution: { integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==, } engines: {node: '>=6.9.0'} '@babel/generator@7.26.9': resolution: { integrity: sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==, } engines: {node: '>=6.9.0'} '@babel/helper-string-parser@7.25.9': resolution: { integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==, } engines: {node: '>=6.9.0'} '@babel/helper-validator-identifier@7.25.9': resolution: { integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==, } engines: {node: '>=6.9.0'} '@babel/parser@7.26.9': resolution: { integrity: sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==, } engines: {node: '>=6.0.0'} hasBin: true '@babel/template@7.26.9': resolution: { integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==, } engines: {node: '>=6.9.0'} '@babel/traverse@7.26.9': resolution: { integrity: sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==, } engines: {node: '>=6.9.0'} '@babel/types@7.26.9': resolution: { integrity: sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==, } engines: {node: '>=6.9.0'} '@commitlint/cli@19.7.1': resolution: { integrity: sha512-iObGjR1tE/PfDtDTEfd+tnRkB3/HJzpQqRTyofS2MPPkDn1mp3DBC8SoPDayokfAy+xKhF8+bwRCJO25Nea0YQ==, } engines: {node: '>=v18'} hasBin: true '@commitlint/config-conventional@19.7.1': resolution: { integrity: sha512-fsEIF8zgiI/FIWSnykdQNj/0JE4av08MudLTyYHm4FlLWemKoQvPNUYU2M/3tktWcCEyq7aOkDDgtjrmgWFbvg==, } engines: {node: '>=v18'} '@commitlint/config-validator@19.5.0': resolution: { integrity: sha512-CHtj92H5rdhKt17RmgALhfQt95VayrUo2tSqY9g2w+laAXyk7K/Ef6uPm9tn5qSIwSmrLjKaXK9eiNuxmQrDBw==, } engines: {node: '>=v18'} '@commitlint/ensure@19.5.0': resolution: { integrity: sha512-Kv0pYZeMrdg48bHFEU5KKcccRfKmISSm9MvgIgkpI6m+ohFTB55qZlBW6eYqh/XDfRuIO0x4zSmvBjmOwWTwkg==, } engines: {node: '>=v18'} '@commitlint/execute-rule@19.5.0': resolution: { integrity: sha512-aqyGgytXhl2ejlk+/rfgtwpPexYyri4t8/n4ku6rRJoRhGZpLFMqrZ+YaubeGysCP6oz4mMA34YSTaSOKEeNrg==, } engines: {node: '>=v18'} '@commitlint/format@19.5.0': resolution: { integrity: sha512-yNy088miE52stCI3dhG/vvxFo9e4jFkU1Mj3xECfzp/bIS/JUay4491huAlVcffOoMK1cd296q0W92NlER6r3A==, } engines: {node: '>=v18'} '@commitlint/is-ignored@19.7.1': resolution: { integrity: sha512-3IaOc6HVg2hAoGleRK3r9vL9zZ3XY0rf1RsUf6jdQLuaD46ZHnXBiOPTyQ004C4IvYjSWqJwlh0/u2P73aIE3g==, } engines: {node: '>=v18'} '@commitlint/lint@19.7.1': resolution: { integrity: sha512-LhcPfVjcOcOZA7LEuBBeO00o3MeZa+tWrX9Xyl1r9PMd5FWsEoZI9IgnGqTKZ0lZt5pO3ZlstgnRyY1CJJc9Xg==, } engines: {node: '>=v18'} '@commitlint/load@19.6.1': resolution: { integrity: sha512-kE4mRKWWNju2QpsCWt428XBvUH55OET2N4QKQ0bF85qS/XbsRGG1MiTByDNlEVpEPceMkDr46LNH95DtRwcsfA==, } engines: {node: '>=v18'} '@commitlint/message@19.5.0': resolution: { integrity: sha512-R7AM4YnbxN1Joj1tMfCyBryOC5aNJBdxadTZkuqtWi3Xj0kMdutq16XQwuoGbIzL2Pk62TALV1fZDCv36+JhTQ==, } engines: {node: '>=v18'} '@commitlint/parse@19.5.0': resolution: { integrity: sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw==, } engines: {node: '>=v18'} '@commitlint/read@19.5.0': resolution: { integrity: sha512-TjS3HLPsLsxFPQj6jou8/CZFAmOP2y+6V4PGYt3ihbQKTY1Jnv0QG28WRKl/d1ha6zLODPZqsxLEov52dhR9BQ==, } engines: {node: '>=v18'} '@commitlint/resolve-extends@19.5.0': resolution: { integrity: sha512-CU/GscZhCUsJwcKTJS9Ndh3AKGZTNFIOoQB2n8CmFnizE0VnEuJoum+COW+C1lNABEeqk6ssfc1Kkalm4bDklA==, } engines: {node: '>=v18'} '@commitlint/rules@19.6.0': resolution: { integrity: sha512-1f2reW7lbrI0X0ozZMesS/WZxgPa4/wi56vFuJENBmed6mWq5KsheN/nxqnl/C23ioxpPO/PL6tXpiiFy5Bhjw==, } engines: {node: '>=v18'} '@commitlint/to-lines@19.5.0': resolution: { integrity: sha512-R772oj3NHPkodOSRZ9bBVNq224DOxQtNef5Pl8l2M8ZnkkzQfeSTr4uxawV2Sd3ui05dUVzvLNnzenDBO1KBeQ==, } engines: {node: '>=v18'} '@commitlint/top-level@19.5.0': resolution: { integrity: sha512-IP1YLmGAk0yWrImPRRc578I3dDUI5A2UBJx9FbSOjxe9sTlzFiwVJ+zeMLgAtHMtGZsC8LUnzmW1qRemkFU4ng==, } engines: {node: '>=v18'} '@commitlint/types@19.5.0': resolution: { integrity: sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg==, } engines: {node: '>=v18'} '@docsearch/css@3.8.2': resolution: { integrity: sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ==, } '@docsearch/js@3.8.2': resolution: { integrity: sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ==, } '@docsearch/react@3.8.2': resolution: { integrity: sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg==, } peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' react: '>= 16.8.0 < 19.0.0' react-dom: '>= 16.8.0 < 19.0.0' search-insights: '>= 1 < 3' peerDependenciesMeta: '@types/react': optional: true react: optional: true react-dom: optional: true search-insights: optional: true '@emnapi/runtime@1.3.1': resolution: { integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==, } '@esbuild/aix-ppc64@0.21.5': resolution: { integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==, } engines: {node: '>=12'} cpu: [ppc64] os: [aix] '@esbuild/aix-ppc64@0.25.0': resolution: { integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==, } engines: {node: '>=18'} cpu: [ppc64] os: [aix] '@esbuild/android-arm64@0.21.5': resolution: { integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==, } engines: {node: '>=12'} cpu: [arm64] os: [android] '@esbuild/android-arm64@0.25.0': resolution: { integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==, } engines: {node: '>=18'} cpu: [arm64] os: [android] '@esbuild/android-arm@0.21.5': resolution: { integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==, } engines: {node: '>=12'} cpu: [arm] os: [android] '@esbuild/android-arm@0.25.0': resolution: { integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==, } engines: {node: '>=18'} cpu: [arm] os: [android] '@esbuild/android-x64@0.21.5': resolution: { integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==, } engines: {node: '>=12'} cpu: [x64] os: [android] '@esbuild/android-x64@0.25.0': resolution: { integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==, } engines: {node: '>=18'} cpu: [x64] os: [android] '@esbuild/darwin-arm64@0.21.5': resolution: { integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==, } engines: {node: '>=12'} cpu: [arm64] os: [darwin] '@esbuild/darwin-arm64@0.25.0': resolution: { integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==, } engines: {node: '>=18'} cpu: [arm64] os: [darwin] '@esbuild/darwin-x64@0.21.5': resolution: { integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==, } engines: {node: '>=12'} cpu: [x64] os: [darwin] '@esbuild/darwin-x64@0.25.0': resolution: { integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==, } engines: {node: '>=18'} cpu: [x64] os: [darwin] '@esbuild/freebsd-arm64@0.21.5': resolution: { integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==, } engines: {node: '>=12'} cpu: [arm64] os: [freebsd] '@esbuild/freebsd-arm64@0.25.0': resolution: { integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==, } engines: {node: '>=18'} cpu: [arm64] os: [freebsd] '@esbuild/freebsd-x64@0.21.5': resolution: { integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==, } engines: {node: '>=12'} cpu: [x64] os: [freebsd] '@esbuild/freebsd-x64@0.25.0': resolution: { integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==, } engines: {node: '>=18'} cpu: [x64] os: [freebsd] '@esbuild/linux-arm64@0.21.5': resolution: { integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==, } engines: {node: '>=12'} cpu: [arm64] os: [linux] '@esbuild/linux-arm64@0.25.0': resolution: { integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==, } engines: {node: '>=18'} cpu: [arm64] os: [linux] '@esbuild/linux-arm@0.21.5': resolution: { integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==, } engines: {node: '>=12'} cpu: [arm] os: [linux] '@esbuild/linux-arm@0.25.0': resolution: { integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==, } engines: {node: '>=18'} cpu: [arm] os: [linux] '@esbuild/linux-ia32@0.21.5': resolution: { integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==, } engines: {node: '>=12'} cpu: [ia32] os: [linux] '@esbuild/linux-ia32@0.25.0': resolution: { integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==, } engines: {node: '>=18'} cpu: [ia32] os: [linux] '@esbuild/linux-loong64@0.21.5': resolution: { integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==, } engines: {node: '>=12'} cpu: [loong64] os: [linux] '@esbuild/linux-loong64@0.25.0': resolution: { integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==, } engines: {node: '>=18'} cpu: [loong64] os: [linux] '@esbuild/linux-mips64el@0.21.5': resolution: { integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==, } engines: {node: '>=12'} cpu: [mips64el] os: [linux] '@esbuild/linux-mips64el@0.25.0': resolution: { integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==, } engines: {node: '>=18'} cpu: [mips64el] os: [linux] '@esbuild/linux-ppc64@0.21.5': resolution: { integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==, } engines: {node: '>=12'} cpu: [ppc64] os: [linux] '@esbuild/linux-ppc64@0.25.0': resolution: { integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==, } engines: {node: '>=18'} cpu: [ppc64] os: [linux] '@esbuild/linux-riscv64@0.21.5': resolution: { integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==, } engines: {node: '>=12'} cpu: [riscv64] os: [linux] '@esbuild/linux-riscv64@0.25.0': resolution: { integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==, } engines: {node: '>=18'} cpu: [riscv64] os: [linux] '@esbuild/linux-s390x@0.21.5': resolution: { integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==, } engines: {node: '>=12'} cpu: [s390x] os: [linux] '@esbuild/linux-s390x@0.25.0': resolution: { integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==, } engines: {node: '>=18'} cpu: [s390x] os: [linux] '@esbuild/linux-x64@0.21.5': resolution: { integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==, } engines: {node: '>=12'} cpu: [x64] os: [linux] '@esbuild/linux-x64@0.25.0': resolution: { integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==, } engines: {node: '>=18'} cpu: [x64] os: [linux] '@esbuild/netbsd-arm64@0.25.0': resolution: { integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==, } engines: {node: '>=18'} cpu: [arm64] os: [netbsd] '@esbuild/netbsd-x64@0.21.5': resolution: { integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==, } engines: {node: '>=12'} cpu: [x64] os: [netbsd] '@esbuild/netbsd-x64@0.25.0': resolution: { integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==, } engines: {node: '>=18'} cpu: [x64] os: [netbsd] '@esbuild/openbsd-arm64@0.25.0': resolution: { integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==, } engines: {node: '>=18'} cpu: [arm64] os: [openbsd] '@esbuild/openbsd-x64@0.21.5': resolution: { integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==, } engines: {node: '>=12'} cpu: [x64] os: [openbsd] '@esbuild/openbsd-x64@0.25.0': resolution: { integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==, } engines: {node: '>=18'} cpu: [x64] os: [openbsd] '@esbuild/sunos-x64@0.21.5': resolution: { integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==, } engines: {node: '>=12'} cpu: [x64] os: [sunos] '@esbuild/sunos-x64@0.25.0': resolution: { integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==, } engines: {node: '>=18'} cpu: [x64] os: [sunos] '@esbuild/win32-arm64@0.21.5': resolution: { integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==, } engines: {node: '>=12'} cpu: [arm64] os: [win32] '@esbuild/win32-arm64@0.25.0': resolution: { integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==, } engines: {node: '>=18'} cpu: [arm64] os: [win32] '@esbuild/win32-ia32@0.21.5': resolution: { integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==, } engines: {node: '>=12'} cpu: [ia32] os: [win32] '@esbuild/win32-ia32@0.25.0': resolution: { integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==, } engines: {node: '>=18'} cpu: [ia32] os: [win32] '@esbuild/win32-x64@0.21.5': resolution: { integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==, } engines: {node: '>=12'} cpu: [x64] os: [win32] '@esbuild/win32-x64@0.25.0': resolution: { integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==, } engines: {node: '>=18'} cpu: [x64] os: [win32] '@eslint-community/eslint-utils@4.4.1': resolution: { integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==, } engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 '@eslint-community/regexpp@4.12.1': resolution: { integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==, } engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/config-array@0.19.2': resolution: { integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==, } engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/core@0.12.0': resolution: { integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==, } engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/eslintrc@2.1.4': resolution: { integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==, } engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} '@eslint/eslintrc@3.3.0': resolution: { integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==, } engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/js@8.57.1': resolution: { integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==, } engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} '@eslint/js@9.21.0': resolution: { integrity: sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==, } engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': resolution: { integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==, } engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/plugin-kit@0.2.7': resolution: { integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==, } engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@humanfs/core@0.19.1': resolution: { integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==, } engines: {node: '>=18.18.0'} '@humanfs/node@0.16.6': resolution: { integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==, } engines: {node: '>=18.18.0'} '@humanwhocodes/config-array@0.13.0': resolution: { integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==, } engines: {node: '>=10.10.0'} deprecated: Use @eslint/config-array instead '@humanwhocodes/module-importer@1.0.1': resolution: { integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, } engines: {node: '>=12.22'} '@humanwhocodes/object-schema@2.0.3': resolution: { integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==, } deprecated: Use @eslint/object-schema instead '@humanwhocodes/retry@0.3.1': resolution: { integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==, } engines: {node: '>=18.18'} '@humanwhocodes/retry@0.4.2': resolution: { integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==, } engines: {node: '>=18.18'} '@ianvs/prettier-plugin-sort-imports@4.4.1': resolution: { integrity: sha512-F0/Hrcfpy8WuxlQyAWJTEren/uxKhYonOGY4OyWmwRdeTvkh9mMSCxowZLjNkhwi/2ipqCgtXwwOk7tW0mWXkA==, } peerDependencies: '@vue/compiler-sfc': 2.7.x || 3.x prettier: 2 || 3 peerDependenciesMeta: '@vue/compiler-sfc': optional: true '@iconify-json/simple-icons@1.2.26': resolution: { integrity: sha512-NvqRuE+5h/tp4boPlnvfs0alD0CvnRE7oeG9Li5NGmZRx2/rhwlNjW/vEVTyhZcR9zqvRPAVh2GXR+PTEpzV+A==, } '@iconify/types@2.0.0': resolution: { integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==, } '@img/sharp-darwin-arm64@0.33.5': resolution: { integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==, } engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] '@img/sharp-darwin-x64@0.33.5': resolution: { integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==, } engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] '@img/sharp-libvips-darwin-arm64@1.0.4': resolution: { integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==, } cpu: [arm64] os: [darwin] '@img/sharp-libvips-darwin-x64@1.0.4': resolution: { integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==, } cpu: [x64] os: [darwin] '@img/sharp-libvips-linux-arm64@1.0.4': resolution: { integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==, } cpu: [arm64] os: [linux] '@img/sharp-libvips-linux-arm@1.0.5': resolution: { integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==, } cpu: [arm] os: [linux] '@img/sharp-libvips-linux-s390x@1.0.4': resolution: { integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==, } cpu: [s390x] os: [linux] '@img/sharp-libvips-linux-x64@1.0.4': resolution: { integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==, } cpu: [x64] os: [linux] '@img/sharp-libvips-linuxmusl-arm64@1.0.4': resolution: { integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==, } cpu: [arm64] os: [linux] '@img/sharp-libvips-linuxmusl-x64@1.0.4': resolution: { integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==, } cpu: [x64] os: [linux] '@img/sharp-linux-arm64@0.33.5': resolution: { integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==, } engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] '@img/sharp-linux-arm@0.33.5': resolution: { integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==, } engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] '@img/sharp-linux-s390x@0.33.5': resolution: { integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==, } engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] '@img/sharp-linux-x64@0.33.5': resolution: { integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==, } engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] '@img/sharp-linuxmusl-arm64@0.33.5': resolution: { integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==, } engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] '@img/sharp-linuxmusl-x64@0.33.5': resolution: { integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==, } engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] '@img/sharp-wasm32@0.33.5': resolution: { integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==, } engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] '@img/sharp-win32-ia32@0.33.5': resolution: { integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==, } engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] '@img/sharp-win32-x64@0.33.5': resolution: { integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==, } engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] '@isaacs/cliui@8.0.2': resolution: { integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, } engines: {node: '>=12'} '@jridgewell/gen-mapping@0.3.8': resolution: { integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==, } engines: {node: '>=6.0.0'} '@jridgewell/resolve-uri@3.1.2': resolution: { integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==, } engines: {node: '>=6.0.0'} '@jridgewell/set-array@1.2.1': resolution: { integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==, } engines: {node: '>=6.0.0'} '@jridgewell/sourcemap-codec@1.5.0': resolution: { integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==, } '@jridgewell/trace-mapping@0.3.25': resolution: { integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==, } '@mistralai/mistralai@1.5.0': resolution: { integrity: sha512-AIn8pwAwA/fDvEUvmkt+40zH1ZmfaG3Q7oUWl17GUEC1tU7ZPwYz8Cv9P59lyS1SisHdDSu81oknO7f1ywkz8Q==, } peerDependencies: zod: '>= 3' '@monaco-editor/loader@1.5.0': resolution: { integrity: sha512-hKoGSM+7aAc7eRTRjpqAZucPmoNOC4UUbknb/VNoTkEIkCPhqV8LfbsgM1webRM7S/z21eHEx9Fkwx8Z/C/+Xw==, } '@monaco-editor/react@4.7.0': resolution: { integrity: sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA==, } peerDependencies: monaco-editor: '>= 0.25.0 < 1' react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 '@next/env@15.1.7': resolution: { integrity: sha512-d9jnRrkuOH7Mhi+LHav2XW91HOgTAWHxjMPkXMGBc9B2b7614P7kjt8tAplRvJpbSt4nbO1lugcT/kAaWzjlLQ==, } '@next/eslint-plugin-next@15.1.7': resolution: { integrity: sha512-kRP7RjSxfTO13NE317ek3mSGzoZlI33nc/i5hs1KaWpK+egs85xg0DJ4p32QEiHnR0mVjuUfhRIun7awqfL7pQ==, } '@next/swc-darwin-arm64@15.1.7': resolution: { integrity: sha512-hPFwzPJDpA8FGj7IKV3Yf1web3oz2YsR8du4amKw8d+jAOHfYHYFpMkoF6vgSY4W6vB29RtZEklK9ayinGiCmQ==, } engines: {node: '>= 10'} cpu: [arm64] os: [darwin] '@next/swc-darwin-x64@15.1.7': resolution: { integrity: sha512-2qoas+fO3OQKkU0PBUfwTiw/EYpN+kdAx62cePRyY1LqKtP09Vp5UcUntfZYajop5fDFTjSxCHfZVRxzi+9FYQ==, } engines: {node: '>= 10'} cpu: [x64] os: [darwin] '@next/swc-linux-arm64-gnu@15.1.7': resolution: { integrity: sha512-sKLLwDX709mPdzxMnRIXLIT9zaX2w0GUlkLYQnKGoXeWUhcvpCrK+yevcwCJPdTdxZEUA0mOXGLdPsGkudGdnA==, } engines: {node: '>= 10'} cpu: [arm64] os: [linux] '@next/swc-linux-arm64-musl@15.1.7': resolution: { integrity: sha512-zblK1OQbQWdC8fxdX4fpsHDw+VSpBPGEUX4PhSE9hkaWPrWoeIJn+baX53vbsbDRaDKd7bBNcXRovY1hEhFd7w==, } engines: {node: '>= 10'} cpu: [arm64] os: [linux] '@next/swc-linux-x64-gnu@15.1.7': resolution: { integrity: sha512-GOzXutxuLvLHFDAPsMP2zDBMl1vfUHHpdNpFGhxu90jEzH6nNIgmtw/s1MDwpTOiM+MT5V8+I1hmVFeAUhkbgQ==, } engines: {node: '>= 10'} cpu: [x64] os: [linux] '@next/swc-linux-x64-musl@15.1.7': resolution: { integrity: sha512-WrZ7jBhR7ATW1z5iEQ0ZJfE2twCNSXbpCSaAunF3BKcVeHFADSI/AW1y5Xt3DzTqPF1FzQlwQTewqetAABhZRQ==, } engines: {node: '>= 10'} cpu: [x64] os: [linux] '@next/swc-win32-arm64-msvc@15.1.7': resolution: { integrity: sha512-LDnj1f3OVbou1BqvvXVqouJZKcwq++mV2F+oFHptToZtScIEnhNRJAhJzqAtTE2dB31qDYL45xJwrc+bLeKM2Q==, } engines: {node: '>= 10'} cpu: [arm64] os: [win32] '@next/swc-win32-x64-msvc@15.1.7': resolution: { integrity: sha512-dC01f1quuf97viOfW05/K8XYv2iuBgAxJZl7mbCKEjMgdQl5JjAKJ0D2qMKZCgPWDeFbFT0Q0nYWwytEW0DWTQ==, } engines: {node: '>= 10'} cpu: [x64] os: [win32] '@nodelib/fs.scandir@2.1.5': resolution: { integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, } engines: {node: '>= 8'} '@nodelib/fs.stat@2.0.5': resolution: { integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, } engines: {node: '>= 8'} '@nodelib/fs.walk@1.2.8': resolution: { integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, } engines: {node: '>= 8'} '@nolyfill/is-core-module@1.0.39': resolution: { integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==, } engines: {node: '>=12.4.0'} '@pkgjs/parseargs@0.11.0': resolution: { integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, } engines: {node: '>=14'} '@radix-ui/primitive@1.1.1': resolution: { integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==, } '@radix-ui/react-compose-refs@1.1.1': resolution: { integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==, } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true '@radix-ui/react-context@1.1.1': resolution: { integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==, } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true '@radix-ui/react-dialog@1.1.6': resolution: { integrity: sha512-/IVhJV5AceX620DUJ4uYVMymzsipdKBzo3edo+omeskCKGm9FRHM0ebIdbPnlQVJqyuHbuBltQUOG2mOTq2IYw==, } peerDependencies: '@types/react': '*' '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true '@radix-ui/react-dismissable-layer@1.1.5': resolution: { integrity: sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==, } peerDependencies: '@types/react': '*' '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true '@radix-ui/react-focus-guards@1.1.1': resolution: { integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==, } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true '@radix-ui/react-focus-scope@1.1.2': resolution: { integrity: sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA==, } peerDependencies: '@types/react': '*' '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true '@radix-ui/react-id@1.1.0': resolution: { integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==, } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true '@radix-ui/react-portal@1.1.4': resolution: { integrity: sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA==, } peerDependencies: '@types/react': '*' '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true '@radix-ui/react-presence@1.1.2': resolution: { integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==, } peerDependencies: '@types/react': '*' '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true '@radix-ui/react-primitive@2.0.2': resolution: { integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==, } peerDependencies: '@types/react': '*' '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true '@radix-ui/react-slot@1.1.2': resolution: { integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==, } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true '@radix-ui/react-use-callback-ref@1.1.0': resolution: { integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==, } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true '@radix-ui/react-use-controllable-state@1.1.0': resolution: { integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==, } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true '@radix-ui/react-use-escape-keydown@1.1.0': resolution: { integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==, } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true '@radix-ui/react-use-layout-effect@1.1.0': resolution: { integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==, } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true '@rollup/rollup-android-arm-eabi@4.34.8': resolution: { integrity: sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==, } cpu: [arm] os: [android] '@rollup/rollup-android-arm64@4.34.8': resolution: { integrity: sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==, } cpu: [arm64] os: [android] '@rollup/rollup-darwin-arm64@4.34.8': resolution: { integrity: sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==, } cpu: [arm64] os: [darwin] '@rollup/rollup-darwin-x64@4.34.8': resolution: { integrity: sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==, } cpu: [x64] os: [darwin] '@rollup/rollup-freebsd-arm64@4.34.8': resolution: { integrity: sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==, } cpu: [arm64] os: [freebsd] '@rollup/rollup-freebsd-x64@4.34.8': resolution: { integrity: sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==, } cpu: [x64] os: [freebsd] '@rollup/rollup-linux-arm-gnueabihf@4.34.8': resolution: { integrity: sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==, } cpu: [arm] os: [linux] '@rollup/rollup-linux-arm-musleabihf@4.34.8': resolution: { integrity: sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==, } cpu: [arm] os: [linux] '@rollup/rollup-linux-arm64-gnu@4.34.8': resolution: { integrity: sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==, } cpu: [arm64] os: [linux] '@rollup/rollup-linux-arm64-musl@4.34.8': resolution: { integrity: sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==, } cpu: [arm64] os: [linux] '@rollup/rollup-linux-loongarch64-gnu@4.34.8': resolution: { integrity: sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==, } cpu: [loong64] os: [linux] '@rollup/rollup-linux-powerpc64le-gnu@4.34.8': resolution: { integrity: sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==, } cpu: [ppc64] os: [linux] '@rollup/rollup-linux-riscv64-gnu@4.34.8': resolution: { integrity: sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==, } cpu: [riscv64] os: [linux] '@rollup/rollup-linux-s390x-gnu@4.34.8': resolution: { integrity: sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==, } cpu: [s390x] os: [linux] '@rollup/rollup-linux-x64-gnu@4.34.8': resolution: { integrity: sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==, } cpu: [x64] os: [linux] '@rollup/rollup-linux-x64-musl@4.34.8': resolution: { integrity: sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==, } cpu: [x64] os: [linux] '@rollup/rollup-win32-arm64-msvc@4.34.8': resolution: { integrity: sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==, } cpu: [arm64] os: [win32] '@rollup/rollup-win32-ia32-msvc@4.34.8': resolution: { integrity: sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==, } cpu: [ia32] os: [win32] '@rollup/rollup-win32-x64-msvc@4.34.8': resolution: { integrity: sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==, } cpu: [x64] os: [win32] '@rtsao/scc@1.1.0': resolution: { integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==, } '@rushstack/eslint-patch@1.10.5': resolution: { integrity: sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==, } '@shikijs/core@2.5.0': resolution: { integrity: sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==, } '@shikijs/engine-javascript@2.5.0': resolution: { integrity: sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w==, } '@shikijs/engine-oniguruma@2.5.0': resolution: { integrity: sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw==, } '@shikijs/langs@2.5.0': resolution: { integrity: sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==, } '@shikijs/themes@2.5.0': resolution: { integrity: sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==, } '@shikijs/transformers@2.5.0': resolution: { integrity: sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg==, } '@shikijs/types@2.5.0': resolution: { integrity: sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw==, } '@shikijs/vscode-textmate@10.0.2': resolution: { integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==, } '@swc/counter@0.1.3': resolution: { integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==, } '@swc/helpers@0.5.15': resolution: { integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==, } '@types/conventional-commits-parser@5.0.1': resolution: { integrity: sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==, } '@types/estree@1.0.6': resolution: { integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==, } '@types/hast@3.0.4': resolution: { integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==, } '@types/json-schema@7.0.15': resolution: { integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, } '@types/json5@0.0.29': resolution: { integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==, } '@types/linkify-it@5.0.0': resolution: { integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==, } '@types/markdown-it@14.1.2': resolution: { integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==, } '@types/mdast@4.0.4': resolution: { integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==, } '@types/mdurl@2.0.0': resolution: { integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==, } '@types/node@20.17.19': resolution: { integrity: sha512-LEwC7o1ifqg/6r2gn9Dns0f1rhK+fPFDoMiceTJ6kWmVk6bgXBI/9IOWfVan4WiAavK9pIVWdX0/e3J+eEUh5A==, } '@types/react-dom@19.0.4': resolution: { integrity: sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==, } peerDependencies: '@types/react': ^19.0.0 '@types/react@19.0.10': resolution: { integrity: sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==, } '@types/unist@3.0.3': resolution: { integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==, } '@types/web-bluetooth@0.0.20': resolution: { integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==, } '@typescript-eslint/eslint-plugin@7.18.0': resolution: { integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==, } engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true '@typescript-eslint/parser@8.25.0': resolution: { integrity: sha512-4gbs64bnbSzu4FpgMiQ1A+D+urxkoJk/kqlDJ2W//5SygaEiAP2B4GoS7TEdxgwol2el03gckFV9lJ4QOMiiHg==, } engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' '@typescript-eslint/scope-manager@7.18.0': resolution: { integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==, } engines: {node: ^18.18.0 || >=20.0.0} '@typescript-eslint/scope-manager@8.25.0': resolution: { integrity: sha512-6PPeiKIGbgStEyt4NNXa2ru5pMzQ8OYKO1hX1z53HMomrmiSB+R5FmChgQAP1ro8jMtNawz+TRQo/cSXrauTpg==, } engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/type-utils@7.18.0': resolution: { integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==, } engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true '@typescript-eslint/types@7.18.0': resolution: { integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==, } engines: {node: ^18.18.0 || >=20.0.0} '@typescript-eslint/types@8.25.0': resolution: { integrity: sha512-+vUe0Zb4tkNgznQwicsvLUJgZIRs6ITeWSCclX1q85pR1iOiaj+4uZJIUp//Z27QWu5Cseiw3O3AR8hVpax7Aw==, } engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@7.18.0': resolution: { integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==, } engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true '@typescript-eslint/typescript-estree@8.25.0': resolution: { integrity: sha512-ZPaiAKEZ6Blt/TPAx5Ot0EIB/yGtLI2EsGoY6F7XKklfMxYQyvtL+gT/UCqkMzO0BVFHLDlzvFqQzurYahxv9Q==, } engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.8.0' '@typescript-eslint/utils@7.18.0': resolution: { integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==, } engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 '@typescript-eslint/visitor-keys@7.18.0': resolution: { integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==, } engines: {node: ^18.18.0 || >=20.0.0} '@typescript-eslint/visitor-keys@8.25.0': resolution: { integrity: sha512-kCYXKAum9CecGVHGij7muybDfTS2sD3t0L4bJsEZLkyrXUImiCTq1M3LG2SRtOhiHFwMR9wAFplpT6XHYjTkwQ==, } engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': resolution: { integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==, } '@vitejs/plugin-vue@5.2.1': resolution: { integrity: sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==, } engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 || ^6.0.0 vue: ^3.2.25 '@vitest/expect@2.1.9': resolution: { integrity: sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw==, } '@vitest/mocker@2.1.9': resolution: { integrity: sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg==, } peerDependencies: msw: ^2.4.9 vite: ^5.0.0 peerDependenciesMeta: msw: optional: true vite: optional: true '@vitest/pretty-format@2.1.9': resolution: { integrity: sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==, } '@vitest/runner@2.1.9': resolution: { integrity: sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==, } '@vitest/snapshot@2.1.9': resolution: { integrity: sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==, } '@vitest/spy@2.1.9': resolution: { integrity: sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==, } '@vitest/utils@2.1.9': resolution: { integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==, } '@vue/compiler-core@3.5.13': resolution: { integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==, } '@vue/compiler-dom@3.5.13': resolution: { integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==, } '@vue/compiler-sfc@3.5.13': resolution: { integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==, } '@vue/compiler-ssr@3.5.13': resolution: { integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==, } '@vue/devtools-api@7.7.2': resolution: { integrity: sha512-1syn558KhyN+chO5SjlZIwJ8bV/bQ1nOVTG66t2RbG66ZGekyiYNmRO7X9BJCXQqPsFHlnksqvPhce2qpzxFnA==, } '@vue/devtools-kit@7.7.2': resolution: { integrity: sha512-CY0I1JH3Z8PECbn6k3TqM1Bk9ASWxeMtTCvZr7vb+CHi+X/QwQm5F1/fPagraamKMAHVfuuCbdcnNg1A4CYVWQ==, } '@vue/devtools-shared@7.7.2': resolution: { integrity: sha512-uBFxnp8gwW2vD6FrJB8JZLUzVb6PNRG0B0jBnHsOH8uKyva2qINY8PTF5Te4QlTbMDqU5K6qtJDr6cNsKWhbOA==, } '@vue/reactivity@3.5.13': resolution: { integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==, } '@vue/runtime-core@3.5.13': resolution: { integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==, } '@vue/runtime-dom@3.5.13': resolution: { integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==, } '@vue/server-renderer@3.5.13': resolution: { integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==, } peerDependencies: vue: 3.5.13 '@vue/shared@3.5.13': resolution: { integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==, } '@vueuse/core@12.7.0': resolution: { integrity: sha512-jtK5B7YjZXmkGNHjviyGO4s3ZtEhbzSgrbX+s5o+Lr8i2nYqNyHuPVOeTdM1/hZ5Tkxg/KktAuAVDDiHMraMVA==, } '@vueuse/integrations@12.7.0': resolution: { integrity: sha512-IEq7K4bCl7mn3uKJaWtNXnd1CAPaHLUMuyj5K1/k/pVcItt0VONZW8xiGxdIovJcQjkzOHjImhX5t6gija+0/g==, } peerDependencies: async-validator: ^4 axios: ^1 change-case: ^5 drauu: ^0.4 focus-trap: ^7 fuse.js: ^7 idb-keyval: ^6 jwt-decode: ^4 nprogress: ^0.2 qrcode: ^1.5 sortablejs: ^1 universal-cookie: ^7 peerDependenciesMeta: async-validator: optional: true axios: optional: true change-case: optional: true drauu: optional: true focus-trap: optional: true fuse.js: optional: true idb-keyval: optional: true jwt-decode: optional: true nprogress: optional: true qrcode: optional: true sortablejs: optional: true universal-cookie: optional: true '@vueuse/metadata@12.7.0': resolution: { integrity: sha512-4VvTH9mrjXqFN5LYa5YfqHVRI6j7R00Vy4995Rw7PQxyCL3z0Lli86iN4UemWqixxEvYfRjG+hF9wL8oLOn+3g==, } '@vueuse/shared@12.7.0': resolution: { integrity: sha512-coLlUw2HHKsm7rPN6WqHJQr18WymN4wkA/3ThFaJ4v4gWGWAQQGK+MJxLuJTBs4mojQiazlVWAKNJNpUWGRkNw==, } JSONStream@1.3.5: resolution: { integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==, } hasBin: true acorn-jsx@5.3.2: resolution: { integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, } peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 acorn@8.14.0: resolution: { integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==, } engines: {node: '>=0.4.0'} hasBin: true ajv@6.12.6: resolution: { integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, } ajv@8.17.1: resolution: { integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==, } algoliasearch@5.20.3: resolution: { integrity: sha512-iNC6BGvipaalFfDfDnXUje8GUlW5asj0cTMsZJwO/0rhsyLx1L7GZFAY8wW+eQ6AM4Yge2p5GSE5hrBlfSD90Q==, } engines: {node: '>= 14.0.0'} ansi-regex@5.0.1: resolution: { integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, } engines: {node: '>=8'} ansi-regex@6.1.0: resolution: { integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==, } engines: {node: '>=12'} ansi-styles@4.3.0: resolution: { integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, } engines: {node: '>=8'} ansi-styles@6.2.1: resolution: { integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, } engines: {node: '>=12'} any-promise@1.3.0: resolution: { integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==, } anymatch@3.1.3: resolution: { integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, } engines: {node: '>= 8'} arg@5.0.2: resolution: { integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==, } argparse@2.0.1: resolution: { integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, } args-tokenizer@0.3.0: resolution: { integrity: sha512-xXAd7G2Mll5W8uo37GETpQ2VrE84M181Z7ugHFGQnJZ50M2mbOv0osSZ9VsSgPfJQ+LVG0prSi0th+ELMsno7Q==, } aria-hidden@1.2.4: resolution: { integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==, } engines: {node: '>=10'} aria-query@5.3.2: resolution: { integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==, } engines: {node: '>= 0.4'} array-buffer-byte-length@1.0.2: resolution: { integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==, } engines: {node: '>= 0.4'} array-ify@1.0.0: resolution: { integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==, } array-includes@3.1.8: resolution: { integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==, } engines: {node: '>= 0.4'} array-union@2.1.0: resolution: { integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, } engines: {node: '>=8'} array.prototype.findlast@1.2.5: resolution: { integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==, } engines: {node: '>= 0.4'} array.prototype.findlastindex@1.2.5: resolution: { integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==, } engines: {node: '>= 0.4'} array.prototype.flat@1.3.3: resolution: { integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==, } engines: {node: '>= 0.4'} array.prototype.flatmap@1.3.3: resolution: { integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==, } engines: {node: '>= 0.4'} array.prototype.tosorted@1.1.4: resolution: { integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==, } engines: {node: '>= 0.4'} arraybuffer.prototype.slice@1.0.4: resolution: { integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==, } engines: {node: '>= 0.4'} assertion-error@2.0.1: resolution: { integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==, } engines: {node: '>=12'} ast-types-flow@0.0.8: resolution: { integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==, } async-function@1.0.0: resolution: { integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==, } engines: {node: '>= 0.4'} available-typed-arrays@1.0.7: resolution: { integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==, } engines: {node: '>= 0.4'} axe-core@4.10.2: resolution: { integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==, } engines: {node: '>=4'} axobject-query@4.1.0: resolution: { integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==, } engines: {node: '>= 0.4'} balanced-match@1.0.2: resolution: { integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, } binary-extensions@2.3.0: resolution: { integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==, } engines: {node: '>=8'} birpc@0.2.19: resolution: { integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==, } brace-expansion@1.1.11: resolution: { integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, } brace-expansion@2.0.1: resolution: { integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, } braces@3.0.3: resolution: { integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==, } engines: {node: '>=8'} bumpp@10.0.3: resolution: { integrity: sha512-5ONBZenNf9yfTIl2vFvDEfeeioidt0fG10SzjHQw50BRxOmXzsdY+lab1+SDMfiW6UyJ1xQqzFymcy5wa8YhTA==, } engines: {node: '>=18'} hasBin: true bundle-require@5.1.0: resolution: { integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==, } engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: esbuild: '>=0.18' busboy@1.6.0: resolution: { integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==, } engines: {node: '>=10.16.0'} c12@2.0.4: resolution: { integrity: sha512-3DbbhnFt0fKJHxU4tEUPmD1ahWE4PWPMomqfYsTJdrhpmEnRKJi3qSC4rO5U6E6zN1+pjBY7+z8fUmNRMaVKLw==, } peerDependencies: magicast: ^0.3.5 peerDependenciesMeta: magicast: optional: true cac@6.7.14: resolution: { integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==, } engines: {node: '>=8'} call-bind-apply-helpers@1.0.2: resolution: { integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==, } engines: {node: '>= 0.4'} call-bind@1.0.8: resolution: { integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==, } engines: {node: '>= 0.4'} call-bound@1.0.3: resolution: { integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==, } engines: {node: '>= 0.4'} callsites@3.1.0: resolution: { integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, } engines: {node: '>=6'} camelcase-css@2.0.1: resolution: { integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==, } engines: {node: '>= 6'} caniuse-lite@1.0.30001700: resolution: { integrity: sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==, } ccount@2.0.1: resolution: { integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==, } chai@5.2.0: resolution: { integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==, } engines: {node: '>=12'} chalk@4.1.2: resolution: { integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, } engines: {node: '>=10'} chalk@5.4.1: resolution: { integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==, } engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} character-entities-html4@2.1.0: resolution: { integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==, } character-entities-legacy@3.0.0: resolution: { integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==, } check-error@2.1.1: resolution: { integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==, } engines: {node: '>= 16'} chokidar@3.6.0: resolution: { integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==, } engines: {node: '>= 8.10.0'} chokidar@4.0.3: resolution: { integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==, } engines: {node: '>= 14.16.0'} chownr@2.0.0: resolution: { integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==, } engines: {node: '>=10'} citty@0.1.6: resolution: { integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==, } class-variance-authority@0.7.1: resolution: { integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==, } client-only@0.0.1: resolution: { integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==, } cliui@8.0.1: resolution: { integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, } engines: {node: '>=12'} clsx@2.1.1: resolution: { integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==, } engines: {node: '>=6'} color-convert@2.0.1: resolution: { integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, } engines: {node: '>=7.0.0'} color-name@1.1.4: resolution: { integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, } color-string@1.9.1: resolution: { integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==, } color@4.2.3: resolution: { integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==, } engines: {node: '>=12.5.0'} comma-separated-tokens@2.0.3: resolution: { integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==, } commander@4.1.1: resolution: { integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==, } engines: {node: '>= 6'} compare-func@2.0.0: resolution: { integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==, } concat-map@0.0.1: resolution: { integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, } confbox@0.1.8: resolution: { integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==, } consola@3.4.0: resolution: { integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==, } engines: {node: ^14.18.0 || >=16.10.0} conventional-changelog-angular@7.0.0: resolution: { integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==, } engines: {node: '>=16'} conventional-changelog-conventionalcommits@7.0.2: resolution: { integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==, } engines: {node: '>=16'} conventional-commits-parser@5.0.0: resolution: { integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==, } engines: {node: '>=16'} hasBin: true copy-anything@3.0.5: resolution: { integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==, } engines: {node: '>=12.13'} cosmiconfig-typescript-loader@6.1.0: resolution: { integrity: sha512-tJ1w35ZRUiM5FeTzT7DtYWAFFv37ZLqSRkGi2oeCK1gPhvaWjkAtfXvLmvE1pRfxxp9aQo6ba/Pvg1dKj05D4g==, } engines: {node: '>=v18'} peerDependencies: '@types/node': '*' cosmiconfig: '>=9' typescript: '>=5' cosmiconfig@9.0.0: resolution: { integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==, } engines: {node: '>=14'} peerDependencies: typescript: '>=4.9.5' peerDependenciesMeta: typescript: optional: true cross-spawn@7.0.6: resolution: { integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==, } engines: {node: '>= 8'} cssesc@3.0.0: resolution: { integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, } engines: {node: '>=4'} hasBin: true csstype@3.1.3: resolution: { integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==, } damerau-levenshtein@1.0.8: resolution: { integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==, } dargs@8.1.0: resolution: { integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==, } engines: {node: '>=12'} data-view-buffer@1.0.2: resolution: { integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==, } engines: {node: '>= 0.4'} data-view-byte-length@1.0.2: resolution: { integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==, } engines: {node: '>= 0.4'} data-view-byte-offset@1.0.1: resolution: { integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==, } engines: {node: '>= 0.4'} debug@3.2.7: resolution: { integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, } peerDependencies: supports-color: '*' peerDependenciesMeta: supports-color: optional: true debug@4.4.0: resolution: { integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==, } engines: {node: '>=6.0'} peerDependencies: supports-color: '*' peerDependenciesMeta: supports-color: optional: true deep-eql@5.0.2: resolution: { integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==, } engines: {node: '>=6'} deep-is@0.1.4: resolution: { integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, } define-data-property@1.1.4: resolution: { integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==, } engines: {node: '>= 0.4'} define-properties@1.2.1: resolution: { integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==, } engines: {node: '>= 0.4'} defu@6.1.4: resolution: { integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==, } dequal@2.0.3: resolution: { integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==, } engines: {node: '>=6'} destr@2.0.3: resolution: { integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==, } detect-libc@2.0.3: resolution: { integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==, } engines: {node: '>=8'} detect-node-es@1.1.0: resolution: { integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==, } devlop@1.1.0: resolution: { integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==, } didyoumean@1.2.2: resolution: { integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==, } dir-glob@3.0.1: resolution: { integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, } engines: {node: '>=8'} dlv@1.1.3: resolution: { integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==, } doctrine@2.1.0: resolution: { integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==, } engines: {node: '>=0.10.0'} doctrine@3.0.0: resolution: { integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, } engines: {node: '>=6.0.0'} dot-prop@5.3.0: resolution: { integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==, } engines: {node: '>=8'} dotenv@16.4.7: resolution: { integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==, } engines: {node: '>=12'} dunder-proto@1.0.1: resolution: { integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==, } engines: {node: '>= 0.4'} eastasianwidth@0.2.0: resolution: { integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, } emoji-regex-xs@1.0.0: resolution: { integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==, } emoji-regex@8.0.0: resolution: { integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, } emoji-regex@9.2.2: resolution: { integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, } enhanced-resolve@5.18.1: resolution: { integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==, } engines: {node: '>=10.13.0'} entities@4.5.0: resolution: { integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, } engines: {node: '>=0.12'} env-paths@2.2.1: resolution: { integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==, } engines: {node: '>=6'} error-ex@1.3.2: resolution: { integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, } es-abstract@1.23.9: resolution: { integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==, } engines: {node: '>= 0.4'} es-define-property@1.0.1: resolution: { integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==, } engines: {node: '>= 0.4'} es-errors@1.3.0: resolution: { integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==, } engines: {node: '>= 0.4'} es-iterator-helpers@1.2.1: resolution: { integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==, } engines: {node: '>= 0.4'} es-module-lexer@1.6.0: resolution: { integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==, } es-object-atoms@1.1.1: resolution: { integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==, } engines: {node: '>= 0.4'} es-set-tostringtag@2.1.0: resolution: { integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==, } engines: {node: '>= 0.4'} es-shim-unscopables@1.1.0: resolution: { integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==, } engines: {node: '>= 0.4'} es-to-primitive@1.3.0: resolution: { integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==, } engines: {node: '>= 0.4'} esbuild@0.21.5: resolution: { integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==, } engines: {node: '>=12'} hasBin: true esbuild@0.25.0: resolution: { integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==, } engines: {node: '>=18'} hasBin: true escalade@3.2.0: resolution: { integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==, } engines: {node: '>=6'} escape-string-regexp@4.0.0: resolution: { integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, } engines: {node: '>=10'} eslint-config-next@15.1.7: resolution: { integrity: sha512-zXoMnYUIy3XHaAoOhrcYkT9UQWvXqWju2K7NNsmb5wd/7XESDwof61eUdW4QhERr3eJ9Ko/vnXqIrj8kk/drYw==, } peerDependencies: eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 typescript: '>=3.3.1' peerDependenciesMeta: typescript: optional: true eslint-import-resolver-node@0.3.9: resolution: { integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==, } eslint-import-resolver-typescript@3.8.3: resolution: { integrity: sha512-A0bu4Ks2QqDWNpeEgTQMPTngaMhuDu4yv6xpftBMAf+1ziXnpx+eSR1WRfoPTe2BAiAjHFZ7kSNx1fvr5g5pmQ==, } engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '*' eslint-plugin-import: '*' eslint-plugin-import-x: '*' peerDependenciesMeta: eslint-plugin-import: optional: true eslint-plugin-import-x: optional: true eslint-module-utils@2.12.0: resolution: { integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==, } engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' eslint: '*' eslint-import-resolver-node: '*' eslint-import-resolver-typescript: '*' eslint-import-resolver-webpack: '*' peerDependenciesMeta: '@typescript-eslint/parser': optional: true eslint: optional: true eslint-import-resolver-node: optional: true eslint-import-resolver-typescript: optional: true eslint-import-resolver-webpack: optional: true eslint-plugin-import@2.31.0: resolution: { integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==, } engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 peerDependenciesMeta: '@typescript-eslint/parser': optional: true eslint-plugin-jsx-a11y@6.10.2: resolution: { integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==, } engines: {node: '>=4.0'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 eslint-plugin-react-hooks@5.1.0: resolution: { integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==, } engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 eslint-plugin-react@7.37.4: resolution: { integrity: sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==, } engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 eslint-scope@7.2.2: resolution: { integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==, } engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} eslint-scope@8.2.0: resolution: { integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==, } engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: { integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==, } engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} eslint-visitor-keys@4.2.0: resolution: { integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==, } engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint@8.57.1: resolution: { integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==, } engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true eslint@9.21.0: resolution: { integrity: sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==, } engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: jiti: '*' peerDependenciesMeta: jiti: optional: true espree@10.3.0: resolution: { integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==, } engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} espree@9.6.1: resolution: { integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==, } engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} esquery@1.6.0: resolution: { integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==, } engines: {node: '>=0.10'} esrecurse@4.3.0: resolution: { integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, } engines: {node: '>=4.0'} estraverse@5.3.0: resolution: { integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, } engines: {node: '>=4.0'} estree-walker@2.0.2: resolution: { integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, } estree-walker@3.0.3: resolution: { integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==, } esutils@2.0.3: resolution: { integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, } engines: {node: '>=0.10.0'} expect-type@1.1.0: resolution: { integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==, } engines: {node: '>=12.0.0'} fast-deep-equal@3.1.3: resolution: { integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, } fast-glob@3.3.1: resolution: { integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==, } engines: {node: '>=8.6.0'} fast-glob@3.3.3: resolution: { integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==, } engines: {node: '>=8.6.0'} fast-json-stable-stringify@2.1.0: resolution: { integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, } fast-levenshtein@2.0.6: resolution: { integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, } fast-uri@3.0.6: resolution: { integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==, } fastq@1.19.0: resolution: { integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==, } fdir@6.4.3: resolution: { integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==, } peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: picomatch: optional: true file-entry-cache@6.0.1: resolution: { integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, } engines: {node: ^10.12.0 || >=12.0.0} file-entry-cache@8.0.0: resolution: { integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==, } engines: {node: '>=16.0.0'} fill-range@7.1.1: resolution: { integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==, } engines: {node: '>=8'} find-up@5.0.0: resolution: { integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, } engines: {node: '>=10'} find-up@7.0.0: resolution: { integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==, } engines: {node: '>=18'} flat-cache@3.2.0: resolution: { integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==, } engines: {node: ^10.12.0 || >=12.0.0} flat-cache@4.0.1: resolution: { integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==, } engines: {node: '>=16'} flatted@3.3.3: resolution: { integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==, } focus-trap@7.6.4: resolution: { integrity: sha512-xx560wGBk7seZ6y933idtjJQc1l+ck+pI3sKvhKozdBV1dRZoKhkW5xoCaFv9tQiX5RH1xfSxjuNu6g+lmN/gw==, } for-each@0.3.5: resolution: { integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==, } engines: {node: '>= 0.4'} foreground-child@3.3.1: resolution: { integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==, } engines: {node: '>=14'} fs-minipass@2.1.0: resolution: { integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==, } engines: {node: '>= 8'} fs.realpath@1.0.0: resolution: { integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, } fsevents@2.3.3: resolution: { integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, } engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] function-bind@1.1.2: resolution: { integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, } function.prototype.name@1.1.8: resolution: { integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==, } engines: {node: '>= 0.4'} functions-have-names@1.2.3: resolution: { integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, } get-caller-file@2.0.5: resolution: { integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, } engines: {node: 6.* || 8.* || >= 10.*} get-intrinsic@1.3.0: resolution: { integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==, } engines: {node: '>= 0.4'} get-nonce@1.0.1: resolution: { integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==, } engines: {node: '>=6'} get-proto@1.0.1: resolution: { integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==, } engines: {node: '>= 0.4'} get-symbol-description@1.1.0: resolution: { integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==, } engines: {node: '>= 0.4'} get-tsconfig@4.10.0: resolution: { integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==, } giget@1.2.5: resolution: { integrity: sha512-r1ekGw/Bgpi3HLV3h1MRBIlSAdHoIMklpaQ3OQLFcRw9PwAj2rqigvIbg+dBUI51OxVI2jsEtDywDBjSiuf7Ug==, } hasBin: true git-raw-commits@4.0.0: resolution: { integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==, } engines: {node: '>=16'} hasBin: true glob-parent@5.1.2: resolution: { integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, } engines: {node: '>= 6'} glob-parent@6.0.2: resolution: { integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, } engines: {node: '>=10.13.0'} glob@10.4.5: resolution: { integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==, } hasBin: true glob@7.2.3: resolution: { integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, } deprecated: Glob versions prior to v9 are no longer supported global-directory@4.0.1: resolution: { integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==, } engines: {node: '>=18'} globals@11.12.0: resolution: { integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, } engines: {node: '>=4'} globals@13.24.0: resolution: { integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==, } engines: {node: '>=8'} globals@14.0.0: resolution: { integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==, } engines: {node: '>=18'} globalthis@1.0.4: resolution: { integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==, } engines: {node: '>= 0.4'} globby@11.1.0: resolution: { integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, } engines: {node: '>=10'} gopd@1.2.0: resolution: { integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==, } engines: {node: '>= 0.4'} graceful-fs@4.2.11: resolution: { integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, } graphemer@1.4.0: resolution: { integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==, } has-bigints@1.1.0: resolution: { integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==, } engines: {node: '>= 0.4'} has-flag@4.0.0: resolution: { integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, } engines: {node: '>=8'} has-property-descriptors@1.0.2: resolution: { integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==, } has-proto@1.2.0: resolution: { integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==, } engines: {node: '>= 0.4'} has-symbols@1.1.0: resolution: { integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==, } engines: {node: '>= 0.4'} has-tostringtag@1.0.2: resolution: { integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==, } engines: {node: '>= 0.4'} hasown@2.0.2: resolution: { integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==, } engines: {node: '>= 0.4'} hast-util-to-html@9.0.5: resolution: { integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==, } hast-util-whitespace@3.0.0: resolution: { integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==, } hookable@5.5.3: resolution: { integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==, } html-void-elements@3.0.0: resolution: { integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==, } husky@9.1.7: resolution: { integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==, } engines: {node: '>=18'} hasBin: true ignore@5.3.2: resolution: { integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==, } engines: {node: '>= 4'} import-fresh@3.3.1: resolution: { integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==, } engines: {node: '>=6'} import-meta-resolve@4.1.0: resolution: { integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==, } imurmurhash@0.1.4: resolution: { integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, } engines: {node: '>=0.8.19'} inflight@1.0.6: resolution: { integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, } deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.4: resolution: { integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, } ini@4.1.1: resolution: { integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==, } engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} internal-slot@1.1.0: resolution: { integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==, } engines: {node: '>= 0.4'} is-array-buffer@3.0.5: resolution: { integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==, } engines: {node: '>= 0.4'} is-arrayish@0.2.1: resolution: { integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, } is-arrayish@0.3.2: resolution: { integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==, } is-async-function@2.1.1: resolution: { integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==, } engines: {node: '>= 0.4'} is-bigint@1.1.0: resolution: { integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==, } engines: {node: '>= 0.4'} is-binary-path@2.1.0: resolution: { integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, } engines: {node: '>=8'} is-boolean-object@1.2.2: resolution: { integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==, } engines: {node: '>= 0.4'} is-bun-module@1.3.0: resolution: { integrity: sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==, } is-callable@1.2.7: resolution: { integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, } engines: {node: '>= 0.4'} is-core-module@2.16.1: resolution: { integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==, } engines: {node: '>= 0.4'} is-data-view@1.0.2: resolution: { integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==, } engines: {node: '>= 0.4'} is-date-object@1.1.0: resolution: { integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==, } engines: {node: '>= 0.4'} is-extglob@2.1.1: resolution: { integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, } engines: {node: '>=0.10.0'} is-finalizationregistry@1.1.1: resolution: { integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==, } engines: {node: '>= 0.4'} is-fullwidth-code-point@3.0.0: resolution: { integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, } engines: {node: '>=8'} is-generator-function@1.1.0: resolution: { integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==, } engines: {node: '>= 0.4'} is-glob@4.0.3: resolution: { integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, } engines: {node: '>=0.10.0'} is-map@2.0.3: resolution: { integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==, } engines: {node: '>= 0.4'} is-number-object@1.1.1: resolution: { integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==, } engines: {node: '>= 0.4'} is-number@7.0.0: resolution: { integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, } engines: {node: '>=0.12.0'} is-obj@2.0.0: resolution: { integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==, } engines: {node: '>=8'} is-path-inside@3.0.3: resolution: { integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, } engines: {node: '>=8'} is-regex@1.2.1: resolution: { integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==, } engines: {node: '>= 0.4'} is-set@2.0.3: resolution: { integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==, } engines: {node: '>= 0.4'} is-shared-array-buffer@1.0.4: resolution: { integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==, } engines: {node: '>= 0.4'} is-string@1.1.1: resolution: { integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==, } engines: {node: '>= 0.4'} is-symbol@1.1.1: resolution: { integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==, } engines: {node: '>= 0.4'} is-text-path@2.0.0: resolution: { integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==, } engines: {node: '>=8'} is-typed-array@1.1.15: resolution: { integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==, } engines: {node: '>= 0.4'} is-weakmap@2.0.2: resolution: { integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==, } engines: {node: '>= 0.4'} is-weakref@1.1.1: resolution: { integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==, } engines: {node: '>= 0.4'} is-weakset@2.0.4: resolution: { integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==, } engines: {node: '>= 0.4'} is-what@4.1.16: resolution: { integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==, } engines: {node: '>=12.13'} isarray@2.0.5: resolution: { integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, } isexe@2.0.0: resolution: { integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, } iterator.prototype@1.1.5: resolution: { integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==, } engines: {node: '>= 0.4'} jackspeak@3.4.3: resolution: { integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==, } jiti@1.21.7: resolution: { integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==, } hasBin: true jiti@2.4.2: resolution: { integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==, } hasBin: true joycon@3.1.1: resolution: { integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==, } engines: {node: '>=10'} js-tokens@4.0.0: resolution: { integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, } js-yaml@4.1.0: resolution: { integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, } hasBin: true jsesc@3.1.0: resolution: { integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==, } engines: {node: '>=6'} hasBin: true json-buffer@3.0.1: resolution: { integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, } json-parse-even-better-errors@2.3.1: resolution: { integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, } json-schema-traverse@0.4.1: resolution: { integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, } json-schema-traverse@1.0.0: resolution: { integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, } json-stable-stringify-without-jsonify@1.0.1: resolution: { integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, } json5@1.0.2: resolution: { integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==, } hasBin: true jsonc-parser@3.3.1: resolution: { integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==, } jsonparse@1.3.1: resolution: { integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==, } engines: {'0': node >= 0.2.0} jsx-ast-utils@3.3.5: resolution: { integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==, } engines: {node: '>=4.0'} keyv@4.5.4: resolution: { integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, } kleur@3.0.3: resolution: { integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==, } engines: {node: '>=6'} language-subtag-registry@0.3.23: resolution: { integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==, } language-tags@1.0.9: resolution: { integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==, } engines: {node: '>=0.10'} levn@0.4.1: resolution: { integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, } engines: {node: '>= 0.8.0'} lilconfig@3.1.3: resolution: { integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==, } engines: {node: '>=14'} lines-and-columns@1.2.4: resolution: { integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, } load-tsconfig@0.2.5: resolution: { integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==, } engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} locate-path@6.0.0: resolution: { integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, } engines: {node: '>=10'} locate-path@7.2.0: resolution: { integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==, } engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} lodash.camelcase@4.3.0: resolution: { integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, } lodash.isplainobject@4.0.6: resolution: { integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==, } lodash.kebabcase@4.1.1: resolution: { integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==, } lodash.merge@4.6.2: resolution: { integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, } lodash.mergewith@4.6.2: resolution: { integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==, } lodash.snakecase@4.1.1: resolution: { integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==, } lodash.sortby@4.7.0: resolution: { integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==, } lodash.startcase@4.4.0: resolution: { integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==, } lodash.uniq@4.5.0: resolution: { integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==, } lodash.upperfirst@4.3.1: resolution: { integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==, } loose-envify@1.4.0: resolution: { integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, } hasBin: true loupe@3.1.3: resolution: { integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==, } lru-cache@10.4.3: resolution: { integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==, } lucide-react@0.475.0: resolution: { integrity: sha512-NJzvVu1HwFVeZ+Gwq2q00KygM1aBhy/ZrhY9FsAgJtpB+E4R7uxRk9M2iKvHa6/vNxZydIB59htha4c2vvwvVg==, } peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 magic-string@0.30.17: resolution: { integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==, } mark.js@8.11.1: resolution: { integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==, } math-intrinsics@1.1.0: resolution: { integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==, } engines: {node: '>= 0.4'} mdast-util-to-hast@13.2.0: resolution: { integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==, } meow@12.1.1: resolution: { integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==, } engines: {node: '>=16.10'} merge2@1.4.1: resolution: { integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, } engines: {node: '>= 8'} micromark-util-character@2.1.1: resolution: { integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==, } micromark-util-encode@2.0.1: resolution: { integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==, } micromark-util-sanitize-uri@2.0.1: resolution: { integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==, } micromark-util-symbol@2.0.1: resolution: { integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==, } micromark-util-types@2.0.1: resolution: { integrity: sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==, } micromatch@4.0.8: resolution: { integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==, } engines: {node: '>=8.6'} minimatch@3.1.2: resolution: { integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, } minimatch@9.0.5: resolution: { integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==, } engines: {node: '>=16 || 14 >=14.17'} minimist@1.2.8: resolution: { integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, } minipass@3.3.6: resolution: { integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==, } engines: {node: '>=8'} minipass@5.0.0: resolution: { integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==, } engines: {node: '>=8'} minipass@7.1.2: resolution: { integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==, } engines: {node: '>=16 || 14 >=14.17'} minisearch@7.1.2: resolution: { integrity: sha512-R1Pd9eF+MD5JYDDSPAp/q1ougKglm14uEkPMvQ/05RGmx6G9wvmLTrTI/Q5iPNJLYqNdsDQ7qTGIcNWR+FrHmA==, } minizlib@2.1.2: resolution: { integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==, } engines: {node: '>= 8'} mitt@3.0.1: resolution: { integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==, } mkdirp@1.0.4: resolution: { integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==, } engines: {node: '>=10'} hasBin: true mlly@1.7.4: resolution: { integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==, } monaco-editor@0.52.2: resolution: { integrity: sha512-GEQWEZmfkOGLdd3XK8ryrfWz3AIP8YymVXiPHEdewrUq7mh0qrKrfHLNCXcbB6sTnMLnOZ3ztSiKcciFUkIJwQ==, } ms@2.1.3: resolution: { integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, } mz@2.7.0: resolution: { integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==, } nanoid@3.3.8: resolution: { integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==, } engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true natural-compare@1.4.0: resolution: { integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, } next@15.1.7: resolution: { integrity: sha512-GNeINPGS9c6OZKCvKypbL8GTsT5GhWPp4DM0fzkXJuXMilOO2EeFxuAY6JZbtk6XIl6Ws10ag3xRINDjSO5+wg==, } engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 '@playwright/test': ^1.41.2 babel-plugin-react-compiler: '*' react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 sass: ^1.3.0 peerDependenciesMeta: '@opentelemetry/api': optional: true '@playwright/test': optional: true babel-plugin-react-compiler: optional: true sass: optional: true node-fetch-native@1.6.6: resolution: { integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==, } normalize-path@3.0.0: resolution: { integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, } engines: {node: '>=0.10.0'} nypm@0.5.4: resolution: { integrity: sha512-X0SNNrZiGU8/e/zAB7sCTtdxWTMSIO73q+xuKgglm2Yvzwlo8UoC5FNySQFCvl84uPaeADkqHUZUkWy4aH4xOA==, } engines: {node: ^14.16.0 || >=16.10.0} hasBin: true object-assign@4.1.1: resolution: { integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, } engines: {node: '>=0.10.0'} object-hash@3.0.0: resolution: { integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==, } engines: {node: '>= 6'} object-inspect@1.13.4: resolution: { integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==, } engines: {node: '>= 0.4'} object-keys@1.1.1: resolution: { integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, } engines: {node: '>= 0.4'} object.assign@4.1.7: resolution: { integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==, } engines: {node: '>= 0.4'} object.entries@1.1.8: resolution: { integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==, } engines: {node: '>= 0.4'} object.fromentries@2.0.8: resolution: { integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==, } engines: {node: '>= 0.4'} object.groupby@1.0.3: resolution: { integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==, } engines: {node: '>= 0.4'} object.values@1.2.1: resolution: { integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==, } engines: {node: '>= 0.4'} ohash@2.0.5: resolution: { integrity: sha512-3k3APZwRRPYyohdIDmPTpe5i0AY5lm7gvu/Oip7tZrTaEGfSlKX+7kXUoWLd9sHX0GDRVwVvlW18yEcD7qS1zw==, } once@1.4.0: resolution: { integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, } oniguruma-to-es@3.1.1: resolution: { integrity: sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ==, } optionator@0.9.4: resolution: { integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==, } engines: {node: '>= 0.8.0'} own-keys@1.0.1: resolution: { integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==, } engines: {node: '>= 0.4'} p-limit@3.1.0: resolution: { integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, } engines: {node: '>=10'} p-limit@4.0.0: resolution: { integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==, } engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} p-locate@5.0.0: resolution: { integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, } engines: {node: '>=10'} p-locate@6.0.0: resolution: { integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==, } engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} package-json-from-dist@1.0.1: resolution: { integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==, } package-manager-detector@0.2.9: resolution: { integrity: sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==, } parent-module@1.0.1: resolution: { integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, } engines: {node: '>=6'} parse-json@5.2.0: resolution: { integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, } engines: {node: '>=8'} path-exists@4.0.0: resolution: { integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, } engines: {node: '>=8'} path-exists@5.0.0: resolution: { integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==, } engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} path-is-absolute@1.0.1: resolution: { integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, } engines: {node: '>=0.10.0'} path-key@3.1.1: resolution: { integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, } engines: {node: '>=8'} path-parse@1.0.7: resolution: { integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, } path-scurry@1.11.1: resolution: { integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==, } engines: {node: '>=16 || 14 >=14.18'} path-type@4.0.0: resolution: { integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, } engines: {node: '>=8'} pathe@1.1.2: resolution: { integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==, } pathe@2.0.3: resolution: { integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==, } pathval@2.0.0: resolution: { integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==, } engines: {node: '>= 14.16'} perfect-debounce@1.0.0: resolution: { integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==, } picocolors@1.1.1: resolution: { integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==, } picomatch@2.3.1: resolution: { integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, } engines: {node: '>=8.6'} picomatch@4.0.2: resolution: { integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==, } engines: {node: '>=12'} pify@2.3.0: resolution: { integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, } engines: {node: '>=0.10.0'} pirates@4.0.6: resolution: { integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==, } engines: {node: '>= 6'} pkg-types@1.3.1: resolution: { integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==, } possible-typed-array-names@1.1.0: resolution: { integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==, } engines: {node: '>= 0.4'} postcss-import@15.1.0: resolution: { integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==, } engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 postcss-js@4.0.1: resolution: { integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==, } engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 postcss-load-config@4.0.2: resolution: { integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==, } engines: {node: '>= 14'} peerDependencies: postcss: '>=8.0.9' ts-node: '>=9.0.0' peerDependenciesMeta: postcss: optional: true ts-node: optional: true postcss-load-config@6.0.1: resolution: { integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==, } engines: {node: '>= 18'} peerDependencies: jiti: '>=1.21.0' postcss: '>=8.0.9' tsx: ^4.8.1 yaml: ^2.4.2 peerDependenciesMeta: jiti: optional: true postcss: optional: true tsx: optional: true yaml: optional: true postcss-nested@6.2.0: resolution: { integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==, } engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 postcss-selector-parser@6.1.2: resolution: { integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==, } engines: {node: '>=4'} postcss-value-parser@4.2.0: resolution: { integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, } postcss@8.4.31: resolution: { integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==, } engines: {node: ^10 || ^12 || >=14} postcss@8.5.3: resolution: { integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==, } engines: {node: ^10 || ^12 || >=14} preact@10.26.2: resolution: { integrity: sha512-0gNmv4qpS9HaN3+40CLBAnKe0ZfyE4ZWo5xKlC1rVrr0ckkEvJvAQqKaHANdFKsGstoxrY4AItZ7kZSGVoVjgg==, } prelude-ls@1.2.1: resolution: { integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, } engines: {node: '>= 0.8.0'} prettier@3.5.2: resolution: { integrity: sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==, } engines: {node: '>=14'} hasBin: true prompts@2.4.2: resolution: { integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==, } engines: {node: '>= 6'} prop-types@15.8.1: resolution: { integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==, } property-information@7.0.0: resolution: { integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==, } punycode@2.3.1: resolution: { integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, } engines: {node: '>=6'} queue-microtask@1.2.3: resolution: { integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, } rc9@2.1.2: resolution: { integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==, } react-dom@19.0.0: resolution: { integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==, } peerDependencies: react: ^19.0.0 react-is@16.13.1: resolution: { integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, } react-remove-scroll-bar@2.3.8: resolution: { integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==, } engines: {node: '>=10'} peerDependencies: '@types/react': '*' react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@types/react': optional: true react-remove-scroll@2.6.3: resolution: { integrity: sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==, } engines: {node: '>=10'} peerDependencies: '@types/react': '*' react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true react-style-singleton@2.2.3: resolution: { integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==, } engines: {node: '>=10'} peerDependencies: '@types/react': '*' react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true react@19.0.0: resolution: { integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==, } engines: {node: '>=0.10.0'} read-cache@1.0.0: resolution: { integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==, } readdirp@3.6.0: resolution: { integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, } engines: {node: '>=8.10.0'} readdirp@4.1.2: resolution: { integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==, } engines: {node: '>= 14.18.0'} reflect.getprototypeof@1.0.10: resolution: { integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==, } engines: {node: '>= 0.4'} regex-recursion@6.0.2: resolution: { integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==, } regex-utilities@2.3.0: resolution: { integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==, } regex@6.0.1: resolution: { integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==, } regexp.prototype.flags@1.5.4: resolution: { integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==, } engines: {node: '>= 0.4'} require-directory@2.1.1: resolution: { integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, } engines: {node: '>=0.10.0'} require-from-string@2.0.2: resolution: { integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, } engines: {node: '>=0.10.0'} resolve-from@4.0.0: resolution: { integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, } engines: {node: '>=4'} resolve-from@5.0.0: resolution: { integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, } engines: {node: '>=8'} resolve-pkg-maps@1.0.0: resolution: { integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==, } resolve@1.22.10: resolution: { integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==, } engines: {node: '>= 0.4'} hasBin: true resolve@2.0.0-next.5: resolution: { integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==, } hasBin: true reusify@1.1.0: resolution: { integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==, } engines: {iojs: '>=1.0.0', node: '>=0.10.0'} rfdc@1.4.1: resolution: { integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==, } rimraf@3.0.2: resolution: { integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, } deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rollup@4.34.8: resolution: { integrity: sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==, } engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true run-parallel@1.2.0: resolution: { integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, } safe-array-concat@1.1.3: resolution: { integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==, } engines: {node: '>=0.4'} safe-push-apply@1.0.0: resolution: { integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==, } engines: {node: '>= 0.4'} safe-regex-test@1.1.0: resolution: { integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==, } engines: {node: '>= 0.4'} scheduler@0.25.0: resolution: { integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==, } search-insights@2.17.3: resolution: { integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==, } semver@6.3.1: resolution: { integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, } hasBin: true semver@7.7.1: resolution: { integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==, } engines: {node: '>=10'} hasBin: true set-function-length@1.2.2: resolution: { integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==, } engines: {node: '>= 0.4'} set-function-name@2.0.2: resolution: { integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==, } engines: {node: '>= 0.4'} set-proto@1.0.0: resolution: { integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==, } engines: {node: '>= 0.4'} sharp@0.33.5: resolution: { integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==, } engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} shebang-command@2.0.0: resolution: { integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, } engines: {node: '>=8'} shebang-regex@3.0.0: resolution: { integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, } engines: {node: '>=8'} shiki@2.5.0: resolution: { integrity: sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==, } side-channel-list@1.0.0: resolution: { integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==, } engines: {node: '>= 0.4'} side-channel-map@1.0.1: resolution: { integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==, } engines: {node: '>= 0.4'} side-channel-weakmap@1.0.2: resolution: { integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==, } engines: {node: '>= 0.4'} side-channel@1.1.0: resolution: { integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==, } engines: {node: '>= 0.4'} siginfo@2.0.0: resolution: { integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==, } signal-exit@4.1.0: resolution: { integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, } engines: {node: '>=14'} simple-swizzle@0.2.2: resolution: { integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==, } sisteransi@1.0.5: resolution: { integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==, } slash@3.0.0: resolution: { integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, } engines: {node: '>=8'} source-map-js@1.2.1: resolution: { integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==, } engines: {node: '>=0.10.0'} source-map@0.8.0-beta.0: resolution: { integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==, } engines: {node: '>= 8'} space-separated-tokens@2.0.2: resolution: { integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==, } speakingurl@14.0.1: resolution: { integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==, } engines: {node: '>=0.10.0'} split2@4.2.0: resolution: { integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==, } engines: {node: '>= 10.x'} stable-hash@0.0.4: resolution: { integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==, } stackback@0.0.2: resolution: { integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==, } state-local@1.0.7: resolution: { integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==, } std-env@3.8.0: resolution: { integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==, } streamsearch@1.1.0: resolution: { integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==, } engines: {node: '>=10.0.0'} string-width@4.2.3: resolution: { integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, } engines: {node: '>=8'} string-width@5.1.2: resolution: { integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, } engines: {node: '>=12'} string.prototype.includes@2.0.1: resolution: { integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==, } engines: {node: '>= 0.4'} string.prototype.matchall@4.0.12: resolution: { integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==, } engines: {node: '>= 0.4'} string.prototype.repeat@1.0.0: resolution: { integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==, } string.prototype.trim@1.2.10: resolution: { integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==, } engines: {node: '>= 0.4'} string.prototype.trimend@1.0.9: resolution: { integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==, } engines: {node: '>= 0.4'} string.prototype.trimstart@1.0.8: resolution: { integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==, } engines: {node: '>= 0.4'} stringify-entities@4.0.4: resolution: { integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==, } strip-ansi@6.0.1: resolution: { integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, } engines: {node: '>=8'} strip-ansi@7.1.0: resolution: { integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, } engines: {node: '>=12'} strip-bom@3.0.0: resolution: { integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, } engines: {node: '>=4'} strip-json-comments@3.1.1: resolution: { integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, } engines: {node: '>=8'} styled-jsx@5.1.6: resolution: { integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==, } engines: {node: '>= 12.0.0'} peerDependencies: '@babel/core': '*' babel-plugin-macros: '*' react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' peerDependenciesMeta: '@babel/core': optional: true babel-plugin-macros: optional: true sucrase@3.35.0: resolution: { integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==, } engines: {node: '>=16 || 14 >=14.17'} hasBin: true superjson@2.2.2: resolution: { integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==, } engines: {node: '>=16'} supports-color@7.2.0: resolution: { integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, } engines: {node: '>=8'} supports-preserve-symlinks-flag@1.0.0: resolution: { integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, } engines: {node: '>= 0.4'} tabbable@6.2.0: resolution: { integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==, } tailwind-merge@3.0.2: resolution: { integrity: sha512-l7z+OYZ7mu3DTqrL88RiKrKIqO3NcpEO8V/Od04bNpvk0kiIFndGEoqfuzvj4yuhRkHKjRkII2z+KS2HfPcSxw==, } tailwindcss-animate@1.0.7: resolution: { integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==, } peerDependencies: tailwindcss: '>=3.0.0 || insiders' tailwindcss@3.4.17: resolution: { integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==, } engines: {node: '>=14.0.0'} hasBin: true tapable@2.2.1: resolution: { integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, } engines: {node: '>=6'} tar@6.2.1: resolution: { integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==, } engines: {node: '>=10'} text-extensions@2.4.0: resolution: { integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==, } engines: {node: '>=8'} text-table@0.2.0: resolution: { integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, } thenify-all@1.6.0: resolution: { integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==, } engines: {node: '>=0.8'} thenify@3.3.1: resolution: { integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==, } through@2.3.8: resolution: { integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, } tinybench@2.9.0: resolution: { integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==, } tinyexec@0.3.2: resolution: { integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==, } tinyglobby@0.2.12: resolution: { integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==, } engines: {node: '>=12.0.0'} tinypool@1.0.2: resolution: { integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==, } engines: {node: ^18.0.0 || >=20.0.0} tinyrainbow@1.2.0: resolution: { integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==, } engines: {node: '>=14.0.0'} tinyspy@3.0.2: resolution: { integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==, } engines: {node: '>=14.0.0'} to-regex-range@5.0.1: resolution: { integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, } engines: {node: '>=8.0'} tr46@1.0.1: resolution: { integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==, } tree-kill@1.2.2: resolution: { integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==, } hasBin: true trim-lines@3.0.1: resolution: { integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==, } ts-api-utils@1.4.3: resolution: { integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==, } engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' ts-api-utils@2.0.1: resolution: { integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==, } engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' ts-interface-checker@0.1.13: resolution: { integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==, } tsconfig-paths@3.15.0: resolution: { integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==, } tslib@2.8.1: resolution: { integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==, } tsup@8.4.0: resolution: { integrity: sha512-b+eZbPCjz10fRryaAA7C8xlIHnf8VnsaRqydheLIqwG/Mcpfk8Z5zp3HayX7GaTygkigHl5cBUs+IhcySiIexQ==, } engines: {node: '>=18'} hasBin: true peerDependencies: '@microsoft/api-extractor': ^7.36.0 '@swc/core': ^1 postcss: ^8.4.12 typescript: '>=4.5.0' peerDependenciesMeta: '@microsoft/api-extractor': optional: true '@swc/core': optional: true postcss: optional: true typescript: optional: true type-check@0.4.0: resolution: { integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, } engines: {node: '>= 0.8.0'} type-fest@0.20.2: resolution: { integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, } engines: {node: '>=10'} typed-array-buffer@1.0.3: resolution: { integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==, } engines: {node: '>= 0.4'} typed-array-byte-length@1.0.3: resolution: { integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==, } engines: {node: '>= 0.4'} typed-array-byte-offset@1.0.4: resolution: { integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==, } engines: {node: '>= 0.4'} typed-array-length@1.0.7: resolution: { integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==, } engines: {node: '>= 0.4'} typescript@5.7.3: resolution: { integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==, } engines: {node: '>=14.17'} hasBin: true ufo@1.5.4: resolution: { integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==, } unbox-primitive@1.1.0: resolution: { integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==, } engines: {node: '>= 0.4'} undici-types@6.19.8: resolution: { integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==, } unicorn-magic@0.1.0: resolution: { integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==, } engines: {node: '>=18'} unist-util-is@6.0.0: resolution: { integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==, } unist-util-position@5.0.0: resolution: { integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==, } unist-util-stringify-position@4.0.0: resolution: { integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==, } unist-util-visit-parents@6.0.1: resolution: { integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==, } unist-util-visit@5.0.0: resolution: { integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==, } uri-js@4.4.1: resolution: { integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, } use-callback-ref@1.3.3: resolution: { integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==, } engines: {node: '>=10'} peerDependencies: '@types/react': '*' react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true use-sidecar@1.1.3: resolution: { integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==, } engines: {node: '>=10'} peerDependencies: '@types/react': '*' react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true util-deprecate@1.0.2: resolution: { integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, } vfile-message@4.0.2: resolution: { integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==, } vfile@6.0.3: resolution: { integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==, } vite-node@2.1.9: resolution: { integrity: sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA==, } engines: {node: ^18.0.0 || >=20.0.0} hasBin: true vite@5.4.14: resolution: { integrity: sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==, } engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@types/node': ^18.0.0 || >=20.0.0 less: '*' lightningcss: ^1.21.0 sass: '*' sass-embedded: '*' stylus: '*' sugarss: '*' terser: ^5.4.0 peerDependenciesMeta: '@types/node': optional: true less: optional: true lightningcss: optional: true sass: optional: true sass-embedded: optional: true stylus: optional: true sugarss: optional: true terser: optional: true vitepress@1.6.3: resolution: { integrity: sha512-fCkfdOk8yRZT8GD9BFqusW3+GggWYZ/rYncOfmgcDtP3ualNHCAg+Robxp2/6xfH1WwPHtGpPwv7mbA3qomtBw==, } hasBin: true peerDependencies: markdown-it-mathjax3: ^4 postcss: ^8 peerDependenciesMeta: markdown-it-mathjax3: optional: true postcss: optional: true vitest@2.1.9: resolution: { integrity: sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q==, } engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 '@vitest/browser': 2.1.9 '@vitest/ui': 2.1.9 happy-dom: '*' jsdom: '*' peerDependenciesMeta: '@edge-runtime/vm': optional: true '@types/node': optional: true '@vitest/browser': optional: true '@vitest/ui': optional: true happy-dom: optional: true jsdom: optional: true vue@3.5.13: resolution: { integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==, } peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true webidl-conversions@4.0.2: resolution: { integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==, } whatwg-url@7.1.0: resolution: { integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==, } which-boxed-primitive@1.1.1: resolution: { integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==, } engines: {node: '>= 0.4'} which-builtin-type@1.2.1: resolution: { integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==, } engines: {node: '>= 0.4'} which-collection@1.0.2: resolution: { integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==, } engines: {node: '>= 0.4'} which-typed-array@1.1.18: resolution: { integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==, } engines: {node: '>= 0.4'} which@2.0.2: resolution: { integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, } engines: {node: '>= 8'} hasBin: true why-is-node-running@2.3.0: resolution: { integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==, } engines: {node: '>=8'} hasBin: true word-wrap@1.2.5: resolution: { integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==, } engines: {node: '>=0.10.0'} wrap-ansi@7.0.0: resolution: { integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, } engines: {node: '>=10'} wrap-ansi@8.1.0: resolution: { integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==, } engines: {node: '>=12'} wrappy@1.0.2: resolution: { integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, } y18n@5.0.8: resolution: { integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, } engines: {node: '>=10'} yallist@4.0.0: resolution: { integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, } yaml@2.7.0: resolution: { integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==, } engines: {node: '>= 14'} hasBin: true yargs-parser@21.1.1: resolution: { integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, } engines: {node: '>=12'} yargs@17.7.2: resolution: { integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, } engines: {node: '>=12'} yocto-queue@0.1.0: resolution: { integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, } engines: {node: '>=10'} yocto-queue@1.1.1: resolution: { integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==, } engines: {node: '>=12.20'} zod-to-json-schema@3.24.3: resolution: { integrity: sha512-HIAfWdYIt1sssHfYZFCXp4rU1w2r8hVVXYIlmoa0r0gABLs5di3RCqPU5DDROogVz1pAdYBaz7HK5n9pSUNs3A==, } peerDependencies: zod: ^3.24.1 zod@3.24.2: resolution: { integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==, } zwitch@2.0.4: resolution: { integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==, } snapshots: '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.20.3)(algoliasearch@5.20.3)(search-insights@2.17.3)': dependencies: '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.20.3)(algoliasearch@5.20.3)(search-insights@2.17.3) '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.20.3)(algoliasearch@5.20.3) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.20.3)(algoliasearch@5.20.3)(search-insights@2.17.3)': dependencies: '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.20.3)(algoliasearch@5.20.3) search-insights: 2.17.3 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.20.3)(algoliasearch@5.20.3)': dependencies: '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.20.3)(algoliasearch@5.20.3) '@algolia/client-search': 5.20.3 algoliasearch: 5.20.3 '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.20.3)(algoliasearch@5.20.3)': dependencies: '@algolia/client-search': 5.20.3 algoliasearch: 5.20.3 '@algolia/client-abtesting@5.20.3': dependencies: '@algolia/client-common': 5.20.3 '@algolia/requester-browser-xhr': 5.20.3 '@algolia/requester-fetch': 5.20.3 '@algolia/requester-node-http': 5.20.3 '@algolia/client-analytics@5.20.3': dependencies: '@algolia/client-common': 5.20.3 '@algolia/requester-browser-xhr': 5.20.3 '@algolia/requester-fetch': 5.20.3 '@algolia/requester-node-http': 5.20.3 '@algolia/client-common@5.20.3': {} '@algolia/client-insights@5.20.3': dependencies: '@algolia/client-common': 5.20.3 '@algolia/requester-browser-xhr': 5.20.3 '@algolia/requester-fetch': 5.20.3 '@algolia/requester-node-http': 5.20.3 '@algolia/client-personalization@5.20.3': dependencies: '@algolia/client-common': 5.20.3 '@algolia/requester-browser-xhr': 5.20.3 '@algolia/requester-fetch': 5.20.3 '@algolia/requester-node-http': 5.20.3 '@algolia/client-query-suggestions@5.20.3': dependencies: '@algolia/client-common': 5.20.3 '@algolia/requester-browser-xhr': 5.20.3 '@algolia/requester-fetch': 5.20.3 '@algolia/requester-node-http': 5.20.3 '@algolia/client-search@5.20.3': dependencies: '@algolia/client-common': 5.20.3 '@algolia/requester-browser-xhr': 5.20.3 '@algolia/requester-fetch': 5.20.3 '@algolia/requester-node-http': 5.20.3 '@algolia/ingestion@1.20.3': dependencies: '@algolia/client-common': 5.20.3 '@algolia/requester-browser-xhr': 5.20.3 '@algolia/requester-fetch': 5.20.3 '@algolia/requester-node-http': 5.20.3 '@algolia/monitoring@1.20.3': dependencies: '@algolia/client-common': 5.20.3 '@algolia/requester-browser-xhr': 5.20.3 '@algolia/requester-fetch': 5.20.3 '@algolia/requester-node-http': 5.20.3 '@algolia/recommend@5.20.3': dependencies: '@algolia/client-common': 5.20.3 '@algolia/requester-browser-xhr': 5.20.3 '@algolia/requester-fetch': 5.20.3 '@algolia/requester-node-http': 5.20.3 '@algolia/requester-browser-xhr@5.20.3': dependencies: '@algolia/client-common': 5.20.3 '@algolia/requester-fetch@5.20.3': dependencies: '@algolia/client-common': 5.20.3 '@algolia/requester-node-http@5.20.3': dependencies: '@algolia/client-common': 5.20.3 '@alloc/quick-lru@5.2.0': {} '@babel/code-frame@7.26.2': dependencies: '@babel/helper-validator-identifier': 7.25.9 js-tokens: 4.0.0 picocolors: 1.1.1 '@babel/generator@7.26.9': dependencies: '@babel/parser': 7.26.9 '@babel/types': 7.26.9 '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.1.0 '@babel/helper-string-parser@7.25.9': {} '@babel/helper-validator-identifier@7.25.9': {} '@babel/parser@7.26.9': dependencies: '@babel/types': 7.26.9 '@babel/template@7.26.9': dependencies: '@babel/code-frame': 7.26.2 '@babel/parser': 7.26.9 '@babel/types': 7.26.9 '@babel/traverse@7.26.9': dependencies: '@babel/code-frame': 7.26.2 '@babel/generator': 7.26.9 '@babel/parser': 7.26.9 '@babel/template': 7.26.9 '@babel/types': 7.26.9 debug: 4.4.0 globals: 11.12.0 transitivePeerDependencies: - supports-color '@babel/types@7.26.9': dependencies: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 '@commitlint/cli@19.7.1(@types/node@20.17.19)(typescript@5.7.3)': dependencies: '@commitlint/format': 19.5.0 '@commitlint/lint': 19.7.1 '@commitlint/load': 19.6.1(@types/node@20.17.19)(typescript@5.7.3) '@commitlint/read': 19.5.0 '@commitlint/types': 19.5.0 tinyexec: 0.3.2 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' - typescript '@commitlint/config-conventional@19.7.1': dependencies: '@commitlint/types': 19.5.0 conventional-changelog-conventionalcommits: 7.0.2 '@commitlint/config-validator@19.5.0': dependencies: '@commitlint/types': 19.5.0 ajv: 8.17.1 '@commitlint/ensure@19.5.0': dependencies: '@commitlint/types': 19.5.0 lodash.camelcase: 4.3.0 lodash.kebabcase: 4.1.1 lodash.snakecase: 4.1.1 lodash.startcase: 4.4.0 lodash.upperfirst: 4.3.1 '@commitlint/execute-rule@19.5.0': {} '@commitlint/format@19.5.0': dependencies: '@commitlint/types': 19.5.0 chalk: 5.4.1 '@commitlint/is-ignored@19.7.1': dependencies: '@commitlint/types': 19.5.0 semver: 7.7.1 '@commitlint/lint@19.7.1': dependencies: '@commitlint/is-ignored': 19.7.1 '@commitlint/parse': 19.5.0 '@commitlint/rules': 19.6.0 '@commitlint/types': 19.5.0 '@commitlint/load@19.6.1(@types/node@20.17.19)(typescript@5.7.3)': dependencies: '@commitlint/config-validator': 19.5.0 '@commitlint/execute-rule': 19.5.0 '@commitlint/resolve-extends': 19.5.0 '@commitlint/types': 19.5.0 chalk: 5.4.1 cosmiconfig: 9.0.0(typescript@5.7.3) cosmiconfig-typescript-loader: 6.1.0(@types/node@20.17.19)(cosmiconfig@9.0.0(typescript@5.7.3))(typescript@5.7.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 transitivePeerDependencies: - '@types/node' - typescript '@commitlint/message@19.5.0': {} '@commitlint/parse@19.5.0': dependencies: '@commitlint/types': 19.5.0 conventional-changelog-angular: 7.0.0 conventional-commits-parser: 5.0.0 '@commitlint/read@19.5.0': dependencies: '@commitlint/top-level': 19.5.0 '@commitlint/types': 19.5.0 git-raw-commits: 4.0.0 minimist: 1.2.8 tinyexec: 0.3.2 '@commitlint/resolve-extends@19.5.0': dependencies: '@commitlint/config-validator': 19.5.0 '@commitlint/types': 19.5.0 global-directory: 4.0.1 import-meta-resolve: 4.1.0 lodash.mergewith: 4.6.2 resolve-from: 5.0.0 '@commitlint/rules@19.6.0': dependencies: '@commitlint/ensure': 19.5.0 '@commitlint/message': 19.5.0 '@commitlint/to-lines': 19.5.0 '@commitlint/types': 19.5.0 '@commitlint/to-lines@19.5.0': {} '@commitlint/top-level@19.5.0': dependencies: find-up: 7.0.0 '@commitlint/types@19.5.0': dependencies: '@types/conventional-commits-parser': 5.0.1 chalk: 5.4.1 '@docsearch/css@3.8.2': {} '@docsearch/js@3.8.2(@algolia/client-search@5.20.3)(search-insights@2.17.3)': dependencies: '@docsearch/react': 3.8.2(@algolia/client-search@5.20.3)(search-insights@2.17.3) preact: 10.26.2 transitivePeerDependencies: - '@algolia/client-search' - '@types/react' - react - react-dom - search-insights '@docsearch/react@3.8.2(@algolia/client-search@5.20.3)(search-insights@2.17.3)': dependencies: '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.20.3)(algoliasearch@5.20.3)(search-insights@2.17.3) '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.20.3)(algoliasearch@5.20.3) '@docsearch/css': 3.8.2 algoliasearch: 5.20.3 optionalDependencies: search-insights: 2.17.3 transitivePeerDependencies: - '@algolia/client-search' '@emnapi/runtime@1.3.1': dependencies: tslib: 2.8.1 optional: true '@esbuild/aix-ppc64@0.21.5': optional: true '@esbuild/aix-ppc64@0.25.0': optional: true '@esbuild/android-arm64@0.21.5': optional: true '@esbuild/android-arm64@0.25.0': optional: true '@esbuild/android-arm@0.21.5': optional: true '@esbuild/android-arm@0.25.0': optional: true '@esbuild/android-x64@0.21.5': optional: true '@esbuild/android-x64@0.25.0': optional: true '@esbuild/darwin-arm64@0.21.5': optional: true '@esbuild/darwin-arm64@0.25.0': optional: true '@esbuild/darwin-x64@0.21.5': optional: true '@esbuild/darwin-x64@0.25.0': optional: true '@esbuild/freebsd-arm64@0.21.5': optional: true '@esbuild/freebsd-arm64@0.25.0': optional: true '@esbuild/freebsd-x64@0.21.5': optional: true '@esbuild/freebsd-x64@0.25.0': optional: true '@esbuild/linux-arm64@0.21.5': optional: true '@esbuild/linux-arm64@0.25.0': optional: true '@esbuild/linux-arm@0.21.5': optional: true '@esbuild/linux-arm@0.25.0': optional: true '@esbuild/linux-ia32@0.21.5': optional: true '@esbuild/linux-ia32@0.25.0': optional: true '@esbuild/linux-loong64@0.21.5': optional: true '@esbuild/linux-loong64@0.25.0': optional: true '@esbuild/linux-mips64el@0.21.5': optional: true '@esbuild/linux-mips64el@0.25.0': optional: true '@esbuild/linux-ppc64@0.21.5': optional: true '@esbuild/linux-ppc64@0.25.0': optional: true '@esbuild/linux-riscv64@0.21.5': optional: true '@esbuild/linux-riscv64@0.25.0': optional: true '@esbuild/linux-s390x@0.21.5': optional: true '@esbuild/linux-s390x@0.25.0': optional: true '@esbuild/linux-x64@0.21.5': optional: true '@esbuild/linux-x64@0.25.0': optional: true '@esbuild/netbsd-arm64@0.25.0': optional: true '@esbuild/netbsd-x64@0.21.5': optional: true '@esbuild/netbsd-x64@0.25.0': optional: true '@esbuild/openbsd-arm64@0.25.0': optional: true '@esbuild/openbsd-x64@0.21.5': optional: true '@esbuild/openbsd-x64@0.25.0': optional: true '@esbuild/sunos-x64@0.21.5': optional: true '@esbuild/sunos-x64@0.25.0': optional: true '@esbuild/win32-arm64@0.21.5': optional: true '@esbuild/win32-arm64@0.25.0': optional: true '@esbuild/win32-ia32@0.21.5': optional: true '@esbuild/win32-ia32@0.25.0': optional: true '@esbuild/win32-x64@0.21.5': optional: true '@esbuild/win32-x64@0.25.0': optional: true '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': dependencies: eslint: 8.57.1 eslint-visitor-keys: 3.4.3 '@eslint-community/eslint-utils@4.4.1(eslint@9.21.0(jiti@2.4.2))': dependencies: eslint: 9.21.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} '@eslint/config-array@0.19.2': dependencies: '@eslint/object-schema': 2.1.6 debug: 4.4.0 minimatch: 3.1.2 transitivePeerDependencies: - supports-color '@eslint/core@0.12.0': dependencies: '@types/json-schema': 7.0.15 '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 debug: 4.4.0 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.2 import-fresh: 3.3.1 js-yaml: 4.1.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color '@eslint/eslintrc@3.3.0': dependencies: ajv: 6.12.6 debug: 4.4.0 espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.1 js-yaml: 4.1.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color '@eslint/js@8.57.1': {} '@eslint/js@9.21.0': {} '@eslint/object-schema@2.1.6': {} '@eslint/plugin-kit@0.2.7': dependencies: '@eslint/core': 0.12.0 levn: 0.4.1 '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.6': dependencies: '@humanfs/core': 0.19.1 '@humanwhocodes/retry': 0.3.1 '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 debug: 4.4.0 minimatch: 3.1.2 transitivePeerDependencies: - supports-color '@humanwhocodes/module-importer@1.0.1': {} '@humanwhocodes/object-schema@2.0.3': {} '@humanwhocodes/retry@0.3.1': {} '@humanwhocodes/retry@0.4.2': {} '@ianvs/prettier-plugin-sort-imports@4.4.1(@vue/compiler-sfc@3.5.13)(prettier@3.5.2)': dependencies: '@babel/generator': 7.26.9 '@babel/parser': 7.26.9 '@babel/traverse': 7.26.9 '@babel/types': 7.26.9 prettier: 3.5.2 semver: 7.7.1 optionalDependencies: '@vue/compiler-sfc': 3.5.13 transitivePeerDependencies: - supports-color '@iconify-json/simple-icons@1.2.26': dependencies: '@iconify/types': 2.0.0 '@iconify/types@2.0.0': {} '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-darwin-arm64': 1.0.4 optional: true '@img/sharp-darwin-x64@0.33.5': optionalDependencies: '@img/sharp-libvips-darwin-x64': 1.0.4 optional: true '@img/sharp-libvips-darwin-arm64@1.0.4': optional: true '@img/sharp-libvips-darwin-x64@1.0.4': optional: true '@img/sharp-libvips-linux-arm64@1.0.4': optional: true '@img/sharp-libvips-linux-arm@1.0.5': optional: true '@img/sharp-libvips-linux-s390x@1.0.4': optional: true '@img/sharp-libvips-linux-x64@1.0.4': optional: true '@img/sharp-libvips-linuxmusl-arm64@1.0.4': optional: true '@img/sharp-libvips-linuxmusl-x64@1.0.4': optional: true '@img/sharp-linux-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-arm64': 1.0.4 optional: true '@img/sharp-linux-arm@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-arm': 1.0.5 optional: true '@img/sharp-linux-s390x@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-s390x': 1.0.4 optional: true '@img/sharp-linux-x64@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-x64': 1.0.4 optional: true '@img/sharp-linuxmusl-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 optional: true '@img/sharp-linuxmusl-x64@0.33.5': optionalDependencies: '@img/sharp-libvips-linuxmusl-x64': 1.0.4 optional: true '@img/sharp-wasm32@0.33.5': dependencies: '@emnapi/runtime': 1.3.1 optional: true '@img/sharp-win32-ia32@0.33.5': optional: true '@img/sharp-win32-x64@0.33.5': optional: true '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 string-width-cjs: string-width@4.2.3 strip-ansi: 7.1.0 strip-ansi-cjs: strip-ansi@6.0.1 wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} '@jridgewell/sourcemap-codec@1.5.0': {} '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 '@mistralai/mistralai@1.5.0(zod@3.24.2)': dependencies: zod: 3.24.2 zod-to-json-schema: 3.24.3(zod@3.24.2) '@monaco-editor/loader@1.5.0': dependencies: state-local: 1.0.7 '@monaco-editor/react@4.7.0(monaco-editor@0.52.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@monaco-editor/loader': 1.5.0 monaco-editor: 0.52.2 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) '@next/env@15.1.7': {} '@next/eslint-plugin-next@15.1.7': dependencies: fast-glob: 3.3.1 '@next/swc-darwin-arm64@15.1.7': optional: true '@next/swc-darwin-x64@15.1.7': optional: true '@next/swc-linux-arm64-gnu@15.1.7': optional: true '@next/swc-linux-arm64-musl@15.1.7': optional: true '@next/swc-linux-x64-gnu@15.1.7': optional: true '@next/swc-linux-x64-musl@15.1.7': optional: true '@next/swc-win32-arm64-msvc@15.1.7': optional: true '@next/swc-win32-x64-msvc@15.1.7': optional: true '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 '@nodelib/fs.stat@2.0.5': {} '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.0 '@nolyfill/is-core-module@1.0.39': {} '@pkgjs/parseargs@0.11.0': optional: true '@radix-ui/primitive@1.1.1': {} '@radix-ui/react-compose-refs@1.1.1(@types/react@19.0.10)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.10 '@radix-ui/react-context@1.1.1(@types/react@19.0.10)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.10 '@radix-ui/react-dialog@1.1.6(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.1 '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.10)(react@19.0.0) '@radix-ui/react-context': 1.1.1(@types/react@19.0.10)(react@19.0.0) '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.10)(react@19.0.0) '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-id': 1.1.0(@types/react@19.0.10)(react@19.0.0) '@radix-ui/react-portal': 1.1.4(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-slot': 1.1.2(@types/react@19.0.10)(react@19.0.0) '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.10)(react@19.0.0) aria-hidden: 1.2.4 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) react-remove-scroll: 2.6.3(@types/react@19.0.10)(react@19.0.0) optionalDependencies: '@types/react': 19.0.10 '@types/react-dom': 19.0.4(@types/react@19.0.10) '@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.1 '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.10)(react@19.0.0) '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.10)(react@19.0.0) '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.0.10)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.10 '@types/react-dom': 19.0.4(@types/react@19.0.10) '@radix-ui/react-focus-guards@1.1.1(@types/react@19.0.10)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.10 '@radix-ui/react-focus-scope@1.1.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.10)(react@19.0.0) '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.10)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.10 '@types/react-dom': 19.0.4(@types/react@19.0.10) '@radix-ui/react-id@1.1.0(@types/react@19.0.10)(react@19.0.0)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.10)(react@19.0.0) react: 19.0.0 optionalDependencies: '@types/react': 19.0.10 '@radix-ui/react-portal@1.1.4(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.10)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.10 '@types/react-dom': 19.0.4(@types/react@19.0.10) '@radix-ui/react-presence@1.1.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.10)(react@19.0.0) '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.10)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.10 '@types/react-dom': 19.0.4(@types/react@19.0.10) '@radix-ui/react-primitive@2.0.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-slot': 1.1.2(@types/react@19.0.10)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.10 '@types/react-dom': 19.0.4(@types/react@19.0.10) '@radix-ui/react-slot@1.1.2(@types/react@19.0.10)(react@19.0.0)': dependencies: '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.10)(react@19.0.0) react: 19.0.0 optionalDependencies: '@types/react': 19.0.10 '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.0.10)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.10 '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.0.10)(react@19.0.0)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.10)(react@19.0.0) react: 19.0.0 optionalDependencies: '@types/react': 19.0.10 '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.0.10)(react@19.0.0)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.10)(react@19.0.0) react: 19.0.0 optionalDependencies: '@types/react': 19.0.10 '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.0.10)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.10 '@rollup/rollup-android-arm-eabi@4.34.8': optional: true '@rollup/rollup-android-arm64@4.34.8': optional: true '@rollup/rollup-darwin-arm64@4.34.8': optional: true '@rollup/rollup-darwin-x64@4.34.8': optional: true '@rollup/rollup-freebsd-arm64@4.34.8': optional: true '@rollup/rollup-freebsd-x64@4.34.8': optional: true '@rollup/rollup-linux-arm-gnueabihf@4.34.8': optional: true '@rollup/rollup-linux-arm-musleabihf@4.34.8': optional: true '@rollup/rollup-linux-arm64-gnu@4.34.8': optional: true '@rollup/rollup-linux-arm64-musl@4.34.8': optional: true '@rollup/rollup-linux-loongarch64-gnu@4.34.8': optional: true '@rollup/rollup-linux-powerpc64le-gnu@4.34.8': optional: true '@rollup/rollup-linux-riscv64-gnu@4.34.8': optional: true '@rollup/rollup-linux-s390x-gnu@4.34.8': optional: true '@rollup/rollup-linux-x64-gnu@4.34.8': optional: true '@rollup/rollup-linux-x64-musl@4.34.8': optional: true '@rollup/rollup-win32-arm64-msvc@4.34.8': optional: true '@rollup/rollup-win32-ia32-msvc@4.34.8': optional: true '@rollup/rollup-win32-x64-msvc@4.34.8': optional: true '@rtsao/scc@1.1.0': {} '@rushstack/eslint-patch@1.10.5': {} '@shikijs/core@2.5.0': dependencies: '@shikijs/engine-javascript': 2.5.0 '@shikijs/engine-oniguruma': 2.5.0 '@shikijs/types': 2.5.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 '@shikijs/engine-javascript@2.5.0': dependencies: '@shikijs/types': 2.5.0 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 3.1.1 '@shikijs/engine-oniguruma@2.5.0': dependencies: '@shikijs/types': 2.5.0 '@shikijs/vscode-textmate': 10.0.2 '@shikijs/langs@2.5.0': dependencies: '@shikijs/types': 2.5.0 '@shikijs/themes@2.5.0': dependencies: '@shikijs/types': 2.5.0 '@shikijs/transformers@2.5.0': dependencies: '@shikijs/core': 2.5.0 '@shikijs/types': 2.5.0 '@shikijs/types@2.5.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 '@shikijs/vscode-textmate@10.0.2': {} '@swc/counter@0.1.3': {} '@swc/helpers@0.5.15': dependencies: tslib: 2.8.1 '@types/conventional-commits-parser@5.0.1': dependencies: '@types/node': 20.17.19 '@types/estree@1.0.6': {} '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.3 '@types/json-schema@7.0.15': {} '@types/json5@0.0.29': {} '@types/linkify-it@5.0.0': {} '@types/markdown-it@14.1.2': dependencies: '@types/linkify-it': 5.0.0 '@types/mdurl': 2.0.0 '@types/mdast@4.0.4': dependencies: '@types/unist': 3.0.3 '@types/mdurl@2.0.0': {} '@types/node@20.17.19': dependencies: undici-types: 6.19.8 '@types/react-dom@19.0.4(@types/react@19.0.10)': dependencies: '@types/react': 19.0.10 '@types/react@19.0.10': dependencies: csstype: 3.1.3 '@types/unist@3.0.3': {} '@types/web-bluetooth@0.0.20': {} '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@8.25.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3)': dependencies: '@eslint-community/regexpp': 4.12.1 '@typescript-eslint/parser': 8.25.0(eslint@8.57.1)(typescript@5.7.3) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.7.3) '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.7.3) '@typescript-eslint/visitor-keys': 7.18.0 eslint: 8.57.1 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 ts-api-utils: 1.4.3(typescript@5.7.3) optionalDependencies: typescript: 5.7.3 transitivePeerDependencies: - supports-color '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@eslint-community/regexpp': 4.12.1 '@typescript-eslint/parser': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/type-utils': 7.18.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) '@typescript-eslint/utils': 7.18.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) '@typescript-eslint/visitor-keys': 7.18.0 eslint: 9.21.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 ts-api-utils: 1.4.3(typescript@5.7.3) optionalDependencies: typescript: 5.7.3 transitivePeerDependencies: - supports-color '@typescript-eslint/parser@8.25.0(eslint@8.57.1)(typescript@5.7.3)': dependencies: '@typescript-eslint/scope-manager': 8.25.0 '@typescript-eslint/types': 8.25.0 '@typescript-eslint/typescript-estree': 8.25.0(typescript@5.7.3) '@typescript-eslint/visitor-keys': 8.25.0 debug: 4.4.0 eslint: 8.57.1 typescript: 5.7.3 transitivePeerDependencies: - supports-color '@typescript-eslint/parser@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@typescript-eslint/scope-manager': 8.25.0 '@typescript-eslint/types': 8.25.0 '@typescript-eslint/typescript-estree': 8.25.0(typescript@5.7.3) '@typescript-eslint/visitor-keys': 8.25.0 debug: 4.4.0 eslint: 9.21.0(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: - supports-color '@typescript-eslint/scope-manager@7.18.0': dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 '@typescript-eslint/scope-manager@8.25.0': dependencies: '@typescript-eslint/types': 8.25.0 '@typescript-eslint/visitor-keys': 8.25.0 '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.7.3)': dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.3) '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.7.3) debug: 4.4.0 eslint: 8.57.1 ts-api-utils: 1.4.3(typescript@5.7.3) optionalDependencies: typescript: 5.7.3 transitivePeerDependencies: - supports-color '@typescript-eslint/type-utils@7.18.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.3) '@typescript-eslint/utils': 7.18.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) debug: 4.4.0 eslint: 9.21.0(jiti@2.4.2) ts-api-utils: 1.4.3(typescript@5.7.3) optionalDependencies: typescript: 5.7.3 transitivePeerDependencies: - supports-color '@typescript-eslint/types@7.18.0': {} '@typescript-eslint/types@8.25.0': {} '@typescript-eslint/typescript-estree@7.18.0(typescript@5.7.3)': dependencies: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 debug: 4.4.0 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.1 ts-api-utils: 1.4.3(typescript@5.7.3) optionalDependencies: typescript: 5.7.3 transitivePeerDependencies: - supports-color '@typescript-eslint/typescript-estree@8.25.0(typescript@5.7.3)': dependencies: '@typescript-eslint/types': 8.25.0 '@typescript-eslint/visitor-keys': 8.25.0 debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.1 ts-api-utils: 2.0.1(typescript@5.7.3) typescript: 5.7.3 transitivePeerDependencies: - supports-color '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.7.3)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.3) eslint: 8.57.1 transitivePeerDependencies: - supports-color - typescript '@typescript-eslint/utils@7.18.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2)) '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.3) eslint: 9.21.0(jiti@2.4.2) transitivePeerDependencies: - supports-color - typescript '@typescript-eslint/visitor-keys@7.18.0': dependencies: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 '@typescript-eslint/visitor-keys@8.25.0': dependencies: '@typescript-eslint/types': 8.25.0 eslint-visitor-keys: 4.2.0 '@ungap/structured-clone@1.3.0': {} '@vitejs/plugin-vue@5.2.1(vite@5.4.14(@types/node@20.17.19))(vue@3.5.13(typescript@5.7.3))': dependencies: vite: 5.4.14(@types/node@20.17.19) vue: 3.5.13(typescript@5.7.3) '@vitest/expect@2.1.9': dependencies: '@vitest/spy': 2.1.9 '@vitest/utils': 2.1.9 chai: 5.2.0 tinyrainbow: 1.2.0 '@vitest/mocker@2.1.9(vite@5.4.14(@types/node@20.17.19))': dependencies: '@vitest/spy': 2.1.9 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: vite: 5.4.14(@types/node@20.17.19) '@vitest/pretty-format@2.1.9': dependencies: tinyrainbow: 1.2.0 '@vitest/runner@2.1.9': dependencies: '@vitest/utils': 2.1.9 pathe: 1.1.2 '@vitest/snapshot@2.1.9': dependencies: '@vitest/pretty-format': 2.1.9 magic-string: 0.30.17 pathe: 1.1.2 '@vitest/spy@2.1.9': dependencies: tinyspy: 3.0.2 '@vitest/utils@2.1.9': dependencies: '@vitest/pretty-format': 2.1.9 loupe: 3.1.3 tinyrainbow: 1.2.0 '@vue/compiler-core@3.5.13': dependencies: '@babel/parser': 7.26.9 '@vue/shared': 3.5.13 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.1 '@vue/compiler-dom@3.5.13': dependencies: '@vue/compiler-core': 3.5.13 '@vue/shared': 3.5.13 '@vue/compiler-sfc@3.5.13': dependencies: '@babel/parser': 7.26.9 '@vue/compiler-core': 3.5.13 '@vue/compiler-dom': 3.5.13 '@vue/compiler-ssr': 3.5.13 '@vue/shared': 3.5.13 estree-walker: 2.0.2 magic-string: 0.30.17 postcss: 8.5.3 source-map-js: 1.2.1 '@vue/compiler-ssr@3.5.13': dependencies: '@vue/compiler-dom': 3.5.13 '@vue/shared': 3.5.13 '@vue/devtools-api@7.7.2': dependencies: '@vue/devtools-kit': 7.7.2 '@vue/devtools-kit@7.7.2': dependencies: '@vue/devtools-shared': 7.7.2 birpc: 0.2.19 hookable: 5.5.3 mitt: 3.0.1 perfect-debounce: 1.0.0 speakingurl: 14.0.1 superjson: 2.2.2 '@vue/devtools-shared@7.7.2': dependencies: rfdc: 1.4.1 '@vue/reactivity@3.5.13': dependencies: '@vue/shared': 3.5.13 '@vue/runtime-core@3.5.13': dependencies: '@vue/reactivity': 3.5.13 '@vue/shared': 3.5.13 '@vue/runtime-dom@3.5.13': dependencies: '@vue/reactivity': 3.5.13 '@vue/runtime-core': 3.5.13 '@vue/shared': 3.5.13 csstype: 3.1.3 '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.7.3))': dependencies: '@vue/compiler-ssr': 3.5.13 '@vue/shared': 3.5.13 vue: 3.5.13(typescript@5.7.3) '@vue/shared@3.5.13': {} '@vueuse/core@12.7.0(typescript@5.7.3)': dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 12.7.0 '@vueuse/shared': 12.7.0(typescript@5.7.3) vue: 3.5.13(typescript@5.7.3) transitivePeerDependencies: - typescript '@vueuse/integrations@12.7.0(focus-trap@7.6.4)(typescript@5.7.3)': dependencies: '@vueuse/core': 12.7.0(typescript@5.7.3) '@vueuse/shared': 12.7.0(typescript@5.7.3) vue: 3.5.13(typescript@5.7.3) optionalDependencies: focus-trap: 7.6.4 transitivePeerDependencies: - typescript '@vueuse/metadata@12.7.0': {} '@vueuse/shared@12.7.0(typescript@5.7.3)': dependencies: vue: 3.5.13(typescript@5.7.3) transitivePeerDependencies: - typescript JSONStream@1.3.5: dependencies: jsonparse: 1.3.1 through: 2.3.8 acorn-jsx@5.3.2(acorn@8.14.0): dependencies: acorn: 8.14.0 acorn@8.14.0: {} ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 fast-uri: 3.0.6 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 algoliasearch@5.20.3: dependencies: '@algolia/client-abtesting': 5.20.3 '@algolia/client-analytics': 5.20.3 '@algolia/client-common': 5.20.3 '@algolia/client-insights': 5.20.3 '@algolia/client-personalization': 5.20.3 '@algolia/client-query-suggestions': 5.20.3 '@algolia/client-search': 5.20.3 '@algolia/ingestion': 1.20.3 '@algolia/monitoring': 1.20.3 '@algolia/recommend': 5.20.3 '@algolia/requester-browser-xhr': 5.20.3 '@algolia/requester-fetch': 5.20.3 '@algolia/requester-node-http': 5.20.3 ansi-regex@5.0.1: {} ansi-regex@6.1.0: {} ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 ansi-styles@6.2.1: {} any-promise@1.3.0: {} anymatch@3.1.3: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 arg@5.0.2: {} argparse@2.0.1: {} args-tokenizer@0.3.0: {} aria-hidden@1.2.4: dependencies: tslib: 2.8.1 aria-query@5.3.2: {} array-buffer-byte-length@1.0.2: dependencies: call-bound: 1.0.3 is-array-buffer: 3.0.5 array-ify@1.0.0: {} array-includes@3.1.8: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.9 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 is-string: 1.1.1 array-union@2.1.0: {} array.prototype.findlast@1.2.5: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 array.prototype.findlastindex@1.2.5: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 array.prototype.flat@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.9 es-shim-unscopables: 1.1.0 array.prototype.flatmap@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.9 es-shim-unscopables: 1.1.0 array.prototype.tosorted@1.1.4: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 es-shim-unscopables: 1.1.0 arraybuffer.prototype.slice@1.0.4: dependencies: array-buffer-byte-length: 1.0.2 call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 assertion-error@2.0.1: {} ast-types-flow@0.0.8: {} async-function@1.0.0: {} available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.1.0 axe-core@4.10.2: {} axobject-query@4.1.0: {} balanced-match@1.0.2: {} binary-extensions@2.3.0: {} birpc@0.2.19: {} brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 brace-expansion@2.0.1: dependencies: balanced-match: 1.0.2 braces@3.0.3: dependencies: fill-range: 7.1.1 bumpp@10.0.3: dependencies: args-tokenizer: 0.3.0 c12: 2.0.4 cac: 6.7.14 escalade: 3.2.0 js-yaml: 4.1.0 jsonc-parser: 3.3.1 package-manager-detector: 0.2.9 prompts: 2.4.2 semver: 7.7.1 tinyexec: 0.3.2 tinyglobby: 0.2.12 transitivePeerDependencies: - magicast bundle-require@5.1.0(esbuild@0.25.0): dependencies: esbuild: 0.25.0 load-tsconfig: 0.2.5 busboy@1.6.0: dependencies: streamsearch: 1.1.0 c12@2.0.4: dependencies: chokidar: 4.0.3 confbox: 0.1.8 defu: 6.1.4 dotenv: 16.4.7 giget: 1.2.5 jiti: 2.4.2 mlly: 1.7.4 ohash: 2.0.5 pathe: 2.0.3 perfect-debounce: 1.0.0 pkg-types: 1.3.1 rc9: 2.1.2 cac@6.7.14: {} call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 call-bind@1.0.8: dependencies: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 get-intrinsic: 1.3.0 set-function-length: 1.2.2 call-bound@1.0.3: dependencies: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.3.0 callsites@3.1.0: {} camelcase-css@2.0.1: {} caniuse-lite@1.0.30001700: {} ccount@2.0.1: {} chai@5.2.0: dependencies: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 loupe: 3.1.3 pathval: 2.0.0 chalk@4.1.2: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 chalk@5.4.1: {} character-entities-html4@2.1.0: {} character-entities-legacy@3.0.0: {} check-error@2.1.1: {} chokidar@3.6.0: dependencies: anymatch: 3.1.3 braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 chokidar@4.0.3: dependencies: readdirp: 4.1.2 chownr@2.0.0: {} citty@0.1.6: dependencies: consola: 3.4.0 class-variance-authority@0.7.1: dependencies: clsx: 2.1.1 client-only@0.0.1: {} cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 clsx@2.1.1: {} color-convert@2.0.1: dependencies: color-name: 1.1.4 color-name@1.1.4: {} color-string@1.9.1: dependencies: color-name: 1.1.4 simple-swizzle: 0.2.2 optional: true color@4.2.3: dependencies: color-convert: 2.0.1 color-string: 1.9.1 optional: true comma-separated-tokens@2.0.3: {} commander@4.1.1: {} compare-func@2.0.0: dependencies: array-ify: 1.0.0 dot-prop: 5.3.0 concat-map@0.0.1: {} confbox@0.1.8: {} consola@3.4.0: {} conventional-changelog-angular@7.0.0: dependencies: compare-func: 2.0.0 conventional-changelog-conventionalcommits@7.0.2: dependencies: compare-func: 2.0.0 conventional-commits-parser@5.0.0: dependencies: JSONStream: 1.3.5 is-text-path: 2.0.0 meow: 12.1.1 split2: 4.2.0 copy-anything@3.0.5: dependencies: is-what: 4.1.16 cosmiconfig-typescript-loader@6.1.0(@types/node@20.17.19)(cosmiconfig@9.0.0(typescript@5.7.3))(typescript@5.7.3): dependencies: '@types/node': 20.17.19 cosmiconfig: 9.0.0(typescript@5.7.3) jiti: 2.4.2 typescript: 5.7.3 cosmiconfig@9.0.0(typescript@5.7.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: typescript: 5.7.3 cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 cssesc@3.0.0: {} csstype@3.1.3: {} damerau-levenshtein@1.0.8: {} dargs@8.1.0: {} data-view-buffer@1.0.2: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 is-data-view: 1.0.2 data-view-byte-length@1.0.2: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 is-data-view: 1.0.2 data-view-byte-offset@1.0.1: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 is-data-view: 1.0.2 debug@3.2.7: dependencies: ms: 2.1.3 debug@4.4.0: dependencies: ms: 2.1.3 deep-eql@5.0.2: {} deep-is@0.1.4: {} define-data-property@1.1.4: dependencies: es-define-property: 1.0.1 es-errors: 1.3.0 gopd: 1.2.0 define-properties@1.2.1: dependencies: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 object-keys: 1.1.1 defu@6.1.4: {} dequal@2.0.3: {} destr@2.0.3: {} detect-libc@2.0.3: optional: true detect-node-es@1.1.0: {} devlop@1.1.0: dependencies: dequal: 2.0.3 didyoumean@1.2.2: {} dir-glob@3.0.1: dependencies: path-type: 4.0.0 dlv@1.1.3: {} doctrine@2.1.0: dependencies: esutils: 2.0.3 doctrine@3.0.0: dependencies: esutils: 2.0.3 dot-prop@5.3.0: dependencies: is-obj: 2.0.0 dotenv@16.4.7: {} dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 es-errors: 1.3.0 gopd: 1.2.0 eastasianwidth@0.2.0: {} emoji-regex-xs@1.0.0: {} emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} enhanced-resolve@5.18.1: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 entities@4.5.0: {} env-paths@2.2.1: {} error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 es-abstract@1.23.9: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 available-typed-arrays: 1.0.7 call-bind: 1.0.8 call-bound: 1.0.3 data-view-buffer: 1.0.2 data-view-byte-length: 1.0.2 data-view-byte-offset: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.1.1 es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 function.prototype.name: 1.1.8 get-intrinsic: 1.3.0 get-proto: 1.0.1 get-symbol-description: 1.1.0 globalthis: 1.0.4 gopd: 1.2.0 has-property-descriptors: 1.0.2 has-proto: 1.2.0 has-symbols: 1.1.0 hasown: 2.0.2 internal-slot: 1.1.0 is-array-buffer: 3.0.5 is-callable: 1.2.7 is-data-view: 1.0.2 is-regex: 1.2.1 is-shared-array-buffer: 1.0.4 is-string: 1.1.1 is-typed-array: 1.1.15 is-weakref: 1.1.1 math-intrinsics: 1.1.0 object-inspect: 1.13.4 object-keys: 1.1.1 object.assign: 4.1.7 own-keys: 1.0.1 regexp.prototype.flags: 1.5.4 safe-array-concat: 1.1.3 safe-push-apply: 1.0.0 safe-regex-test: 1.1.0 set-proto: 1.0.0 string.prototype.trim: 1.2.10 string.prototype.trimend: 1.0.9 string.prototype.trimstart: 1.0.8 typed-array-buffer: 1.0.3 typed-array-byte-length: 1.0.3 typed-array-byte-offset: 1.0.4 typed-array-length: 1.0.7 unbox-primitive: 1.1.0 which-typed-array: 1.1.18 es-define-property@1.0.1: {} es-errors@1.3.0: {} es-iterator-helpers@1.2.1: dependencies: call-bind: 1.0.8 call-bound: 1.0.3 define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 es-set-tostringtag: 2.1.0 function-bind: 1.1.2 get-intrinsic: 1.3.0 globalthis: 1.0.4 gopd: 1.2.0 has-property-descriptors: 1.0.2 has-proto: 1.2.0 has-symbols: 1.1.0 internal-slot: 1.1.0 iterator.prototype: 1.1.5 safe-array-concat: 1.1.3 es-module-lexer@1.6.0: {} es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 es-set-tostringtag@2.1.0: dependencies: es-errors: 1.3.0 get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 hasown: 2.0.2 es-shim-unscopables@1.1.0: dependencies: hasown: 2.0.2 es-to-primitive@1.3.0: dependencies: is-callable: 1.2.7 is-date-object: 1.1.0 is-symbol: 1.1.1 esbuild@0.21.5: optionalDependencies: '@esbuild/aix-ppc64': 0.21.5 '@esbuild/android-arm': 0.21.5 '@esbuild/android-arm64': 0.21.5 '@esbuild/android-x64': 0.21.5 '@esbuild/darwin-arm64': 0.21.5 '@esbuild/darwin-x64': 0.21.5 '@esbuild/freebsd-arm64': 0.21.5 '@esbuild/freebsd-x64': 0.21.5 '@esbuild/linux-arm': 0.21.5 '@esbuild/linux-arm64': 0.21.5 '@esbuild/linux-ia32': 0.21.5 '@esbuild/linux-loong64': 0.21.5 '@esbuild/linux-mips64el': 0.21.5 '@esbuild/linux-ppc64': 0.21.5 '@esbuild/linux-riscv64': 0.21.5 '@esbuild/linux-s390x': 0.21.5 '@esbuild/linux-x64': 0.21.5 '@esbuild/netbsd-x64': 0.21.5 '@esbuild/openbsd-x64': 0.21.5 '@esbuild/sunos-x64': 0.21.5 '@esbuild/win32-arm64': 0.21.5 '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 esbuild@0.25.0: optionalDependencies: '@esbuild/aix-ppc64': 0.25.0 '@esbuild/android-arm': 0.25.0 '@esbuild/android-arm64': 0.25.0 '@esbuild/android-x64': 0.25.0 '@esbuild/darwin-arm64': 0.25.0 '@esbuild/darwin-x64': 0.25.0 '@esbuild/freebsd-arm64': 0.25.0 '@esbuild/freebsd-x64': 0.25.0 '@esbuild/linux-arm': 0.25.0 '@esbuild/linux-arm64': 0.25.0 '@esbuild/linux-ia32': 0.25.0 '@esbuild/linux-loong64': 0.25.0 '@esbuild/linux-mips64el': 0.25.0 '@esbuild/linux-ppc64': 0.25.0 '@esbuild/linux-riscv64': 0.25.0 '@esbuild/linux-s390x': 0.25.0 '@esbuild/linux-x64': 0.25.0 '@esbuild/netbsd-arm64': 0.25.0 '@esbuild/netbsd-x64': 0.25.0 '@esbuild/openbsd-arm64': 0.25.0 '@esbuild/openbsd-x64': 0.25.0 '@esbuild/sunos-x64': 0.25.0 '@esbuild/win32-arm64': 0.25.0 '@esbuild/win32-ia32': 0.25.0 '@esbuild/win32-x64': 0.25.0 escalade@3.2.0: {} escape-string-regexp@4.0.0: {} eslint-config-next@15.1.7(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3): dependencies: '@next/eslint-plugin-next': 15.1.7 '@rushstack/eslint-patch': 1.10.5 '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) '@typescript-eslint/parser': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) eslint: 9.21.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.8.3(eslint-plugin-import@2.31.0)(eslint@9.21.0(jiti@2.4.2)) eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-typescript@3.8.3)(eslint@9.21.0(jiti@2.4.2)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.21.0(jiti@2.4.2)) eslint-plugin-react: 7.37.4(eslint@9.21.0(jiti@2.4.2)) eslint-plugin-react-hooks: 5.1.0(eslint@9.21.0(jiti@2.4.2)) optionalDependencies: typescript: 5.7.3 transitivePeerDependencies: - eslint-import-resolver-webpack - eslint-plugin-import-x - supports-color eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 is-core-module: 2.16.1 resolve: 1.22.10 transitivePeerDependencies: - supports-color eslint-import-resolver-typescript@3.8.3(eslint-plugin-import@2.31.0)(eslint@9.21.0(jiti@2.4.2)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.0 enhanced-resolve: 5.18.1 eslint: 9.21.0(jiti@2.4.2) get-tsconfig: 4.10.0 is-bun-module: 1.3.0 stable-hash: 0.0.4 tinyglobby: 0.2.12 optionalDependencies: eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-typescript@3.8.3)(eslint@9.21.0(jiti@2.4.2)) transitivePeerDependencies: - supports-color eslint-module-utils@2.12.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.8.3(eslint-plugin-import@2.31.0)(eslint@9.21.0(jiti@2.4.2)))(eslint@9.21.0(jiti@2.4.2)): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) eslint: 9.21.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.8.3(eslint-plugin-import@2.31.0)(eslint@9.21.0(jiti@2.4.2)) transitivePeerDependencies: - supports-color eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-typescript@3.8.3)(eslint@9.21.0(jiti@2.4.2)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.3 array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 eslint: 9.21.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.8.3(eslint-plugin-import@2.31.0)(eslint@9.21.0(jiti@2.4.2)))(eslint@9.21.0(jiti@2.4.2)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 minimatch: 3.1.2 object.fromentries: 2.0.8 object.groupby: 1.0.3 object.values: 1.2.1 semver: 6.3.1 string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: '@typescript-eslint/parser': 8.25.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color eslint-plugin-jsx-a11y@6.10.2(eslint@9.21.0(jiti@2.4.2)): dependencies: aria-query: 5.3.2 array-includes: 3.1.8 array.prototype.flatmap: 1.3.3 ast-types-flow: 0.0.8 axe-core: 4.10.2 axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 eslint: 9.21.0(jiti@2.4.2) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 minimatch: 3.1.2 object.fromentries: 2.0.8 safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 eslint-plugin-react-hooks@5.1.0(eslint@9.21.0(jiti@2.4.2)): dependencies: eslint: 9.21.0(jiti@2.4.2) eslint-plugin-react@7.37.4(eslint@9.21.0(jiti@2.4.2)): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 eslint: 9.21.0(jiti@2.4.2) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 object.entries: 1.1.8 object.fromentries: 2.0.8 object.values: 1.2.1 prop-types: 15.8.1 resolve: 2.0.0-next.5 semver: 6.3.1 string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 eslint-scope@7.2.2: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 eslint-scope@8.2.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} eslint-visitor-keys@4.2.0: {} eslint@8.57.1: dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) '@eslint-community/regexpp': 4.12.1 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.57.1 '@humanwhocodes/config-array': 0.13.0 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 '@ungap/structured-clone': 1.3.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 debug: 4.4.0 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 globals: 13.24.0 graphemer: 1.4.0 ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 strip-ansi: 6.0.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color eslint@9.21.0(jiti@2.4.2): dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.19.2 '@eslint/core': 0.12.0 '@eslint/eslintrc': 3.3.0 '@eslint/js': 9.21.0 '@eslint/plugin-kit': 0.2.7 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.2 '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 debug: 4.4.0 escape-string-regexp: 4.0.0 eslint-scope: 8.2.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 json-stable-stringify-without-jsonify: 1.0.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: jiti: 2.4.2 transitivePeerDependencies: - supports-color espree@10.3.0: dependencies: acorn: 8.14.0 acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 4.2.0 espree@9.6.1: dependencies: acorn: 8.14.0 acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 3.4.3 esquery@1.6.0: dependencies: estraverse: 5.3.0 esrecurse@4.3.0: dependencies: estraverse: 5.3.0 estraverse@5.3.0: {} estree-walker@2.0.2: {} estree-walker@3.0.3: dependencies: '@types/estree': 1.0.6 esutils@2.0.3: {} expect-type@1.1.0: {} fast-deep-equal@3.1.3: {} fast-glob@3.3.1: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.8 fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.8 fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} fast-uri@3.0.6: {} fastq@1.19.0: dependencies: reusify: 1.1.0 fdir@6.4.3(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 find-up@5.0.0: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 find-up@7.0.0: dependencies: locate-path: 7.2.0 path-exists: 5.0.0 unicorn-magic: 0.1.0 flat-cache@3.2.0: dependencies: flatted: 3.3.3 keyv: 4.5.4 rimraf: 3.0.2 flat-cache@4.0.1: dependencies: flatted: 3.3.3 keyv: 4.5.4 flatted@3.3.3: {} focus-trap@7.6.4: dependencies: tabbable: 6.2.0 for-each@0.3.5: dependencies: is-callable: 1.2.7 foreground-child@3.3.1: dependencies: cross-spawn: 7.0.6 signal-exit: 4.1.0 fs-minipass@2.1.0: dependencies: minipass: 3.3.6 fs.realpath@1.0.0: {} fsevents@2.3.3: optional: true function-bind@1.1.2: {} function.prototype.name@1.1.8: dependencies: call-bind: 1.0.8 call-bound: 1.0.3 define-properties: 1.2.1 functions-have-names: 1.2.3 hasown: 2.0.2 is-callable: 1.2.7 functions-have-names@1.2.3: {} get-caller-file@2.0.5: {} get-intrinsic@1.3.0: dependencies: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.1.1 function-bind: 1.1.2 get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 hasown: 2.0.2 math-intrinsics: 1.1.0 get-nonce@1.0.1: {} get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 get-symbol-description@1.1.0: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 get-intrinsic: 1.3.0 get-tsconfig@4.10.0: dependencies: resolve-pkg-maps: 1.0.0 giget@1.2.5: dependencies: citty: 0.1.6 consola: 3.4.0 defu: 6.1.4 node-fetch-native: 1.6.6 nypm: 0.5.4 pathe: 2.0.3 tar: 6.2.1 git-raw-commits@4.0.0: dependencies: dargs: 8.1.0 meow: 12.1.1 split2: 4.2.0 glob-parent@5.1.2: dependencies: is-glob: 4.0.3 glob-parent@6.0.2: dependencies: is-glob: 4.0.3 glob@10.4.5: dependencies: foreground-child: 3.3.1 jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 package-json-from-dist: 1.0.1 path-scurry: 1.11.1 glob@7.2.3: dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 global-directory@4.0.1: dependencies: ini: 4.1.1 globals@11.12.0: {} globals@13.24.0: dependencies: type-fest: 0.20.2 globals@14.0.0: {} globalthis@1.0.4: dependencies: define-properties: 1.2.1 gopd: 1.2.0 globby@11.1.0: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.3 ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 gopd@1.2.0: {} graceful-fs@4.2.11: {} graphemer@1.4.0: {} has-bigints@1.1.0: {} has-flag@4.0.0: {} has-property-descriptors@1.0.2: dependencies: es-define-property: 1.0.1 has-proto@1.2.0: dependencies: dunder-proto: 1.0.1 has-symbols@1.1.0: {} has-tostringtag@1.0.2: dependencies: has-symbols: 1.1.0 hasown@2.0.2: dependencies: function-bind: 1.1.2 hast-util-to-html@9.0.5: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 ccount: 2.0.1 comma-separated-tokens: 2.0.3 hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 mdast-util-to-hast: 13.2.0 property-information: 7.0.0 space-separated-tokens: 2.0.2 stringify-entities: 4.0.4 zwitch: 2.0.4 hast-util-whitespace@3.0.0: dependencies: '@types/hast': 3.0.4 hookable@5.5.3: {} html-void-elements@3.0.0: {} husky@9.1.7: {} ignore@5.3.2: {} import-fresh@3.3.1: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 import-meta-resolve@4.1.0: {} imurmurhash@0.1.4: {} inflight@1.0.6: dependencies: once: 1.4.0 wrappy: 1.0.2 inherits@2.0.4: {} ini@4.1.1: {} internal-slot@1.1.0: dependencies: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.1.0 is-array-buffer@3.0.5: dependencies: call-bind: 1.0.8 call-bound: 1.0.3 get-intrinsic: 1.3.0 is-arrayish@0.2.1: {} is-arrayish@0.3.2: optional: true is-async-function@2.1.1: dependencies: async-function: 1.0.0 call-bound: 1.0.3 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 is-bigint@1.1.0: dependencies: has-bigints: 1.1.0 is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 is-boolean-object@1.2.2: dependencies: call-bound: 1.0.3 has-tostringtag: 1.0.2 is-bun-module@1.3.0: dependencies: semver: 7.7.1 is-callable@1.2.7: {} is-core-module@2.16.1: dependencies: hasown: 2.0.2 is-data-view@1.0.2: dependencies: call-bound: 1.0.3 get-intrinsic: 1.3.0 is-typed-array: 1.1.15 is-date-object@1.1.0: dependencies: call-bound: 1.0.3 has-tostringtag: 1.0.2 is-extglob@2.1.1: {} is-finalizationregistry@1.1.1: dependencies: call-bound: 1.0.3 is-fullwidth-code-point@3.0.0: {} is-generator-function@1.1.0: dependencies: call-bound: 1.0.3 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 is-glob@4.0.3: dependencies: is-extglob: 2.1.1 is-map@2.0.3: {} is-number-object@1.1.1: dependencies: call-bound: 1.0.3 has-tostringtag: 1.0.2 is-number@7.0.0: {} is-obj@2.0.0: {} is-path-inside@3.0.3: {} is-regex@1.2.1: dependencies: call-bound: 1.0.3 gopd: 1.2.0 has-tostringtag: 1.0.2 hasown: 2.0.2 is-set@2.0.3: {} is-shared-array-buffer@1.0.4: dependencies: call-bound: 1.0.3 is-string@1.1.1: dependencies: call-bound: 1.0.3 has-tostringtag: 1.0.2 is-symbol@1.1.1: dependencies: call-bound: 1.0.3 has-symbols: 1.1.0 safe-regex-test: 1.1.0 is-text-path@2.0.0: dependencies: text-extensions: 2.4.0 is-typed-array@1.1.15: dependencies: which-typed-array: 1.1.18 is-weakmap@2.0.2: {} is-weakref@1.1.1: dependencies: call-bound: 1.0.3 is-weakset@2.0.4: dependencies: call-bound: 1.0.3 get-intrinsic: 1.3.0 is-what@4.1.16: {} isarray@2.0.5: {} isexe@2.0.0: {} iterator.prototype@1.1.5: dependencies: define-data-property: 1.1.4 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 get-proto: 1.0.1 has-symbols: 1.1.0 set-function-name: 2.0.2 jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 jiti@1.21.7: {} jiti@2.4.2: {} joycon@3.1.1: {} js-tokens@4.0.0: {} js-yaml@4.1.0: dependencies: argparse: 2.0.1 jsesc@3.1.0: {} json-buffer@3.0.1: {} json-parse-even-better-errors@2.3.1: {} json-schema-traverse@0.4.1: {} json-schema-traverse@1.0.0: {} json-stable-stringify-without-jsonify@1.0.1: {} json5@1.0.2: dependencies: minimist: 1.2.8 jsonc-parser@3.3.1: {} jsonparse@1.3.1: {} jsx-ast-utils@3.3.5: dependencies: array-includes: 3.1.8 array.prototype.flat: 1.3.3 object.assign: 4.1.7 object.values: 1.2.1 keyv@4.5.4: dependencies: json-buffer: 3.0.1 kleur@3.0.3: {} language-subtag-registry@0.3.23: {} language-tags@1.0.9: dependencies: language-subtag-registry: 0.3.23 levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 lilconfig@3.1.3: {} lines-and-columns@1.2.4: {} load-tsconfig@0.2.5: {} locate-path@6.0.0: dependencies: p-locate: 5.0.0 locate-path@7.2.0: dependencies: p-locate: 6.0.0 lodash.camelcase@4.3.0: {} lodash.isplainobject@4.0.6: {} lodash.kebabcase@4.1.1: {} lodash.merge@4.6.2: {} lodash.mergewith@4.6.2: {} lodash.snakecase@4.1.1: {} lodash.sortby@4.7.0: {} lodash.startcase@4.4.0: {} lodash.uniq@4.5.0: {} lodash.upperfirst@4.3.1: {} loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 loupe@3.1.3: {} lru-cache@10.4.3: {} lucide-react@0.475.0(react@19.0.0): dependencies: react: 19.0.0 magic-string@0.30.17: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 mark.js@8.11.1: {} math-intrinsics@1.1.0: {} mdast-util-to-hast@13.2.0: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 '@ungap/structured-clone': 1.3.0 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 vfile: 6.0.3 meow@12.1.1: {} merge2@1.4.1: {} micromark-util-character@2.1.1: dependencies: micromark-util-symbol: 2.0.1 micromark-util-types: 2.0.1 micromark-util-encode@2.0.1: {} micromark-util-sanitize-uri@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-encode: 2.0.1 micromark-util-symbol: 2.0.1 micromark-util-symbol@2.0.1: {} micromark-util-types@2.0.1: {} micromatch@4.0.8: dependencies: braces: 3.0.3 picomatch: 2.3.1 minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 minimist@1.2.8: {} minipass@3.3.6: dependencies: yallist: 4.0.0 minipass@5.0.0: {} minipass@7.1.2: {} minisearch@7.1.2: {} minizlib@2.1.2: dependencies: minipass: 3.3.6 yallist: 4.0.0 mitt@3.0.1: {} mkdirp@1.0.4: {} mlly@1.7.4: dependencies: acorn: 8.14.0 pathe: 2.0.3 pkg-types: 1.3.1 ufo: 1.5.4 monaco-editor@0.52.2: {} ms@2.1.3: {} mz@2.7.0: dependencies: any-promise: 1.3.0 object-assign: 4.1.1 thenify-all: 1.6.0 nanoid@3.3.8: {} natural-compare@1.4.0: {} next@15.1.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: '@next/env': 15.1.7 '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 caniuse-lite: 1.0.30001700 postcss: 8.4.31 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) styled-jsx: 5.1.6(react@19.0.0) optionalDependencies: '@next/swc-darwin-arm64': 15.1.7 '@next/swc-darwin-x64': 15.1.7 '@next/swc-linux-arm64-gnu': 15.1.7 '@next/swc-linux-arm64-musl': 15.1.7 '@next/swc-linux-x64-gnu': 15.1.7 '@next/swc-linux-x64-musl': 15.1.7 '@next/swc-win32-arm64-msvc': 15.1.7 '@next/swc-win32-x64-msvc': 15.1.7 sharp: 0.33.5 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros node-fetch-native@1.6.6: {} normalize-path@3.0.0: {} nypm@0.5.4: dependencies: citty: 0.1.6 consola: 3.4.0 pathe: 2.0.3 pkg-types: 1.3.1 tinyexec: 0.3.2 ufo: 1.5.4 object-assign@4.1.1: {} object-hash@3.0.0: {} object-inspect@1.13.4: {} object-keys@1.1.1: {} object.assign@4.1.7: dependencies: call-bind: 1.0.8 call-bound: 1.0.3 define-properties: 1.2.1 es-object-atoms: 1.1.1 has-symbols: 1.1.0 object-keys: 1.1.1 object.entries@1.1.8: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-object-atoms: 1.1.1 object.fromentries@2.0.8: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.9 es-object-atoms: 1.1.1 object.groupby@1.0.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.9 object.values@1.2.1: dependencies: call-bind: 1.0.8 call-bound: 1.0.3 define-properties: 1.2.1 es-object-atoms: 1.1.1 ohash@2.0.5: {} once@1.4.0: dependencies: wrappy: 1.0.2 oniguruma-to-es@3.1.1: dependencies: emoji-regex-xs: 1.0.0 regex: 6.0.1 regex-recursion: 6.0.2 optionator@0.9.4: dependencies: deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 word-wrap: 1.2.5 own-keys@1.0.1: dependencies: get-intrinsic: 1.3.0 object-keys: 1.1.1 safe-push-apply: 1.0.0 p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 p-limit@4.0.0: dependencies: yocto-queue: 1.1.1 p-locate@5.0.0: dependencies: p-limit: 3.1.0 p-locate@6.0.0: dependencies: p-limit: 4.0.0 package-json-from-dist@1.0.1: {} package-manager-detector@0.2.9: {} parent-module@1.0.1: dependencies: callsites: 3.1.0 parse-json@5.2.0: dependencies: '@babel/code-frame': 7.26.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 path-exists@4.0.0: {} path-exists@5.0.0: {} path-is-absolute@1.0.1: {} path-key@3.1.1: {} path-parse@1.0.7: {} path-scurry@1.11.1: dependencies: lru-cache: 10.4.3 minipass: 7.1.2 path-type@4.0.0: {} pathe@1.1.2: {} pathe@2.0.3: {} pathval@2.0.0: {} perfect-debounce@1.0.0: {} picocolors@1.1.1: {} picomatch@2.3.1: {} picomatch@4.0.2: {} pify@2.3.0: {} pirates@4.0.6: {} pkg-types@1.3.1: dependencies: confbox: 0.1.8 mlly: 1.7.4 pathe: 2.0.3 possible-typed-array-names@1.1.0: {} postcss-import@15.1.0(postcss@8.5.3): dependencies: postcss: 8.5.3 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.10 postcss-js@4.0.1(postcss@8.5.3): dependencies: camelcase-css: 2.0.1 postcss: 8.5.3 postcss-load-config@4.0.2(postcss@8.5.3): dependencies: lilconfig: 3.1.3 yaml: 2.7.0 optionalDependencies: postcss: 8.5.3 postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.3)(yaml@2.7.0): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 2.4.2 postcss: 8.5.3 yaml: 2.7.0 postcss-nested@6.2.0(postcss@8.5.3): dependencies: postcss: 8.5.3 postcss-selector-parser: 6.1.2 postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 postcss-value-parser@4.2.0: {} postcss@8.4.31: dependencies: nanoid: 3.3.8 picocolors: 1.1.1 source-map-js: 1.2.1 postcss@8.5.3: dependencies: nanoid: 3.3.8 picocolors: 1.1.1 source-map-js: 1.2.1 preact@10.26.2: {} prelude-ls@1.2.1: {} prettier@3.5.2: {} prompts@2.4.2: dependencies: kleur: 3.0.3 sisteransi: 1.0.5 prop-types@15.8.1: dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 property-information@7.0.0: {} punycode@2.3.1: {} queue-microtask@1.2.3: {} rc9@2.1.2: dependencies: defu: 6.1.4 destr: 2.0.3 react-dom@19.0.0(react@19.0.0): dependencies: react: 19.0.0 scheduler: 0.25.0 react-is@16.13.1: {} react-remove-scroll-bar@2.3.8(@types/react@19.0.10)(react@19.0.0): dependencies: react: 19.0.0 react-style-singleton: 2.2.3(@types/react@19.0.10)(react@19.0.0) tslib: 2.8.1 optionalDependencies: '@types/react': 19.0.10 react-remove-scroll@2.6.3(@types/react@19.0.10)(react@19.0.0): dependencies: react: 19.0.0 react-remove-scroll-bar: 2.3.8(@types/react@19.0.10)(react@19.0.0) react-style-singleton: 2.2.3(@types/react@19.0.10)(react@19.0.0) tslib: 2.8.1 use-callback-ref: 1.3.3(@types/react@19.0.10)(react@19.0.0) use-sidecar: 1.1.3(@types/react@19.0.10)(react@19.0.0) optionalDependencies: '@types/react': 19.0.10 react-style-singleton@2.2.3(@types/react@19.0.10)(react@19.0.0): dependencies: get-nonce: 1.0.1 react: 19.0.0 tslib: 2.8.1 optionalDependencies: '@types/react': 19.0.10 react@19.0.0: {} read-cache@1.0.0: dependencies: pify: 2.3.0 readdirp@3.6.0: dependencies: picomatch: 2.3.1 readdirp@4.1.2: {} reflect.getprototypeof@1.0.10: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 get-proto: 1.0.1 which-builtin-type: 1.2.1 regex-recursion@6.0.2: dependencies: regex-utilities: 2.3.0 regex-utilities@2.3.0: {} regex@6.0.1: dependencies: regex-utilities: 2.3.0 regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-errors: 1.3.0 get-proto: 1.0.1 gopd: 1.2.0 set-function-name: 2.0.2 require-directory@2.1.1: {} require-from-string@2.0.2: {} resolve-from@4.0.0: {} resolve-from@5.0.0: {} resolve-pkg-maps@1.0.0: {} resolve@1.22.10: dependencies: is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 resolve@2.0.0-next.5: dependencies: is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 reusify@1.1.0: {} rfdc@1.4.1: {} rimraf@3.0.2: dependencies: glob: 7.2.3 rollup@4.34.8: dependencies: '@types/estree': 1.0.6 optionalDependencies: '@rollup/rollup-android-arm-eabi': 4.34.8 '@rollup/rollup-android-arm64': 4.34.8 '@rollup/rollup-darwin-arm64': 4.34.8 '@rollup/rollup-darwin-x64': 4.34.8 '@rollup/rollup-freebsd-arm64': 4.34.8 '@rollup/rollup-freebsd-x64': 4.34.8 '@rollup/rollup-linux-arm-gnueabihf': 4.34.8 '@rollup/rollup-linux-arm-musleabihf': 4.34.8 '@rollup/rollup-linux-arm64-gnu': 4.34.8 '@rollup/rollup-linux-arm64-musl': 4.34.8 '@rollup/rollup-linux-loongarch64-gnu': 4.34.8 '@rollup/rollup-linux-powerpc64le-gnu': 4.34.8 '@rollup/rollup-linux-riscv64-gnu': 4.34.8 '@rollup/rollup-linux-s390x-gnu': 4.34.8 '@rollup/rollup-linux-x64-gnu': 4.34.8 '@rollup/rollup-linux-x64-musl': 4.34.8 '@rollup/rollup-win32-arm64-msvc': 4.34.8 '@rollup/rollup-win32-ia32-msvc': 4.34.8 '@rollup/rollup-win32-x64-msvc': 4.34.8 fsevents: 2.3.3 run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 call-bound: 1.0.3 get-intrinsic: 1.3.0 has-symbols: 1.1.0 isarray: 2.0.5 safe-push-apply@1.0.0: dependencies: es-errors: 1.3.0 isarray: 2.0.5 safe-regex-test@1.1.0: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 is-regex: 1.2.1 scheduler@0.25.0: {} search-insights@2.17.3: {} semver@6.3.1: {} semver@7.7.1: {} set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 get-intrinsic: 1.3.0 gopd: 1.2.0 has-property-descriptors: 1.0.2 set-function-name@2.0.2: dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 set-proto@1.0.0: dependencies: dunder-proto: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.1.1 sharp@0.33.5: dependencies: color: 4.2.3 detect-libc: 2.0.3 semver: 7.7.1 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.5 '@img/sharp-darwin-x64': 0.33.5 '@img/sharp-libvips-darwin-arm64': 1.0.4 '@img/sharp-libvips-darwin-x64': 1.0.4 '@img/sharp-libvips-linux-arm': 1.0.5 '@img/sharp-libvips-linux-arm64': 1.0.4 '@img/sharp-libvips-linux-s390x': 1.0.4 '@img/sharp-libvips-linux-x64': 1.0.4 '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 '@img/sharp-libvips-linuxmusl-x64': 1.0.4 '@img/sharp-linux-arm': 0.33.5 '@img/sharp-linux-arm64': 0.33.5 '@img/sharp-linux-s390x': 0.33.5 '@img/sharp-linux-x64': 0.33.5 '@img/sharp-linuxmusl-arm64': 0.33.5 '@img/sharp-linuxmusl-x64': 0.33.5 '@img/sharp-wasm32': 0.33.5 '@img/sharp-win32-ia32': 0.33.5 '@img/sharp-win32-x64': 0.33.5 optional: true shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 shebang-regex@3.0.0: {} shiki@2.5.0: dependencies: '@shikijs/core': 2.5.0 '@shikijs/engine-javascript': 2.5.0 '@shikijs/engine-oniguruma': 2.5.0 '@shikijs/langs': 2.5.0 '@shikijs/themes': 2.5.0 '@shikijs/types': 2.5.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 side-channel-map@1.0.1: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 get-intrinsic: 1.3.0 object-inspect: 1.13.4 side-channel-weakmap@1.0.2: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 get-intrinsic: 1.3.0 object-inspect: 1.13.4 side-channel-map: 1.0.1 side-channel@1.1.0: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 side-channel-list: 1.0.0 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 siginfo@2.0.0: {} signal-exit@4.1.0: {} simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 optional: true sisteransi@1.0.5: {} slash@3.0.0: {} source-map-js@1.2.1: {} source-map@0.8.0-beta.0: dependencies: whatwg-url: 7.1.0 space-separated-tokens@2.0.2: {} speakingurl@14.0.1: {} split2@4.2.0: {} stable-hash@0.0.4: {} stackback@0.0.2: {} state-local@1.0.7: {} std-env@3.8.0: {} streamsearch@1.1.0: {} string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 string-width@5.1.2: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.1.0 string.prototype.includes@2.0.1: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.9 string.prototype.matchall@4.0.12: dependencies: call-bind: 1.0.8 call-bound: 1.0.3 define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 gopd: 1.2.0 has-symbols: 1.1.0 internal-slot: 1.1.0 regexp.prototype.flags: 1.5.4 set-function-name: 2.0.2 side-channel: 1.1.0 string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 es-abstract: 1.23.9 string.prototype.trim@1.2.10: dependencies: call-bind: 1.0.8 call-bound: 1.0.3 define-data-property: 1.1.4 define-properties: 1.2.1 es-abstract: 1.23.9 es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 string.prototype.trimend@1.0.9: dependencies: call-bind: 1.0.8 call-bound: 1.0.3 define-properties: 1.2.1 es-object-atoms: 1.1.1 string.prototype.trimstart@1.0.8: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-object-atoms: 1.1.1 stringify-entities@4.0.4: dependencies: character-entities-html4: 2.1.0 character-entities-legacy: 3.0.0 strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 strip-ansi@7.1.0: dependencies: ansi-regex: 6.1.0 strip-bom@3.0.0: {} strip-json-comments@3.1.1: {} styled-jsx@5.1.6(react@19.0.0): dependencies: client-only: 0.0.1 react: 19.0.0 sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.8 commander: 4.1.1 glob: 10.4.5 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.6 ts-interface-checker: 0.1.13 superjson@2.2.2: dependencies: copy-anything: 3.0.5 supports-color@7.2.0: dependencies: has-flag: 4.0.0 supports-preserve-symlinks-flag@1.0.0: {} tabbable@6.2.0: {} tailwind-merge@3.0.2: {} tailwindcss-animate@1.0.7(tailwindcss@3.4.17): dependencies: tailwindcss: 3.4.17 tailwindcss@3.4.17: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 chokidar: 3.6.0 didyoumean: 1.2.2 dlv: 1.1.3 fast-glob: 3.3.3 glob-parent: 6.0.2 is-glob: 4.0.3 jiti: 1.21.7 lilconfig: 3.1.3 micromatch: 4.0.8 normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.1 postcss: 8.5.3 postcss-import: 15.1.0(postcss@8.5.3) postcss-js: 4.0.1(postcss@8.5.3) postcss-load-config: 4.0.2(postcss@8.5.3) postcss-nested: 6.2.0(postcss@8.5.3) postcss-selector-parser: 6.1.2 resolve: 1.22.10 sucrase: 3.35.0 transitivePeerDependencies: - ts-node tapable@2.2.1: {} tar@6.2.1: dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 minipass: 5.0.0 minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 text-extensions@2.4.0: {} text-table@0.2.0: {} thenify-all@1.6.0: dependencies: thenify: 3.3.1 thenify@3.3.1: dependencies: any-promise: 1.3.0 through@2.3.8: {} tinybench@2.9.0: {} tinyexec@0.3.2: {} tinyglobby@0.2.12: dependencies: fdir: 6.4.3(picomatch@4.0.2) picomatch: 4.0.2 tinypool@1.0.2: {} tinyrainbow@1.2.0: {} tinyspy@3.0.2: {} to-regex-range@5.0.1: dependencies: is-number: 7.0.0 tr46@1.0.1: dependencies: punycode: 2.3.1 tree-kill@1.2.2: {} trim-lines@3.0.1: {} ts-api-utils@1.4.3(typescript@5.7.3): dependencies: typescript: 5.7.3 ts-api-utils@2.0.1(typescript@5.7.3): dependencies: typescript: 5.7.3 ts-interface-checker@0.1.13: {} tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 tslib@2.8.1: {} tsup@8.4.0(jiti@2.4.2)(postcss@8.5.3)(typescript@5.7.3)(yaml@2.7.0): dependencies: bundle-require: 5.1.0(esbuild@0.25.0) cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.0 debug: 4.4.0 esbuild: 0.25.0 joycon: 3.1.1 picocolors: 1.1.1 postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.3)(yaml@2.7.0) resolve-from: 5.0.0 rollup: 4.34.8 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 tinyglobby: 0.2.12 tree-kill: 1.2.2 optionalDependencies: postcss: 8.5.3 typescript: 5.7.3 transitivePeerDependencies: - jiti - supports-color - tsx - yaml type-check@0.4.0: dependencies: prelude-ls: 1.2.1 type-fest@0.20.2: {} typed-array-buffer@1.0.3: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 is-typed-array: 1.1.15 typed-array-byte-length@1.0.3: dependencies: call-bind: 1.0.8 for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 typed-array-byte-offset@1.0.4: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 reflect.getprototypeof: 1.0.10 typed-array-length@1.0.7: dependencies: call-bind: 1.0.8 for-each: 0.3.5 gopd: 1.2.0 is-typed-array: 1.1.15 possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 typescript@5.7.3: {} ufo@1.5.4: {} unbox-primitive@1.1.0: dependencies: call-bound: 1.0.3 has-bigints: 1.1.0 has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 undici-types@6.19.8: {} unicorn-magic@0.1.0: {} unist-util-is@6.0.0: dependencies: '@types/unist': 3.0.3 unist-util-position@5.0.0: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.3 unist-util-visit-parents@6.0.1: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.0 unist-util-visit@5.0.0: dependencies: '@types/unist': 3.0.3 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 uri-js@4.4.1: dependencies: punycode: 2.3.1 use-callback-ref@1.3.3(@types/react@19.0.10)(react@19.0.0): dependencies: react: 19.0.0 tslib: 2.8.1 optionalDependencies: '@types/react': 19.0.10 use-sidecar@1.1.3(@types/react@19.0.10)(react@19.0.0): dependencies: detect-node-es: 1.1.0 react: 19.0.0 tslib: 2.8.1 optionalDependencies: '@types/react': 19.0.10 util-deprecate@1.0.2: {} vfile-message@4.0.2: dependencies: '@types/unist': 3.0.3 unist-util-stringify-position: 4.0.0 vfile@6.0.3: dependencies: '@types/unist': 3.0.3 vfile-message: 4.0.2 vite-node@2.1.9(@types/node@20.17.19): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 1.1.2 vite: 5.4.14(@types/node@20.17.19) transitivePeerDependencies: - '@types/node' - less - lightningcss - sass - sass-embedded - stylus - sugarss - supports-color - terser vite@5.4.14(@types/node@20.17.19): dependencies: esbuild: 0.21.5 postcss: 8.5.3 rollup: 4.34.8 optionalDependencies: '@types/node': 20.17.19 fsevents: 2.3.3 vitepress@1.6.3(@algolia/client-search@5.20.3)(@types/node@20.17.19)(postcss@8.5.3)(search-insights@2.17.3)(typescript@5.7.3): dependencies: '@docsearch/css': 3.8.2 '@docsearch/js': 3.8.2(@algolia/client-search@5.20.3)(search-insights@2.17.3) '@iconify-json/simple-icons': 1.2.26 '@shikijs/core': 2.5.0 '@shikijs/transformers': 2.5.0 '@shikijs/types': 2.5.0 '@types/markdown-it': 14.1.2 '@vitejs/plugin-vue': 5.2.1(vite@5.4.14(@types/node@20.17.19))(vue@3.5.13(typescript@5.7.3)) '@vue/devtools-api': 7.7.2 '@vue/shared': 3.5.13 '@vueuse/core': 12.7.0(typescript@5.7.3) '@vueuse/integrations': 12.7.0(focus-trap@7.6.4)(typescript@5.7.3) focus-trap: 7.6.4 mark.js: 8.11.1 minisearch: 7.1.2 shiki: 2.5.0 vite: 5.4.14(@types/node@20.17.19) vue: 3.5.13(typescript@5.7.3) optionalDependencies: postcss: 8.5.3 transitivePeerDependencies: - '@algolia/client-search' - '@types/node' - '@types/react' - async-validator - axios - change-case - drauu - fuse.js - idb-keyval - jwt-decode - less - lightningcss - nprogress - qrcode - react - react-dom - sass - sass-embedded - search-insights - sortablejs - stylus - sugarss - terser - typescript - universal-cookie vitest@2.1.9(@types/node@20.17.19): dependencies: '@vitest/expect': 2.1.9 '@vitest/mocker': 2.1.9(vite@5.4.14(@types/node@20.17.19)) '@vitest/pretty-format': 2.1.9 '@vitest/runner': 2.1.9 '@vitest/snapshot': 2.1.9 '@vitest/spy': 2.1.9 '@vitest/utils': 2.1.9 chai: 5.2.0 debug: 4.4.0 expect-type: 1.1.0 magic-string: 0.30.17 pathe: 1.1.2 std-env: 3.8.0 tinybench: 2.9.0 tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 vite: 5.4.14(@types/node@20.17.19) vite-node: 2.1.9(@types/node@20.17.19) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.17.19 transitivePeerDependencies: - less - lightningcss - msw - sass - sass-embedded - stylus - sugarss - supports-color - terser vue@3.5.13(typescript@5.7.3): dependencies: '@vue/compiler-dom': 3.5.13 '@vue/compiler-sfc': 3.5.13 '@vue/runtime-dom': 3.5.13 '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.7.3)) '@vue/shared': 3.5.13 optionalDependencies: typescript: 5.7.3 webidl-conversions@4.0.2: {} whatwg-url@7.1.0: dependencies: lodash.sortby: 4.7.0 tr46: 1.0.1 webidl-conversions: 4.0.2 which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 is-boolean-object: 1.2.2 is-number-object: 1.1.1 is-string: 1.1.1 is-symbol: 1.1.1 which-builtin-type@1.2.1: dependencies: call-bound: 1.0.3 function.prototype.name: 1.1.8 has-tostringtag: 1.0.2 is-async-function: 2.1.1 is-date-object: 1.1.0 is-finalizationregistry: 1.1.1 is-generator-function: 1.1.0 is-regex: 1.2.1 is-weakref: 1.1.1 isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 which-typed-array: 1.1.18 which-collection@1.0.2: dependencies: is-map: 2.0.3 is-set: 2.0.3 is-weakmap: 2.0.2 is-weakset: 2.0.4 which-typed-array@1.1.18: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 call-bound: 1.0.3 for-each: 0.3.5 gopd: 1.2.0 has-tostringtag: 1.0.2 which@2.0.2: dependencies: isexe: 2.0.0 why-is-node-running@2.3.0: dependencies: siginfo: 2.0.0 stackback: 0.0.2 word-wrap@1.2.5: {} wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi@8.1.0: dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 wrappy@1.0.2: {} y18n@5.0.8: {} yallist@4.0.0: {} yaml@2.7.0: {} yargs-parser@21.1.1: {} yargs@17.7.2: dependencies: cliui: 8.0.1 escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 yocto-queue@0.1.0: {} yocto-queue@1.1.1: {} zod-to-json-schema@3.24.3(zod@3.24.2): dependencies: zod: 3.24.2 zod@3.24.2: {} zwitch@2.0.4: {} arshad-yaseen-monacopilot-6c00011/pnpm-workspace.yaml000066400000000000000000000000751477106012500226530ustar00rootroot00000000000000packages: - 'docs' - 'playground' - 'packages/*' arshad-yaseen-monacopilot-6c00011/tsconfig.json000066400000000000000000000011021477106012500215200ustar00rootroot00000000000000{ "compilerOptions": { "target": "es2020", "module": "esnext", "strict": true, "esModuleInterop": true, "moduleResolution": "node", "skipLibCheck": true, "noUnusedLocals": true, "noImplicitAny": true, "allowJs": true, "noEmit": true, "outDir": "dist", "resolveJsonModule": true, "types": ["vitest/globals"] }, "include": [ "packages/*/src", "packages/*/tests", "packages/*/tsup.config.ts" ], "exclude": ["node_modules", "dist"] }