From e861438dfc11dd4d2f9d0d94fdfe2ae4dacbf76b Mon Sep 17 00:00:00 2001 From: Peli de Halleux Date: Tue, 28 May 2024 08:21:06 -0700 Subject: [PATCH] available model completion in ide (#480) * using copletion to mine local models * handle no key * support mining ollama models * shuffling * collect all known models * get ollama list * aici list models * better completion * more help on model selectin --- .../docs/getting-started/configuration.mdx | 38 +- packages/cli/src/llamaindexretrieval.ts | 2 +- packages/cli/src/nodehost.ts | 6 +- packages/cli/src/test.ts | 2 +- packages/core/src/aici.ts | 36 +- packages/core/src/chat.ts | 17 +- packages/core/src/connection.ts | 9 +- packages/core/src/constants.ts | 28 + packages/core/src/host.ts | 5 +- packages/core/src/index.ts | 3 +- packages/core/src/models.ts | 16 +- packages/core/src/ollama.ts | 32 +- packages/core/src/openai.ts | 58 +- packages/core/src/testhost.ts | 4 +- packages/sample/genaisrc/completion.genai.js | 3 + packages/vscode/src/extension.ts | 2 + .../vscode/src/modelcompletionprovider.ts | 123 ++++ packages/vscode/src/vshost.ts | 6 +- yarn.lock | 673 +++++++++--------- 19 files changed, 697 insertions(+), 366 deletions(-) create mode 100644 packages/sample/genaisrc/completion.genai.js create mode 100644 packages/vscode/src/modelcompletionprovider.ts diff --git a/docs/src/content/docs/getting-started/configuration.mdx b/docs/src/content/docs/getting-started/configuration.mdx index e4382eae36..12c18b1181 100644 --- a/docs/src/content/docs/getting-started/configuration.mdx +++ b/docs/src/content/docs/getting-started/configuration.mdx @@ -22,6 +22,18 @@ You will need to configure the LLM connection and authorizion secrets. If you do not have access to an LLM, you can use a [local model](#local-models) for inferencing. ::: +## model selection + +The model used by the script is configured throught the `model` field in the `script` function. +The model name is formatted as `provider:model-name`, where `provider` is the LLM provider +and the `model-name` is provider specific. + +```js 'model: "openai:gpt-4"' +script({ + model: "openai:gpt-4", +}) +``` + ## `.env` file GenAIScript uses a `.env` file to store the secrets. @@ -77,6 +89,9 @@ the `.env` file will appear grayed out in Visual Studio Code. ## OpenAI +This provider, `openai`, is the default provider. +It uses the `OPENAI_API_...` environment variables. +
    @@ -94,11 +109,28 @@ OPENAI_API_KEY=sk_... ``` +
  1. + +Set the `model` field in `script` to the model you want to use. + +```js 'model: "openai:gpt-4"' +script({ + model: "openai:gpt-4", + ... +}) +``` + +
  2. +
-## Azure OpenAI ([reference](https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#chat-completions)) +## Azure OpenAI ([reference](https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#chat-completions)) + + + +The Azure OpenAI provider, `azure` uses the `AZURE_OPENAI_...` environment variables. @@ -131,7 +163,7 @@ AZURE_OPENAI_ENDPOINT=https://....openai.azure.com Update the `model` field in the `script` function to match the model deployment name in your Azure resource. -```js "model" +```js 'model: "azure:deployment-id"' script({ model: "azure:deployment-id", ... @@ -189,6 +221,8 @@ OPENAI_API_TYPE=localai Running tools locally may require additional GPU resources depending on the model you are using. +Use the `ollama` provider to access Ollama models. +
    diff --git a/packages/cli/src/llamaindexretrieval.ts b/packages/cli/src/llamaindexretrieval.ts index 3da796ff8d..913c21d065 100644 --- a/packages/cli/src/llamaindexretrieval.ts +++ b/packages/cli/src/llamaindexretrieval.ts @@ -144,7 +144,7 @@ export class LlamaIndexRetrievalService private async getModelToken(modelId: string) { const { provider } = parseModelIdentifier(modelId) - const conn = await this.host.getSecretToken(modelId) + const conn = await this.host.getLanguageModelConfiguration(modelId) if (provider === MODEL_PROVIDER_OLLAMA) conn.base = conn.base.replace(/\/v1$/i, "") return conn diff --git a/packages/cli/src/nodehost.ts b/packages/cli/src/nodehost.ts index d0ae0475d0..c0cc20d9d5 100644 --- a/packages/cli/src/nodehost.ts +++ b/packages/cli/src/nodehost.ts @@ -3,9 +3,9 @@ import prompts from "prompts" import { AskUserOptions, Host, + LanguageModelConfiguration, LogLevel, ModelService, - OAIToken, ReadFileOptions, RetrievalService, SHELL_EXEC_TIMEOUT, @@ -75,7 +75,9 @@ export class NodeHost implements Host { return process.env[name] } - async getSecretToken(modelId: string): Promise { + async getLanguageModelConfiguration( + modelId: string + ): Promise { return await parseTokenFromEnv(process.env, modelId) } diff --git a/packages/cli/src/test.ts b/packages/cli/src/test.ts index 947e754750..6fd8250f9d 100644 --- a/packages/cli/src/test.ts +++ b/packages/cli/src/test.ts @@ -45,7 +45,7 @@ function parseModelSpec(m: string): ModelOptions { } async function resolveTestProvider(script: PromptScript) { - const token = await host.getSecretToken(script.model) + const token = await host.getLanguageModelConfiguration(script.model) if (token && token.type === "azure") return token.base return undefined } diff --git a/packages/core/src/aici.ts b/packages/core/src/aici.ts index 7f737e7a66..c0151cdc6d 100644 --- a/packages/core/src/aici.ts +++ b/packages/core/src/aici.ts @@ -2,11 +2,12 @@ import { ChatCompletionHandler, ChatCompletionResponse, LanguageModel, + LanguageModelInfo, } from "./chat" import { PromptNode, visitNode } from "./promptdom" import { fromHex, logError, normalizeInt, utf8Decode } from "./util" import { AICI_CONTROLLER, TOOL_ID } from "./constants" -import { host } from "./host" +import { LanguageModelConfiguration, host } from "./host" import { NotSupportedError, RequestError } from "./error" import { ChatCompletionContentPartText } from "openai/resources" import { createFetch } from "./fetch" @@ -356,7 +357,40 @@ const AICIChatCompletion: ChatCompletionHandler = async ( } } +async function listModels(cfg: LanguageModelConfiguration) { + const { token, base, version } = cfg + const url = `${base}/${version || "v1"}/controllers/tags` + const fetch = await createFetch() + const res = await fetch(url, { + method: "GET", + headers: { + "api-key": token, + "user-agent": TOOL_ID, + accept: "application/json", + }, + }) + if (res.status !== 200) return [] + const body = (await res.json()) as { + tags: { + tag: string + module_id: string + updated_at: number + updated_by: string + wasm_size: number + compiled_size: number + }[] + } + return body.tags.map( + (tag) => + { + id: tag.tag, + details: `${tag.module_id}`, + } + ) +} + export const AICIModel = Object.freeze({ completer: AICIChatCompletion, id: "aici", + listModels, }) diff --git a/packages/core/src/chat.ts b/packages/core/src/chat.ts index 6485b08ccd..1a4d740e28 100644 --- a/packages/core/src/chat.ts +++ b/packages/core/src/chat.ts @@ -3,7 +3,7 @@ import { Cache } from "./cache" import { MarkdownTrace } from "./trace" import { PromptImage } from "./promptdom" import { AICIRequest } from "./aici" -import { OAIToken, host } from "./host" +import { LanguageModelConfiguration, host } from "./host" import { GenerationOptions } from "./promptcontext" import { JSON5TryParse, JSON5parse, isJSONObjectOrArray } from "./json5" import { CancellationToken, checkCancelled } from "./cancellation" @@ -80,7 +80,7 @@ export const ModelError = OpenAI.APIError export type ChatCompletionRequestCacheKey = CreateChatCompletionRequest & ModelOptions & - Omit + Omit export type ChatCompletationRequestCacheValue = { text: string @@ -175,14 +175,23 @@ function encodeMessagesForLlama(req: CreateChatCompletionRequest) { */ export type ChatCompletionHandler = ( req: CreateChatCompletionRequest, - connection: OAIToken, + connection: LanguageModelConfiguration, options: ChatCompletionsOptions, trace: MarkdownTrace ) => Promise +export interface LanguageModelInfo { + id: string + details?: string + url?: string +} + +export type ListModelsFunction = (cfg: LanguageModelConfiguration) => Promise + export interface LanguageModel { id: string completer: ChatCompletionHandler + listModels?: ListModelsFunction } async function runToolCalls( @@ -432,7 +441,7 @@ export function mergeGenerationOptions( } export async function executeChatSession( - connectionToken: OAIToken, + connectionToken: LanguageModelConfiguration, cancellationToken: CancellationToken, messages: ChatCompletionMessageParam[], functions: ChatFunctionCallback[], diff --git a/packages/core/src/connection.ts b/packages/core/src/connection.ts index 2b836e14a6..919006a797 100644 --- a/packages/core/src/connection.ts +++ b/packages/core/src/connection.ts @@ -17,14 +17,14 @@ import { OPENAI_API_BASE, } from "./constants" import { fileExists, readText, writeText } from "./fs" -import { APIType, OAIToken } from "./host" +import { APIType, LanguageModelConfiguration } from "./host" import { parseModelIdentifier } from "./models" import { trimTrailingSlash } from "./util" export async function parseTokenFromEnv( env: Record, modelId: string -): Promise { +): Promise { const { provider, model, tag } = parseModelIdentifier(modelId) if (provider === MODEL_PROVIDER_OPENAI) { @@ -61,6 +61,7 @@ export async function parseTokenFromEnv( if (base && !URL.canParse(base)) throw new Error("OPENAI_API_BASE must be a valid URL") return { + provider, base, type, token, @@ -116,6 +117,7 @@ export async function parseTokenFromEnv( if (!base.endsWith("/openai/deployments")) base += "/openai/deployments" return { + provider, base, token, type: "azure", @@ -148,6 +150,7 @@ export async function parseTokenFromEnv( if (base && !URL.canParse(base)) throw new Error(`${modelBase} must be a valid URL`) return { + provider, token, base, type, @@ -164,6 +167,7 @@ export async function parseTokenFromEnv( if (provider === MODEL_PROVIDER_OLLAMA) { return { + provider, base: OLLAMA_API_BASE, token: "ollama", type: "openai", @@ -173,6 +177,7 @@ export async function parseTokenFromEnv( if (provider === MODEL_PROVIDER_LITELLM) { return { + provider, base: LITELLM_API_BASE, token: "litellm", type: "openai", diff --git a/packages/core/src/constants.ts b/packages/core/src/constants.ts index 87f811cfdc..c5bafb2e00 100644 --- a/packages/core/src/constants.ts +++ b/packages/core/src/constants.ts @@ -101,6 +101,34 @@ export const DOCS_CONFIGURATION_LOCALAI_URL = export const DOCS_CONFIGURATION_AICI_URL = "https://microsoft.github.io/genaiscript/reference/scripts/aici/" +export const MODEL_PROVIDERS = Object.freeze([ + { + id: MODEL_PROVIDER_OPENAI, + detail: "OpenAI or compatible", + url: DOCS_CONFIGURATION_OPENAI_URL, + }, + { + id: MODEL_PROVIDER_AZURE, + detail: "Azure OpenAI deployment", + url: DOCS_CONFIGURATION_AZURE_OPENAI_URL, + }, + { + id: MODEL_PROVIDER_OLLAMA, + detail: "Ollama local model", + url: DOCS_CONFIGURATION_OLLAMA_URL, + }, + { + id: MODEL_PROVIDER_LITELLM, + detail: "LiteLLM proxy", + url: DOCS_CONFIGURATION_LITELLM_URL, + }, + { + id: MODEL_PROVIDER_AICI, + detail: "AICI controller", + url: DOCS_CONFIGURATION_AICI_URL, + }, +]) + export const NEW_SCRIPT_TEMPLATE = `// use def to emit LLM variables // https://microsoft.github.io/genaiscript/reference/scripts/context/#definition-def def("FILE", env.files) diff --git a/packages/core/src/host.ts b/packages/core/src/host.ts index d9b4849855..12fe401a67 100644 --- a/packages/core/src/host.ts +++ b/packages/core/src/host.ts @@ -25,7 +25,8 @@ export enum LogLevel { export type APIType = "openai" | "azure" | "localai" -export interface OAIToken { +export interface LanguageModelConfiguration { + provider: string base: string token: string curlHeaders?: Record @@ -137,7 +138,7 @@ export interface Host { // read a secret from the environment or a .env file readSecret(name: string): Promise - getSecretToken(modelId: string): Promise + getLanguageModelConfiguration(modelId: string): Promise log(level: LogLevel, msg: string): void diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 37f28e4f32..a40edd517a 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -62,4 +62,5 @@ export * from "./html" export * from "./parameters" export * from "./scripts" export * from "./math" -export * from "./fence" \ No newline at end of file +export * from "./fence" +export * from "./ollama" \ No newline at end of file diff --git a/packages/core/src/models.ts b/packages/core/src/models.ts index d5a893b843..0d163f370a 100644 --- a/packages/core/src/models.ts +++ b/packages/core/src/models.ts @@ -8,15 +8,15 @@ import { MODEL_PROVIDER_OPENAI, } from "./constants" import { errorMessage } from "./error" -import { OAIToken, host } from "./host" +import { LanguageModelConfiguration, host } from "./host" import { OllamaModel } from "./ollama" import { OpenAIModel } from "./openai" -import { GenerationOptions } from "./promptcontext" import { TraceOptions } from "./trace" -export function resolveLanguageModel( - options: GenerationOptions -): LanguageModel { +export function resolveLanguageModel(options: { + model?: string + languageModel?: LanguageModel +}): LanguageModel { if (options.languageModel) return options.languageModel const { provider } = parseModelIdentifier(options.model) if (provider === MODEL_PROVIDER_OLLAMA) return OllamaModel @@ -48,7 +48,7 @@ export function parseModelIdentifier(id: string) { export interface ModelConnectionInfo extends ModelConnectionOptions, - Partial { + Partial { error?: string model: string } @@ -56,13 +56,13 @@ export interface ModelConnectionInfo export async function resolveModelConnectionInfo( conn: ModelConnectionOptions, options?: { model?: string; token?: boolean } & TraceOptions -): Promise<{ info: ModelConnectionInfo; token?: OAIToken }> { +): Promise<{ info: ModelConnectionInfo; token?: LanguageModelConfiguration }> { const { trace } = options || {} const model = options.model ?? conn.model ?? DEFAULT_MODEL try { trace?.startDetails(`⚙️ configuration`) trace?.itemValue(`model`, model) - const secret = await host.getSecretToken(model) + const secret = await host.getLanguageModelConfiguration(model) if (!secret) { return { info: { ...conn, model } } } else { diff --git a/packages/core/src/ollama.ts b/packages/core/src/ollama.ts index 780ee1f4c3..ff5c50921e 100644 --- a/packages/core/src/ollama.ts +++ b/packages/core/src/ollama.ts @@ -1,9 +1,10 @@ -import { ChatCompletionHandler, LanguageModel } from "./chat" +import { ChatCompletionHandler, LanguageModel, LanguageModelInfo } from "./chat" import { MODEL_PROVIDER_OLLAMA } from "./constants" import { isRequestError } from "./error" import { createFetch } from "./fetch" import { parseModelIdentifier } from "./models" import { OpenAIChatCompletion } from "./openai" +import { LanguageModelConfiguration, host } from "./host" export const OllamaCompletion: ChatCompletionHandler = async ( req, @@ -43,7 +44,36 @@ export const OllamaCompletion: ChatCompletionHandler = async ( } } +async function listModels( + cfg: LanguageModelConfiguration +): Promise { + const fetch = await createFetch() + const res = await fetch(cfg.base.replace("/v1", "/api/tags"), { + method: "GET", + }) + if (res.status !== 200) return [] + const { models } = (await res.json()) as { + models: { + name: string + size: number + details: { + parameter_size: string + family: string + } + }[] + } + return models.map( + (m) => + { + id: m.name, + details: `${m.name}, ${m.details.parameter_size}`, + url: `https://ollama.com/library/${m.name}`, + } + ) +} + export const OllamaModel = Object.freeze({ completer: OllamaCompletion, id: MODEL_PROVIDER_OLLAMA, + listModels, }) diff --git a/packages/core/src/openai.ts b/packages/core/src/openai.ts index 569174226e..d7bae63d1b 100644 --- a/packages/core/src/openai.ts +++ b/packages/core/src/openai.ts @@ -1,5 +1,5 @@ import { logError, logVerbose, normalizeInt, trimTrailingSlash } from "./util" -import { host } from "./host" +import { LanguageModelConfiguration, host } from "./host" import { AZURE_OPENAI_API_VERSION, MAX_CACHED_TEMPERATURE, @@ -15,6 +15,7 @@ import { ChatCompletionResponse, ChatCompletionToolCall, LanguageModel, + LanguageModelInfo, getChatCompletionCache, } from "./chat" import { RequestError, errorMessage } from "./error" @@ -22,6 +23,19 @@ import { createFetch } from "./fetch" import { parseModelIdentifier } from "./models" import { JSON5TryParse } from "./json5" +function getConfigHeaders(cfg: LanguageModelConfiguration) { + return { + // openai + authorization: + cfg.token && (cfg.type === "openai" || cfg.type === "localai") + ? `Bearer ${cfg.token}` + : undefined, + // azure + "api-key": cfg.token && cfg.type === "azure" ? cfg.token : undefined, + "user-agent": TOOL_ID, + } +} + export const OpenAIChatCompletion: ChatCompletionHandler = async ( req, cfg, @@ -124,16 +138,7 @@ ${Object.entries(cfg.curlHeaders || {}) try { r = await fetchRetry(url, { headers: { - // openai - authorization: - cfg.token && - (cfg.type === "openai" || cfg.type === "localai") - ? `Bearer ${cfg.token}` - : undefined, - // azure - "api-key": - cfg.token && cfg.type === "azure" ? cfg.token : undefined, - "user-agent": TOOL_ID, + ...getConfigHeaders(cfg), "content-type": "application/json", ...(headers || {}), }, @@ -259,7 +264,38 @@ ${Object.entries(cfg.curlHeaders || {}) } } +async function listModels( + cfg: LanguageModelConfiguration +): Promise { + const fetch = await createFetch() + const res = await fetch(cfg.base + "/models", { + method: "GET", + headers: { + ...getConfigHeaders(cfg), + Accept: "application/json", + }, + }) + if (res.status !== 200) return [] + const { data } = (await res.json()) as { + object: "list" + data: { + id: string + object: "model" + created: number + owned_by: string + }[] + } + return data.map( + (m) => + { + id: m.id, + details: `${m.id}, ${m.owned_by}`, + } + ) +} + export const OpenAIModel = Object.freeze({ completer: OpenAIChatCompletion, id: MODEL_PROVIDER_OPENAI, + listModels, }) diff --git a/packages/core/src/testhost.ts b/packages/core/src/testhost.ts index 361e8b8775..103c0fab8f 100644 --- a/packages/core/src/testhost.ts +++ b/packages/core/src/testhost.ts @@ -5,7 +5,7 @@ import { AskUserOptions, LogLevel, ModelService, - OAIToken, + LanguageModelConfiguration, ParseService, ReadFileOptions, RetrievalService, @@ -47,7 +47,7 @@ export class TestHost implements Host { readSecret(name: string): Promise { throw new Error("Method not implemented.") } - getSecretToken(modelId: string): Promise { + getLanguageModelConfiguration(modelId: string): Promise { throw new Error("Method not implemented.") } log(level: LogLevel, msg: string): void { diff --git a/packages/sample/genaisrc/completion.genai.js b/packages/sample/genaisrc/completion.genai.js new file mode 100644 index 0000000000..7c9f26c155 --- /dev/null +++ b/packages/sample/genaisrc/completion.genai.js @@ -0,0 +1,3 @@ +script({ + model:"ollama:phi3:latest" +}) \ No newline at end of file diff --git a/packages/vscode/src/extension.ts b/packages/vscode/src/extension.ts index 834ba97b47..207db3c853 100644 --- a/packages/vscode/src/extension.ts +++ b/packages/vscode/src/extension.ts @@ -10,6 +10,7 @@ import { activatePromptCommands, commandButtons } from "./promptcommands" import { activateOpenAIRequestTreeDataProvider } from "./openairequesttree" import { activateAIRequestTreeDataProvider } from "./airequesttree" import { activateTestController } from "./testcontroller" +import { activateModelCompletionProvider } from "./modelcompletionprovider" export async function activate(context: ExtensionContext) { const state = new ExtensionState(context) @@ -20,6 +21,7 @@ export async function activate(context: ExtensionContext) { activateAIRequestTreeDataProvider(state) activateOpenAIRequestTreeDataProvider(state) activateStatusBar(state) + activateModelCompletionProvider(state) // activateChatParticipant(state) context.subscriptions.push( diff --git a/packages/vscode/src/modelcompletionprovider.ts b/packages/vscode/src/modelcompletionprovider.ts new file mode 100644 index 0000000000..a5ca5f378b --- /dev/null +++ b/packages/vscode/src/modelcompletionprovider.ts @@ -0,0 +1,123 @@ +import * as vscode from "vscode" // Import the 'vscode' module + +import { ExtensionState } from "./state" +import { + GENAI_JS_GLOB, + LanguageModelInfo, + MODEL_PROVIDERS, + logError, + logVerbose, + resolveLanguageModel, +} from "genaiscript-core" + +export async function activateModelCompletionProvider(state: ExtensionState) { + const { context } = state + const { subscriptions } = context + + const providerCompletionProvider: vscode.CompletionItemProvider = + { + provideCompletionItems: async (document, position, token) => { + const range = new vscode.Range( + position.line, + Math.max(0, position.character - 30), + position.line, + position.character + ) + const lastChars = document.getText(range) + if ( + !/\s[`'"]?model[`'"]?\s{0,10}:\s{0,10}[`'"]$/i.test( + lastChars + ) + ) + return [] + + return MODEL_PROVIDERS.map(({ id, detail, url }) => { + const completionItem = new vscode.CompletionItem(id + ":") + completionItem.kind = vscode.CompletionItemKind.Constant + completionItem.insertText = id + completionItem.detail = detail + if (url) + completionItem.documentation = + new vscode.MarkdownString(`[Docs](${url})`) + completionItem.commitCharacters = [":", "."] + return completionItem + }) + }, + } + + const modelCompletionProvider: vscode.CompletionItemProvider = + { + provideCompletionItems: async (document, position, token) => { + const range = new vscode.Range( + position.line, + Math.max(0, position.character - 40), + position.line, + position.character + ) + const lastChars = document.getText(range) + const m = + /\s[`'"]?model[`'"]?\s{0,10}:\s{0,10}[`'"](?[a-z0-9_\-]+):$/i.exec( + lastChars + ) + if (!m) return [] + + const provider = m.groups.provider + const modelid = provider + ":*" + const lm = resolveLanguageModel({ model: modelid }) + if (!lm.listModels) return [] + try { + const cfg = + await state.host.getLanguageModelConfiguration(modelid) + if (token.isCancellationRequested || !cfg) return [] + console.log(`resolving models for ${provider}`) + + let models: LanguageModelInfo[] + try { + models = await lm.listModels(cfg) + } catch (e) { + logVerbose(e) + models = [] + } + if (token.isCancellationRequested) return [] + return models.map((model) => { + const completionItem = new vscode.CompletionItem( + model.id + ) + completionItem.kind = vscode.CompletionItemKind.Constant + completionItem.detail = model.details + if (model.url) + completionItem.documentation = + new vscode.MarkdownString( + `[${model.url}](${model.url})` + ) + return completionItem + }) + } catch (e) { + logError(e) + return [] + } + }, + } + + // ollama:... + subscriptions.push( + vscode.languages.registerCompletionItemProvider( + { + scheme: "file", + pattern: GENAI_JS_GLOB, + }, + providerCompletionProvider, + '"', + "'", + "`" + ), + vscode.languages.registerCompletionItemProvider( + { + scheme: "file", + pattern: GENAI_JS_GLOB, + }, + modelCompletionProvider, + ":" + ) + ) +} diff --git a/packages/vscode/src/vshost.ts b/packages/vscode/src/vshost.ts index 367348acaf..d0de57ac19 100644 --- a/packages/vscode/src/vshost.ts +++ b/packages/vscode/src/vshost.ts @@ -3,7 +3,7 @@ import { dotEnvTryParse, Host, LogLevel, - OAIToken, + LanguageModelConfiguration, ReadFileOptions, createFileSystem, parseTokenFromEnv, @@ -205,14 +205,14 @@ export class VSCodeHost extends EventTarget implements Host { } } - async getSecretToken(modelId: string): Promise { + async getLanguageModelConfiguration(modelId: string): Promise { const dotenv = await readFileText(this.projectUri, ".env") const env = dotEnvTryParse(dotenv) ?? {} const tok = await parseTokenFromEnv(env, modelId) return tok } - async setSecretToken(tok: OAIToken): Promise { + async setSecretToken(tok: LanguageModelConfiguration): Promise { this.dispatchEvent(new Event(CHANGE)) } diff --git a/yarn.lock b/yarn.lock index f21aab0245..1a66a8e813 100644 --- a/yarn.lock +++ b/yarn.lock @@ -180,9 +180,9 @@ zod "^3.23.8" "@astrojs/starlight@^0.23.1": - version "0.23.1" - resolved "https://registry.yarnpkg.com/@astrojs/starlight/-/starlight-0.23.1.tgz#bb80f7d0d417192f826026e9aa3e5838ca6809f7" - integrity sha512-BMVRpM4suTq4K2plzcISs/t5W3Xw2fHGWhSmF7lg90nps595yHp3j4gFpeukRrynwEhoNu0Bds1zgOBebC3Egg== + version "0.23.2" + resolved "https://registry.yarnpkg.com/@astrojs/starlight/-/starlight-0.23.2.tgz#6518efa649c29a4cd095cbf199672a52f7e9d768" + integrity sha512-j8odYR744qCilip9s0UXNzDQ66uu1klD24zRI5Aqzxoj01eVnAsEgDPC8rU/gDTvydKWhF5diBRC1QVDN5JIYw== dependencies: "@astrojs/mdx" "^3.0.0" "@astrojs/sitemap" "^3.0.5" @@ -771,230 +771,230 @@ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537" integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g== -"@esbuild/aix-ppc64@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.3.tgz#78d3e6dcd19c1cb91f3940143e86dad1094aee81" - integrity sha512-yTgnwQpFVYfvvo4SvRFB0SwrW8YjOxEoT7wfMT7Ol5v7v5LDNvSGo67aExmxOb87nQNeWPVvaGBNfQ7BXcrZ9w== +"@esbuild/aix-ppc64@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.4.tgz#f83eb142df3ca7b49531c1ed680b81e484316508" + integrity sha512-Zrm+B33R4LWPLjDEVnEqt2+SLTATlru1q/xYKVn8oVTbiRBGmK2VIMoIYGJDGyftnGaC788IuzGFAlb7IQ0Y8A== "@esbuild/android-arm64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9" integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg== -"@esbuild/android-arm64@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.3.tgz#5eea56c21d61734942e050840d881eb7bedc3993" - integrity sha512-c+ty9necz3zB1Y+d/N+mC6KVVkGUUOcm4ZmT5i/Fk5arOaY3i6CA3P5wo/7+XzV8cb4GrI/Zjp8NuOQ9Lfsosw== +"@esbuild/android-arm64@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.4.tgz#dd328039daccd6033b2d1e536c054914bfc92287" + integrity sha512-fYFnz+ObClJ3dNiITySBUx+oNalYUT18/AryMxfovLkYWbutXsct3Wz2ZWAcGGppp+RVVX5FiXeLYGi97umisA== "@esbuild/android-arm@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995" integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w== -"@esbuild/android-arm@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.3.tgz#7fda92e3231043c071ea6aa76c92accea86439fd" - integrity sha512-bviJOLMgurLJtF1/mAoJLxDZDL6oU5/ztMHnJQRejbJrSc9FFu0QoUoFhvi6qSKJEw9y5oGyvr9fuDtzJ30rNQ== +"@esbuild/android-arm@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.4.tgz#76767a989720a97b206ea14c52af6e4589e48b0d" + integrity sha512-E7H/yTd8kGQfY4z9t3nRPk/hrhaCajfA3YSQSBrst8B+3uTcgsi8N+ZWYCaeIDsiVs6m65JPCaQN/DxBRclF3A== "@esbuild/android-x64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98" integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg== -"@esbuild/android-x64@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.3.tgz#625d139bde81b81f54ff493b1381ca0f540200f3" - integrity sha512-JReHfYCRK3FVX4Ra+y5EBH1b9e16TV2OxrPAvzMsGeES0X2Ndm9ImQRI4Ket757vhc5XBOuGperw63upesclRw== +"@esbuild/android-x64@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.4.tgz#14a8ae3c35702d882086efb5a8f8d7b0038d8d35" + integrity sha512-mDqmlge3hFbEPbCWxp4fM6hqq7aZfLEHZAKGP9viq9wMUBVQx202aDIfc3l+d2cKhUJM741VrCXEzRFhPDKH3Q== "@esbuild/darwin-arm64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb" integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== -"@esbuild/darwin-arm64@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.3.tgz#fa25f38a43ff4c469589d1dc93448d534d7f313b" - integrity sha512-U3fuQ0xNiAkXOmQ6w5dKpEvXQRSpHOnbw7gEfHCRXPeTKW9sBzVck6C5Yneb8LfJm0l6le4NQfkNPnWMSlTFUQ== +"@esbuild/darwin-arm64@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.4.tgz#7e735046005e4c12e9139e0bdd1fa6a754430d57" + integrity sha512-72eaIrDZDSiWqpmCzVaBD58c8ea8cw/U0fq/PPOTqE3c53D0xVMRt2ooIABZ6/wj99Y+h4ksT/+I+srCDLU9TA== "@esbuild/darwin-x64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0" integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA== -"@esbuild/darwin-x64@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.3.tgz#2e450b8214f179a56b4559b2f107060e2b792c7e" - integrity sha512-3m1CEB7F07s19wmaMNI2KANLcnaqryJxO1fXHUV5j1rWn+wMxdUYoPyO2TnAbfRZdi7ADRwJClmOwgT13qlP3Q== +"@esbuild/darwin-x64@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.4.tgz#db623553547a5fe3502a63aa88306e9023178482" + integrity sha512-uBsuwRMehGmw1JC7Vecu/upOjTsMhgahmDkWhGLWxIgUn2x/Y4tIwUZngsmVb6XyPSTXJYS4YiASKPcm9Zitag== "@esbuild/freebsd-arm64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911" integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw== -"@esbuild/freebsd-arm64@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.3.tgz#f6b29e07bce25c545f6f7bb031d3be6a6ea1dc50" - integrity sha512-fsNAAl5pU6wmKHq91cHWQT0Fz0vtyE1JauMzKotrwqIKAswwP5cpHUCxZNSTuA/JlqtScq20/5KZ+TxQdovU/g== +"@esbuild/freebsd-arm64@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.4.tgz#91cbad647c079bf932086fbd4749d7f563df67b8" + integrity sha512-8JfuSC6YMSAEIZIWNL3GtdUT5NhUA/CMUCpZdDRolUXNAXEE/Vbpe6qlGLpfThtY5NwXq8Hi4nJy4YfPh+TwAg== "@esbuild/freebsd-x64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c" integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw== -"@esbuild/freebsd-x64@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.3.tgz#1a5da2bf89f8d67102820d893d271a270ae55751" - integrity sha512-tci+UJ4zP5EGF4rp8XlZIdq1q1a/1h9XuronfxTMCNBslpCtmk97Q/5qqy1Mu4zIc0yswN/yP/BLX+NTUC1bXA== +"@esbuild/freebsd-x64@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.4.tgz#723299b9859ccbe5532fecbadba3ac33019ba8e8" + integrity sha512-8d9y9eQhxv4ef7JmXny7591P/PYsDFc4+STaxC1GBv0tMyCdyWfXu2jBuqRsyhY8uL2HU8uPyscgE2KxCY9imQ== "@esbuild/linux-arm64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5" integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A== -"@esbuild/linux-arm64@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.3.tgz#355f6624c1ac6f5f68841a327ac90b98c679626c" - integrity sha512-vvG6R5g5ieB4eCJBQevyDMb31LMHthLpXTc2IGkFnPWS/GzIFDnaYFp558O+XybTmYrVjxnryru7QRleJvmZ6Q== +"@esbuild/linux-arm64@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.4.tgz#531743f861e1ef6e50b874d6c784cda37aa5e685" + integrity sha512-/GLD2orjNU50v9PcxNpYZi+y8dJ7e7/LhQukN3S4jNDXCKkyyiyAz9zDw3siZ7Eh1tRcnCHAo/WcqKMzmi4eMQ== "@esbuild/linux-arm@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c" integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg== -"@esbuild/linux-arm@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.3.tgz#872a476ca18a962a98700024c447a79279db1d45" - integrity sha512-f6kz2QpSuyHHg01cDawj0vkyMwuIvN62UAguQfnNVzbge2uWLhA7TCXOn83DT0ZvyJmBI943MItgTovUob36SQ== +"@esbuild/linux-arm@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.4.tgz#1144b5654764960dd97d90ddf0893a9afc63ad91" + integrity sha512-2rqFFefpYmpMs+FWjkzSgXg5vViocqpq5a1PSRgT0AvSgxoXmGF17qfGAzKedg6wAwyM7UltrKVo9kxaJLMF/g== "@esbuild/linux-ia32@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa" integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig== -"@esbuild/linux-ia32@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.3.tgz#da713eb80ff6c011ed01aa4deebb5fc758906046" - integrity sha512-HjCWhH7K96Na+66TacDLJmOI9R8iDWDDiqe17C7znGvvE4sW1ECt9ly0AJ3dJH62jHyVqW9xpxZEU1jKdt+29A== +"@esbuild/linux-ia32@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.4.tgz#c81b6f2ed3308d3b75ccefb5ac63bc4cf3a9d2e9" + integrity sha512-pNftBl7m/tFG3t2m/tSjuYeWIffzwAZT9m08+9DPLizxVOsUl8DdFzn9HvJrTQwe3wvJnwTdl92AonY36w/25g== "@esbuild/linux-loong64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5" integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ== -"@esbuild/linux-loong64@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.3.tgz#a7c5dc9e961009018d23ec53a43baa8c03c5a1d5" - integrity sha512-BGpimEccmHBZRcAhdlRIxMp7x9PyJxUtj7apL2IuoG9VxvU/l/v1z015nFs7Si7tXUwEsvjc1rOJdZCn4QTU+Q== +"@esbuild/linux-loong64@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.4.tgz#87b6af7cd0f2551653955fc2dc465b7f4464af0a" + integrity sha512-cSD2gzCK5LuVX+hszzXQzlWya6c7hilO71L9h4KHwqI4qeqZ57bAtkgcC2YioXjsbfAv4lPn3qe3b00Zt+jIfQ== "@esbuild/linux-mips64el@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa" integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA== -"@esbuild/linux-mips64el@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.3.tgz#b97543f3d8655365729f3702ed07f6e41be5e48e" - integrity sha512-5rMOWkp7FQGtAH3QJddP4w3s47iT20hwftqdm7b+loe95o8JU8ro3qZbhgMRy0VuFU0DizymF1pBKkn3YHWtsw== +"@esbuild/linux-mips64el@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.4.tgz#fec73cd39490a0c45d052bef03e011a0ad366c06" + integrity sha512-qtzAd3BJh7UdbiXCrg6npWLYU0YpufsV9XlufKhMhYMJGJCdfX/G6+PNd0+v877X1JG5VmjBLUiFB0o8EUSicA== "@esbuild/linux-ppc64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20" integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg== -"@esbuild/linux-ppc64@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.3.tgz#23b9064d5bc0bf28a115a2f9cf69f3b01cdfe01c" - integrity sha512-h0zj1ldel89V5sjPLo5H1SyMzp4VrgN1tPkN29TmjvO1/r0MuMRwJxL8QY05SmfsZRs6TF0c/IDH3u7XYYmbAg== +"@esbuild/linux-ppc64@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.4.tgz#ea3b5e13b0fc8666bd4c6f7ea58bd1830f3e6e78" + integrity sha512-yB8AYzOTaL0D5+2a4xEy7OVvbcypvDR05MsB/VVPVA7nL4hc5w5Dyd/ddnayStDgJE59fAgNEOdLhBxjfx5+dg== "@esbuild/linux-riscv64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300" integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg== -"@esbuild/linux-riscv64@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.3.tgz#4f2536327f6d444c0573bd35bbd3a67897dbd5da" - integrity sha512-dkAKcTsTJ+CRX6bnO17qDJbLoW37npd5gSNtSzjYQr0svghLJYGYB0NF1SNcU1vDcjXLYS5pO4qOW4YbFama4A== +"@esbuild/linux-riscv64@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.4.tgz#80d406f653fc6b193edaeb55ac88d4ac22c8f155" + integrity sha512-Y5AgOuVzPjQdgU59ramLoqSSiXddu7F3F+LI5hYy/d1UHN7K5oLzYBDZe23QmQJ9PIVUXwOdKJ/jZahPdxzm9w== "@esbuild/linux-s390x@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685" integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ== -"@esbuild/linux-s390x@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.3.tgz#05e6f3a12a0dcd60672f25e8789a83cd3affa487" - integrity sha512-vnD1YUkovEdnZWEuMmy2X2JmzsHQqPpZElXx6dxENcIwTu+Cu5ERax6+Ke1QsE814Zf3c6rxCfwQdCTQ7tPuXA== +"@esbuild/linux-s390x@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.4.tgz#9cbd26854b5b12cf22fb54c96cd1adffaf6ace6f" + integrity sha512-Iqc/l/FFwtt8FoTK9riYv9zQNms7B8u+vAI/rxKuN10HgQIXaPzKZc479lZ0x6+vKVQbu55GdpYpeNWzjOhgbA== "@esbuild/linux-x64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz#86eca35203afc0d9de0694c64ec0ab0a378f6fff" integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw== -"@esbuild/linux-x64@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.3.tgz#994d347e7f530c33628e35e48ccde8f299adbcb6" - integrity sha512-IOXOIm9WaK7plL2gMhsWJd+l2bfrhfilv0uPTptoRoSb2p09RghhQQp9YY6ZJhk/kqmeRt6siRdMSLLwzuT0KQ== +"@esbuild/linux-x64@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.4.tgz#44dfe1c5cad855362c830c604dba97fbb16fc114" + integrity sha512-Td9jv782UMAFsuLZINfUpoF5mZIbAj+jv1YVtE58rFtfvoKRiKSkRGQfHTgKamLVT/fO7203bHa3wU122V/Bdg== "@esbuild/netbsd-x64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6" integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ== -"@esbuild/netbsd-x64@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.3.tgz#309d8c323632e9c70ee92cf5414fa65b5eb7e00e" - integrity sha512-uTgCwsvQ5+vCQnqM//EfDSuomo2LhdWhFPS8VL8xKf+PKTCrcT/2kPPoWMTs22aB63MLdGMJiE3f1PHvCDmUOw== +"@esbuild/netbsd-x64@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.4.tgz#89b97d823e1cc4bf8c4e5dc8f76c8d6ceb1c87f3" + integrity sha512-Awn38oSXxsPMQxaV0Ipb7W/gxZtk5Tx3+W+rAPdZkyEhQ6968r9NvtkjhnhbEgWXYbgV+JEONJ6PcdBS+nlcpA== "@esbuild/openbsd-x64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf" integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ== -"@esbuild/openbsd-x64@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.3.tgz#28820f9431fe00f2b04aac57511754213ff060eb" - integrity sha512-vNAkR17Ub2MgEud2Wag/OE4HTSI6zlb291UYzHez/psiKarp0J8PKGDnAhMBcHFoOHMXHfExzmjMojJNbAStrQ== +"@esbuild/openbsd-x64@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.4.tgz#080715bb4981c326364320d7b56835608e2bd98d" + integrity sha512-IsUmQeCY0aU374R82fxIPu6vkOybWIMc3hVGZ3ChRwL9hA1TwY+tS0lgFWV5+F1+1ssuvvXt3HFqe8roCip8Hg== "@esbuild/sunos-x64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f" integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w== -"@esbuild/sunos-x64@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.3.tgz#a1f7f98b85bd221fe0f545d01abc0e6123ae60dc" - integrity sha512-W8H9jlGiSBomkgmouaRoTXo49j4w4Kfbl6I1bIdO/vT0+0u4f20ko3ELzV3hPI6XV6JNBVX+8BC+ajHkvffIJA== +"@esbuild/sunos-x64@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.4.tgz#8d838a8ac80e211536490108b72fb0091a811626" + integrity sha512-hsKhgZ4teLUaDA6FG/QIu2q0rI6I36tZVfM4DBZv3BG0mkMIdEnMbhc4xwLvLJSS22uWmaVkFkqWgIS0gPIm+A== "@esbuild/win32-arm64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90" integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ== -"@esbuild/win32-arm64@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.3.tgz#c6c3c0b1a1dfc6327ef4db6aa4fb6efd9df531f7" - integrity sha512-EjEomwyLSCg8Ag3LDILIqYCZAq/y3diJ04PnqGRgq8/4O3VNlXyMd54j/saShaN4h5o5mivOjAzmU6C3X4v0xw== +"@esbuild/win32-arm64@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.4.tgz#94afb4c2ac89b0f09791606d6d93fdab322f81c8" + integrity sha512-UUfMgMoXPoA/bvGUNfUBFLCh0gt9dxZYIx9W4rfJr7+hKe5jxxHmfOK8YSH4qsHLLN4Ck8JZ+v7Q5fIm1huErg== "@esbuild/win32-ia32@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23" integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ== -"@esbuild/win32-ia32@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.3.tgz#471b8d2cad1bd6479eee5acf04bba2c0e4d37e24" - integrity sha512-WGiE/GgbsEwR33++5rzjiYsKyHywE8QSZPF7Rfx9EBfK3Qn3xyR6IjyCr5Uk38Kg8fG4/2phN7sXp4NPWd3fcw== +"@esbuild/win32-ia32@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.4.tgz#822085cd52f2f1dd90eabb59346ffa779c0bab83" + integrity sha512-yIxbspZb5kGCAHWm8dexALQ9en1IYDfErzjSEq1KzXFniHv019VT3mNtTK7t8qdy4TwT6QYHI9sEZabONHg+aw== "@esbuild/win32-x64@0.20.2": version "0.20.2" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc" integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ== -"@esbuild/win32-x64@0.21.3": - version "0.21.3" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.3.tgz#899c03576c4c28c83228f0e64dfa10edae99c9a2" - integrity sha512-xRxC0jaJWDLYvcUvjQmHCJSfMrgmUuvsoXgDeU/wTorQ1ngDdUBuFtgY3W1Pc5sprGAvZBtWdJX7RPg/iZZUqA== +"@esbuild/win32-x64@0.21.4": + version "0.21.4" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.4.tgz#11ef0398f9abee161193461910a507ef0d4c0c32" + integrity sha512-sywLRD3UK/qRJt0oBwdpYLBibk7KiRfbswmWRDabuncQYSlf8aLEEUor/oP6KRz8KEG+HoiVLBhPRD5JWjS8Sg== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" @@ -1118,7 +1118,7 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.0.tgz#6d86b8cb322660f03d3f0aa94b99bdd8e172d570" integrity sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew== -"@iconify-json/carbon@^1.1.33": +"@iconify-json/carbon@^1.1.34": version "1.1.34" resolved "https://registry.yarnpkg.com/@iconify-json/carbon/-/carbon-1.1.34.tgz#81b31d3f9dc59748640d40c19ba8e7c73b8814e3" integrity sha512-azvhc5HP+CilSrzSEfP4MezsG5n4tj+vIJLADhqCbFM1BOAmyDe/K1lTL9GLDluybsCvSqb15+6AIRb1jtKhpQ== @@ -1792,53 +1792,53 @@ resolved "https://registry.yarnpkg.com/@sevinf/maybe/-/maybe-0.5.0.tgz#e59fcea028df615fe87d708bb30e1f338e46bb44" integrity sha512-ARhyoYDnY1LES3vYI0fiG6e9esWfTNcXcO6+MPJJXcnyMV3bim4lnFt45VXouV7y82F4x3YH8nOQ6VztuvUiWg== -"@shikijs/core@1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.6.0.tgz#ec8c199715859c7bbd2717c26526edc93e18d1c7" - integrity sha512-NIEAi5U5R7BLkbW1pG/ZKu3eb1lzc3/+jD0lFsuxMT7zjaf9bbNwdNyMr7zh/Zl8EXQtQ+MYBAt5G+JLu+5DlA== +"@shikijs/core@1.6.1": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.6.1.tgz#4b4becfd26754334652a0b474f02705868dcb28c" + integrity sha512-CqYyepN4SnBopaoXYwng4NO8riB5ask/LTCkhOFq+GNGtr2X+aKeD767eYdqYukeixEUvv4bXdyTYVaogj7KBw== -"@shikijs/markdown-it@^1.5.2": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@shikijs/markdown-it/-/markdown-it-1.6.0.tgz#920e2c8caf1f22be2dd8d1f9ce69572a82d0fc08" - integrity sha512-FZBOyjgtRb3SgV5MSRdpS8h0fHkhVH7MlCJSVatA4RAYgFwjxuUtH22lGHnnn353cCQvx2Z/9t2qIV9bXXfcsQ== +"@shikijs/markdown-it@^1.6.0": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@shikijs/markdown-it/-/markdown-it-1.6.1.tgz#3780b45f42acbd5c0aa6ee93adc51c58d966b2d9" + integrity sha512-l6yCxrL18vNGtChXonuq2SxFeqYna6qwIXDncb/fH1RASFZjLroEblV/lsONvuDudRyhKJu8MC3ErLIpcT9BLw== dependencies: - "@shikijs/transformers" "1.6.0" + "@shikijs/transformers" "1.6.1" markdown-it "^14.1.0" - shiki "1.6.0" + shiki "1.6.1" -"@shikijs/monaco@^1.5.2": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@shikijs/monaco/-/monaco-1.6.0.tgz#aadbc6fb7b32172a164beace5c69061b61f73f86" - integrity sha512-vM66K07fUENbdeNpUURYFDigBep0Io3RAgZZfiYmrIbKq+JscU/bcpl1+gFZUcR0Nb8R+/fM5iJSaJ1H9M9MIA== +"@shikijs/monaco@^1.6.0": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@shikijs/monaco/-/monaco-1.6.1.tgz#31a27042dd128ee183a34a829be5b68352549ab0" + integrity sha512-F7eOOMjCOh8xoaaB+Q7ux2pf3Gf2DP3t7wS7RtWCx8l+GCG5tlC9l3YlfQvnzPmUCApWuSpQlXpbZW9zWUPGRQ== dependencies: - "@shikijs/core" "1.6.0" + "@shikijs/core" "1.6.1" -"@shikijs/transformers@1.6.0": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-1.6.0.tgz#552ea80721517c815f7615e150193a96ac508049" - integrity sha512-qGfHe1ECiqfE2STPWvfogIj/9Q0SK+MCRJdoITkW7AmFuB7DmbFnBT2US84+zklJOB51MzNO8RUXZiauWssJlQ== +"@shikijs/transformers@1.6.1": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-1.6.1.tgz#2318f62ea70ba0119a9c04599c8480ec5bbf50de" + integrity sha512-m/h2Dh99XWvTzHL8MUQmEnrB+/gxDljIfgDNR00Zg941KENqORx8Hi9sKpGYjCgXoEJKASZlEMQdPnkHj9/8aQ== dependencies: - shiki "1.6.0" + shiki "1.6.1" -"@shikijs/twoslash@1.6.0", "@shikijs/twoslash@^1.5.2": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@shikijs/twoslash/-/twoslash-1.6.0.tgz#681b5beb0966b15ca683a86d7ed5d221a0b66430" - integrity sha512-sA9l5hgKNiB+CFUNwxeWyh4nvA6J/fSIzVZId1AhO4rRLINi5dFb13MmDSnxqw+60HKCKjsoWKcbVGvToQXJVA== +"@shikijs/twoslash@1.6.1", "@shikijs/twoslash@^1.6.0": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@shikijs/twoslash/-/twoslash-1.6.1.tgz#ccbc9247295cce7e5d534a4b5667416aa5ae16f1" + integrity sha512-VluGZXQ97sDFyxneOzsPkEHK06A6C1SRDh+kSM9AZAkzHorZaGxF4awgA3rh2K0oZnR94NZzfhq8GtERm38EEQ== dependencies: - "@shikijs/core" "1.6.0" + "@shikijs/core" "1.6.1" twoslash "^0.2.6" -"@shikijs/vitepress-twoslash@^1.5.2": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@shikijs/vitepress-twoslash/-/vitepress-twoslash-1.6.0.tgz#69f4def27a0bd772963b23a831120592a90f742c" - integrity sha512-mXK2myylw30mk4QcWQA+gX2PDYbApeP7KvDazgGQtjwuOFAQlydHsNVF/TmgOP6iVU/93h7LhLgxPnPfqHoPxg== +"@shikijs/vitepress-twoslash@^1.6.0": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@shikijs/vitepress-twoslash/-/vitepress-twoslash-1.6.1.tgz#b23903ef373741d16298d521dc2d65c88453ef33" + integrity sha512-yJ+CV57qu+UK42nJsqSwvK+hFpDJYB9WXCXFMS/BUdYZ8tZrbcCdxHOrxHZ5gE3JANbrNRf9I0Azq61PZpGl0Q== dependencies: - "@shikijs/twoslash" "1.6.0" + "@shikijs/twoslash" "1.6.1" floating-vue "^5.2.2" - mdast-util-from-markdown "^2.0.0" + mdast-util-from-markdown "^2.0.1" mdast-util-gfm "^3.0.0" mdast-util-to-hast "^13.1.0" - shiki "1.6.0" + shiki "1.6.1" twoslash "^0.2.6" twoslash-vue "^0.2.6" vue "^3.4.27" @@ -1869,24 +1869,24 @@ integrity sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ== "@slidev/cli@^0.49.2": - version "0.49.3" - resolved "https://registry.yarnpkg.com/@slidev/cli/-/cli-0.49.3.tgz#cbd50de04d8f99dafd324ee00b2e66d086386a8c" - integrity sha512-G6s2am1dfpJ1MRszO20S12lQkjtY7/w9Cl5XAQoXPBobW8Cs+tkjWWEmnzvgPEBwjgPQqp9F+gfT8Hu/Q88q1Q== + version "0.49.4" + resolved "https://registry.yarnpkg.com/@slidev/cli/-/cli-0.49.4.tgz#31418a4af097076e19d5ad378abc3577d3b1948e" + integrity sha512-WovPcLtKHLLEpGJkwDY8YHsKYfggwbyQ6x9dirpAC7oYo915bjsFwj3KY1g2fbiwRws459D5yBSHkq/easDxIA== dependencies: "@antfu/ni" "^0.21.12" "@antfu/utils" "^0.7.8" - "@iconify-json/carbon" "^1.1.33" + "@iconify-json/carbon" "^1.1.34" "@iconify-json/ph" "^1.1.13" "@iconify-json/svg-spinners" "^1.1.2" "@lillallol/outline-pdf" "^4.0.0" - "@shikijs/markdown-it" "^1.5.2" - "@shikijs/twoslash" "^1.5.2" - "@shikijs/vitepress-twoslash" "^1.5.2" - "@slidev/client" "0.49.3" - "@slidev/parser" "0.49.3" - "@slidev/types" "0.49.3" - "@unocss/extractor-mdc" "^0.60.2" - "@unocss/reset" "^0.60.2" + "@shikijs/markdown-it" "^1.6.0" + "@shikijs/twoslash" "^1.6.0" + "@shikijs/vitepress-twoslash" "^1.6.0" + "@slidev/client" "0.49.4" + "@slidev/parser" "0.49.4" + "@slidev/types" "0.49.4" + "@unocss/extractor-mdc" "^0.60.3" + "@unocss/reset" "^0.60.3" "@vitejs/plugin-vue" "^5.0.4" "@vitejs/plugin-vue-jsx" "^3.1.0" chokidar "^3.6.0" @@ -1912,23 +1912,24 @@ markdown-it-footnote "^4.0.0" markdown-it-mdc "^0.2.3" mlly "^1.7.0" - monaco-editor "^0.48.0" + monaco-editor "^0.49.0" open "^10.1.0" pdf-lib "^1.17.1" plantuml-encoder "^1.4.0" postcss-nested "^6.0.1" + pptxgenjs "^3.12.0" prismjs "^1.29.0" prompts "^2.4.2" public-ip "^6.0.2" resolve-from "^5.0.0" resolve-global "^2.0.0" semver "^7.6.2" - shiki "^1.5.2" + shiki "^1.6.0" shiki-magic-move "^0.4.2" sirv "^2.0.4" source-map-js "^1.2.0" typescript "^5.4.5" - unocss "^0.60.2" + unocss "^0.60.3" unplugin-icons "^0.19.0" unplugin-vue-components "^0.27.0" unplugin-vue-markdown "^0.26.2" @@ -1937,29 +1938,29 @@ vite "^5.2.11" vite-plugin-inspect "^0.8.4" vite-plugin-remote-assets "^0.4.1" - vite-plugin-static-copy "^1.0.4" + vite-plugin-static-copy "^1.0.5" vite-plugin-vue-server-ref "^0.4.2" vitefu "^0.2.5" vue "^3.4.27" yargs "^17.7.2" -"@slidev/client@0.49.3": - version "0.49.3" - resolved "https://registry.yarnpkg.com/@slidev/client/-/client-0.49.3.tgz#9a4edba960417d7f3682cfb81ae05b5b3da7365c" - integrity sha512-pXq0aHh73emg7+4sUb4XDuI8jRt4bvbLZUvOIhcJ6YaYRnV+OqfZ2qNWFBcqOcWP/0Y7m6ws5gdV+04AnrtIFA== +"@slidev/client@0.49.4": + version "0.49.4" + resolved "https://registry.yarnpkg.com/@slidev/client/-/client-0.49.4.tgz#4aead1e02158b4c74af8cb33cb80fcba5f494eb9" + integrity sha512-clfzxPs5N30lflXyHWvQ0iwMH8WaSH6G42t93/yNt1uxxzQds4h4dUFpjH1C92sIATT3+V6YUOZoFOMq/oci4A== dependencies: "@antfu/utils" "^0.7.8" - "@iconify-json/carbon" "^1.1.33" + "@iconify-json/carbon" "^1.1.34" "@iconify-json/ph" "^1.1.13" "@iconify-json/svg-spinners" "^1.1.2" - "@shikijs/monaco" "^1.5.2" - "@shikijs/vitepress-twoslash" "^1.5.2" - "@slidev/parser" "0.49.3" + "@shikijs/monaco" "^1.6.0" + "@shikijs/vitepress-twoslash" "^1.6.0" + "@slidev/parser" "0.49.4" "@slidev/rough-notation" "^0.1.0" - "@slidev/types" "0.49.3" + "@slidev/types" "0.49.4" "@typescript/ata" "^0.9.4" - "@unhead/vue" "^1.9.10" - "@unocss/reset" "^0.60.2" + "@unhead/vue" "^1.9.11" + "@unocss/reset" "^0.60.3" "@vueuse/core" "^10.9.0" "@vueuse/math" "^10.9.0" "@vueuse/motion" "^2.1.0" @@ -1971,24 +1972,24 @@ katex "^0.16.10" lz-string "^1.5.0" mermaid "^10.9.1" - monaco-editor "^0.48.0" + monaco-editor "^0.49.0" prettier "^3.2.5" recordrtc "^5.6.2" - shiki "^1.5.2" + shiki "^1.6.0" shiki-magic-move "^0.4.2" typescript "^5.4.5" - unocss "^0.60.2" + unocss "^0.60.3" vue "^3.4.27" vue-router "^4.3.2" yaml "^2.4.2" -"@slidev/parser@0.49.3": - version "0.49.3" - resolved "https://registry.yarnpkg.com/@slidev/parser/-/parser-0.49.3.tgz#fa28ce8f7be3f585f52c6523d002aaa3ebb11cad" - integrity sha512-sk/qmVBJimT+wPPEQoUSgEAeIhp1F/26T0nKxRtGmJrKhQCF7jVoqKfGk7RCyBXOtH3zS0Wmu4yPFeiUsXJ+2Q== +"@slidev/parser@0.49.4": + version "0.49.4" + resolved "https://registry.yarnpkg.com/@slidev/parser/-/parser-0.49.4.tgz#77e82ea2f54e3eed9510f8d2a04bfd346052b257" + integrity sha512-M5mh+M+8BwQ54sa2IT+YgSLYeZHW1JkgtfZ/OlfWt1D0+geBT+85MOzuaoRjfTeSOAb0bGSIIO1qD6um47Sv8Q== dependencies: "@antfu/utils" "^0.7.8" - "@slidev/types" "0.49.3" + "@slidev/types" "0.49.4" yaml "^2.4.2" "@slidev/rough-notation@^0.1.0": @@ -2016,19 +2017,19 @@ codemirror-theme-vars "^0.1.2" prism-theme-vars "^0.2.4" -"@slidev/types@0.49.3": - version "0.49.3" - resolved "https://registry.yarnpkg.com/@slidev/types/-/types-0.49.3.tgz#4d4a2ff622b58e2bc2275391d108cda2d62b83e9" - integrity sha512-1n6DfszPvOr5ViAEpUEr1VHYy4gO7fQaLJZb9C2x6IHxJOuc62aBs3Fo3lrfYAWnr+PEXD+ehbHJejpFgRBMVw== +"@slidev/types@0.49.4": + version "0.49.4" + resolved "https://registry.yarnpkg.com/@slidev/types/-/types-0.49.4.tgz#97ffa4657524df8b34f987b644a5c0f72d3e1181" + integrity sha512-9KeTmFot+ladWYLJIz/424l27hBw0txSJ0kbhpqhAG9fkXpQoeyOw2kUVYrgvlipDxSsPxwWhjNUE09CPQH8Aw== dependencies: "@antfu/utils" "^0.7.8" "@vitejs/plugin-vue" "^5.0.4" "@vitejs/plugin-vue-jsx" "^3.1.0" katex "^0.16.10" mermaid "^10.9.1" - monaco-editor "^0.48.0" - shiki "^1.5.2" - unocss "^0.60.2" + monaco-editor "^0.49.0" + shiki "^1.6.0" + unocss "^0.60.3" unplugin-icons "^0.19.0" unplugin-vue-markdown "^0.26.2" vite-plugin-remote-assets "^0.4.1" @@ -2385,7 +2386,7 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190" integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== -"@types/node@^18.11.18", "@types/node@^18.19.14": +"@types/node@^18.11.18", "@types/node@^18.19.14", "@types/node@^18.7.3": version "18.19.33" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.33.tgz#98cd286a1b8a5e11aa06623210240bcc28e95c48" integrity sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A== @@ -2500,61 +2501,61 @@ "@types/node" "*" "@typescript-eslint/eslint-plugin@^7.9.0": - version "7.10.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.10.0.tgz#07854a236f107bb45cbf4f62b89474cbea617f50" - integrity sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw== + version "7.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.11.0.tgz#f90f0914657ead08e1c75f66939c926edeab42dd" + integrity sha512-P+qEahbgeHW4JQ/87FuItjBj8O3MYv5gELDzr8QaQ7fsll1gSMTYb6j87MYyxwf3DtD7uGFB9ShwgmCJB5KmaQ== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "7.10.0" - "@typescript-eslint/type-utils" "7.10.0" - "@typescript-eslint/utils" "7.10.0" - "@typescript-eslint/visitor-keys" "7.10.0" + "@typescript-eslint/scope-manager" "7.11.0" + "@typescript-eslint/type-utils" "7.11.0" + "@typescript-eslint/utils" "7.11.0" + "@typescript-eslint/visitor-keys" "7.11.0" graphemer "^1.4.0" ignore "^5.3.1" natural-compare "^1.4.0" ts-api-utils "^1.3.0" "@typescript-eslint/parser@^7.9.0": - version "7.10.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.10.0.tgz#e6ac1cba7bc0400a4459e7eb5b23115bd71accfb" - integrity sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w== - dependencies: - "@typescript-eslint/scope-manager" "7.10.0" - "@typescript-eslint/types" "7.10.0" - "@typescript-eslint/typescript-estree" "7.10.0" - "@typescript-eslint/visitor-keys" "7.10.0" + version "7.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.11.0.tgz#525ad8bee54a8f015f134edd241d91b84ab64839" + integrity sha512-yimw99teuaXVWsBcPO1Ais02kwJ1jmNA1KxE7ng0aT7ndr1pT1wqj0OJnsYVGKKlc4QJai86l/025L6z8CljOg== + dependencies: + "@typescript-eslint/scope-manager" "7.11.0" + "@typescript-eslint/types" "7.11.0" + "@typescript-eslint/typescript-estree" "7.11.0" + "@typescript-eslint/visitor-keys" "7.11.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@7.10.0": - version "7.10.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.10.0.tgz#054a27b1090199337a39cf755f83d9f2ce26546b" - integrity sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg== +"@typescript-eslint/scope-manager@7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.11.0.tgz#cf5619b01de62a226a59add15a02bde457335d1d" + integrity sha512-27tGdVEiutD4POirLZX4YzT180vevUURJl4wJGmm6TrQoiYwuxTIY98PBp6L2oN+JQxzE0URvYlzJaBHIekXAw== dependencies: - "@typescript-eslint/types" "7.10.0" - "@typescript-eslint/visitor-keys" "7.10.0" + "@typescript-eslint/types" "7.11.0" + "@typescript-eslint/visitor-keys" "7.11.0" -"@typescript-eslint/type-utils@7.10.0": - version "7.10.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.10.0.tgz#8a75accce851d0a331aa9331268ef64e9b300270" - integrity sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g== +"@typescript-eslint/type-utils@7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.11.0.tgz#ac216697d649084fedf4a910347b9642bd0ff099" + integrity sha512-WmppUEgYy+y1NTseNMJ6mCFxt03/7jTOy08bcg7bxJJdsM4nuhnchyBbE8vryveaJUf62noH7LodPSo5Z0WUCg== dependencies: - "@typescript-eslint/typescript-estree" "7.10.0" - "@typescript-eslint/utils" "7.10.0" + "@typescript-eslint/typescript-estree" "7.11.0" + "@typescript-eslint/utils" "7.11.0" debug "^4.3.4" ts-api-utils "^1.3.0" -"@typescript-eslint/types@7.10.0": - version "7.10.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.10.0.tgz#da92309c97932a3a033762fd5faa8b067de84e3b" - integrity sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg== +"@typescript-eslint/types@7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.11.0.tgz#5e9702a5e8b424b7fc690e338d359939257d6722" + integrity sha512-MPEsDRZTyCiXkD4vd3zywDCifi7tatc4K37KqTprCvaXptP7Xlpdw0NR2hRJTetG5TxbWDB79Ys4kLmHliEo/w== -"@typescript-eslint/typescript-estree@7.10.0": - version "7.10.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.10.0.tgz#6dcdc5de3149916a6a599fa89dde5c471b88b8bb" - integrity sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g== +"@typescript-eslint/typescript-estree@7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.11.0.tgz#7cbc569bc7336c3a494ceaf8204fdee5d5dbb7fa" + integrity sha512-cxkhZ2C/iyi3/6U9EPc5y+a6csqHItndvN/CzbNXTNrsC3/ASoYQZEt9uMaEp+xFNjasqQyszp5TumAVKKvJeQ== dependencies: - "@typescript-eslint/types" "7.10.0" - "@typescript-eslint/visitor-keys" "7.10.0" + "@typescript-eslint/types" "7.11.0" + "@typescript-eslint/visitor-keys" "7.11.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" @@ -2562,22 +2563,22 @@ semver "^7.6.0" ts-api-utils "^1.3.0" -"@typescript-eslint/utils@7.10.0": - version "7.10.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.10.0.tgz#8ee43e5608c9f439524eaaea8de5b358b15c51b3" - integrity sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg== +"@typescript-eslint/utils@7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.11.0.tgz#524f047f2209959424c3ef689b0d83b3bc09919c" + integrity sha512-xlAWwPleNRHwF37AhrZurOxA1wyXowW4PqVXZVUNCLjB48CqdPJoJWkrpH2nij9Q3Lb7rtWindtoXwxjxlKKCA== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "7.10.0" - "@typescript-eslint/types" "7.10.0" - "@typescript-eslint/typescript-estree" "7.10.0" + "@typescript-eslint/scope-manager" "7.11.0" + "@typescript-eslint/types" "7.11.0" + "@typescript-eslint/typescript-estree" "7.11.0" -"@typescript-eslint/visitor-keys@7.10.0": - version "7.10.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.10.0.tgz#2af2e91e73a75dd6b70b4486c48ae9d38a485a78" - integrity sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg== +"@typescript-eslint/visitor-keys@7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.11.0.tgz#2c50cd292e67645eec05ac0830757071b4a4d597" + integrity sha512-7syYk4MzjxTEk0g/w3iqtgxnFQspDJfn6QKD36xMuuhTzjcxY7F8EmBLnALjVyaOF1/bVocu3bS/2/F7rXrveQ== dependencies: - "@typescript-eslint/types" "7.10.0" + "@typescript-eslint/types" "7.11.0" eslint-visitor-keys "^3.4.3" "@typescript/ata@^0.9.4": @@ -2620,7 +2621,7 @@ dependencies: "@unhead/schema" "1.9.11" -"@unhead/vue@^1.9.10": +"@unhead/vue@^1.9.11": version "1.9.11" resolved "https://registry.yarnpkg.com/@unhead/vue/-/vue-1.9.11.tgz#e5cee5f8a0baa9c51ded840558b6c45d0c3b9650" integrity sha512-7gCEJGTSnpLcHGQ2j/IsBTz2nIUWbTlqUbbNiwPFgEksJbh8Pz8WduTvLC4ANlnnFy6PDG7yrZcaKJMOrNruoQ== @@ -2678,7 +2679,7 @@ dependencies: "@unocss/core" "0.60.3" -"@unocss/extractor-mdc@^0.60.2": +"@unocss/extractor-mdc@^0.60.3": version "0.60.3" resolved "https://registry.yarnpkg.com/@unocss/extractor-mdc/-/extractor-mdc-0.60.3.tgz#6c58a1d33d04645ae6a140a35bb4dc54073d491a" integrity sha512-3WcaffgortFQdjcxnas3mxAgE8yu9ZrIAWRqR/Ox/ZTKvteAnoBnkcXoshU5rmh98BMC9cp9e8WbaAWiYSQfYg== @@ -2773,7 +2774,7 @@ "@unocss/preset-mini" "0.60.3" "@unocss/rule-utils" "0.60.3" -"@unocss/reset@0.60.3", "@unocss/reset@^0.60.2": +"@unocss/reset@0.60.3", "@unocss/reset@^0.60.3": version "0.60.3" resolved "https://registry.yarnpkg.com/@unocss/reset/-/reset-0.60.3.tgz#2addaa351ecb968cc08e54fee70c7350ab03f8d1" integrity sha512-EuC8gkh8L8WvPOcjS/KqprEJXIKcpBPm+ou5G9D6WgDmJ+TgQrri5oR+QUmOmEnueQkVL7bnkFkIKeg71SJLFA== @@ -3192,27 +3193,27 @@ integrity sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA== "@vueuse/core@^10.1.2", "@vueuse/core@^10.9.0": - version "10.9.0" - resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.9.0.tgz#7d779a95cf0189de176fee63cee4ba44b3c85d64" - integrity sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg== + version "10.10.0" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.10.0.tgz#05a98d3c5674762455a2c552c915d461d83e6490" + integrity sha512-vexJ/YXYs2S42B783rI95lMt3GzEwkxzC8Hb0Ndpd8rD+p+Lk/Za4bd797Ym7yq4jXqdSyj3JLChunF/vyYjUw== dependencies: "@types/web-bluetooth" "^0.0.20" - "@vueuse/metadata" "10.9.0" - "@vueuse/shared" "10.9.0" + "@vueuse/metadata" "10.10.0" + "@vueuse/shared" "10.10.0" vue-demi ">=0.14.7" "@vueuse/math@^10.9.0": - version "10.9.0" - resolved "https://registry.yarnpkg.com/@vueuse/math/-/math-10.9.0.tgz#0db3cb27c893fa22c50351397c283d5b6df0f5bc" - integrity sha512-qb60AzFKzg8Gw85c4YiheEMC2AMkk+eO/nB9MmuQFU/HAHvfVckesiPlwaQqUlZQ4MJt0z8qP18/H7ozpj0sKQ== + version "10.10.0" + resolved "https://registry.yarnpkg.com/@vueuse/math/-/math-10.10.0.tgz#5c405179d3c48c531c0fb3ad1aa11e49fbc3330e" + integrity sha512-+jAA7wla5T400VcMLLRMMozAkoL/3LGJE8qNoteX1YHsvpDSN0UR0DkgCmu9UakhK3JWpX4SURXtwd98rDtMyA== dependencies: - "@vueuse/shared" "10.9.0" + "@vueuse/shared" "10.10.0" vue-demi ">=0.14.7" -"@vueuse/metadata@10.9.0": - version "10.9.0" - resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.9.0.tgz#769a1a9db65daac15cf98084cbf7819ed3758620" - integrity sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA== +"@vueuse/metadata@10.10.0": + version "10.10.0" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.10.0.tgz#53e61e9380670e342cbe6e03d852f3319308cb5b" + integrity sha512-UNAo2sTCAW5ge6OErPEHb5z7NEAg3XcO9Cj7OK45aZXfLLH1QkexDcZD77HBi5zvEiLOm1An+p/4b5K3Worpug== "@vueuse/motion@^2.1.0": version "2.1.0" @@ -3228,10 +3229,10 @@ optionalDependencies: "@nuxt/kit" "^3.5.1" -"@vueuse/shared@10.9.0", "@vueuse/shared@^10.1.2": - version "10.9.0" - resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.9.0.tgz#13af2a348de15d07b7be2fd0c7fc9853a69d8fe0" - integrity sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw== +"@vueuse/shared@10.10.0", "@vueuse/shared@^10.1.2": + version "10.10.0" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.10.0.tgz#93f7c2210151ff43c2c7677963f7aa3aef5d9896" + integrity sha512-2aW33Ac0Uk0U+9yo3Ypg9s5KcR42cuehRWl7vnUHadQyFvCktseyxxEPBi1Eiq4D2yBGACOnqLZpx1eMc7g5Og== dependencies: vue-demi ">=0.14.7" @@ -3291,7 +3292,7 @@ acorn-walk@^8.3.2: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== -acorn@^8.0.0, acorn@^8.10.0, acorn@^8.11.2, acorn@^8.11.3, acorn@^8.8.2: +acorn@^8.0.0, acorn@^8.11.3, acorn@^8.8.2: version "8.11.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== @@ -3348,9 +3349,9 @@ ajv@^6.12.4: uri-js "^4.2.2" ajv@^8.0.0, ajv@^8.12.0, ajv@^8.13.0: - version "8.13.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.13.0.tgz#a3939eaec9fb80d217ddf0c3376948c023f28c91" - integrity sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA== + version "8.14.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.14.0.tgz#f514ddfd4756abb200e1704414963620a625ebbb" + integrity sha512-oYs1UUtO97ZO2lJ4bwnWeQW8/zvOIQLGKcvPTsWmvc2SYgBb+upuNS5NxoLaMU4h8Ju3Nbj6Cq8mD2LQoqVKFA== dependencies: fast-deep-equal "^3.1.3" json-schema-traverse "^1.0.0" @@ -3528,9 +3529,9 @@ astro-expressive-code@^0.35.2: rehype-expressive-code "^0.35.3" astro@^4.8.6: - version "4.9.1" - resolved "https://registry.yarnpkg.com/astro/-/astro-4.9.1.tgz#2883fabd5c4c9f1ba9417236b4fdf70320432a65" - integrity sha512-9TsoAu0WBPiqyAIj9H0JW7R+tIjPjFsPKo70Nja6WL3imTTuUJQmnCre4ZVmoNV3oicTTlb+N4zjRYANW0Ty9A== + version "4.9.2" + resolved "https://registry.yarnpkg.com/astro/-/astro-4.9.2.tgz#e48071aaadca1e74be443a4ebc4cda5a72f8f42c" + integrity sha512-apzpRoISk6L8g99m3zKIW5SYxw2GhOju/1Gq0Ccf3SH+X2UcFXF+MTdxPOFl5yJUQg7X0qsVQDOIVf8zHRRKFg== dependencies: "@astrojs/compiler" "^2.8.0" "@astrojs/internal-helpers" "0.4.0" @@ -4060,9 +4061,9 @@ camelcase@^7.0.1: integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== caniuse-lite@^1.0.30001587: - version "1.0.30001621" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001621.tgz#4adcb443c8b9c8303e04498318f987616b8fea2e" - integrity sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA== + version "1.0.30001624" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001624.tgz#0ec4c8fa7a46e5b785477c70b38a56d0b10058eb" + integrity sha512-0dWnQG87UevOCPYaOR49CBcLBwoZLpws+k6W37nLjWUhumP1Isusj0p2u+3KhjNloRWK9OKMgjBBzPujQHw4nA== canvas@^2.11.2: version "2.11.2" @@ -5587,33 +5588,33 @@ esbuild@^0.20.1, esbuild@~0.20.2: "@esbuild/win32-x64" "0.20.2" esbuild@^0.21.2, esbuild@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.3.tgz#cbb10b100c768b0cfb35d61d9e70324553437c38" - integrity sha512-Kgq0/ZsAPzKrbOjCQcjoSmPoWhlcVnGAUo7jvaLHoxW1Drto0KGkR1xBNg2Cp43b9ImvxmPEJZ9xkfcnqPsfBw== + version "0.21.4" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.4.tgz#ceb501def8edb12a5bfd9c55f3a96db698edf022" + integrity sha512-sFMcNNrj+Q0ZDolrp5pDhH0nRPN9hLIM3fRPwgbLYJeSHHgnXSnbV3xYgSVuOeLWH9c73VwmEverVzupIv5xuA== optionalDependencies: - "@esbuild/aix-ppc64" "0.21.3" - "@esbuild/android-arm" "0.21.3" - "@esbuild/android-arm64" "0.21.3" - "@esbuild/android-x64" "0.21.3" - "@esbuild/darwin-arm64" "0.21.3" - "@esbuild/darwin-x64" "0.21.3" - "@esbuild/freebsd-arm64" "0.21.3" - "@esbuild/freebsd-x64" "0.21.3" - "@esbuild/linux-arm" "0.21.3" - "@esbuild/linux-arm64" "0.21.3" - "@esbuild/linux-ia32" "0.21.3" - "@esbuild/linux-loong64" "0.21.3" - "@esbuild/linux-mips64el" "0.21.3" - "@esbuild/linux-ppc64" "0.21.3" - "@esbuild/linux-riscv64" "0.21.3" - "@esbuild/linux-s390x" "0.21.3" - "@esbuild/linux-x64" "0.21.3" - "@esbuild/netbsd-x64" "0.21.3" - "@esbuild/openbsd-x64" "0.21.3" - "@esbuild/sunos-x64" "0.21.3" - "@esbuild/win32-arm64" "0.21.3" - "@esbuild/win32-ia32" "0.21.3" - "@esbuild/win32-x64" "0.21.3" + "@esbuild/aix-ppc64" "0.21.4" + "@esbuild/android-arm" "0.21.4" + "@esbuild/android-arm64" "0.21.4" + "@esbuild/android-x64" "0.21.4" + "@esbuild/darwin-arm64" "0.21.4" + "@esbuild/darwin-x64" "0.21.4" + "@esbuild/freebsd-arm64" "0.21.4" + "@esbuild/freebsd-x64" "0.21.4" + "@esbuild/linux-arm" "0.21.4" + "@esbuild/linux-arm64" "0.21.4" + "@esbuild/linux-ia32" "0.21.4" + "@esbuild/linux-loong64" "0.21.4" + "@esbuild/linux-mips64el" "0.21.4" + "@esbuild/linux-ppc64" "0.21.4" + "@esbuild/linux-riscv64" "0.21.4" + "@esbuild/linux-s390x" "0.21.4" + "@esbuild/linux-x64" "0.21.4" + "@esbuild/netbsd-x64" "0.21.4" + "@esbuild/openbsd-x64" "0.21.4" + "@esbuild/sunos-x64" "0.21.4" + "@esbuild/win32-arm64" "0.21.4" + "@esbuild/win32-ia32" "0.21.4" + "@esbuild/win32-x64" "0.21.4" escalade@^3.1.1, escalade@^3.1.2: version "3.1.2" @@ -7059,6 +7060,11 @@ https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.2, https-proxy-agent@^7.0.3, ht agent-base "^7.0.2" debug "4" +https@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https/-/https-1.0.0.tgz#3c37c7ae1a8eeb966904a2ad1e975a194b7ed3a4" + integrity sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg== + human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -7105,6 +7111,13 @@ ignore@^5.2.0, ignore@^5.2.4, ignore@^5.3.1: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== +image-size@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.1.1.tgz#ddd67d4dc340e52ac29ce5f546a09f4e29e840ac" + integrity sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ== + dependencies: + queue "6.0.2" + immediate@~3.0.5: version "3.0.6" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" @@ -8282,10 +8295,10 @@ mdast-util-from-markdown@^1.3.0: unist-util-stringify-position "^3.0.0" uvu "^0.5.0" -mdast-util-from-markdown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz#52f14815ec291ed061f2922fd14d6689c810cb88" - integrity sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA== +mdast-util-from-markdown@^2.0.0, mdast-util-from-markdown@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz#32a6e8f512b416e1f51eb817fc64bd867ebcd9cc" + integrity sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA== dependencies: "@types/mdast" "^4.0.0" "@types/unist" "^3.0.0" @@ -9316,10 +9329,10 @@ mocha@^10.4.0: yargs-parser "20.2.4" yargs-unparser "2.0.0" -monaco-editor@^0.48.0: - version "0.48.0" - resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.48.0.tgz#9e54541bbe0ba3f2bb238477d5b981a282205ea0" - integrity sha512-goSDElNqFfw7iDHMg8WDATkfcyeLTNpBHQpO8incK6p5qZt5G/1j41X0xdGzpIkGojGXM+QiRQyLjnfDVvrpwA== +monaco-editor@^0.49.0: + version "0.49.0" + resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.49.0.tgz#4e80e9859feb2c421def3cef194d12d822606472" + integrity sha512-2I8/T3X/hLxB2oPHgqcNYUVdA/ZEFShT7IAujifIPMfKkNbLOqY8XCoyHCXrsdjb36dW9MwoTwBCFpXKMwNwaQ== mongodb-connection-string-url@^3.0.0: version "3.0.1" @@ -10124,9 +10137,9 @@ pdf-lib@^1.16.0, pdf-lib@^1.17.1: tslib "^1.11.1" pdf2json@^3.0.5: - version "3.1.2" - resolved "https://registry.yarnpkg.com/pdf2json/-/pdf2json-3.1.2.tgz#33d3e291640fbc4d3b6e22fffaf8235d76f67cf4" - integrity sha512-vHYIMvT5+ott2djw4e4A2o4LQtxkFoZd1N7po0FG82Hs1o3B/dhKLHtZDo4Y9+WnTkSEGcD0YaNHsD9X9tl/dg== + version "3.1.3" + resolved "https://registry.yarnpkg.com/pdf2json/-/pdf2json-3.1.3.tgz#4d16a1a85639dd44a374ed2d8675badc13f72ff1" + integrity sha512-cGP2MIz7v+w/b4vgg0OPKqhT21L/CZ73+RNmXKbKjgtnVJt2e00AqI6NZyMTp6GL6sY+r0NJOZb9gL3g37yuew== dependencies: "@xmldom/xmldom" "^0.8.10" @@ -10285,7 +10298,7 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -pkg-types@^1.0.3, pkg-types@^1.1.0: +pkg-types@^1.0.3, pkg-types@^1.1.0, pkg-types@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.1.1.tgz#07b626880749beb607b0c817af63aac1845a73f2" integrity sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ== @@ -10426,6 +10439,16 @@ postgres-range@^1.1.1: resolved "https://registry.yarnpkg.com/postgres-range/-/postgres-range-1.1.4.tgz#a59c5f9520909bcec5e63e8cf913a92e4c952863" integrity sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w== +pptxgenjs@^3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/pptxgenjs/-/pptxgenjs-3.12.0.tgz#dc31baa53bb97aa69bc8ef8a906220fedc31489a" + integrity sha512-ZozkYKWb1MoPR4ucw3/aFYlHkVIJxo9czikEclcUVnS4Iw/M+r+TEwdlB3fyAWO9JY1USxJDt0Y0/r15IR/RUA== + dependencies: + "@types/node" "^18.7.3" + https "^1.0.0" + image-size "^1.0.0" + jszip "^3.7.1" + prebuild-install@^7.0.1, prebuild-install@^7.1.1: version "7.1.2" resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.2.tgz#a5fd9986f5a6251fbc47e1e5c65de71e68c0a056" @@ -10690,6 +10713,13 @@ queue-tick@^1.0.1: resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142" integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag== +queue@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.2.tgz#b91525283e2315c7553d2efa18d83e76432fed65" + integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== + dependencies: + inherits "~2.0.3" + quick-lru@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" @@ -11318,11 +11348,11 @@ safe-stable-stringify@^2.3.1: integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sax@>=0.6.0, sax@^1.2.4: - version "1.3.0" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0" - integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA== + version "1.4.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" + integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== -scule@^1.1.1, scule@^1.2.0, scule@^1.3.0: +scule@^1.2.0, scule@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/scule/-/scule-1.3.0.tgz#6efbd22fd0bb801bdcc585c89266a7d2daa8fbd3" integrity sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g== @@ -11500,12 +11530,12 @@ shiki-magic-move@^0.4.2: diff-match-patch-es "^0.1.0" ohash "^1.1.3" -shiki@1.6.0, shiki@^1.1.2, shiki@^1.1.7, shiki@^1.5.1, shiki@^1.5.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.6.0.tgz#f017ed09d467f99a28d5dfb572bcba6dfcadbcf3" - integrity sha512-P31ROeXcVgW/k3Z+vUUErcxoTah7ZRaimctOpzGuqAntqnnSmx1HOsvnbAB8Z2qfXPRhw61yptAzCsuKOhTHwQ== +shiki@1.6.1, shiki@^1.1.2, shiki@^1.1.7, shiki@^1.5.1, shiki@^1.6.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.6.1.tgz#902c8dc2a54f6b94e0d0826e1c68e9b8f34f2be7" + integrity sha512-1Pu/A1rtsG6HZvQm4W0NExQ45e02og+rPog7PDaFDiMumZgOYnZIu4JtGQeAIfMwdbKSjJQoCUr79vDLKUUxWA== dependencies: - "@shikijs/core" "1.6.0" + "@shikijs/core" "1.6.1" side-channel@^1.0.4, side-channel@^1.0.6: version "1.0.6" @@ -11939,14 +11969,7 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== -strip-literal@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.3.0.tgz#db3942c2ec1699e6836ad230090b84bb458e3a07" - integrity sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg== - dependencies: - acorn "^8.10.0" - -strip-literal@^2.0.0: +strip-literal@^2.0.0, strip-literal@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-2.1.0.tgz#6d82ade5e2e74f5c7e8739b6c84692bd65f0bd2a" integrity sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw== @@ -12564,23 +12587,23 @@ unified@^11.0.0, unified@^11.0.4: vfile "^6.0.0" unimport@^3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/unimport/-/unimport-3.7.1.tgz#37250d0f3f2dcf1e1b66ed13728db0e9f50ba0c3" - integrity sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ== + version "3.7.2" + resolved "https://registry.yarnpkg.com/unimport/-/unimport-3.7.2.tgz#36fead8bdeb2695b6026861318bf111ad0596a5b" + integrity sha512-91mxcZTadgXyj3lFWmrGT8GyoRHWuE5fqPOjg5RVtF6vj+OfM5G6WCzXjuYtSgELE5ggB34RY4oiCSEP8I3AHw== dependencies: "@rollup/pluginutils" "^5.1.0" - acorn "^8.11.2" + acorn "^8.11.3" escape-string-regexp "^5.0.0" estree-walker "^3.0.3" fast-glob "^3.3.2" local-pkg "^0.5.0" - magic-string "^0.30.5" - mlly "^1.4.2" - pathe "^1.1.1" - pkg-types "^1.0.3" - scule "^1.1.1" - strip-literal "^1.3.0" - unplugin "^1.5.1" + magic-string "^0.30.10" + mlly "^1.7.0" + pathe "^1.1.2" + pkg-types "^1.1.1" + scule "^1.3.0" + strip-literal "^2.1.0" + unplugin "^1.10.1" unist-util-find-after@^5.0.0: version "5.0.0" @@ -12709,7 +12732,7 @@ universalify@^2.0.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -unocss@^0.60.2: +unocss@^0.60.3: version "0.60.3" resolved "https://registry.yarnpkg.com/unocss/-/unocss-0.60.3.tgz#bbe5d53bf0c3facd8c124fdbe9e679977ce40d34" integrity sha512-pUBbpgGRKCa6oB/LrGEFBWP2/2E1ZOY8XO7aVJKo2x10rqLS8tGykn1VoBUgbGJsv/8W8tskTVz+RFbCyKP+kA== @@ -12782,7 +12805,7 @@ unplugin-vue-markdown@^0.26.2: markdown-it "^14.1.0" unplugin "^1.10.1" -unplugin@^1.10.1, unplugin@^1.3.1, unplugin@^1.5.1: +unplugin@^1.10.1, unplugin@^1.3.1: version "1.10.1" resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-1.10.1.tgz#8ceda065dc71bc67d923dea0920f05c67f2cd68c" integrity sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg== @@ -12988,7 +13011,7 @@ vite-plugin-remote-assets@^0.4.1: fs-extra "^11.2.0" magic-string "^0.30.5" -vite-plugin-static-copy@^1.0.4: +vite-plugin-static-copy@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/vite-plugin-static-copy/-/vite-plugin-static-copy-1.0.5.tgz#6f695b9c02af09860cb8d40ee243167b6823e4a6" integrity sha512-02k0Rox+buYdEOfeilKZSgs1gXfPf9RjVztZEIYZgVIxjsVZi6AXssjzdi+qW6zYt00d3bq+tpP2voVXN2fKLw== @@ -13010,9 +13033,9 @@ vite-plugin-vue-server-ref@^0.4.2: ufo "^1.3.2" vite@^5.0.0, vite@^5.2.11: - version "5.2.11" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.11.tgz#726ec05555431735853417c3c0bfb36003ca0cbd" - integrity sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ== + version "5.2.12" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.12.tgz#3536c93c58ba18edea4915a2ac573e6537409d97" + integrity sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA== dependencies: esbuild "^0.20.1" postcss "^8.4.38" @@ -13646,9 +13669,9 @@ zwitch@^2.0.0, zwitch@^2.0.4: integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== zx@^8.1.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/zx/-/zx-8.1.1.tgz#240cd319a2fb016eddff094c4548f27061d89398" - integrity sha512-JYAyM06wK+KLy07MkipBTghtd3zsYBxTH44Fh3p932ntDKdT5jxziEK51siPG+rqT+MWV1yK9mCM1/CB92PV7Q== + version "8.1.2" + resolved "https://registry.yarnpkg.com/zx/-/zx-8.1.2.tgz#d3e0a6f08b11ab3b4c8d037a61bba7ba8897058c" + integrity sha512-zkCiXKh8D/eo6r58OmJvO5mc2NthcSRvysb3fuS6VQlHPbEPBcxduRwM3m6ZfHj+7cLHcrahCnuO2TDAbW+6xw== optionalDependencies: "@types/fs-extra" "^11.0.4" "@types/node" ">=20.12.12"