@oxbit/cli 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/runtime/dist/index.js +638 -195
- package/runtime/package.json +1 -1
- package/web/dist/assets/index-BCxXZvvr.css +1 -0
- package/web/dist/assets/index-CpkhHQqO.js +254 -0
- package/web/dist/assets/{typescript-JybYWk0M.js → typescript-Cr1vqP1r.js} +2 -2
- package/web/dist/index.html +2 -2
- package/web/dist/schemas/settings.v1.schema.json +25 -0
- package/web/dist/sdk/index.js +25 -0
- package/web/dist/assets/index-B7cH1Cpv.css +0 -1
- package/web/dist/assets/index-uLHm1V21.js +0 -251
package/runtime/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { realpathSync, constants as constants$1, watch } from "node:fs";
|
|
|
3
3
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
4
4
|
import * as fs from "node:fs/promises";
|
|
5
5
|
import path from "node:path";
|
|
6
|
-
import { spawn } from "node:child_process";
|
|
6
|
+
import { spawn, execFileSync } from "node:child_process";
|
|
7
7
|
import { parseArgs } from "node:util";
|
|
8
8
|
import http from "node:http";
|
|
9
9
|
import os, { userInfo } from "node:os";
|
|
@@ -11,10 +11,9 @@ import { createHash, randomUUID, randomBytes, timingSafeEqual } from "node:crypt
|
|
|
11
11
|
import { WebSocketServer, WebSocket } from "ws";
|
|
12
12
|
import chokidar from "chokidar";
|
|
13
13
|
import { StringDecoder } from "node:string_decoder";
|
|
14
|
-
import * as pty from "node-pty";
|
|
15
14
|
import { parse as parse$1, parseTree, findNodeAtLocation, applyEdits, modify } from "jsonc-parser";
|
|
16
15
|
import { XMLSerializer, DOMParser } from "@xmldom/xmldom";
|
|
17
|
-
import net from "node:net";
|
|
16
|
+
import net, { isIPv4, isIPv6 } from "node:net";
|
|
18
17
|
import { ResponseError, CancellationTokenSource, createMessageConnection, StreamMessageReader, StreamMessageWriter } from "vscode-jsonrpc/node.js";
|
|
19
18
|
import { Transform } from "node:stream";
|
|
20
19
|
import { createRequire } from "node:module";
|
|
@@ -25,6 +24,17 @@ import ts from "typescript";
|
|
|
25
24
|
import ignore from "ignore";
|
|
26
25
|
import * as Y from "yjs";
|
|
27
26
|
import { Awareness, encodeAwarenessUpdate, applyAwarenessUpdate, removeAwarenessStates } from "y-protocols/awareness";
|
|
27
|
+
import { createSocket } from "node:dgram";
|
|
28
|
+
const REQUIRED_NODE_MAJOR = 24;
|
|
29
|
+
function nodeVersionError(version = process.versions.node) {
|
|
30
|
+
const major = Number(version.split(".")[0]);
|
|
31
|
+
return major >= REQUIRED_NODE_MAJOR ? void 0 : `Oxbit requires Node.js ${REQUIRED_NODE_MAJOR} or later; found Node.js ${version}. Install Node.js ${REQUIRED_NODE_MAJOR} and retry.`;
|
|
32
|
+
}
|
|
33
|
+
const failure = nodeVersionError();
|
|
34
|
+
if (failure) {
|
|
35
|
+
process.stderr.write(failure + "\n");
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
28
38
|
function setting(name, env = process.env) {
|
|
29
39
|
return env[`OXBIT_${name}`];
|
|
30
40
|
}
|
|
@@ -35,6 +45,7 @@ function workspaceDataDir(root, home = os.homedir()) {
|
|
|
35
45
|
const MAX_MESSAGE_BYTES = 2 * 1024 * 1024;
|
|
36
46
|
const MAX_BUFFER_BYTES = 1024 * 1024;
|
|
37
47
|
const READ_CHUNK_BYTES = 512 * 1024;
|
|
48
|
+
const RUNTIME_SERVICE_TYPE = "_oxbit._tcp";
|
|
38
49
|
class RpcError extends Error {
|
|
39
50
|
constructor(code, message, data) {
|
|
40
51
|
super(message);
|
|
@@ -478,6 +489,11 @@ function resolveTerminalShell(env = process.env, platform = process.platform) {
|
|
|
478
489
|
const args = ["bash", "zsh", "fish"].includes(name) ? ["-l", "-i"] : [];
|
|
479
490
|
return { shell, args };
|
|
480
491
|
}
|
|
492
|
+
let ptyModule;
|
|
493
|
+
const loadNodePty = () => ptyModule ??= import("node-pty").catch((error) => {
|
|
494
|
+
ptyModule = void 0;
|
|
495
|
+
throw error;
|
|
496
|
+
});
|
|
481
497
|
async function runCommand(command, args, options2) {
|
|
482
498
|
if (options2.signal?.aborted)
|
|
483
499
|
throw new RpcError("CANCELLED", "Operation was cancelled");
|
|
@@ -529,12 +545,14 @@ async function runCommand(command, args, options2) {
|
|
|
529
545
|
});
|
|
530
546
|
}
|
|
531
547
|
class Processes {
|
|
532
|
-
constructor(root, emit) {
|
|
548
|
+
constructor(root, emit, loadPty = loadNodePty) {
|
|
533
549
|
this.root = root;
|
|
534
550
|
this.emit = emit;
|
|
551
|
+
this.loadPty = loadPty;
|
|
535
552
|
}
|
|
536
553
|
root;
|
|
537
554
|
emit;
|
|
555
|
+
loadPty;
|
|
538
556
|
terminals = /* @__PURE__ */ new Map();
|
|
539
557
|
terminal(id, owner) {
|
|
540
558
|
const value = this.terminals.get(id);
|
|
@@ -542,7 +560,15 @@ class Processes {
|
|
|
542
560
|
throw new RpcError("NOT_FOUND", "Terminal session was not found");
|
|
543
561
|
return value;
|
|
544
562
|
}
|
|
545
|
-
|
|
563
|
+
async pty() {
|
|
564
|
+
try {
|
|
565
|
+
return await this.loadPty();
|
|
566
|
+
} catch (error) {
|
|
567
|
+
throw new RpcError("TERMINAL_UNAVAILABLE", `node-pty failed to load: ${error instanceof Error ? error.message : String(error)}`);
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
async create(owner, connection, cols = 100, rows = 30) {
|
|
571
|
+
const pty = await this.pty();
|
|
546
572
|
for (const [id2, terminal22] of this.terminals) if (this.terminals.size >= 64 && terminal22.exitCode !== void 0) this.terminals.delete(id2);
|
|
547
573
|
if ([...this.terminals.values()].filter((t) => t.exitCode === void 0).length >= 16)
|
|
548
574
|
throw new RpcError("LIMIT", "Maximum 16 terminal sessions");
|
|
@@ -793,11 +819,11 @@ const $id$1 = "https://oxbit.dev/schemas/settings.v1.schema.json";
|
|
|
793
819
|
const title$2 = "Oxbit Settings";
|
|
794
820
|
const description$2 = "User, private workspace and repository settings. Literal dotted IDs; objects merge recursively, arrays and scalar values replace. Unrecognized extension settings are preserved. Null is a value, not a reset, and must be valid for its setting.";
|
|
795
821
|
const type$2 = "object";
|
|
796
|
-
const properties$2 = /* @__PURE__ */ JSON.parse(`{"$schema":{"type":"string","description":"JSON Schema URI. Ignored when merging effective preferences."},"agentACP.provider":{"title":"Default agent","type":"string","default":"codex","enum":["codex","cursor","amp"]},"agentACP.codex.command":{"title":"Codex ACP executable","type":"string","default":"npx"},"agentACP.codex.args":{"title":"Codex ACP arguments (JSON array)","type":"string","default":"[\\"-y\\",\\"@agentclientprotocol/codex-acp@1.10.0\\"]"},"agentACP.cursor.command":{"title":"Cursor ACP executable","type":"string","default":"agent"},"agentACP.cursor.args":{"title":"Cursor ACP arguments (JSON array)","type":"string","default":"[\\"acp\\"]"},"agentACP.amp.command":{"title":"Amp Agent ACP executable","type":"string","default":"npx"},"agentACP.amp.args":{"title":"Amp Agent ACP arguments (JSON array)","type":"string","default":"[\\"-y\\",\\"amp-acp@0.9.0\\"]"},"workbench.keymap":{"title":"Keymap","description":"Keyboard layout applied on top of the Oxbit defaults. User keybindings always win.","type":"string","default":"default","enum":["default","vscode","jetbrains","macos","sublime","atom","visual-studio","emacs"]},"workbench.tooltipDelay":{"title":"Tooltip Delay","description":"Delay in milliseconds before showing a tooltip on hover. Keyboard focus shows tooltips immediately.","type":"number","default":400,"minimum":0,"maximum":5000},"workbench.colorTheme":{"title":"Color Theme","description":"Specifies the color theme used in the workbench.","type":"string","default":"Graphite (dark)"},"workbench.density":{"title":"Layout Density","description":"Controls row heights, padding and label sizes across the workbench.","type":"string","default":"compact","enum":["compact","comfortable"]},"workbench.sidebarLocation":{"title":"Sidebar Location","description":"Where the primary sidebar is docked.","type":"string","default":"left","enum":["left","right"]},"editor.fontFamily":{"title":"Font Family","description":"Controls the font family of the editor.","type":"string","default":"'JetBrains Mono', ui-monospace, monospace"},"editor.fontSize":{"title":"Font Size","description":"Font size in pixels.","type":"number","default":13,"minimum":8,"maximum":32},"editor.lineHeight":{"title":"Line Height","description":"Line height in pixels. 0 uses 1.55 × font size.","type":"number","default":20,"minimum":0,"maximum":60},"editor.fontLigatures":{"title":"Font Ligatures","description":"Enables font ligatures when the font supports them.","type":"boolean","default":false},"editor.tabSize":{"title":"Tab Size","description":"The number of spaces a tab is equal to.","type":"number","default":2,"minimum":1,"maximum":8},"editor.insertSpaces":{"title":"Insert Spaces","description":"Insert spaces when pressing Tab.","type":"boolean","default":true},"editor.detectIndentation":{"title":"Detect Indentation","description":"Detect Tab Size and Insert Spaces from file contents on open.","type":"boolean","default":true},"editor.renderIndentGuides":{"title":"Indentation Guides","description":"Render vertical guides for each indent level.","type":"boolean","default":true},"editor.wordWrap":{"title":"Word Wrap","description":"Controls how lines should wrap.","type":"string","default":"off","enum":["off","on","bounded"]},"editor.renderWhitespace":{"title":"Render Whitespace","description":"Controls how the editor renders whitespace characters.","type":"string","default":"selection","enum":["none","boundary","selection","all"]},"editor.cursorBlinking":{"title":"Cursor Blinking","description":"Cursor animation style.","type":"string","default":"blink","enum":["blink","smooth","phase","solid"]},"editor.minimap":{"title":"Minimap","description":"Show a minimap of the document.","type":"boolean","default":false},"files.autoSave":{"title":"Auto Save","description":"Controls auto save of editors that have unsaved changes.","type":"string","default":"off","enum":["off","afterDelay","onFocusChange","onWindowChange"]},"files.autoSaveDelay":{"title":"Auto Save Delay","description":"Delay in milliseconds after which an editor is saved automatically. Applies when Auto Save is afterDelay.","type":"number","default":1000,"minimum":100,"maximum":60000},"files.trimTrailingWhitespace":{"title":"Trim Trailing Whitespace","description":"Remove trailing whitespace when saving.","type":"boolean","default":true},"editor.formatOnSave":{"title":"Format On Save","description":"Format a file on save. A formatter must be available.","type":"boolean","default":false},"editor.defaultFormatter":{"title":"Default Formatter","description":"Formatter used when several are available.","type":"string","default":"oxbit.prettier","anyOf":[{"enum":["oxbit.prettier","oxbit.builtin-ts"]},{"type":"string"}]},"terminal.fontSize":{"title":"Terminal Font Size","description":"Font size in pixels for the terminal.","type":"number","default":12,"minimum":8,"maximum":32},"terminal.scrollback":{"title":"Scrollback","description":"Maximum number of lines kept in the terminal buffer.","type":"number","default":5000,"minimum":100,"maximum":100000},"terminal.confirmOnKill":{"title":"Confirm On Kill","description":"Ask before killing a terminal with a running process.","type":"boolean","default":true},"scm.autoFetch":{"title":"Auto Fetch","description":"Periodically fetch from the default remote.","type":"boolean","default":true},"scm.diffLayout":{"title":"Diff Layout","description":"Default layout for diff editors.","type":"string","default":"side-by-side","enum":["side-by-side","inline"]},"files.associations":{"title":"File Associations","description":"Map filename or workspace-relative glob patterns to language IDs. Explicit associations take precedence over built-in detection.","type":"object","default":{},"propertyNames":{"minLength":1,"maxLength":1024},"additionalProperties":{"type":"string","pattern":"^[\\\\w+-]+$"}},"languageServers":{"title":"Language Servers","description":"Configure enabled state, selectors, rootMarkers, executable, args, env, initializationOptions, settings, and priority by server ID. Servers install on first use in a trusted runtime. License keys belong in the runtime-local credential file.","type":"object","default":{},"propertyNames":{"pattern":"^[a-zA-Z0-9._-]+$"},"additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Enable this language server."},"selectors":{"type":"array","items":{"type":"object","properties":{"language":{"type":"string"},"pattern":{"type":"string"},"scheme":{"const":"file"}},"additionalProperties":false,"minProperties":1}},"rootMarkers":{"type":"array","items":{"type":"string","pattern":"^(?!/)(?!.*\\\\\\\\)(?!.*(?:^|/)\\\\.\\\\.(?:/|$))[^\\\\u0000]+$","minLength":1}},"executable":{"type":"string","pattern":"^[^\\\\u0000]*$","minLength":1},"args":{"type":"array","items":{"type":"string","pattern":"^[^\\\\u0000]*$"}},"env":{"type":"object","propertyNames":{"pattern":"^[A-Za-z_][A-Za-z0-9_]*$"},"additionalProperties":{"type":"string","pattern":"^[^\\\\u0000]*$"}},"initializationOptions":{"type":"object","additionalProperties":true,"description":"Server-specific initialization options. Store license credentials in the runtime credential file."},"settings":{"type":"object","additionalProperties":true,"description":"Server-specific configuration; nested objects merge across files."},"priority":{"type":"number"}},"additionalProperties":false}},"ui.fontFamily":{"title":"UI Font Family","description":"Overrides theme typography. Reset restores the theme value.","type":"string","default":""},"ui.fontSize":{"title":"UI Font Size","description":"Overrides theme typography. Reset restores the theme value.","type":"number","default":12,"minimum":8,"maximum":72},"ui.fontWeight":{"title":"UI Font Weight","description":"Overrides theme typography. Reset restores the theme value.","type":"number","default":400,"minimum":100,"maximum":900},"ui.fontStyle":{"title":"UI Font Style","description":"Overrides theme typography. Reset restores the theme value.","type":"string","default":"normal","enum":["normal","italic","oblique"]},"ui.lineHeight":{"title":"UI Line Height","description":"Overrides theme typography. Reset restores the theme value.","type":"number","default":1.4,"minimum":1,"maximum":3},"ui.letterSpacing":{"title":"UI Letter Spacing","description":"Overrides theme typography. Reset restores the theme value.","type":"number","default":0,"minimum":-3,"maximum":10},"ui.fontLigatures":{"title":"UI Font Ligatures","description":"Overrides theme typography. Reset restores the theme value.","type":"boolean","default":false},"terminal.fontFamily":{"title":"Terminal Font Family","description":"Overrides theme typography. Reset restores the theme value.","type":"string","default":""},"terminal.fontWeight":{"title":"Terminal Font Weight","description":"Overrides theme typography. Reset restores the theme value.","type":"number","default":400,"minimum":100,"maximum":900},"terminal.fontStyle":{"title":"Terminal Font Style","description":"Overrides theme typography. Reset restores the theme value.","type":"string","default":"normal","enum":["normal","italic","oblique"]},"terminal.lineHeight":{"title":"Terminal Line Height","description":"Overrides theme typography. Reset restores the theme value.","type":"number","default":1,"minimum":1,"maximum":3},"terminal.letterSpacing":{"title":"Terminal Letter Spacing","description":"Overrides theme typography. Reset restores the theme value.","type":"number","default":0,"minimum":-3,"maximum":10},"terminal.fontLigatures":{"title":"Terminal Font Ligatures","description":"Overrides theme typography. Reset restores the theme value.","type":"boolean","default":false},"workbench.iconTheme":{"title":"File Icon Theme","description":"Select a locally installed icon theme. Unavailable selections use Oxbit defaults until restored.","type":"string","default":"oxbit.default"},"workbench.productIconTheme":{"title":"Product Icon Theme","description":"Select a locally installed icon theme. Unavailable selections use Oxbit defaults until restored.","type":"string","default":"oxbit.default"},"editor.semanticHighlighting":{"title":"Semantic Highlighting","description":"Color symbols using language server information.","type":"boolean","default":true},"editor.inlayHints.types":{"title":"Type Inlay Hints","description":"Show supported type hints in the visible editor.","type":"boolean","default":true},"editor.inlayHints.parameters":{"title":"Parameter Inlay Hints","description":"Show supported parameter hints in the visible editor.","type":"boolean","default":true},"editor.largeFileIntelligence":{"title":"Large File Intelligence","description":"Allow full semantic highlighting and inlay hints for files larger than 1 MiB.","type":"boolean","default":false},"workbench.locale":{"title":"Display Language","type":"string","default":"en","enum":["en","de","es","ja","zh"]},"workbench.reducedMotion":{"title":"Reduced Motion","type":"boolean","default":false},"desktop.projects.openBehavior":{"title":"Open projects","type":"string","default":"currentWindow","enum":["currentWindow","newWindow"]},"desktop.tools.gitPath":{"title":"git executable path","type":"string","default":""},"desktop.tools.ghPath":{"title":"gh executable path","type":"string","default":""},"project.intelligence":{"type":"object","properties":{"enabled":{"type":"boolean","default":true,"description":"Index project dependencies, imports and related files."},"exclude":{"type":"array","items":{"type":"string","maxLength":1024},"default":[]},"maxFiles":{"type":"integer","minimum":1,"maximum":100000,"default":20000},"maxFileBytes":{"type":"integer","minimum":1,"maximum":5242880,"default":1048576}},"additionalProperties":false,"title":"Project Intelligence","description":"Partial overrides of project.json intelligence. Objects merge across files."},"project.schemas":{"type":"object","properties":{"catalog":{"type":"boolean","default":true,"description":"Discover file schemas through SchemaStore. Bundled Oxbit settings support remains available."},"download":{"type":"boolean","default":true,"description":"Allow remote schema downloads; cached and bundled schemas work offline."},"associations":{"type":"array","maxItems":1000,"default":[],"items":{"type":"object","properties":{"url":{"type":"string","minLength":1,"description":"Schema URL or workspace file URI."},"fileMatch":{"type":"array","items":{"type":"string","maxLength":1024}},"schema":{"type":["object","boolean"],"description":"An inline JSON Schema."}},"additionalProperties":false,"anyOf":[{"required":["url"]},{"required":["schema"]}]}}},"additionalProperties":false,"title":"JSON Schemas","description":"Partial overrides of project.json schemas. Association arrays replace lower arrays."}}`);
|
|
822
|
+
const properties$2 = /* @__PURE__ */ JSON.parse(`{"$schema":{"type":"string","description":"JSON Schema URI. Ignored when merging effective preferences."},"agentACP.provider":{"title":"Default agent","type":"string","default":"codex","enum":["codex","cursor","amp"]},"agentACP.codex.command":{"title":"Codex ACP executable","type":"string","default":"npx"},"agentACP.codex.args":{"title":"Codex ACP arguments (JSON array)","type":"string","default":"[\\"-y\\",\\"@agentclientprotocol/codex-acp@1.10.0\\"]"},"agentACP.cursor.command":{"title":"Cursor ACP executable","type":"string","default":"agent"},"agentACP.cursor.args":{"title":"Cursor ACP arguments (JSON array)","type":"string","default":"[\\"acp\\"]"},"agentACP.amp.command":{"title":"Amp Agent ACP executable","type":"string","default":"npx"},"agentACP.amp.args":{"title":"Amp Agent ACP arguments (JSON array)","type":"string","default":"[\\"-y\\",\\"amp-acp@0.9.0\\"]"},"workbench.keymap":{"title":"Keymap","description":"Keyboard layout applied on top of the Oxbit defaults. User keybindings always win.","type":"string","default":"default","enum":["default","vscode","jetbrains","macos","sublime","atom","visual-studio","emacs"]},"runtime.keepAlive":{"title":"Keep Runtime Alive","description":"How long a runtime Oxbit started keeps running after the last client disconnects or its connection heartbeats stop. Terminals and tasks continue while it runs.","type":"string","default":"75s","enum":["75s","15m","1h","8h","untilStopped"]},"runtime.autoReconnect":{"title":"Reconnect Automatically","description":"Reconnect to the runtime after the connection drops, including when the iOS app returns to the foreground.","type":"boolean","default":true},"workbench.tooltipDelay":{"title":"Tooltip Delay","description":"Delay in milliseconds before showing a tooltip on hover. Keyboard focus shows tooltips immediately.","type":"number","default":400,"minimum":0,"maximum":5000},"workbench.colorTheme":{"title":"Color Theme","description":"Specifies the color theme used in the workbench.","type":"string","default":"Graphite (dark)"},"workbench.density":{"title":"Layout Density","description":"Controls row heights, padding and label sizes across the workbench.","type":"string","default":"compact","enum":["compact","comfortable"]},"workbench.sidebarLocation":{"title":"Sidebar Location","description":"Where the primary sidebar is docked.","type":"string","default":"left","enum":["left","right"]},"editor.fontFamily":{"title":"Font Family","description":"Controls the font family of the editor.","type":"string","default":"'JetBrains Mono', ui-monospace, monospace"},"editor.fontSize":{"title":"Font Size","description":"Font size in pixels.","type":"number","default":13,"minimum":8,"maximum":32},"editor.lineHeight":{"title":"Line Height","description":"Line height in pixels. 0 uses 1.55 × font size.","type":"number","default":20,"minimum":0,"maximum":60},"editor.fontLigatures":{"title":"Font Ligatures","description":"Enables font ligatures when the font supports them.","type":"boolean","default":false},"editor.tabSize":{"title":"Tab Size","description":"The number of spaces a tab is equal to.","type":"number","default":2,"minimum":1,"maximum":8},"editor.insertSpaces":{"title":"Insert Spaces","description":"Insert spaces when pressing Tab.","type":"boolean","default":true},"editor.detectIndentation":{"title":"Detect Indentation","description":"Detect Tab Size and Insert Spaces from file contents on open.","type":"boolean","default":true},"editor.renderIndentGuides":{"title":"Indentation Guides","description":"Render vertical guides for each indent level.","type":"boolean","default":true},"editor.wordWrap":{"title":"Word Wrap","description":"Controls how lines should wrap.","type":"string","default":"off","enum":["off","on","bounded"]},"editor.renderWhitespace":{"title":"Render Whitespace","description":"Controls how the editor renders whitespace characters.","type":"string","default":"selection","enum":["none","boundary","selection","all"]},"editor.cursorBlinking":{"title":"Cursor Blinking","description":"Cursor animation style.","type":"string","default":"blink","enum":["blink","smooth","phase","solid"]},"editor.minimap":{"title":"Minimap","description":"Show a minimap of the document.","type":"boolean","default":false},"files.autoSave":{"title":"Auto Save","description":"Controls auto save of editors that have unsaved changes.","type":"string","default":"off","enum":["off","afterDelay","onFocusChange","onWindowChange"]},"files.autoSaveDelay":{"title":"Auto Save Delay","description":"Delay in milliseconds after which an editor is saved automatically. Applies when Auto Save is afterDelay.","type":"number","default":1000,"minimum":100,"maximum":60000},"files.trimTrailingWhitespace":{"title":"Trim Trailing Whitespace","description":"Remove trailing whitespace when saving.","type":"boolean","default":true},"editor.formatOnSave":{"title":"Format On Save","description":"Format a file on save. A formatter must be available.","type":"boolean","default":false},"editor.defaultFormatter":{"title":"Default Formatter","description":"Formatter used when several are available.","type":"string","default":"oxbit.prettier","anyOf":[{"enum":["oxbit.prettier","oxbit.builtin-ts"]},{"type":"string"}]},"terminal.fontSize":{"title":"Terminal Font Size","description":"Font size in pixels for the terminal.","type":"number","default":12,"minimum":8,"maximum":32},"terminal.scrollback":{"title":"Scrollback","description":"Maximum number of lines kept in the terminal buffer.","type":"number","default":5000,"minimum":100,"maximum":100000},"terminal.confirmOnKill":{"title":"Confirm On Kill","description":"Ask before killing a terminal with a running process.","type":"boolean","default":true},"scm.autoFetch":{"title":"Auto Fetch","description":"Periodically fetch from the default remote.","type":"boolean","default":true},"scm.diffLayout":{"title":"Diff Layout","description":"Default layout for diff editors.","type":"string","default":"side-by-side","enum":["side-by-side","inline"]},"files.associations":{"title":"File Associations","description":"Map filename or workspace-relative glob patterns to language IDs. Explicit associations take precedence over built-in detection.","type":"object","default":{},"propertyNames":{"minLength":1,"maxLength":1024},"additionalProperties":{"type":"string","pattern":"^[\\\\w+-]+$"}},"languageServers":{"title":"Language Servers","description":"Configure enabled state, selectors, rootMarkers, executable, args, env, initializationOptions, settings, and priority by server ID. Servers install on first use in a trusted runtime. License keys belong in the runtime-local credential file.","type":"object","default":{},"propertyNames":{"pattern":"^[a-zA-Z0-9._-]+$"},"additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Enable this language server."},"selectors":{"type":"array","items":{"type":"object","properties":{"language":{"type":"string"},"pattern":{"type":"string"},"scheme":{"const":"file"}},"additionalProperties":false,"minProperties":1}},"rootMarkers":{"type":"array","items":{"type":"string","pattern":"^(?!/)(?!.*\\\\\\\\)(?!.*(?:^|/)\\\\.\\\\.(?:/|$))[^\\\\u0000]+$","minLength":1}},"executable":{"type":"string","pattern":"^[^\\\\u0000]*$","minLength":1},"args":{"type":"array","items":{"type":"string","pattern":"^[^\\\\u0000]*$"}},"env":{"type":"object","propertyNames":{"pattern":"^[A-Za-z_][A-Za-z0-9_]*$"},"additionalProperties":{"type":"string","pattern":"^[^\\\\u0000]*$"}},"initializationOptions":{"type":"object","additionalProperties":true,"description":"Server-specific initialization options. Store license credentials in the runtime credential file."},"settings":{"type":"object","additionalProperties":true,"description":"Server-specific configuration; nested objects merge across files."},"priority":{"type":"number"}},"additionalProperties":false}},"ui.fontFamily":{"title":"UI Font Family","description":"Overrides theme typography. Reset restores the theme value.","type":"string","default":""},"ui.fontSize":{"title":"UI Font Size","description":"Overrides theme typography. Reset restores the theme value.","type":"number","default":12,"minimum":8,"maximum":72},"ui.fontWeight":{"title":"UI Font Weight","description":"Overrides theme typography. Reset restores the theme value.","type":"number","default":400,"minimum":100,"maximum":900},"ui.fontStyle":{"title":"UI Font Style","description":"Overrides theme typography. Reset restores the theme value.","type":"string","default":"normal","enum":["normal","italic","oblique"]},"ui.lineHeight":{"title":"UI Line Height","description":"Overrides theme typography. Reset restores the theme value.","type":"number","default":1.4,"minimum":1,"maximum":3},"ui.letterSpacing":{"title":"UI Letter Spacing","description":"Overrides theme typography. Reset restores the theme value.","type":"number","default":0,"minimum":-3,"maximum":10},"ui.fontLigatures":{"title":"UI Font Ligatures","description":"Overrides theme typography. Reset restores the theme value.","type":"boolean","default":false},"terminal.fontFamily":{"title":"Terminal Font Family","description":"Overrides theme typography. Reset restores the theme value.","type":"string","default":""},"terminal.fontWeight":{"title":"Terminal Font Weight","description":"Overrides theme typography. Reset restores the theme value.","type":"number","default":400,"minimum":100,"maximum":900},"terminal.fontStyle":{"title":"Terminal Font Style","description":"Overrides theme typography. Reset restores the theme value.","type":"string","default":"normal","enum":["normal","italic","oblique"]},"terminal.lineHeight":{"title":"Terminal Line Height","description":"Overrides theme typography. Reset restores the theme value.","type":"number","default":1,"minimum":1,"maximum":3},"terminal.letterSpacing":{"title":"Terminal Letter Spacing","description":"Overrides theme typography. Reset restores the theme value.","type":"number","default":0,"minimum":-3,"maximum":10},"terminal.fontLigatures":{"title":"Terminal Font Ligatures","description":"Overrides theme typography. Reset restores the theme value.","type":"boolean","default":false},"workbench.iconTheme":{"title":"File Icon Theme","description":"Select a locally installed icon theme. Unavailable selections use Oxbit defaults until restored.","type":"string","default":"oxbit.default"},"workbench.productIconTheme":{"title":"Product Icon Theme","description":"Select a locally installed icon theme. Unavailable selections use Oxbit defaults until restored.","type":"string","default":"oxbit.default"},"editor.semanticHighlighting":{"title":"Semantic Highlighting","description":"Color symbols using language server information.","type":"boolean","default":true},"editor.inlayHints.types":{"title":"Type Inlay Hints","description":"Show supported type hints in the visible editor.","type":"boolean","default":true},"editor.inlayHints.parameters":{"title":"Parameter Inlay Hints","description":"Show supported parameter hints in the visible editor.","type":"boolean","default":true},"editor.largeFileIntelligence":{"title":"Large File Intelligence","description":"Allow full semantic highlighting and inlay hints for files larger than 1 MiB.","type":"boolean","default":false},"workbench.locale":{"title":"Display Language","type":"string","default":"en","enum":["en","de","es","ja","zh"]},"workbench.reducedMotion":{"title":"Reduced Motion","type":"boolean","default":false},"desktop.projects.openBehavior":{"title":"Open projects","type":"string","default":"currentWindow","enum":["currentWindow","newWindow"]},"desktop.tools.gitPath":{"title":"git executable path","type":"string","default":""},"desktop.tools.ghPath":{"title":"gh executable path","type":"string","default":""},"project.intelligence":{"type":"object","properties":{"enabled":{"type":"boolean","default":true,"description":"Index project dependencies, imports and related files."},"exclude":{"type":"array","items":{"type":"string","maxLength":1024},"default":[]},"maxFiles":{"type":"integer","minimum":1,"maximum":100000,"default":20000},"maxFileBytes":{"type":"integer","minimum":1,"maximum":5242880,"default":1048576}},"additionalProperties":false,"title":"Project Intelligence","description":"Partial overrides of project.json intelligence. Objects merge across files."},"project.schemas":{"type":"object","properties":{"catalog":{"type":"boolean","default":true,"description":"Discover file schemas through SchemaStore. Bundled Oxbit settings support remains available."},"download":{"type":"boolean","default":true,"description":"Allow remote schema downloads; cached and bundled schemas work offline."},"associations":{"type":"array","maxItems":1000,"default":[],"items":{"type":"object","properties":{"url":{"type":"string","minLength":1,"description":"Schema URL or workspace file URI."},"fileMatch":{"type":"array","items":{"type":"string","maxLength":1024}},"schema":{"type":["object","boolean"],"description":"An inline JSON Schema."}},"additionalProperties":false,"anyOf":[{"required":["url"]},{"required":["schema"]}]}}},"additionalProperties":false,"title":"JSON Schemas","description":"Partial overrides of project.json schemas. Association arrays replace lower arrays."}}`);
|
|
797
823
|
const propertyNames = { "anyOf": [{ "not": { "pattern": "^\\[.*\\]$" } }, { "pattern": "^\\[[^\\[\\]]+\\]$" }] };
|
|
798
824
|
const patternProperties = { "^\\[[^\\[\\]]+\\]$": { "$ref": "#/definitions/languageOverrides" } };
|
|
799
825
|
const additionalProperties$1 = true;
|
|
800
|
-
const definitions$1 = { "languageOverrides": { "type": "object", "properties": { "agentACP.provider": { "$ref": "#/properties/agentACP.provider" }, "agentACP.codex.command": { "$ref": "#/properties/agentACP.codex.command" }, "agentACP.codex.args": { "$ref": "#/properties/agentACP.codex.args" }, "agentACP.cursor.command": { "$ref": "#/properties/agentACP.cursor.command" }, "agentACP.cursor.args": { "$ref": "#/properties/agentACP.cursor.args" }, "agentACP.amp.command": { "$ref": "#/properties/agentACP.amp.command" }, "agentACP.amp.args": { "$ref": "#/properties/agentACP.amp.args" }, "workbench.keymap": { "$ref": "#/properties/workbench.keymap" }, "workbench.tooltipDelay": { "$ref": "#/properties/workbench.tooltipDelay" }, "workbench.colorTheme": { "$ref": "#/properties/workbench.colorTheme" }, "workbench.density": { "$ref": "#/properties/workbench.density" }, "workbench.sidebarLocation": { "$ref": "#/properties/workbench.sidebarLocation" }, "editor.fontFamily": { "$ref": "#/properties/editor.fontFamily" }, "editor.fontSize": { "$ref": "#/properties/editor.fontSize" }, "editor.lineHeight": { "$ref": "#/properties/editor.lineHeight" }, "editor.fontLigatures": { "$ref": "#/properties/editor.fontLigatures" }, "editor.tabSize": { "$ref": "#/properties/editor.tabSize" }, "editor.insertSpaces": { "$ref": "#/properties/editor.insertSpaces" }, "editor.detectIndentation": { "$ref": "#/properties/editor.detectIndentation" }, "editor.renderIndentGuides": { "$ref": "#/properties/editor.renderIndentGuides" }, "editor.wordWrap": { "$ref": "#/properties/editor.wordWrap" }, "editor.renderWhitespace": { "$ref": "#/properties/editor.renderWhitespace" }, "editor.cursorBlinking": { "$ref": "#/properties/editor.cursorBlinking" }, "editor.minimap": { "$ref": "#/properties/editor.minimap" }, "files.autoSave": { "$ref": "#/properties/files.autoSave" }, "files.autoSaveDelay": { "$ref": "#/properties/files.autoSaveDelay" }, "files.trimTrailingWhitespace": { "$ref": "#/properties/files.trimTrailingWhitespace" }, "editor.formatOnSave": { "$ref": "#/properties/editor.formatOnSave" }, "editor.defaultFormatter": { "$ref": "#/properties/editor.defaultFormatter" }, "terminal.fontSize": { "$ref": "#/properties/terminal.fontSize" }, "terminal.scrollback": { "$ref": "#/properties/terminal.scrollback" }, "terminal.confirmOnKill": { "$ref": "#/properties/terminal.confirmOnKill" }, "scm.autoFetch": { "$ref": "#/properties/scm.autoFetch" }, "scm.diffLayout": { "$ref": "#/properties/scm.diffLayout" }, "files.associations": { "$ref": "#/properties/files.associations" }, "languageServers": { "$ref": "#/properties/languageServers" }, "ui.fontFamily": { "$ref": "#/properties/ui.fontFamily" }, "ui.fontSize": { "$ref": "#/properties/ui.fontSize" }, "ui.fontWeight": { "$ref": "#/properties/ui.fontWeight" }, "ui.fontStyle": { "$ref": "#/properties/ui.fontStyle" }, "ui.lineHeight": { "$ref": "#/properties/ui.lineHeight" }, "ui.letterSpacing": { "$ref": "#/properties/ui.letterSpacing" }, "ui.fontLigatures": { "$ref": "#/properties/ui.fontLigatures" }, "terminal.fontFamily": { "$ref": "#/properties/terminal.fontFamily" }, "terminal.fontWeight": { "$ref": "#/properties/terminal.fontWeight" }, "terminal.fontStyle": { "$ref": "#/properties/terminal.fontStyle" }, "terminal.lineHeight": { "$ref": "#/properties/terminal.lineHeight" }, "terminal.letterSpacing": { "$ref": "#/properties/terminal.letterSpacing" }, "terminal.fontLigatures": { "$ref": "#/properties/terminal.fontLigatures" }, "workbench.iconTheme": { "$ref": "#/properties/workbench.iconTheme" }, "workbench.productIconTheme": { "$ref": "#/properties/workbench.productIconTheme" }, "editor.semanticHighlighting": { "$ref": "#/properties/editor.semanticHighlighting" }, "editor.inlayHints.types": { "$ref": "#/properties/editor.inlayHints.types" }, "editor.inlayHints.parameters": { "$ref": "#/properties/editor.inlayHints.parameters" }, "editor.largeFileIntelligence": { "$ref": "#/properties/editor.largeFileIntelligence" }, "workbench.locale": { "$ref": "#/properties/workbench.locale" }, "workbench.reducedMotion": { "$ref": "#/properties/workbench.reducedMotion" }, "desktop.projects.openBehavior": { "$ref": "#/properties/desktop.projects.openBehavior" }, "desktop.tools.gitPath": { "$ref": "#/properties/desktop.tools.gitPath" }, "desktop.tools.ghPath": { "$ref": "#/properties/desktop.tools.ghPath" }, "project.intelligence": false, "project.schemas": false }, "additionalProperties": true, "description": "Settings for a language ID, such as [mdx] or [php]. Runtime project options belong at the top level.", "propertyNames": { "not": { "pattern": "^\\[.*\\]$" } } } };
|
|
826
|
+
const definitions$1 = { "languageOverrides": { "type": "object", "properties": { "agentACP.provider": { "$ref": "#/properties/agentACP.provider" }, "agentACP.codex.command": { "$ref": "#/properties/agentACP.codex.command" }, "agentACP.codex.args": { "$ref": "#/properties/agentACP.codex.args" }, "agentACP.cursor.command": { "$ref": "#/properties/agentACP.cursor.command" }, "agentACP.cursor.args": { "$ref": "#/properties/agentACP.cursor.args" }, "agentACP.amp.command": { "$ref": "#/properties/agentACP.amp.command" }, "agentACP.amp.args": { "$ref": "#/properties/agentACP.amp.args" }, "workbench.keymap": { "$ref": "#/properties/workbench.keymap" }, "runtime.keepAlive": { "$ref": "#/properties/runtime.keepAlive" }, "runtime.autoReconnect": { "$ref": "#/properties/runtime.autoReconnect" }, "workbench.tooltipDelay": { "$ref": "#/properties/workbench.tooltipDelay" }, "workbench.colorTheme": { "$ref": "#/properties/workbench.colorTheme" }, "workbench.density": { "$ref": "#/properties/workbench.density" }, "workbench.sidebarLocation": { "$ref": "#/properties/workbench.sidebarLocation" }, "editor.fontFamily": { "$ref": "#/properties/editor.fontFamily" }, "editor.fontSize": { "$ref": "#/properties/editor.fontSize" }, "editor.lineHeight": { "$ref": "#/properties/editor.lineHeight" }, "editor.fontLigatures": { "$ref": "#/properties/editor.fontLigatures" }, "editor.tabSize": { "$ref": "#/properties/editor.tabSize" }, "editor.insertSpaces": { "$ref": "#/properties/editor.insertSpaces" }, "editor.detectIndentation": { "$ref": "#/properties/editor.detectIndentation" }, "editor.renderIndentGuides": { "$ref": "#/properties/editor.renderIndentGuides" }, "editor.wordWrap": { "$ref": "#/properties/editor.wordWrap" }, "editor.renderWhitespace": { "$ref": "#/properties/editor.renderWhitespace" }, "editor.cursorBlinking": { "$ref": "#/properties/editor.cursorBlinking" }, "editor.minimap": { "$ref": "#/properties/editor.minimap" }, "files.autoSave": { "$ref": "#/properties/files.autoSave" }, "files.autoSaveDelay": { "$ref": "#/properties/files.autoSaveDelay" }, "files.trimTrailingWhitespace": { "$ref": "#/properties/files.trimTrailingWhitespace" }, "editor.formatOnSave": { "$ref": "#/properties/editor.formatOnSave" }, "editor.defaultFormatter": { "$ref": "#/properties/editor.defaultFormatter" }, "terminal.fontSize": { "$ref": "#/properties/terminal.fontSize" }, "terminal.scrollback": { "$ref": "#/properties/terminal.scrollback" }, "terminal.confirmOnKill": { "$ref": "#/properties/terminal.confirmOnKill" }, "scm.autoFetch": { "$ref": "#/properties/scm.autoFetch" }, "scm.diffLayout": { "$ref": "#/properties/scm.diffLayout" }, "files.associations": { "$ref": "#/properties/files.associations" }, "languageServers": { "$ref": "#/properties/languageServers" }, "ui.fontFamily": { "$ref": "#/properties/ui.fontFamily" }, "ui.fontSize": { "$ref": "#/properties/ui.fontSize" }, "ui.fontWeight": { "$ref": "#/properties/ui.fontWeight" }, "ui.fontStyle": { "$ref": "#/properties/ui.fontStyle" }, "ui.lineHeight": { "$ref": "#/properties/ui.lineHeight" }, "ui.letterSpacing": { "$ref": "#/properties/ui.letterSpacing" }, "ui.fontLigatures": { "$ref": "#/properties/ui.fontLigatures" }, "terminal.fontFamily": { "$ref": "#/properties/terminal.fontFamily" }, "terminal.fontWeight": { "$ref": "#/properties/terminal.fontWeight" }, "terminal.fontStyle": { "$ref": "#/properties/terminal.fontStyle" }, "terminal.lineHeight": { "$ref": "#/properties/terminal.lineHeight" }, "terminal.letterSpacing": { "$ref": "#/properties/terminal.letterSpacing" }, "terminal.fontLigatures": { "$ref": "#/properties/terminal.fontLigatures" }, "workbench.iconTheme": { "$ref": "#/properties/workbench.iconTheme" }, "workbench.productIconTheme": { "$ref": "#/properties/workbench.productIconTheme" }, "editor.semanticHighlighting": { "$ref": "#/properties/editor.semanticHighlighting" }, "editor.inlayHints.types": { "$ref": "#/properties/editor.inlayHints.types" }, "editor.inlayHints.parameters": { "$ref": "#/properties/editor.inlayHints.parameters" }, "editor.largeFileIntelligence": { "$ref": "#/properties/editor.largeFileIntelligence" }, "workbench.locale": { "$ref": "#/properties/workbench.locale" }, "workbench.reducedMotion": { "$ref": "#/properties/workbench.reducedMotion" }, "desktop.projects.openBehavior": { "$ref": "#/properties/desktop.projects.openBehavior" }, "desktop.tools.gitPath": { "$ref": "#/properties/desktop.tools.gitPath" }, "desktop.tools.ghPath": { "$ref": "#/properties/desktop.tools.ghPath" }, "project.intelligence": false, "project.schemas": false }, "additionalProperties": true, "description": "Settings for a language ID, such as [mdx] or [php]. Runtime project options belong at the top level.", "propertyNames": { "not": { "pattern": "^\\[.*\\]$" } } } };
|
|
801
827
|
const schema = {
|
|
802
828
|
$schema: $schema$2,
|
|
803
829
|
$id: $id$1,
|
|
@@ -3016,10 +3042,10 @@ class TaskWorktrees {
|
|
|
3016
3042
|
async records() {
|
|
3017
3043
|
const text2 = await readOptional(this.file);
|
|
3018
3044
|
if (!text2) return [];
|
|
3019
|
-
const
|
|
3020
|
-
if (!Array.isArray(
|
|
3045
|
+
const records2 = JSON.parse(text2);
|
|
3046
|
+
if (!Array.isArray(records2))
|
|
3021
3047
|
throw new RpcError("INVALID_STATE", "Invalid worktree registry");
|
|
3022
|
-
for (const record of
|
|
3048
|
+
for (const record of records2) {
|
|
3023
3049
|
this.validate(record);
|
|
3024
3050
|
if (!["creating", "removing"].includes(record.state)) continue;
|
|
3025
3051
|
let active = false;
|
|
@@ -3036,13 +3062,13 @@ class TaskWorktrees {
|
|
|
3036
3062
|
record.message = "Worktree operation was interrupted. Inspect its files and retry the remaining phase explicitly.";
|
|
3037
3063
|
}
|
|
3038
3064
|
}
|
|
3039
|
-
return
|
|
3065
|
+
return records2;
|
|
3040
3066
|
}
|
|
3041
|
-
async persist(
|
|
3067
|
+
async persist(records2) {
|
|
3042
3068
|
const text2 = await readOptional(this.file);
|
|
3043
3069
|
await atomicWrite(
|
|
3044
3070
|
this.file,
|
|
3045
|
-
JSON.stringify(
|
|
3071
|
+
JSON.stringify(records2, null, 2),
|
|
3046
3072
|
text2 === null ? null : createHash("sha256").update(text2).digest("hex")
|
|
3047
3073
|
);
|
|
3048
3074
|
}
|
|
@@ -3111,7 +3137,7 @@ ${command}`,
|
|
|
3111
3137
|
void 0,
|
|
3112
3138
|
signal
|
|
3113
3139
|
);
|
|
3114
|
-
const catalog = await this.store.catalog(),
|
|
3140
|
+
const catalog = await this.store.catalog(), records2 = await this.records(), id = randomUUID();
|
|
3115
3141
|
const record = {
|
|
3116
3142
|
id,
|
|
3117
3143
|
path: path.join(this.store.projectHome, "worktrees", id),
|
|
@@ -3123,8 +3149,8 @@ ${command}`,
|
|
|
3123
3149
|
env: catalog.env,
|
|
3124
3150
|
sourceDir: this.store.root
|
|
3125
3151
|
};
|
|
3126
|
-
|
|
3127
|
-
await this.persist(
|
|
3152
|
+
records2.push(record);
|
|
3153
|
+
await this.persist(records2);
|
|
3128
3154
|
await fs.mkdir(record.preinitDir, { recursive: true, mode: 448 });
|
|
3129
3155
|
await fs.mkdir(path.dirname(record.path), {
|
|
3130
3156
|
recursive: true,
|
|
@@ -3141,12 +3167,12 @@ ${command}`,
|
|
|
3141
3167
|
);
|
|
3142
3168
|
await this.phase(record, "init", owner, signal);
|
|
3143
3169
|
record.state = "ready";
|
|
3144
|
-
await this.persist(
|
|
3170
|
+
await this.persist(records2);
|
|
3145
3171
|
return record;
|
|
3146
3172
|
} catch (error) {
|
|
3147
3173
|
record.state = "init-failed";
|
|
3148
3174
|
record.message = error.message;
|
|
3149
|
-
await this.persist(
|
|
3175
|
+
await this.persist(records2);
|
|
3150
3176
|
throw new RpcError(
|
|
3151
3177
|
"WORKTREE_FAILED",
|
|
3152
3178
|
`${record.message}. The worktree record is retained for inspection/retry.`,
|
|
@@ -3167,7 +3193,7 @@ ${command}`,
|
|
|
3167
3193
|
return fileLock(
|
|
3168
3194
|
path.join(this.store.projectHome, "worktree-operation"),
|
|
3169
3195
|
async () => {
|
|
3170
|
-
const
|
|
3196
|
+
const records2 = await this.records(), record = records2.find((item) => item.id === id);
|
|
3171
3197
|
if (!record || record.state !== "init-failed")
|
|
3172
3198
|
throw new RpcError(
|
|
3173
3199
|
"INVALID_STATE",
|
|
@@ -3188,7 +3214,7 @@ ${command}`,
|
|
|
3188
3214
|
record.message = error.message;
|
|
3189
3215
|
throw error;
|
|
3190
3216
|
} finally {
|
|
3191
|
-
await this.persist(
|
|
3217
|
+
await this.persist(records2);
|
|
3192
3218
|
}
|
|
3193
3219
|
return record;
|
|
3194
3220
|
}
|
|
@@ -3198,7 +3224,7 @@ ${command}`,
|
|
|
3198
3224
|
return fileLock(
|
|
3199
3225
|
path.join(this.store.projectHome, "worktree-operation"),
|
|
3200
3226
|
async () => {
|
|
3201
|
-
const
|
|
3227
|
+
const records2 = await this.records(), record = records2.find((item) => item.id === id);
|
|
3202
3228
|
if (!record || record.state === "removed")
|
|
3203
3229
|
throw new RpcError("NOT_FOUND", "Managed worktree was not found");
|
|
3204
3230
|
this.validate(record);
|
|
@@ -3239,7 +3265,7 @@ ${command}`,
|
|
|
3239
3265
|
record.state = "removing";
|
|
3240
3266
|
record.operationPid = process.pid;
|
|
3241
3267
|
record.message = void 0;
|
|
3242
|
-
await this.persist(
|
|
3268
|
+
await this.persist(records2);
|
|
3243
3269
|
let removed = !exists;
|
|
3244
3270
|
try {
|
|
3245
3271
|
if (exists) {
|
|
@@ -3256,13 +3282,13 @@ ${command}`,
|
|
|
3256
3282
|
}
|
|
3257
3283
|
await this.phase(record, "teardown", owner, signal);
|
|
3258
3284
|
record.state = "removed";
|
|
3259
|
-
await this.persist(
|
|
3285
|
+
await this.persist(records2);
|
|
3260
3286
|
await fs.rm(record.preinitDir, { recursive: true, force: true });
|
|
3261
3287
|
return { id, removed: true };
|
|
3262
3288
|
} catch (error) {
|
|
3263
3289
|
record.state = removed ? "teardown-failed" : previousState === "init-failed" ? "init-failed" : "ready";
|
|
3264
3290
|
record.message = error.message;
|
|
3265
|
-
await this.persist(
|
|
3291
|
+
await this.persist(records2);
|
|
3266
3292
|
throw error;
|
|
3267
3293
|
}
|
|
3268
3294
|
}
|
|
@@ -3376,9 +3402,9 @@ class Git {
|
|
|
3376
3402
|
this.head(signal)
|
|
3377
3403
|
]);
|
|
3378
3404
|
const changes = [];
|
|
3379
|
-
const
|
|
3380
|
-
for (let i = 0; i <
|
|
3381
|
-
const row =
|
|
3405
|
+
const records2 = raw.stdout.split("\0");
|
|
3406
|
+
for (let i = 0; i < records2.length; i++) {
|
|
3407
|
+
const row = records2[i];
|
|
3382
3408
|
if (!row) continue;
|
|
3383
3409
|
const change = {
|
|
3384
3410
|
path: row.slice(3),
|
|
@@ -3387,7 +3413,7 @@ class Git {
|
|
|
3387
3413
|
conflict: conflicted(row[0], row[1])
|
|
3388
3414
|
};
|
|
3389
3415
|
if (/[RC]/.test(change.index + change.working))
|
|
3390
|
-
change.originalPath =
|
|
3416
|
+
change.originalPath = records2[++i];
|
|
3391
3417
|
changes.push(change);
|
|
3392
3418
|
}
|
|
3393
3419
|
const branches = refs.stdout.trim().split("\n").filter(Boolean).map((row) => {
|
|
@@ -4468,8 +4494,8 @@ class LanguageServer {
|
|
|
4468
4494
|
const companion = this.launchSpec.companion;
|
|
4469
4495
|
this.companion = new LanguageServer(this.files, (method, params) => {
|
|
4470
4496
|
if (method === "textDocument/publishDiagnostics") {
|
|
4471
|
-
const
|
|
4472
|
-
if (params.version !== void 0 && params.version !==
|
|
4497
|
+
const version = this.companion?.versions()[params.uri];
|
|
4498
|
+
if (params.version !== void 0 && params.version !== version) return;
|
|
4473
4499
|
this.companionDiagnostics.set(params.uri, params.diagnostics ?? []);
|
|
4474
4500
|
this.emit(method, { ...params, version: this.documents.get(params.uri)?.version, diagnostics: [...this.primaryDiagnostics.get(params.uri) ?? [], ...params.diagnostics ?? []] });
|
|
4475
4501
|
} else if (method === "window/logMessage" || method === "$/progress") this.emit(method, params);
|
|
@@ -4786,12 +4812,12 @@ class LanguageServer {
|
|
|
4786
4812
|
await this.start();
|
|
4787
4813
|
await this.validate(requestParamsForValidation(method, params), /^(callHierarchy|typeHierarchy)\//.test(method));
|
|
4788
4814
|
if (method !== "workspace/executeCommand") {
|
|
4789
|
-
const uri = params?.textDocument?.uri, doc = this.documents.get(uri),
|
|
4815
|
+
const uri = params?.textDocument?.uri, doc = this.documents.get(uri), version = doc?.version, generation = this.generation;
|
|
4790
4816
|
const capability = lspCapabilityKeys[method];
|
|
4791
4817
|
if (capability && !this.effective(uri)[capability]) throw new RpcError("LSP_UNSUPPORTED", `Language server does not support ${method}`);
|
|
4792
4818
|
if (method === "textDocument/willSaveWaitUntil" && !this.syncOptions(uri).willSaveWaitUntil) return [];
|
|
4793
4819
|
const result = await this.providerRequest(method, params, signal);
|
|
4794
|
-
if (generation !== this.generation || doc && doc.version !==
|
|
4820
|
+
if (generation !== this.generation || doc && doc.version !== version) throw new RpcError("CANCELLED", "Language response is obsolete");
|
|
4795
4821
|
return result;
|
|
4796
4822
|
}
|
|
4797
4823
|
if (this.companion && !(this.primaryCapabilities?.executeCommandProvider?.commands ?? []).includes(params?.command) && (this.companion.status().capabilities?.executeCommandProvider?.commands ?? []).includes(params?.command)) return this.companion.request(method, params, signal, applyEdit);
|
|
@@ -5133,14 +5159,15 @@ async function resolveLaunch(id, root, installer, signal) {
|
|
|
5133
5159
|
}
|
|
5134
5160
|
return spec;
|
|
5135
5161
|
}
|
|
5136
|
-
const packages$1 = /* @__PURE__ */ JSON.parse('{"":{"name":"oxbit-managed-language-servers","version":"1.0.0","dependencies":{"@astrojs/language-server":"2.16.16","@mdx-js/language-server":"0.6.4","@vue/language-server":"3.3.11","@vue/typescript-plugin":"3.3.11","bash-language-server":"5.6.0","dockerfile-language-server-nodejs":"0.15.0","intelephense":"1.18.5","typescript":"5.9.3","typescript-language-server":"5.3.0","vscode-langservers-extracted":"4.10.0"}},"node_modules/@astrojs/compiler":{"version":"2.13.1","resolved":"https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.13.1.tgz","integrity":"sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg==","license":"MIT"},"node_modules/@astrojs/language-server":{"version":"2.16.16","resolved":"https://registry.npmjs.org/@astrojs/language-server/-/language-server-2.16.16.tgz","integrity":"sha512-KuS17AOOqH/M5mHXPmKvtp8L+NNteARC7Xjf395+9R9dtJOBndqdStwU4V+OKzYZpgZ+hliV13knzx/oMtFl7Q==","license":"MIT","dependencies":{"@astrojs/compiler":"^2.13.1","@astrojs/yaml2ts":"^0.2.4","@jridgewell/sourcemap-codec":"^1.5.5","@volar/kit":"~2.4.28","@volar/language-core":"~2.4.28","@volar/language-server":"~2.4.28","@volar/language-service":"~2.4.28","muggle-string":"^0.4.1","tinyglobby":"^0.2.16","volar-service-css":"0.0.71","volar-service-emmet":"0.0.71","volar-service-html":"0.0.71","volar-service-prettier":"0.0.71","volar-service-typescript":"0.0.71","volar-service-typescript-twoslash-queries":"0.0.71","volar-service-yaml":"0.0.71","vscode-html-languageservice":"^5.6.2","vscode-uri":"^3.1.0"},"bin":{"astro-ls":"bin/nodeServer.js"},"peerDependencies":{"prettier":"^3.0.0","prettier-plugin-astro":">=0.11.0"},"peerDependenciesMeta":{"prettier":{"optional":true},"prettier-plugin-astro":{"optional":true}}},"node_modules/@astrojs/yaml2ts":{"version":"0.2.4","resolved":"https://registry.npmjs.org/@astrojs/yaml2ts/-/yaml2ts-0.2.4.tgz","integrity":"sha512-8oddpOae35pJsXPQXhTkM0ypfKPskVsh2bCxRtbf7e+/Epw2nReakFYpLKjZMEr75CsoF203PMnCocpfz0s69A==","license":"MIT","dependencies":{"yaml":"^2.8.3"}},"node_modules/@azure/abort-controller":{"version":"2.2.0","resolved":"https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.2.0.tgz","integrity":"sha512-fNAjWnA/nZ2jz31kxR/AqRaUT8ewHBw/WuBIosK0moMy1C9e5ValbDfFdIxJzVOOYaYkV/b2F1S4H/aHiqfVQg==","license":"MIT","dependencies":{"tslib":"^2.6.2"},"engines":{"node":">=22.0.0"}},"node_modules/@azure/core-auth":{"version":"1.7.2","resolved":"https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.7.2.tgz","integrity":"sha512-Igm/S3fDYmnMq1uKS38Ae1/m37B3zigdlZw+kocwEhh5GjyKjPrXKO2J6rzpC1wAxrNil/jX9BJRqBshyjnF3g==","license":"MIT","dependencies":{"@azure/abort-controller":"^2.0.0","@azure/core-util":"^1.1.0","tslib":"^2.6.2"},"engines":{"node":">=18.0.0"}},"node_modules/@azure/core-rest-pipeline":{"version":"1.16.3","resolved":"https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.3.tgz","integrity":"sha512-VxLk4AHLyqcHsfKe4MZ6IQ+D+ShuByy+RfStKfSjxJoL3WBWq17VNmrz8aT8etKzqc2nAeIyLxScjpzsS4fz8w==","license":"MIT","dependencies":{"@azure/abort-controller":"^2.0.0","@azure/core-auth":"^1.4.0","@azure/core-tracing":"^1.0.1","@azure/core-util":"^1.9.0","@azure/logger":"^1.0.0","http-proxy-agent":"^7.0.0","https-proxy-agent":"^7.0.0","tslib":"^2.6.2"},"engines":{"node":">=18.0.0"}},"node_modules/@azure/core-tracing":{"version":"1.4.0","resolved":"https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.4.0.tgz","integrity":"sha512-eGwxD0AtncrxeBM4tG8R55Pc3rdX1hNW2WibJAgYpCVA6E93mvvVH+LcssoVjOBrSKWS55yEIHsk0X8ctHmfOQ==","license":"MIT","dependencies":{"tslib":"^2.6.2"},"engines":{"node":">=22.0.0"}},"node_modules/@azure/core-util":{"version":"1.14.0","resolved":"https://registry.npmjs.org/@azure/core-util/-/core-util-1.14.0.tgz","integrity":"sha512-9n2pWK61veAuN0V20t9lOuoV4CFMdyAZ1ygZzvBGk/pBBJRib/PjL9PLXa/aI2CcPpyHfqVsxxqLCYl6uZlfDw==","license":"MIT","dependencies":{"@azure/abort-controller":"^2.1.2","@typespec/ts-http-runtime":"^0.3.0","tslib":"^2.6.2"},"engines":{"node":">=22.0.0"}},"node_modules/@azure/logger":{"version":"1.4.0","resolved":"https://registry.npmjs.org/@azure/logger/-/logger-1.4.0.tgz","integrity":"sha512-rbAE25KUfjU/s3XHUdJgceoCP5dEOpMx85J04kF+QMdta73XkuG9JGHHinch+XIoKpBdqljin+KqURpJriSzLA==","license":"MIT","dependencies":{"@typespec/ts-http-runtime":"^0.3.0","tslib":"^2.6.2"},"engines":{"node":">=22.0.0"}},"node_modules/@azure/opentelemetry-instrumentation-azure-sdk":{"version":"1.0.0","resolved":"https://registry.npmjs.org/@azure/opentelemetry-instrumentation-azure-sdk/-/opentelemetry-instrumentation-azure-sdk-1.0.0.tgz","integrity":"sha512-Y8rZOIMXQY/GwNRL+uLVuwIn9aEa/KnnggyYUmFxC1MigmRJCNH5NxMmxKSpddXF9SW6Z1ijRd6Pptd2A5OhGw==","license":"MIT","dependencies":{"@azure/core-tracing":"^1.2.0","@azure/logger":"^1.0.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"^0.211.0","@opentelemetry/sdk-trace-web":"^2.0.0","tslib":"^2.7.0"},"engines":{"node":">=20.0.0"}},"node_modules/@azure/opentelemetry-instrumentation-azure-sdk/node_modules/@opentelemetry/core":{"version":"2.11.0","resolved":"https://registry.npmjs.org/@opentelemetry/core/-/core-2.11.0.tgz","integrity":"sha512-7YP44XH0tV6+Mb54x2YGf84i7yi+31MBZlE8JwvozkxyTvXbSp10X7cI7YE49ChJ3shMJoBmCJF3+1QFBJctGA==","license":"Apache-2.0","dependencies":{"@opentelemetry/semantic-conventions":"^1.29.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"}},"node_modules/@babel/helper-string-parser":{"version":"7.29.7","resolved":"https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz","integrity":"sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==","license":"MIT","engines":{"node":">=6.9.0"}},"node_modules/@babel/helper-validator-identifier":{"version":"7.29.7","resolved":"https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz","integrity":"sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==","license":"MIT","engines":{"node":">=6.9.0"}},"node_modules/@babel/parser":{"version":"7.29.8","resolved":"https://registry.npmjs.org/@babel/parser/-/parser-7.29.8.tgz","integrity":"sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==","license":"MIT","dependencies":{"@babel/types":"^7.29.8"},"bin":{"parser":"bin/babel-parser.js"},"engines":{"node":">=6.0.0"}},"node_modules/@babel/types":{"version":"7.29.8","resolved":"https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz","integrity":"sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==","license":"MIT","dependencies":{"@babel/helper-string-parser":"^7.29.7","@babel/helper-validator-identifier":"^7.29.7"},"engines":{"node":">=6.9.0"}},"node_modules/@bmewburn/js-beautify":{"version":"1.15.4","resolved":"https://registry.npmjs.org/@bmewburn/js-beautify/-/js-beautify-1.15.4.tgz","integrity":"sha512-/fSotOVaY2IQWXofuxXn1T+Fq8m0tNpp96LBYUXgjiF9gh8v/fhvXU+Fvaozlgk3FNFYxMP/wBIjU7FHRCVsuA==","license":"MIT","engines":{"node":">=14"}},"node_modules/@bmewburn/vscode-html-languageserver":{"version":"1.11.1","resolved":"https://registry.npmjs.org/@bmewburn/vscode-html-languageserver/-/vscode-html-languageserver-1.11.1.tgz","integrity":"sha512-EUfOfj6xIQ3u+mZqMwfzUDv5SVCaUo0A6Lz2651M91Q+2trqJDdk6sqhXUc9tcuWYOGLr5HVctkt1kfZFZsHjQ==","license":"MIT","dependencies":{"@vscode/l10n":"^0.0.18","typescript":"^5.9.3","vscode-css-languageservice":"^6.3.8","vscode-html-languageservice":"^5.6.0","vscode-languageserver":"^9.0.1","vscode-languageserver-protocol":"~3.17.5","vscode-languageserver-textdocument":"^1.0.11","vscode-languageserver-types":"~3.17.5","vscode-uri":"^3.0.8"},"engines":{"node":"*"}},"node_modules/@bmewburn/vscode-html-languageserver/node_modules/vscode-jsonrpc":{"version":"8.2.0","resolved":"https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz","integrity":"sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==","license":"MIT","engines":{"node":">=14.0.0"}},"node_modules/@bmewburn/vscode-html-languageserver/node_modules/vscode-languageserver-protocol":{"version":"3.17.5","resolved":"https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz","integrity":"sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==","license":"MIT","dependencies":{"vscode-jsonrpc":"8.2.0","vscode-languageserver-types":"3.17.5"}},"node_modules/@bmewburn/vscode-html-languageserver/node_modules/vscode-languageserver-types":{"version":"3.17.5","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz","integrity":"sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==","license":"MIT"},"node_modules/@emmetio/abbreviation":{"version":"2.3.3","resolved":"https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.3.3.tgz","integrity":"sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==","license":"MIT","dependencies":{"@emmetio/scanner":"^1.0.4"}},"node_modules/@emmetio/css-abbreviation":{"version":"2.1.8","resolved":"https://registry.npmjs.org/@emmetio/css-abbreviation/-/css-abbreviation-2.1.8.tgz","integrity":"sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==","license":"MIT","dependencies":{"@emmetio/scanner":"^1.0.4"}},"node_modules/@emmetio/css-parser":{"version":"0.4.1","resolved":"https://registry.npmjs.org/@emmetio/css-parser/-/css-parser-0.4.1.tgz","integrity":"sha512-2bC6m0MV/voF4CTZiAbG5MWKbq5EBmDPKu9Sb7s7nVcEzNQlrZP6mFFFlIaISM8X6514H9shWMme1fCm8cWAfQ==","license":"MIT","dependencies":{"@emmetio/stream-reader":"^2.2.0","@emmetio/stream-reader-utils":"^0.1.0"}},"node_modules/@emmetio/html-matcher":{"version":"1.3.0","resolved":"https://registry.npmjs.org/@emmetio/html-matcher/-/html-matcher-1.3.0.tgz","integrity":"sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==","license":"ISC","dependencies":{"@emmetio/scanner":"^1.0.0"}},"node_modules/@emmetio/scanner":{"version":"1.0.4","resolved":"https://registry.npmjs.org/@emmetio/scanner/-/scanner-1.0.4.tgz","integrity":"sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==","license":"MIT"},"node_modules/@emmetio/stream-reader":{"version":"2.2.0","resolved":"https://registry.npmjs.org/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz","integrity":"sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==","license":"MIT"},"node_modules/@emmetio/stream-reader-utils":{"version":"0.1.0","resolved":"https://registry.npmjs.org/@emmetio/stream-reader-utils/-/stream-reader-utils-0.1.0.tgz","integrity":"sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==","license":"MIT"},"node_modules/@johnsoncodehk/pug-beautify":{"version":"0.2.2","resolved":"https://registry.npmjs.org/@johnsoncodehk/pug-beautify/-/pug-beautify-0.2.2.tgz","integrity":"sha512-qqNS/YD0Nck5wtQLCPHAfGVgWbbGafxSPjNh0ekYPFSNNqnDH2kamnduzYly8IiADmeVx/MfAE1njMEjVeHTMA==","license":"MIT"},"node_modules/@jridgewell/sourcemap-codec":{"version":"1.6.0","resolved":"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz","integrity":"sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==","license":"MIT"},"node_modules/@mdx-js/language-server":{"version":"0.6.4","resolved":"https://registry.npmjs.org/@mdx-js/language-server/-/language-server-0.6.4.tgz","integrity":"sha512-FuHTy1Uvs2/I0ULSsGK+F+gja/1jvGhx6Mtnqw93jIIPh+3oQEtX4fpCh5wpdQPK9aaef+DKwGXttOTKZV/DBw==","license":"MIT","dependencies":{"@mdx-js/language-service":"0.7.4","@volar/language-server":"~2.4.0","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.0","volar-service-markdown":"0.0.65","volar-service-typescript":"0.0.65","vscode-languageserver-protocol":"~3.17.0","vscode-languageserver-types":"~3.17.0"},"bin":{"mdx-language-server":"lib/index.js"},"funding":{"url":"https://opencollective.com/unified"}},"node_modules/@mdx-js/language-server/node_modules/volar-service-typescript":{"version":"0.0.65","resolved":"https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.65.tgz","integrity":"sha512-zPJuLIMs7lkQCvL+Rza8+3/EIoXEIkX8+DL7bNNfPgnbalbvRDhqWLVMJ6Zk3pINjLJafDqyhSbw8srfkUv97w==","license":"MIT","dependencies":{"path-browserify":"^1.0.1","semver":"^7.6.2","typescript-auto-import-cache":"^0.3.5","vscode-languageserver-textdocument":"^1.0.11","vscode-nls":"^5.2.0","vscode-uri":"^3.0.8"},"peerDependencies":{"@volar/language-service":"~2.4.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true}}},"node_modules/@mdx-js/language-server/node_modules/vscode-jsonrpc":{"version":"8.2.0","resolved":"https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz","integrity":"sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==","license":"MIT","engines":{"node":">=14.0.0"}},"node_modules/@mdx-js/language-server/node_modules/vscode-languageserver-protocol":{"version":"3.17.5","resolved":"https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz","integrity":"sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==","license":"MIT","dependencies":{"vscode-jsonrpc":"8.2.0","vscode-languageserver-types":"3.17.5"}},"node_modules/@mdx-js/language-server/node_modules/vscode-languageserver-types":{"version":"3.17.5","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz","integrity":"sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==","license":"MIT"},"node_modules/@mdx-js/language-service":{"version":"0.7.4","resolved":"https://registry.npmjs.org/@mdx-js/language-service/-/language-service-0.7.4.tgz","integrity":"sha512-HwiY245uxVCeEzANOOCX0fbRGsVItjVv9guNCBQPWWrTEcy71KhPZ28MNEQy82fiSUUfIpMxzgUUCdQGGCh3uA==","license":"MIT","dependencies":{"@types/estree":"^1.0.0","@types/mdast":"^4.0.0","@types/unist":"^3.0.0","@volar/language-service":"~2.4.0","acorn":"^8.0.0","acorn-jsx":"^5.0.0","acorn-loose":"^8.0.0","estree-util-scope":"^1.0.0","estree-walker":"^3.0.0","mdast-util-mdxjs-esm":"^2.0.0","mdast-util-to-markdown":"^2.0.0","remark-mdx":"^3.0.0","remark-parse":"^11.0.0","unified":"^11.0.0","unist-util-lsp":"^2.0.0","unist-util-visit-parents":"^6.0.0","vfile-message":"^4.0.0","vscode-uri":"^3.0.0"},"funding":{"url":"https://opencollective.com/unified"}},"node_modules/@mdx-js/language-service/node_modules/estree-walker":{"version":"3.0.3","resolved":"https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz","integrity":"sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==","license":"MIT","dependencies":{"@types/estree":"^1.0.0"}},"node_modules/@microsoft/applicationinsights-web-snippet":{"version":"1.0.1","resolved":"https://registry.npmjs.org/@microsoft/applicationinsights-web-snippet/-/applicationinsights-web-snippet-1.0.1.tgz","integrity":"sha512-2IHAOaLauc8qaAitvWS+U931T+ze+7MNWrDHY47IENP5y2UA0vqJDu67kWZDdpCN1fFC77sfgfB+HV7SrKshnQ==","license":"MIT"},"node_modules/@mixmark-io/domino":{"version":"2.2.0","resolved":"https://registry.npmjs.org/@mixmark-io/domino/-/domino-2.2.0.tgz","integrity":"sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==","license":"BSD-2-Clause"},"node_modules/@nodelib/fs.scandir":{"version":"2.1.5","resolved":"https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz","integrity":"sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==","license":"MIT","dependencies":{"@nodelib/fs.stat":"2.0.5","run-parallel":"^1.1.9"},"engines":{"node":">= 8"}},"node_modules/@nodelib/fs.stat":{"version":"2.0.5","resolved":"https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz","integrity":"sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==","license":"MIT","engines":{"node":">= 8"}},"node_modules/@nodelib/fs.walk":{"version":"1.2.8","resolved":"https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz","integrity":"sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==","license":"MIT","dependencies":{"@nodelib/fs.scandir":"2.1.5","fastq":"^1.6.0"},"engines":{"node":">= 8"}},"node_modules/@one-ini/wasm":{"version":"0.2.0","resolved":"https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.2.0.tgz","integrity":"sha512-n+L/BvrwKUn7q5O3wHGo+CJZAqfewh38+37sk+eBzv/39lM9pPgPRd4sOZRvSRzo0ukLxzyXso4WlGj2oKZ5hA==","license":"MIT"},"node_modules/@opentelemetry/api":{"version":"1.9.1","resolved":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.1.tgz","integrity":"sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==","license":"Apache-2.0","engines":{"node":">=8.0.0"}},"node_modules/@opentelemetry/api-logs":{"version":"0.211.0","resolved":"https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.211.0.tgz","integrity":"sha512-swFdZq8MCdmdR22jTVGQDhwqDzcI4M10nhjXkLr1EsIzXgZBqm4ZlmmcWsg3TSNf+3mzgOiqveXmBLZuDi2Lgg==","license":"Apache-2.0","dependencies":{"@opentelemetry/api":"^1.3.0"},"engines":{"node":">=8.0.0"}},"node_modules/@opentelemetry/core":{"version":"1.30.1","resolved":"https://registry.npmjs.org/@opentelemetry/core/-/core-1.30.1.tgz","integrity":"sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==","license":"Apache-2.0","dependencies":{"@opentelemetry/semantic-conventions":"1.28.0"},"engines":{"node":">=14"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"}},"node_modules/@opentelemetry/core/node_modules/@opentelemetry/semantic-conventions":{"version":"1.28.0","resolved":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz","integrity":"sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==","license":"Apache-2.0","engines":{"node":">=14"}},"node_modules/@opentelemetry/instrumentation":{"version":"0.211.0","resolved":"https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.211.0.tgz","integrity":"sha512-h0nrZEC/zvI994nhg7EgQ8URIHt0uDTwN90r3qQUdZORS455bbx+YebnGeEuFghUT0HlJSrLF4iHw67f+odY+Q==","license":"Apache-2.0","dependencies":{"@opentelemetry/api-logs":"0.211.0","import-in-the-middle":"^2.0.0","require-in-the-middle":"^8.0.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"peerDependencies":{"@opentelemetry/api":"^1.3.0"}},"node_modules/@opentelemetry/resources":{"version":"1.30.1","resolved":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.30.1.tgz","integrity":"sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==","license":"Apache-2.0","dependencies":{"@opentelemetry/core":"1.30.1","@opentelemetry/semantic-conventions":"1.28.0"},"engines":{"node":">=14"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"}},"node_modules/@opentelemetry/resources/node_modules/@opentelemetry/semantic-conventions":{"version":"1.28.0","resolved":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz","integrity":"sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==","license":"Apache-2.0","engines":{"node":">=14"}},"node_modules/@opentelemetry/sdk-trace":{"version":"2.11.0","resolved":"https://registry.npmjs.org/@opentelemetry/sdk-trace/-/sdk-trace-2.11.0.tgz","integrity":"sha512-fFnTqGm8/G73GQVnxYi7LXa1ZVYEUvgL6XI1LpvV0bPC7WQ/ZGgKxCSl8FnlZBKto9JHHEFTO6s6CUpvvtwFrA==","license":"Apache-2.0","dependencies":{"@opentelemetry/core":"2.11.0","@opentelemetry/resources":"2.11.0","@opentelemetry/semantic-conventions":"^1.29.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"peerDependencies":{"@opentelemetry/api":">=1.3.0 <1.10.0"}},"node_modules/@opentelemetry/sdk-trace-base":{"version":"1.30.1","resolved":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.30.1.tgz","integrity":"sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==","license":"Apache-2.0","dependencies":{"@opentelemetry/core":"1.30.1","@opentelemetry/resources":"1.30.1","@opentelemetry/semantic-conventions":"1.28.0"},"engines":{"node":">=14"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"}},"node_modules/@opentelemetry/sdk-trace-base/node_modules/@opentelemetry/semantic-conventions":{"version":"1.28.0","resolved":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.28.0.tgz","integrity":"sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==","license":"Apache-2.0","engines":{"node":">=14"}},"node_modules/@opentelemetry/sdk-trace-web":{"version":"2.11.0","resolved":"https://registry.npmjs.org/@opentelemetry/sdk-trace-web/-/sdk-trace-web-2.11.0.tgz","integrity":"sha512-8hgLI437x8VRKzgUr+WRcHFp9AeaHmveKRsPIMNele9tethgCKprakRRqZCWyt41ilALHATfspUMl1An0OTMUQ==","license":"Apache-2.0","dependencies":{"@opentelemetry/core":"2.11.0","@opentelemetry/sdk-trace-base":"2.11.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"}},"node_modules/@opentelemetry/sdk-trace-web/node_modules/@opentelemetry/core":{"version":"2.11.0","resolved":"https://registry.npmjs.org/@opentelemetry/core/-/core-2.11.0.tgz","integrity":"sha512-7YP44XH0tV6+Mb54x2YGf84i7yi+31MBZlE8JwvozkxyTvXbSp10X7cI7YE49ChJ3shMJoBmCJF3+1QFBJctGA==","license":"Apache-2.0","dependencies":{"@opentelemetry/semantic-conventions":"^1.29.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"}},"node_modules/@opentelemetry/sdk-trace-web/node_modules/@opentelemetry/resources":{"version":"2.11.0","resolved":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.11.0.tgz","integrity":"sha512-Ie7+8q8MDF4FAEQCKVMTx3ReUvxiIAgIiiW3c9JdmP8+HMcDy20puT+AHjexnExgnbvBxjQ9fjkFDWrikJ2jQA==","license":"Apache-2.0","dependencies":{"@opentelemetry/core":"2.11.0","@opentelemetry/semantic-conventions":"^1.29.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"peerDependencies":{"@opentelemetry/api":">=1.3.0 <1.10.0"}},"node_modules/@opentelemetry/sdk-trace-web/node_modules/@opentelemetry/sdk-trace-base":{"version":"2.11.0","resolved":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.11.0.tgz","integrity":"sha512-H19x/TX/LZdqiYOjM7fqtSxwlplC5pgelavqbQdHbhdq0q/AI/TGkM2dfGuuynTXmJPeF2HoZVoPDu+TGoW78A==","license":"Apache-2.0","dependencies":{"@opentelemetry/core":"2.11.0","@opentelemetry/resources":"2.11.0","@opentelemetry/sdk-trace":"2.11.0","@opentelemetry/semantic-conventions":"^1.29.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"peerDependencies":{"@opentelemetry/api":">=1.3.0 <1.10.0"}},"node_modules/@opentelemetry/sdk-trace/node_modules/@opentelemetry/core":{"version":"2.11.0","resolved":"https://registry.npmjs.org/@opentelemetry/core/-/core-2.11.0.tgz","integrity":"sha512-7YP44XH0tV6+Mb54x2YGf84i7yi+31MBZlE8JwvozkxyTvXbSp10X7cI7YE49ChJ3shMJoBmCJF3+1QFBJctGA==","license":"Apache-2.0","dependencies":{"@opentelemetry/semantic-conventions":"^1.29.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"}},"node_modules/@opentelemetry/sdk-trace/node_modules/@opentelemetry/resources":{"version":"2.11.0","resolved":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.11.0.tgz","integrity":"sha512-Ie7+8q8MDF4FAEQCKVMTx3ReUvxiIAgIiiW3c9JdmP8+HMcDy20puT+AHjexnExgnbvBxjQ9fjkFDWrikJ2jQA==","license":"Apache-2.0","dependencies":{"@opentelemetry/core":"2.11.0","@opentelemetry/semantic-conventions":"^1.29.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"peerDependencies":{"@opentelemetry/api":">=1.3.0 <1.10.0"}},"node_modules/@opentelemetry/semantic-conventions":{"version":"1.43.0","resolved":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.43.0.tgz","integrity":"sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==","license":"Apache-2.0","engines":{"node":">=14"}},"node_modules/@selderee/plugin-htmlparser2":{"version":"0.11.0","resolved":"https://registry.npmjs.org/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.11.0.tgz","integrity":"sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==","license":"MIT","dependencies":{"domhandler":"^5.0.3","selderee":"^0.11.0"},"funding":{"url":"https://ko-fi.com/killymxi"}},"node_modules/@tootallnate/quickjs-emscripten":{"version":"0.23.0","resolved":"https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz","integrity":"sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==","license":"MIT"},"node_modules/@types/debug":{"version":"4.1.13","resolved":"https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz","integrity":"sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==","license":"MIT","dependencies":{"@types/ms":"*"}},"node_modules/@types/estree":{"version":"1.0.9","resolved":"https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz","integrity":"sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==","license":"MIT"},"node_modules/@types/estree-jsx":{"version":"1.0.5","resolved":"https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz","integrity":"sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==","license":"MIT","dependencies":{"@types/estree":"*"}},"node_modules/@types/hast":{"version":"3.0.5","resolved":"https://registry.npmjs.org/@types/hast/-/hast-3.0.5.tgz","integrity":"sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==","license":"MIT","dependencies":{"@types/unist":"*"}},"node_modules/@types/mdast":{"version":"4.0.4","resolved":"https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz","integrity":"sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==","license":"MIT","dependencies":{"@types/unist":"*"}},"node_modules/@types/ms":{"version":"2.1.0","resolved":"https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz","integrity":"sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==","license":"MIT"},"node_modules/@types/unist":{"version":"3.0.3","resolved":"https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz","integrity":"sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==","license":"MIT"},"node_modules/@typespec/ts-http-runtime":{"version":"0.3.9","resolved":"https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.9.tgz","integrity":"sha512-edSdeAqkdxBVzA1yL1LrLCml1YjyCVvPMtMqJpbF+6K609tHe8V6sQUzFQSGcYNhcuhOceZtjvN32+mpIth30A==","license":"MIT","dependencies":{"http-proxy-agent":"^7.0.0","https-proxy-agent":"^7.0.0","tslib":"^2.6.2"},"engines":{"node":">=22.0.0"}},"node_modules/@volar/kit":{"version":"2.4.28","resolved":"https://registry.npmjs.org/@volar/kit/-/kit-2.4.28.tgz","integrity":"sha512-cKX4vK9dtZvDRaAzeoUdaAJEew6IdxHNCRrdp5Kvcl6zZOqb6jTOfk3kXkIkG3T7oTFXguEMt5+9ptyqYR84Pg==","license":"MIT","dependencies":{"@volar/language-service":"2.4.28","@volar/typescript":"2.4.28","typesafe-path":"^0.2.2","vscode-languageserver-textdocument":"^1.0.11","vscode-uri":"^3.0.8"},"peerDependencies":{"typescript":"*"}},"node_modules/@volar/language-core":{"version":"2.4.28","resolved":"https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.28.tgz","integrity":"sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==","license":"MIT","dependencies":{"@volar/source-map":"2.4.28"}},"node_modules/@volar/language-server":{"version":"2.4.28","resolved":"https://registry.npmjs.org/@volar/language-server/-/language-server-2.4.28.tgz","integrity":"sha512-NqcLnE5gERKuS4PUFwlhMxf6vqYo7hXtbMFbViXcbVkbZ905AIVWhnSo0ZNBC2V127H1/2zP7RvVOVnyITFfBw==","license":"MIT","dependencies":{"@volar/language-core":"2.4.28","@volar/language-service":"2.4.28","@volar/typescript":"2.4.28","path-browserify":"^1.0.1","request-light":"^0.7.0","vscode-languageserver":"^9.0.1","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.11","vscode-uri":"^3.0.8"}},"node_modules/@volar/language-service":{"version":"2.4.28","resolved":"https://registry.npmjs.org/@volar/language-service/-/language-service-2.4.28.tgz","integrity":"sha512-Rh/wYCZJrI5vCwMk9xyw/Z+MsWxlJY1rmMZPsxUoJKfzIRjS/NF1NmnuEcrMbEVGja00aVpCsInJfixQTMdvLw==","license":"MIT","dependencies":{"@volar/language-core":"2.4.28","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.11","vscode-uri":"^3.0.8"}},"node_modules/@volar/source-map":{"version":"2.4.28","resolved":"https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.28.tgz","integrity":"sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==","license":"MIT"},"node_modules/@volar/typescript":{"version":"2.4.28","resolved":"https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.28.tgz","integrity":"sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==","license":"MIT","dependencies":{"@volar/language-core":"2.4.28","path-browserify":"^1.0.1","vscode-uri":"^3.0.8"}},"node_modules/@vscode/emmet-helper":{"version":"2.11.0","resolved":"https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.11.0.tgz","integrity":"sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==","license":"MIT","dependencies":{"emmet":"^2.4.3","jsonc-parser":"^2.3.0","vscode-languageserver-textdocument":"^1.0.1","vscode-languageserver-types":"^3.15.1","vscode-uri":"^3.0.8"}},"node_modules/@vscode/l10n":{"version":"0.0.18","resolved":"https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.18.tgz","integrity":"sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==","license":"MIT"},"node_modules/@vue/compiler-core":{"version":"3.5.42","resolved":"https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.42.tgz","integrity":"sha512-2Ye1ilMtKXxl8qZUrQ5j0CdgenFp/HFQmta6rfRyfEsTG69L6Wk+tWuNoHYHMx9E8tF2Slvdg1FuwDvAXdy1LQ==","license":"MIT","dependencies":{"@babel/parser":"^7.29.8","@vue/shared":"3.5.42","entities":"^7.0.1","estree-walker":"^2.0.2","source-map-js":"^1.2.1"}},"node_modules/@vue/compiler-dom":{"version":"3.5.42","resolved":"https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.42.tgz","integrity":"sha512-qbhQZEFmycr+ni/qyuccS4sucNN7VAbDfbkvNxWOX2VfgFm90MNs3/UhRNKoPMEIVn0F8gdlYjLPvqxHwHeQOA==","license":"MIT","dependencies":{"@vue/compiler-core":"3.5.42","@vue/shared":"3.5.42"}},"node_modules/@vue/language-core":{"version":"3.3.11","resolved":"https://registry.npmjs.org/@vue/language-core/-/language-core-3.3.11.tgz","integrity":"sha512-QJmpliwAVpC/OxubIByPAhNzsQPRc8/gxlN2qnVzVfIMjMDz/9RnXRFoetjz5yEgXVXyp4LqhXq3V53PjmNzFw==","license":"MIT","dependencies":{"@volar/language-core":"2.4.28","@vue/compiler-dom":"^3.5.0","@vue/shared":"^3.5.0","alien-signals":"^3.2.1","muggle-string":"^0.4.1","path-browserify":"^1.0.1","picomatch":"^4.0.4"}},"node_modules/@vue/language-plugin-pug":{"version":"3.2.9","resolved":"https://registry.npmjs.org/@vue/language-plugin-pug/-/language-plugin-pug-3.2.9.tgz","integrity":"sha512-EaRtg3/1TQo9D20nBex1G3NtWElJbSgiiisZe6TwiNKpSCRwFmmvuAkz+AfMmsQc53si3zbkApU8RF0o6ULQag==","license":"MIT","dependencies":{"@volar/source-map":"2.4.28","muggle-string":"^0.4.1","pug-lexer":"^5.0.1","pug-parser":"^6.0.0","vscode-languageserver-textdocument":"^1.0.12"}},"node_modules/@vue/language-server":{"version":"3.3.11","resolved":"https://registry.npmjs.org/@vue/language-server/-/language-server-3.3.11.tgz","integrity":"sha512-5QvJ3bkUTyuRE7R4l0R+6Xl7Cq7INd95Hxm6bz3J0k9v+TjwKJKlnVeaW9X0fxTVrkcVBpSIKLQpAMlIOXeI9w==","license":"MIT","dependencies":{"@volar/language-server":"2.4.28","@vue/language-core":"3.3.11","@vue/language-service":"3.3.11","@vue/typescript-plugin":"3.3.11","vscode-uri":"^3.1.0"},"bin":{"vue-language-server":"bin/vue-language-server.js"},"peerDependencies":{"typescript":"*"}},"node_modules/@vue/language-service":{"version":"3.3.11","resolved":"https://registry.npmjs.org/@vue/language-service/-/language-service-3.3.11.tgz","integrity":"sha512-Y1PXr3nY315T5Eb05bBuxpf+IoPAe0JiGuUX2quFgRflnNViue4Z+wQo+yY6g4VrvEQhPhPT0dr/jKmGNtzIxQ==","license":"MIT","dependencies":{"@volar/language-service":"2.4.28","@vue/language-core":"3.3.11","@vue/shared":"^3.5.0","path-browserify":"^1.0.1","volar-service-css":"0.0.71","volar-service-emmet":"0.0.71","volar-service-html":"0.0.71","volar-service-json":"0.0.71","volar-service-pug":"0.0.71","volar-service-pug-beautify":"0.0.71","volar-service-typescript":"0.0.71","vscode-html-languageservice":"^5.6.2","vscode-uri":"^3.1.0"}},"node_modules/@vue/shared":{"version":"3.5.42","resolved":"https://registry.npmjs.org/@vue/shared/-/shared-3.5.42.tgz","integrity":"sha512-2rPxex1jQf4jvl9MOHl6YaXCPcrNqz/FstMOEh3QWY+/OME9nQTvl9WYeCwhW7AFjaR0SnngZGlp/wkR6rkI6g==","license":"MIT"},"node_modules/@vue/typescript-plugin":{"version":"3.3.11","resolved":"https://registry.npmjs.org/@vue/typescript-plugin/-/typescript-plugin-3.3.11.tgz","integrity":"sha512-sTfyjuZuAClToH59lcBxNMWF+Ede6IBUiYEZI1MgL3Bf9sWV15mtv9P2dfL+4moSQjRf+17O7HX+a8JQdXhLYA==","license":"MIT","dependencies":{"@volar/typescript":"2.4.28","@vue/language-core":"3.3.11","@vue/shared":"^3.5.0","path-browserify":"^1.0.1","vue-component-meta":"3.3.11"}},"node_modules/acorn":{"version":"8.18.0","resolved":"https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz","integrity":"sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==","license":"MIT","bin":{"acorn":"bin/acorn"},"engines":{"node":">=0.4.0"}},"node_modules/acorn-import-attributes":{"version":"1.9.5","resolved":"https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz","integrity":"sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==","license":"MIT","peerDependencies":{"acorn":"^8"}},"node_modules/acorn-jsx":{"version":"5.3.2","resolved":"https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz","integrity":"sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==","license":"MIT","peerDependencies":{"acorn":"^6.0.0 || ^7.0.0 || ^8.0.0"}},"node_modules/acorn-loose":{"version":"8.5.2","resolved":"https://registry.npmjs.org/acorn-loose/-/acorn-loose-8.5.2.tgz","integrity":"sha512-PPvV6g8UGMGgjrMu+n/f9E/tCSkNQ2Y97eFvuVdJfG11+xdIeDcLyNdC8SHcrHbRqkfwLASdplyR6B6sKM1U4A==","license":"MIT","dependencies":{"acorn":"^8.15.0"},"engines":{"node":">=0.4.0"}},"node_modules/agent-base":{"version":"7.1.4","resolved":"https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz","integrity":"sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==","license":"MIT","engines":{"node":">= 14"}},"node_modules/ajv":{"version":"8.20.0","resolved":"https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz","integrity":"sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==","license":"MIT","dependencies":{"fast-deep-equal":"^3.1.3","fast-uri":"^3.0.1","json-schema-traverse":"^1.0.0","require-from-string":"^2.0.2"},"funding":{"type":"github","url":"https://github.com/sponsors/epoberezkin"}},"node_modules/ajv-draft-04":{"version":"1.0.0","resolved":"https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz","integrity":"sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==","license":"MIT","peerDependencies":{"ajv":"^8.5.0"},"peerDependenciesMeta":{"ajv":{"optional":true}}},"node_modules/ajv-i18n":{"version":"4.2.0","resolved":"https://registry.npmjs.org/ajv-i18n/-/ajv-i18n-4.2.0.tgz","integrity":"sha512-v/ei2UkCEeuKNXh8RToiFsUclmU+G57LO1Oo22OagNMENIw+Yb8eMwvHu7Vn9fmkjJyv6XclhJ8TbuigSglPkg==","license":"MIT","peerDependencies":{"ajv":"^8.0.0-beta.0"}},"node_modules/alien-signals":{"version":"3.2.1","resolved":"https://registry.npmjs.org/alien-signals/-/alien-signals-3.2.1.tgz","integrity":"sha512-I8FjmltrfnDFoZedi5CG8DghVYNhzb/Ijluz7tCSJH0xpd0484Kowhbb1XDYOxfJpU1p5wnM2X54dA+IfGyD1g==","license":"MIT"},"node_modules/applicationinsights":{"version":"2.9.8","resolved":"https://registry.npmjs.org/applicationinsights/-/applicationinsights-2.9.8.tgz","integrity":"sha512-eB/EtAXJ6mDLLvHrtZj/7h31qUfnC2Npr2pHGqds5+1OP7BFLsn5us+HCkwTj7Q+1sHXujLphE5Cyvq5grtV6g==","license":"MIT","dependencies":{"@azure/core-auth":"1.7.2","@azure/core-rest-pipeline":"1.16.3","@azure/opentelemetry-instrumentation-azure-sdk":"^1.0.0-beta.5","@microsoft/applicationinsights-web-snippet":"1.0.1","@opentelemetry/api":"^1.7.0","@opentelemetry/core":"^1.19.0","@opentelemetry/sdk-trace-base":"^1.19.0","@opentelemetry/semantic-conventions":"^1.19.0","cls-hooked":"^4.2.2","continuation-local-storage":"^3.2.1","diagnostic-channel":"1.1.1","diagnostic-channel-publishers":"1.0.8"},"engines":{"node":">=8.0.0"},"peerDependencies":{"applicationinsights-native-metrics":"*"},"peerDependenciesMeta":{"applicationinsights-native-metrics":{"optional":true}}},"node_modules/argparse":{"version":"2.0.1","resolved":"https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz","integrity":"sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==","license":"Python-2.0"},"node_modules/ast-types":{"version":"0.13.4","resolved":"https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz","integrity":"sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==","license":"MIT","dependencies":{"tslib":"^2.0.1"},"engines":{"node":">=4"}},"node_modules/async-hook-jl":{"version":"1.7.6","resolved":"https://registry.npmjs.org/async-hook-jl/-/async-hook-jl-1.7.6.tgz","integrity":"sha512-gFaHkFfSxTjvoxDMYqDuGHlcRyUuamF8s+ZTtJdDzqjws4mCt7v0vuV79/E2Wr2/riMQgtG4/yUtXWs1gZ7JMg==","license":"MIT","dependencies":{"stack-chain":"^1.3.7"},"engines":{"node":"^4.7 || >=6.9 || >=7.3"}},"node_modules/async-listener":{"version":"0.6.10","resolved":"https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz","integrity":"sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==","license":"BSD-2-Clause","dependencies":{"semver":"^5.3.0","shimmer":"^1.1.0"},"engines":{"node":"<=0.11.8 || >0.11.10"}},"node_modules/async-listener/node_modules/semver":{"version":"5.7.2","resolved":"https://registry.npmjs.org/semver/-/semver-5.7.2.tgz","integrity":"sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==","license":"ISC","bin":{"semver":"bin/semver"}},"node_modules/bail":{"version":"2.0.2","resolved":"https://registry.npmjs.org/bail/-/bail-2.0.2.tgz","integrity":"sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/balanced-match":{"version":"1.0.2","resolved":"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz","integrity":"sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==","license":"MIT"},"node_modules/bash-language-server":{"version":"5.6.0","resolved":"https://registry.npmjs.org/bash-language-server/-/bash-language-server-5.6.0.tgz","integrity":"sha512-DCuV+/BZAAozsp5blvi6jDnU/ZDaTpJpWM0zqwGjnirfqv7iBsMK32xOze/jipxU0PUZ6CBUKgRUMKI7Kk70Lg==","license":"MIT","dependencies":{"editorconfig":"2.0.1","fast-glob":"3.3.3","fuzzy-search":"3.2.1","node-fetch":"2.7.0","turndown":"7.2.0","vscode-languageserver":"8.0.2","vscode-languageserver-textdocument":"1.0.12","web-tree-sitter":"0.24.5","zod":"3.24.2"},"bin":{"bash-language-server":"out/cli.js"},"engines":{"node":">=16"}},"node_modules/bash-language-server/node_modules/vscode-jsonrpc":{"version":"8.0.2","resolved":"https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.0.2.tgz","integrity":"sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ==","license":"MIT","engines":{"node":">=14.0.0"}},"node_modules/bash-language-server/node_modules/vscode-languageserver":{"version":"8.0.2","resolved":"https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-8.0.2.tgz","integrity":"sha512-bpEt2ggPxKzsAOZlXmCJ50bV7VrxwCS5BI4+egUmure/oI/t4OlFzi/YNtVvY24A2UDOZAgwFGgnZPwqSJubkA==","license":"MIT","dependencies":{"vscode-languageserver-protocol":"3.17.2"},"bin":{"installServerIntoExtension":"bin/installServerIntoExtension"}},"node_modules/bash-language-server/node_modules/vscode-languageserver-protocol":{"version":"3.17.2","resolved":"https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.2.tgz","integrity":"sha512-8kYisQ3z/SQ2kyjlNeQxbkkTNmVFoQCqkmGrzLH6A9ecPlgTbp3wDTnUNqaUxYr4vlAcloxx8zwy7G5WdguYNg==","license":"MIT","dependencies":{"vscode-jsonrpc":"8.0.2","vscode-languageserver-types":"3.17.2"}},"node_modules/bash-language-server/node_modules/vscode-languageserver-textdocument":{"version":"1.0.12","resolved":"https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz","integrity":"sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==","license":"MIT"},"node_modules/bash-language-server/node_modules/vscode-languageserver-types":{"version":"3.17.2","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz","integrity":"sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==","license":"MIT"},"node_modules/basic-ftp":{"version":"5.3.1","resolved":"https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.3.1.tgz","integrity":"sha512-bopVNp6ugyA150DDuZfPFdt1KZ5a94ZDiwX4hMgZDzF+GttD80lEy8kj98kbyhLXnPvhtIo93mdnLIjpCAeeOw==","license":"MIT","engines":{"node":">=10.0.0"}},"node_modules/boolbase":{"version":"1.0.0","resolved":"https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz","integrity":"sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==","license":"ISC"},"node_modules/brace-expansion":{"version":"2.1.4","resolved":"https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.4.tgz","integrity":"sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==","license":"MIT","dependencies":{"balanced-match":"^1.0.0"}},"node_modules/braces":{"version":"3.0.3","resolved":"https://registry.npmjs.org/braces/-/braces-3.0.3.tgz","integrity":"sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==","license":"MIT","dependencies":{"fill-range":"^7.1.1"},"engines":{"node":">=8"}},"node_modules/call-bind-apply-helpers":{"version":"1.0.2","resolved":"https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz","integrity":"sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==","license":"MIT","dependencies":{"es-errors":"^1.3.0","function-bind":"^1.1.2"},"engines":{"node":">= 0.4"}},"node_modules/call-bound":{"version":"1.0.4","resolved":"https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz","integrity":"sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==","license":"MIT","dependencies":{"call-bind-apply-helpers":"^1.0.2","get-intrinsic":"^1.3.0"},"engines":{"node":">= 0.4"},"funding":{"url":"https://github.com/sponsors/ljharb"}},"node_modules/ccount":{"version":"2.0.1","resolved":"https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz","integrity":"sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/character-entities":{"version":"2.0.2","resolved":"https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz","integrity":"sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/character-entities-html4":{"version":"2.1.0","resolved":"https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz","integrity":"sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/character-entities-legacy":{"version":"3.0.0","resolved":"https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz","integrity":"sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/character-parser":{"version":"2.2.0","resolved":"https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz","integrity":"sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==","license":"MIT","dependencies":{"is-regex":"^1.0.3"}},"node_modules/character-reference-invalid":{"version":"2.0.1","resolved":"https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz","integrity":"sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/cjs-module-lexer":{"version":"2.2.1","resolved":"https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.2.1.tgz","integrity":"sha512-Ca8swihM+/4yKecYHY52kgJd300hi2lADU/a1RxNTRe+RJ9jvqQlESpbz9DnG9mowez8qwXHB8qYdIUw9e+F5Q==","license":"MIT"},"node_modules/cls-hooked":{"version":"4.2.2","resolved":"https://registry.npmjs.org/cls-hooked/-/cls-hooked-4.2.2.tgz","integrity":"sha512-J4Xj5f5wq/4jAvcdgoGsL3G103BtWpZrMo8NEinRltN+xpTZdI+M38pyQqhuFU/P792xkMFvnKSf+Lm81U1bxw==","license":"BSD-2-Clause","dependencies":{"async-hook-jl":"^1.7.6","emitter-listener":"^1.0.1","semver":"^5.4.1"},"engines":{"node":"^4.7 || >=6.9 || >=7.3 || >=8.2.1"}},"node_modules/cls-hooked/node_modules/semver":{"version":"5.7.2","resolved":"https://registry.npmjs.org/semver/-/semver-5.7.2.tgz","integrity":"sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==","license":"ISC","bin":{"semver":"bin/semver"}},"node_modules/commander":{"version":"13.1.0","resolved":"https://registry.npmjs.org/commander/-/commander-13.1.0.tgz","integrity":"sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==","license":"MIT","engines":{"node":">=18"}},"node_modules/continuation-local-storage":{"version":"3.2.1","resolved":"https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz","integrity":"sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==","license":"BSD-2-Clause","dependencies":{"async-listener":"^0.6.0","emitter-listener":"^1.1.1"}},"node_modules/core-js":{"version":"3.50.0","resolved":"https://registry.npmjs.org/core-js/-/core-js-3.50.0.tgz","integrity":"sha512-BRWgOLKkFeCgRudR6zrs8p9XJZcE14grzKMMssoYrk6krtuEZ7MTKPIY5RzOnqsEKIR9kst7wNzphttraT+Yqw==","hasInstallScript":true,"license":"MIT","engines":{"node":"*"},"funding":{"type":"opencollective","url":"https://opencollective.com/core-js"}},"node_modules/css-select":{"version":"5.2.2","resolved":"https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz","integrity":"sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==","license":"BSD-2-Clause","dependencies":{"boolbase":"^1.0.0","css-what":"^6.1.0","domhandler":"^5.0.2","domutils":"^3.0.1","nth-check":"^2.0.1"},"funding":{"url":"https://github.com/sponsors/fb55"}},"node_modules/css-what":{"version":"6.2.2","resolved":"https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz","integrity":"sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==","license":"BSD-2-Clause","engines":{"node":">= 6"},"funding":{"url":"https://github.com/sponsors/fb55"}},"node_modules/data-uri-to-buffer":{"version":"6.0.2","resolved":"https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz","integrity":"sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==","license":"MIT","engines":{"node":">= 14"}},"node_modules/debug":{"version":"4.4.3","resolved":"https://registry.npmjs.org/debug/-/debug-4.4.3.tgz","integrity":"sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==","license":"MIT","dependencies":{"ms":"^2.1.3"},"engines":{"node":">=6.0"},"peerDependenciesMeta":{"supports-color":{"optional":true}}},"node_modules/decode-named-character-reference":{"version":"1.3.0","resolved":"https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz","integrity":"sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==","license":"MIT","dependencies":{"character-entities":"^2.0.0"},"funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/deepmerge":{"version":"4.3.1","resolved":"https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz","integrity":"sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==","license":"MIT","engines":{"node":">=0.10.0"}},"node_modules/degenerator":{"version":"5.0.1","resolved":"https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz","integrity":"sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==","license":"MIT","dependencies":{"ast-types":"^0.13.4","escodegen":"^2.1.0","esprima":"^4.0.1"},"engines":{"node":">= 14"}},"node_modules/dequal":{"version":"2.0.3","resolved":"https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz","integrity":"sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==","license":"MIT","engines":{"node":">=6"}},"node_modules/devlop":{"version":"1.1.0","resolved":"https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz","integrity":"sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==","license":"MIT","dependencies":{"dequal":"^2.0.0"},"funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/diagnostic-channel":{"version":"1.1.1","resolved":"https://registry.npmjs.org/diagnostic-channel/-/diagnostic-channel-1.1.1.tgz","integrity":"sha512-r2HV5qFkUICyoaKlBEpLKHjxMXATUf/l+h8UZPGBHGLy4DDiY2sOLcIctax4eRnTw5wH2jTMExLntGPJ8eOJxw==","license":"MIT","dependencies":{"semver":"^7.5.3"}},"node_modules/diagnostic-channel-publishers":{"version":"1.0.8","resolved":"https://registry.npmjs.org/diagnostic-channel-publishers/-/diagnostic-channel-publishers-1.0.8.tgz","integrity":"sha512-HmSm9hXxSPxA9BaLGY98QU1zsdjeCk113KjAYGPCen1ZP6mhVaTPzHd6UYv5r21DnWANi+f+NyPOHruGT9jpqQ==","license":"MIT","peerDependencies":{"diagnostic-channel":"*"}},"node_modules/dockerfile-ast":{"version":"0.7.1","resolved":"https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.7.1.tgz","integrity":"sha512-oX/A4I0EhSkGqrFv0YuvPkBUSYp1XiY8O8zAKc8Djglx8ocz+JfOr8gP0ryRMC2myqvDLagmnZaU9ot1vG2ijw==","license":"MIT","dependencies":{"vscode-languageserver-textdocument":"^1.0.8","vscode-languageserver-types":"^3.17.3"},"engines":{"node":"*"}},"node_modules/dockerfile-language-server-nodejs":{"version":"0.15.0","resolved":"https://registry.npmjs.org/dockerfile-language-server-nodejs/-/dockerfile-language-server-nodejs-0.15.0.tgz","integrity":"sha512-iS3GUUAn1bC3sDdLyg6CUnIaVQfViJBh+FhWBPftK6kJkhUMxFG2sr25OqMVaZgRsVuJEoNpflgJN3FCbkA01A==","license":"MIT","dependencies":{"dockerfile-language-service":"0.16.1","dockerfile-utils":"0.16.3","vscode-languageserver":"~8.0.0","vscode-languageserver-textdocument":"~1.0.8"},"bin":{"docker-langserver":"bin/docker-langserver"},"engines":{"node":"*"}},"node_modules/dockerfile-language-server-nodejs/node_modules/vscode-jsonrpc":{"version":"8.0.2","resolved":"https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.0.2.tgz","integrity":"sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ==","license":"MIT","engines":{"node":">=14.0.0"}},"node_modules/dockerfile-language-server-nodejs/node_modules/vscode-languageserver":{"version":"8.0.2","resolved":"https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-8.0.2.tgz","integrity":"sha512-bpEt2ggPxKzsAOZlXmCJ50bV7VrxwCS5BI4+egUmure/oI/t4OlFzi/YNtVvY24A2UDOZAgwFGgnZPwqSJubkA==","license":"MIT","dependencies":{"vscode-languageserver-protocol":"3.17.2"},"bin":{"installServerIntoExtension":"bin/installServerIntoExtension"}},"node_modules/dockerfile-language-server-nodejs/node_modules/vscode-languageserver-protocol":{"version":"3.17.2","resolved":"https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.2.tgz","integrity":"sha512-8kYisQ3z/SQ2kyjlNeQxbkkTNmVFoQCqkmGrzLH6A9ecPlgTbp3wDTnUNqaUxYr4vlAcloxx8zwy7G5WdguYNg==","license":"MIT","dependencies":{"vscode-jsonrpc":"8.0.2","vscode-languageserver-types":"3.17.2"}},"node_modules/dockerfile-language-server-nodejs/node_modules/vscode-languageserver-types":{"version":"3.17.2","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz","integrity":"sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==","license":"MIT"},"node_modules/dockerfile-language-service":{"version":"0.16.1","resolved":"https://registry.npmjs.org/dockerfile-language-service/-/dockerfile-language-service-0.16.1.tgz","integrity":"sha512-4tKDJHXl7BQMSi807TlyJ+4ApH5WkDai2PSFju/pjy7atRchJgn4UrmPlq8E0dVqyZwyTiNfapHxqsUQyQSMOg==","license":"MIT","dependencies":{"dockerfile-ast":"0.7.1","dockerfile-utils":"0.16.3","vscode-languageserver-textdocument":"1.0.8","vscode-languageserver-types":"3.17.3"},"engines":{"node":"*"}},"node_modules/dockerfile-language-service/node_modules/vscode-languageserver-textdocument":{"version":"1.0.8","resolved":"https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz","integrity":"sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==","license":"MIT"},"node_modules/dockerfile-utils":{"version":"0.16.3","resolved":"https://registry.npmjs.org/dockerfile-utils/-/dockerfile-utils-0.16.3.tgz","integrity":"sha512-BslaqRR6PzCnhu+toDbkVAjq0B0CEgrCltk+enJ/xwCmvAHB1QqpO9QhXVIzMg/iSuD4tzS0Ex9n4Ik5ffI7pA==","license":"MIT","dependencies":{"dockerfile-ast":"0.7.1","vscode-languageserver-textdocument":"^1.0.8","vscode-languageserver-types":"^3.17.3"},"bin":{"dockerfile-utils":"bin/dockerfile-utils"},"engines":{"node":"*"}},"node_modules/dom-serializer":{"version":"2.0.0","resolved":"https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz","integrity":"sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==","license":"MIT","dependencies":{"domelementtype":"^2.3.0","domhandler":"^5.0.2","entities":"^4.2.0"},"funding":{"url":"https://github.com/cheeriojs/dom-serializer?sponsor=1"}},"node_modules/dom-serializer/node_modules/entities":{"version":"4.5.0","resolved":"https://registry.npmjs.org/entities/-/entities-4.5.0.tgz","integrity":"sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==","license":"BSD-2-Clause","engines":{"node":">=0.12"},"funding":{"url":"https://github.com/fb55/entities?sponsor=1"}},"node_modules/domelementtype":{"version":"2.3.0","resolved":"https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz","integrity":"sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==","funding":[{"type":"github","url":"https://github.com/sponsors/fb55"}],"license":"BSD-2-Clause"},"node_modules/domhandler":{"version":"5.0.3","resolved":"https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz","integrity":"sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==","license":"BSD-2-Clause","dependencies":{"domelementtype":"^2.3.0"},"engines":{"node":">= 4"},"funding":{"url":"https://github.com/fb55/domhandler?sponsor=1"}},"node_modules/domutils":{"version":"3.2.2","resolved":"https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz","integrity":"sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==","license":"BSD-2-Clause","dependencies":{"dom-serializer":"^2.0.0","domelementtype":"^2.3.0","domhandler":"^5.0.3"},"funding":{"url":"https://github.com/fb55/domutils?sponsor=1"}},"node_modules/dunder-proto":{"version":"1.0.1","resolved":"https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz","integrity":"sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==","license":"MIT","dependencies":{"call-bind-apply-helpers":"^1.0.1","es-errors":"^1.3.0","gopd":"^1.2.0"},"engines":{"node":">= 0.4"}},"node_modules/editorconfig":{"version":"2.0.1","resolved":"https://registry.npmjs.org/editorconfig/-/editorconfig-2.0.1.tgz","integrity":"sha512-jMVc7LbF/M13cSpBiVWGut+qhIyOddIhSXPAntMSboEigGFGaQmBow9ZrVog0VT2K89qm0cyGHa7FRhcOqP8hA==","license":"MIT","dependencies":{"@one-ini/wasm":"0.2.0","commander":"^13.1.0","minimatch":"10.0.1","semver":"^7.7.1"},"bin":{"editorconfig":"bin/editorconfig"},"engines":{"node":">=18"}},"node_modules/emitter-listener":{"version":"1.1.2","resolved":"https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz","integrity":"sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==","license":"BSD-2-Clause","dependencies":{"shimmer":"^1.2.0"}},"node_modules/emmet":{"version":"2.4.11","resolved":"https://registry.npmjs.org/emmet/-/emmet-2.4.11.tgz","integrity":"sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==","license":"MIT","workspaces":["./packages/scanner","./packages/abbreviation","./packages/css-abbreviation","./"],"dependencies":{"@emmetio/abbreviation":"^2.3.3","@emmetio/css-abbreviation":"^2.1.8"}},"node_modules/entities":{"version":"7.0.1","resolved":"https://registry.npmjs.org/entities/-/entities-7.0.1.tgz","integrity":"sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==","license":"BSD-2-Clause","engines":{"node":">=0.12"},"funding":{"url":"https://github.com/fb55/entities?sponsor=1"}},"node_modules/es-define-property":{"version":"1.0.1","resolved":"https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz","integrity":"sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==","license":"MIT","engines":{"node":">= 0.4"}},"node_modules/es-errors":{"version":"1.3.0","resolved":"https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz","integrity":"sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==","license":"MIT","engines":{"node":">= 0.4"}},"node_modules/es-object-atoms":{"version":"1.1.2","resolved":"https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz","integrity":"sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==","license":"MIT","dependencies":{"es-errors":"^1.3.0"},"engines":{"node":">= 0.4"}},"node_modules/escape-string-regexp":{"version":"5.0.0","resolved":"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz","integrity":"sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==","license":"MIT","engines":{"node":">=12"},"funding":{"url":"https://github.com/sponsors/sindresorhus"}},"node_modules/escodegen":{"version":"2.1.0","resolved":"https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz","integrity":"sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==","license":"BSD-2-Clause","dependencies":{"esprima":"^4.0.1","estraverse":"^5.2.0","esutils":"^2.0.2"},"bin":{"escodegen":"bin/escodegen.js","esgenerate":"bin/esgenerate.js"},"engines":{"node":">=6.0"},"optionalDependencies":{"source-map":"~0.6.1"}},"node_modules/esprima":{"version":"4.0.1","resolved":"https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz","integrity":"sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==","license":"BSD-2-Clause","bin":{"esparse":"bin/esparse.js","esvalidate":"bin/esvalidate.js"},"engines":{"node":">=4"}},"node_modules/estraverse":{"version":"5.3.0","resolved":"https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz","integrity":"sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==","license":"BSD-2-Clause","engines":{"node":">=4.0"}},"node_modules/estree-util-is-identifier-name":{"version":"3.0.0","resolved":"https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz","integrity":"sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==","license":"MIT","funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/estree-util-scope":{"version":"1.0.1","resolved":"https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.1.tgz","integrity":"sha512-B0np3dcdxqILX5e9nEi5/Fr4K7gL4oYFVPV1zRa2e9wRCbQoZZNWOZFYyoInvXUPJXBXjss+QXlWLJChDEHDkA==","license":"MIT","dependencies":{"@types/estree":"^1.0.0","devlop":"^1.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/estree-util-visit":{"version":"2.0.0","resolved":"https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz","integrity":"sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==","license":"MIT","dependencies":{"@types/estree-jsx":"^1.0.0","@types/unist":"^3.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/estree-walker":{"version":"2.0.2","resolved":"https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz","integrity":"sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==","license":"MIT"},"node_modules/esutils":{"version":"2.0.3","resolved":"https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz","integrity":"sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==","license":"BSD-2-Clause","engines":{"node":">=0.10.0"}},"node_modules/extend":{"version":"3.0.2","resolved":"https://registry.npmjs.org/extend/-/extend-3.0.2.tgz","integrity":"sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==","license":"MIT"},"node_modules/fast-deep-equal":{"version":"3.1.3","resolved":"https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz","integrity":"sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==","license":"MIT"},"node_modules/fast-glob":{"version":"3.3.3","resolved":"https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz","integrity":"sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==","license":"MIT","dependencies":{"@nodelib/fs.stat":"^2.0.2","@nodelib/fs.walk":"^1.2.3","glob-parent":"^5.1.2","merge2":"^1.3.0","micromatch":"^4.0.8"},"engines":{"node":">=8.6.0"}},"node_modules/fast-uri":{"version":"3.1.7","resolved":"https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.7.tgz","integrity":"sha512-dOvZVzjdZdz7phd9v6jCbwxrBW3fK6n8Rc0CtdmM4bumzMnxywBYhuph6J819RRw/ku+rLbelwfMunktuzVVHg==","funding":[{"type":"github","url":"https://github.com/sponsors/fastify"},{"type":"opencollective","url":"https://opencollective.com/fastify"}],"license":"BSD-3-Clause"},"node_modules/fastq":{"version":"1.20.3","resolved":"https://registry.npmjs.org/fastq/-/fastq-1.20.3.tgz","integrity":"sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==","license":"ISC","dependencies":{"reusify":"^1.0.4"}},"node_modules/fault":{"version":"2.0.1","resolved":"https://registry.npmjs.org/fault/-/fault-2.0.1.tgz","integrity":"sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==","license":"MIT","dependencies":{"format":"^0.2.0"},"funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/fdir":{"version":"6.5.0","resolved":"https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz","integrity":"sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==","license":"MIT","engines":{"node":">=12.0.0"},"peerDependencies":{"picomatch":"^3 || ^4"},"peerDependenciesMeta":{"picomatch":{"optional":true}}},"node_modules/fill-range":{"version":"7.1.1","resolved":"https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz","integrity":"sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==","license":"MIT","dependencies":{"to-regex-range":"^5.0.1"},"engines":{"node":">=8"}},"node_modules/format":{"version":"0.2.2","resolved":"https://registry.npmjs.org/format/-/format-0.2.2.tgz","integrity":"sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==","engines":{"node":">=0.4.x"}},"node_modules/fs-extra":{"version":"11.3.4","resolved":"https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz","integrity":"sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==","license":"MIT","dependencies":{"graceful-fs":"^4.2.0","jsonfile":"^6.0.1","universalify":"^2.0.0"},"engines":{"node":">=14.14"}},"node_modules/function-bind":{"version":"1.1.2","resolved":"https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz","integrity":"sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==","license":"MIT","funding":{"url":"https://github.com/sponsors/ljharb"}},"node_modules/fuzzy-search":{"version":"3.2.1","resolved":"https://registry.npmjs.org/fuzzy-search/-/fuzzy-search-3.2.1.tgz","integrity":"sha512-vAcPiyomt1ioKAsAL2uxSABHJ4Ju/e4UeDM+g1OlR0vV4YhLGMNsdLNvZTpEDY4JCSt0E4hASCNM5t2ETtsbyg==","license":"ISC"},"node_modules/get-intrinsic":{"version":"1.3.0","resolved":"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz","integrity":"sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==","license":"MIT","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"},"engines":{"node":">= 0.4"},"funding":{"url":"https://github.com/sponsors/ljharb"}},"node_modules/get-proto":{"version":"1.0.1","resolved":"https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz","integrity":"sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==","license":"MIT","dependencies":{"dunder-proto":"^1.0.1","es-object-atoms":"^1.0.0"},"engines":{"node":">= 0.4"}},"node_modules/get-uri":{"version":"6.0.5","resolved":"https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz","integrity":"sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==","license":"MIT","dependencies":{"basic-ftp":"^5.0.2","data-uri-to-buffer":"^6.0.2","debug":"^4.3.4"},"engines":{"node":">= 14"}},"node_modules/glob-parent":{"version":"5.1.2","resolved":"https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz","integrity":"sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==","license":"ISC","dependencies":{"is-glob":"^4.0.1"},"engines":{"node":">= 6"}},"node_modules/gopd":{"version":"1.2.0","resolved":"https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz","integrity":"sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==","license":"MIT","engines":{"node":">= 0.4"},"funding":{"url":"https://github.com/sponsors/ljharb"}},"node_modules/graceful-fs":{"version":"4.2.11","resolved":"https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz","integrity":"sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==","license":"ISC"},"node_modules/has-symbols":{"version":"1.1.0","resolved":"https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz","integrity":"sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==","license":"MIT","engines":{"node":">= 0.4"},"funding":{"url":"https://github.com/sponsors/ljharb"}},"node_modules/has-tostringtag":{"version":"1.0.2","resolved":"https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz","integrity":"sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==","license":"MIT","dependencies":{"has-symbols":"^1.0.3"},"engines":{"node":">= 0.4"},"funding":{"url":"https://github.com/sponsors/ljharb"}},"node_modules/hasown":{"version":"2.0.4","resolved":"https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz","integrity":"sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==","license":"MIT","dependencies":{"function-bind":"^1.1.2"},"engines":{"node":">= 0.4"}},"node_modules/he":{"version":"1.2.0","resolved":"https://registry.npmjs.org/he/-/he-1.2.0.tgz","integrity":"sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==","license":"MIT","bin":{"he":"bin/he"}},"node_modules/html-to-text":{"version":"9.0.5","resolved":"https://registry.npmjs.org/html-to-text/-/html-to-text-9.0.5.tgz","integrity":"sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==","license":"MIT","dependencies":{"@selderee/plugin-htmlparser2":"^0.11.0","deepmerge":"^4.3.1","dom-serializer":"^2.0.0","htmlparser2":"^8.0.2","selderee":"^0.11.0"},"engines":{"node":">=14"}},"node_modules/htmlparser2":{"version":"8.0.2","resolved":"https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz","integrity":"sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==","funding":["https://github.com/fb55/htmlparser2?sponsor=1",{"type":"github","url":"https://github.com/sponsors/fb55"}],"license":"MIT","dependencies":{"domelementtype":"^2.3.0","domhandler":"^5.0.3","domutils":"^3.0.1","entities":"^4.4.0"}},"node_modules/htmlparser2/node_modules/entities":{"version":"4.5.0","resolved":"https://registry.npmjs.org/entities/-/entities-4.5.0.tgz","integrity":"sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==","license":"BSD-2-Clause","engines":{"node":">=0.12"},"funding":{"url":"https://github.com/fb55/entities?sponsor=1"}},"node_modules/http-proxy-agent":{"version":"7.0.2","resolved":"https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz","integrity":"sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==","license":"MIT","dependencies":{"agent-base":"^7.1.0","debug":"^4.3.4"},"engines":{"node":">= 14"}},"node_modules/https-proxy-agent":{"version":"7.0.6","resolved":"https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz","integrity":"sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==","license":"MIT","dependencies":{"agent-base":"^7.1.2","debug":"4"},"engines":{"node":">= 14"}},"node_modules/import-in-the-middle":{"version":"2.0.6","resolved":"https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-2.0.6.tgz","integrity":"sha512-3vZV3jX0XRFW3EJDTwzWoZa+RH1b8eTTx6YOCjglrLyPuepwoBti1k3L2dKwdCUrnVEfc5CuRuGstaC/uQJJaw==","license":"Apache-2.0","dependencies":{"acorn":"^8.15.0","acorn-import-attributes":"^1.9.5","cjs-module-lexer":"^2.2.0","module-details-from-path":"^1.0.4"}},"node_modules/intelephense":{"version":"1.18.5","resolved":"https://registry.npmjs.org/intelephense/-/intelephense-1.18.5.tgz","integrity":"sha512-dqCH1YNCRlHGBLND+iUFjBJlGwM4pPimX2jm8AaP/6K2WZNM2K2+E8dOWCD3ZYMP2zC2ICBD9Soe2oxKtU9d9A==","license":"SEE LICENSE IN LICENSE.txt","dependencies":{"@bmewburn/js-beautify":"1.15.4","@bmewburn/vscode-html-languageserver":"1.11.1","applicationinsights":"2.9.8","fast-glob":"3.3.3","fs-extra":"11.3.4","html-to-text":"9.0.5","lru-cache":"11.3.5","micromatch":"4.0.8","protobufjs":"8.3.0","proxy-agent":"6.5.0","semver":"7.7.4","turndown":"7.2.4","turndown-plugin-gfm":"1.0.2","vscode-languageserver":"9.0.1","vscode-languageserver-types":"3.17.5","vscode-uri":"3.1.0"},"bin":{"intelephense":"lib/intelephense.js"},"funding":{"url":"https://intelephense.com"}},"node_modules/intelephense/node_modules/semver":{"version":"7.7.4","resolved":"https://registry.npmjs.org/semver/-/semver-7.7.4.tgz","integrity":"sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==","license":"ISC","bin":{"semver":"bin/semver.js"},"engines":{"node":">=10"}},"node_modules/intelephense/node_modules/turndown":{"version":"7.2.4","resolved":"https://registry.npmjs.org/turndown/-/turndown-7.2.4.tgz","integrity":"sha512-I8yFsfRzmzK0WV1pNNOA4A7y4RDfFxPRxb3t+e3ui14qSGOxGtiSP6GjeX+Y6CHb7HYaFj7ECUD7VE5kQMZWGQ==","license":"MIT","dependencies":{"@mixmark-io/domino":"^2.2.0"},"engines":{"node":">=18","npm":">=9"}},"node_modules/intelephense/node_modules/vscode-languageserver-types":{"version":"3.17.5","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz","integrity":"sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==","license":"MIT"},"node_modules/intelephense/node_modules/vscode-uri":{"version":"3.1.0","resolved":"https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz","integrity":"sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==","license":"MIT"},"node_modules/ip-address":{"version":"10.7.0","resolved":"https://registry.npmjs.org/ip-address/-/ip-address-10.7.0.tgz","integrity":"sha512-BGFsyJd5mpXp3rK6jIdADLNgpJUK1jnjzvYF8lK+VyDab9JAmqN0YOKDdP17HlgKb2+ehPgDc8EtnRLbGCAMhA==","license":"MIT","engines":{"node":">= 12"}},"node_modules/is-alphabetical":{"version":"2.0.1","resolved":"https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz","integrity":"sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/is-alphanumerical":{"version":"2.0.1","resolved":"https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz","integrity":"sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==","license":"MIT","dependencies":{"is-alphabetical":"^2.0.0","is-decimal":"^2.0.0"},"funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/is-decimal":{"version":"2.0.1","resolved":"https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz","integrity":"sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/is-expression":{"version":"4.0.0","resolved":"https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz","integrity":"sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==","license":"MIT","dependencies":{"acorn":"^7.1.1","object-assign":"^4.1.1"}},"node_modules/is-expression/node_modules/acorn":{"version":"7.4.1","resolved":"https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz","integrity":"sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==","license":"MIT","bin":{"acorn":"bin/acorn"},"engines":{"node":">=0.4.0"}},"node_modules/is-extglob":{"version":"2.1.1","resolved":"https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz","integrity":"sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==","license":"MIT","engines":{"node":">=0.10.0"}},"node_modules/is-glob":{"version":"4.0.3","resolved":"https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz","integrity":"sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==","license":"MIT","dependencies":{"is-extglob":"^2.1.1"},"engines":{"node":">=0.10.0"}},"node_modules/is-hexadecimal":{"version":"2.0.1","resolved":"https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz","integrity":"sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/is-number":{"version":"7.0.0","resolved":"https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz","integrity":"sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==","license":"MIT","engines":{"node":">=0.12.0"}},"node_modules/is-plain-obj":{"version":"4.1.0","resolved":"https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz","integrity":"sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==","license":"MIT","engines":{"node":">=12"},"funding":{"url":"https://github.com/sponsors/sindresorhus"}},"node_modules/is-regex":{"version":"1.2.1","resolved":"https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz","integrity":"sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==","license":"MIT","dependencies":{"call-bound":"^1.0.2","gopd":"^1.2.0","has-tostringtag":"^1.0.2","hasown":"^2.0.2"},"engines":{"node":">= 0.4"},"funding":{"url":"https://github.com/sponsors/ljharb"}},"node_modules/json-schema-traverse":{"version":"1.0.0","resolved":"https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz","integrity":"sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==","license":"MIT"},"node_modules/jsonc-parser":{"version":"2.3.1","resolved":"https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz","integrity":"sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==","license":"MIT"},"node_modules/jsonfile":{"version":"6.2.1","resolved":"https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz","integrity":"sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==","license":"MIT","dependencies":{"universalify":"^2.0.0"},"optionalDependencies":{"graceful-fs":"^4.1.6"}},"node_modules/leac":{"version":"0.6.0","resolved":"https://registry.npmjs.org/leac/-/leac-0.6.0.tgz","integrity":"sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==","license":"MIT","funding":{"url":"https://ko-fi.com/killymxi"}},"node_modules/linkify-it":{"version":"5.0.2","resolved":"https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.2.tgz","integrity":"sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==","funding":[{"type":"github","url":"https://github.com/sponsors/puzrin"},{"type":"github","url":"https://github.com/sponsors/markdown-it"}],"license":"MIT","dependencies":{"uc.micro":"^2.0.0"}},"node_modules/long":{"version":"5.3.2","resolved":"https://registry.npmjs.org/long/-/long-5.3.2.tgz","integrity":"sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==","license":"Apache-2.0"},"node_modules/longest-streak":{"version":"3.1.0","resolved":"https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz","integrity":"sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/lru-cache":{"version":"11.3.5","resolved":"https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz","integrity":"sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==","license":"BlueOak-1.0.0","engines":{"node":"20 || >=22"}},"node_modules/markdown-it":{"version":"14.3.1","resolved":"https://registry.npmjs.org/markdown-it/-/markdown-it-14.3.1.tgz","integrity":"sha512-4Ej49aYTDFIQ+uBkfX8GBvJGccoARxxPep+7aWTs55ozbjQJpW9M26Fe53vnGgvLeVzva/amzjQQaQu9w0vMhA==","funding":[{"type":"github","url":"https://github.com/sponsors/puzrin"},{"type":"github","url":"https://github.com/sponsors/markdown-it"}],"license":"MIT","dependencies":{"argparse":"^2.0.1","entities":"^4.5.0","linkify-it":"^5.0.2","mdurl":"^2.0.0","punycode.js":"^2.3.1","uc.micro":"^2.1.0"},"bin":{"markdown-it":"bin/markdown-it.mjs"}},"node_modules/markdown-it/node_modules/entities":{"version":"4.5.0","resolved":"https://registry.npmjs.org/entities/-/entities-4.5.0.tgz","integrity":"sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==","license":"BSD-2-Clause","engines":{"node":">=0.12"},"funding":{"url":"https://github.com/fb55/entities?sponsor=1"}},"node_modules/markdown-table":{"version":"3.0.4","resolved":"https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz","integrity":"sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/math-intrinsics":{"version":"1.1.0","resolved":"https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz","integrity":"sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==","license":"MIT","engines":{"node":">= 0.4"}},"node_modules/mdast-util-find-and-replace":{"version":"3.0.2","resolved":"https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz","integrity":"sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","escape-string-regexp":"^5.0.0","unist-util-is":"^6.0.0","unist-util-visit-parents":"^6.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-from-markdown":{"version":"2.0.3","resolved":"https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz","integrity":"sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","@types/unist":"^3.0.0","decode-named-character-reference":"^1.0.0","devlop":"^1.0.0","mdast-util-to-string":"^4.0.0","micromark":"^4.0.0","micromark-util-decode-numeric-character-reference":"^2.0.0","micromark-util-decode-string":"^2.0.0","micromark-util-normalize-identifier":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0","unist-util-stringify-position":"^4.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-frontmatter":{"version":"2.0.1","resolved":"https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz","integrity":"sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","devlop":"^1.0.0","escape-string-regexp":"^5.0.0","mdast-util-from-markdown":"^2.0.0","mdast-util-to-markdown":"^2.0.0","micromark-extension-frontmatter":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-gfm":{"version":"3.1.0","resolved":"https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz","integrity":"sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==","license":"MIT","dependencies":{"mdast-util-from-markdown":"^2.0.0","mdast-util-gfm-autolink-literal":"^2.0.0","mdast-util-gfm-footnote":"^2.0.0","mdast-util-gfm-strikethrough":"^2.0.0","mdast-util-gfm-table":"^2.0.0","mdast-util-gfm-task-list-item":"^2.0.0","mdast-util-to-markdown":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-gfm-autolink-literal":{"version":"2.0.1","resolved":"https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz","integrity":"sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","ccount":"^2.0.0","devlop":"^1.0.0","mdast-util-find-and-replace":"^3.0.0","micromark-util-character":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-gfm-footnote":{"version":"2.1.0","resolved":"https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz","integrity":"sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","devlop":"^1.1.0","mdast-util-from-markdown":"^2.0.0","mdast-util-to-markdown":"^2.0.0","micromark-util-normalize-identifier":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-gfm-strikethrough":{"version":"2.0.0","resolved":"https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz","integrity":"sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","mdast-util-from-markdown":"^2.0.0","mdast-util-to-markdown":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-gfm-table":{"version":"2.0.0","resolved":"https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz","integrity":"sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","devlop":"^1.0.0","markdown-table":"^3.0.0","mdast-util-from-markdown":"^2.0.0","mdast-util-to-markdown":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-gfm-task-list-item":{"version":"2.0.0","resolved":"https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz","integrity":"sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","devlop":"^1.0.0","mdast-util-from-markdown":"^2.0.0","mdast-util-to-markdown":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-mdx":{"version":"3.0.0","resolved":"https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz","integrity":"sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==","license":"MIT","dependencies":{"mdast-util-from-markdown":"^2.0.0","mdast-util-mdx-expression":"^2.0.0","mdast-util-mdx-jsx":"^3.0.0","mdast-util-mdxjs-esm":"^2.0.0","mdast-util-to-markdown":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-mdx-expression":{"version":"2.0.1","resolved":"https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz","integrity":"sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==","license":"MIT","dependencies":{"@types/estree-jsx":"^1.0.0","@types/hast":"^3.0.0","@types/mdast":"^4.0.0","devlop":"^1.0.0","mdast-util-from-markdown":"^2.0.0","mdast-util-to-markdown":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-mdx-jsx":{"version":"3.2.0","resolved":"https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz","integrity":"sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==","license":"MIT","dependencies":{"@types/estree-jsx":"^1.0.0","@types/hast":"^3.0.0","@types/mdast":"^4.0.0","@types/unist":"^3.0.0","ccount":"^2.0.0","devlop":"^1.1.0","mdast-util-from-markdown":"^2.0.0","mdast-util-to-markdown":"^2.0.0","parse-entities":"^4.0.0","stringify-entities":"^4.0.0","unist-util-stringify-position":"^4.0.0","vfile-message":"^4.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-mdxjs-esm":{"version":"2.0.1","resolved":"https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz","integrity":"sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==","license":"MIT","dependencies":{"@types/estree-jsx":"^1.0.0","@types/hast":"^3.0.0","@types/mdast":"^4.0.0","devlop":"^1.0.0","mdast-util-from-markdown":"^2.0.0","mdast-util-to-markdown":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-phrasing":{"version":"4.1.0","resolved":"https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz","integrity":"sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","unist-util-is":"^6.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-to-markdown":{"version":"2.1.2","resolved":"https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz","integrity":"sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","@types/unist":"^3.0.0","longest-streak":"^3.0.0","mdast-util-phrasing":"^4.0.0","mdast-util-to-string":"^4.0.0","micromark-util-classify-character":"^2.0.0","micromark-util-decode-string":"^2.0.0","unist-util-visit":"^5.0.0","zwitch":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-to-string":{"version":"4.0.0","resolved":"https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz","integrity":"sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdurl":{"version":"2.1.0","resolved":"https://registry.npmjs.org/mdurl/-/mdurl-2.1.0.tgz","integrity":"sha512-1+HBaOx0zi/dQWht8rNv9MYf9qqpqL/kxI0hXImU6Y547zM6Sni8BQibt7ifgMcYtQg41ao3Ivd6cnSM86inpg==","license":"MIT"},"node_modules/merge2":{"version":"1.4.1","resolved":"https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz","integrity":"sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==","license":"MIT","engines":{"node":">= 8"}},"node_modules/micromark":{"version":"4.0.2","resolved":"https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz","integrity":"sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"@types/debug":"^4.0.0","debug":"^4.0.0","decode-named-character-reference":"^1.0.0","devlop":"^1.0.0","micromark-core-commonmark":"^2.0.0","micromark-factory-space":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-chunked":"^2.0.0","micromark-util-combine-extensions":"^2.0.0","micromark-util-decode-numeric-character-reference":"^2.0.0","micromark-util-encode":"^2.0.0","micromark-util-normalize-identifier":"^2.0.0","micromark-util-resolve-all":"^2.0.0","micromark-util-sanitize-uri":"^2.0.0","micromark-util-subtokenize":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-core-commonmark":{"version":"2.0.3","resolved":"https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz","integrity":"sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"decode-named-character-reference":"^1.0.0","devlop":"^1.0.0","micromark-factory-destination":"^2.0.0","micromark-factory-label":"^2.0.0","micromark-factory-space":"^2.0.0","micromark-factory-title":"^2.0.0","micromark-factory-whitespace":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-chunked":"^2.0.0","micromark-util-classify-character":"^2.0.0","micromark-util-html-tag-name":"^2.0.0","micromark-util-normalize-identifier":"^2.0.0","micromark-util-resolve-all":"^2.0.0","micromark-util-subtokenize":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-extension-frontmatter":{"version":"2.0.0","resolved":"https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz","integrity":"sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==","license":"MIT","dependencies":{"fault":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-gfm":{"version":"3.0.0","resolved":"https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz","integrity":"sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==","license":"MIT","dependencies":{"micromark-extension-gfm-autolink-literal":"^2.0.0","micromark-extension-gfm-footnote":"^2.0.0","micromark-extension-gfm-strikethrough":"^2.0.0","micromark-extension-gfm-table":"^2.0.0","micromark-extension-gfm-tagfilter":"^2.0.0","micromark-extension-gfm-task-list-item":"^2.0.0","micromark-util-combine-extensions":"^2.0.0","micromark-util-types":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-gfm-autolink-literal":{"version":"2.1.0","resolved":"https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz","integrity":"sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==","license":"MIT","dependencies":{"micromark-util-character":"^2.0.0","micromark-util-sanitize-uri":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-gfm-footnote":{"version":"2.1.0","resolved":"https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz","integrity":"sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==","license":"MIT","dependencies":{"devlop":"^1.0.0","micromark-core-commonmark":"^2.0.0","micromark-factory-space":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-normalize-identifier":"^2.0.0","micromark-util-sanitize-uri":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-gfm-strikethrough":{"version":"2.1.0","resolved":"https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz","integrity":"sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==","license":"MIT","dependencies":{"devlop":"^1.0.0","micromark-util-chunked":"^2.0.0","micromark-util-classify-character":"^2.0.0","micromark-util-resolve-all":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-gfm-table":{"version":"2.1.1","resolved":"https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz","integrity":"sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==","license":"MIT","dependencies":{"devlop":"^1.0.0","micromark-factory-space":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-gfm-tagfilter":{"version":"2.0.0","resolved":"https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz","integrity":"sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==","license":"MIT","dependencies":{"micromark-util-types":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-gfm-task-list-item":{"version":"2.1.0","resolved":"https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz","integrity":"sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==","license":"MIT","dependencies":{"devlop":"^1.0.0","micromark-factory-space":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-mdx-expression":{"version":"3.0.1","resolved":"https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz","integrity":"sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"@types/estree":"^1.0.0","devlop":"^1.0.0","micromark-factory-mdx-expression":"^2.0.0","micromark-factory-space":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-events-to-acorn":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-extension-mdx-jsx":{"version":"3.0.2","resolved":"https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz","integrity":"sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==","license":"MIT","dependencies":{"@types/estree":"^1.0.0","devlop":"^1.0.0","estree-util-is-identifier-name":"^3.0.0","micromark-factory-mdx-expression":"^2.0.0","micromark-factory-space":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-events-to-acorn":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0","vfile-message":"^4.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-mdx-md":{"version":"2.0.0","resolved":"https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz","integrity":"sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==","license":"MIT","dependencies":{"micromark-util-types":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-mdxjs":{"version":"3.0.0","resolved":"https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz","integrity":"sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==","license":"MIT","dependencies":{"acorn":"^8.0.0","acorn-jsx":"^5.0.0","micromark-extension-mdx-expression":"^3.0.0","micromark-extension-mdx-jsx":"^3.0.0","micromark-extension-mdx-md":"^2.0.0","micromark-extension-mdxjs-esm":"^3.0.0","micromark-util-combine-extensions":"^2.0.0","micromark-util-types":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-mdxjs-esm":{"version":"3.0.0","resolved":"https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz","integrity":"sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==","license":"MIT","dependencies":{"@types/estree":"^1.0.0","devlop":"^1.0.0","micromark-core-commonmark":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-events-to-acorn":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0","unist-util-position-from-estree":"^2.0.0","vfile-message":"^4.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-factory-destination":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz","integrity":"sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-util-character":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-factory-label":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz","integrity":"sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"devlop":"^1.0.0","micromark-util-character":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-factory-mdx-expression":{"version":"2.0.3","resolved":"https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz","integrity":"sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"@types/estree":"^1.0.0","devlop":"^1.0.0","micromark-factory-space":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-events-to-acorn":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0","unist-util-position-from-estree":"^2.0.0","vfile-message":"^4.0.0"}},"node_modules/micromark-factory-space":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz","integrity":"sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-util-character":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-factory-title":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz","integrity":"sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-factory-space":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-factory-whitespace":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz","integrity":"sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-factory-space":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-util-character":{"version":"2.1.1","resolved":"https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz","integrity":"sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-util-chunked":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz","integrity":"sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-util-symbol":"^2.0.0"}},"node_modules/micromark-util-classify-character":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz","integrity":"sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-util-character":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-util-combine-extensions":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz","integrity":"sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-util-chunked":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-util-decode-numeric-character-reference":{"version":"2.0.2","resolved":"https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz","integrity":"sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-util-symbol":"^2.0.0"}},"node_modules/micromark-util-decode-string":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz","integrity":"sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"decode-named-character-reference":"^1.0.0","micromark-util-character":"^2.0.0","micromark-util-decode-numeric-character-reference":"^2.0.0","micromark-util-symbol":"^2.0.0"}},"node_modules/micromark-util-encode":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz","integrity":"sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT"},"node_modules/micromark-util-events-to-acorn":{"version":"2.0.3","resolved":"https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz","integrity":"sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"@types/estree":"^1.0.0","@types/unist":"^3.0.0","devlop":"^1.0.0","estree-util-visit":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0","vfile-message":"^4.0.0"}},"node_modules/micromark-util-html-tag-name":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz","integrity":"sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT"},"node_modules/micromark-util-normalize-identifier":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz","integrity":"sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-util-symbol":"^2.0.0"}},"node_modules/micromark-util-resolve-all":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz","integrity":"sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-util-types":"^2.0.0"}},"node_modules/micromark-util-sanitize-uri":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz","integrity":"sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-util-character":"^2.0.0","micromark-util-encode":"^2.0.0","micromark-util-symbol":"^2.0.0"}},"node_modules/micromark-util-subtokenize":{"version":"2.1.0","resolved":"https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz","integrity":"sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"devlop":"^1.0.0","micromark-util-chunked":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-util-symbol":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz","integrity":"sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT"},"node_modules/micromark-util-types":{"version":"2.0.2","resolved":"https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz","integrity":"sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT"},"node_modules/micromatch":{"version":"4.0.8","resolved":"https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz","integrity":"sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==","license":"MIT","dependencies":{"braces":"^3.0.3","picomatch":"^2.3.1"},"engines":{"node":">=8.6"}},"node_modules/micromatch/node_modules/picomatch":{"version":"2.3.2","resolved":"https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz","integrity":"sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==","license":"MIT","engines":{"node":">=8.6"},"funding":{"url":"https://github.com/sponsors/jonschlinkert"}},"node_modules/minimatch":{"version":"10.0.1","resolved":"https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz","integrity":"sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==","license":"ISC","dependencies":{"brace-expansion":"^2.0.1"},"engines":{"node":"20 || >=22"},"funding":{"url":"https://github.com/sponsors/isaacs"}},"node_modules/module-details-from-path":{"version":"1.0.4","resolved":"https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.4.tgz","integrity":"sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==","license":"MIT"},"node_modules/ms":{"version":"2.1.3","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz","integrity":"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==","license":"MIT"},"node_modules/muggle-string":{"version":"0.4.1","resolved":"https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz","integrity":"sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==","license":"MIT"},"node_modules/netmask":{"version":"2.1.1","resolved":"https://registry.npmjs.org/netmask/-/netmask-2.1.1.tgz","integrity":"sha512-eonl3sLUha+S1GzTPxychyhnUzKyeQkZ7jLjKrBagJgPla13F+uQ71HgpFefyHgqrjEbCPkDArxYsjY8/+gLKA==","license":"MIT","engines":{"node":">= 0.4.0"}},"node_modules/node-fetch":{"version":"2.7.0","resolved":"https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz","integrity":"sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==","license":"MIT","dependencies":{"whatwg-url":"^5.0.0"},"engines":{"node":"4.x || >=6.0.0"},"peerDependencies":{"encoding":"^0.1.0"},"peerDependenciesMeta":{"encoding":{"optional":true}}},"node_modules/node-html-parser":{"version":"6.1.13","resolved":"https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.13.tgz","integrity":"sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==","license":"MIT","dependencies":{"css-select":"^5.1.0","he":"1.2.0"}},"node_modules/nth-check":{"version":"2.1.1","resolved":"https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz","integrity":"sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==","license":"BSD-2-Clause","dependencies":{"boolbase":"^1.0.0"},"funding":{"url":"https://github.com/fb55/nth-check?sponsor=1"}},"node_modules/object-assign":{"version":"4.1.1","resolved":"https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz","integrity":"sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==","license":"MIT","engines":{"node":">=0.10.0"}},"node_modules/pac-proxy-agent":{"version":"7.2.0","resolved":"https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz","integrity":"sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==","license":"MIT","dependencies":{"@tootallnate/quickjs-emscripten":"^0.23.0","agent-base":"^7.1.2","debug":"^4.3.4","get-uri":"^6.0.1","http-proxy-agent":"^7.0.0","https-proxy-agent":"^7.0.6","pac-resolver":"^7.0.1","socks-proxy-agent":"^8.0.5"},"engines":{"node":">= 14"}},"node_modules/pac-resolver":{"version":"7.0.1","resolved":"https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz","integrity":"sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==","license":"MIT","dependencies":{"degenerator":"^5.0.0","netmask":"^2.0.2"},"engines":{"node":">= 14"}},"node_modules/parse-entities":{"version":"4.0.2","resolved":"https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz","integrity":"sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==","license":"MIT","dependencies":{"@types/unist":"^2.0.0","character-entities-legacy":"^3.0.0","character-reference-invalid":"^2.0.0","decode-named-character-reference":"^1.0.0","is-alphanumerical":"^2.0.0","is-decimal":"^2.0.0","is-hexadecimal":"^2.0.0"},"funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/parse-entities/node_modules/@types/unist":{"version":"2.0.11","resolved":"https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz","integrity":"sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==","license":"MIT"},"node_modules/parseley":{"version":"0.12.1","resolved":"https://registry.npmjs.org/parseley/-/parseley-0.12.1.tgz","integrity":"sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==","license":"MIT","dependencies":{"leac":"^0.6.0","peberminta":"^0.9.0"},"funding":{"url":"https://ko-fi.com/killymxi"}},"node_modules/path-browserify":{"version":"1.0.1","resolved":"https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz","integrity":"sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==","license":"MIT"},"node_modules/peberminta":{"version":"0.9.0","resolved":"https://registry.npmjs.org/peberminta/-/peberminta-0.9.0.tgz","integrity":"sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==","license":"MIT","funding":{"url":"https://ko-fi.com/killymxi"}},"node_modules/picomatch":{"version":"4.0.7","resolved":"https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz","integrity":"sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==","license":"MIT","engines":{"node":">=12"},"funding":{"url":"https://github.com/sponsors/jonschlinkert"}},"node_modules/prettier":{"version":"3.9.6","resolved":"https://registry.npmjs.org/prettier/-/prettier-3.9.6.tgz","integrity":"sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==","license":"MIT","bin":{"prettier":"bin/prettier.cjs"},"engines":{"node":">=14"},"funding":{"url":"https://github.com/prettier/prettier?sponsor=1"}},"node_modules/protobufjs":{"version":"8.3.0","resolved":"https://registry.npmjs.org/protobufjs/-/protobufjs-8.3.0.tgz","integrity":"sha512-JpJpFaR7yKNb6WqKvJJ1MLbiuIQWQnbUUb06nDtf2/i8YWYYLEfP6xf9BwSJoJQg1wAy61EQB8dssQg64oX4aA==","hasInstallScript":true,"license":"BSD-3-Clause","dependencies":{"long":"^5.0.0"},"engines":{"node":">=12.0.0"}},"node_modules/proxy-agent":{"version":"6.5.0","resolved":"https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz","integrity":"sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==","license":"MIT","dependencies":{"agent-base":"^7.1.2","debug":"^4.3.4","http-proxy-agent":"^7.0.1","https-proxy-agent":"^7.0.6","lru-cache":"^7.14.1","pac-proxy-agent":"^7.1.0","proxy-from-env":"^1.1.0","socks-proxy-agent":"^8.0.5"},"engines":{"node":">= 14"}},"node_modules/proxy-agent/node_modules/lru-cache":{"version":"7.18.3","resolved":"https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz","integrity":"sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==","license":"ISC","engines":{"node":">=12"}},"node_modules/proxy-from-env":{"version":"1.1.0","resolved":"https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz","integrity":"sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==","license":"MIT"},"node_modules/pug-error":{"version":"2.1.0","resolved":"https://registry.npmjs.org/pug-error/-/pug-error-2.1.0.tgz","integrity":"sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==","license":"MIT"},"node_modules/pug-lexer":{"version":"5.0.1","resolved":"https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz","integrity":"sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==","license":"MIT","dependencies":{"character-parser":"^2.2.0","is-expression":"^4.0.0","pug-error":"^2.0.0"}},"node_modules/pug-parser":{"version":"6.0.0","resolved":"https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz","integrity":"sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==","license":"MIT","dependencies":{"pug-error":"^2.0.0","token-stream":"1.0.0"}},"node_modules/punycode.js":{"version":"2.3.1","resolved":"https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz","integrity":"sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==","license":"MIT","engines":{"node":">=6"}},"node_modules/queue-microtask":{"version":"1.2.3","resolved":"https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz","integrity":"sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==","funding":[{"type":"github","url":"https://github.com/sponsors/feross"},{"type":"patreon","url":"https://www.patreon.com/feross"},{"type":"consulting","url":"https://feross.org/support"}],"license":"MIT"},"node_modules/regenerator-runtime":{"version":"0.13.11","resolved":"https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz","integrity":"sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==","license":"MIT"},"node_modules/remark-frontmatter":{"version":"5.0.0","resolved":"https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz","integrity":"sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","mdast-util-frontmatter":"^2.0.0","micromark-extension-frontmatter":"^2.0.0","unified":"^11.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/remark-gfm":{"version":"4.0.1","resolved":"https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz","integrity":"sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","mdast-util-gfm":"^3.0.0","micromark-extension-gfm":"^3.0.0","remark-parse":"^11.0.0","remark-stringify":"^11.0.0","unified":"^11.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/remark-mdx":{"version":"3.1.1","resolved":"https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.1.tgz","integrity":"sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==","license":"MIT","dependencies":{"mdast-util-mdx":"^3.0.0","micromark-extension-mdxjs":"^3.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/remark-parse":{"version":"11.0.0","resolved":"https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz","integrity":"sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","mdast-util-from-markdown":"^2.0.0","micromark-util-types":"^2.0.0","unified":"^11.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/remark-stringify":{"version":"11.0.0","resolved":"https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz","integrity":"sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","mdast-util-to-markdown":"^2.0.0","unified":"^11.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/request-light":{"version":"0.7.0","resolved":"https://registry.npmjs.org/request-light/-/request-light-0.7.0.tgz","integrity":"sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==","license":"MIT"},"node_modules/require-from-string":{"version":"2.0.2","resolved":"https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz","integrity":"sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==","license":"MIT","engines":{"node":">=0.10.0"}},"node_modules/require-in-the-middle":{"version":"8.0.1","resolved":"https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-8.0.1.tgz","integrity":"sha512-QT7FVMXfWOYFbeRBF6nu+I6tr2Tf3u0q8RIEjNob/heKY/nh7drD/k7eeMFmSQgnTtCzLDcCu/XEnpW2wk4xCQ==","license":"MIT","dependencies":{"debug":"^4.3.5","module-details-from-path":"^1.0.3"},"engines":{"node":">=9.3.0 || >=8.10.0 <9.0.0"}},"node_modules/reusify":{"version":"1.1.0","resolved":"https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz","integrity":"sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==","license":"MIT","engines":{"iojs":">=1.0.0","node":">=0.10.0"}},"node_modules/run-parallel":{"version":"1.2.0","resolved":"https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz","integrity":"sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==","funding":[{"type":"github","url":"https://github.com/sponsors/feross"},{"type":"patreon","url":"https://www.patreon.com/feross"},{"type":"consulting","url":"https://feross.org/support"}],"license":"MIT","dependencies":{"queue-microtask":"^1.2.2"}},"node_modules/selderee":{"version":"0.11.0","resolved":"https://registry.npmjs.org/selderee/-/selderee-0.11.0.tgz","integrity":"sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==","license":"MIT","dependencies":{"parseley":"^0.12.0"},"funding":{"url":"https://ko-fi.com/killymxi"}},"node_modules/semver":{"version":"7.8.5","resolved":"https://registry.npmjs.org/semver/-/semver-7.8.5.tgz","integrity":"sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==","license":"ISC","bin":{"semver":"bin/semver.js"},"engines":{"node":">=10"}},"node_modules/shimmer":{"version":"1.2.1","resolved":"https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz","integrity":"sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==","license":"BSD-2-Clause"},"node_modules/smart-buffer":{"version":"4.2.0","resolved":"https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz","integrity":"sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==","license":"MIT","engines":{"node":">= 6.0.0","npm":">= 3.0.0"}},"node_modules/socks":{"version":"2.8.10","resolved":"https://registry.npmjs.org/socks/-/socks-2.8.10.tgz","integrity":"sha512-e0VyvkVTwVYViNovRkZ9aodhxVlyoMn7eJhVUPxZ+eK9P/7CBkxvvsBOHqFPEH416726W8tLXXXjKwqgTErrCQ==","license":"MIT","dependencies":{"ip-address":"^10.1.1","smart-buffer":"^4.2.0"},"engines":{"node":">= 10.0.0","npm":">= 3.0.0"}},"node_modules/socks-proxy-agent":{"version":"8.0.5","resolved":"https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz","integrity":"sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==","license":"MIT","dependencies":{"agent-base":"^7.1.2","debug":"^4.3.4","socks":"^2.8.3"},"engines":{"node":">= 14"}},"node_modules/source-map":{"version":"0.6.1","resolved":"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz","integrity":"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==","license":"BSD-3-Clause","optional":true,"engines":{"node":">=0.10.0"}},"node_modules/source-map-js":{"version":"1.2.1","resolved":"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz","integrity":"sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==","license":"BSD-3-Clause","engines":{"node":">=0.10.0"}},"node_modules/stack-chain":{"version":"1.3.7","resolved":"https://registry.npmjs.org/stack-chain/-/stack-chain-1.3.7.tgz","integrity":"sha512-D8cWtWVdIe/jBA7v5p5Hwl5yOSOrmZPWDPe2KxQ5UAGD+nxbxU0lKXA4h85Ta6+qgdKVL3vUxsbIZjc1kBG7ug==","license":"MIT"},"node_modules/stringify-entities":{"version":"4.0.4","resolved":"https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz","integrity":"sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==","license":"MIT","dependencies":{"character-entities-html4":"^2.0.0","character-entities-legacy":"^3.0.0"},"funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/tinyglobby":{"version":"0.2.17","resolved":"https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz","integrity":"sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==","license":"MIT","dependencies":{"fdir":"^6.5.0","picomatch":"^4.0.4"},"engines":{"node":">=12.0.0"},"funding":{"url":"https://github.com/sponsors/SuperchupuDev"}},"node_modules/to-regex-range":{"version":"5.0.1","resolved":"https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz","integrity":"sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==","license":"MIT","dependencies":{"is-number":"^7.0.0"},"engines":{"node":">=8.0"}},"node_modules/token-stream":{"version":"1.0.0","resolved":"https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz","integrity":"sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==","license":"MIT"},"node_modules/tr46":{"version":"0.0.3","resolved":"https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz","integrity":"sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==","license":"MIT"},"node_modules/trough":{"version":"2.2.0","resolved":"https://registry.npmjs.org/trough/-/trough-2.2.0.tgz","integrity":"sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/tslib":{"version":"2.8.1","resolved":"https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz","integrity":"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==","license":"0BSD"},"node_modules/turndown":{"version":"7.2.0","resolved":"https://registry.npmjs.org/turndown/-/turndown-7.2.0.tgz","integrity":"sha512-eCZGBN4nNNqM9Owkv9HAtWRYfLA4h909E/WGAWWBpmB275ehNhZyk87/Tpvjbp0jjNl9XwCsbe6bm6CqFsgD+A==","license":"MIT","dependencies":{"@mixmark-io/domino":"^2.2.0"}},"node_modules/turndown-plugin-gfm":{"version":"1.0.2","resolved":"https://registry.npmjs.org/turndown-plugin-gfm/-/turndown-plugin-gfm-1.0.2.tgz","integrity":"sha512-vwz9tfvF7XN/jE0dGoBei3FXWuvll78ohzCZQuOb+ZjWrs3a0XhQVomJEb2Qh4VHTPNRO4GPZh0V7VRbiWwkRg==","license":"MIT"},"node_modules/typesafe-path":{"version":"0.2.2","resolved":"https://registry.npmjs.org/typesafe-path/-/typesafe-path-0.2.2.tgz","integrity":"sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==","license":"MIT"},"node_modules/typescript":{"version":"5.9.3","resolved":"https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz","integrity":"sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==","license":"Apache-2.0","bin":{"tsc":"bin/tsc","tsserver":"bin/tsserver"},"engines":{"node":">=14.17"}},"node_modules/typescript-auto-import-cache":{"version":"0.3.6","resolved":"https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.6.tgz","integrity":"sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==","license":"MIT","dependencies":{"semver":"^7.3.8"}},"node_modules/typescript-language-server":{"version":"5.3.0","resolved":"https://registry.npmjs.org/typescript-language-server/-/typescript-language-server-5.3.0.tgz","integrity":"sha512-5puofxZHgFdAYtfNpmwCAvgtaYgg8wrUnH30m7Ze3QuguId5RNRadKASpOpyDxTyUdAF51FjhTdjntLw/EuWcQ==","license":"Apache-2.0","bin":{"typescript-language-server":"lib/cli.mjs"},"engines":{"node":">=20"}},"node_modules/uc.micro":{"version":"2.1.0","resolved":"https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz","integrity":"sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==","license":"MIT"},"node_modules/unified":{"version":"11.0.5","resolved":"https://registry.npmjs.org/unified/-/unified-11.0.5.tgz","integrity":"sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==","license":"MIT","dependencies":{"@types/unist":"^3.0.0","bail":"^2.0.0","devlop":"^1.0.0","extend":"^3.0.0","is-plain-obj":"^4.0.0","trough":"^2.0.0","vfile":"^6.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/unist-util-is":{"version":"6.0.1","resolved":"https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz","integrity":"sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==","license":"MIT","dependencies":{"@types/unist":"^3.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/unist-util-lsp":{"version":"2.1.0","resolved":"https://registry.npmjs.org/unist-util-lsp/-/unist-util-lsp-2.1.0.tgz","integrity":"sha512-ICI1PWbalSfOrsdosGk+WXdZBvdjhZVjbkgHOzKFdkCdzBpVEi8GjsVTAG6NR3VLGcwTOGLj/+k4L0HwGQYvEQ==","license":"MIT","dependencies":{"@types/unist":"^3.0.0","vscode-languageserver-types":"^3.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/unist-util-position-from-estree":{"version":"2.0.0","resolved":"https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz","integrity":"sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==","license":"MIT","dependencies":{"@types/unist":"^3.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/unist-util-stringify-position":{"version":"4.0.0","resolved":"https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz","integrity":"sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==","license":"MIT","dependencies":{"@types/unist":"^3.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/unist-util-visit":{"version":"5.1.0","resolved":"https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz","integrity":"sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==","license":"MIT","dependencies":{"@types/unist":"^3.0.0","unist-util-is":"^6.0.0","unist-util-visit-parents":"^6.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/unist-util-visit-parents":{"version":"6.0.2","resolved":"https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz","integrity":"sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==","license":"MIT","dependencies":{"@types/unist":"^3.0.0","unist-util-is":"^6.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/universalify":{"version":"2.0.1","resolved":"https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz","integrity":"sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==","license":"MIT","engines":{"node":">= 10.0.0"}},"node_modules/vfile":{"version":"6.0.3","resolved":"https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz","integrity":"sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==","license":"MIT","dependencies":{"@types/unist":"^3.0.0","vfile-message":"^4.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/vfile-message":{"version":"4.0.3","resolved":"https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz","integrity":"sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==","license":"MIT","dependencies":{"@types/unist":"^3.0.0","unist-util-stringify-position":"^4.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/volar-service-css":{"version":"0.0.71","resolved":"https://registry.npmjs.org/volar-service-css/-/volar-service-css-0.0.71.tgz","integrity":"sha512-wRRFt9BpjMKCazcgOh67MSjUjiWUCAh99DyYSDIOTuxaRjEtDC7PpB0k1Y1wbJIW/pVtMUSVbpPo3UGSm0Byxw==","license":"MIT","dependencies":{"vscode-css-languageservice":"^6.3.0","vscode-languageserver-textdocument":"^1.0.11","vscode-uri":"^3.0.8"},"peerDependencies":{"@volar/language-service":"~2.4.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true}}},"node_modules/volar-service-emmet":{"version":"0.0.71","resolved":"https://registry.npmjs.org/volar-service-emmet/-/volar-service-emmet-0.0.71.tgz","integrity":"sha512-zqjzt6bN95e3CUstBm0PBFAJnrfz0ZAARka87fart46/gNCLLuP3Vujy8V/J8HEziTFLnfkgIASLFYPUhonJcA==","license":"MIT","dependencies":{"@emmetio/css-parser":"^0.4.1","@emmetio/html-matcher":"^1.3.0","@vscode/emmet-helper":"^2.9.3","vscode-uri":"^3.0.8"},"peerDependencies":{"@volar/language-service":"~2.4.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true}}},"node_modules/volar-service-html":{"version":"0.0.71","resolved":"https://registry.npmjs.org/volar-service-html/-/volar-service-html-0.0.71.tgz","integrity":"sha512-e8tHPhgQ7ooLfudAEIku+kgd9pWkq3SSz8RbnQDI1+Eb8wbenkLGHqoirLqz5ORLV6wIMr2Iv08RWBG5eOcgpw==","license":"MIT","dependencies":{"vscode-html-languageservice":"^5.3.0","vscode-languageserver-textdocument":"^1.0.11","vscode-uri":"^3.0.8"},"peerDependencies":{"@volar/language-service":"~2.4.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true}}},"node_modules/volar-service-json":{"version":"0.0.71","resolved":"https://registry.npmjs.org/volar-service-json/-/volar-service-json-0.0.71.tgz","integrity":"sha512-behyNhAG5UEXfvbIOWdE62XsPkp/e5W0V3sz3AW6zy7vgWLzgvElR77YSlcu708GwKu7OOFl5m9sUGVfqLIriQ==","license":"MIT","dependencies":{"vscode-json-languageservice":"^5.4.0","vscode-uri":"^3.0.8"},"peerDependencies":{"@volar/language-service":"~2.4.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true}}},"node_modules/volar-service-markdown":{"version":"0.0.65","resolved":"https://registry.npmjs.org/volar-service-markdown/-/volar-service-markdown-0.0.65.tgz","integrity":"sha512-uEcDR7KXoippfc6cEC/Mnd120w1NpM2JwwvsSAiitPUnO8X5m9XdjxfX3GWlmKZUVN6A7TTcVxAmvSlJQKDs1g==","license":"MIT","dependencies":{"markdown-it":"^14.1.0","vscode-jsonrpc":"^8.2.1","vscode-markdown-languageservice":"~0.5.0-alpha.6","vscode-uri":"^3.0.8"},"peerDependencies":{"@volar/language-service":"~2.4.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true}}},"node_modules/volar-service-markdown/node_modules/vscode-jsonrpc":{"version":"8.2.1","resolved":"https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.1.tgz","integrity":"sha512-kdjOSJ2lLIn7r1rtrMbbNCHjyMPfRnowdKjBQ+mGq6NAW5QY2bEZC/khaC5OR8svbbjvLEaIXkOq45e2X9BIbQ==","license":"MIT","engines":{"node":">=14.0.0"}},"node_modules/volar-service-prettier":{"version":"0.0.71","resolved":"https://registry.npmjs.org/volar-service-prettier/-/volar-service-prettier-0.0.71.tgz","integrity":"sha512-Rz7JVH3qD108UCdmIEiZvOBNljMt2nLFdbN8AXcDfn7xD9F5I2aCIsDVqBbXw21PsnxG0b7MfwtNF+zPS/NKUg==","license":"MIT","dependencies":{"vscode-uri":"^3.0.8"},"peerDependencies":{"@volar/language-service":"~2.4.0","prettier":"^2.2 || ^3.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true},"prettier":{"optional":true}}},"node_modules/volar-service-pug":{"version":"0.0.71","resolved":"https://registry.npmjs.org/volar-service-pug/-/volar-service-pug-0.0.71.tgz","integrity":"sha512-vG4nkQxRfRTCwJsA1CbQ2hSsZjzsrsLDBGeJTDjIaymtOBfML5UMOROTB3ClVuEZVrtg1rquVzVlGTjhvc2ysg==","license":"MIT","dependencies":{"@volar/language-service":"~2.4.0","@vue/language-plugin-pug":"~3.2.2","volar-service-html":"0.0.71","vscode-html-languageservice":"^5.3.0","vscode-languageserver-textdocument":"^1.0.11"}},"node_modules/volar-service-pug-beautify":{"version":"0.0.71","resolved":"https://registry.npmjs.org/volar-service-pug-beautify/-/volar-service-pug-beautify-0.0.71.tgz","integrity":"sha512-4oxv7xGwT6TxxuFZdXj9EdqUUUWSd1oz9H47z4s/shT9YVLKwrty+9ACbdQsjyWZTp6ES/EtcuSqKuPhz3Uhaw==","license":"MIT","dependencies":{"@johnsoncodehk/pug-beautify":"^0.2.2"},"peerDependencies":{"@volar/language-service":"~2.4.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true}}},"node_modules/volar-service-typescript":{"version":"0.0.71","resolved":"https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.71.tgz","integrity":"sha512-yTtM/BVT6hoyEYnDtaCyAtNhdNeS/mhTTABlBOdw3NNiRBUin3IznFJpgfjer4c6RYopiPjjQjc9VFhxVl1mLw==","license":"MIT","dependencies":{"path-browserify":"^1.0.1","semver":"^7.6.2","typescript-auto-import-cache":"^0.3.5","vscode-languageserver-textdocument":"^1.0.11","vscode-nls":"^5.2.0","vscode-uri":"^3.0.8"},"peerDependencies":{"@volar/language-service":"~2.4.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true}}},"node_modules/volar-service-typescript-twoslash-queries":{"version":"0.0.71","resolved":"https://registry.npmjs.org/volar-service-typescript-twoslash-queries/-/volar-service-typescript-twoslash-queries-0.0.71.tgz","integrity":"sha512-9K2k72s4n7rV9s4bX0MyjbX9iBribvKZbBJKuEmTCZfeWJXs6Yh7bGpY4eoc7UufAjvpheBqwyZCOIPBvxCv0A==","license":"MIT","dependencies":{"vscode-uri":"^3.0.8"},"peerDependencies":{"@volar/language-service":"~2.4.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true}}},"node_modules/volar-service-yaml":{"version":"0.0.71","resolved":"https://registry.npmjs.org/volar-service-yaml/-/volar-service-yaml-0.0.71.tgz","integrity":"sha512-qYGWGuVpUTnZGu5P/CR4KLK4aIR8RrcVnmfZ2eRcj9q/I8VZCoC5yy9FtEvfNvnDp4MU17yhdJcvpQPIqhJS2Q==","license":"MIT","dependencies":{"vscode-uri":"^3.0.8","yaml-language-server":"~1.23.0"},"peerDependencies":{"@volar/language-service":"~2.4.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true}}},"node_modules/vscode-css-languageservice":{"version":"6.3.10","resolved":"https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.3.10.tgz","integrity":"sha512-eq5N9Er3fC4vA9zd9EFhyBG90wtCCuXgRSpAndaOgXMh1Wgep5lBgRIeDgjZBW9pa+332yC9+49cZMW8jcL3MA==","license":"MIT","dependencies":{"@vscode/l10n":"^0.0.18","vscode-languageserver-textdocument":"^1.0.12","vscode-languageserver-types":"3.17.5","vscode-uri":"^3.1.0"}},"node_modules/vscode-css-languageservice/node_modules/vscode-languageserver-types":{"version":"3.17.5","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz","integrity":"sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==","license":"MIT"},"node_modules/vscode-html-languageservice":{"version":"5.6.2","resolved":"https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.6.2.tgz","integrity":"sha512-ulCrSnFnfQ16YzvwnYUgEbUEl/ZG7u2eV27YhvLObSHKkb8fw1Z9cgsnUwjTEeDIdJDoTDTDpxuhQwoenoLNMg==","license":"MIT","dependencies":{"@vscode/l10n":"^0.0.18","vscode-languageserver-textdocument":"^1.0.12","vscode-languageserver-types":"^3.17.5","vscode-uri":"^3.1.0"}},"node_modules/vscode-html-languageservice/node_modules/vscode-languageserver-types":{"version":"3.18.3","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.18.3.tgz","integrity":"sha512-XIlzJ7Qp/jzSI1ds7/FwPAWrPeTZA7pAtlW4hdJ1J6xXWJL6dR9QYnDhJOdLzdKhUQ5Mm6mvUMw+3DcOQQasPw==","license":"MIT"},"node_modules/vscode-json-languageservice":{"version":"5.7.2","resolved":"https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-5.7.2.tgz","integrity":"sha512-WtKRDtJfFEmLrgtu+ODexOHm/6/krRF0k6t+uvkKIKW1Jh9ZIyxZQwJJwB3qhrEgvAxa37zbUg+vn+UyUK/U2w==","license":"MIT","dependencies":{"@vscode/l10n":"^0.0.18","jsonc-parser":"^3.3.1","vscode-languageserver-textdocument":"^1.0.12","vscode-languageserver-types":"^3.17.5","vscode-uri":"^3.1.0"}},"node_modules/vscode-json-languageservice/node_modules/jsonc-parser":{"version":"3.3.1","resolved":"https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz","integrity":"sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==","license":"MIT"},"node_modules/vscode-json-languageservice/node_modules/vscode-languageserver-types":{"version":"3.18.3","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.18.3.tgz","integrity":"sha512-XIlzJ7Qp/jzSI1ds7/FwPAWrPeTZA7pAtlW4hdJ1J6xXWJL6dR9QYnDhJOdLzdKhUQ5Mm6mvUMw+3DcOQQasPw==","license":"MIT"},"node_modules/vscode-jsonrpc":{"version":"9.0.2","resolved":"https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-9.0.2.tgz","integrity":"sha512-SbQSV9yRemARxeXw6LU5sS6Zq0e9/DgCCX5yelH263ZQWukbTk8EF8fjTrr1dziasf4GwlJbvTwFnTrnQFWZXQ==","license":"MIT","engines":{"node":">=14.0.0"}},"node_modules/vscode-langservers-extracted":{"version":"4.10.0","resolved":"https://registry.npmjs.org/vscode-langservers-extracted/-/vscode-langservers-extracted-4.10.0.tgz","integrity":"sha512-EFf9uQI4dAKbzMQFjDvVm1xJq1DXAQvBEuEfPGrK/xzfsL5xWTfIuRr90NgfmqwO+IEt6vLZm9EOj6R66xIifg==","license":"MIT","dependencies":{"@vscode/l10n":"^0.0.18","core-js":"^3.20.1","jsonc-parser":"^3.2.1","regenerator-runtime":"^0.13.9","request-light":"^0.7.0","semver":"^7.6.1","typescript":"^4.0.5","vscode-css-languageservice":"^6.2.14","vscode-html-languageservice":"^5.2.0","vscode-json-languageservice":"^5.3.11","vscode-languageserver":"^10.0.0-next.3","vscode-languageserver-textdocument":"^1.0.11","vscode-languageserver-types":"^3.17.5","vscode-markdown-languageservice":"^0.5.0-alpha.6","vscode-nls":"^5.2.0","vscode-uri":"^3.0.8"},"bin":{"vscode-css-language-server":"bin/vscode-css-language-server","vscode-eslint-language-server":"bin/vscode-eslint-language-server","vscode-html-language-server":"bin/vscode-html-language-server","vscode-json-language-server":"bin/vscode-json-language-server","vscode-markdown-language-server":"bin/vscode-markdown-language-server"}},"node_modules/vscode-langservers-extracted/node_modules/jsonc-parser":{"version":"3.3.1","resolved":"https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz","integrity":"sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==","license":"MIT"},"node_modules/vscode-langservers-extracted/node_modules/typescript":{"version":"4.9.5","resolved":"https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz","integrity":"sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==","license":"Apache-2.0","bin":{"tsc":"bin/tsc","tsserver":"bin/tsserver"},"engines":{"node":">=4.2.0"}},"node_modules/vscode-langservers-extracted/node_modules/vscode-languageserver":{"version":"10.1.1","resolved":"https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-10.1.1.tgz","integrity":"sha512-/cG04Fiq99rEtoDrfPpv0k6NyUFlck5GNtZLQZv1rxkBkc/4FrJNvEKTN5k1Si3O1hRguP++ciYlX9cdjdYxFQ==","license":"MIT","dependencies":{"vscode-languageserver-protocol":"3.18.3"},"bin":{"installServerIntoExtension":"bin/installServerIntoExtension"}},"node_modules/vscode-langservers-extracted/node_modules/vscode-languageserver-types":{"version":"3.18.3","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.18.3.tgz","integrity":"sha512-XIlzJ7Qp/jzSI1ds7/FwPAWrPeTZA7pAtlW4hdJ1J6xXWJL6dR9QYnDhJOdLzdKhUQ5Mm6mvUMw+3DcOQQasPw==","license":"MIT"},"node_modules/vscode-languageserver":{"version":"9.0.1","resolved":"https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz","integrity":"sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==","license":"MIT","dependencies":{"vscode-languageserver-protocol":"3.17.5"},"bin":{"installServerIntoExtension":"bin/installServerIntoExtension"}},"node_modules/vscode-languageserver-protocol":{"version":"3.18.3","resolved":"https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.18.3.tgz","integrity":"sha512-DF49+WeV5py4zO5hhobp60jjsDSK0lAqA0OuKBLBvp423HPWQcCbhZz3JgyfIewsEz2f8U+X75xNIFHdiXZm2w==","license":"MIT","dependencies":{"vscode-jsonrpc":"9.0.2","vscode-languageserver-types":"3.18.3"}},"node_modules/vscode-languageserver-protocol/node_modules/vscode-languageserver-types":{"version":"3.18.3","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.18.3.tgz","integrity":"sha512-XIlzJ7Qp/jzSI1ds7/FwPAWrPeTZA7pAtlW4hdJ1J6xXWJL6dR9QYnDhJOdLzdKhUQ5Mm6mvUMw+3DcOQQasPw==","license":"MIT"},"node_modules/vscode-languageserver-textdocument":{"version":"1.0.14","resolved":"https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.14.tgz","integrity":"sha512-EQyqJMi552E4ZTf46izQ4Fj6XquqxCySR3J5ZSD1SisMf6RfpeOWHxGBE8Gr6V0/3GHIGdAzDn8F8+1nTGCnoQ==","license":"MIT"},"node_modules/vscode-languageserver-types":{"version":"3.17.3","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz","integrity":"sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA==","license":"MIT"},"node_modules/vscode-languageserver/node_modules/vscode-jsonrpc":{"version":"8.2.0","resolved":"https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz","integrity":"sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==","license":"MIT","engines":{"node":">=14.0.0"}},"node_modules/vscode-languageserver/node_modules/vscode-languageserver-protocol":{"version":"3.17.5","resolved":"https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz","integrity":"sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==","license":"MIT","dependencies":{"vscode-jsonrpc":"8.2.0","vscode-languageserver-types":"3.17.5"}},"node_modules/vscode-languageserver/node_modules/vscode-languageserver-types":{"version":"3.17.5","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz","integrity":"sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==","license":"MIT"},"node_modules/vscode-markdown-languageservice":{"version":"0.5.0","resolved":"https://registry.npmjs.org/vscode-markdown-languageservice/-/vscode-markdown-languageservice-0.5.0.tgz","integrity":"sha512-+DDXukKWtIHvJtj6tXeLqj8iREnylDQw4yRjY3ldv2J66/oiKRJyLLUy4YhMhfBm9Edjci6VhOSpE84AU3ZFXA==","license":"MIT","dependencies":{"@vscode/l10n":"^0.0.18","node-html-parser":"^6.1.5","picomatch":"^2.3.1","vscode-languageserver-protocol":"^3.17.1","vscode-languageserver-textdocument":"^1.0.11","vscode-uri":"^3.0.7"},"engines":{"node":">=22"}},"node_modules/vscode-markdown-languageservice/node_modules/picomatch":{"version":"2.3.2","resolved":"https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz","integrity":"sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==","license":"MIT","engines":{"node":">=8.6"},"funding":{"url":"https://github.com/sponsors/jonschlinkert"}},"node_modules/vscode-nls":{"version":"5.2.0","resolved":"https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz","integrity":"sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==","license":"MIT"},"node_modules/vscode-uri":{"version":"3.2.0","resolved":"https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.2.0.tgz","integrity":"sha512-m2gXo3bn0G1kT9InzMf07fTbqMbGtyckj3bH5ktLO+1Ssv+yiATZ4dhwaQv9UZWxJh6E9IFGnQyjgWVDWVBDrg==","license":"MIT"},"node_modules/vue-component-meta":{"version":"3.3.11","resolved":"https://registry.npmjs.org/vue-component-meta/-/vue-component-meta-3.3.11.tgz","integrity":"sha512-fskQZaIFOifwB4x+/J24795yvezOJ1TKaqn97/4PHybyvXpDNdcKn3oTcPrw6HnNoZWe343A+TiCFOcFv1/SuQ==","license":"MIT","dependencies":{"@volar/typescript":"2.4.28","@vue/language-core":"3.3.11","path-browserify":"^1.0.1"},"peerDependencies":{"typescript":"*"},"peerDependenciesMeta":{"typescript":{"optional":true}}},"node_modules/web-tree-sitter":{"version":"0.24.5","resolved":"https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.24.5.tgz","integrity":"sha512-+J/2VSHN8J47gQUAvF8KDadrfz6uFYVjxoxbKWDoXVsH2u7yLdarCnIURnrMA6uSRkgX3SdmqM5BOoQjPdSh5w==","license":"MIT"},"node_modules/webidl-conversions":{"version":"3.0.1","resolved":"https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz","integrity":"sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==","license":"BSD-2-Clause"},"node_modules/whatwg-url":{"version":"5.0.0","resolved":"https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz","integrity":"sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==","license":"MIT","dependencies":{"tr46":"~0.0.3","webidl-conversions":"^3.0.0"}},"node_modules/yaml":{"version":"2.9.0","resolved":"https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz","integrity":"sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==","license":"ISC","bin":{"yaml":"bin.mjs"},"engines":{"node":">= 14.6"},"funding":{"url":"https://github.com/sponsors/eemeli"}},"node_modules/yaml-language-server":{"version":"1.23.0","resolved":"https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-1.23.0.tgz","integrity":"sha512-3qVyCOexLCWw06PQa5kRPwvMWMZ/eZeCRWUvgD6a0OkqL/4iCnxy2WumbWifa937Uo5xhyWJ0uxlU39ljhNh7A==","license":"MIT","dependencies":{"@vscode/l10n":"^0.0.18","ajv":"^8.17.1","ajv-draft-04":"^1.0.0","ajv-i18n":"^4.2.0","prettier":"^3.8.1","request-light":"^0.5.7","vscode-json-languageservice":"4.1.8","vscode-languageserver":"^9.0.0","vscode-languageserver-textdocument":"^1.0.1","vscode-languageserver-types":"^3.16.0","vscode-uri":"^3.0.2","yaml":"2.8.3"},"bin":{"yaml-language-server":"bin/yaml-language-server"}},"node_modules/yaml-language-server/node_modules/jsonc-parser":{"version":"3.3.1","resolved":"https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz","integrity":"sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==","license":"MIT"},"node_modules/yaml-language-server/node_modules/request-light":{"version":"0.5.8","resolved":"https://registry.npmjs.org/request-light/-/request-light-0.5.8.tgz","integrity":"sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==","license":"MIT"},"node_modules/yaml-language-server/node_modules/vscode-json-languageservice":{"version":"4.1.8","resolved":"https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.1.8.tgz","integrity":"sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==","license":"MIT","dependencies":{"jsonc-parser":"^3.0.0","vscode-languageserver-textdocument":"^1.0.1","vscode-languageserver-types":"^3.16.0","vscode-nls":"^5.0.0","vscode-uri":"^3.0.2"},"engines":{"npm":">=7.0.0"}},"node_modules/yaml-language-server/node_modules/yaml":{"version":"2.8.3","resolved":"https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz","integrity":"sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==","license":"ISC","bin":{"yaml":"bin.mjs"},"engines":{"node":">= 14.6"},"funding":{"url":"https://github.com/sponsors/eemeli"}},"node_modules/zod":{"version":"3.24.2","resolved":"https://registry.npmjs.org/zod/-/zod-3.24.2.tgz","integrity":"sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==","license":"MIT","funding":{"url":"https://github.com/sponsors/colinhacks"}},"node_modules/zwitch":{"version":"2.0.4","resolved":"https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz","integrity":"sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}}}');
|
|
5162
|
+
const packages$1 = /* @__PURE__ */ JSON.parse('{"":{"name":"oxbit-managed-language-servers","version":"1.0.0","dependencies":{"@astrojs/language-server":"2.16.16","@mdx-js/language-server":"0.6.4","@vue/language-server":"3.3.11","@vue/typescript-plugin":"3.3.11","bash-language-server":"5.8.1","dockerfile-language-server-nodejs":"0.15.0","intelephense":"1.18.5","typescript":"5.9.3","typescript-language-server":"5.3.0","vscode-langservers-extracted":"4.10.0"}},"node_modules/@astrojs/compiler":{"version":"2.13.1","resolved":"https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.13.1.tgz","integrity":"sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg==","license":"MIT"},"node_modules/@astrojs/language-server":{"version":"2.16.16","resolved":"https://registry.npmjs.org/@astrojs/language-server/-/language-server-2.16.16.tgz","integrity":"sha512-KuS17AOOqH/M5mHXPmKvtp8L+NNteARC7Xjf395+9R9dtJOBndqdStwU4V+OKzYZpgZ+hliV13knzx/oMtFl7Q==","license":"MIT","dependencies":{"@astrojs/compiler":"^2.13.1","@astrojs/yaml2ts":"^0.2.4","@jridgewell/sourcemap-codec":"^1.5.5","@volar/kit":"~2.4.28","@volar/language-core":"~2.4.28","@volar/language-server":"~2.4.28","@volar/language-service":"~2.4.28","muggle-string":"^0.4.1","tinyglobby":"^0.2.16","volar-service-css":"0.0.71","volar-service-emmet":"0.0.71","volar-service-html":"0.0.71","volar-service-prettier":"0.0.71","volar-service-typescript":"0.0.71","volar-service-typescript-twoslash-queries":"0.0.71","volar-service-yaml":"0.0.71","vscode-html-languageservice":"^5.6.2","vscode-uri":"^3.1.0"},"bin":{"astro-ls":"bin/nodeServer.js"},"peerDependencies":{"prettier":"^3.0.0","prettier-plugin-astro":">=0.11.0"},"peerDependenciesMeta":{"prettier":{"optional":true},"prettier-plugin-astro":{"optional":true}}},"node_modules/@astrojs/yaml2ts":{"version":"0.2.4","resolved":"https://registry.npmjs.org/@astrojs/yaml2ts/-/yaml2ts-0.2.4.tgz","integrity":"sha512-8oddpOae35pJsXPQXhTkM0ypfKPskVsh2bCxRtbf7e+/Epw2nReakFYpLKjZMEr75CsoF203PMnCocpfz0s69A==","license":"MIT","dependencies":{"yaml":"^2.8.3"}},"node_modules/@azure/abort-controller":{"version":"2.2.0","resolved":"https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.2.0.tgz","integrity":"sha512-fNAjWnA/nZ2jz31kxR/AqRaUT8ewHBw/WuBIosK0moMy1C9e5ValbDfFdIxJzVOOYaYkV/b2F1S4H/aHiqfVQg==","license":"MIT","dependencies":{"tslib":"^2.6.2"},"engines":{"node":">=22.0.0"}},"node_modules/@azure/core-auth":{"version":"1.7.2","resolved":"https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.7.2.tgz","integrity":"sha512-Igm/S3fDYmnMq1uKS38Ae1/m37B3zigdlZw+kocwEhh5GjyKjPrXKO2J6rzpC1wAxrNil/jX9BJRqBshyjnF3g==","license":"MIT","dependencies":{"@azure/abort-controller":"^2.0.0","@azure/core-util":"^1.1.0","tslib":"^2.6.2"},"engines":{"node":">=18.0.0"}},"node_modules/@azure/core-rest-pipeline":{"version":"1.16.3","resolved":"https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.3.tgz","integrity":"sha512-VxLk4AHLyqcHsfKe4MZ6IQ+D+ShuByy+RfStKfSjxJoL3WBWq17VNmrz8aT8etKzqc2nAeIyLxScjpzsS4fz8w==","license":"MIT","dependencies":{"@azure/abort-controller":"^2.0.0","@azure/core-auth":"^1.4.0","@azure/core-tracing":"^1.0.1","@azure/core-util":"^1.9.0","@azure/logger":"^1.0.0","http-proxy-agent":"^7.0.0","https-proxy-agent":"^7.0.0","tslib":"^2.6.2"},"engines":{"node":">=18.0.0"}},"node_modules/@azure/core-tracing":{"version":"1.4.0","resolved":"https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.4.0.tgz","integrity":"sha512-eGwxD0AtncrxeBM4tG8R55Pc3rdX1hNW2WibJAgYpCVA6E93mvvVH+LcssoVjOBrSKWS55yEIHsk0X8ctHmfOQ==","license":"MIT","dependencies":{"tslib":"^2.6.2"},"engines":{"node":">=22.0.0"}},"node_modules/@azure/core-util":{"version":"1.14.0","resolved":"https://registry.npmjs.org/@azure/core-util/-/core-util-1.14.0.tgz","integrity":"sha512-9n2pWK61veAuN0V20t9lOuoV4CFMdyAZ1ygZzvBGk/pBBJRib/PjL9PLXa/aI2CcPpyHfqVsxxqLCYl6uZlfDw==","license":"MIT","dependencies":{"@azure/abort-controller":"^2.1.2","@typespec/ts-http-runtime":"^0.3.0","tslib":"^2.6.2"},"engines":{"node":">=22.0.0"}},"node_modules/@azure/logger":{"version":"1.4.0","resolved":"https://registry.npmjs.org/@azure/logger/-/logger-1.4.0.tgz","integrity":"sha512-rbAE25KUfjU/s3XHUdJgceoCP5dEOpMx85J04kF+QMdta73XkuG9JGHHinch+XIoKpBdqljin+KqURpJriSzLA==","license":"MIT","dependencies":{"@typespec/ts-http-runtime":"^0.3.0","tslib":"^2.6.2"},"engines":{"node":">=22.0.0"}},"node_modules/@azure/opentelemetry-instrumentation-azure-sdk":{"version":"1.0.0","resolved":"https://registry.npmjs.org/@azure/opentelemetry-instrumentation-azure-sdk/-/opentelemetry-instrumentation-azure-sdk-1.0.0.tgz","integrity":"sha512-Y8rZOIMXQY/GwNRL+uLVuwIn9aEa/KnnggyYUmFxC1MigmRJCNH5NxMmxKSpddXF9SW6Z1ijRd6Pptd2A5OhGw==","license":"MIT","dependencies":{"@azure/core-tracing":"^1.2.0","@azure/logger":"^1.0.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"^0.211.0","@opentelemetry/sdk-trace-web":"^2.0.0","tslib":"^2.7.0"},"engines":{"node":">=20.0.0"}},"node_modules/@babel/helper-string-parser":{"version":"7.29.7","resolved":"https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz","integrity":"sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==","license":"MIT","engines":{"node":">=6.9.0"}},"node_modules/@babel/helper-validator-identifier":{"version":"7.29.7","resolved":"https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz","integrity":"sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==","license":"MIT","engines":{"node":">=6.9.0"}},"node_modules/@babel/parser":{"version":"7.29.8","resolved":"https://registry.npmjs.org/@babel/parser/-/parser-7.29.8.tgz","integrity":"sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==","license":"MIT","dependencies":{"@babel/types":"^7.29.8"},"bin":{"parser":"bin/babel-parser.js"},"engines":{"node":">=6.0.0"}},"node_modules/@babel/types":{"version":"7.29.8","resolved":"https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz","integrity":"sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==","license":"MIT","dependencies":{"@babel/helper-string-parser":"^7.29.7","@babel/helper-validator-identifier":"^7.29.7"},"engines":{"node":">=6.9.0"}},"node_modules/@bmewburn/js-beautify":{"version":"1.15.4","resolved":"https://registry.npmjs.org/@bmewburn/js-beautify/-/js-beautify-1.15.4.tgz","integrity":"sha512-/fSotOVaY2IQWXofuxXn1T+Fq8m0tNpp96LBYUXgjiF9gh8v/fhvXU+Fvaozlgk3FNFYxMP/wBIjU7FHRCVsuA==","license":"MIT","engines":{"node":">=14"}},"node_modules/@bmewburn/vscode-html-languageserver":{"version":"1.11.1","resolved":"https://registry.npmjs.org/@bmewburn/vscode-html-languageserver/-/vscode-html-languageserver-1.11.1.tgz","integrity":"sha512-EUfOfj6xIQ3u+mZqMwfzUDv5SVCaUo0A6Lz2651M91Q+2trqJDdk6sqhXUc9tcuWYOGLr5HVctkt1kfZFZsHjQ==","license":"MIT","dependencies":{"@vscode/l10n":"^0.0.18","typescript":"^5.9.3","vscode-css-languageservice":"^6.3.8","vscode-html-languageservice":"^5.6.0","vscode-languageserver":"^9.0.1","vscode-languageserver-protocol":"~3.17.5","vscode-languageserver-textdocument":"^1.0.11","vscode-languageserver-types":"~3.17.5","vscode-uri":"^3.0.8"},"engines":{"node":"*"}},"node_modules/@bmewburn/vscode-html-languageserver/node_modules/vscode-jsonrpc":{"version":"8.2.0","resolved":"https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz","integrity":"sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==","license":"MIT","engines":{"node":">=14.0.0"}},"node_modules/@bmewburn/vscode-html-languageserver/node_modules/vscode-languageserver-protocol":{"version":"3.17.5","resolved":"https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz","integrity":"sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==","license":"MIT","dependencies":{"vscode-jsonrpc":"8.2.0","vscode-languageserver-types":"3.17.5"}},"node_modules/@bmewburn/vscode-html-languageserver/node_modules/vscode-languageserver-types":{"version":"3.17.5","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz","integrity":"sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==","license":"MIT"},"node_modules/@emmetio/abbreviation":{"version":"2.3.3","resolved":"https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.3.3.tgz","integrity":"sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==","license":"MIT","dependencies":{"@emmetio/scanner":"^1.0.4"}},"node_modules/@emmetio/css-abbreviation":{"version":"2.1.8","resolved":"https://registry.npmjs.org/@emmetio/css-abbreviation/-/css-abbreviation-2.1.8.tgz","integrity":"sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==","license":"MIT","dependencies":{"@emmetio/scanner":"^1.0.4"}},"node_modules/@emmetio/css-parser":{"version":"0.4.1","resolved":"https://registry.npmjs.org/@emmetio/css-parser/-/css-parser-0.4.1.tgz","integrity":"sha512-2bC6m0MV/voF4CTZiAbG5MWKbq5EBmDPKu9Sb7s7nVcEzNQlrZP6mFFFlIaISM8X6514H9shWMme1fCm8cWAfQ==","license":"MIT","dependencies":{"@emmetio/stream-reader":"^2.2.0","@emmetio/stream-reader-utils":"^0.1.0"}},"node_modules/@emmetio/html-matcher":{"version":"1.3.0","resolved":"https://registry.npmjs.org/@emmetio/html-matcher/-/html-matcher-1.3.0.tgz","integrity":"sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==","license":"ISC","dependencies":{"@emmetio/scanner":"^1.0.0"}},"node_modules/@emmetio/scanner":{"version":"1.0.4","resolved":"https://registry.npmjs.org/@emmetio/scanner/-/scanner-1.0.4.tgz","integrity":"sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==","license":"MIT"},"node_modules/@emmetio/stream-reader":{"version":"2.2.0","resolved":"https://registry.npmjs.org/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz","integrity":"sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==","license":"MIT"},"node_modules/@emmetio/stream-reader-utils":{"version":"0.1.0","resolved":"https://registry.npmjs.org/@emmetio/stream-reader-utils/-/stream-reader-utils-0.1.0.tgz","integrity":"sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==","license":"MIT"},"node_modules/@johnsoncodehk/pug-beautify":{"version":"0.2.2","resolved":"https://registry.npmjs.org/@johnsoncodehk/pug-beautify/-/pug-beautify-0.2.2.tgz","integrity":"sha512-qqNS/YD0Nck5wtQLCPHAfGVgWbbGafxSPjNh0ekYPFSNNqnDH2kamnduzYly8IiADmeVx/MfAE1njMEjVeHTMA==","license":"MIT"},"node_modules/@jridgewell/sourcemap-codec":{"version":"1.6.0","resolved":"https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz","integrity":"sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==","license":"MIT"},"node_modules/@mdx-js/language-server":{"version":"0.6.4","resolved":"https://registry.npmjs.org/@mdx-js/language-server/-/language-server-0.6.4.tgz","integrity":"sha512-FuHTy1Uvs2/I0ULSsGK+F+gja/1jvGhx6Mtnqw93jIIPh+3oQEtX4fpCh5wpdQPK9aaef+DKwGXttOTKZV/DBw==","license":"MIT","dependencies":{"@mdx-js/language-service":"0.7.4","@volar/language-server":"~2.4.0","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.0","volar-service-markdown":"0.0.65","volar-service-typescript":"0.0.65","vscode-languageserver-protocol":"~3.17.0","vscode-languageserver-types":"~3.17.0"},"bin":{"mdx-language-server":"lib/index.js"},"funding":{"url":"https://opencollective.com/unified"}},"node_modules/@mdx-js/language-server/node_modules/volar-service-typescript":{"version":"0.0.65","resolved":"https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.65.tgz","integrity":"sha512-zPJuLIMs7lkQCvL+Rza8+3/EIoXEIkX8+DL7bNNfPgnbalbvRDhqWLVMJ6Zk3pINjLJafDqyhSbw8srfkUv97w==","license":"MIT","dependencies":{"path-browserify":"^1.0.1","semver":"^7.6.2","typescript-auto-import-cache":"^0.3.5","vscode-languageserver-textdocument":"^1.0.11","vscode-nls":"^5.2.0","vscode-uri":"^3.0.8"},"peerDependencies":{"@volar/language-service":"~2.4.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true}}},"node_modules/@mdx-js/language-server/node_modules/vscode-jsonrpc":{"version":"8.2.0","resolved":"https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz","integrity":"sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==","license":"MIT","engines":{"node":">=14.0.0"}},"node_modules/@mdx-js/language-server/node_modules/vscode-languageserver-protocol":{"version":"3.17.5","resolved":"https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz","integrity":"sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==","license":"MIT","dependencies":{"vscode-jsonrpc":"8.2.0","vscode-languageserver-types":"3.17.5"}},"node_modules/@mdx-js/language-server/node_modules/vscode-languageserver-types":{"version":"3.17.5","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz","integrity":"sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==","license":"MIT"},"node_modules/@mdx-js/language-service":{"version":"0.7.4","resolved":"https://registry.npmjs.org/@mdx-js/language-service/-/language-service-0.7.4.tgz","integrity":"sha512-HwiY245uxVCeEzANOOCX0fbRGsVItjVv9guNCBQPWWrTEcy71KhPZ28MNEQy82fiSUUfIpMxzgUUCdQGGCh3uA==","license":"MIT","dependencies":{"@types/estree":"^1.0.0","@types/mdast":"^4.0.0","@types/unist":"^3.0.0","@volar/language-service":"~2.4.0","acorn":"^8.0.0","acorn-jsx":"^5.0.0","acorn-loose":"^8.0.0","estree-util-scope":"^1.0.0","estree-walker":"^3.0.0","mdast-util-mdxjs-esm":"^2.0.0","mdast-util-to-markdown":"^2.0.0","remark-mdx":"^3.0.0","remark-parse":"^11.0.0","unified":"^11.0.0","unist-util-lsp":"^2.0.0","unist-util-visit-parents":"^6.0.0","vfile-message":"^4.0.0","vscode-uri":"^3.0.0"},"funding":{"url":"https://opencollective.com/unified"}},"node_modules/@mdx-js/language-service/node_modules/estree-walker":{"version":"3.0.3","resolved":"https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz","integrity":"sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==","license":"MIT","dependencies":{"@types/estree":"^1.0.0"}},"node_modules/@microsoft/applicationinsights-web-snippet":{"version":"1.0.1","resolved":"https://registry.npmjs.org/@microsoft/applicationinsights-web-snippet/-/applicationinsights-web-snippet-1.0.1.tgz","integrity":"sha512-2IHAOaLauc8qaAitvWS+U931T+ze+7MNWrDHY47IENP5y2UA0vqJDu67kWZDdpCN1fFC77sfgfB+HV7SrKshnQ==","license":"MIT"},"node_modules/@mixmark-io/domino":{"version":"2.2.0","resolved":"https://registry.npmjs.org/@mixmark-io/domino/-/domino-2.2.0.tgz","integrity":"sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==","license":"BSD-2-Clause"},"node_modules/@nodelib/fs.scandir":{"version":"2.1.5","resolved":"https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz","integrity":"sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==","license":"MIT","dependencies":{"@nodelib/fs.stat":"2.0.5","run-parallel":"^1.1.9"},"engines":{"node":">= 8"}},"node_modules/@nodelib/fs.stat":{"version":"2.0.5","resolved":"https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz","integrity":"sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==","license":"MIT","engines":{"node":">= 8"}},"node_modules/@nodelib/fs.walk":{"version":"1.2.8","resolved":"https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz","integrity":"sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==","license":"MIT","dependencies":{"@nodelib/fs.scandir":"2.1.5","fastq":"^1.6.0"},"engines":{"node":">= 8"}},"node_modules/@one-ini/wasm":{"version":"0.2.1","resolved":"https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.2.1.tgz","integrity":"sha512-TUqERXGNTifZ9y2g3wPxQrw3HpHv/02DsW3D90T9x0hhonrL1ZqpSmNrU2XkoIq0fP1N6gZfVQzy2Fw1ZvGBNg==","license":"MIT"},"node_modules/@opentelemetry/api":{"version":"1.9.1","resolved":"https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.1.tgz","integrity":"sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==","license":"Apache-2.0","engines":{"node":">=8.0.0"}},"node_modules/@opentelemetry/api-logs":{"version":"0.211.0","resolved":"https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.211.0.tgz","integrity":"sha512-swFdZq8MCdmdR22jTVGQDhwqDzcI4M10nhjXkLr1EsIzXgZBqm4ZlmmcWsg3TSNf+3mzgOiqveXmBLZuDi2Lgg==","license":"Apache-2.0","dependencies":{"@opentelemetry/api":"^1.3.0"},"engines":{"node":">=8.0.0"}},"node_modules/@opentelemetry/core":{"version":"2.12.0","resolved":"https://registry.npmjs.org/@opentelemetry/core/-/core-2.12.0.tgz","integrity":"sha512-1HsSAuvT4/my0QrXWsyXFdWjKaPeCHsismKZgEEIb8NK13LP6DrMRlsUbvD/0F9mDWK3xDom9AMv3IscxgOnOQ==","license":"Apache-2.0","dependencies":{"@opentelemetry/semantic-conventions":"^1.29.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"}},"node_modules/@opentelemetry/instrumentation":{"version":"0.211.0","resolved":"https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.211.0.tgz","integrity":"sha512-h0nrZEC/zvI994nhg7EgQ8URIHt0uDTwN90r3qQUdZORS455bbx+YebnGeEuFghUT0HlJSrLF4iHw67f+odY+Q==","license":"Apache-2.0","dependencies":{"@opentelemetry/api-logs":"0.211.0","import-in-the-middle":"^2.0.0","require-in-the-middle":"^8.0.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"peerDependencies":{"@opentelemetry/api":"^1.3.0"}},"node_modules/@opentelemetry/resources":{"version":"2.12.0","resolved":"https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.12.0.tgz","integrity":"sha512-+rSRoOdln6NhXTVcBdHSlZxJDNzwxadeweK2ltZO3tVtfp6aklABc06xclDk6ovRR+EiGgIcSbh/6NgjFhnb3A==","license":"Apache-2.0","dependencies":{"@opentelemetry/core":"2.12.0","@opentelemetry/semantic-conventions":"^1.29.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"peerDependencies":{"@opentelemetry/api":">=1.3.0 <1.10.0"}},"node_modules/@opentelemetry/sdk-trace":{"version":"2.12.0","resolved":"https://registry.npmjs.org/@opentelemetry/sdk-trace/-/sdk-trace-2.12.0.tgz","integrity":"sha512-ImVuRQ6faOsTi1Wna88s2avgrrf/iDgXPigIeynkUhjstMuoQUDOJXgkez2j1mlU4btjXcXBGa+q7qKFYR3GsA==","license":"Apache-2.0","dependencies":{"@opentelemetry/core":"2.12.0","@opentelemetry/resources":"2.12.0","@opentelemetry/semantic-conventions":"^1.29.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"peerDependencies":{"@opentelemetry/api":">=1.3.0 <1.10.0"}},"node_modules/@opentelemetry/sdk-trace-base":{"version":"2.12.0","resolved":"https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.12.0.tgz","integrity":"sha512-JOERgZCxRM06FEJ5kEWxlSRChah6MmXDx3KwCruqEv/iEyLkTokCSemf2y1w8oIHtfrr8EVTpzebq/31vn2Cpg==","license":"Apache-2.0","dependencies":{"@opentelemetry/core":"2.12.0","@opentelemetry/resources":"2.12.0","@opentelemetry/sdk-trace":"2.12.0","@opentelemetry/semantic-conventions":"^1.29.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"peerDependencies":{"@opentelemetry/api":">=1.3.0 <1.10.0"}},"node_modules/@opentelemetry/sdk-trace-web":{"version":"2.11.0","resolved":"https://registry.npmjs.org/@opentelemetry/sdk-trace-web/-/sdk-trace-web-2.11.0.tgz","integrity":"sha512-8hgLI437x8VRKzgUr+WRcHFp9AeaHmveKRsPIMNele9tethgCKprakRRqZCWyt41ilALHATfspUMl1An0OTMUQ==","license":"Apache-2.0","dependencies":{"@opentelemetry/core":"2.11.0","@opentelemetry/sdk-trace-base":"2.11.0"},"engines":{"node":"^18.19.0 || >=20.6.0"},"peerDependencies":{"@opentelemetry/api":">=1.0.0 <1.10.0"}},"node_modules/@opentelemetry/semantic-conventions":{"version":"1.43.0","resolved":"https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.43.0.tgz","integrity":"sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==","license":"Apache-2.0","engines":{"node":">=14"}},"node_modules/@selderee/plugin-htmlparser2":{"version":"0.11.0","resolved":"https://registry.npmjs.org/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.11.0.tgz","integrity":"sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==","license":"MIT","dependencies":{"domhandler":"^5.0.3","selderee":"^0.11.0"},"funding":{"url":"https://ko-fi.com/killymxi"}},"node_modules/@tootallnate/quickjs-emscripten":{"version":"0.23.0","resolved":"https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz","integrity":"sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==","license":"MIT"},"node_modules/@types/debug":{"version":"4.1.13","resolved":"https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz","integrity":"sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==","license":"MIT","dependencies":{"@types/ms":"*"}},"node_modules/@types/estree":{"version":"1.0.9","resolved":"https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz","integrity":"sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==","license":"MIT"},"node_modules/@types/estree-jsx":{"version":"1.0.5","resolved":"https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz","integrity":"sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==","license":"MIT","dependencies":{"@types/estree":"*"}},"node_modules/@types/hast":{"version":"3.0.5","resolved":"https://registry.npmjs.org/@types/hast/-/hast-3.0.5.tgz","integrity":"sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==","license":"MIT","dependencies":{"@types/unist":"*"}},"node_modules/@types/mdast":{"version":"4.0.4","resolved":"https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz","integrity":"sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==","license":"MIT","dependencies":{"@types/unist":"*"}},"node_modules/@types/ms":{"version":"2.1.0","resolved":"https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz","integrity":"sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==","license":"MIT"},"node_modules/@types/unist":{"version":"3.0.3","resolved":"https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz","integrity":"sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==","license":"MIT"},"node_modules/@typespec/ts-http-runtime":{"version":"0.3.9","resolved":"https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.9.tgz","integrity":"sha512-edSdeAqkdxBVzA1yL1LrLCml1YjyCVvPMtMqJpbF+6K609tHe8V6sQUzFQSGcYNhcuhOceZtjvN32+mpIth30A==","license":"MIT","dependencies":{"http-proxy-agent":"^7.0.0","https-proxy-agent":"^7.0.0","tslib":"^2.6.2"},"engines":{"node":">=22.0.0"}},"node_modules/@volar/kit":{"version":"2.4.28","resolved":"https://registry.npmjs.org/@volar/kit/-/kit-2.4.28.tgz","integrity":"sha512-cKX4vK9dtZvDRaAzeoUdaAJEew6IdxHNCRrdp5Kvcl6zZOqb6jTOfk3kXkIkG3T7oTFXguEMt5+9ptyqYR84Pg==","license":"MIT","dependencies":{"@volar/language-service":"2.4.28","@volar/typescript":"2.4.28","typesafe-path":"^0.2.2","vscode-languageserver-textdocument":"^1.0.11","vscode-uri":"^3.0.8"},"peerDependencies":{"typescript":"*"}},"node_modules/@volar/language-core":{"version":"2.4.28","resolved":"https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.28.tgz","integrity":"sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==","license":"MIT","dependencies":{"@volar/source-map":"2.4.28"}},"node_modules/@volar/language-server":{"version":"2.4.28","resolved":"https://registry.npmjs.org/@volar/language-server/-/language-server-2.4.28.tgz","integrity":"sha512-NqcLnE5gERKuS4PUFwlhMxf6vqYo7hXtbMFbViXcbVkbZ905AIVWhnSo0ZNBC2V127H1/2zP7RvVOVnyITFfBw==","license":"MIT","dependencies":{"@volar/language-core":"2.4.28","@volar/language-service":"2.4.28","@volar/typescript":"2.4.28","path-browserify":"^1.0.1","request-light":"^0.7.0","vscode-languageserver":"^9.0.1","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.11","vscode-uri":"^3.0.8"}},"node_modules/@volar/language-service":{"version":"2.4.28","resolved":"https://registry.npmjs.org/@volar/language-service/-/language-service-2.4.28.tgz","integrity":"sha512-Rh/wYCZJrI5vCwMk9xyw/Z+MsWxlJY1rmMZPsxUoJKfzIRjS/NF1NmnuEcrMbEVGja00aVpCsInJfixQTMdvLw==","license":"MIT","dependencies":{"@volar/language-core":"2.4.28","vscode-languageserver-protocol":"^3.17.5","vscode-languageserver-textdocument":"^1.0.11","vscode-uri":"^3.0.8"}},"node_modules/@volar/source-map":{"version":"2.4.28","resolved":"https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.28.tgz","integrity":"sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==","license":"MIT"},"node_modules/@volar/typescript":{"version":"2.4.28","resolved":"https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.28.tgz","integrity":"sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==","license":"MIT","dependencies":{"@volar/language-core":"2.4.28","path-browserify":"^1.0.1","vscode-uri":"^3.0.8"}},"node_modules/@vscode/emmet-helper":{"version":"2.11.0","resolved":"https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.11.0.tgz","integrity":"sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==","license":"MIT","dependencies":{"emmet":"^2.4.3","jsonc-parser":"^2.3.0","vscode-languageserver-textdocument":"^1.0.1","vscode-languageserver-types":"^3.15.1","vscode-uri":"^3.0.8"}},"node_modules/@vscode/l10n":{"version":"0.0.18","resolved":"https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.18.tgz","integrity":"sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==","license":"MIT"},"node_modules/@vue/compiler-core":{"version":"3.5.42","resolved":"https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.42.tgz","integrity":"sha512-2Ye1ilMtKXxl8qZUrQ5j0CdgenFp/HFQmta6rfRyfEsTG69L6Wk+tWuNoHYHMx9E8tF2Slvdg1FuwDvAXdy1LQ==","license":"MIT","dependencies":{"@babel/parser":"^7.29.8","@vue/shared":"3.5.42","entities":"^7.0.1","estree-walker":"^2.0.2","source-map-js":"^1.2.1"}},"node_modules/@vue/compiler-dom":{"version":"3.5.42","resolved":"https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.42.tgz","integrity":"sha512-qbhQZEFmycr+ni/qyuccS4sucNN7VAbDfbkvNxWOX2VfgFm90MNs3/UhRNKoPMEIVn0F8gdlYjLPvqxHwHeQOA==","license":"MIT","dependencies":{"@vue/compiler-core":"3.5.42","@vue/shared":"3.5.42"}},"node_modules/@vue/language-core":{"version":"3.3.11","resolved":"https://registry.npmjs.org/@vue/language-core/-/language-core-3.3.11.tgz","integrity":"sha512-QJmpliwAVpC/OxubIByPAhNzsQPRc8/gxlN2qnVzVfIMjMDz/9RnXRFoetjz5yEgXVXyp4LqhXq3V53PjmNzFw==","license":"MIT","dependencies":{"@volar/language-core":"2.4.28","@vue/compiler-dom":"^3.5.0","@vue/shared":"^3.5.0","alien-signals":"^3.2.1","muggle-string":"^0.4.1","path-browserify":"^1.0.1","picomatch":"^4.0.4"}},"node_modules/@vue/language-plugin-pug":{"version":"3.2.9","resolved":"https://registry.npmjs.org/@vue/language-plugin-pug/-/language-plugin-pug-3.2.9.tgz","integrity":"sha512-EaRtg3/1TQo9D20nBex1G3NtWElJbSgiiisZe6TwiNKpSCRwFmmvuAkz+AfMmsQc53si3zbkApU8RF0o6ULQag==","license":"MIT","dependencies":{"@volar/source-map":"2.4.28","muggle-string":"^0.4.1","pug-lexer":"^5.0.1","pug-parser":"^6.0.0","vscode-languageserver-textdocument":"^1.0.12"}},"node_modules/@vue/language-server":{"version":"3.3.11","resolved":"https://registry.npmjs.org/@vue/language-server/-/language-server-3.3.11.tgz","integrity":"sha512-5QvJ3bkUTyuRE7R4l0R+6Xl7Cq7INd95Hxm6bz3J0k9v+TjwKJKlnVeaW9X0fxTVrkcVBpSIKLQpAMlIOXeI9w==","license":"MIT","dependencies":{"@volar/language-server":"2.4.28","@vue/language-core":"3.3.11","@vue/language-service":"3.3.11","@vue/typescript-plugin":"3.3.11","vscode-uri":"^3.1.0"},"bin":{"vue-language-server":"bin/vue-language-server.js"},"peerDependencies":{"typescript":"*"}},"node_modules/@vue/language-service":{"version":"3.3.11","resolved":"https://registry.npmjs.org/@vue/language-service/-/language-service-3.3.11.tgz","integrity":"sha512-Y1PXr3nY315T5Eb05bBuxpf+IoPAe0JiGuUX2quFgRflnNViue4Z+wQo+yY6g4VrvEQhPhPT0dr/jKmGNtzIxQ==","license":"MIT","dependencies":{"@volar/language-service":"2.4.28","@vue/language-core":"3.3.11","@vue/shared":"^3.5.0","path-browserify":"^1.0.1","volar-service-css":"0.0.71","volar-service-emmet":"0.0.71","volar-service-html":"0.0.71","volar-service-json":"0.0.71","volar-service-pug":"0.0.71","volar-service-pug-beautify":"0.0.71","volar-service-typescript":"0.0.71","vscode-html-languageservice":"^5.6.2","vscode-uri":"^3.1.0"}},"node_modules/@vue/shared":{"version":"3.5.42","resolved":"https://registry.npmjs.org/@vue/shared/-/shared-3.5.42.tgz","integrity":"sha512-2rPxex1jQf4jvl9MOHl6YaXCPcrNqz/FstMOEh3QWY+/OME9nQTvl9WYeCwhW7AFjaR0SnngZGlp/wkR6rkI6g==","license":"MIT"},"node_modules/@vue/typescript-plugin":{"version":"3.3.11","resolved":"https://registry.npmjs.org/@vue/typescript-plugin/-/typescript-plugin-3.3.11.tgz","integrity":"sha512-sTfyjuZuAClToH59lcBxNMWF+Ede6IBUiYEZI1MgL3Bf9sWV15mtv9P2dfL+4moSQjRf+17O7HX+a8JQdXhLYA==","license":"MIT","dependencies":{"@volar/typescript":"2.4.28","@vue/language-core":"3.3.11","@vue/shared":"^3.5.0","path-browserify":"^1.0.1","vue-component-meta":"3.3.11"}},"node_modules/acorn":{"version":"8.18.0","resolved":"https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz","integrity":"sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==","license":"MIT","bin":{"acorn":"bin/acorn"},"engines":{"node":">=0.4.0"}},"node_modules/acorn-import-attributes":{"version":"1.9.5","resolved":"https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz","integrity":"sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==","license":"MIT","peerDependencies":{"acorn":"^8"}},"node_modules/acorn-jsx":{"version":"5.3.2","resolved":"https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz","integrity":"sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==","license":"MIT","peerDependencies":{"acorn":"^6.0.0 || ^7.0.0 || ^8.0.0"}},"node_modules/acorn-loose":{"version":"8.5.2","resolved":"https://registry.npmjs.org/acorn-loose/-/acorn-loose-8.5.2.tgz","integrity":"sha512-PPvV6g8UGMGgjrMu+n/f9E/tCSkNQ2Y97eFvuVdJfG11+xdIeDcLyNdC8SHcrHbRqkfwLASdplyR6B6sKM1U4A==","license":"MIT","dependencies":{"acorn":"^8.15.0"},"engines":{"node":">=0.4.0"}},"node_modules/agent-base":{"version":"7.1.4","resolved":"https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz","integrity":"sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==","license":"MIT","engines":{"node":">= 14"}},"node_modules/ajv":{"version":"8.20.0","resolved":"https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz","integrity":"sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==","license":"MIT","dependencies":{"fast-deep-equal":"^3.1.3","fast-uri":"^3.0.1","json-schema-traverse":"^1.0.0","require-from-string":"^2.0.2"},"funding":{"type":"github","url":"https://github.com/sponsors/epoberezkin"}},"node_modules/ajv-draft-04":{"version":"1.0.0","resolved":"https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz","integrity":"sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==","license":"MIT","peerDependencies":{"ajv":"^8.5.0"},"peerDependenciesMeta":{"ajv":{"optional":true}}},"node_modules/ajv-i18n":{"version":"4.2.0","resolved":"https://registry.npmjs.org/ajv-i18n/-/ajv-i18n-4.2.0.tgz","integrity":"sha512-v/ei2UkCEeuKNXh8RToiFsUclmU+G57LO1Oo22OagNMENIw+Yb8eMwvHu7Vn9fmkjJyv6XclhJ8TbuigSglPkg==","license":"MIT","peerDependencies":{"ajv":"^8.0.0-beta.0"}},"node_modules/alien-signals":{"version":"3.2.1","resolved":"https://registry.npmjs.org/alien-signals/-/alien-signals-3.2.1.tgz","integrity":"sha512-I8FjmltrfnDFoZedi5CG8DghVYNhzb/Ijluz7tCSJH0xpd0484Kowhbb1XDYOxfJpU1p5wnM2X54dA+IfGyD1g==","license":"MIT"},"node_modules/applicationinsights":{"version":"2.9.8","resolved":"https://registry.npmjs.org/applicationinsights/-/applicationinsights-2.9.8.tgz","integrity":"sha512-eB/EtAXJ6mDLLvHrtZj/7h31qUfnC2Npr2pHGqds5+1OP7BFLsn5us+HCkwTj7Q+1sHXujLphE5Cyvq5grtV6g==","license":"MIT","dependencies":{"@azure/core-auth":"1.7.2","@azure/core-rest-pipeline":"1.16.3","@azure/opentelemetry-instrumentation-azure-sdk":"^1.0.0-beta.5","@microsoft/applicationinsights-web-snippet":"1.0.1","@opentelemetry/api":"^1.7.0","@opentelemetry/core":"^1.19.0","@opentelemetry/sdk-trace-base":"^1.19.0","@opentelemetry/semantic-conventions":"^1.19.0","cls-hooked":"^4.2.2","continuation-local-storage":"^3.2.1","diagnostic-channel":"1.1.1","diagnostic-channel-publishers":"1.0.8"},"engines":{"node":">=8.0.0"},"peerDependencies":{"applicationinsights-native-metrics":"*"},"peerDependenciesMeta":{"applicationinsights-native-metrics":{"optional":true}}},"node_modules/argparse":{"version":"2.0.1","resolved":"https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz","integrity":"sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==","license":"Python-2.0"},"node_modules/ast-types":{"version":"0.13.4","resolved":"https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz","integrity":"sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==","license":"MIT","dependencies":{"tslib":"^2.0.1"},"engines":{"node":">=4"}},"node_modules/async-hook-jl":{"version":"1.7.6","resolved":"https://registry.npmjs.org/async-hook-jl/-/async-hook-jl-1.7.6.tgz","integrity":"sha512-gFaHkFfSxTjvoxDMYqDuGHlcRyUuamF8s+ZTtJdDzqjws4mCt7v0vuV79/E2Wr2/riMQgtG4/yUtXWs1gZ7JMg==","license":"MIT","dependencies":{"stack-chain":"^1.3.7"},"engines":{"node":"^4.7 || >=6.9 || >=7.3"}},"node_modules/async-listener":{"version":"0.6.10","resolved":"https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz","integrity":"sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==","license":"BSD-2-Clause","dependencies":{"semver":"^5.3.0","shimmer":"^1.1.0"},"engines":{"node":"<=0.11.8 || >0.11.10"}},"node_modules/async-listener/node_modules/semver":{"version":"5.7.2","resolved":"https://registry.npmjs.org/semver/-/semver-5.7.2.tgz","integrity":"sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==","license":"ISC","bin":{"semver":"bin/semver"}},"node_modules/bail":{"version":"2.0.2","resolved":"https://registry.npmjs.org/bail/-/bail-2.0.2.tgz","integrity":"sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/balanced-match":{"version":"4.0.4","resolved":"https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz","integrity":"sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==","license":"MIT","engines":{"node":"18 || 20 || >=22"}},"node_modules/bash-language-server":{"version":"5.8.1","resolved":"https://registry.npmjs.org/bash-language-server/-/bash-language-server-5.8.1.tgz","integrity":"sha512-F3g0hKZhCiKbLUf9wkrST6+ZypsHvJqaJxw/+J7WK2ywhFyc8+7jSHSTU1UDYncZkyWgbKV6+eZy5qWTZtoXww==","license":"MIT","dependencies":{"editorconfig":"3.0.2","fast-glob":"3.3.3","fuzzy-search":"3.2.1","turndown":"7.2.4","vscode-languageserver":"10.1.1","vscode-languageserver-textdocument":"1.0.14","web-tree-sitter":"0.27.0","zod":"3.25.76"},"bin":{"bash-language-server":"out/cli.js"},"engines":{"node":">=20"}},"node_modules/bash-language-server/node_modules/vscode-languageserver":{"version":"10.1.1","resolved":"https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-10.1.1.tgz","integrity":"sha512-/cG04Fiq99rEtoDrfPpv0k6NyUFlck5GNtZLQZv1rxkBkc/4FrJNvEKTN5k1Si3O1hRguP++ciYlX9cdjdYxFQ==","license":"MIT","dependencies":{"vscode-languageserver-protocol":"3.18.3"},"bin":{"installServerIntoExtension":"bin/installServerIntoExtension"}},"node_modules/basic-ftp":{"version":"6.2.2","resolved":"https://registry.npmjs.org/basic-ftp/-/basic-ftp-6.2.2.tgz","integrity":"sha512-LIkJcf/F6bTTfvE3k2YcTxrJsLKKVXiEpHZYkQP6JoqTb7khng7c13ckRTDQbqRh5IkehVH3F00sSlAa2F6DwA==","license":"MIT","engines":{"node":">=10.0.0"}},"node_modules/boolbase":{"version":"1.0.0","resolved":"https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz","integrity":"sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==","license":"ISC"},"node_modules/brace-expansion":{"version":"5.0.12","resolved":"https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz","integrity":"sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==","license":"MIT","dependencies":{"balanced-match":"^4.0.2"},"engines":{"node":"20 || >=22"}},"node_modules/braces":{"version":"3.0.3","resolved":"https://registry.npmjs.org/braces/-/braces-3.0.3.tgz","integrity":"sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==","license":"MIT","dependencies":{"fill-range":"^7.1.1"},"engines":{"node":">=8"}},"node_modules/call-bind-apply-helpers":{"version":"1.0.2","resolved":"https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz","integrity":"sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==","license":"MIT","dependencies":{"es-errors":"^1.3.0","function-bind":"^1.1.2"},"engines":{"node":">= 0.4"}},"node_modules/call-bound":{"version":"1.0.4","resolved":"https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz","integrity":"sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==","license":"MIT","dependencies":{"call-bind-apply-helpers":"^1.0.2","get-intrinsic":"^1.3.0"},"engines":{"node":">= 0.4"},"funding":{"url":"https://github.com/sponsors/ljharb"}},"node_modules/ccount":{"version":"2.0.1","resolved":"https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz","integrity":"sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/character-entities":{"version":"2.0.2","resolved":"https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz","integrity":"sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/character-entities-html4":{"version":"2.1.0","resolved":"https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz","integrity":"sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/character-entities-legacy":{"version":"3.0.0","resolved":"https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz","integrity":"sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/character-parser":{"version":"2.2.0","resolved":"https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz","integrity":"sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==","license":"MIT","dependencies":{"is-regex":"^1.0.3"}},"node_modules/character-reference-invalid":{"version":"2.0.1","resolved":"https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz","integrity":"sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/cjs-module-lexer":{"version":"2.2.1","resolved":"https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.2.1.tgz","integrity":"sha512-Ca8swihM+/4yKecYHY52kgJd300hi2lADU/a1RxNTRe+RJ9jvqQlESpbz9DnG9mowez8qwXHB8qYdIUw9e+F5Q==","license":"MIT"},"node_modules/cls-hooked":{"version":"4.2.2","resolved":"https://registry.npmjs.org/cls-hooked/-/cls-hooked-4.2.2.tgz","integrity":"sha512-J4Xj5f5wq/4jAvcdgoGsL3G103BtWpZrMo8NEinRltN+xpTZdI+M38pyQqhuFU/P792xkMFvnKSf+Lm81U1bxw==","license":"BSD-2-Clause","dependencies":{"async-hook-jl":"^1.7.6","emitter-listener":"^1.0.1","semver":"^5.4.1"},"engines":{"node":"^4.7 || >=6.9 || >=7.3 || >=8.2.1"}},"node_modules/cls-hooked/node_modules/semver":{"version":"5.7.2","resolved":"https://registry.npmjs.org/semver/-/semver-5.7.2.tgz","integrity":"sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==","license":"ISC","bin":{"semver":"bin/semver"}},"node_modules/commander":{"version":"14.0.3","resolved":"https://registry.npmjs.org/commander/-/commander-14.0.3.tgz","integrity":"sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==","license":"MIT","engines":{"node":">=20"}},"node_modules/continuation-local-storage":{"version":"3.2.1","resolved":"https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz","integrity":"sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==","license":"BSD-2-Clause","dependencies":{"async-listener":"^0.6.0","emitter-listener":"^1.1.1"}},"node_modules/core-js":{"version":"3.50.0","resolved":"https://registry.npmjs.org/core-js/-/core-js-3.50.0.tgz","integrity":"sha512-BRWgOLKkFeCgRudR6zrs8p9XJZcE14grzKMMssoYrk6krtuEZ7MTKPIY5RzOnqsEKIR9kst7wNzphttraT+Yqw==","hasInstallScript":true,"license":"MIT","engines":{"node":"*"},"funding":{"type":"opencollective","url":"https://opencollective.com/core-js"}},"node_modules/css-select":{"version":"5.2.2","resolved":"https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz","integrity":"sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==","license":"BSD-2-Clause","dependencies":{"boolbase":"^1.0.0","css-what":"^6.1.0","domhandler":"^5.0.2","domutils":"^3.0.1","nth-check":"^2.0.1"},"funding":{"url":"https://github.com/sponsors/fb55"}},"node_modules/css-what":{"version":"6.2.2","resolved":"https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz","integrity":"sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==","license":"BSD-2-Clause","engines":{"node":">= 6"},"funding":{"url":"https://github.com/sponsors/fb55"}},"node_modules/data-uri-to-buffer":{"version":"6.0.2","resolved":"https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz","integrity":"sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==","license":"MIT","engines":{"node":">= 14"}},"node_modules/debug":{"version":"4.4.3","resolved":"https://registry.npmjs.org/debug/-/debug-4.4.3.tgz","integrity":"sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==","license":"MIT","dependencies":{"ms":"^2.1.3"},"engines":{"node":">=6.0"},"peerDependenciesMeta":{"supports-color":{"optional":true}}},"node_modules/decode-named-character-reference":{"version":"1.3.0","resolved":"https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz","integrity":"sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==","license":"MIT","dependencies":{"character-entities":"^2.0.0"},"funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/deepmerge":{"version":"4.3.1","resolved":"https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz","integrity":"sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==","license":"MIT","engines":{"node":">=0.10.0"}},"node_modules/degenerator":{"version":"5.0.1","resolved":"https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz","integrity":"sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==","license":"MIT","dependencies":{"ast-types":"^0.13.4","escodegen":"^2.1.0","esprima":"^4.0.1"},"engines":{"node":">= 14"}},"node_modules/dequal":{"version":"2.0.3","resolved":"https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz","integrity":"sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==","license":"MIT","engines":{"node":">=6"}},"node_modules/devlop":{"version":"1.1.0","resolved":"https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz","integrity":"sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==","license":"MIT","dependencies":{"dequal":"^2.0.0"},"funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/diagnostic-channel":{"version":"1.1.1","resolved":"https://registry.npmjs.org/diagnostic-channel/-/diagnostic-channel-1.1.1.tgz","integrity":"sha512-r2HV5qFkUICyoaKlBEpLKHjxMXATUf/l+h8UZPGBHGLy4DDiY2sOLcIctax4eRnTw5wH2jTMExLntGPJ8eOJxw==","license":"MIT","dependencies":{"semver":"^7.5.3"}},"node_modules/diagnostic-channel-publishers":{"version":"1.0.8","resolved":"https://registry.npmjs.org/diagnostic-channel-publishers/-/diagnostic-channel-publishers-1.0.8.tgz","integrity":"sha512-HmSm9hXxSPxA9BaLGY98QU1zsdjeCk113KjAYGPCen1ZP6mhVaTPzHd6UYv5r21DnWANi+f+NyPOHruGT9jpqQ==","license":"MIT","peerDependencies":{"diagnostic-channel":"*"}},"node_modules/dockerfile-ast":{"version":"0.7.1","resolved":"https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.7.1.tgz","integrity":"sha512-oX/A4I0EhSkGqrFv0YuvPkBUSYp1XiY8O8zAKc8Djglx8ocz+JfOr8gP0ryRMC2myqvDLagmnZaU9ot1vG2ijw==","license":"MIT","dependencies":{"vscode-languageserver-textdocument":"^1.0.8","vscode-languageserver-types":"^3.17.3"},"engines":{"node":"*"}},"node_modules/dockerfile-language-server-nodejs":{"version":"0.15.0","resolved":"https://registry.npmjs.org/dockerfile-language-server-nodejs/-/dockerfile-language-server-nodejs-0.15.0.tgz","integrity":"sha512-iS3GUUAn1bC3sDdLyg6CUnIaVQfViJBh+FhWBPftK6kJkhUMxFG2sr25OqMVaZgRsVuJEoNpflgJN3FCbkA01A==","license":"MIT","dependencies":{"dockerfile-language-service":"0.16.1","dockerfile-utils":"0.16.3","vscode-languageserver":"~8.0.0","vscode-languageserver-textdocument":"~1.0.8"},"bin":{"docker-langserver":"bin/docker-langserver"},"engines":{"node":"*"}},"node_modules/dockerfile-language-server-nodejs/node_modules/vscode-jsonrpc":{"version":"8.0.2","resolved":"https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.0.2.tgz","integrity":"sha512-RY7HwI/ydoC1Wwg4gJ3y6LpU9FJRZAUnTYMXthqhFXXu77ErDd/xkREpGuk4MyYkk4a+XDWAMqe0S3KkelYQEQ==","license":"MIT","engines":{"node":">=14.0.0"}},"node_modules/dockerfile-language-server-nodejs/node_modules/vscode-languageserver":{"version":"8.0.2","resolved":"https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-8.0.2.tgz","integrity":"sha512-bpEt2ggPxKzsAOZlXmCJ50bV7VrxwCS5BI4+egUmure/oI/t4OlFzi/YNtVvY24A2UDOZAgwFGgnZPwqSJubkA==","license":"MIT","dependencies":{"vscode-languageserver-protocol":"3.17.2"},"bin":{"installServerIntoExtension":"bin/installServerIntoExtension"}},"node_modules/dockerfile-language-server-nodejs/node_modules/vscode-languageserver-protocol":{"version":"3.17.2","resolved":"https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.2.tgz","integrity":"sha512-8kYisQ3z/SQ2kyjlNeQxbkkTNmVFoQCqkmGrzLH6A9ecPlgTbp3wDTnUNqaUxYr4vlAcloxx8zwy7G5WdguYNg==","license":"MIT","dependencies":{"vscode-jsonrpc":"8.0.2","vscode-languageserver-types":"3.17.2"}},"node_modules/dockerfile-language-server-nodejs/node_modules/vscode-languageserver-types":{"version":"3.17.2","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.2.tgz","integrity":"sha512-zHhCWatviizPIq9B7Vh9uvrH6x3sK8itC84HkamnBWoDFJtzBf7SWlpLCZUit72b3os45h6RWQNC9xHRDF8dRA==","license":"MIT"},"node_modules/dockerfile-language-service":{"version":"0.16.1","resolved":"https://registry.npmjs.org/dockerfile-language-service/-/dockerfile-language-service-0.16.1.tgz","integrity":"sha512-4tKDJHXl7BQMSi807TlyJ+4ApH5WkDai2PSFju/pjy7atRchJgn4UrmPlq8E0dVqyZwyTiNfapHxqsUQyQSMOg==","license":"MIT","dependencies":{"dockerfile-ast":"0.7.1","dockerfile-utils":"0.16.3","vscode-languageserver-textdocument":"1.0.8","vscode-languageserver-types":"3.17.3"},"engines":{"node":"*"}},"node_modules/dockerfile-language-service/node_modules/vscode-languageserver-textdocument":{"version":"1.0.8","resolved":"https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz","integrity":"sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==","license":"MIT"},"node_modules/dockerfile-utils":{"version":"0.16.3","resolved":"https://registry.npmjs.org/dockerfile-utils/-/dockerfile-utils-0.16.3.tgz","integrity":"sha512-BslaqRR6PzCnhu+toDbkVAjq0B0CEgrCltk+enJ/xwCmvAHB1QqpO9QhXVIzMg/iSuD4tzS0Ex9n4Ik5ffI7pA==","license":"MIT","dependencies":{"dockerfile-ast":"0.7.1","vscode-languageserver-textdocument":"^1.0.8","vscode-languageserver-types":"^3.17.3"},"bin":{"dockerfile-utils":"bin/dockerfile-utils"},"engines":{"node":"*"}},"node_modules/dom-serializer":{"version":"2.0.0","resolved":"https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz","integrity":"sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==","license":"MIT","dependencies":{"domelementtype":"^2.3.0","domhandler":"^5.0.2","entities":"^4.2.0"},"funding":{"url":"https://github.com/cheeriojs/dom-serializer?sponsor=1"}},"node_modules/dom-serializer/node_modules/entities":{"version":"4.5.0","resolved":"https://registry.npmjs.org/entities/-/entities-4.5.0.tgz","integrity":"sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==","license":"BSD-2-Clause","engines":{"node":">=0.12"},"funding":{"url":"https://github.com/fb55/entities?sponsor=1"}},"node_modules/domelementtype":{"version":"2.3.0","resolved":"https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz","integrity":"sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==","funding":[{"type":"github","url":"https://github.com/sponsors/fb55"}],"license":"BSD-2-Clause"},"node_modules/domhandler":{"version":"5.0.3","resolved":"https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz","integrity":"sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==","license":"BSD-2-Clause","dependencies":{"domelementtype":"^2.3.0"},"engines":{"node":">= 4"},"funding":{"url":"https://github.com/fb55/domhandler?sponsor=1"}},"node_modules/domutils":{"version":"3.2.2","resolved":"https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz","integrity":"sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==","license":"BSD-2-Clause","dependencies":{"dom-serializer":"^2.0.0","domelementtype":"^2.3.0","domhandler":"^5.0.3"},"funding":{"url":"https://github.com/fb55/domutils?sponsor=1"}},"node_modules/dunder-proto":{"version":"1.0.1","resolved":"https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz","integrity":"sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==","license":"MIT","dependencies":{"call-bind-apply-helpers":"^1.0.1","es-errors":"^1.3.0","gopd":"^1.2.0"},"engines":{"node":">= 0.4"}},"node_modules/editorconfig":{"version":"3.0.2","resolved":"https://registry.npmjs.org/editorconfig/-/editorconfig-3.0.2.tgz","integrity":"sha512-T0ix8GhtxyKVfUFEcvdNDt3YGqlwkFHbD4/5bgFUDgFmxhI/cSRAeJ87/Sz//Cq8Eam6JX/e23RkoFO71P7aAA==","license":"MIT","dependencies":{"@one-ini/wasm":"0.2.1","commander":"^14.0.3","minimatch":"~10.2.4","semver":"^7.7.4"},"bin":{"editorconfig":"bin/editorconfig"},"engines":{"node":">=20"}},"node_modules/emitter-listener":{"version":"1.1.2","resolved":"https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz","integrity":"sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==","license":"BSD-2-Clause","dependencies":{"shimmer":"^1.2.0"}},"node_modules/emmet":{"version":"2.4.11","resolved":"https://registry.npmjs.org/emmet/-/emmet-2.4.11.tgz","integrity":"sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==","license":"MIT","workspaces":["./packages/scanner","./packages/abbreviation","./packages/css-abbreviation","./"],"dependencies":{"@emmetio/abbreviation":"^2.3.3","@emmetio/css-abbreviation":"^2.1.8"}},"node_modules/entities":{"version":"7.0.1","resolved":"https://registry.npmjs.org/entities/-/entities-7.0.1.tgz","integrity":"sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==","license":"BSD-2-Clause","engines":{"node":">=0.12"},"funding":{"url":"https://github.com/fb55/entities?sponsor=1"}},"node_modules/es-define-property":{"version":"1.0.1","resolved":"https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz","integrity":"sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==","license":"MIT","engines":{"node":">= 0.4"}},"node_modules/es-errors":{"version":"1.3.0","resolved":"https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz","integrity":"sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==","license":"MIT","engines":{"node":">= 0.4"}},"node_modules/es-object-atoms":{"version":"1.1.2","resolved":"https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz","integrity":"sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==","license":"MIT","dependencies":{"es-errors":"^1.3.0"},"engines":{"node":">= 0.4"}},"node_modules/escape-string-regexp":{"version":"5.0.0","resolved":"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz","integrity":"sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==","license":"MIT","engines":{"node":">=12"},"funding":{"url":"https://github.com/sponsors/sindresorhus"}},"node_modules/escodegen":{"version":"2.1.0","resolved":"https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz","integrity":"sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==","license":"BSD-2-Clause","dependencies":{"esprima":"^4.0.1","estraverse":"^5.2.0","esutils":"^2.0.2"},"bin":{"escodegen":"bin/escodegen.js","esgenerate":"bin/esgenerate.js"},"engines":{"node":">=6.0"},"optionalDependencies":{"source-map":"~0.6.1"}},"node_modules/esprima":{"version":"4.0.1","resolved":"https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz","integrity":"sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==","license":"BSD-2-Clause","bin":{"esparse":"bin/esparse.js","esvalidate":"bin/esvalidate.js"},"engines":{"node":">=4"}},"node_modules/estraverse":{"version":"5.3.0","resolved":"https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz","integrity":"sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==","license":"BSD-2-Clause","engines":{"node":">=4.0"}},"node_modules/estree-util-is-identifier-name":{"version":"3.0.0","resolved":"https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz","integrity":"sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==","license":"MIT","funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/estree-util-scope":{"version":"1.0.1","resolved":"https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.1.tgz","integrity":"sha512-B0np3dcdxqILX5e9nEi5/Fr4K7gL4oYFVPV1zRa2e9wRCbQoZZNWOZFYyoInvXUPJXBXjss+QXlWLJChDEHDkA==","license":"MIT","dependencies":{"@types/estree":"^1.0.0","devlop":"^1.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/estree-util-visit":{"version":"2.0.0","resolved":"https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz","integrity":"sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==","license":"MIT","dependencies":{"@types/estree-jsx":"^1.0.0","@types/unist":"^3.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/estree-walker":{"version":"2.0.2","resolved":"https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz","integrity":"sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==","license":"MIT"},"node_modules/esutils":{"version":"2.0.3","resolved":"https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz","integrity":"sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==","license":"BSD-2-Clause","engines":{"node":">=0.10.0"}},"node_modules/extend":{"version":"3.0.2","resolved":"https://registry.npmjs.org/extend/-/extend-3.0.2.tgz","integrity":"sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==","license":"MIT"},"node_modules/fast-deep-equal":{"version":"3.1.3","resolved":"https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz","integrity":"sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==","license":"MIT"},"node_modules/fast-glob":{"version":"3.3.3","resolved":"https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz","integrity":"sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==","license":"MIT","dependencies":{"@nodelib/fs.stat":"^2.0.2","@nodelib/fs.walk":"^1.2.3","glob-parent":"^5.1.2","merge2":"^1.3.0","micromatch":"^4.0.8"},"engines":{"node":">=8.6.0"}},"node_modules/fast-uri":{"version":"3.1.8","resolved":"https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.8.tgz","integrity":"sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==","funding":[{"type":"github","url":"https://github.com/sponsors/fastify"},{"type":"opencollective","url":"https://opencollective.com/fastify"}],"license":"BSD-3-Clause"},"node_modules/fastq":{"version":"1.20.3","resolved":"https://registry.npmjs.org/fastq/-/fastq-1.20.3.tgz","integrity":"sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==","license":"ISC","dependencies":{"reusify":"^1.0.4"}},"node_modules/fault":{"version":"2.0.1","resolved":"https://registry.npmjs.org/fault/-/fault-2.0.1.tgz","integrity":"sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==","license":"MIT","dependencies":{"format":"^0.2.0"},"funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/fdir":{"version":"6.5.0","resolved":"https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz","integrity":"sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==","license":"MIT","engines":{"node":">=12.0.0"},"peerDependencies":{"picomatch":"^3 || ^4"},"peerDependenciesMeta":{"picomatch":{"optional":true}}},"node_modules/fill-range":{"version":"7.1.1","resolved":"https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz","integrity":"sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==","license":"MIT","dependencies":{"to-regex-range":"^5.0.1"},"engines":{"node":">=8"}},"node_modules/format":{"version":"0.2.2","resolved":"https://registry.npmjs.org/format/-/format-0.2.2.tgz","integrity":"sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==","engines":{"node":">=0.4.x"}},"node_modules/fs-extra":{"version":"11.3.4","resolved":"https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz","integrity":"sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==","license":"MIT","dependencies":{"graceful-fs":"^4.2.0","jsonfile":"^6.0.1","universalify":"^2.0.0"},"engines":{"node":">=14.14"}},"node_modules/function-bind":{"version":"1.1.2","resolved":"https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz","integrity":"sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==","license":"MIT","funding":{"url":"https://github.com/sponsors/ljharb"}},"node_modules/fuzzy-search":{"version":"3.2.1","resolved":"https://registry.npmjs.org/fuzzy-search/-/fuzzy-search-3.2.1.tgz","integrity":"sha512-vAcPiyomt1ioKAsAL2uxSABHJ4Ju/e4UeDM+g1OlR0vV4YhLGMNsdLNvZTpEDY4JCSt0E4hASCNM5t2ETtsbyg==","license":"ISC"},"node_modules/get-intrinsic":{"version":"1.3.0","resolved":"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz","integrity":"sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==","license":"MIT","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"},"engines":{"node":">= 0.4"},"funding":{"url":"https://github.com/sponsors/ljharb"}},"node_modules/get-proto":{"version":"1.0.1","resolved":"https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz","integrity":"sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==","license":"MIT","dependencies":{"dunder-proto":"^1.0.1","es-object-atoms":"^1.0.0"},"engines":{"node":">= 0.4"}},"node_modules/get-uri":{"version":"6.0.5","resolved":"https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz","integrity":"sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==","license":"MIT","dependencies":{"basic-ftp":"^5.0.2","data-uri-to-buffer":"^6.0.2","debug":"^4.3.4"},"engines":{"node":">= 14"}},"node_modules/glob-parent":{"version":"5.1.2","resolved":"https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz","integrity":"sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==","license":"ISC","dependencies":{"is-glob":"^4.0.1"},"engines":{"node":">= 6"}},"node_modules/gopd":{"version":"1.2.0","resolved":"https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz","integrity":"sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==","license":"MIT","engines":{"node":">= 0.4"},"funding":{"url":"https://github.com/sponsors/ljharb"}},"node_modules/graceful-fs":{"version":"4.2.11","resolved":"https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz","integrity":"sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==","license":"ISC"},"node_modules/has-symbols":{"version":"1.1.0","resolved":"https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz","integrity":"sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==","license":"MIT","engines":{"node":">= 0.4"},"funding":{"url":"https://github.com/sponsors/ljharb"}},"node_modules/has-tostringtag":{"version":"1.0.2","resolved":"https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz","integrity":"sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==","license":"MIT","dependencies":{"has-symbols":"^1.0.3"},"engines":{"node":">= 0.4"},"funding":{"url":"https://github.com/sponsors/ljharb"}},"node_modules/hasown":{"version":"2.0.4","resolved":"https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz","integrity":"sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==","license":"MIT","dependencies":{"function-bind":"^1.1.2"},"engines":{"node":">= 0.4"}},"node_modules/he":{"version":"1.2.0","resolved":"https://registry.npmjs.org/he/-/he-1.2.0.tgz","integrity":"sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==","license":"MIT","bin":{"he":"bin/he"}},"node_modules/html-to-text":{"version":"9.0.5","resolved":"https://registry.npmjs.org/html-to-text/-/html-to-text-9.0.5.tgz","integrity":"sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==","license":"MIT","dependencies":{"@selderee/plugin-htmlparser2":"^0.11.0","deepmerge":"^4.3.1","dom-serializer":"^2.0.0","htmlparser2":"^8.0.2","selderee":"^0.11.0"},"engines":{"node":">=14"}},"node_modules/htmlparser2":{"version":"8.0.2","resolved":"https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz","integrity":"sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==","funding":["https://github.com/fb55/htmlparser2?sponsor=1",{"type":"github","url":"https://github.com/sponsors/fb55"}],"license":"MIT","dependencies":{"domelementtype":"^2.3.0","domhandler":"^5.0.3","domutils":"^3.0.1","entities":"^4.4.0"}},"node_modules/htmlparser2/node_modules/entities":{"version":"4.5.0","resolved":"https://registry.npmjs.org/entities/-/entities-4.5.0.tgz","integrity":"sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==","license":"BSD-2-Clause","engines":{"node":">=0.12"},"funding":{"url":"https://github.com/fb55/entities?sponsor=1"}},"node_modules/http-proxy-agent":{"version":"7.0.2","resolved":"https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz","integrity":"sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==","license":"MIT","dependencies":{"agent-base":"^7.1.0","debug":"^4.3.4"},"engines":{"node":">= 14"}},"node_modules/https-proxy-agent":{"version":"7.0.6","resolved":"https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz","integrity":"sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==","license":"MIT","dependencies":{"agent-base":"^7.1.2","debug":"4"},"engines":{"node":">= 14"}},"node_modules/import-in-the-middle":{"version":"2.0.6","resolved":"https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-2.0.6.tgz","integrity":"sha512-3vZV3jX0XRFW3EJDTwzWoZa+RH1b8eTTx6YOCjglrLyPuepwoBti1k3L2dKwdCUrnVEfc5CuRuGstaC/uQJJaw==","license":"Apache-2.0","dependencies":{"acorn":"^8.15.0","acorn-import-attributes":"^1.9.5","cjs-module-lexer":"^2.2.0","module-details-from-path":"^1.0.4"}},"node_modules/intelephense":{"version":"1.18.5","resolved":"https://registry.npmjs.org/intelephense/-/intelephense-1.18.5.tgz","integrity":"sha512-dqCH1YNCRlHGBLND+iUFjBJlGwM4pPimX2jm8AaP/6K2WZNM2K2+E8dOWCD3ZYMP2zC2ICBD9Soe2oxKtU9d9A==","license":"SEE LICENSE IN LICENSE.txt","dependencies":{"@bmewburn/js-beautify":"1.15.4","@bmewburn/vscode-html-languageserver":"1.11.1","applicationinsights":"2.9.8","fast-glob":"3.3.3","fs-extra":"11.3.4","html-to-text":"9.0.5","lru-cache":"11.3.5","micromatch":"4.0.8","protobufjs":"8.3.0","proxy-agent":"6.5.0","semver":"7.7.4","turndown":"7.2.4","turndown-plugin-gfm":"1.0.2","vscode-languageserver":"9.0.1","vscode-languageserver-types":"3.17.5","vscode-uri":"3.1.0"},"bin":{"intelephense":"lib/intelephense.js"},"funding":{"url":"https://intelephense.com"}},"node_modules/intelephense/node_modules/semver":{"version":"7.7.4","resolved":"https://registry.npmjs.org/semver/-/semver-7.7.4.tgz","integrity":"sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==","license":"ISC","bin":{"semver":"bin/semver.js"},"engines":{"node":">=10"}},"node_modules/intelephense/node_modules/vscode-languageserver-types":{"version":"3.17.5","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz","integrity":"sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==","license":"MIT"},"node_modules/intelephense/node_modules/vscode-uri":{"version":"3.1.0","resolved":"https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz","integrity":"sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==","license":"MIT"},"node_modules/ip-address":{"version":"10.7.3","resolved":"https://registry.npmjs.org/ip-address/-/ip-address-10.7.3.tgz","integrity":"sha512-A1kdq/tSb5QjvKvAMgIoEvDBIgL7qaqVP/jkvSwYYRZ9iEzvPpopxp2wQfu3SuZRHtpHNxMn8Fs0bS+gf5Xmwg==","license":"MIT","engines":{"node":">= 12"}},"node_modules/is-alphabetical":{"version":"2.0.1","resolved":"https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz","integrity":"sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/is-alphanumerical":{"version":"2.0.1","resolved":"https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz","integrity":"sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==","license":"MIT","dependencies":{"is-alphabetical":"^2.0.0","is-decimal":"^2.0.0"},"funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/is-decimal":{"version":"2.0.1","resolved":"https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz","integrity":"sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/is-expression":{"version":"4.0.0","resolved":"https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz","integrity":"sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==","license":"MIT","dependencies":{"acorn":"^7.1.1","object-assign":"^4.1.1"}},"node_modules/is-expression/node_modules/acorn":{"version":"7.4.1","resolved":"https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz","integrity":"sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==","license":"MIT","bin":{"acorn":"bin/acorn"},"engines":{"node":">=0.4.0"}},"node_modules/is-extglob":{"version":"2.1.1","resolved":"https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz","integrity":"sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==","license":"MIT","engines":{"node":">=0.10.0"}},"node_modules/is-glob":{"version":"4.0.3","resolved":"https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz","integrity":"sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==","license":"MIT","dependencies":{"is-extglob":"^2.1.1"},"engines":{"node":">=0.10.0"}},"node_modules/is-hexadecimal":{"version":"2.0.1","resolved":"https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz","integrity":"sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/is-number":{"version":"7.0.0","resolved":"https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz","integrity":"sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==","license":"MIT","engines":{"node":">=0.12.0"}},"node_modules/is-plain-obj":{"version":"4.1.0","resolved":"https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz","integrity":"sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==","license":"MIT","engines":{"node":">=12"},"funding":{"url":"https://github.com/sponsors/sindresorhus"}},"node_modules/is-regex":{"version":"1.2.1","resolved":"https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz","integrity":"sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==","license":"MIT","dependencies":{"call-bound":"^1.0.2","gopd":"^1.2.0","has-tostringtag":"^1.0.2","hasown":"^2.0.2"},"engines":{"node":">= 0.4"},"funding":{"url":"https://github.com/sponsors/ljharb"}},"node_modules/json-schema-traverse":{"version":"1.0.0","resolved":"https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz","integrity":"sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==","license":"MIT"},"node_modules/jsonc-parser":{"version":"2.3.1","resolved":"https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz","integrity":"sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==","license":"MIT"},"node_modules/jsonfile":{"version":"6.2.1","resolved":"https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz","integrity":"sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==","license":"MIT","dependencies":{"universalify":"^2.0.0"},"optionalDependencies":{"graceful-fs":"^4.1.6"}},"node_modules/leac":{"version":"0.6.0","resolved":"https://registry.npmjs.org/leac/-/leac-0.6.0.tgz","integrity":"sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==","license":"MIT","funding":{"url":"https://ko-fi.com/killymxi"}},"node_modules/linkify-it":{"version":"5.0.2","resolved":"https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.2.tgz","integrity":"sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==","funding":[{"type":"github","url":"https://github.com/sponsors/puzrin"},{"type":"github","url":"https://github.com/sponsors/markdown-it"}],"license":"MIT","dependencies":{"uc.micro":"^2.0.0"}},"node_modules/long":{"version":"5.3.2","resolved":"https://registry.npmjs.org/long/-/long-5.3.2.tgz","integrity":"sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==","license":"Apache-2.0"},"node_modules/longest-streak":{"version":"3.1.0","resolved":"https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz","integrity":"sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/lru-cache":{"version":"11.3.5","resolved":"https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz","integrity":"sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==","license":"BlueOak-1.0.0","engines":{"node":"20 || >=22"}},"node_modules/markdown-it":{"version":"14.3.1","resolved":"https://registry.npmjs.org/markdown-it/-/markdown-it-14.3.1.tgz","integrity":"sha512-4Ej49aYTDFIQ+uBkfX8GBvJGccoARxxPep+7aWTs55ozbjQJpW9M26Fe53vnGgvLeVzva/amzjQQaQu9w0vMhA==","funding":[{"type":"github","url":"https://github.com/sponsors/puzrin"},{"type":"github","url":"https://github.com/sponsors/markdown-it"}],"license":"MIT","dependencies":{"argparse":"^2.0.1","entities":"^4.5.0","linkify-it":"^5.0.2","mdurl":"^2.0.0","punycode.js":"^2.3.1","uc.micro":"^2.1.0"},"bin":{"markdown-it":"bin/markdown-it.mjs"}},"node_modules/markdown-it/node_modules/entities":{"version":"4.5.0","resolved":"https://registry.npmjs.org/entities/-/entities-4.5.0.tgz","integrity":"sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==","license":"BSD-2-Clause","engines":{"node":">=0.12"},"funding":{"url":"https://github.com/fb55/entities?sponsor=1"}},"node_modules/markdown-table":{"version":"3.0.4","resolved":"https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz","integrity":"sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/math-intrinsics":{"version":"1.1.0","resolved":"https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz","integrity":"sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==","license":"MIT","engines":{"node":">= 0.4"}},"node_modules/mdast-util-find-and-replace":{"version":"3.0.2","resolved":"https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz","integrity":"sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","escape-string-regexp":"^5.0.0","unist-util-is":"^6.0.0","unist-util-visit-parents":"^6.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-from-markdown":{"version":"2.0.3","resolved":"https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz","integrity":"sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","@types/unist":"^3.0.0","decode-named-character-reference":"^1.0.0","devlop":"^1.0.0","mdast-util-to-string":"^4.0.0","micromark":"^4.0.0","micromark-util-decode-numeric-character-reference":"^2.0.0","micromark-util-decode-string":"^2.0.0","micromark-util-normalize-identifier":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0","unist-util-stringify-position":"^4.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-frontmatter":{"version":"2.0.1","resolved":"https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz","integrity":"sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","devlop":"^1.0.0","escape-string-regexp":"^5.0.0","mdast-util-from-markdown":"^2.0.0","mdast-util-to-markdown":"^2.0.0","micromark-extension-frontmatter":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-gfm":{"version":"3.1.0","resolved":"https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz","integrity":"sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==","license":"MIT","dependencies":{"mdast-util-from-markdown":"^2.0.0","mdast-util-gfm-autolink-literal":"^2.0.0","mdast-util-gfm-footnote":"^2.0.0","mdast-util-gfm-strikethrough":"^2.0.0","mdast-util-gfm-table":"^2.0.0","mdast-util-gfm-task-list-item":"^2.0.0","mdast-util-to-markdown":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-gfm-autolink-literal":{"version":"2.0.1","resolved":"https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz","integrity":"sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","ccount":"^2.0.0","devlop":"^1.0.0","mdast-util-find-and-replace":"^3.0.0","micromark-util-character":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-gfm-footnote":{"version":"2.1.0","resolved":"https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz","integrity":"sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","devlop":"^1.1.0","mdast-util-from-markdown":"^2.0.0","mdast-util-to-markdown":"^2.0.0","micromark-util-normalize-identifier":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-gfm-strikethrough":{"version":"2.0.0","resolved":"https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz","integrity":"sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","mdast-util-from-markdown":"^2.0.0","mdast-util-to-markdown":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-gfm-table":{"version":"2.0.0","resolved":"https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz","integrity":"sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","devlop":"^1.0.0","markdown-table":"^3.0.0","mdast-util-from-markdown":"^2.0.0","mdast-util-to-markdown":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-gfm-task-list-item":{"version":"2.0.0","resolved":"https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz","integrity":"sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","devlop":"^1.0.0","mdast-util-from-markdown":"^2.0.0","mdast-util-to-markdown":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-mdx":{"version":"3.0.0","resolved":"https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz","integrity":"sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==","license":"MIT","dependencies":{"mdast-util-from-markdown":"^2.0.0","mdast-util-mdx-expression":"^2.0.0","mdast-util-mdx-jsx":"^3.0.0","mdast-util-mdxjs-esm":"^2.0.0","mdast-util-to-markdown":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-mdx-expression":{"version":"2.0.1","resolved":"https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz","integrity":"sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==","license":"MIT","dependencies":{"@types/estree-jsx":"^1.0.0","@types/hast":"^3.0.0","@types/mdast":"^4.0.0","devlop":"^1.0.0","mdast-util-from-markdown":"^2.0.0","mdast-util-to-markdown":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-mdx-jsx":{"version":"3.2.0","resolved":"https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz","integrity":"sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==","license":"MIT","dependencies":{"@types/estree-jsx":"^1.0.0","@types/hast":"^3.0.0","@types/mdast":"^4.0.0","@types/unist":"^3.0.0","ccount":"^2.0.0","devlop":"^1.1.0","mdast-util-from-markdown":"^2.0.0","mdast-util-to-markdown":"^2.0.0","parse-entities":"^4.0.0","stringify-entities":"^4.0.0","unist-util-stringify-position":"^4.0.0","vfile-message":"^4.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-mdxjs-esm":{"version":"2.0.1","resolved":"https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz","integrity":"sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==","license":"MIT","dependencies":{"@types/estree-jsx":"^1.0.0","@types/hast":"^3.0.0","@types/mdast":"^4.0.0","devlop":"^1.0.0","mdast-util-from-markdown":"^2.0.0","mdast-util-to-markdown":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-phrasing":{"version":"4.1.0","resolved":"https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz","integrity":"sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","unist-util-is":"^6.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-to-markdown":{"version":"2.1.2","resolved":"https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz","integrity":"sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","@types/unist":"^3.0.0","longest-streak":"^3.0.0","mdast-util-phrasing":"^4.0.0","mdast-util-to-string":"^4.0.0","micromark-util-classify-character":"^2.0.0","micromark-util-decode-string":"^2.0.0","unist-util-visit":"^5.0.0","zwitch":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdast-util-to-string":{"version":"4.0.0","resolved":"https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz","integrity":"sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/mdurl":{"version":"2.1.0","resolved":"https://registry.npmjs.org/mdurl/-/mdurl-2.1.0.tgz","integrity":"sha512-1+HBaOx0zi/dQWht8rNv9MYf9qqpqL/kxI0hXImU6Y547zM6Sni8BQibt7ifgMcYtQg41ao3Ivd6cnSM86inpg==","license":"MIT"},"node_modules/merge2":{"version":"1.4.1","resolved":"https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz","integrity":"sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==","license":"MIT","engines":{"node":">= 8"}},"node_modules/micromark":{"version":"4.0.2","resolved":"https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz","integrity":"sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"@types/debug":"^4.0.0","debug":"^4.0.0","decode-named-character-reference":"^1.0.0","devlop":"^1.0.0","micromark-core-commonmark":"^2.0.0","micromark-factory-space":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-chunked":"^2.0.0","micromark-util-combine-extensions":"^2.0.0","micromark-util-decode-numeric-character-reference":"^2.0.0","micromark-util-encode":"^2.0.0","micromark-util-normalize-identifier":"^2.0.0","micromark-util-resolve-all":"^2.0.0","micromark-util-sanitize-uri":"^2.0.0","micromark-util-subtokenize":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-core-commonmark":{"version":"2.0.3","resolved":"https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz","integrity":"sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"decode-named-character-reference":"^1.0.0","devlop":"^1.0.0","micromark-factory-destination":"^2.0.0","micromark-factory-label":"^2.0.0","micromark-factory-space":"^2.0.0","micromark-factory-title":"^2.0.0","micromark-factory-whitespace":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-chunked":"^2.0.0","micromark-util-classify-character":"^2.0.0","micromark-util-html-tag-name":"^2.0.0","micromark-util-normalize-identifier":"^2.0.0","micromark-util-resolve-all":"^2.0.0","micromark-util-subtokenize":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-extension-frontmatter":{"version":"2.0.0","resolved":"https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz","integrity":"sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==","license":"MIT","dependencies":{"fault":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-gfm":{"version":"3.0.0","resolved":"https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz","integrity":"sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==","license":"MIT","dependencies":{"micromark-extension-gfm-autolink-literal":"^2.0.0","micromark-extension-gfm-footnote":"^2.0.0","micromark-extension-gfm-strikethrough":"^2.0.0","micromark-extension-gfm-table":"^2.0.0","micromark-extension-gfm-tagfilter":"^2.0.0","micromark-extension-gfm-task-list-item":"^2.0.0","micromark-util-combine-extensions":"^2.0.0","micromark-util-types":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-gfm-autolink-literal":{"version":"2.1.0","resolved":"https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz","integrity":"sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==","license":"MIT","dependencies":{"micromark-util-character":"^2.0.0","micromark-util-sanitize-uri":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-gfm-footnote":{"version":"2.1.0","resolved":"https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz","integrity":"sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==","license":"MIT","dependencies":{"devlop":"^1.0.0","micromark-core-commonmark":"^2.0.0","micromark-factory-space":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-normalize-identifier":"^2.0.0","micromark-util-sanitize-uri":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-gfm-strikethrough":{"version":"2.1.0","resolved":"https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz","integrity":"sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==","license":"MIT","dependencies":{"devlop":"^1.0.0","micromark-util-chunked":"^2.0.0","micromark-util-classify-character":"^2.0.0","micromark-util-resolve-all":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-gfm-table":{"version":"2.1.1","resolved":"https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz","integrity":"sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==","license":"MIT","dependencies":{"devlop":"^1.0.0","micromark-factory-space":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-gfm-tagfilter":{"version":"2.0.0","resolved":"https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz","integrity":"sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==","license":"MIT","dependencies":{"micromark-util-types":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-gfm-task-list-item":{"version":"2.1.0","resolved":"https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz","integrity":"sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==","license":"MIT","dependencies":{"devlop":"^1.0.0","micromark-factory-space":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-mdx-expression":{"version":"3.0.1","resolved":"https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz","integrity":"sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"@types/estree":"^1.0.0","devlop":"^1.0.0","micromark-factory-mdx-expression":"^2.0.0","micromark-factory-space":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-events-to-acorn":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-extension-mdx-jsx":{"version":"3.0.2","resolved":"https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz","integrity":"sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==","license":"MIT","dependencies":{"@types/estree":"^1.0.0","devlop":"^1.0.0","estree-util-is-identifier-name":"^3.0.0","micromark-factory-mdx-expression":"^2.0.0","micromark-factory-space":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-events-to-acorn":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0","vfile-message":"^4.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-mdx-md":{"version":"2.0.0","resolved":"https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz","integrity":"sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==","license":"MIT","dependencies":{"micromark-util-types":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-mdxjs":{"version":"3.0.0","resolved":"https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz","integrity":"sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==","license":"MIT","dependencies":{"acorn":"^8.0.0","acorn-jsx":"^5.0.0","micromark-extension-mdx-expression":"^3.0.0","micromark-extension-mdx-jsx":"^3.0.0","micromark-extension-mdx-md":"^2.0.0","micromark-extension-mdxjs-esm":"^3.0.0","micromark-util-combine-extensions":"^2.0.0","micromark-util-types":"^2.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-extension-mdxjs-esm":{"version":"3.0.0","resolved":"https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz","integrity":"sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==","license":"MIT","dependencies":{"@types/estree":"^1.0.0","devlop":"^1.0.0","micromark-core-commonmark":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-events-to-acorn":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0","unist-util-position-from-estree":"^2.0.0","vfile-message":"^4.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/micromark-factory-destination":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz","integrity":"sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-util-character":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-factory-label":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz","integrity":"sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"devlop":"^1.0.0","micromark-util-character":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-factory-mdx-expression":{"version":"2.0.3","resolved":"https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz","integrity":"sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"@types/estree":"^1.0.0","devlop":"^1.0.0","micromark-factory-space":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-events-to-acorn":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0","unist-util-position-from-estree":"^2.0.0","vfile-message":"^4.0.0"}},"node_modules/micromark-factory-space":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz","integrity":"sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-util-character":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-factory-title":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz","integrity":"sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-factory-space":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-factory-whitespace":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz","integrity":"sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-factory-space":"^2.0.0","micromark-util-character":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-util-character":{"version":"2.1.1","resolved":"https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz","integrity":"sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-util-chunked":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz","integrity":"sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-util-symbol":"^2.0.0"}},"node_modules/micromark-util-classify-character":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz","integrity":"sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-util-character":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-util-combine-extensions":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz","integrity":"sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-util-chunked":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-util-decode-numeric-character-reference":{"version":"2.0.2","resolved":"https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz","integrity":"sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-util-symbol":"^2.0.0"}},"node_modules/micromark-util-decode-string":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz","integrity":"sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"decode-named-character-reference":"^1.0.0","micromark-util-character":"^2.0.0","micromark-util-decode-numeric-character-reference":"^2.0.0","micromark-util-symbol":"^2.0.0"}},"node_modules/micromark-util-encode":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz","integrity":"sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT"},"node_modules/micromark-util-events-to-acorn":{"version":"2.0.3","resolved":"https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz","integrity":"sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"@types/estree":"^1.0.0","@types/unist":"^3.0.0","devlop":"^1.0.0","estree-util-visit":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0","vfile-message":"^4.0.0"}},"node_modules/micromark-util-html-tag-name":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz","integrity":"sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT"},"node_modules/micromark-util-normalize-identifier":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz","integrity":"sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-util-symbol":"^2.0.0"}},"node_modules/micromark-util-resolve-all":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz","integrity":"sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-util-types":"^2.0.0"}},"node_modules/micromark-util-sanitize-uri":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz","integrity":"sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"micromark-util-character":"^2.0.0","micromark-util-encode":"^2.0.0","micromark-util-symbol":"^2.0.0"}},"node_modules/micromark-util-subtokenize":{"version":"2.1.0","resolved":"https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz","integrity":"sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT","dependencies":{"devlop":"^1.0.0","micromark-util-chunked":"^2.0.0","micromark-util-symbol":"^2.0.0","micromark-util-types":"^2.0.0"}},"node_modules/micromark-util-symbol":{"version":"2.0.1","resolved":"https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz","integrity":"sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT"},"node_modules/micromark-util-types":{"version":"2.0.2","resolved":"https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz","integrity":"sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==","funding":[{"type":"GitHub Sponsors","url":"https://github.com/sponsors/unifiedjs"},{"type":"OpenCollective","url":"https://opencollective.com/unified"}],"license":"MIT"},"node_modules/micromatch":{"version":"4.0.8","resolved":"https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz","integrity":"sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==","license":"MIT","dependencies":{"braces":"^3.0.3","picomatch":"^2.3.1"},"engines":{"node":">=8.6"}},"node_modules/micromatch/node_modules/picomatch":{"version":"2.3.2","resolved":"https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz","integrity":"sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==","license":"MIT","engines":{"node":">=8.6"},"funding":{"url":"https://github.com/sponsors/jonschlinkert"}},"node_modules/minimatch":{"version":"10.2.6","resolved":"https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz","integrity":"sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==","license":"BlueOak-1.0.0","dependencies":{"brace-expansion":"^5.0.8"},"engines":{"node":"18 || 20 || >=22"},"funding":{"url":"https://github.com/sponsors/isaacs"}},"node_modules/module-details-from-path":{"version":"1.0.4","resolved":"https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.4.tgz","integrity":"sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==","license":"MIT"},"node_modules/ms":{"version":"2.1.3","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz","integrity":"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==","license":"MIT"},"node_modules/muggle-string":{"version":"0.4.1","resolved":"https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz","integrity":"sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==","license":"MIT"},"node_modules/netmask":{"version":"2.1.1","resolved":"https://registry.npmjs.org/netmask/-/netmask-2.1.1.tgz","integrity":"sha512-eonl3sLUha+S1GzTPxychyhnUzKyeQkZ7jLjKrBagJgPla13F+uQ71HgpFefyHgqrjEbCPkDArxYsjY8/+gLKA==","license":"MIT","engines":{"node":">= 0.4.0"}},"node_modules/node-html-parser":{"version":"6.1.13","resolved":"https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.13.tgz","integrity":"sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==","license":"MIT","dependencies":{"css-select":"^5.1.0","he":"1.2.0"}},"node_modules/nth-check":{"version":"2.1.1","resolved":"https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz","integrity":"sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==","license":"BSD-2-Clause","dependencies":{"boolbase":"^1.0.0"},"funding":{"url":"https://github.com/fb55/nth-check?sponsor=1"}},"node_modules/object-assign":{"version":"4.1.1","resolved":"https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz","integrity":"sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==","license":"MIT","engines":{"node":">=0.10.0"}},"node_modules/pac-proxy-agent":{"version":"7.2.0","resolved":"https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz","integrity":"sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==","license":"MIT","dependencies":{"@tootallnate/quickjs-emscripten":"^0.23.0","agent-base":"^7.1.2","debug":"^4.3.4","get-uri":"^6.0.1","http-proxy-agent":"^7.0.0","https-proxy-agent":"^7.0.6","pac-resolver":"^7.0.1","socks-proxy-agent":"^8.0.5"},"engines":{"node":">= 14"}},"node_modules/pac-resolver":{"version":"7.0.1","resolved":"https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz","integrity":"sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==","license":"MIT","dependencies":{"degenerator":"^5.0.0","netmask":"^2.0.2"},"engines":{"node":">= 14"}},"node_modules/parse-entities":{"version":"4.0.2","resolved":"https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz","integrity":"sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==","license":"MIT","dependencies":{"@types/unist":"^2.0.0","character-entities-legacy":"^3.0.0","character-reference-invalid":"^2.0.0","decode-named-character-reference":"^1.0.0","is-alphanumerical":"^2.0.0","is-decimal":"^2.0.0","is-hexadecimal":"^2.0.0"},"funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/parse-entities/node_modules/@types/unist":{"version":"2.0.11","resolved":"https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz","integrity":"sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==","license":"MIT"},"node_modules/parseley":{"version":"0.12.1","resolved":"https://registry.npmjs.org/parseley/-/parseley-0.12.1.tgz","integrity":"sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==","license":"MIT","dependencies":{"leac":"^0.6.0","peberminta":"^0.9.0"},"funding":{"url":"https://ko-fi.com/killymxi"}},"node_modules/path-browserify":{"version":"1.0.1","resolved":"https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz","integrity":"sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==","license":"MIT"},"node_modules/peberminta":{"version":"0.9.0","resolved":"https://registry.npmjs.org/peberminta/-/peberminta-0.9.0.tgz","integrity":"sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==","license":"MIT","funding":{"url":"https://ko-fi.com/killymxi"}},"node_modules/picomatch":{"version":"4.0.7","resolved":"https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz","integrity":"sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==","license":"MIT","engines":{"node":">=12"},"funding":{"url":"https://github.com/sponsors/jonschlinkert"}},"node_modules/prettier":{"version":"3.9.6","resolved":"https://registry.npmjs.org/prettier/-/prettier-3.9.6.tgz","integrity":"sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==","license":"MIT","bin":{"prettier":"bin/prettier.cjs"},"engines":{"node":">=14"},"funding":{"url":"https://github.com/prettier/prettier?sponsor=1"}},"node_modules/protobufjs":{"version":"8.8.0","resolved":"https://registry.npmjs.org/protobufjs/-/protobufjs-8.8.0.tgz","integrity":"sha512-N3xhQ5yyBx3vQq4gubBfASzYhJGNzeDbjqBpu61g7UVylsN/qyffU96TKWD3GbbLOKF82VGNRNvv1+BFgE31Eg==","license":"BSD-3-Clause","dependencies":{"long":"^5.3.2"},"engines":{"node":">=12.0.0"}},"node_modules/proxy-agent":{"version":"6.5.0","resolved":"https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz","integrity":"sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==","license":"MIT","dependencies":{"agent-base":"^7.1.2","debug":"^4.3.4","http-proxy-agent":"^7.0.1","https-proxy-agent":"^7.0.6","lru-cache":"^7.14.1","pac-proxy-agent":"^7.1.0","proxy-from-env":"^1.1.0","socks-proxy-agent":"^8.0.5"},"engines":{"node":">= 14"}},"node_modules/proxy-agent/node_modules/lru-cache":{"version":"7.18.3","resolved":"https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz","integrity":"sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==","license":"ISC","engines":{"node":">=12"}},"node_modules/proxy-from-env":{"version":"1.1.0","resolved":"https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz","integrity":"sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==","license":"MIT"},"node_modules/pug-error":{"version":"2.1.0","resolved":"https://registry.npmjs.org/pug-error/-/pug-error-2.1.0.tgz","integrity":"sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==","license":"MIT"},"node_modules/pug-lexer":{"version":"5.0.1","resolved":"https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz","integrity":"sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==","license":"MIT","dependencies":{"character-parser":"^2.2.0","is-expression":"^4.0.0","pug-error":"^2.0.0"}},"node_modules/pug-parser":{"version":"6.0.0","resolved":"https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz","integrity":"sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==","license":"MIT","dependencies":{"pug-error":"^2.0.0","token-stream":"1.0.0"}},"node_modules/punycode.js":{"version":"2.3.1","resolved":"https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz","integrity":"sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==","license":"MIT","engines":{"node":">=6"}},"node_modules/queue-microtask":{"version":"1.2.3","resolved":"https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz","integrity":"sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==","funding":[{"type":"github","url":"https://github.com/sponsors/feross"},{"type":"patreon","url":"https://www.patreon.com/feross"},{"type":"consulting","url":"https://feross.org/support"}],"license":"MIT"},"node_modules/regenerator-runtime":{"version":"0.13.11","resolved":"https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz","integrity":"sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==","license":"MIT"},"node_modules/remark-frontmatter":{"version":"5.0.0","resolved":"https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz","integrity":"sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","mdast-util-frontmatter":"^2.0.0","micromark-extension-frontmatter":"^2.0.0","unified":"^11.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/remark-gfm":{"version":"4.0.1","resolved":"https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz","integrity":"sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","mdast-util-gfm":"^3.0.0","micromark-extension-gfm":"^3.0.0","remark-parse":"^11.0.0","remark-stringify":"^11.0.0","unified":"^11.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/remark-mdx":{"version":"3.1.1","resolved":"https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.1.tgz","integrity":"sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==","license":"MIT","dependencies":{"mdast-util-mdx":"^3.0.0","micromark-extension-mdxjs":"^3.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/remark-parse":{"version":"11.0.0","resolved":"https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz","integrity":"sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","mdast-util-from-markdown":"^2.0.0","micromark-util-types":"^2.0.0","unified":"^11.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/remark-stringify":{"version":"11.0.0","resolved":"https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz","integrity":"sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==","license":"MIT","dependencies":{"@types/mdast":"^4.0.0","mdast-util-to-markdown":"^2.0.0","unified":"^11.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/request-light":{"version":"0.7.0","resolved":"https://registry.npmjs.org/request-light/-/request-light-0.7.0.tgz","integrity":"sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==","license":"MIT"},"node_modules/require-from-string":{"version":"2.0.2","resolved":"https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz","integrity":"sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==","license":"MIT","engines":{"node":">=0.10.0"}},"node_modules/require-in-the-middle":{"version":"8.0.1","resolved":"https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-8.0.1.tgz","integrity":"sha512-QT7FVMXfWOYFbeRBF6nu+I6tr2Tf3u0q8RIEjNob/heKY/nh7drD/k7eeMFmSQgnTtCzLDcCu/XEnpW2wk4xCQ==","license":"MIT","dependencies":{"debug":"^4.3.5","module-details-from-path":"^1.0.3"},"engines":{"node":">=9.3.0 || >=8.10.0 <9.0.0"}},"node_modules/reusify":{"version":"1.1.0","resolved":"https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz","integrity":"sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==","license":"MIT","engines":{"iojs":">=1.0.0","node":">=0.10.0"}},"node_modules/run-parallel":{"version":"1.2.0","resolved":"https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz","integrity":"sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==","funding":[{"type":"github","url":"https://github.com/sponsors/feross"},{"type":"patreon","url":"https://www.patreon.com/feross"},{"type":"consulting","url":"https://feross.org/support"}],"license":"MIT","dependencies":{"queue-microtask":"^1.2.2"}},"node_modules/selderee":{"version":"0.11.0","resolved":"https://registry.npmjs.org/selderee/-/selderee-0.11.0.tgz","integrity":"sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==","license":"MIT","dependencies":{"parseley":"^0.12.0"},"funding":{"url":"https://ko-fi.com/killymxi"}},"node_modules/semver":{"version":"7.8.5","resolved":"https://registry.npmjs.org/semver/-/semver-7.8.5.tgz","integrity":"sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==","license":"ISC","bin":{"semver":"bin/semver.js"},"engines":{"node":">=10"}},"node_modules/shimmer":{"version":"1.2.1","resolved":"https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz","integrity":"sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==","license":"BSD-2-Clause"},"node_modules/smart-buffer":{"version":"4.2.0","resolved":"https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz","integrity":"sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==","license":"MIT","engines":{"node":">= 6.0.0","npm":">= 3.0.0"}},"node_modules/socks":{"version":"2.8.10","resolved":"https://registry.npmjs.org/socks/-/socks-2.8.10.tgz","integrity":"sha512-e0VyvkVTwVYViNovRkZ9aodhxVlyoMn7eJhVUPxZ+eK9P/7CBkxvvsBOHqFPEH416726W8tLXXXjKwqgTErrCQ==","license":"MIT","dependencies":{"ip-address":"^10.1.1","smart-buffer":"^4.2.0"},"engines":{"node":">= 10.0.0","npm":">= 3.0.0"}},"node_modules/socks-proxy-agent":{"version":"8.0.5","resolved":"https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz","integrity":"sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==","license":"MIT","dependencies":{"agent-base":"^7.1.2","debug":"^4.3.4","socks":"^2.8.3"},"engines":{"node":">= 14"}},"node_modules/source-map":{"version":"0.6.1","resolved":"https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz","integrity":"sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==","license":"BSD-3-Clause","optional":true,"engines":{"node":">=0.10.0"}},"node_modules/source-map-js":{"version":"1.2.2","resolved":"https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz","integrity":"sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==","license":"BSD-3-Clause","engines":{"node":">=0.10.0"}},"node_modules/stack-chain":{"version":"1.3.7","resolved":"https://registry.npmjs.org/stack-chain/-/stack-chain-1.3.7.tgz","integrity":"sha512-D8cWtWVdIe/jBA7v5p5Hwl5yOSOrmZPWDPe2KxQ5UAGD+nxbxU0lKXA4h85Ta6+qgdKVL3vUxsbIZjc1kBG7ug==","license":"MIT"},"node_modules/stringify-entities":{"version":"4.0.4","resolved":"https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz","integrity":"sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==","license":"MIT","dependencies":{"character-entities-html4":"^2.0.0","character-entities-legacy":"^3.0.0"},"funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/tinyglobby":{"version":"0.2.17","resolved":"https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz","integrity":"sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==","license":"MIT","dependencies":{"fdir":"^6.5.0","picomatch":"^4.0.4"},"engines":{"node":">=12.0.0"},"funding":{"url":"https://github.com/sponsors/SuperchupuDev"}},"node_modules/to-regex-range":{"version":"5.0.1","resolved":"https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz","integrity":"sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==","license":"MIT","dependencies":{"is-number":"^7.0.0"},"engines":{"node":">=8.0"}},"node_modules/token-stream":{"version":"1.0.0","resolved":"https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz","integrity":"sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==","license":"MIT"},"node_modules/trough":{"version":"2.2.0","resolved":"https://registry.npmjs.org/trough/-/trough-2.2.0.tgz","integrity":"sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}},"node_modules/tslib":{"version":"2.8.1","resolved":"https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz","integrity":"sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==","license":"0BSD"},"node_modules/turndown":{"version":"7.2.4","resolved":"https://registry.npmjs.org/turndown/-/turndown-7.2.4.tgz","integrity":"sha512-I8yFsfRzmzK0WV1pNNOA4A7y4RDfFxPRxb3t+e3ui14qSGOxGtiSP6GjeX+Y6CHb7HYaFj7ECUD7VE5kQMZWGQ==","license":"MIT","dependencies":{"@mixmark-io/domino":"^2.2.0"},"engines":{"node":">=18","npm":">=9"}},"node_modules/turndown-plugin-gfm":{"version":"1.0.2","resolved":"https://registry.npmjs.org/turndown-plugin-gfm/-/turndown-plugin-gfm-1.0.2.tgz","integrity":"sha512-vwz9tfvF7XN/jE0dGoBei3FXWuvll78ohzCZQuOb+ZjWrs3a0XhQVomJEb2Qh4VHTPNRO4GPZh0V7VRbiWwkRg==","license":"MIT"},"node_modules/typesafe-path":{"version":"0.2.2","resolved":"https://registry.npmjs.org/typesafe-path/-/typesafe-path-0.2.2.tgz","integrity":"sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==","license":"MIT"},"node_modules/typescript":{"version":"5.9.3","resolved":"https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz","integrity":"sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==","license":"Apache-2.0","bin":{"tsc":"bin/tsc","tsserver":"bin/tsserver"},"engines":{"node":">=14.17"}},"node_modules/typescript-auto-import-cache":{"version":"0.3.6","resolved":"https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.6.tgz","integrity":"sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==","license":"MIT","dependencies":{"semver":"^7.3.8"}},"node_modules/typescript-language-server":{"version":"5.3.0","resolved":"https://registry.npmjs.org/typescript-language-server/-/typescript-language-server-5.3.0.tgz","integrity":"sha512-5puofxZHgFdAYtfNpmwCAvgtaYgg8wrUnH30m7Ze3QuguId5RNRadKASpOpyDxTyUdAF51FjhTdjntLw/EuWcQ==","license":"Apache-2.0","bin":{"typescript-language-server":"lib/cli.mjs"},"engines":{"node":">=20"}},"node_modules/uc.micro":{"version":"2.1.0","resolved":"https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz","integrity":"sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==","license":"MIT"},"node_modules/unified":{"version":"11.0.5","resolved":"https://registry.npmjs.org/unified/-/unified-11.0.5.tgz","integrity":"sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==","license":"MIT","dependencies":{"@types/unist":"^3.0.0","bail":"^2.0.0","devlop":"^1.0.0","extend":"^3.0.0","is-plain-obj":"^4.0.0","trough":"^2.0.0","vfile":"^6.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/unist-util-is":{"version":"6.0.1","resolved":"https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz","integrity":"sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==","license":"MIT","dependencies":{"@types/unist":"^3.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/unist-util-lsp":{"version":"2.1.0","resolved":"https://registry.npmjs.org/unist-util-lsp/-/unist-util-lsp-2.1.0.tgz","integrity":"sha512-ICI1PWbalSfOrsdosGk+WXdZBvdjhZVjbkgHOzKFdkCdzBpVEi8GjsVTAG6NR3VLGcwTOGLj/+k4L0HwGQYvEQ==","license":"MIT","dependencies":{"@types/unist":"^3.0.0","vscode-languageserver-types":"^3.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/unist-util-position-from-estree":{"version":"2.0.0","resolved":"https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz","integrity":"sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==","license":"MIT","dependencies":{"@types/unist":"^3.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/unist-util-stringify-position":{"version":"4.0.0","resolved":"https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz","integrity":"sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==","license":"MIT","dependencies":{"@types/unist":"^3.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/unist-util-visit":{"version":"5.1.0","resolved":"https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz","integrity":"sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==","license":"MIT","dependencies":{"@types/unist":"^3.0.0","unist-util-is":"^6.0.0","unist-util-visit-parents":"^6.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/unist-util-visit-parents":{"version":"6.0.2","resolved":"https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz","integrity":"sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==","license":"MIT","dependencies":{"@types/unist":"^3.0.0","unist-util-is":"^6.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/universalify":{"version":"2.0.1","resolved":"https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz","integrity":"sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==","license":"MIT","engines":{"node":">= 10.0.0"}},"node_modules/vfile":{"version":"6.0.3","resolved":"https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz","integrity":"sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==","license":"MIT","dependencies":{"@types/unist":"^3.0.0","vfile-message":"^4.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/vfile-message":{"version":"4.0.3","resolved":"https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz","integrity":"sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==","license":"MIT","dependencies":{"@types/unist":"^3.0.0","unist-util-stringify-position":"^4.0.0"},"funding":{"type":"opencollective","url":"https://opencollective.com/unified"}},"node_modules/volar-service-css":{"version":"0.0.71","resolved":"https://registry.npmjs.org/volar-service-css/-/volar-service-css-0.0.71.tgz","integrity":"sha512-wRRFt9BpjMKCazcgOh67MSjUjiWUCAh99DyYSDIOTuxaRjEtDC7PpB0k1Y1wbJIW/pVtMUSVbpPo3UGSm0Byxw==","license":"MIT","dependencies":{"vscode-css-languageservice":"^6.3.0","vscode-languageserver-textdocument":"^1.0.11","vscode-uri":"^3.0.8"},"peerDependencies":{"@volar/language-service":"~2.4.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true}}},"node_modules/volar-service-emmet":{"version":"0.0.71","resolved":"https://registry.npmjs.org/volar-service-emmet/-/volar-service-emmet-0.0.71.tgz","integrity":"sha512-zqjzt6bN95e3CUstBm0PBFAJnrfz0ZAARka87fart46/gNCLLuP3Vujy8V/J8HEziTFLnfkgIASLFYPUhonJcA==","license":"MIT","dependencies":{"@emmetio/css-parser":"^0.4.1","@emmetio/html-matcher":"^1.3.0","@vscode/emmet-helper":"^2.9.3","vscode-uri":"^3.0.8"},"peerDependencies":{"@volar/language-service":"~2.4.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true}}},"node_modules/volar-service-html":{"version":"0.0.71","resolved":"https://registry.npmjs.org/volar-service-html/-/volar-service-html-0.0.71.tgz","integrity":"sha512-e8tHPhgQ7ooLfudAEIku+kgd9pWkq3SSz8RbnQDI1+Eb8wbenkLGHqoirLqz5ORLV6wIMr2Iv08RWBG5eOcgpw==","license":"MIT","dependencies":{"vscode-html-languageservice":"^5.3.0","vscode-languageserver-textdocument":"^1.0.11","vscode-uri":"^3.0.8"},"peerDependencies":{"@volar/language-service":"~2.4.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true}}},"node_modules/volar-service-json":{"version":"0.0.71","resolved":"https://registry.npmjs.org/volar-service-json/-/volar-service-json-0.0.71.tgz","integrity":"sha512-behyNhAG5UEXfvbIOWdE62XsPkp/e5W0V3sz3AW6zy7vgWLzgvElR77YSlcu708GwKu7OOFl5m9sUGVfqLIriQ==","license":"MIT","dependencies":{"vscode-json-languageservice":"^5.4.0","vscode-uri":"^3.0.8"},"peerDependencies":{"@volar/language-service":"~2.4.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true}}},"node_modules/volar-service-markdown":{"version":"0.0.65","resolved":"https://registry.npmjs.org/volar-service-markdown/-/volar-service-markdown-0.0.65.tgz","integrity":"sha512-uEcDR7KXoippfc6cEC/Mnd120w1NpM2JwwvsSAiitPUnO8X5m9XdjxfX3GWlmKZUVN6A7TTcVxAmvSlJQKDs1g==","license":"MIT","dependencies":{"markdown-it":"^14.1.0","vscode-jsonrpc":"^8.2.1","vscode-markdown-languageservice":"~0.5.0-alpha.6","vscode-uri":"^3.0.8"},"peerDependencies":{"@volar/language-service":"~2.4.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true}}},"node_modules/volar-service-markdown/node_modules/vscode-jsonrpc":{"version":"8.2.1","resolved":"https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.1.tgz","integrity":"sha512-kdjOSJ2lLIn7r1rtrMbbNCHjyMPfRnowdKjBQ+mGq6NAW5QY2bEZC/khaC5OR8svbbjvLEaIXkOq45e2X9BIbQ==","license":"MIT","engines":{"node":">=14.0.0"}},"node_modules/volar-service-prettier":{"version":"0.0.71","resolved":"https://registry.npmjs.org/volar-service-prettier/-/volar-service-prettier-0.0.71.tgz","integrity":"sha512-Rz7JVH3qD108UCdmIEiZvOBNljMt2nLFdbN8AXcDfn7xD9F5I2aCIsDVqBbXw21PsnxG0b7MfwtNF+zPS/NKUg==","license":"MIT","dependencies":{"vscode-uri":"^3.0.8"},"peerDependencies":{"@volar/language-service":"~2.4.0","prettier":"^2.2 || ^3.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true},"prettier":{"optional":true}}},"node_modules/volar-service-pug":{"version":"0.0.71","resolved":"https://registry.npmjs.org/volar-service-pug/-/volar-service-pug-0.0.71.tgz","integrity":"sha512-vG4nkQxRfRTCwJsA1CbQ2hSsZjzsrsLDBGeJTDjIaymtOBfML5UMOROTB3ClVuEZVrtg1rquVzVlGTjhvc2ysg==","license":"MIT","dependencies":{"@volar/language-service":"~2.4.0","@vue/language-plugin-pug":"~3.2.2","volar-service-html":"0.0.71","vscode-html-languageservice":"^5.3.0","vscode-languageserver-textdocument":"^1.0.11"}},"node_modules/volar-service-pug-beautify":{"version":"0.0.71","resolved":"https://registry.npmjs.org/volar-service-pug-beautify/-/volar-service-pug-beautify-0.0.71.tgz","integrity":"sha512-4oxv7xGwT6TxxuFZdXj9EdqUUUWSd1oz9H47z4s/shT9YVLKwrty+9ACbdQsjyWZTp6ES/EtcuSqKuPhz3Uhaw==","license":"MIT","dependencies":{"@johnsoncodehk/pug-beautify":"^0.2.2"},"peerDependencies":{"@volar/language-service":"~2.4.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true}}},"node_modules/volar-service-typescript":{"version":"0.0.71","resolved":"https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.71.tgz","integrity":"sha512-yTtM/BVT6hoyEYnDtaCyAtNhdNeS/mhTTABlBOdw3NNiRBUin3IznFJpgfjer4c6RYopiPjjQjc9VFhxVl1mLw==","license":"MIT","dependencies":{"path-browserify":"^1.0.1","semver":"^7.6.2","typescript-auto-import-cache":"^0.3.5","vscode-languageserver-textdocument":"^1.0.11","vscode-nls":"^5.2.0","vscode-uri":"^3.0.8"},"peerDependencies":{"@volar/language-service":"~2.4.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true}}},"node_modules/volar-service-typescript-twoslash-queries":{"version":"0.0.71","resolved":"https://registry.npmjs.org/volar-service-typescript-twoslash-queries/-/volar-service-typescript-twoslash-queries-0.0.71.tgz","integrity":"sha512-9K2k72s4n7rV9s4bX0MyjbX9iBribvKZbBJKuEmTCZfeWJXs6Yh7bGpY4eoc7UufAjvpheBqwyZCOIPBvxCv0A==","license":"MIT","dependencies":{"vscode-uri":"^3.0.8"},"peerDependencies":{"@volar/language-service":"~2.4.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true}}},"node_modules/volar-service-yaml":{"version":"0.0.71","resolved":"https://registry.npmjs.org/volar-service-yaml/-/volar-service-yaml-0.0.71.tgz","integrity":"sha512-qYGWGuVpUTnZGu5P/CR4KLK4aIR8RrcVnmfZ2eRcj9q/I8VZCoC5yy9FtEvfNvnDp4MU17yhdJcvpQPIqhJS2Q==","license":"MIT","dependencies":{"vscode-uri":"^3.0.8","yaml-language-server":"~1.23.0"},"peerDependencies":{"@volar/language-service":"~2.4.0"},"peerDependenciesMeta":{"@volar/language-service":{"optional":true}}},"node_modules/vscode-css-languageservice":{"version":"6.3.10","resolved":"https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.3.10.tgz","integrity":"sha512-eq5N9Er3fC4vA9zd9EFhyBG90wtCCuXgRSpAndaOgXMh1Wgep5lBgRIeDgjZBW9pa+332yC9+49cZMW8jcL3MA==","license":"MIT","dependencies":{"@vscode/l10n":"^0.0.18","vscode-languageserver-textdocument":"^1.0.12","vscode-languageserver-types":"3.17.5","vscode-uri":"^3.1.0"}},"node_modules/vscode-css-languageservice/node_modules/vscode-languageserver-types":{"version":"3.17.5","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz","integrity":"sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==","license":"MIT"},"node_modules/vscode-html-languageservice":{"version":"5.6.2","resolved":"https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.6.2.tgz","integrity":"sha512-ulCrSnFnfQ16YzvwnYUgEbUEl/ZG7u2eV27YhvLObSHKkb8fw1Z9cgsnUwjTEeDIdJDoTDTDpxuhQwoenoLNMg==","license":"MIT","dependencies":{"@vscode/l10n":"^0.0.18","vscode-languageserver-textdocument":"^1.0.12","vscode-languageserver-types":"^3.17.5","vscode-uri":"^3.1.0"}},"node_modules/vscode-html-languageservice/node_modules/vscode-languageserver-types":{"version":"3.18.3","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.18.3.tgz","integrity":"sha512-XIlzJ7Qp/jzSI1ds7/FwPAWrPeTZA7pAtlW4hdJ1J6xXWJL6dR9QYnDhJOdLzdKhUQ5Mm6mvUMw+3DcOQQasPw==","license":"MIT"},"node_modules/vscode-json-languageservice":{"version":"5.7.2","resolved":"https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-5.7.2.tgz","integrity":"sha512-WtKRDtJfFEmLrgtu+ODexOHm/6/krRF0k6t+uvkKIKW1Jh9ZIyxZQwJJwB3qhrEgvAxa37zbUg+vn+UyUK/U2w==","license":"MIT","dependencies":{"@vscode/l10n":"^0.0.18","jsonc-parser":"^3.3.1","vscode-languageserver-textdocument":"^1.0.12","vscode-languageserver-types":"^3.17.5","vscode-uri":"^3.1.0"}},"node_modules/vscode-json-languageservice/node_modules/jsonc-parser":{"version":"3.3.1","resolved":"https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz","integrity":"sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==","license":"MIT"},"node_modules/vscode-json-languageservice/node_modules/vscode-languageserver-types":{"version":"3.18.3","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.18.3.tgz","integrity":"sha512-XIlzJ7Qp/jzSI1ds7/FwPAWrPeTZA7pAtlW4hdJ1J6xXWJL6dR9QYnDhJOdLzdKhUQ5Mm6mvUMw+3DcOQQasPw==","license":"MIT"},"node_modules/vscode-jsonrpc":{"version":"9.0.2","resolved":"https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-9.0.2.tgz","integrity":"sha512-SbQSV9yRemARxeXw6LU5sS6Zq0e9/DgCCX5yelH263ZQWukbTk8EF8fjTrr1dziasf4GwlJbvTwFnTrnQFWZXQ==","license":"MIT","engines":{"node":">=14.0.0"}},"node_modules/vscode-langservers-extracted":{"version":"4.10.0","resolved":"https://registry.npmjs.org/vscode-langservers-extracted/-/vscode-langservers-extracted-4.10.0.tgz","integrity":"sha512-EFf9uQI4dAKbzMQFjDvVm1xJq1DXAQvBEuEfPGrK/xzfsL5xWTfIuRr90NgfmqwO+IEt6vLZm9EOj6R66xIifg==","license":"MIT","dependencies":{"@vscode/l10n":"^0.0.18","core-js":"^3.20.1","jsonc-parser":"^3.2.1","regenerator-runtime":"^0.13.9","request-light":"^0.7.0","semver":"^7.6.1","typescript":"^4.0.5","vscode-css-languageservice":"^6.2.14","vscode-html-languageservice":"^5.2.0","vscode-json-languageservice":"^5.3.11","vscode-languageserver":"^10.0.0-next.3","vscode-languageserver-textdocument":"^1.0.11","vscode-languageserver-types":"^3.17.5","vscode-markdown-languageservice":"^0.5.0-alpha.6","vscode-nls":"^5.2.0","vscode-uri":"^3.0.8"},"bin":{"vscode-css-language-server":"bin/vscode-css-language-server","vscode-eslint-language-server":"bin/vscode-eslint-language-server","vscode-html-language-server":"bin/vscode-html-language-server","vscode-json-language-server":"bin/vscode-json-language-server","vscode-markdown-language-server":"bin/vscode-markdown-language-server"}},"node_modules/vscode-langservers-extracted/node_modules/jsonc-parser":{"version":"3.3.1","resolved":"https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz","integrity":"sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==","license":"MIT"},"node_modules/vscode-langservers-extracted/node_modules/typescript":{"version":"4.9.5","resolved":"https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz","integrity":"sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==","license":"Apache-2.0","bin":{"tsc":"bin/tsc","tsserver":"bin/tsserver"},"engines":{"node":">=4.2.0"}},"node_modules/vscode-langservers-extracted/node_modules/vscode-languageserver":{"version":"10.1.1","resolved":"https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-10.1.1.tgz","integrity":"sha512-/cG04Fiq99rEtoDrfPpv0k6NyUFlck5GNtZLQZv1rxkBkc/4FrJNvEKTN5k1Si3O1hRguP++ciYlX9cdjdYxFQ==","license":"MIT","dependencies":{"vscode-languageserver-protocol":"3.18.3"},"bin":{"installServerIntoExtension":"bin/installServerIntoExtension"}},"node_modules/vscode-langservers-extracted/node_modules/vscode-languageserver-types":{"version":"3.18.3","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.18.3.tgz","integrity":"sha512-XIlzJ7Qp/jzSI1ds7/FwPAWrPeTZA7pAtlW4hdJ1J6xXWJL6dR9QYnDhJOdLzdKhUQ5Mm6mvUMw+3DcOQQasPw==","license":"MIT"},"node_modules/vscode-languageserver":{"version":"9.0.1","resolved":"https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz","integrity":"sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==","license":"MIT","dependencies":{"vscode-languageserver-protocol":"3.17.5"},"bin":{"installServerIntoExtension":"bin/installServerIntoExtension"}},"node_modules/vscode-languageserver-protocol":{"version":"3.18.3","resolved":"https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.18.3.tgz","integrity":"sha512-DF49+WeV5py4zO5hhobp60jjsDSK0lAqA0OuKBLBvp423HPWQcCbhZz3JgyfIewsEz2f8U+X75xNIFHdiXZm2w==","license":"MIT","dependencies":{"vscode-jsonrpc":"9.0.2","vscode-languageserver-types":"3.18.3"}},"node_modules/vscode-languageserver-protocol/node_modules/vscode-languageserver-types":{"version":"3.18.3","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.18.3.tgz","integrity":"sha512-XIlzJ7Qp/jzSI1ds7/FwPAWrPeTZA7pAtlW4hdJ1J6xXWJL6dR9QYnDhJOdLzdKhUQ5Mm6mvUMw+3DcOQQasPw==","license":"MIT"},"node_modules/vscode-languageserver-textdocument":{"version":"1.0.14","resolved":"https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.14.tgz","integrity":"sha512-EQyqJMi552E4ZTf46izQ4Fj6XquqxCySR3J5ZSD1SisMf6RfpeOWHxGBE8Gr6V0/3GHIGdAzDn8F8+1nTGCnoQ==","license":"MIT"},"node_modules/vscode-languageserver-types":{"version":"3.17.3","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz","integrity":"sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA==","license":"MIT"},"node_modules/vscode-languageserver/node_modules/vscode-jsonrpc":{"version":"8.2.0","resolved":"https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz","integrity":"sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==","license":"MIT","engines":{"node":">=14.0.0"}},"node_modules/vscode-languageserver/node_modules/vscode-languageserver-protocol":{"version":"3.17.5","resolved":"https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz","integrity":"sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==","license":"MIT","dependencies":{"vscode-jsonrpc":"8.2.0","vscode-languageserver-types":"3.17.5"}},"node_modules/vscode-languageserver/node_modules/vscode-languageserver-types":{"version":"3.17.5","resolved":"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz","integrity":"sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==","license":"MIT"},"node_modules/vscode-markdown-languageservice":{"version":"0.5.0","resolved":"https://registry.npmjs.org/vscode-markdown-languageservice/-/vscode-markdown-languageservice-0.5.0.tgz","integrity":"sha512-+DDXukKWtIHvJtj6tXeLqj8iREnylDQw4yRjY3ldv2J66/oiKRJyLLUy4YhMhfBm9Edjci6VhOSpE84AU3ZFXA==","license":"MIT","dependencies":{"@vscode/l10n":"^0.0.18","node-html-parser":"^6.1.5","picomatch":"^2.3.1","vscode-languageserver-protocol":"^3.17.1","vscode-languageserver-textdocument":"^1.0.11","vscode-uri":"^3.0.7"},"engines":{"node":">=22"}},"node_modules/vscode-markdown-languageservice/node_modules/picomatch":{"version":"2.3.2","resolved":"https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz","integrity":"sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==","license":"MIT","engines":{"node":">=8.6"},"funding":{"url":"https://github.com/sponsors/jonschlinkert"}},"node_modules/vscode-nls":{"version":"5.2.0","resolved":"https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz","integrity":"sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==","license":"MIT"},"node_modules/vscode-uri":{"version":"3.2.0","resolved":"https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.2.0.tgz","integrity":"sha512-m2gXo3bn0G1kT9InzMf07fTbqMbGtyckj3bH5ktLO+1Ssv+yiATZ4dhwaQv9UZWxJh6E9IFGnQyjgWVDWVBDrg==","license":"MIT"},"node_modules/vue-component-meta":{"version":"3.3.11","resolved":"https://registry.npmjs.org/vue-component-meta/-/vue-component-meta-3.3.11.tgz","integrity":"sha512-fskQZaIFOifwB4x+/J24795yvezOJ1TKaqn97/4PHybyvXpDNdcKn3oTcPrw6HnNoZWe343A+TiCFOcFv1/SuQ==","license":"MIT","dependencies":{"@volar/typescript":"2.4.28","@vue/language-core":"3.3.11","path-browserify":"^1.0.1"},"peerDependencies":{"typescript":"*"},"peerDependenciesMeta":{"typescript":{"optional":true}}},"node_modules/web-tree-sitter":{"version":"0.27.0","resolved":"https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.27.0.tgz","integrity":"sha512-XK08gj6RwTMQatAG7uVRP8MunqotL/XC19vHgkSPKmELgbGPBj4ECvB8haHOUnyj6ls2B8t42UTro14zxGgAHg==","license":"MIT"},"node_modules/yaml":{"version":"2.9.0","resolved":"https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz","integrity":"sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==","license":"ISC","bin":{"yaml":"bin.mjs"},"engines":{"node":">= 14.6"},"funding":{"url":"https://github.com/sponsors/eemeli"}},"node_modules/yaml-language-server":{"version":"1.23.0","resolved":"https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-1.23.0.tgz","integrity":"sha512-3qVyCOexLCWw06PQa5kRPwvMWMZ/eZeCRWUvgD6a0OkqL/4iCnxy2WumbWifa937Uo5xhyWJ0uxlU39ljhNh7A==","license":"MIT","dependencies":{"@vscode/l10n":"^0.0.18","ajv":"^8.17.1","ajv-draft-04":"^1.0.0","ajv-i18n":"^4.2.0","prettier":"^3.8.1","request-light":"^0.5.7","vscode-json-languageservice":"4.1.8","vscode-languageserver":"^9.0.0","vscode-languageserver-textdocument":"^1.0.1","vscode-languageserver-types":"^3.16.0","vscode-uri":"^3.0.2","yaml":"2.8.3"},"bin":{"yaml-language-server":"bin/yaml-language-server"}},"node_modules/yaml-language-server/node_modules/jsonc-parser":{"version":"3.3.1","resolved":"https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz","integrity":"sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==","license":"MIT"},"node_modules/yaml-language-server/node_modules/request-light":{"version":"0.5.8","resolved":"https://registry.npmjs.org/request-light/-/request-light-0.5.8.tgz","integrity":"sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==","license":"MIT"},"node_modules/yaml-language-server/node_modules/vscode-json-languageservice":{"version":"4.1.8","resolved":"https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.1.8.tgz","integrity":"sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==","license":"MIT","dependencies":{"jsonc-parser":"^3.0.0","vscode-languageserver-textdocument":"^1.0.1","vscode-languageserver-types":"^3.16.0","vscode-nls":"^5.0.0","vscode-uri":"^3.0.2"},"engines":{"npm":">=7.0.0"}},"node_modules/yaml-language-server/node_modules/yaml":{"version":"2.8.3","resolved":"https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz","integrity":"sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==","license":"ISC","bin":{"yaml":"bin.mjs"},"engines":{"node":">= 14.6"},"funding":{"url":"https://github.com/sponsors/eemeli"}},"node_modules/zod":{"version":"3.25.76","resolved":"https://registry.npmjs.org/zod/-/zod-3.25.76.tgz","integrity":"sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==","license":"MIT","funding":{"url":"https://github.com/sponsors/colinhacks"}},"node_modules/zwitch":{"version":"2.0.4","resolved":"https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz","integrity":"sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==","license":"MIT","funding":{"type":"github","url":"https://github.com/sponsors/wooorm"}}}');
|
|
5137
5163
|
const npmLock = {
|
|
5138
5164
|
packages: packages$1
|
|
5139
5165
|
};
|
|
5140
|
-
const artifacts = [{ "id": "marksman", "version": "2026-02-08", "platform": "darwin-arm64", "url": "https://github.com/artempyanykh/marksman/releases/download/2026-02-08/marksman-macos", "format": "file", "entry": "marksman", "license": "MIT", "integrity": "sha256-aoAcF7WsDbppeHxSgrOzvUFuZsliU/rgmNMRxrvRgzs=" }, { "id": "taplo", "version": "0.10.0", "platform": "darwin-arm64", "url": "https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-darwin-aarch64.gz", "format": "gzip", "entry": "taplo", "license": "MIT", "integrity": "sha256-cTc0MUw+cYlLnndRPFNJg17vvVKQhEWg1zsMfcRpNH0=" }, { "id": "shellcheck", "version": "0.11.0", "platform": "darwin-arm64", "url": "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.darwin.aarch64.tar.gz", "format": "tar", "entry": "shellcheck-v0.11.0/shellcheck", "license": "GPL-3.0-or-later", "integrity": "sha256-M5uTD+sep2RGcBPMH3LQnNa4aevxATKWupBVqy/70m8=" }, { "id": "jre", "version": "21.0.12.1+1", "platform": "darwin-arm64", "url": "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.12.1%2B1/OpenJDK21U-jre_aarch64_mac_hotspot_21.0.12.1_1.tar.gz", "format": "tar", "entry": "jdk-21.0.12.1+1-jre/Contents/Home/bin/java", "license": "GPL-2.0-with-classpath-exception", "integrity": "sha256-3sUPxvn81P466Mq/Wl+mj2r8SIQfdpjkaOmqXVS+7YQ=" }, { "id": "lemminx", "version": "0.31.2", "platform": "darwin-arm64", "url": "https://repo.eclipse.org/content/repositories/lemminx-releases/org/eclipse/lemminx/org.eclipse.lemminx/0.31.2/org.eclipse.lemminx-0.31.2-uber.jar", "format": "file", "entry": "lemminx.jar", "license": "EPL-2.0", "integrity": "sha256-9P3hZOeFxjXl+GNh2/S5k7/ixfg/21KJHQWLffybz8g=" }, { "id": "marksman", "version": "2026-02-08", "platform": "linux-x64", "url": "https://github.com/artempyanykh/marksman/releases/download/2026-02-08/marksman-linux-x64", "format": "file", "entry": "marksman", "license": "MIT", "integrity": "sha256-vlCY6CEyGSacR/wNkWpm+jHOBgLslnR1xyImCqvyYIc=" }, { "id": "taplo", "version": "0.10.0", "platform": "linux-x64", "url": "https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-linux-x86_64.gz", "format": "gzip", "entry": "taplo", "license": "MIT", "integrity": "sha256-j+GWuJTM+QcvmNThAToYAwbhfSRIMLA5hu5ejqvrYVY=" }, { "id": "shellcheck", "version": "0.11.0", "platform": "linux-x64", "url": "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.linux.x86_64.tar.gz", "format": "tar", "entry": "shellcheck-v0.11.0/shellcheck", "license": "GPL-3.0-or-later", "integrity": "sha256-t6+F5BzJlIncwh1mxtXzaFE48G00ZR5tNLQuxtVP5vY=" }, { "id": "jre", "version": "21.0.12.1+1", "platform": "linux-x64", "url": "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.12.1%2B1/OpenJDK21U-jre_x64_linux_hotspot_21.0.12.1_1.tar.gz", "format": "tar", "entry": "jdk-21.0.12.1+1-jre/bin/java", "license": "GPL-2.0-with-classpath-exception", "integrity": "sha256-JBMUlwDfD31EBQCoSo92TFNfIeWl6H04Motk7sLFtQA=" }, { "id": "lemminx", "version": "0.31.2", "platform": "linux-x64", "url": "https://repo.eclipse.org/content/repositories/lemminx-releases/org/eclipse/lemminx/org.eclipse.lemminx/0.31.2/org.eclipse.lemminx-0.31.2-uber.jar", "format": "file", "entry": "lemminx.jar", "license": "EPL-2.0", "integrity": "sha256-9P3hZOeFxjXl+GNh2/S5k7/ixfg/21KJHQWLffybz8g=" }, { "id": "laravel", "version": "0.0.31", "platform": "darwin-arm64", "url": "https://github.com/laravel/lsp/releases/download/v0.0.31/server-v0.0.31-arm64-darwin", "format": "file", "entry": "laravel-lsp", "license": "MIT", "integrity": "sha256-A5O2dUPAAFy/7ns7yjFo9QKGqdcXqCOURdkMyvoa1Xg=" }, { "id": "laravel", "version": "0.0.31", "platform": "linux-x64", "url": "https://github.com/laravel/lsp/releases/download/v0.0.31/server-v0.0.31-x64-linux", "format": "file", "entry": "laravel-lsp", "license": "MIT", "integrity": "sha256-z4Ftro0baMSh9yiORiVzKj+H3w3M31oGfn4xW5ZDyII=" }];
|
|
5166
|
+
const artifacts = [{ "id": "marksman", "version": "2026-02-08", "platform": "darwin-arm64", "url": "https://github.com/artempyanykh/marksman/releases/download/2026-02-08/marksman-macos", "format": "file", "entry": "marksman", "license": "MIT", "integrity": "sha256-aoAcF7WsDbppeHxSgrOzvUFuZsliU/rgmNMRxrvRgzs=" }, { "id": "taplo", "version": "0.10.0", "platform": "darwin-arm64", "url": "https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-darwin-aarch64.gz", "format": "gzip", "entry": "taplo", "license": "MIT", "integrity": "sha256-cTc0MUw+cYlLnndRPFNJg17vvVKQhEWg1zsMfcRpNH0=" }, { "id": "shellcheck", "version": "0.11.0", "platform": "darwin-arm64", "url": "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.darwin.aarch64.tar.gz", "format": "tar", "entry": "shellcheck-v0.11.0/shellcheck", "license": "GPL-3.0-or-later", "integrity": "sha256-M5uTD+sep2RGcBPMH3LQnNa4aevxATKWupBVqy/70m8=" }, { "id": "jre", "version": "21.0.12.1+1", "platform": "darwin-arm64", "url": "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.12.1%2B1/OpenJDK21U-jre_aarch64_mac_hotspot_21.0.12.1_1.tar.gz", "format": "tar", "entry": "jdk-21.0.12.1+1-jre/Contents/Home/bin/java", "license": "GPL-2.0-with-classpath-exception", "integrity": "sha256-3sUPxvn81P466Mq/Wl+mj2r8SIQfdpjkaOmqXVS+7YQ=" }, { "id": "lemminx", "version": "0.31.2", "platform": "darwin-arm64", "url": "https://repo.eclipse.org/content/repositories/lemminx-releases/org/eclipse/lemminx/org.eclipse.lemminx/0.31.2/org.eclipse.lemminx-0.31.2-uber.jar", "format": "file", "entry": "lemminx.jar", "license": "EPL-2.0", "integrity": "sha256-9P3hZOeFxjXl+GNh2/S5k7/ixfg/21KJHQWLffybz8g=" }, { "id": "marksman", "version": "2026-02-08", "platform": "linux-x64", "url": "https://github.com/artempyanykh/marksman/releases/download/2026-02-08/marksman-linux-x64", "format": "file", "entry": "marksman", "license": "MIT", "integrity": "sha256-vlCY6CEyGSacR/wNkWpm+jHOBgLslnR1xyImCqvyYIc=" }, { "id": "taplo", "version": "0.10.0", "platform": "linux-x64", "url": "https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-linux-x86_64.gz", "format": "gzip", "entry": "taplo", "license": "MIT", "integrity": "sha256-j+GWuJTM+QcvmNThAToYAwbhfSRIMLA5hu5ejqvrYVY=" }, { "id": "shellcheck", "version": "0.11.0", "platform": "linux-x64", "url": "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.linux.x86_64.tar.gz", "format": "tar", "entry": "shellcheck-v0.11.0/shellcheck", "license": "GPL-3.0-or-later", "integrity": "sha256-t6+F5BzJlIncwh1mxtXzaFE48G00ZR5tNLQuxtVP5vY=" }, { "id": "jre", "version": "21.0.12.1+1", "platform": "linux-x64", "url": "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.12.1%2B1/OpenJDK21U-jre_x64_linux_hotspot_21.0.12.1_1.tar.gz", "format": "tar", "entry": "jdk-21.0.12.1+1-jre/bin/java", "license": "GPL-2.0-with-classpath-exception", "integrity": "sha256-JBMUlwDfD31EBQCoSo92TFNfIeWl6H04Motk7sLFtQA=" }, { "id": "lemminx", "version": "0.31.2", "platform": "linux-x64", "url": "https://repo.eclipse.org/content/repositories/lemminx-releases/org/eclipse/lemminx/org.eclipse.lemminx/0.31.2/org.eclipse.lemminx-0.31.2-uber.jar", "format": "file", "entry": "lemminx.jar", "license": "EPL-2.0", "integrity": "sha256-9P3hZOeFxjXl+GNh2/S5k7/ixfg/21KJHQWLffybz8g=" }, { "id": "laravel", "version": "0.0.31", "platform": "darwin-arm64", "url": "https://github.com/laravel/lsp/releases/download/v0.0.31/server-v0.0.31-arm64-darwin", "format": "file", "entry": "laravel-lsp", "license": "MIT", "integrity": "sha256-A5O2dUPAAFy/7ns7yjFo9QKGqdcXqCOURdkMyvoa1Xg=" }, { "id": "laravel", "version": "0.0.31", "platform": "linux-x64", "url": "https://github.com/laravel/lsp/releases/download/v0.0.31/server-v0.0.31-x64-linux", "format": "file", "entry": "laravel-lsp", "license": "MIT", "integrity": "sha256-z4Ftro0baMSh9yiORiVzKj+H3w3M31oGfn4xW5ZDyII=" }, { "id": "marksman", "version": "2026-02-08", "platform": "linux-arm64", "url": "https://github.com/artempyanykh/marksman/releases/download/2026-02-08/marksman-linux-arm64", "format": "file", "entry": "marksman", "license": "MIT", "integrity": "sha256-244SRSf3+ASOPmyRghucUu8XPZLAHkfSIb8TN6/ZYvs=" }, { "id": "taplo", "version": "0.10.0", "platform": "linux-arm64", "url": "https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-linux-aarch64.gz", "format": "gzip", "entry": "taplo", "license": "MIT", "integrity": "sha256-AzaB0B7sg3bD/Tj6NwPHkxb14UuwE9hZlDtgoHvM3MM=" }, { "id": "shellcheck", "version": "0.11.0", "platform": "linux-arm64", "url": "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.linux.aarch64.tar.gz", "format": "tar", "entry": "shellcheck-v0.11.0/shellcheck", "license": "GPL-3.0-or-later", "integrity": "sha256-aKgTMZelC+uIA/jUL5kI0a8cVUDUuwX9/KjB+kfezvw=" }, { "id": "jre", "version": "21.0.12.1+1", "platform": "linux-arm64", "url": "https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.12.1%2B1/OpenJDK21U-jre_aarch64_linux_hotspot_21.0.12.1_1.tar.gz", "format": "tar", "entry": "jdk-21.0.12.1+1-jre/bin/java", "license": "GPL-2.0-with-classpath-exception", "integrity": "sha256-FL4fNevb0fbo1X65EaP/t01tmqJVq8Xa8rEwIALPLPI=" }, { "id": "lemminx", "version": "0.31.2", "platform": "linux-arm64", "url": "https://repo.eclipse.org/content/repositories/lemminx-releases/org/eclipse/lemminx/org.eclipse.lemminx/0.31.2/org.eclipse.lemminx-0.31.2-uber.jar", "format": "file", "entry": "lemminx.jar", "license": "EPL-2.0", "integrity": "sha256-9P3hZOeFxjXl+GNh2/S5k7/ixfg/21KJHQWLffybz8g=" }, { "id": "laravel", "version": "0.0.31", "platform": "linux-arm64", "url": "https://github.com/laravel/lsp/releases/download/v0.0.31/server-v0.0.31-arm64-linux", "format": "file", "entry": "laravel-lsp", "license": "MIT", "integrity": "sha256-RfTFNT465eyrEYgqQhP88PBuNzUBx+HdsPF5toqPsnQ=" }];
|
|
5141
5167
|
const nativeLock = {
|
|
5142
5168
|
artifacts
|
|
5143
5169
|
};
|
|
5170
|
+
const managedPlatforms = ["darwin-arm64", "linux-x64", "linux-arm64"];
|
|
5144
5171
|
const packages = npmLock.packages;
|
|
5145
5172
|
function fingerprint(value) {
|
|
5146
5173
|
const canonical = (item) => Array.isArray(item) ? item.map(canonical) : item && typeof item === "object" ? Object.fromEntries(Object.keys(item).sort().map((key) => [key, canonical(item[key])])) : item;
|
|
@@ -5186,7 +5213,7 @@ class ManagedInstaller {
|
|
|
5186
5213
|
download;
|
|
5187
5214
|
async bytes(url, integrity, signal) {
|
|
5188
5215
|
if (!url.startsWith("https://")) throw new Error("Managed artifacts require HTTPS");
|
|
5189
|
-
let
|
|
5216
|
+
let failure2;
|
|
5190
5217
|
for (let attempt = 0; attempt < 3; attempt++) {
|
|
5191
5218
|
signal?.throwIfAborted();
|
|
5192
5219
|
try {
|
|
@@ -5203,17 +5230,18 @@ class ManagedInstaller {
|
|
|
5203
5230
|
verifyIntegrity(bytes, integrity);
|
|
5204
5231
|
return bytes;
|
|
5205
5232
|
} catch (error) {
|
|
5206
|
-
|
|
5233
|
+
failure2 = error;
|
|
5207
5234
|
signal?.throwIfAborted();
|
|
5208
5235
|
}
|
|
5209
5236
|
if (attempt < 2) await setTimeout$1(250 * 2 ** attempt, void 0, { signal });
|
|
5210
5237
|
}
|
|
5211
|
-
throw
|
|
5238
|
+
throw failure2;
|
|
5212
5239
|
}
|
|
5213
5240
|
async extract(bytes, directory, strip) {
|
|
5214
5241
|
await fs.mkdir(directory, { recursive: true });
|
|
5215
5242
|
const archive = directory + ".tgz";
|
|
5216
5243
|
await fs.writeFile(archive, bytes);
|
|
5244
|
+
let rejection;
|
|
5217
5245
|
try {
|
|
5218
5246
|
await x({
|
|
5219
5247
|
file: archive,
|
|
@@ -5224,21 +5252,22 @@ class ManagedInstaller {
|
|
|
5224
5252
|
filter(name, candidate) {
|
|
5225
5253
|
const entry = candidate;
|
|
5226
5254
|
const normalized = name.split("/").slice(strip).join("/");
|
|
5227
|
-
if (name.startsWith("/") || name.includes("\\") || name.split("/").includes(".."))
|
|
5228
|
-
if (!["File", "OldFile", "Directory", "SymbolicLink"].includes(entry.type))
|
|
5229
|
-
if (entry.type === "SymbolicLink") {
|
|
5255
|
+
if (name.startsWith("/") || name.includes("\\") || name.split("/").includes("..")) rejection ??= new Error("Unsafe archive path");
|
|
5256
|
+
else if (!["File", "OldFile", "Directory", "SymbolicLink"].includes(entry.type)) rejection ??= new Error("Unsupported archive entry");
|
|
5257
|
+
else if (entry.type === "SymbolicLink") {
|
|
5230
5258
|
const target = path.resolve(directory, path.dirname(normalized), entry.linkpath ?? "");
|
|
5231
|
-
if (path.isAbsolute(entry.linkpath ?? "") || !target.startsWith(directory + path.sep))
|
|
5259
|
+
if (path.isAbsolute(entry.linkpath ?? "") || !target.startsWith(directory + path.sep)) rejection ??= new Error("Archive link leaves installation");
|
|
5232
5260
|
}
|
|
5233
|
-
return
|
|
5261
|
+
return !rejection;
|
|
5234
5262
|
}
|
|
5235
5263
|
});
|
|
5236
5264
|
} finally {
|
|
5237
5265
|
await fs.rm(archive, { force: true });
|
|
5238
5266
|
}
|
|
5267
|
+
if (rejection) throw rejection;
|
|
5239
5268
|
}
|
|
5240
5269
|
async install(id, digest2, build, signal) {
|
|
5241
|
-
if (!
|
|
5270
|
+
if (!managedPlatforms.includes(this.platform)) throw new Error(`Managed language servers are unavailable on ${this.platform}`);
|
|
5242
5271
|
const base = path.join(this.cache, `${id}-${this.platform}`), target = path.join(base, digest2);
|
|
5243
5272
|
const complete = async () => {
|
|
5244
5273
|
try {
|
|
@@ -5410,11 +5439,11 @@ class JsonSchemas {
|
|
|
5410
5439
|
throw new Error("Too many JSON schema redirects");
|
|
5411
5440
|
}
|
|
5412
5441
|
async remote(value, enabled) {
|
|
5413
|
-
const url = this.remoteUri(value),
|
|
5414
|
-
if (
|
|
5442
|
+
const url = this.remoteUri(value), cached2 = await this.cached(url);
|
|
5443
|
+
if (cached2 && (!enabled || Date.now() - cached2.fetchedAt < maxAge)) return cached2.text;
|
|
5415
5444
|
if (!enabled) throw new Error("Schema downloads are disabled and this schema is not cached");
|
|
5416
5445
|
if ((this.failures.get(url) ?? 0) > Date.now()) {
|
|
5417
|
-
if (
|
|
5446
|
+
if (cached2) return cached2.text;
|
|
5418
5447
|
throw new Error("Schema download is temporarily unavailable");
|
|
5419
5448
|
}
|
|
5420
5449
|
let pending = this.pending.get(url);
|
|
@@ -5433,7 +5462,7 @@ class JsonSchemas {
|
|
|
5433
5462
|
return text2;
|
|
5434
5463
|
} catch (error) {
|
|
5435
5464
|
this.failures.set(url, Date.now() + 6e4);
|
|
5436
|
-
if (
|
|
5465
|
+
if (cached2) return cached2.text;
|
|
5437
5466
|
throw error;
|
|
5438
5467
|
} finally {
|
|
5439
5468
|
this.pending.delete(url);
|
|
@@ -5954,7 +5983,7 @@ class ProjectStore {
|
|
|
5954
5983
|
try {
|
|
5955
5984
|
const data = JSON.parse(text2), ecosystem = entry.name === "package.json" ? "npm" : "composer";
|
|
5956
5985
|
const pkg = { path: relative, name: typeof data.name === "string" ? data.name : directory || config.name, ecosystem, dependencies: [] };
|
|
5957
|
-
for (const kind of ecosystem === "npm" ? ["dependencies", "devDependencies", "peerDependencies", "optionalDependencies"] : ["require", "require-dev"]) for (const [name,
|
|
5986
|
+
for (const kind of ecosystem === "npm" ? ["dependencies", "devDependencies", "peerDependencies", "optionalDependencies"] : ["require", "require-dev"]) for (const [name, version] of Object.entries(data[kind] ?? {})) if (typeof version === "string") pkg.dependencies.push({ name, version, kind });
|
|
5958
5987
|
result.packages.push(pkg);
|
|
5959
5988
|
} catch {
|
|
5960
5989
|
result.warnings.push(`Invalid manifest: ${relative}`);
|
|
@@ -6216,8 +6245,8 @@ class SettingsStore {
|
|
|
6216
6245
|
if (Number.isInteger(pid) && pid > 0) {
|
|
6217
6246
|
try {
|
|
6218
6247
|
process.kill(pid, 0);
|
|
6219
|
-
} catch (
|
|
6220
|
-
if (
|
|
6248
|
+
} catch (failure2) {
|
|
6249
|
+
if (failure2.code === "ESRCH") {
|
|
6221
6250
|
await fs.rm(lock, { force: true });
|
|
6222
6251
|
continue;
|
|
6223
6252
|
}
|
|
@@ -8075,31 +8104,31 @@ function requireSemver$1() {
|
|
|
8075
8104
|
return true;
|
|
8076
8105
|
};
|
|
8077
8106
|
class SemVer {
|
|
8078
|
-
constructor(
|
|
8107
|
+
constructor(version, options2) {
|
|
8079
8108
|
options2 = parseOptions(options2);
|
|
8080
|
-
if (
|
|
8081
|
-
if (
|
|
8082
|
-
return
|
|
8109
|
+
if (version instanceof SemVer) {
|
|
8110
|
+
if (version.loose === !!options2.loose && version.includePrerelease === !!options2.includePrerelease) {
|
|
8111
|
+
return version;
|
|
8083
8112
|
} else {
|
|
8084
|
-
|
|
8113
|
+
version = version.version;
|
|
8085
8114
|
}
|
|
8086
|
-
} else if (typeof
|
|
8087
|
-
throw new TypeError(`Invalid version. Must be a string. Got type "${typeof
|
|
8115
|
+
} else if (typeof version !== "string") {
|
|
8116
|
+
throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version}".`);
|
|
8088
8117
|
}
|
|
8089
|
-
if (
|
|
8118
|
+
if (version.length > MAX_LENGTH) {
|
|
8090
8119
|
throw new TypeError(
|
|
8091
8120
|
`version is longer than ${MAX_LENGTH} characters`
|
|
8092
8121
|
);
|
|
8093
8122
|
}
|
|
8094
|
-
debug("SemVer",
|
|
8123
|
+
debug("SemVer", version, options2);
|
|
8095
8124
|
this.options = options2;
|
|
8096
8125
|
this.loose = !!options2.loose;
|
|
8097
8126
|
this.includePrerelease = !!options2.includePrerelease;
|
|
8098
|
-
const m =
|
|
8127
|
+
const m = version.trim().match(options2.loose ? re2[t.LOOSE] : re2[t.FULL]);
|
|
8099
8128
|
if (!m) {
|
|
8100
|
-
throw new TypeError(`Invalid Version: ${
|
|
8129
|
+
throw new TypeError(`Invalid Version: ${version}`);
|
|
8101
8130
|
}
|
|
8102
|
-
this.raw =
|
|
8131
|
+
this.raw = version;
|
|
8103
8132
|
this.major = +m[1];
|
|
8104
8133
|
this.minor = +m[2];
|
|
8105
8134
|
this.patch = +m[3];
|
|
@@ -8350,12 +8379,12 @@ function requireParse() {
|
|
|
8350
8379
|
if (hasRequiredParse) return parse_1;
|
|
8351
8380
|
hasRequiredParse = 1;
|
|
8352
8381
|
const SemVer = requireSemver$1();
|
|
8353
|
-
const parse2 = (
|
|
8354
|
-
if (
|
|
8355
|
-
return
|
|
8382
|
+
const parse2 = (version, options2, throwErrors = false) => {
|
|
8383
|
+
if (version instanceof SemVer) {
|
|
8384
|
+
return version;
|
|
8356
8385
|
}
|
|
8357
8386
|
try {
|
|
8358
|
-
return new SemVer(
|
|
8387
|
+
return new SemVer(version, options2);
|
|
8359
8388
|
} catch (er) {
|
|
8360
8389
|
if (!throwErrors) {
|
|
8361
8390
|
return null;
|
|
@@ -8372,8 +8401,8 @@ function requireValid$1() {
|
|
|
8372
8401
|
if (hasRequiredValid$1) return valid_1;
|
|
8373
8402
|
hasRequiredValid$1 = 1;
|
|
8374
8403
|
const parse2 = requireParse();
|
|
8375
|
-
const valid2 = (
|
|
8376
|
-
const v = parse2(
|
|
8404
|
+
const valid2 = (version, options2) => {
|
|
8405
|
+
const v = parse2(version, options2);
|
|
8377
8406
|
return v ? v.version : null;
|
|
8378
8407
|
};
|
|
8379
8408
|
valid_1 = valid2;
|
|
@@ -8385,8 +8414,8 @@ function requireClean() {
|
|
|
8385
8414
|
if (hasRequiredClean) return clean_1;
|
|
8386
8415
|
hasRequiredClean = 1;
|
|
8387
8416
|
const parse2 = requireParse();
|
|
8388
|
-
const clean = (
|
|
8389
|
-
const s = parse2(
|
|
8417
|
+
const clean = (version, options2) => {
|
|
8418
|
+
const s = parse2(version.trim().replace(/^[=v]+/, ""), options2);
|
|
8390
8419
|
return s ? s.version : null;
|
|
8391
8420
|
};
|
|
8392
8421
|
clean_1 = clean;
|
|
@@ -8398,7 +8427,7 @@ function requireInc() {
|
|
|
8398
8427
|
if (hasRequiredInc) return inc_1;
|
|
8399
8428
|
hasRequiredInc = 1;
|
|
8400
8429
|
const SemVer = requireSemver$1();
|
|
8401
|
-
const inc = (
|
|
8430
|
+
const inc = (version, release, options2, identifier, identifierBase) => {
|
|
8402
8431
|
if (typeof options2 === "string") {
|
|
8403
8432
|
identifierBase = identifier;
|
|
8404
8433
|
identifier = options2;
|
|
@@ -8406,7 +8435,7 @@ function requireInc() {
|
|
|
8406
8435
|
}
|
|
8407
8436
|
try {
|
|
8408
8437
|
return new SemVer(
|
|
8409
|
-
|
|
8438
|
+
version instanceof SemVer ? version.version : version,
|
|
8410
8439
|
options2
|
|
8411
8440
|
).inc(release, identifier, identifierBase).version;
|
|
8412
8441
|
} catch (er) {
|
|
@@ -8496,8 +8525,8 @@ function requirePrerelease() {
|
|
|
8496
8525
|
if (hasRequiredPrerelease) return prerelease_1;
|
|
8497
8526
|
hasRequiredPrerelease = 1;
|
|
8498
8527
|
const parse2 = requireParse();
|
|
8499
|
-
const prerelease = (
|
|
8500
|
-
const parsed = parse2(
|
|
8528
|
+
const prerelease = (version, options2) => {
|
|
8529
|
+
const parsed = parse2(version, options2);
|
|
8501
8530
|
return parsed && parsed.prerelease.length ? parsed.prerelease : null;
|
|
8502
8531
|
};
|
|
8503
8532
|
prerelease_1 = prerelease;
|
|
@@ -8685,24 +8714,24 @@ function requireCoerce() {
|
|
|
8685
8714
|
const SemVer = requireSemver$1();
|
|
8686
8715
|
const parse2 = requireParse();
|
|
8687
8716
|
const { safeRe: re2, t } = requireRe();
|
|
8688
|
-
const coerce = (
|
|
8689
|
-
if (
|
|
8690
|
-
return
|
|
8717
|
+
const coerce = (version, options2) => {
|
|
8718
|
+
if (version instanceof SemVer) {
|
|
8719
|
+
return version;
|
|
8691
8720
|
}
|
|
8692
|
-
if (typeof
|
|
8693
|
-
|
|
8721
|
+
if (typeof version === "number") {
|
|
8722
|
+
version = String(version);
|
|
8694
8723
|
}
|
|
8695
|
-
if (typeof
|
|
8724
|
+
if (typeof version !== "string") {
|
|
8696
8725
|
return null;
|
|
8697
8726
|
}
|
|
8698
8727
|
options2 = options2 || {};
|
|
8699
8728
|
let match = null;
|
|
8700
8729
|
if (!options2.rtl) {
|
|
8701
|
-
match =
|
|
8730
|
+
match = version.match(options2.includePrerelease ? re2[t.COERCEFULL] : re2[t.COERCE]);
|
|
8702
8731
|
} else {
|
|
8703
8732
|
const coerceRtlRegex = options2.includePrerelease ? re2[t.COERCERTLFULL] : re2[t.COERCERTL];
|
|
8704
8733
|
let next;
|
|
8705
|
-
while ((next = coerceRtlRegex.exec(
|
|
8734
|
+
while ((next = coerceRtlRegex.exec(version)) && (!match || match.index + match[0].length !== version.length)) {
|
|
8706
8735
|
if (!match || next.index + next[0].length !== match.index + match[0].length) {
|
|
8707
8736
|
match = next;
|
|
8708
8737
|
}
|
|
@@ -8731,32 +8760,32 @@ function requireTruncate() {
|
|
|
8731
8760
|
const parse2 = requireParse();
|
|
8732
8761
|
const constants2 = requireConstants();
|
|
8733
8762
|
const SemVer = requireSemver$1();
|
|
8734
|
-
const truncate = (
|
|
8763
|
+
const truncate = (version, truncation, options2) => {
|
|
8735
8764
|
if (!constants2.RELEASE_TYPES.includes(truncation)) {
|
|
8736
8765
|
return null;
|
|
8737
8766
|
}
|
|
8738
|
-
const clonedVersion = cloneInputVersion(
|
|
8767
|
+
const clonedVersion = cloneInputVersion(version, options2);
|
|
8739
8768
|
return clonedVersion && doTruncation(clonedVersion, truncation);
|
|
8740
8769
|
};
|
|
8741
|
-
const cloneInputVersion = (
|
|
8742
|
-
const versionStringToParse =
|
|
8770
|
+
const cloneInputVersion = (version, options2) => {
|
|
8771
|
+
const versionStringToParse = version instanceof SemVer ? version.version : version;
|
|
8743
8772
|
return parse2(versionStringToParse, options2);
|
|
8744
8773
|
};
|
|
8745
|
-
const doTruncation = (
|
|
8774
|
+
const doTruncation = (version, truncation) => {
|
|
8746
8775
|
if (isPrerelease(truncation)) {
|
|
8747
|
-
return
|
|
8776
|
+
return version.version;
|
|
8748
8777
|
}
|
|
8749
|
-
|
|
8778
|
+
version.prerelease = [];
|
|
8750
8779
|
switch (truncation) {
|
|
8751
8780
|
case "major":
|
|
8752
|
-
|
|
8753
|
-
|
|
8781
|
+
version.minor = 0;
|
|
8782
|
+
version.patch = 0;
|
|
8754
8783
|
break;
|
|
8755
8784
|
case "minor":
|
|
8756
|
-
|
|
8785
|
+
version.patch = 0;
|
|
8757
8786
|
break;
|
|
8758
8787
|
}
|
|
8759
|
-
return
|
|
8788
|
+
return version.format();
|
|
8760
8789
|
};
|
|
8761
8790
|
const isPrerelease = (type2) => {
|
|
8762
8791
|
return type2.startsWith("pre");
|
|
@@ -8876,9 +8905,9 @@ function requireRange() {
|
|
|
8876
8905
|
range2 = range2.replace(BUILDSTRIPRE, "");
|
|
8877
8906
|
const memoOpts = (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) | (this.options.loose && FLAG_LOOSE);
|
|
8878
8907
|
const memoKey = memoOpts + ":" + range2;
|
|
8879
|
-
const
|
|
8880
|
-
if (
|
|
8881
|
-
return
|
|
8908
|
+
const cached2 = cache.get(memoKey);
|
|
8909
|
+
if (cached2) {
|
|
8910
|
+
return cached2;
|
|
8882
8911
|
}
|
|
8883
8912
|
const loose = this.options.loose;
|
|
8884
8913
|
const hr = loose ? re2[t.HYPHENRANGELOOSE] : re2[t.HYPHENRANGE];
|
|
@@ -8928,19 +8957,19 @@ function requireRange() {
|
|
|
8928
8957
|
});
|
|
8929
8958
|
}
|
|
8930
8959
|
// if ANY of the sets match ALL of its comparators, then pass
|
|
8931
|
-
test(
|
|
8932
|
-
if (!
|
|
8960
|
+
test(version) {
|
|
8961
|
+
if (!version) {
|
|
8933
8962
|
return false;
|
|
8934
8963
|
}
|
|
8935
|
-
if (typeof
|
|
8964
|
+
if (typeof version === "string") {
|
|
8936
8965
|
try {
|
|
8937
|
-
|
|
8966
|
+
version = new SemVer(version, this.options);
|
|
8938
8967
|
} catch (er) {
|
|
8939
8968
|
return false;
|
|
8940
8969
|
}
|
|
8941
8970
|
}
|
|
8942
8971
|
for (let i = 0; i < this.set.length; i++) {
|
|
8943
|
-
if (testSet(this.set[i],
|
|
8972
|
+
if (testSet(this.set[i], version, this.options)) {
|
|
8944
8973
|
return true;
|
|
8945
8974
|
}
|
|
8946
8975
|
}
|
|
@@ -9162,13 +9191,13 @@ function requireRange() {
|
|
|
9162
9191
|
}
|
|
9163
9192
|
return `${from} ${to}`.trim();
|
|
9164
9193
|
};
|
|
9165
|
-
const testSet = (set,
|
|
9194
|
+
const testSet = (set, version, options2) => {
|
|
9166
9195
|
for (let i = 0; i < set.length; i++) {
|
|
9167
|
-
if (!set[i].test(
|
|
9196
|
+
if (!set[i].test(version)) {
|
|
9168
9197
|
return false;
|
|
9169
9198
|
}
|
|
9170
9199
|
}
|
|
9171
|
-
if (
|
|
9200
|
+
if (version.prerelease.length && !options2.includePrerelease) {
|
|
9172
9201
|
for (let i = 0; i < set.length; i++) {
|
|
9173
9202
|
debug(set[i].semver);
|
|
9174
9203
|
if (set[i].semver === Comparator.ANY) {
|
|
@@ -9176,7 +9205,7 @@ function requireRange() {
|
|
|
9176
9205
|
}
|
|
9177
9206
|
if (set[i].semver.prerelease.length > 0) {
|
|
9178
9207
|
const allowed = set[i].semver;
|
|
9179
|
-
if (allowed.major ===
|
|
9208
|
+
if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) {
|
|
9180
9209
|
return true;
|
|
9181
9210
|
}
|
|
9182
9211
|
}
|
|
@@ -9237,19 +9266,19 @@ function requireComparator() {
|
|
|
9237
9266
|
toString() {
|
|
9238
9267
|
return this.value;
|
|
9239
9268
|
}
|
|
9240
|
-
test(
|
|
9241
|
-
debug("Comparator.test",
|
|
9242
|
-
if (this.semver === ANY ||
|
|
9269
|
+
test(version) {
|
|
9270
|
+
debug("Comparator.test", version, this.options.loose);
|
|
9271
|
+
if (this.semver === ANY || version === ANY) {
|
|
9243
9272
|
return true;
|
|
9244
9273
|
}
|
|
9245
|
-
if (typeof
|
|
9274
|
+
if (typeof version === "string") {
|
|
9246
9275
|
try {
|
|
9247
|
-
|
|
9276
|
+
version = new SemVer(version, this.options);
|
|
9248
9277
|
} catch (er) {
|
|
9249
9278
|
return false;
|
|
9250
9279
|
}
|
|
9251
9280
|
}
|
|
9252
|
-
return cmp(
|
|
9281
|
+
return cmp(version, this.operator, this.semver, this.options);
|
|
9253
9282
|
}
|
|
9254
9283
|
intersects(comp, options2) {
|
|
9255
9284
|
if (!(comp instanceof Comparator)) {
|
|
@@ -9306,13 +9335,13 @@ function requireSatisfies() {
|
|
|
9306
9335
|
if (hasRequiredSatisfies) return satisfies_1;
|
|
9307
9336
|
hasRequiredSatisfies = 1;
|
|
9308
9337
|
const Range = requireRange();
|
|
9309
|
-
const satisfies = (
|
|
9338
|
+
const satisfies = (version, range2, options2) => {
|
|
9310
9339
|
try {
|
|
9311
9340
|
range2 = new Range(range2, options2);
|
|
9312
9341
|
} catch (er) {
|
|
9313
9342
|
return false;
|
|
9314
9343
|
}
|
|
9315
|
-
return range2.test(
|
|
9344
|
+
return range2.test(version);
|
|
9316
9345
|
};
|
|
9317
9346
|
satisfies_1 = satisfies;
|
|
9318
9347
|
return satisfies_1;
|
|
@@ -9474,8 +9503,8 @@ function requireOutside() {
|
|
|
9474
9503
|
const lt = requireLt();
|
|
9475
9504
|
const lte = requireLte();
|
|
9476
9505
|
const gte = requireGte();
|
|
9477
|
-
const outside = (
|
|
9478
|
-
|
|
9506
|
+
const outside = (version, range2, hilo, options2) => {
|
|
9507
|
+
version = new SemVer(version, options2);
|
|
9479
9508
|
range2 = new Range(range2, options2);
|
|
9480
9509
|
let gtfn, ltefn, ltfn, comp, ecomp;
|
|
9481
9510
|
switch (hilo) {
|
|
@@ -9496,7 +9525,7 @@ function requireOutside() {
|
|
|
9496
9525
|
default:
|
|
9497
9526
|
throw new TypeError('Must provide a hilo val of "<" or ">"');
|
|
9498
9527
|
}
|
|
9499
|
-
if (satisfies(
|
|
9528
|
+
if (satisfies(version, range2, options2)) {
|
|
9500
9529
|
return false;
|
|
9501
9530
|
}
|
|
9502
9531
|
for (let i = 0; i < range2.set.length; ++i) {
|
|
@@ -9518,9 +9547,9 @@ function requireOutside() {
|
|
|
9518
9547
|
if (high.operator === comp || high.operator === ecomp) {
|
|
9519
9548
|
return false;
|
|
9520
9549
|
}
|
|
9521
|
-
if ((!low.operator || low.operator === comp) && ltefn(
|
|
9550
|
+
if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) {
|
|
9522
9551
|
return false;
|
|
9523
|
-
} else if (low.operator === ecomp && ltfn(
|
|
9552
|
+
} else if (low.operator === ecomp && ltfn(version, low.semver)) {
|
|
9524
9553
|
return false;
|
|
9525
9554
|
}
|
|
9526
9555
|
}
|
|
@@ -9535,7 +9564,7 @@ function requireGtr() {
|
|
|
9535
9564
|
if (hasRequiredGtr) return gtr_1;
|
|
9536
9565
|
hasRequiredGtr = 1;
|
|
9537
9566
|
const outside = requireOutside();
|
|
9538
|
-
const gtr = (
|
|
9567
|
+
const gtr = (version, range2, options2) => outside(version, range2, ">", options2);
|
|
9539
9568
|
gtr_1 = gtr;
|
|
9540
9569
|
return gtr_1;
|
|
9541
9570
|
}
|
|
@@ -9545,7 +9574,7 @@ function requireLtr() {
|
|
|
9545
9574
|
if (hasRequiredLtr) return ltr_1;
|
|
9546
9575
|
hasRequiredLtr = 1;
|
|
9547
9576
|
const outside = requireOutside();
|
|
9548
|
-
const ltr = (
|
|
9577
|
+
const ltr = (version, range2, options2) => outside(version, range2, "<", options2);
|
|
9549
9578
|
ltr_1 = ltr;
|
|
9550
9579
|
return ltr_1;
|
|
9551
9580
|
}
|
|
@@ -9575,12 +9604,12 @@ function requireSimplify() {
|
|
|
9575
9604
|
let first = null;
|
|
9576
9605
|
let prev = null;
|
|
9577
9606
|
const v = versions.sort((a, b) => compare(a, b, options2));
|
|
9578
|
-
for (const
|
|
9579
|
-
const included = satisfies(
|
|
9607
|
+
for (const version of v) {
|
|
9608
|
+
const included = satisfies(version, range2, options2);
|
|
9580
9609
|
if (included) {
|
|
9581
|
-
prev =
|
|
9610
|
+
prev = version;
|
|
9582
9611
|
if (!first) {
|
|
9583
|
-
first =
|
|
9612
|
+
first = version;
|
|
9584
9613
|
}
|
|
9585
9614
|
} else {
|
|
9586
9615
|
if (prev) {
|
|
@@ -10419,8 +10448,8 @@ function createKernel({
|
|
|
10419
10448
|
await kernel.extensions.trigger(`onCommand:${id}`);
|
|
10420
10449
|
const command = commands.get(id);
|
|
10421
10450
|
if (!command) throw new Error(`Unknown command: ${id}`);
|
|
10422
|
-
const
|
|
10423
|
-
if (!
|
|
10451
|
+
const available = kernel.commands.available(id);
|
|
10452
|
+
if (!available.enabled) throw new Error(available.reason);
|
|
10424
10453
|
kernel.events.emit("command.execute", { id });
|
|
10425
10454
|
return command.run(args);
|
|
10426
10455
|
},
|
|
@@ -10862,6 +10891,43 @@ class RuntimeExtensions {
|
|
|
10862
10891
|
this.watchers.clear();
|
|
10863
10892
|
}
|
|
10864
10893
|
}
|
|
10894
|
+
let cached;
|
|
10895
|
+
function runtimeVersion() {
|
|
10896
|
+
if (cached) return cached;
|
|
10897
|
+
return cached = "0.5.0";
|
|
10898
|
+
}
|
|
10899
|
+
const wildcardHost = (host) => host === "0.0.0.0" || host === "::";
|
|
10900
|
+
const localHost = (host) => wildcardHost(host) ? "127.0.0.1" : host;
|
|
10901
|
+
const localName = (hostname = os.hostname()) => hostname.split(".")[0];
|
|
10902
|
+
let macLocalName;
|
|
10903
|
+
function bonjourName() {
|
|
10904
|
+
if (process.platform !== "darwin") return void 0;
|
|
10905
|
+
try {
|
|
10906
|
+
macLocalName ??= execFileSync("scutil", ["--get", "LocalHostName"], { encoding: "utf8", timeout: 1e3 }).trim();
|
|
10907
|
+
} catch {
|
|
10908
|
+
macLocalName = "";
|
|
10909
|
+
}
|
|
10910
|
+
return macLocalName || void 0;
|
|
10911
|
+
}
|
|
10912
|
+
function lanAddresses$1(interfaces = os.networkInterfaces()) {
|
|
10913
|
+
const addresses = Object.values(interfaces).flatMap((entries) => entries ?? []).filter((entry) => !entry.internal);
|
|
10914
|
+
const of = (family) => [
|
|
10915
|
+
...new Set(addresses.filter((entry) => entry.family === family).map((entry) => entry.address.split("%")[0]))
|
|
10916
|
+
];
|
|
10917
|
+
return { v4: of("IPv4"), v6: of("IPv6") };
|
|
10918
|
+
}
|
|
10919
|
+
function lanOrigins(port2, interfaces = os.networkInterfaces(), hostname = os.hostname(), published = bonjourName()) {
|
|
10920
|
+
const { v4, v6 } = lanAddresses$1(interfaces);
|
|
10921
|
+
return [
|
|
10922
|
+
...v4.map((address) => `http://${address}:${port2}`),
|
|
10923
|
+
...v6.map((address) => `http://[${address}]:${port2}`),
|
|
10924
|
+
...new Set([localName(hostname), ...published ? [published] : []].map((name) => `http://${name}.local:${port2}`))
|
|
10925
|
+
];
|
|
10926
|
+
}
|
|
10927
|
+
function lanUrl(port2, interfaces = os.networkInterfaces()) {
|
|
10928
|
+
const address = lanAddresses$1(interfaces).v4[0];
|
|
10929
|
+
return address ? `http://${address}:${port2}` : void 0;
|
|
10930
|
+
}
|
|
10865
10931
|
const allCapabilities = [
|
|
10866
10932
|
"filesystem.read",
|
|
10867
10933
|
"filesystem.write",
|
|
@@ -10907,10 +10973,11 @@ async function createRuntime(options2) {
|
|
|
10907
10973
|
await fs.mkdir(dataDir, { recursive: true, mode: 448 });
|
|
10908
10974
|
const stateFile = path.join(dataDir, "runtime.json");
|
|
10909
10975
|
const files = new WorkspaceFiles(root, dataDir), sessions = /* @__PURE__ */ new Map(), operations = /* @__PURE__ */ new Map(), inflight = /* @__PURE__ */ new Map(), connections = /* @__PURE__ */ new Map();
|
|
10910
|
-
let trusted = false, closed = false;
|
|
10976
|
+
let trusted = false, closed = false, runtimeId = randomUUID();
|
|
10911
10977
|
try {
|
|
10912
10978
|
const state2 = JSON.parse(await fs.readFile(stateFile, "utf8"));
|
|
10913
10979
|
trusted = state2.trusted === true;
|
|
10980
|
+
if (typeof state2.id === "string" && /^[A-Za-z0-9-]{8,64}$/.test(state2.id)) runtimeId = state2.id;
|
|
10914
10981
|
for (const session of state2.sessions ?? [])
|
|
10915
10982
|
sessions.set(session.hash, session);
|
|
10916
10983
|
for (const operation of state2.operations ?? []) {
|
|
@@ -10942,6 +11009,7 @@ async function createRuntime(options2) {
|
|
|
10942
11009
|
let persistence = Promise.resolve();
|
|
10943
11010
|
const persist = () => {
|
|
10944
11011
|
const payload = JSON.stringify({
|
|
11012
|
+
id: runtimeId,
|
|
10945
11013
|
trusted,
|
|
10946
11014
|
sessions: [...sessions.values()],
|
|
10947
11015
|
operations: [...operations.values()]
|
|
@@ -10958,11 +11026,13 @@ async function createRuntime(options2) {
|
|
|
10958
11026
|
const pairingAttemptsPerMinute = options2.pairingAttemptsPerMinute ?? 10;
|
|
10959
11027
|
if (!Number.isInteger(pairingAttemptsPerMinute) || pairingAttemptsPerMinute < 1)
|
|
10960
11028
|
throw new Error("Pairing attempts per minute must be a positive whole number");
|
|
10961
|
-
let port2 = options2.port ??
|
|
11029
|
+
let port2 = options2.port ?? 0;
|
|
11030
|
+
const identity2 = { id: runtimeId, name: os.hostname(), version: runtimeVersion(), startedAt: Date.now() };
|
|
10962
11031
|
const allowedOrigins = () => /* @__PURE__ */ new Set([
|
|
10963
11032
|
"tauri://localhost",
|
|
10964
11033
|
...options2.desktop ? [] : [`http://127.0.0.1:${port2}`, `http://localhost:${port2}`, `http://${host}:${port2}`],
|
|
10965
|
-
...options2.origins ?? []
|
|
11034
|
+
...options2.origins ?? [],
|
|
11035
|
+
...wildcardHost(host) ? lanOrigins(port2) : []
|
|
10966
11036
|
]);
|
|
10967
11037
|
const originAllowed = (request, required = false) => {
|
|
10968
11038
|
const origin = request.headers.origin;
|
|
@@ -11173,7 +11243,7 @@ async function createRuntime(options2) {
|
|
|
11173
11243
|
}
|
|
11174
11244
|
const url = new URL(request.url ?? "/", `http://${host}:${port2}`);
|
|
11175
11245
|
if (url.pathname === "/api/health") {
|
|
11176
|
-
httpJson(response, 200, { ok: true, protocol: 1 });
|
|
11246
|
+
httpJson(response, 200, { ok: true, protocol: 1, ...identity2 });
|
|
11177
11247
|
return;
|
|
11178
11248
|
}
|
|
11179
11249
|
if (url.pathname === "/api/pair" && request.method === "POST") {
|
|
@@ -11206,7 +11276,7 @@ async function createRuntime(options2) {
|
|
|
11206
11276
|
"Set-Cookie",
|
|
11207
11277
|
`oxbit_session=${result.token}; HttpOnly; SameSite=Strict; Path=/`
|
|
11208
11278
|
);
|
|
11209
|
-
httpJson(response, 200, result);
|
|
11279
|
+
httpJson(response, 200, { ...result, runtime: identity2 });
|
|
11210
11280
|
return;
|
|
11211
11281
|
}
|
|
11212
11282
|
if (url.pathname === "/api/grants") {
|
|
@@ -11373,7 +11443,8 @@ async function createRuntime(options2) {
|
|
|
11373
11443
|
"Open a new connection to change sessions"
|
|
11374
11444
|
);
|
|
11375
11445
|
connection.session = session2;
|
|
11376
|
-
|
|
11446
|
+
updateIdle();
|
|
11447
|
+
return { ...sessionInfo(session2), runtime: identity2 };
|
|
11377
11448
|
}
|
|
11378
11449
|
const workspace = params.workspaceId ?? "default";
|
|
11379
11450
|
if (workspace !== "default")
|
|
@@ -11838,6 +11909,31 @@ async function createRuntime(options2) {
|
|
|
11838
11909
|
);
|
|
11839
11910
|
}
|
|
11840
11911
|
};
|
|
11912
|
+
let idleSince, idleTimer;
|
|
11913
|
+
const updateIdle = () => {
|
|
11914
|
+
if ([...connections.values()].some((c) => c.session && !c.session.revoked)) {
|
|
11915
|
+
idleSince = void 0;
|
|
11916
|
+
clearTimeout(idleTimer);
|
|
11917
|
+
return;
|
|
11918
|
+
}
|
|
11919
|
+
if (idleSince !== void 0 || closed) return;
|
|
11920
|
+
idleSince = Date.now();
|
|
11921
|
+
const idle = options2.idleShutdown;
|
|
11922
|
+
if (idle) idleTimer = setTimeout(() => {
|
|
11923
|
+
if (!closed) idle.onIdle();
|
|
11924
|
+
}, idle.afterMs);
|
|
11925
|
+
};
|
|
11926
|
+
const ping = setInterval(() => {
|
|
11927
|
+
for (const connection of connections.values()) {
|
|
11928
|
+
if (!connection.alive) {
|
|
11929
|
+
connection.ws.terminate();
|
|
11930
|
+
continue;
|
|
11931
|
+
}
|
|
11932
|
+
connection.alive = false;
|
|
11933
|
+
connection.ws.ping();
|
|
11934
|
+
}
|
|
11935
|
+
}, options2.pingIntervalMs ?? 3e4);
|
|
11936
|
+
ping.unref();
|
|
11841
11937
|
websocket.on("connection", (ws, request) => {
|
|
11842
11938
|
const connection = {
|
|
11843
11939
|
id: randomUUID(),
|
|
@@ -11846,9 +11942,13 @@ async function createRuntime(options2) {
|
|
|
11846
11942
|
pending: /* @__PURE__ */ new Map(),
|
|
11847
11943
|
watching: false,
|
|
11848
11944
|
language: false,
|
|
11945
|
+
alive: true,
|
|
11849
11946
|
edits: /* @__PURE__ */ new Map()
|
|
11850
11947
|
};
|
|
11851
11948
|
connections.set(connection.id, connection);
|
|
11949
|
+
ws.on("pong", () => {
|
|
11950
|
+
connection.alive = true;
|
|
11951
|
+
});
|
|
11852
11952
|
const authDeadline = setTimeout(() => {
|
|
11853
11953
|
if (!connection.session) ws.close(4001, "Authenticate within 10 seconds");
|
|
11854
11954
|
}, 1e4);
|
|
@@ -11990,6 +12090,7 @@ async function createRuntime(options2) {
|
|
|
11990
12090
|
agents.disconnect(connection.id);
|
|
11991
12091
|
lsp.detach(connection.id);
|
|
11992
12092
|
connections.delete(connection.id);
|
|
12093
|
+
updateIdle();
|
|
11993
12094
|
for (const pending of connection.edits.values()) {
|
|
11994
12095
|
pending.cleanup();
|
|
11995
12096
|
pending.resolve({ applied: false, failureReason: "Document client disconnected" });
|
|
@@ -12004,11 +12105,18 @@ async function createRuntime(options2) {
|
|
|
12004
12105
|
});
|
|
12005
12106
|
});
|
|
12006
12107
|
let watcher, watcherTransition = Promise.resolve();
|
|
12007
|
-
let watcherReadyResolve
|
|
12008
|
-
const watcherReady = new Promise((resolve
|
|
12108
|
+
let watcherReadyResolve;
|
|
12109
|
+
const watcherReady = new Promise((resolve) => {
|
|
12009
12110
|
watcherReadyResolve = resolve;
|
|
12010
|
-
watcherReadyReject = reject;
|
|
12011
12111
|
});
|
|
12112
|
+
const watchFailed = (error) => {
|
|
12113
|
+
process.stderr.write(`Oxbit file watcher failed: ${error.code ? `${error.code} ` : ""}${error.message}
|
|
12114
|
+
`);
|
|
12115
|
+
for (const c of connections.values())
|
|
12116
|
+
if (c.watching && c.session)
|
|
12117
|
+
event(c, "fs.watchError", { message: error.message, code: error.code });
|
|
12118
|
+
watcherReadyResolve();
|
|
12119
|
+
};
|
|
12012
12120
|
let fileChangeQueue = Promise.resolve();
|
|
12013
12121
|
const watchedChange = (kind, full) => {
|
|
12014
12122
|
fileChangeQueue = fileChangeQueue.catch(() => {
|
|
@@ -12056,33 +12164,21 @@ async function createRuntime(options2) {
|
|
|
12056
12164
|
current.once("ready", () => {
|
|
12057
12165
|
if (watcher === current) watcherReadyResolve();
|
|
12058
12166
|
});
|
|
12059
|
-
current.on("error", (
|
|
12167
|
+
current.on("error", (failure2) => {
|
|
12060
12168
|
if (watcher !== current) return;
|
|
12061
|
-
const error =
|
|
12169
|
+
const error = failure2;
|
|
12062
12170
|
if (!usePolling && (error.code === "EMFILE" || error.code === "ENOSPC")) {
|
|
12063
12171
|
watcher = void 0;
|
|
12064
12172
|
watcherTransition = current.close().then(() => {
|
|
12065
12173
|
if (!closed) startWatcher(true);
|
|
12066
|
-
}).catch(
|
|
12174
|
+
}).catch(watchFailed);
|
|
12067
12175
|
for (const c of connections.values())
|
|
12068
12176
|
if (c.watching && c.session)
|
|
12069
12177
|
event(c, "fs.watchStatus", { mode: "polling", reason: error.code });
|
|
12070
|
-
} else
|
|
12071
|
-
for (const c of connections.values())
|
|
12072
|
-
if (c.watching && c.session)
|
|
12073
|
-
event(c, "fs.watchError", {
|
|
12074
|
-
message: error.message,
|
|
12075
|
-
code: error.code
|
|
12076
|
-
});
|
|
12077
|
-
watcherReadyReject(error);
|
|
12078
|
-
}
|
|
12178
|
+
} else watchFailed(error);
|
|
12079
12179
|
});
|
|
12080
12180
|
current.add(root);
|
|
12081
12181
|
};
|
|
12082
|
-
startWatcher(
|
|
12083
|
-
setting("WATCH_POLLING") === "1" || setting("WATCH_POLLING") === "true"
|
|
12084
|
-
);
|
|
12085
|
-
await watcherReady;
|
|
12086
12182
|
await new Promise((resolve, reject) => {
|
|
12087
12183
|
server.once("error", reject);
|
|
12088
12184
|
server.listen(port2, host, () => {
|
|
@@ -12092,12 +12188,24 @@ async function createRuntime(options2) {
|
|
|
12092
12188
|
});
|
|
12093
12189
|
const address = server.address();
|
|
12094
12190
|
if (address && typeof address === "object") port2 = address.port;
|
|
12191
|
+
identity2.startedAt = Date.now();
|
|
12192
|
+
updateIdle();
|
|
12193
|
+
try {
|
|
12194
|
+
startWatcher(setting("WATCH_POLLING") === "1" || setting("WATCH_POLLING") === "true");
|
|
12195
|
+
} catch (error) {
|
|
12196
|
+
watchFailed(error);
|
|
12197
|
+
}
|
|
12095
12198
|
return {
|
|
12096
12199
|
server,
|
|
12097
12200
|
port: port2,
|
|
12201
|
+
identity: identity2,
|
|
12098
12202
|
pairingCode,
|
|
12203
|
+
/** Epoch milliseconds since no authenticated client has been connected, or undefined while one is. */
|
|
12204
|
+
idleSince: () => idleSince,
|
|
12099
12205
|
root,
|
|
12100
12206
|
dataDir,
|
|
12207
|
+
/** Resolves after the watcher's first full scan, or once watching has failed. */
|
|
12208
|
+
watcherReady,
|
|
12101
12209
|
async rotateDesktopToken(token) {
|
|
12102
12210
|
if (!options2.desktop || token.length < 32) throw new Error("Invalid desktop rotation");
|
|
12103
12211
|
const previous = [...sessions.entries()].find(([, session]) => session.id === "desktop-owner");
|
|
@@ -12112,6 +12220,8 @@ async function createRuntime(options2) {
|
|
|
12112
12220
|
async close() {
|
|
12113
12221
|
if (closed) return;
|
|
12114
12222
|
closed = true;
|
|
12223
|
+
clearInterval(ping);
|
|
12224
|
+
clearTimeout(idleTimer);
|
|
12115
12225
|
await watcherTransition;
|
|
12116
12226
|
await watcher?.close();
|
|
12117
12227
|
await fileChangeQueue;
|
|
@@ -12134,6 +12244,291 @@ async function createRuntime(options2) {
|
|
|
12134
12244
|
}
|
|
12135
12245
|
};
|
|
12136
12246
|
}
|
|
12247
|
+
const TYPE = { A: 1, PTR: 12, TXT: 16, AAAA: 28, SRV: 33, ANY: 255 };
|
|
12248
|
+
const FLAGS_RESPONSE = 33792;
|
|
12249
|
+
const QR = 32768;
|
|
12250
|
+
const CACHE_FLUSH = 32768;
|
|
12251
|
+
const CLASS_IN = 1;
|
|
12252
|
+
function truncateUtf8(value, maxBytes2) {
|
|
12253
|
+
let out = "";
|
|
12254
|
+
for (const char of value) {
|
|
12255
|
+
if (Buffer.byteLength(out + char) > maxBytes2) break;
|
|
12256
|
+
out += char;
|
|
12257
|
+
}
|
|
12258
|
+
return out;
|
|
12259
|
+
}
|
|
12260
|
+
function instanceLabel(hostname, id) {
|
|
12261
|
+
const suffix = ` (${id.slice(0, 8)})`;
|
|
12262
|
+
const host = hostname.replace(/\.local\.?$/i, "");
|
|
12263
|
+
return truncateUtf8(host, 63 - Buffer.byteLength(suffix)) + suffix;
|
|
12264
|
+
}
|
|
12265
|
+
const serviceName = () => [...RUNTIME_SERVICE_TYPE.split("."), "local"];
|
|
12266
|
+
const hostName = (id) => [`oxbit-${id.slice(0, 8)}`, "local"];
|
|
12267
|
+
const nameKey = (name) => name.map((l) => l.toLowerCase()).join("\0");
|
|
12268
|
+
function records(ad, ttl) {
|
|
12269
|
+
const service = serviceName();
|
|
12270
|
+
const instance = [instanceLabel(ad.name, ad.id), ...service];
|
|
12271
|
+
const host = hostName(ad.id);
|
|
12272
|
+
const rr = (name, type2, base, rest) => ({
|
|
12273
|
+
name,
|
|
12274
|
+
type: type2,
|
|
12275
|
+
ttl: ttl ?? base,
|
|
12276
|
+
flush: type2 !== TYPE.PTR,
|
|
12277
|
+
...rest
|
|
12278
|
+
});
|
|
12279
|
+
const txt = [`id=${ad.id}`, `name=${ad.name}`, `version=${ad.version}`, `port=${ad.port}`];
|
|
12280
|
+
return [
|
|
12281
|
+
rr(service, TYPE.PTR, 4500, { target: instance }),
|
|
12282
|
+
rr(["_services", "_dns-sd", "_udp", "local"], TYPE.PTR, 4500, { target: service }),
|
|
12283
|
+
rr(instance, TYPE.SRV, 120, { target: host, port: ad.port }),
|
|
12284
|
+
rr(instance, TYPE.TXT, 4500, { strings: txt.map((s) => truncateUtf8(s, 255)) }),
|
|
12285
|
+
...ad.v4.filter((a) => isIPv4(a)).map((address) => rr(host, TYPE.A, 120, { address })),
|
|
12286
|
+
...ad.v6.map((a) => a.split("%")[0]).filter((a) => isIPv6(a)).map((address) => rr(host, TYPE.AAAA, 120, { address }))
|
|
12287
|
+
];
|
|
12288
|
+
}
|
|
12289
|
+
function answer(questions, all) {
|
|
12290
|
+
const answers = all.filter(
|
|
12291
|
+
(r) => questions.some(
|
|
12292
|
+
(q) => (q.type === TYPE.ANY || q.type === r.type) && nameKey(q.name) === nameKey(r.name)
|
|
12293
|
+
)
|
|
12294
|
+
);
|
|
12295
|
+
if (!answers.length) return void 0;
|
|
12296
|
+
return { answers, additionals: all.filter((r) => r.flush && !answers.includes(r)) };
|
|
12297
|
+
}
|
|
12298
|
+
function encodeName(name) {
|
|
12299
|
+
const parts = name.map((label) => {
|
|
12300
|
+
const bytes = Buffer.from(label, "utf8");
|
|
12301
|
+
if (!bytes.length || bytes.length > 63) throw new Error(`Invalid DNS label: ${label}`);
|
|
12302
|
+
return Buffer.concat([Buffer.from([bytes.length]), bytes]);
|
|
12303
|
+
});
|
|
12304
|
+
const out = Buffer.concat([...parts, Buffer.from([0])]);
|
|
12305
|
+
if (out.length > 255) throw new Error("DNS name too long");
|
|
12306
|
+
return out;
|
|
12307
|
+
}
|
|
12308
|
+
function ipv6Bytes(address) {
|
|
12309
|
+
const [head, tail] = address.includes("::") ? address.split("::") : [address, void 0];
|
|
12310
|
+
const h = head ? head.split(":") : [];
|
|
12311
|
+
const t = tail ? tail.split(":") : [];
|
|
12312
|
+
const groups2 = tail === void 0 ? h : [...h, ...Array(8 - h.length - t.length).fill("0"), ...t];
|
|
12313
|
+
const out = Buffer.alloc(16);
|
|
12314
|
+
groups2.forEach((g, i) => out.writeUInt16BE(parseInt(g, 16), i * 2));
|
|
12315
|
+
return out;
|
|
12316
|
+
}
|
|
12317
|
+
function rdata(r) {
|
|
12318
|
+
if (r.type === TYPE.PTR) return encodeName(r.target);
|
|
12319
|
+
if (r.type === TYPE.SRV) {
|
|
12320
|
+
const head = Buffer.alloc(6);
|
|
12321
|
+
head.writeUInt16BE(r.port, 4);
|
|
12322
|
+
return Buffer.concat([head, encodeName(r.target)]);
|
|
12323
|
+
}
|
|
12324
|
+
if (r.type === TYPE.TXT)
|
|
12325
|
+
return Buffer.concat(r.strings.map((s) => Buffer.concat([Buffer.from([Buffer.byteLength(s)]), Buffer.from(s)])));
|
|
12326
|
+
if (r.type === TYPE.A) return Buffer.from(r.address.split(".").map(Number));
|
|
12327
|
+
return ipv6Bytes(r.address);
|
|
12328
|
+
}
|
|
12329
|
+
function encodeMessage(m) {
|
|
12330
|
+
const header = Buffer.alloc(12);
|
|
12331
|
+
const questions = m.questions ?? [];
|
|
12332
|
+
const additionals = m.additionals ?? [];
|
|
12333
|
+
header.writeUInt16BE(m.id ?? 0, 0);
|
|
12334
|
+
header.writeUInt16BE(m.flags ?? FLAGS_RESPONSE, 2);
|
|
12335
|
+
header.writeUInt16BE(questions.length, 4);
|
|
12336
|
+
header.writeUInt16BE(m.answers.length, 6);
|
|
12337
|
+
header.writeUInt16BE(additionals.length, 10);
|
|
12338
|
+
const body = [
|
|
12339
|
+
...questions.map((q) => {
|
|
12340
|
+
const tail = Buffer.alloc(4);
|
|
12341
|
+
tail.writeUInt16BE(q.type, 0);
|
|
12342
|
+
tail.writeUInt16BE(q.qclass, 2);
|
|
12343
|
+
return Buffer.concat([encodeName(q.name), tail]);
|
|
12344
|
+
}),
|
|
12345
|
+
...[...m.answers, ...additionals].map((r) => {
|
|
12346
|
+
const data = rdata(r);
|
|
12347
|
+
const fixed = Buffer.alloc(10);
|
|
12348
|
+
fixed.writeUInt16BE(r.type, 0);
|
|
12349
|
+
fixed.writeUInt16BE(CLASS_IN | (r.flush ? CACHE_FLUSH : 0), 2);
|
|
12350
|
+
fixed.writeUInt32BE(r.ttl, 4);
|
|
12351
|
+
fixed.writeUInt16BE(data.length, 8);
|
|
12352
|
+
return Buffer.concat([encodeName(r.name), fixed, data]);
|
|
12353
|
+
})
|
|
12354
|
+
];
|
|
12355
|
+
return Buffer.concat([header, ...body]);
|
|
12356
|
+
}
|
|
12357
|
+
function readName(buf, offset) {
|
|
12358
|
+
const name = [];
|
|
12359
|
+
let pos = offset;
|
|
12360
|
+
let next = -1;
|
|
12361
|
+
let size = 1;
|
|
12362
|
+
for (; ; ) {
|
|
12363
|
+
if (pos >= buf.length) throw new Error("DNS name out of bounds");
|
|
12364
|
+
const len = buf[pos];
|
|
12365
|
+
if ((len & 192) === 192) {
|
|
12366
|
+
if (pos + 1 >= buf.length) throw new Error("DNS pointer out of bounds");
|
|
12367
|
+
const target = (len & 63) << 8 | buf[pos + 1];
|
|
12368
|
+
if (target >= pos) throw new Error("DNS pointer loop");
|
|
12369
|
+
if (next < 0) next = pos + 2;
|
|
12370
|
+
pos = target;
|
|
12371
|
+
continue;
|
|
12372
|
+
}
|
|
12373
|
+
if (len & 192) throw new Error("Invalid DNS label type");
|
|
12374
|
+
if (len === 0) return { name, next: next < 0 ? pos + 1 : next };
|
|
12375
|
+
if (pos + 1 + len > buf.length) throw new Error("DNS label out of bounds");
|
|
12376
|
+
if ((size += len + 1) > 255) throw new Error("DNS name too long");
|
|
12377
|
+
name.push(buf.toString("utf8", pos + 1, pos + 1 + len));
|
|
12378
|
+
pos += 1 + len;
|
|
12379
|
+
}
|
|
12380
|
+
}
|
|
12381
|
+
function need(buf, end) {
|
|
12382
|
+
if (end > buf.length) throw new Error("DNS message truncated");
|
|
12383
|
+
}
|
|
12384
|
+
function readRecord$1(buf, offset) {
|
|
12385
|
+
const { name, next } = readName(buf, offset);
|
|
12386
|
+
need(buf, next + 10);
|
|
12387
|
+
const type2 = buf.readUInt16BE(next);
|
|
12388
|
+
const rclass = buf.readUInt16BE(next + 2);
|
|
12389
|
+
const ttl = buf.readUInt32BE(next + 4);
|
|
12390
|
+
const start = next + 10;
|
|
12391
|
+
const end = start + buf.readUInt16BE(next + 8);
|
|
12392
|
+
need(buf, end);
|
|
12393
|
+
const r = { name, type: type2, ttl, flush: (rclass & CACHE_FLUSH) !== 0 };
|
|
12394
|
+
if (type2 === TYPE.PTR) r.target = readName(buf, start).name;
|
|
12395
|
+
if (type2 === TYPE.SRV) {
|
|
12396
|
+
need(buf, start + 6);
|
|
12397
|
+
r.port = buf.readUInt16BE(start + 4);
|
|
12398
|
+
r.target = readName(buf, start + 6).name;
|
|
12399
|
+
}
|
|
12400
|
+
if (type2 === TYPE.TXT) {
|
|
12401
|
+
r.strings = [];
|
|
12402
|
+
for (let p = start; p < end; p += 1 + buf[p]) {
|
|
12403
|
+
need(buf, p + 1 + buf[p]);
|
|
12404
|
+
r.strings.push(buf.toString("utf8", p + 1, p + 1 + buf[p]));
|
|
12405
|
+
}
|
|
12406
|
+
}
|
|
12407
|
+
if (type2 === TYPE.A && end - start === 4) r.address = [...buf.subarray(start, end)].join(".");
|
|
12408
|
+
if (type2 === TYPE.AAAA && end - start === 16)
|
|
12409
|
+
r.address = Array.from({ length: 8 }, (_, i) => buf.readUInt16BE(start + i * 2).toString(16)).join(":");
|
|
12410
|
+
return { record: r, next: end };
|
|
12411
|
+
}
|
|
12412
|
+
function parseMessage(buf) {
|
|
12413
|
+
need(buf, 12);
|
|
12414
|
+
const count = (i) => buf.readUInt16BE(4 + i * 2);
|
|
12415
|
+
const m = { id: buf.readUInt16BE(0), flags: buf.readUInt16BE(2), questions: [], answers: [], additionals: [] };
|
|
12416
|
+
let pos = 12;
|
|
12417
|
+
for (let i = 0; i < count(0); i++) {
|
|
12418
|
+
const { name, next } = readName(buf, pos);
|
|
12419
|
+
need(buf, next + 4);
|
|
12420
|
+
m.questions.push({ name, type: buf.readUInt16BE(next), qclass: buf.readUInt16BE(next + 2) });
|
|
12421
|
+
pos = next + 4;
|
|
12422
|
+
}
|
|
12423
|
+
if (!(m.flags & QR)) return m;
|
|
12424
|
+
for (let i = 0; i < count(1) + count(2) + count(3); i++) {
|
|
12425
|
+
const { record, next } = readRecord$1(buf, pos);
|
|
12426
|
+
(i < count(1) ? m.answers : m.additionals).push(record);
|
|
12427
|
+
pos = next;
|
|
12428
|
+
}
|
|
12429
|
+
return m;
|
|
12430
|
+
}
|
|
12431
|
+
const GROUP = "224.0.0.251";
|
|
12432
|
+
const PORT = 5353;
|
|
12433
|
+
function lanAddresses() {
|
|
12434
|
+
const all = Object.entries(os.networkInterfaces()).filter(([name]) => !/^(utun|awdl|llw)/.test(name)).flatMap(([, addresses]) => addresses ?? []).filter((a) => !a.internal && !/^fe80:/i.test(a.address));
|
|
12435
|
+
const of = (family) => [...new Set(all.filter((a) => a.family === family).map((a) => a.address))];
|
|
12436
|
+
return { v4: of("IPv4"), v6: of("IPv6") };
|
|
12437
|
+
}
|
|
12438
|
+
const stderrLog = (line) => process.stderr.write(line + "\n");
|
|
12439
|
+
function advertise(ad, log = stderrLog) {
|
|
12440
|
+
const instance = instanceLabel(ad.name, ad.id);
|
|
12441
|
+
const current = (ttl) => records({ ...ad, ...(ad.addresses ?? lanAddresses)() }, ttl);
|
|
12442
|
+
const timers = [];
|
|
12443
|
+
let closing;
|
|
12444
|
+
let closed = false;
|
|
12445
|
+
let sendFailed = false;
|
|
12446
|
+
const socket = createSocket({ type: "udp4", reuseAddr: true, reusePort: process.platform === "linux" });
|
|
12447
|
+
const stop2 = () => {
|
|
12448
|
+
if (closed) return;
|
|
12449
|
+
closed = true;
|
|
12450
|
+
timers.forEach(clearTimeout);
|
|
12451
|
+
try {
|
|
12452
|
+
socket.close();
|
|
12453
|
+
} catch {
|
|
12454
|
+
}
|
|
12455
|
+
};
|
|
12456
|
+
const fail = (error) => {
|
|
12457
|
+
if (closed) return;
|
|
12458
|
+
log(`mDNS advertising disabled: ${error.message}`);
|
|
12459
|
+
stop2();
|
|
12460
|
+
};
|
|
12461
|
+
const sendFailure = (error) => {
|
|
12462
|
+
if (!sendFailed) log(`mDNS send failed: ${error.message}`);
|
|
12463
|
+
sendFailed = true;
|
|
12464
|
+
};
|
|
12465
|
+
const send = (packet, port2 = PORT, address = GROUP, done) => {
|
|
12466
|
+
if (closed) return done?.();
|
|
12467
|
+
try {
|
|
12468
|
+
socket.send(packet, port2, address, (error) => {
|
|
12469
|
+
if (error) sendFailure(error);
|
|
12470
|
+
done?.();
|
|
12471
|
+
});
|
|
12472
|
+
} catch (error) {
|
|
12473
|
+
sendFailure(error);
|
|
12474
|
+
done?.();
|
|
12475
|
+
}
|
|
12476
|
+
};
|
|
12477
|
+
const announce = () => send(encodeMessage({ answers: current() }));
|
|
12478
|
+
const onMessage = (packet, from) => {
|
|
12479
|
+
try {
|
|
12480
|
+
const query = parseMessage(packet);
|
|
12481
|
+
if (query.flags & 32768) return;
|
|
12482
|
+
const reply = answer(query.questions, current());
|
|
12483
|
+
if (!reply) return;
|
|
12484
|
+
if (from.port === PORT) return send(encodeMessage(reply));
|
|
12485
|
+
const legacy = (r) => ({ ...r, ttl: Math.min(r.ttl, 10), flush: false });
|
|
12486
|
+
send(
|
|
12487
|
+
encodeMessage({
|
|
12488
|
+
id: query.id,
|
|
12489
|
+
flags: FLAGS_RESPONSE,
|
|
12490
|
+
questions: query.questions,
|
|
12491
|
+
answers: reply.answers.map(legacy),
|
|
12492
|
+
additionals: reply.additionals.map(legacy)
|
|
12493
|
+
}),
|
|
12494
|
+
from.port,
|
|
12495
|
+
from.address
|
|
12496
|
+
);
|
|
12497
|
+
} catch {
|
|
12498
|
+
}
|
|
12499
|
+
};
|
|
12500
|
+
socket.on("error", fail);
|
|
12501
|
+
socket.on("message", onMessage);
|
|
12502
|
+
try {
|
|
12503
|
+
socket.bind({ port: PORT, address: "0.0.0.0" }, () => {
|
|
12504
|
+
try {
|
|
12505
|
+
socket.setMulticastTTL(255);
|
|
12506
|
+
socket.setMulticastLoopback(true);
|
|
12507
|
+
} catch (error) {
|
|
12508
|
+
return fail(error);
|
|
12509
|
+
}
|
|
12510
|
+
for (const address of lanAddresses().v4) {
|
|
12511
|
+
try {
|
|
12512
|
+
socket.addMembership(GROUP, address);
|
|
12513
|
+
} catch {
|
|
12514
|
+
}
|
|
12515
|
+
}
|
|
12516
|
+
announce();
|
|
12517
|
+
for (const delay2 of [1e3, 2e3]) timers.push(setTimeout(announce, delay2).unref());
|
|
12518
|
+
});
|
|
12519
|
+
} catch (error) {
|
|
12520
|
+
fail(error);
|
|
12521
|
+
}
|
|
12522
|
+
return {
|
|
12523
|
+
instance,
|
|
12524
|
+
close: () => closing ??= new Promise((resolve) => {
|
|
12525
|
+
if (closed) return resolve();
|
|
12526
|
+
socket.once("close", resolve);
|
|
12527
|
+
timers.forEach(clearTimeout);
|
|
12528
|
+
send(encodeMessage({ answers: current(0) }), PORT, GROUP, stop2);
|
|
12529
|
+
})
|
|
12530
|
+
};
|
|
12531
|
+
}
|
|
12137
12532
|
const dataDirFor = (root, env = process.env) => {
|
|
12138
12533
|
const directory = setting("DATA_DIR", env);
|
|
12139
12534
|
return directory ? path.resolve(directory) : workspaceDataDir(root);
|
|
@@ -12144,7 +12539,7 @@ const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
|
12144
12539
|
function launchUrl(daemon, file) {
|
|
12145
12540
|
const params = new URLSearchParams({ pair: daemon.pairingCode });
|
|
12146
12541
|
if (file) params.set("open", file);
|
|
12147
|
-
return `http://${daemon.host}:${daemon.port}/#${params}`;
|
|
12542
|
+
return `http://${localHost(daemon.host)}:${daemon.port}/#${params}`;
|
|
12148
12543
|
}
|
|
12149
12544
|
function browserCommand(url, platform) {
|
|
12150
12545
|
if (platform === "darwin") return { command: "open", args: [url] };
|
|
@@ -12180,7 +12575,7 @@ function running(pid) {
|
|
|
12180
12575
|
async function serving(daemon) {
|
|
12181
12576
|
try {
|
|
12182
12577
|
const response = await fetch(
|
|
12183
|
-
`http://${daemon.host}:${daemon.port}/api/health`,
|
|
12578
|
+
`http://${localHost(daemon.host)}:${daemon.port}/api/health`,
|
|
12184
12579
|
{ signal: AbortSignal.timeout(2e3) }
|
|
12185
12580
|
);
|
|
12186
12581
|
return response.ok && (await response.json())?.protocol === 1;
|
|
@@ -12193,24 +12588,6 @@ async function liveDaemon(dataDir) {
|
|
|
12193
12588
|
if (!daemon || !running(daemon.pid)) return void 0;
|
|
12194
12589
|
return await serving(daemon) ? daemon : void 0;
|
|
12195
12590
|
}
|
|
12196
|
-
async function available(host, port2) {
|
|
12197
|
-
const probe = net.createServer();
|
|
12198
|
-
try {
|
|
12199
|
-
await new Promise((resolve, reject) => {
|
|
12200
|
-
probe.once("error", reject);
|
|
12201
|
-
probe.listen(port2, host, () => {
|
|
12202
|
-
probe.removeListener("error", reject);
|
|
12203
|
-
resolve();
|
|
12204
|
-
});
|
|
12205
|
-
});
|
|
12206
|
-
return true;
|
|
12207
|
-
} catch {
|
|
12208
|
-
return false;
|
|
12209
|
-
} finally {
|
|
12210
|
-
await new Promise((resolve) => probe.close(() => resolve()));
|
|
12211
|
-
}
|
|
12212
|
-
}
|
|
12213
|
-
const DEFAULT_PORT = 9277;
|
|
12214
12591
|
const DEFAULT_HOST = "127.0.0.1";
|
|
12215
12592
|
const READY_TIMEOUT = 6e4;
|
|
12216
12593
|
const STOP_TIMEOUT = 1e4;
|
|
@@ -12222,10 +12599,16 @@ already serving it, then opens the paired editor in the default browser.
|
|
|
12222
12599
|
path File or directory to open (default: $OXBIT_WORKSPACE or .)
|
|
12223
12600
|
|
|
12224
12601
|
Options
|
|
12225
|
-
-p, --port <number> Port to serve on (default: $PORT or
|
|
12602
|
+
-p, --port <number> Port to serve on (default: $PORT or a free port)
|
|
12226
12603
|
--host <address> Address to bind (default: $HOST or ${DEFAULT_HOST})
|
|
12604
|
+
--lan Serve on every network interface, allow the iOS app and
|
|
12605
|
+
LAN origins, and advertise the runtime over Bonjour
|
|
12227
12606
|
--desktop Open in the installed Oxbit desktop application
|
|
12228
12607
|
--no-open Leave the browser closed
|
|
12608
|
+
--keep-alive <duration>
|
|
12609
|
+
Stop after this long with no connected client: 75s, 15m,
|
|
12610
|
+
1h, 8h, forever, or milliseconds (default:
|
|
12611
|
+
$OXBIT_KEEP_ALIVE or forever)
|
|
12229
12612
|
-f, --foreground Serve in this terminal and stay attached
|
|
12230
12613
|
--stop Stop the runtime serving the workspace
|
|
12231
12614
|
--status Report the runtime serving the workspace
|
|
@@ -12241,7 +12624,9 @@ function tokenize(argv) {
|
|
|
12241
12624
|
desktop: { type: "boolean" },
|
|
12242
12625
|
port: { type: "string", short: "p" },
|
|
12243
12626
|
host: { type: "string" },
|
|
12627
|
+
lan: { type: "boolean" },
|
|
12244
12628
|
"no-open": { type: "boolean" },
|
|
12629
|
+
"keep-alive": { type: "string" },
|
|
12245
12630
|
foreground: { type: "boolean", short: "f" },
|
|
12246
12631
|
stop: { type: "boolean" },
|
|
12247
12632
|
status: { type: "boolean" },
|
|
@@ -12254,6 +12639,13 @@ function tokenize(argv) {
|
|
|
12254
12639
|
}
|
|
12255
12640
|
}
|
|
12256
12641
|
const text = (value) => typeof value === "string" ? value : void 0;
|
|
12642
|
+
const units = { "": 1, ms: 1, s: 1e3, m: 6e4, h: 36e5 };
|
|
12643
|
+
function parseDuration(value) {
|
|
12644
|
+
if (value.trim().toLowerCase() === "forever") return 0;
|
|
12645
|
+
const match = /^(\d+)(ms|s|m|h)?$/.exec(value.trim().toLowerCase());
|
|
12646
|
+
const duration = match ? Number(match[1]) * units[match[2] ?? ""] : NaN;
|
|
12647
|
+
return Number.isSafeInteger(duration) ? duration : void 0;
|
|
12648
|
+
}
|
|
12257
12649
|
function parse(argv, env = process.env) {
|
|
12258
12650
|
const parsed = tokenize(argv);
|
|
12259
12651
|
if ("error" in parsed) return parsed;
|
|
@@ -12262,18 +12654,28 @@ function parse(argv, env = process.env) {
|
|
|
12262
12654
|
return {
|
|
12263
12655
|
error: `Expected at most one path, received ${positionals.length}`
|
|
12264
12656
|
};
|
|
12265
|
-
if (values.desktop && (values.stop || values.status || values.foreground || values["no-open"] || values.port || values.host))
|
|
12657
|
+
if (values.desktop && (values.stop || values.status || values.foreground || values["no-open"] || values.port || values.host || values["keep-alive"] || values.lan))
|
|
12266
12658
|
return { error: "--desktop cannot be combined with browser runtime options" };
|
|
12659
|
+
if (values.lan && values.host)
|
|
12660
|
+
return { error: "--lan binds every interface and cannot be combined with --host" };
|
|
12267
12661
|
const requested = text(values.port) ?? env.PORT;
|
|
12268
|
-
const port2 = requested === void 0 ?
|
|
12269
|
-
if (
|
|
12662
|
+
const port2 = requested === void 0 ? 0 : Number(requested);
|
|
12663
|
+
if (!Number.isInteger(port2) || port2 < 0 || port2 > 65535)
|
|
12270
12664
|
return {
|
|
12271
12665
|
error: `Port must be a whole number between 0 and 65535, received "${requested}"`
|
|
12272
12666
|
};
|
|
12667
|
+
const lifetime = text(values["keep-alive"]) ?? setting("KEEP_ALIVE", env);
|
|
12668
|
+
const keepAlive = lifetime === void 0 ? 0 : parseDuration(lifetime);
|
|
12669
|
+
if (keepAlive === void 0)
|
|
12670
|
+
return {
|
|
12671
|
+
error: `Keep-alive must be a duration such as 75s, 15m, 1h, forever, or milliseconds, received "${lifetime}"`
|
|
12672
|
+
};
|
|
12273
12673
|
return {
|
|
12274
12674
|
target: positionals[0] ?? setting("WORKSPACE", env) ?? ".",
|
|
12275
12675
|
port: port2,
|
|
12276
|
-
|
|
12676
|
+
keepAlive,
|
|
12677
|
+
host: values.lan ? "0.0.0.0" : text(values.host) ?? env.HOST ?? DEFAULT_HOST,
|
|
12678
|
+
lan: values.lan === true,
|
|
12277
12679
|
open: values["no-open"] !== true,
|
|
12278
12680
|
foreground: values.foreground === true,
|
|
12279
12681
|
action: values.help ? "help" : values.version ? "version" : values.stop ? "stop" : values.status ? "status" : values.desktop ? "desktop" : "open"
|
|
@@ -12293,9 +12695,30 @@ async function resolveTarget(target, cwd) {
|
|
|
12293
12695
|
const root = file.startsWith(here2 + path.sep) ? here2 : path.dirname(file);
|
|
12294
12696
|
return { root, file: path.relative(root, file).split(path.sep).join("/") };
|
|
12295
12697
|
}
|
|
12698
|
+
function serveFailure(error, host, port2) {
|
|
12699
|
+
const failure2 = error;
|
|
12700
|
+
const address = `${host}:${port2 ?? 0}`;
|
|
12701
|
+
if (failure2.code === "EADDRINUSE")
|
|
12702
|
+
return `Cannot serve on ${address}: the port is in use. Stop the process holding it or choose another with --port.`;
|
|
12703
|
+
if (failure2.code === "EACCES" || failure2.code === "EPERM")
|
|
12704
|
+
return `Cannot serve on ${address}: permission denied. Choose a port above 1023 or another --host.`;
|
|
12705
|
+
if (failure2.code === "EADDRNOTAVAIL")
|
|
12706
|
+
return `Cannot serve on ${address}: the address is not available on this machine.`;
|
|
12707
|
+
return `The runtime could not start: ${failure2.message ?? String(error)}`;
|
|
12708
|
+
}
|
|
12296
12709
|
async function serve(invocation, target, dataDir, env) {
|
|
12710
|
+
try {
|
|
12711
|
+
return await serveRuntime(invocation, target, dataDir, env);
|
|
12712
|
+
} catch (error) {
|
|
12713
|
+
process.stderr.write(serveFailure(error, invocation.host, invocation.port) + "\n");
|
|
12714
|
+
return 1;
|
|
12715
|
+
}
|
|
12716
|
+
}
|
|
12717
|
+
async function serveRuntime(invocation, target, dataDir, env) {
|
|
12297
12718
|
const host = invocation.host;
|
|
12298
|
-
const port2 = invocation.port
|
|
12719
|
+
const port2 = invocation.port;
|
|
12720
|
+
let stop2 = () => {
|
|
12721
|
+
};
|
|
12299
12722
|
const runtime = await createRuntime({
|
|
12300
12723
|
root: target.root,
|
|
12301
12724
|
port: port2,
|
|
@@ -12304,9 +12727,16 @@ async function serve(invocation, target, dataDir, env) {
|
|
|
12304
12727
|
pairingCode: setting("PAIRING_CODE", env),
|
|
12305
12728
|
pairingAttemptsPerMinute: setting("PAIRING_ATTEMPTS_PER_MINUTE", env) === void 0 ? void 0 : Number(setting("PAIRING_ATTEMPTS_PER_MINUTE", env)),
|
|
12306
12729
|
origins: setting("ORIGINS", env)?.split(",").filter(Boolean),
|
|
12307
|
-
webRoot: setting("WEB_ROOT", env)
|
|
12730
|
+
webRoot: setting("WEB_ROOT", env),
|
|
12731
|
+
...invocation.keepAlive ? { idleShutdown: { afterMs: invocation.keepAlive, onIdle: () => stop2() } } : {}
|
|
12308
12732
|
});
|
|
12733
|
+
let advertiser;
|
|
12734
|
+
if (invocation.lan) {
|
|
12735
|
+
const { id, name, version } = runtime.identity;
|
|
12736
|
+
advertiser = advertise({ id, name, version, port: runtime.port });
|
|
12737
|
+
}
|
|
12309
12738
|
const daemon = {
|
|
12739
|
+
id: runtime.identity.id,
|
|
12310
12740
|
pid: process.pid,
|
|
12311
12741
|
host,
|
|
12312
12742
|
port: runtime.port,
|
|
@@ -12317,33 +12747,47 @@ async function serve(invocation, target, dataDir, env) {
|
|
|
12317
12747
|
await writeRecord(dataDir, daemon);
|
|
12318
12748
|
const url = launchUrl(daemon, target.file);
|
|
12319
12749
|
process.stdout.write(
|
|
12320
|
-
`Oxbit runtime: http://${host}:${runtime.port}
|
|
12750
|
+
(invocation.lan ? networkSummary(daemon) : `Oxbit runtime: http://${host}:${runtime.port}
|
|
12321
12751
|
Workspace: ${runtime.root}
|
|
12322
12752
|
Owner pairing code: ${runtime.pairingCode}
|
|
12323
|
-
|
|
12753
|
+
Runtime id: ${runtime.identity.id}
|
|
12754
|
+
`) + `Open: ${url}
|
|
12324
12755
|
`
|
|
12325
12756
|
);
|
|
12326
12757
|
if (invocation.open) launchBrowser(url);
|
|
12327
12758
|
await new Promise((resolve) => {
|
|
12328
12759
|
const shutdown = () => {
|
|
12329
|
-
void runtime.close().then(() => removeRecord(dataDir)).then(resolve, resolve);
|
|
12760
|
+
void Promise.resolve(advertiser?.close()).then(() => runtime.close()).then(() => removeRecord(dataDir)).then(resolve, resolve);
|
|
12761
|
+
};
|
|
12762
|
+
stop2 = () => {
|
|
12763
|
+
process.stdout.write(`No client connected for ${invocation.keepAlive} ms; stopping
|
|
12764
|
+
`);
|
|
12765
|
+
shutdown();
|
|
12330
12766
|
};
|
|
12331
12767
|
process.on("SIGINT", shutdown);
|
|
12332
12768
|
process.on("SIGTERM", shutdown);
|
|
12333
12769
|
});
|
|
12334
12770
|
return 0;
|
|
12335
12771
|
}
|
|
12772
|
+
function networkSummary(daemon, address = lanUrl(daemon.port)) {
|
|
12773
|
+
return `Oxbit runtime on your network: ${address ?? `http://0.0.0.0:${daemon.port} (no LAN address found)`}
|
|
12774
|
+
Workspace: ${daemon.root}
|
|
12775
|
+
Owner pairing code: ${daemon.pairingCode}
|
|
12776
|
+
Runtime id: ${daemon.id}
|
|
12777
|
+
`;
|
|
12778
|
+
}
|
|
12336
12779
|
async function detach(invocation, target, dataDir, entry) {
|
|
12337
12780
|
await fs.mkdir(dataDir, { recursive: true, mode: 448 });
|
|
12338
12781
|
const log = await fs.open(logFile(dataDir), "a", 384);
|
|
12339
|
-
const args = [entry, "--foreground", "--no-open", "--host", invocation.host];
|
|
12340
|
-
if (invocation.port
|
|
12341
|
-
|
|
12782
|
+
const args = [entry, "--foreground", "--no-open", ...invocation.lan ? ["--lan"] : ["--host", invocation.host]];
|
|
12783
|
+
if (invocation.port) args.push("--port", String(invocation.port));
|
|
12784
|
+
args.push("--keep-alive", invocation.keepAlive ? String(invocation.keepAlive) : "forever");
|
|
12342
12785
|
args.push(target.root);
|
|
12343
12786
|
const env = { ...process.env, OXBIT_DATA_DIR: dataDir };
|
|
12344
12787
|
delete env.PORT;
|
|
12345
12788
|
delete env.HOST;
|
|
12346
12789
|
delete env.OXBIT_WORKSPACE;
|
|
12790
|
+
delete env.OXBIT_KEEP_ALIVE;
|
|
12347
12791
|
const child = spawn(process.execPath, args, {
|
|
12348
12792
|
detached: true,
|
|
12349
12793
|
stdio: ["ignore", log.fd, log.fd],
|
|
@@ -12401,20 +12845,13 @@ async function status(dataDir, root) {
|
|
|
12401
12845
|
process.stdout.write(
|
|
12402
12846
|
`Workspace: ${daemon.root}
|
|
12403
12847
|
Runtime: http://${daemon.host}:${daemon.port}
|
|
12404
|
-
|
|
12848
|
+
${daemon.id ? `Runtime id: ${daemon.id}
|
|
12849
|
+
` : ""}Process: ${daemon.pid}
|
|
12405
12850
|
Open: ${launchUrl(daemon)}
|
|
12406
12851
|
`
|
|
12407
12852
|
);
|
|
12408
12853
|
return 0;
|
|
12409
12854
|
}
|
|
12410
|
-
async function version() {
|
|
12411
|
-
try {
|
|
12412
|
-
const manifest = fileURLToPath(new URL("../package.json", import.meta.url));
|
|
12413
|
-
return JSON.parse(await fs.readFile(manifest, "utf8")).version;
|
|
12414
|
-
} catch {
|
|
12415
|
-
return "unknown";
|
|
12416
|
-
}
|
|
12417
|
-
}
|
|
12418
12855
|
async function run(argv, context = {}) {
|
|
12419
12856
|
const {
|
|
12420
12857
|
env = process.env,
|
|
@@ -12433,7 +12870,7 @@ ${USAGE}`);
|
|
|
12433
12870
|
return 0;
|
|
12434
12871
|
}
|
|
12435
12872
|
if (invocation.action === "version") {
|
|
12436
|
-
process.stdout.write(`${
|
|
12873
|
+
process.stdout.write(`${runtimeVersion()}
|
|
12437
12874
|
`);
|
|
12438
12875
|
return 0;
|
|
12439
12876
|
}
|
|
@@ -12451,6 +12888,11 @@ ${USAGE}`);
|
|
|
12451
12888
|
if (invocation.action === "status") return status(dataDir, target.root);
|
|
12452
12889
|
if (invocation.foreground) return serve(invocation, target, dataDir, env);
|
|
12453
12890
|
const existing = await liveDaemon(dataDir);
|
|
12891
|
+
if (existing && invocation.lan && !wildcardHost(existing.host)) {
|
|
12892
|
+
process.stderr.write(`A runtime already serves ${existing.root} on ${existing.host}. Run oxbit --stop, then oxbit --lan.
|
|
12893
|
+
`);
|
|
12894
|
+
return 1;
|
|
12895
|
+
}
|
|
12454
12896
|
let daemon;
|
|
12455
12897
|
if (existing) daemon = existing;
|
|
12456
12898
|
else
|
|
@@ -12462,7 +12904,8 @@ ${USAGE}`);
|
|
|
12462
12904
|
return 1;
|
|
12463
12905
|
}
|
|
12464
12906
|
const url = launchUrl(daemon, target.file);
|
|
12465
|
-
process.stdout.write(`${daemon
|
|
12907
|
+
process.stdout.write(invocation.lan ? `${networkSummary(daemon)}Open: ${url}
|
|
12908
|
+
` : `${daemon.root}
|
|
12466
12909
|
${url}
|
|
12467
12910
|
`);
|
|
12468
12911
|
if (invocation.open) launchBrowser(url);
|