@oxbit/cli 0.4.1 → 0.6.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.
@@ -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
- create(owner, connection, cols = 100, rows = 30) {
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");
@@ -677,9 +703,11 @@ const languages = [
677
703
  { id: "html", title: "HTML", extensions: ["html", "htm"], syntax: "html", providers: ["html"], badge: "<>" },
678
704
  { id: "vue", title: "Vue", extensions: ["vue"], syntax: "vue", providers: ["vue"], badge: "V" },
679
705
  { id: "astro", title: "Astro", extensions: ["astro"], syntax: "astro", providers: ["astro"], badge: "A" },
680
- { id: "dockerfile", title: "Dockerfile", extensions: ["dockerfile"], filenames: ["Dockerfile"], patterns: ["Dockerfile.*"], syntax: "dockerfile", providers: ["dockerfile"], badge: "D" },
681
- { id: "shellscript", title: "Bash", extensions: ["sh", "bash"], filenames: [".bashrc", ".bash_profile", ".bash_login", ".bash_logout", ".bash_aliases", ".profile"], shebangs: ["bash", "sh"], syntax: "shell", providers: ["bash"], badge: "$" },
706
+ { id: "dockerfile", title: "Dockerfile", extensions: ["dockerfile", "containerfile"], filenames: ["Dockerfile", "Containerfile"], patterns: ["Dockerfile.*", "Containerfile.*"], syntax: "dockerfile", providers: ["dockerfile"], badge: "D" },
707
+ { id: "shellscript", title: "Bash", extensions: ["sh", "bash"], filenames: [".bashrc", ".bash_profile", ".bash_login", ".bash_logout", ".bash_aliases", ".profile"], shebangs: ["bash", "sh", "dash", "ksh"], syntax: "shell", providers: ["bash"], badge: "$" },
682
708
  { id: "zsh", title: "Zsh", extensions: ["zsh"], filenames: [".zshrc", ".zshenv", ".zprofile", ".zlogin", ".zlogout"], shebangs: ["zsh"], syntax: "zsh", providers: ["local"], badge: "%" },
709
+ { id: "yaml", title: "YAML", extensions: ["yaml", "yml"], syntax: "yaml", providers: ["yaml"], badge: "Y" },
710
+ { id: "python", title: "Python", extensions: ["py", "pyi", "pyw"], shebangs: ["python", "python3"], syntax: "python", providers: ["basedpyright", "ruff"], badge: "Py" },
683
711
  { id: "json", title: "JSON", extensions: ["json"], syntax: "json", providers: ["json"], badge: "{}" },
684
712
  { id: "jsonc", title: "JSON with Comments", extensions: ["jsonc"], syntax: "jsonc", providers: ["json"], badge: "{}" },
685
713
  { id: "jsonl", title: "JSON Lines", extensions: ["jsonl", "ndjson"], syntax: "jsonl", providers: ["local"], badge: "{}" },
@@ -793,11 +821,11 @@ const $id$1 = "https://oxbit.dev/schemas/settings.v1.schema.json";
793
821
  const title$2 = "Oxbit Settings";
794
822
  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
823
  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."}}`);
824
+ 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
825
  const propertyNames = { "anyOf": [{ "not": { "pattern": "^\\[.*\\]$" } }, { "pattern": "^\\[[^\\[\\]]+\\]$" }] };
798
826
  const patternProperties = { "^\\[[^\\[\\]]+\\]$": { "$ref": "#/definitions/languageOverrides" } };
799
827
  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": "^\\[.*\\]$" } } } };
828
+ 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
829
  const schema = {
802
830
  $schema: $schema$2,
803
831
  $id: $id$1,
@@ -3016,10 +3044,10 @@ class TaskWorktrees {
3016
3044
  async records() {
3017
3045
  const text2 = await readOptional(this.file);
3018
3046
  if (!text2) return [];
3019
- const records = JSON.parse(text2);
3020
- if (!Array.isArray(records))
3047
+ const records2 = JSON.parse(text2);
3048
+ if (!Array.isArray(records2))
3021
3049
  throw new RpcError("INVALID_STATE", "Invalid worktree registry");
3022
- for (const record of records) {
3050
+ for (const record of records2) {
3023
3051
  this.validate(record);
3024
3052
  if (!["creating", "removing"].includes(record.state)) continue;
3025
3053
  let active = false;
@@ -3036,13 +3064,13 @@ class TaskWorktrees {
3036
3064
  record.message = "Worktree operation was interrupted. Inspect its files and retry the remaining phase explicitly.";
3037
3065
  }
3038
3066
  }
3039
- return records;
3067
+ return records2;
3040
3068
  }
3041
- async persist(records) {
3069
+ async persist(records2) {
3042
3070
  const text2 = await readOptional(this.file);
3043
3071
  await atomicWrite(
3044
3072
  this.file,
3045
- JSON.stringify(records, null, 2),
3073
+ JSON.stringify(records2, null, 2),
3046
3074
  text2 === null ? null : createHash("sha256").update(text2).digest("hex")
3047
3075
  );
3048
3076
  }
@@ -3111,7 +3139,7 @@ ${command}`,
3111
3139
  void 0,
3112
3140
  signal
3113
3141
  );
3114
- const catalog = await this.store.catalog(), records = await this.records(), id = randomUUID();
3142
+ const catalog = await this.store.catalog(), records2 = await this.records(), id = randomUUID();
3115
3143
  const record = {
3116
3144
  id,
3117
3145
  path: path.join(this.store.projectHome, "worktrees", id),
@@ -3123,8 +3151,8 @@ ${command}`,
3123
3151
  env: catalog.env,
3124
3152
  sourceDir: this.store.root
3125
3153
  };
3126
- records.push(record);
3127
- await this.persist(records);
3154
+ records2.push(record);
3155
+ await this.persist(records2);
3128
3156
  await fs.mkdir(record.preinitDir, { recursive: true, mode: 448 });
3129
3157
  await fs.mkdir(path.dirname(record.path), {
3130
3158
  recursive: true,
@@ -3141,12 +3169,12 @@ ${command}`,
3141
3169
  );
3142
3170
  await this.phase(record, "init", owner, signal);
3143
3171
  record.state = "ready";
3144
- await this.persist(records);
3172
+ await this.persist(records2);
3145
3173
  return record;
3146
3174
  } catch (error) {
3147
3175
  record.state = "init-failed";
3148
3176
  record.message = error.message;
3149
- await this.persist(records);
3177
+ await this.persist(records2);
3150
3178
  throw new RpcError(
3151
3179
  "WORKTREE_FAILED",
3152
3180
  `${record.message}. The worktree record is retained for inspection/retry.`,
@@ -3167,7 +3195,7 @@ ${command}`,
3167
3195
  return fileLock(
3168
3196
  path.join(this.store.projectHome, "worktree-operation"),
3169
3197
  async () => {
3170
- const records = await this.records(), record = records.find((item) => item.id === id);
3198
+ const records2 = await this.records(), record = records2.find((item) => item.id === id);
3171
3199
  if (!record || record.state !== "init-failed")
3172
3200
  throw new RpcError(
3173
3201
  "INVALID_STATE",
@@ -3188,7 +3216,7 @@ ${command}`,
3188
3216
  record.message = error.message;
3189
3217
  throw error;
3190
3218
  } finally {
3191
- await this.persist(records);
3219
+ await this.persist(records2);
3192
3220
  }
3193
3221
  return record;
3194
3222
  }
@@ -3198,7 +3226,7 @@ ${command}`,
3198
3226
  return fileLock(
3199
3227
  path.join(this.store.projectHome, "worktree-operation"),
3200
3228
  async () => {
3201
- const records = await this.records(), record = records.find((item) => item.id === id);
3229
+ const records2 = await this.records(), record = records2.find((item) => item.id === id);
3202
3230
  if (!record || record.state === "removed")
3203
3231
  throw new RpcError("NOT_FOUND", "Managed worktree was not found");
3204
3232
  this.validate(record);
@@ -3239,7 +3267,7 @@ ${command}`,
3239
3267
  record.state = "removing";
3240
3268
  record.operationPid = process.pid;
3241
3269
  record.message = void 0;
3242
- await this.persist(records);
3270
+ await this.persist(records2);
3243
3271
  let removed = !exists;
3244
3272
  try {
3245
3273
  if (exists) {
@@ -3256,13 +3284,13 @@ ${command}`,
3256
3284
  }
3257
3285
  await this.phase(record, "teardown", owner, signal);
3258
3286
  record.state = "removed";
3259
- await this.persist(records);
3287
+ await this.persist(records2);
3260
3288
  await fs.rm(record.preinitDir, { recursive: true, force: true });
3261
3289
  return { id, removed: true };
3262
3290
  } catch (error) {
3263
3291
  record.state = removed ? "teardown-failed" : previousState === "init-failed" ? "init-failed" : "ready";
3264
3292
  record.message = error.message;
3265
- await this.persist(records);
3293
+ await this.persist(records2);
3266
3294
  throw error;
3267
3295
  }
3268
3296
  }
@@ -3376,9 +3404,9 @@ class Git {
3376
3404
  this.head(signal)
3377
3405
  ]);
3378
3406
  const changes = [];
3379
- const records = raw.stdout.split("\0");
3380
- for (let i = 0; i < records.length; i++) {
3381
- const row = records[i];
3407
+ const records2 = raw.stdout.split("\0");
3408
+ for (let i = 0; i < records2.length; i++) {
3409
+ const row = records2[i];
3382
3410
  if (!row) continue;
3383
3411
  const change = {
3384
3412
  path: row.slice(3),
@@ -3387,7 +3415,7 @@ class Git {
3387
3415
  conflict: conflicted(row[0], row[1])
3388
3416
  };
3389
3417
  if (/[RC]/.test(change.index + change.working))
3390
- change.originalPath = records[++i];
3418
+ change.originalPath = records2[++i];
3391
3419
  changes.push(change);
3392
3420
  }
3393
3421
  const branches = refs.stdout.trim().split("\n").filter(Boolean).map((row) => {
@@ -4468,8 +4496,8 @@ class LanguageServer {
4468
4496
  const companion = this.launchSpec.companion;
4469
4497
  this.companion = new LanguageServer(this.files, (method, params) => {
4470
4498
  if (method === "textDocument/publishDiagnostics") {
4471
- const version2 = this.companion?.versions()[params.uri];
4472
- if (params.version !== void 0 && params.version !== version2) return;
4499
+ const version = this.companion?.versions()[params.uri];
4500
+ if (params.version !== void 0 && params.version !== version) return;
4473
4501
  this.companionDiagnostics.set(params.uri, params.diagnostics ?? []);
4474
4502
  this.emit(method, { ...params, version: this.documents.get(params.uri)?.version, diagnostics: [...this.primaryDiagnostics.get(params.uri) ?? [], ...params.diagnostics ?? []] });
4475
4503
  } else if (method === "window/logMessage" || method === "$/progress") this.emit(method, params);
@@ -4667,7 +4695,8 @@ class LanguageServer {
4667
4695
  const adding = message.method === "client/registerCapability";
4668
4696
  const registrations = adding ? message.params?.registrations : message.params?.unregisterations;
4669
4697
  const syncMethods = ["textDocument/didOpen", "textDocument/didClose", "textDocument/didChange", "textDocument/didSave", "textDocument/willSave", "textDocument/willSaveWaitUntil"];
4670
- const supported = (item) => item && typeof item.id === "string" && (lspCapabilityKeys[item.method] || syncMethods.includes(item.method) || item.method === "workspace/didChangeConfiguration" || item.method === "workspace/didChangeWorkspaceFolders" || item.method === "workspace/didChangeWatchedFiles" && Array.isArray(item.registerOptions?.watchers) && item.registerOptions.watchers.every((watcher) => lspWatchPattern(watcher.globPattern, pathToFileURL(this.options.root ?? this.files.root).href) !== void 0 && (watcher.kind === void 0 || Number.isInteger(watcher.kind) && watcher.kind >= 1 && watcher.kind <= 7)));
4698
+ const watcherShape = (watcher) => (typeof watcher?.globPattern === "string" || typeof watcher?.globPattern?.pattern === "string") && (watcher.kind === void 0 || Number.isInteger(watcher.kind) && watcher.kind >= 1 && watcher.kind <= 7);
4699
+ const supported = (item) => item && typeof item.id === "string" && (lspCapabilityKeys[item.method] || syncMethods.includes(item.method) || item.method === "workspace/didChangeConfiguration" || item.method === "workspace/didChangeWorkspaceFolders" || item.method === "workspace/didChangeWatchedFiles" && Array.isArray(item.registerOptions?.watchers) && item.registerOptions.watchers.every(watcherShape));
4671
4700
  if (!Array.isArray(registrations) || new Set(registrations.map((item) => item?.id)).size !== registrations.length || registrations.some((item) => adding ? !supported(item) || this.registrations.has(item.id) : this.registrations.get(item.id)?.method !== item.method)) {
4672
4701
  this.send({ id: message.id, error: { code: -32602, message: "Unsupported or unknown capability registration" } });
4673
4702
  } else {
@@ -4724,6 +4753,7 @@ class LanguageServer {
4724
4753
  });
4725
4754
  return;
4726
4755
  }
4756
+ if (message.method === "textDocument/publishDiagnostics" && this.launchSpec?.diagnostics) message.params = { ...message.params, diagnostics: this.launchSpec.diagnostics(message.params.diagnostics ?? []) };
4727
4757
  if (message.method === "textDocument/publishDiagnostics" && this.companion) {
4728
4758
  this.primaryDiagnostics.set(message.params.uri, message.params.diagnostics ?? []);
4729
4759
  this.emit(message.method, { ...message.params, diagnostics: [...message.params.diagnostics ?? [], ...this.companionDiagnostics.get(message.params.uri) ?? []] });
@@ -4786,12 +4816,12 @@ class LanguageServer {
4786
4816
  await this.start();
4787
4817
  await this.validate(requestParamsForValidation(method, params), /^(callHierarchy|typeHierarchy)\//.test(method));
4788
4818
  if (method !== "workspace/executeCommand") {
4789
- const uri = params?.textDocument?.uri, doc = this.documents.get(uri), version2 = doc?.version, generation = this.generation;
4819
+ const uri = params?.textDocument?.uri, doc = this.documents.get(uri), version = doc?.version, generation = this.generation;
4790
4820
  const capability = lspCapabilityKeys[method];
4791
4821
  if (capability && !this.effective(uri)[capability]) throw new RpcError("LSP_UNSUPPORTED", `Language server does not support ${method}`);
4792
4822
  if (method === "textDocument/willSaveWaitUntil" && !this.syncOptions(uri).willSaveWaitUntil) return [];
4793
4823
  const result = await this.providerRequest(method, params, signal);
4794
- if (generation !== this.generation || doc && doc.version !== version2) throw new RpcError("CANCELLED", "Language response is obsolete");
4824
+ if (generation !== this.generation || doc && doc.version !== version) throw new RpcError("CANCELLED", "Language response is obsolete");
4795
4825
  return result;
4796
4826
  }
4797
4827
  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);
@@ -5041,8 +5071,31 @@ const serverCatalog = [
5041
5071
  preset("taplo", "Taplo", ["toml"], ["taplo.toml", ".taplo.toml", "Cargo.toml", ".git"]),
5042
5072
  preset("intelephense", "Intelephense", ["php"], ["composer.json", ".git"]),
5043
5073
  preset("laravel", "Laravel", ["php", "blade"], ["artisan"]),
5044
- preset("lemminx", "LemMinX", ["xml"], [".lemminx", "pom.xml", ".git"])
5074
+ preset("lemminx", "LemMinX", ["xml"], [".lemminx", "pom.xml", ".git"]),
5075
+ preset("yaml", "YAML", ["yaml"], [".git"]),
5076
+ preset("basedpyright", "basedpyright", ["python"], ["pyproject.toml", "pyrightconfig.json", "setup.py", "setup.cfg", "requirements.txt", ".git"]),
5077
+ preset("ruff", "Ruff", ["python"], ["pyproject.toml", "ruff.toml", ".ruff.toml", ".git"])
5045
5078
  ];
5079
+ const ruffOwnedPyrightRules = [
5080
+ "reportUndefinedVariable",
5081
+ "reportUnboundVariable",
5082
+ "reportUnsupportedDunderAll",
5083
+ "reportUnusedImport",
5084
+ "reportUnusedVariable",
5085
+ "reportRedeclaration",
5086
+ "reportInvalidStringEscapeSequence",
5087
+ "reportAssertAlwaysTrue",
5088
+ "reportWildcardImportFromLibrary"
5089
+ ];
5090
+ function deferToRuff(spec) {
5091
+ const analysis = spec.settings?.basedpyright?.analysis ?? {};
5092
+ const diagnosticSeverityOverrides = { ...Object.fromEntries(ruffOwnedPyrightRules.map((rule) => [rule, "none"])), ...analysis.diagnosticSeverityOverrides };
5093
+ return {
5094
+ ...spec,
5095
+ settings: { ...spec.settings, basedpyright: { ...spec.settings?.basedpyright, analysis: { ...analysis, diagnosticSeverityOverrides } } },
5096
+ diagnostics: (diagnostics) => diagnostics.filter((item) => item.code !== void 0)
5097
+ };
5098
+ }
5046
5099
  const npmPresets = {
5047
5100
  typescript: ["typescript-language-server", "lib/cli.mjs", ["typescript"]],
5048
5101
  html: ["vscode-langservers-extracted", "bin/vscode-html-language-server"],
@@ -5052,12 +5105,14 @@ const npmPresets = {
5052
5105
  mdx: ["@mdx-js/language-server", "lib/index.js", ["typescript"]],
5053
5106
  dockerfile: ["dockerfile-language-server-nodejs", "bin/docker-langserver"],
5054
5107
  bash: ["bash-language-server", "out/cli.js"],
5055
- intelephense: ["intelephense", "lib/intelephense.js"]
5108
+ intelephense: ["intelephense", "lib/intelephense.js"],
5109
+ yaml: ["yaml-language-server", "bin/yaml-language-server", ["vscode-languageserver-protocol"]],
5110
+ basedpyright: ["basedpyright", "langserver.index.js"]
5056
5111
  };
5057
5112
  async function resolveLaunch(id, root, installer, signal) {
5058
- if (id === "laravel") {
5059
- const binary = await installer.native("laravel", signal);
5060
- return { executable: binary.executable, args: [], version: binary.version };
5113
+ if (id === "laravel" || id === "ruff") {
5114
+ const binary = await installer.native(id, signal);
5115
+ return { executable: binary.executable, args: id === "ruff" ? ["server"] : [], version: binary.version };
5061
5116
  }
5062
5117
  if (id === "marksman" || id === "taplo") {
5063
5118
  const binary = await installer.native(id, signal);
@@ -5121,6 +5176,11 @@ async function resolveLaunch(id, root, installer, signal) {
5121
5176
  spec.settings = { bashIde: { shellcheckPath: shellcheck.executable, shfmt: { path: "" } } };
5122
5177
  }
5123
5178
  if (id === "json") spec.settings = { json: { validate: { enable: true }, schemas: [] } };
5179
+ if (id === "yaml") spec.settings = { yaml: { validate: true, hover: true, completion: true, format: { enable: true }, schemaStore: { enable: true, url: "https://www.schemastore.org/api/json/catalog.json" }, keyOrdering: false } };
5180
+ if (id === "basedpyright") {
5181
+ spec.dependencyRoots = [await fs.realpath(path.join(modules, "basedpyright/dist/typeshed-fallback"))];
5182
+ spec.settings = { basedpyright: { analysis: { typeCheckingMode: "standard", diagnosticMode: "openFilesOnly" } } };
5183
+ }
5124
5184
  if (id === "intelephense") {
5125
5185
  spec.dependencyRoots = [await fs.realpath(path.join(modules, "intelephense/lib/stub"))];
5126
5186
  spec.settings = { intelephense: { telemetry: { enabled: false } } };
@@ -5133,14 +5193,15 @@ async function resolveLaunch(id, root, installer, signal) {
5133
5193
  }
5134
5194
  return spec;
5135
5195
  }
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"}}}');
5196
+ 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","basedpyright":"1.40.2","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","yaml-language-server":"1.24.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/basedpyright":{"version":"1.40.2","resolved":"https://registry.npmjs.org/basedpyright/-/basedpyright-1.40.2.tgz","integrity":"sha512-9uld8+5tZC2Gxf8nIynyunK0N4xn01W1ApzLMXDAcuA8uJq2QSfldYn9gSbxn9MWR8wmHDo7GaEHLhlnLFHaJA==","license":"MIT","bin":{"basedpyright":"index.js","basedpyright-langserver":"langserver.index.js","pyright":"index.js","pyright-langserver":"langserver.index.js"},"engines":{"node":">=14.0.0"},"optionalDependencies":{"fsevents":"~2.3.3"}},"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/fsevents":{"version":"2.3.3","resolved":"https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz","integrity":"sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==","hasInstallScript":true,"license":"MIT","optional":true,"os":["darwin"],"engines":{"node":"^8.16.0 || ^10.6.0 || >=11.0.0"}},"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/volar-service-yaml/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/volar-service-yaml/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/volar-service-yaml/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/volar-service-yaml/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/volar-service-yaml/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/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.24.0","resolved":"https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-1.24.0.tgz","integrity":"sha512-+HGcwu4M7IC+UDhDZScTZR8qsl2MMj/X1E5e83QcWzWn2pctj0fv8HHdrHHcbc1KB3CuRPJ4gc1Nm36D0iCu0g==","license":"MIT","dependencies":{"@vscode/l10n":"^0.0.18","ajv":"^8.17.1","ajv-draft-04":"^1.0.0","ajv-i18n":"^4.2.0","jsonc-parser":"^3.3.1","picomatch":"^4.0.4","prettier":"^3.8.1","request-light":"^0.5.7","vscode-languageserver":"^9.0.0","vscode-languageserver-textdocument":"^1.0.1","vscode-languageserver-types":"~3.17.5","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-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/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
5197
  const npmLock = {
5138
5198
  packages: packages$1
5139
5199
  };
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=" }];
5200
+ 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=" }, { "id": "ruff", "version": "0.16.10", "platform": "darwin-arm64", "url": "https://github.com/astral-sh/ruff/releases/download/0.16.10/ruff-aarch64-apple-darwin.tar.gz", "format": "tar", "entry": "ruff-aarch64-apple-darwin/ruff", "license": "MIT", "integrity": "sha256-8FHNMG3iaRJioFdPiFfNH01r/NRICE6iPWG5wcN99RA=" }, { "id": "ruff", "version": "0.16.10", "platform": "linux-x64", "url": "https://github.com/astral-sh/ruff/releases/download/0.16.10/ruff-x86_64-unknown-linux-gnu.tar.gz", "format": "tar", "entry": "ruff-x86_64-unknown-linux-gnu/ruff", "license": "MIT", "integrity": "sha256-lWf/EgHi+z2jH/BMNVh9doxm1stC36hN5HTiv+Ngtgg=" }, { "id": "ruff", "version": "0.16.10", "platform": "linux-arm64", "url": "https://github.com/astral-sh/ruff/releases/download/0.16.10/ruff-aarch64-unknown-linux-gnu.tar.gz", "format": "tar", "entry": "ruff-aarch64-unknown-linux-gnu/ruff", "license": "MIT", "integrity": "sha256-3A103oN+8Ke8xizpjEimIrB10FcWHxO5WL4pNL7NVaY=" }];
5141
5201
  const nativeLock = {
5142
5202
  artifacts
5143
5203
  };
5204
+ const managedPlatforms = ["darwin-arm64", "linux-x64", "linux-arm64"];
5144
5205
  const packages = npmLock.packages;
5145
5206
  function fingerprint(value) {
5146
5207
  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 +5247,7 @@ class ManagedInstaller {
5186
5247
  download;
5187
5248
  async bytes(url, integrity, signal) {
5188
5249
  if (!url.startsWith("https://")) throw new Error("Managed artifacts require HTTPS");
5189
- let failure;
5250
+ let failure2;
5190
5251
  for (let attempt = 0; attempt < 3; attempt++) {
5191
5252
  signal?.throwIfAborted();
5192
5253
  try {
@@ -5203,17 +5264,18 @@ class ManagedInstaller {
5203
5264
  verifyIntegrity(bytes, integrity);
5204
5265
  return bytes;
5205
5266
  } catch (error) {
5206
- failure = error;
5267
+ failure2 = error;
5207
5268
  signal?.throwIfAborted();
5208
5269
  }
5209
5270
  if (attempt < 2) await setTimeout$1(250 * 2 ** attempt, void 0, { signal });
5210
5271
  }
5211
- throw failure;
5272
+ throw failure2;
5212
5273
  }
5213
5274
  async extract(bytes, directory, strip) {
5214
5275
  await fs.mkdir(directory, { recursive: true });
5215
5276
  const archive = directory + ".tgz";
5216
5277
  await fs.writeFile(archive, bytes);
5278
+ let rejection;
5217
5279
  try {
5218
5280
  await x({
5219
5281
  file: archive,
@@ -5224,21 +5286,22 @@ class ManagedInstaller {
5224
5286
  filter(name, candidate) {
5225
5287
  const entry = candidate;
5226
5288
  const normalized = name.split("/").slice(strip).join("/");
5227
- if (name.startsWith("/") || name.includes("\\") || name.split("/").includes("..")) throw new Error("Unsafe archive path");
5228
- if (!["File", "OldFile", "Directory", "SymbolicLink"].includes(entry.type)) throw new Error("Unsupported archive entry");
5229
- if (entry.type === "SymbolicLink") {
5289
+ if (name.startsWith("/") || name.includes("\\") || name.split("/").includes("..")) rejection ??= new Error("Unsafe archive path");
5290
+ else if (!["File", "OldFile", "Directory", "SymbolicLink"].includes(entry.type)) rejection ??= new Error("Unsupported archive entry");
5291
+ else if (entry.type === "SymbolicLink") {
5230
5292
  const target = path.resolve(directory, path.dirname(normalized), entry.linkpath ?? "");
5231
- if (path.isAbsolute(entry.linkpath ?? "") || !target.startsWith(directory + path.sep)) throw new Error("Archive link leaves installation");
5293
+ if (path.isAbsolute(entry.linkpath ?? "") || !target.startsWith(directory + path.sep)) rejection ??= new Error("Archive link leaves installation");
5232
5294
  }
5233
- return true;
5295
+ return !rejection;
5234
5296
  }
5235
5297
  });
5236
5298
  } finally {
5237
5299
  await fs.rm(archive, { force: true });
5238
5300
  }
5301
+ if (rejection) throw rejection;
5239
5302
  }
5240
5303
  async install(id, digest2, build, signal) {
5241
- if (!["darwin-arm64", "linux-x64"].includes(this.platform)) throw new Error(`Managed language servers are unavailable on ${this.platform}`);
5304
+ if (!managedPlatforms.includes(this.platform)) throw new Error(`Managed language servers are unavailable on ${this.platform}`);
5242
5305
  const base = path.join(this.cache, `${id}-${this.platform}`), target = path.join(base, digest2);
5243
5306
  const complete = async () => {
5244
5307
  try {
@@ -5410,11 +5473,11 @@ class JsonSchemas {
5410
5473
  throw new Error("Too many JSON schema redirects");
5411
5474
  }
5412
5475
  async remote(value, enabled) {
5413
- const url = this.remoteUri(value), cached = await this.cached(url);
5414
- if (cached && (!enabled || Date.now() - cached.fetchedAt < maxAge)) return cached.text;
5476
+ const url = this.remoteUri(value), cached2 = await this.cached(url);
5477
+ if (cached2 && (!enabled || Date.now() - cached2.fetchedAt < maxAge)) return cached2.text;
5415
5478
  if (!enabled) throw new Error("Schema downloads are disabled and this schema is not cached");
5416
5479
  if ((this.failures.get(url) ?? 0) > Date.now()) {
5417
- if (cached) return cached.text;
5480
+ if (cached2) return cached2.text;
5418
5481
  throw new Error("Schema download is temporarily unavailable");
5419
5482
  }
5420
5483
  let pending = this.pending.get(url);
@@ -5433,7 +5496,7 @@ class JsonSchemas {
5433
5496
  return text2;
5434
5497
  } catch (error) {
5435
5498
  this.failures.set(url, Date.now() + 6e4);
5436
- if (cached) return cached.text;
5499
+ if (cached2) return cached2.text;
5437
5500
  throw error;
5438
5501
  } finally {
5439
5502
  this.pending.delete(url);
@@ -5495,6 +5558,10 @@ function merge(a, b) {
5495
5558
  if (!a || !b || Array.isArray(a) || Array.isArray(b) || typeof a !== "object" || typeof b !== "object") return b ?? a;
5496
5559
  return Object.fromEntries([.../* @__PURE__ */ new Set([...Object.keys(a), ...Object.keys(b)])].map((key) => [key, merge(a[key], b[key])]));
5497
5560
  }
5561
+ function yamlSchemaSettings(settings, options2) {
5562
+ const yaml = settings.yaml ?? {};
5563
+ return { ...settings, yaml: { ...yaml, schemaStore: { ...yaml.schemaStore, enable: options2.catalog && options2.download && yaml.schemaStore?.enable !== false } } };
5564
+ }
5498
5565
  class LanguageServerManager {
5499
5566
  constructor(files, cache, emit, idleMs = 3e5, project, schemas) {
5500
5567
  this.files = files;
@@ -5581,7 +5648,8 @@ class LanguageServerManager {
5581
5648
  if (!definition2.executable && !serverCatalog.some((preset2) => preset2.id === definition2.id)) throw new RpcError("INVALID_PARAMS", "Custom language servers require an executable");
5582
5649
  const root = definition2.id === "laravel" ? await this.laravelRoot(relative) : await this.projectRoot(relative, definition2.rootMarkers);
5583
5650
  if (!root) throw new RpcError("LSP_UNAVAILABLE", "Laravel language support requires a project containing artisan");
5584
- const digest2 = fingerprint({ definition: definition2, associations }), id = `${definition2.id}:${fingerprint([root, digest2]).slice(0, 24)}`;
5651
+ const ruff = definition2.id === "basedpyright" && definitions2.some((item) => item.id === "ruff" && item.enabled !== false && this.matches({ definition: item, root: this.files.root, associations }, relative, text2));
5652
+ const digest2 = fingerprint({ definition: definition2, associations, ...ruff ? { ruff } : {} }), id = `${definition2.id}:${fingerprint([root, digest2]).slice(0, 24)}`;
5585
5653
  let instance = this.instances.get(id);
5586
5654
  if (!instance) {
5587
5655
  const server = new LanguageServer(this.files, (method, params) => this.emit(method, params, id), {
@@ -5593,12 +5661,17 @@ class LanguageServerManager {
5593
5661
  if (override) spec = { executable: override, args: definition2.args ?? ["--stdio"] };
5594
5662
  else spec = await resolveLaunch(definition2.id, root, this.installer, signal);
5595
5663
  spec = { ...spec, args: definition2.args ?? spec.args, env: { ...spec.env, ...definition2.env }, initializationOptions: merge(spec.initializationOptions, definition2.initializationOptions), settings: merge(spec.settings, definition2.settings) };
5664
+ if (ruff) spec = deferToRuff(spec);
5596
5665
  if (definition2.id === "json") {
5597
5666
  const options2 = this.project ? (await this.project.reload()).schemas : { catalog: true, download: true, associations: [] };
5598
5667
  spec.settings = await this.schemas.settings(spec.settings ?? {}, options2);
5599
5668
  spec.initializationOptions = { ...spec.initializationOptions, handledSchemaProtocols: [] };
5600
5669
  spec.schemaContent = (uri) => this.schemas.content(uri, options2.download && spec.settings?.json?.schemaDownload?.enable !== false);
5601
5670
  }
5671
+ if (definition2.id === "yaml") {
5672
+ const options2 = this.project ? (await this.project.reload()).schemas : { catalog: true, download: true };
5673
+ spec.settings = yamlSchemaSettings(spec.settings ?? {}, options2);
5674
+ }
5602
5675
  return spec;
5603
5676
  }
5604
5677
  });
@@ -5657,7 +5730,7 @@ class LanguageServerManager {
5657
5730
  await Promise.all([this.defaultServer.watched(relative, type2), ...[...this.instances.values()].map((instance) => instance.server.watched(relative, type2))]);
5658
5731
  }
5659
5732
  async refreshSchemas() {
5660
- await Promise.allSettled([...this.instances.values()].filter((instance) => instance.definition.id === "json" && instance.server.status().state === "ready").map((instance) => this.restart(instance.id)));
5733
+ await Promise.allSettled([...this.instances.values()].filter((instance) => ["json", "yaml"].includes(instance.definition.id) && instance.server.status().state === "ready").map((instance) => this.restart(instance.id)));
5661
5734
  }
5662
5735
  authorizeExternal(uri, id) {
5663
5736
  return this.get(id).external.authorize(uri);
@@ -5954,7 +6027,7 @@ class ProjectStore {
5954
6027
  try {
5955
6028
  const data = JSON.parse(text2), ecosystem = entry.name === "package.json" ? "npm" : "composer";
5956
6029
  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, version2] of Object.entries(data[kind] ?? {})) if (typeof version2 === "string") pkg.dependencies.push({ name, version: version2, kind });
6030
+ 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
6031
  result.packages.push(pkg);
5959
6032
  } catch {
5960
6033
  result.warnings.push(`Invalid manifest: ${relative}`);
@@ -6129,11 +6202,7 @@ class SettingsStore {
6129
6202
  ignored: (file) => !this.paths.some((target) => target === file || target.startsWith(file + path.sep)),
6130
6203
  awaitWriteFinish: { stabilityThreshold: 100, pollInterval: 25 }
6131
6204
  });
6132
- this.watcher.on("all", () => {
6133
- clearTimeout(this.timer);
6134
- this.timer = setTimeout(() => this.changed(), 75);
6135
- this.timer.unref();
6136
- });
6205
+ this.watcher.on("all", () => this.schedule());
6137
6206
  this.watcher.on("error", () => this.changed());
6138
6207
  await new Promise((resolve, reject) => {
6139
6208
  this.watcher.once("ready", resolve);
@@ -6141,6 +6210,16 @@ class SettingsStore {
6141
6210
  });
6142
6211
  return this;
6143
6212
  }
6213
+ schedule() {
6214
+ clearTimeout(this.timer);
6215
+ this.timer = setTimeout(() => this.changed(), 75);
6216
+ this.timer.unref();
6217
+ }
6218
+ /** The polling watcher can miss a write followed quickly by a delete, so workspace edits through the runtime report here too. */
6219
+ workspaceChanged(relativePath) {
6220
+ const file = path.resolve(this.files.root, relativePath);
6221
+ if (this.paths.some((target) => target === file || target.startsWith(file + path.sep))) this.schedule();
6222
+ }
6144
6223
  async authorized(file) {
6145
6224
  if (file !== this.userFile && (file === this.paths[2] || file === this.paths[3] || file === path.join(this.files.root, ".oxbit/settings.json"))) await this.files.resolve(path.relative(this.files.root, file), true);
6146
6225
  try {
@@ -6216,8 +6295,8 @@ class SettingsStore {
6216
6295
  if (Number.isInteger(pid) && pid > 0) {
6217
6296
  try {
6218
6297
  process.kill(pid, 0);
6219
- } catch (failure) {
6220
- if (failure.code === "ESRCH") {
6298
+ } catch (failure2) {
6299
+ if (failure2.code === "ESRCH") {
6221
6300
  await fs.rm(lock, { force: true });
6222
6301
  continue;
6223
6302
  }
@@ -8075,31 +8154,31 @@ function requireSemver$1() {
8075
8154
  return true;
8076
8155
  };
8077
8156
  class SemVer {
8078
- constructor(version2, options2) {
8157
+ constructor(version, options2) {
8079
8158
  options2 = parseOptions(options2);
8080
- if (version2 instanceof SemVer) {
8081
- if (version2.loose === !!options2.loose && version2.includePrerelease === !!options2.includePrerelease) {
8082
- return version2;
8159
+ if (version instanceof SemVer) {
8160
+ if (version.loose === !!options2.loose && version.includePrerelease === !!options2.includePrerelease) {
8161
+ return version;
8083
8162
  } else {
8084
- version2 = version2.version;
8163
+ version = version.version;
8085
8164
  }
8086
- } else if (typeof version2 !== "string") {
8087
- throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version2}".`);
8165
+ } else if (typeof version !== "string") {
8166
+ throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version}".`);
8088
8167
  }
8089
- if (version2.length > MAX_LENGTH) {
8168
+ if (version.length > MAX_LENGTH) {
8090
8169
  throw new TypeError(
8091
8170
  `version is longer than ${MAX_LENGTH} characters`
8092
8171
  );
8093
8172
  }
8094
- debug("SemVer", version2, options2);
8173
+ debug("SemVer", version, options2);
8095
8174
  this.options = options2;
8096
8175
  this.loose = !!options2.loose;
8097
8176
  this.includePrerelease = !!options2.includePrerelease;
8098
- const m = version2.trim().match(options2.loose ? re2[t.LOOSE] : re2[t.FULL]);
8177
+ const m = version.trim().match(options2.loose ? re2[t.LOOSE] : re2[t.FULL]);
8099
8178
  if (!m) {
8100
- throw new TypeError(`Invalid Version: ${version2}`);
8179
+ throw new TypeError(`Invalid Version: ${version}`);
8101
8180
  }
8102
- this.raw = version2;
8181
+ this.raw = version;
8103
8182
  this.major = +m[1];
8104
8183
  this.minor = +m[2];
8105
8184
  this.patch = +m[3];
@@ -8350,12 +8429,12 @@ function requireParse() {
8350
8429
  if (hasRequiredParse) return parse_1;
8351
8430
  hasRequiredParse = 1;
8352
8431
  const SemVer = requireSemver$1();
8353
- const parse2 = (version2, options2, throwErrors = false) => {
8354
- if (version2 instanceof SemVer) {
8355
- return version2;
8432
+ const parse2 = (version, options2, throwErrors = false) => {
8433
+ if (version instanceof SemVer) {
8434
+ return version;
8356
8435
  }
8357
8436
  try {
8358
- return new SemVer(version2, options2);
8437
+ return new SemVer(version, options2);
8359
8438
  } catch (er) {
8360
8439
  if (!throwErrors) {
8361
8440
  return null;
@@ -8372,8 +8451,8 @@ function requireValid$1() {
8372
8451
  if (hasRequiredValid$1) return valid_1;
8373
8452
  hasRequiredValid$1 = 1;
8374
8453
  const parse2 = requireParse();
8375
- const valid2 = (version2, options2) => {
8376
- const v = parse2(version2, options2);
8454
+ const valid2 = (version, options2) => {
8455
+ const v = parse2(version, options2);
8377
8456
  return v ? v.version : null;
8378
8457
  };
8379
8458
  valid_1 = valid2;
@@ -8385,8 +8464,8 @@ function requireClean() {
8385
8464
  if (hasRequiredClean) return clean_1;
8386
8465
  hasRequiredClean = 1;
8387
8466
  const parse2 = requireParse();
8388
- const clean = (version2, options2) => {
8389
- const s = parse2(version2.trim().replace(/^[=v]+/, ""), options2);
8467
+ const clean = (version, options2) => {
8468
+ const s = parse2(version.trim().replace(/^[=v]+/, ""), options2);
8390
8469
  return s ? s.version : null;
8391
8470
  };
8392
8471
  clean_1 = clean;
@@ -8398,7 +8477,7 @@ function requireInc() {
8398
8477
  if (hasRequiredInc) return inc_1;
8399
8478
  hasRequiredInc = 1;
8400
8479
  const SemVer = requireSemver$1();
8401
- const inc = (version2, release, options2, identifier, identifierBase) => {
8480
+ const inc = (version, release, options2, identifier, identifierBase) => {
8402
8481
  if (typeof options2 === "string") {
8403
8482
  identifierBase = identifier;
8404
8483
  identifier = options2;
@@ -8406,7 +8485,7 @@ function requireInc() {
8406
8485
  }
8407
8486
  try {
8408
8487
  return new SemVer(
8409
- version2 instanceof SemVer ? version2.version : version2,
8488
+ version instanceof SemVer ? version.version : version,
8410
8489
  options2
8411
8490
  ).inc(release, identifier, identifierBase).version;
8412
8491
  } catch (er) {
@@ -8496,8 +8575,8 @@ function requirePrerelease() {
8496
8575
  if (hasRequiredPrerelease) return prerelease_1;
8497
8576
  hasRequiredPrerelease = 1;
8498
8577
  const parse2 = requireParse();
8499
- const prerelease = (version2, options2) => {
8500
- const parsed = parse2(version2, options2);
8578
+ const prerelease = (version, options2) => {
8579
+ const parsed = parse2(version, options2);
8501
8580
  return parsed && parsed.prerelease.length ? parsed.prerelease : null;
8502
8581
  };
8503
8582
  prerelease_1 = prerelease;
@@ -8685,24 +8764,24 @@ function requireCoerce() {
8685
8764
  const SemVer = requireSemver$1();
8686
8765
  const parse2 = requireParse();
8687
8766
  const { safeRe: re2, t } = requireRe();
8688
- const coerce = (version2, options2) => {
8689
- if (version2 instanceof SemVer) {
8690
- return version2;
8767
+ const coerce = (version, options2) => {
8768
+ if (version instanceof SemVer) {
8769
+ return version;
8691
8770
  }
8692
- if (typeof version2 === "number") {
8693
- version2 = String(version2);
8771
+ if (typeof version === "number") {
8772
+ version = String(version);
8694
8773
  }
8695
- if (typeof version2 !== "string") {
8774
+ if (typeof version !== "string") {
8696
8775
  return null;
8697
8776
  }
8698
8777
  options2 = options2 || {};
8699
8778
  let match = null;
8700
8779
  if (!options2.rtl) {
8701
- match = version2.match(options2.includePrerelease ? re2[t.COERCEFULL] : re2[t.COERCE]);
8780
+ match = version.match(options2.includePrerelease ? re2[t.COERCEFULL] : re2[t.COERCE]);
8702
8781
  } else {
8703
8782
  const coerceRtlRegex = options2.includePrerelease ? re2[t.COERCERTLFULL] : re2[t.COERCERTL];
8704
8783
  let next;
8705
- while ((next = coerceRtlRegex.exec(version2)) && (!match || match.index + match[0].length !== version2.length)) {
8784
+ while ((next = coerceRtlRegex.exec(version)) && (!match || match.index + match[0].length !== version.length)) {
8706
8785
  if (!match || next.index + next[0].length !== match.index + match[0].length) {
8707
8786
  match = next;
8708
8787
  }
@@ -8731,32 +8810,32 @@ function requireTruncate() {
8731
8810
  const parse2 = requireParse();
8732
8811
  const constants2 = requireConstants();
8733
8812
  const SemVer = requireSemver$1();
8734
- const truncate = (version2, truncation, options2) => {
8813
+ const truncate = (version, truncation, options2) => {
8735
8814
  if (!constants2.RELEASE_TYPES.includes(truncation)) {
8736
8815
  return null;
8737
8816
  }
8738
- const clonedVersion = cloneInputVersion(version2, options2);
8817
+ const clonedVersion = cloneInputVersion(version, options2);
8739
8818
  return clonedVersion && doTruncation(clonedVersion, truncation);
8740
8819
  };
8741
- const cloneInputVersion = (version2, options2) => {
8742
- const versionStringToParse = version2 instanceof SemVer ? version2.version : version2;
8820
+ const cloneInputVersion = (version, options2) => {
8821
+ const versionStringToParse = version instanceof SemVer ? version.version : version;
8743
8822
  return parse2(versionStringToParse, options2);
8744
8823
  };
8745
- const doTruncation = (version2, truncation) => {
8824
+ const doTruncation = (version, truncation) => {
8746
8825
  if (isPrerelease(truncation)) {
8747
- return version2.version;
8826
+ return version.version;
8748
8827
  }
8749
- version2.prerelease = [];
8828
+ version.prerelease = [];
8750
8829
  switch (truncation) {
8751
8830
  case "major":
8752
- version2.minor = 0;
8753
- version2.patch = 0;
8831
+ version.minor = 0;
8832
+ version.patch = 0;
8754
8833
  break;
8755
8834
  case "minor":
8756
- version2.patch = 0;
8835
+ version.patch = 0;
8757
8836
  break;
8758
8837
  }
8759
- return version2.format();
8838
+ return version.format();
8760
8839
  };
8761
8840
  const isPrerelease = (type2) => {
8762
8841
  return type2.startsWith("pre");
@@ -8876,9 +8955,9 @@ function requireRange() {
8876
8955
  range2 = range2.replace(BUILDSTRIPRE, "");
8877
8956
  const memoOpts = (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) | (this.options.loose && FLAG_LOOSE);
8878
8957
  const memoKey = memoOpts + ":" + range2;
8879
- const cached = cache.get(memoKey);
8880
- if (cached) {
8881
- return cached;
8958
+ const cached2 = cache.get(memoKey);
8959
+ if (cached2) {
8960
+ return cached2;
8882
8961
  }
8883
8962
  const loose = this.options.loose;
8884
8963
  const hr = loose ? re2[t.HYPHENRANGELOOSE] : re2[t.HYPHENRANGE];
@@ -8928,19 +9007,19 @@ function requireRange() {
8928
9007
  });
8929
9008
  }
8930
9009
  // if ANY of the sets match ALL of its comparators, then pass
8931
- test(version2) {
8932
- if (!version2) {
9010
+ test(version) {
9011
+ if (!version) {
8933
9012
  return false;
8934
9013
  }
8935
- if (typeof version2 === "string") {
9014
+ if (typeof version === "string") {
8936
9015
  try {
8937
- version2 = new SemVer(version2, this.options);
9016
+ version = new SemVer(version, this.options);
8938
9017
  } catch (er) {
8939
9018
  return false;
8940
9019
  }
8941
9020
  }
8942
9021
  for (let i = 0; i < this.set.length; i++) {
8943
- if (testSet(this.set[i], version2, this.options)) {
9022
+ if (testSet(this.set[i], version, this.options)) {
8944
9023
  return true;
8945
9024
  }
8946
9025
  }
@@ -9162,13 +9241,13 @@ function requireRange() {
9162
9241
  }
9163
9242
  return `${from} ${to}`.trim();
9164
9243
  };
9165
- const testSet = (set, version2, options2) => {
9244
+ const testSet = (set, version, options2) => {
9166
9245
  for (let i = 0; i < set.length; i++) {
9167
- if (!set[i].test(version2)) {
9246
+ if (!set[i].test(version)) {
9168
9247
  return false;
9169
9248
  }
9170
9249
  }
9171
- if (version2.prerelease.length && !options2.includePrerelease) {
9250
+ if (version.prerelease.length && !options2.includePrerelease) {
9172
9251
  for (let i = 0; i < set.length; i++) {
9173
9252
  debug(set[i].semver);
9174
9253
  if (set[i].semver === Comparator.ANY) {
@@ -9176,7 +9255,7 @@ function requireRange() {
9176
9255
  }
9177
9256
  if (set[i].semver.prerelease.length > 0) {
9178
9257
  const allowed = set[i].semver;
9179
- if (allowed.major === version2.major && allowed.minor === version2.minor && allowed.patch === version2.patch) {
9258
+ if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) {
9180
9259
  return true;
9181
9260
  }
9182
9261
  }
@@ -9237,19 +9316,19 @@ function requireComparator() {
9237
9316
  toString() {
9238
9317
  return this.value;
9239
9318
  }
9240
- test(version2) {
9241
- debug("Comparator.test", version2, this.options.loose);
9242
- if (this.semver === ANY || version2 === ANY) {
9319
+ test(version) {
9320
+ debug("Comparator.test", version, this.options.loose);
9321
+ if (this.semver === ANY || version === ANY) {
9243
9322
  return true;
9244
9323
  }
9245
- if (typeof version2 === "string") {
9324
+ if (typeof version === "string") {
9246
9325
  try {
9247
- version2 = new SemVer(version2, this.options);
9326
+ version = new SemVer(version, this.options);
9248
9327
  } catch (er) {
9249
9328
  return false;
9250
9329
  }
9251
9330
  }
9252
- return cmp(version2, this.operator, this.semver, this.options);
9331
+ return cmp(version, this.operator, this.semver, this.options);
9253
9332
  }
9254
9333
  intersects(comp, options2) {
9255
9334
  if (!(comp instanceof Comparator)) {
@@ -9306,13 +9385,13 @@ function requireSatisfies() {
9306
9385
  if (hasRequiredSatisfies) return satisfies_1;
9307
9386
  hasRequiredSatisfies = 1;
9308
9387
  const Range = requireRange();
9309
- const satisfies = (version2, range2, options2) => {
9388
+ const satisfies = (version, range2, options2) => {
9310
9389
  try {
9311
9390
  range2 = new Range(range2, options2);
9312
9391
  } catch (er) {
9313
9392
  return false;
9314
9393
  }
9315
- return range2.test(version2);
9394
+ return range2.test(version);
9316
9395
  };
9317
9396
  satisfies_1 = satisfies;
9318
9397
  return satisfies_1;
@@ -9474,8 +9553,8 @@ function requireOutside() {
9474
9553
  const lt = requireLt();
9475
9554
  const lte = requireLte();
9476
9555
  const gte = requireGte();
9477
- const outside = (version2, range2, hilo, options2) => {
9478
- version2 = new SemVer(version2, options2);
9556
+ const outside = (version, range2, hilo, options2) => {
9557
+ version = new SemVer(version, options2);
9479
9558
  range2 = new Range(range2, options2);
9480
9559
  let gtfn, ltefn, ltfn, comp, ecomp;
9481
9560
  switch (hilo) {
@@ -9496,7 +9575,7 @@ function requireOutside() {
9496
9575
  default:
9497
9576
  throw new TypeError('Must provide a hilo val of "<" or ">"');
9498
9577
  }
9499
- if (satisfies(version2, range2, options2)) {
9578
+ if (satisfies(version, range2, options2)) {
9500
9579
  return false;
9501
9580
  }
9502
9581
  for (let i = 0; i < range2.set.length; ++i) {
@@ -9518,9 +9597,9 @@ function requireOutside() {
9518
9597
  if (high.operator === comp || high.operator === ecomp) {
9519
9598
  return false;
9520
9599
  }
9521
- if ((!low.operator || low.operator === comp) && ltefn(version2, low.semver)) {
9600
+ if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) {
9522
9601
  return false;
9523
- } else if (low.operator === ecomp && ltfn(version2, low.semver)) {
9602
+ } else if (low.operator === ecomp && ltfn(version, low.semver)) {
9524
9603
  return false;
9525
9604
  }
9526
9605
  }
@@ -9535,7 +9614,7 @@ function requireGtr() {
9535
9614
  if (hasRequiredGtr) return gtr_1;
9536
9615
  hasRequiredGtr = 1;
9537
9616
  const outside = requireOutside();
9538
- const gtr = (version2, range2, options2) => outside(version2, range2, ">", options2);
9617
+ const gtr = (version, range2, options2) => outside(version, range2, ">", options2);
9539
9618
  gtr_1 = gtr;
9540
9619
  return gtr_1;
9541
9620
  }
@@ -9545,7 +9624,7 @@ function requireLtr() {
9545
9624
  if (hasRequiredLtr) return ltr_1;
9546
9625
  hasRequiredLtr = 1;
9547
9626
  const outside = requireOutside();
9548
- const ltr = (version2, range2, options2) => outside(version2, range2, "<", options2);
9627
+ const ltr = (version, range2, options2) => outside(version, range2, "<", options2);
9549
9628
  ltr_1 = ltr;
9550
9629
  return ltr_1;
9551
9630
  }
@@ -9575,12 +9654,12 @@ function requireSimplify() {
9575
9654
  let first = null;
9576
9655
  let prev = null;
9577
9656
  const v = versions.sort((a, b) => compare(a, b, options2));
9578
- for (const version2 of v) {
9579
- const included = satisfies(version2, range2, options2);
9657
+ for (const version of v) {
9658
+ const included = satisfies(version, range2, options2);
9580
9659
  if (included) {
9581
- prev = version2;
9660
+ prev = version;
9582
9661
  if (!first) {
9583
- first = version2;
9662
+ first = version;
9584
9663
  }
9585
9664
  } else {
9586
9665
  if (prev) {
@@ -10419,8 +10498,8 @@ function createKernel({
10419
10498
  await kernel.extensions.trigger(`onCommand:${id}`);
10420
10499
  const command = commands.get(id);
10421
10500
  if (!command) throw new Error(`Unknown command: ${id}`);
10422
- const available2 = kernel.commands.available(id);
10423
- if (!available2.enabled) throw new Error(available2.reason);
10501
+ const available = kernel.commands.available(id);
10502
+ if (!available.enabled) throw new Error(available.reason);
10424
10503
  kernel.events.emit("command.execute", { id });
10425
10504
  return command.run(args);
10426
10505
  },
@@ -10862,6 +10941,44 @@ class RuntimeExtensions {
10862
10941
  this.watchers.clear();
10863
10942
  }
10864
10943
  }
10944
+ let cached;
10945
+ function runtimeVersion() {
10946
+ if (cached) return cached;
10947
+ return cached = "0.6.0";
10948
+ }
10949
+ const wildcardHost = (host) => host === "0.0.0.0" || host === "::";
10950
+ const localHost = (host) => wildcardHost(host) ? "127.0.0.1" : host;
10951
+ const localName = (hostname = os.hostname()) => hostname.split(".")[0];
10952
+ let macLocalName;
10953
+ function bonjourName() {
10954
+ if (process.platform !== "darwin") return void 0;
10955
+ try {
10956
+ macLocalName ??= execFileSync("scutil", ["--get", "LocalHostName"], { encoding: "utf8", timeout: 1e3 }).trim();
10957
+ } catch {
10958
+ macLocalName = "";
10959
+ }
10960
+ return macLocalName || void 0;
10961
+ }
10962
+ function lanAddresses$1(interfaces = os.networkInterfaces()) {
10963
+ const addresses = Object.values(interfaces).flatMap((entries) => entries ?? []).filter((entry) => !entry.internal);
10964
+ const of = (family) => [
10965
+ ...new Set(addresses.filter((entry) => entry.family === family).map((entry) => entry.address.split("%")[0]))
10966
+ ];
10967
+ return { v4: of("IPv4"), v6: of("IPv6") };
10968
+ }
10969
+ function lanOrigins(port2, interfaces = os.networkInterfaces(), hostname = os.hostname(), published = bonjourName()) {
10970
+ const { v4, v6 } = lanAddresses$1(interfaces);
10971
+ return [
10972
+ ...v4.map((address) => `http://${address}:${port2}`),
10973
+ ...v6.map((address) => `http://[${address}]:${port2}`),
10974
+ ...new Set([localName(hostname), ...published ? [published] : []].map((name) => `http://${name}.local:${port2}`))
10975
+ ];
10976
+ }
10977
+ function lanUrl(port2, interfaces = os.networkInterfaces()) {
10978
+ const address = lanAddresses$1(interfaces).v4[0];
10979
+ return address ? `http://${address}:${port2}` : void 0;
10980
+ }
10981
+ const MAX_SOCKET_BACKLOG_BYTES = 16 * MAX_BUFFER_BYTES;
10865
10982
  const allCapabilities = [
10866
10983
  "filesystem.read",
10867
10984
  "filesystem.write",
@@ -10907,10 +11024,11 @@ async function createRuntime(options2) {
10907
11024
  await fs.mkdir(dataDir, { recursive: true, mode: 448 });
10908
11025
  const stateFile = path.join(dataDir, "runtime.json");
10909
11026
  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;
11027
+ let trusted = false, closed = false, runtimeId = randomUUID();
10911
11028
  try {
10912
11029
  const state2 = JSON.parse(await fs.readFile(stateFile, "utf8"));
10913
11030
  trusted = state2.trusted === true;
11031
+ if (typeof state2.id === "string" && /^[A-Za-z0-9-]{8,64}$/.test(state2.id)) runtimeId = state2.id;
10914
11032
  for (const session of state2.sessions ?? [])
10915
11033
  sessions.set(session.hash, session);
10916
11034
  for (const operation of state2.operations ?? []) {
@@ -10942,6 +11060,7 @@ async function createRuntime(options2) {
10942
11060
  let persistence = Promise.resolve();
10943
11061
  const persist = () => {
10944
11062
  const payload = JSON.stringify({
11063
+ id: runtimeId,
10945
11064
  trusted,
10946
11065
  sessions: [...sessions.values()],
10947
11066
  operations: [...operations.values()]
@@ -10958,11 +11077,13 @@ async function createRuntime(options2) {
10958
11077
  const pairingAttemptsPerMinute = options2.pairingAttemptsPerMinute ?? 10;
10959
11078
  if (!Number.isInteger(pairingAttemptsPerMinute) || pairingAttemptsPerMinute < 1)
10960
11079
  throw new Error("Pairing attempts per minute must be a positive whole number");
10961
- let port2 = options2.port ?? 9277;
11080
+ let port2 = options2.port ?? 0;
11081
+ const identity2 = { id: runtimeId, name: os.hostname(), version: runtimeVersion(), startedAt: Date.now() };
10962
11082
  const allowedOrigins = () => /* @__PURE__ */ new Set([
10963
11083
  "tauri://localhost",
10964
11084
  ...options2.desktop ? [] : [`http://127.0.0.1:${port2}`, `http://localhost:${port2}`, `http://${host}:${port2}`],
10965
- ...options2.origins ?? []
11085
+ ...options2.origins ?? [],
11086
+ ...wildcardHost(host) ? lanOrigins(port2) : []
10966
11087
  ]);
10967
11088
  const originAllowed = (request, required = false) => {
10968
11089
  const origin = request.headers.origin;
@@ -10970,7 +11091,7 @@ async function createRuntime(options2) {
10970
11091
  };
10971
11092
  const send = (connection, message) => {
10972
11093
  if (connection.ws.readyState !== WebSocket.OPEN) return;
10973
- if (connection.ws.bufferedAmount > MAX_BUFFER_BYTES) {
11094
+ if (connection.ws.bufferedAmount > MAX_SOCKET_BACKLOG_BYTES) {
10974
11095
  connection.ws.close(1013, "Slow consumer; reconnect to resynchronize");
10975
11096
  return;
10976
11097
  }
@@ -11173,7 +11294,7 @@ async function createRuntime(options2) {
11173
11294
  }
11174
11295
  const url = new URL(request.url ?? "/", `http://${host}:${port2}`);
11175
11296
  if (url.pathname === "/api/health") {
11176
- httpJson(response, 200, { ok: true, protocol: 1 });
11297
+ httpJson(response, 200, { ok: true, protocol: 1, ...identity2 });
11177
11298
  return;
11178
11299
  }
11179
11300
  if (url.pathname === "/api/pair" && request.method === "POST") {
@@ -11206,7 +11327,7 @@ async function createRuntime(options2) {
11206
11327
  "Set-Cookie",
11207
11328
  `oxbit_session=${result.token}; HttpOnly; SameSite=Strict; Path=/`
11208
11329
  );
11209
- httpJson(response, 200, result);
11330
+ httpJson(response, 200, { ...result, runtime: identity2 });
11210
11331
  return;
11211
11332
  }
11212
11333
  if (url.pathname === "/api/grants") {
@@ -11373,7 +11494,8 @@ async function createRuntime(options2) {
11373
11494
  "Open a new connection to change sessions"
11374
11495
  );
11375
11496
  connection.session = session2;
11376
- return sessionInfo(session2);
11497
+ updateIdle();
11498
+ return { ...sessionInfo(session2), runtime: identity2 };
11377
11499
  }
11378
11500
  const workspace = params.workspaceId ?? "default";
11379
11501
  if (workspace !== "default")
@@ -11479,6 +11601,7 @@ async function createRuntime(options2) {
11479
11601
  }
11480
11602
  );
11481
11603
  lsp.saved(requireString(params, "path"), snapshot.text);
11604
+ settings.workspaceChanged(requireString(params, "path"));
11482
11605
  return snapshot;
11483
11606
  }
11484
11607
  case "fs.mkdir":
@@ -11489,9 +11612,12 @@ async function createRuntime(options2) {
11489
11612
  requireString(params, "path"),
11490
11613
  requireString(params, "to")
11491
11614
  );
11615
+ settings.workspaceChanged(requireString(params, "path"));
11616
+ settings.workspaceChanged(requireString(params, "to"));
11492
11617
  return { ok: true };
11493
11618
  case "fs.delete":
11494
11619
  await files.delete(requireString(params, "path"));
11620
+ settings.workspaceChanged(requireString(params, "path"));
11495
11621
  return { ok: true };
11496
11622
  case "fs.watch":
11497
11623
  connection.watching = true;
@@ -11838,6 +11964,31 @@ async function createRuntime(options2) {
11838
11964
  );
11839
11965
  }
11840
11966
  };
11967
+ let idleSince, idleTimer;
11968
+ const updateIdle = () => {
11969
+ if ([...connections.values()].some((c) => c.session && !c.session.revoked)) {
11970
+ idleSince = void 0;
11971
+ clearTimeout(idleTimer);
11972
+ return;
11973
+ }
11974
+ if (idleSince !== void 0 || closed) return;
11975
+ idleSince = Date.now();
11976
+ const idle = options2.idleShutdown;
11977
+ if (idle) idleTimer = setTimeout(() => {
11978
+ if (!closed) idle.onIdle();
11979
+ }, idle.afterMs);
11980
+ };
11981
+ const ping = setInterval(() => {
11982
+ for (const connection of connections.values()) {
11983
+ if (!connection.alive) {
11984
+ connection.ws.terminate();
11985
+ continue;
11986
+ }
11987
+ connection.alive = false;
11988
+ connection.ws.ping();
11989
+ }
11990
+ }, options2.pingIntervalMs ?? 3e4);
11991
+ ping.unref();
11841
11992
  websocket.on("connection", (ws, request) => {
11842
11993
  const connection = {
11843
11994
  id: randomUUID(),
@@ -11846,9 +11997,13 @@ async function createRuntime(options2) {
11846
11997
  pending: /* @__PURE__ */ new Map(),
11847
11998
  watching: false,
11848
11999
  language: false,
12000
+ alive: true,
11849
12001
  edits: /* @__PURE__ */ new Map()
11850
12002
  };
11851
12003
  connections.set(connection.id, connection);
12004
+ ws.on("pong", () => {
12005
+ connection.alive = true;
12006
+ });
11852
12007
  const authDeadline = setTimeout(() => {
11853
12008
  if (!connection.session) ws.close(4001, "Authenticate within 10 seconds");
11854
12009
  }, 1e4);
@@ -11990,6 +12145,7 @@ async function createRuntime(options2) {
11990
12145
  agents.disconnect(connection.id);
11991
12146
  lsp.detach(connection.id);
11992
12147
  connections.delete(connection.id);
12148
+ updateIdle();
11993
12149
  for (const pending of connection.edits.values()) {
11994
12150
  pending.cleanup();
11995
12151
  pending.resolve({ applied: false, failureReason: "Document client disconnected" });
@@ -12004,11 +12160,18 @@ async function createRuntime(options2) {
12004
12160
  });
12005
12161
  });
12006
12162
  let watcher, watcherTransition = Promise.resolve();
12007
- let watcherReadyResolve, watcherReadyReject;
12008
- const watcherReady = new Promise((resolve, reject) => {
12163
+ let watcherReadyResolve;
12164
+ const watcherReady = new Promise((resolve) => {
12009
12165
  watcherReadyResolve = resolve;
12010
- watcherReadyReject = reject;
12011
12166
  });
12167
+ const watchFailed = (error) => {
12168
+ process.stderr.write(`Oxbit file watcher failed: ${error.code ? `${error.code} ` : ""}${error.message}
12169
+ `);
12170
+ for (const c of connections.values())
12171
+ if (c.watching && c.session)
12172
+ event(c, "fs.watchError", { message: error.message, code: error.code });
12173
+ watcherReadyResolve();
12174
+ };
12012
12175
  let fileChangeQueue = Promise.resolve();
12013
12176
  const watchedChange = (kind, full) => {
12014
12177
  fileChangeQueue = fileChangeQueue.catch(() => {
@@ -12056,33 +12219,21 @@ async function createRuntime(options2) {
12056
12219
  current.once("ready", () => {
12057
12220
  if (watcher === current) watcherReadyResolve();
12058
12221
  });
12059
- current.on("error", (failure) => {
12222
+ current.on("error", (failure2) => {
12060
12223
  if (watcher !== current) return;
12061
- const error = failure;
12224
+ const error = failure2;
12062
12225
  if (!usePolling && (error.code === "EMFILE" || error.code === "ENOSPC")) {
12063
12226
  watcher = void 0;
12064
12227
  watcherTransition = current.close().then(() => {
12065
12228
  if (!closed) startWatcher(true);
12066
- }).catch(watcherReadyReject);
12229
+ }).catch(watchFailed);
12067
12230
  for (const c of connections.values())
12068
12231
  if (c.watching && c.session)
12069
12232
  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
- }
12233
+ } else watchFailed(error);
12079
12234
  });
12080
12235
  current.add(root);
12081
12236
  };
12082
- startWatcher(
12083
- setting("WATCH_POLLING") === "1" || setting("WATCH_POLLING") === "true"
12084
- );
12085
- await watcherReady;
12086
12237
  await new Promise((resolve, reject) => {
12087
12238
  server.once("error", reject);
12088
12239
  server.listen(port2, host, () => {
@@ -12092,12 +12243,24 @@ async function createRuntime(options2) {
12092
12243
  });
12093
12244
  const address = server.address();
12094
12245
  if (address && typeof address === "object") port2 = address.port;
12246
+ identity2.startedAt = Date.now();
12247
+ updateIdle();
12248
+ try {
12249
+ startWatcher(setting("WATCH_POLLING") === "1" || setting("WATCH_POLLING") === "true");
12250
+ } catch (error) {
12251
+ watchFailed(error);
12252
+ }
12095
12253
  return {
12096
12254
  server,
12097
12255
  port: port2,
12256
+ identity: identity2,
12098
12257
  pairingCode,
12258
+ /** Epoch milliseconds since no authenticated client has been connected, or undefined while one is. */
12259
+ idleSince: () => idleSince,
12099
12260
  root,
12100
12261
  dataDir,
12262
+ /** Resolves after the watcher's first full scan, or once watching has failed. */
12263
+ watcherReady,
12101
12264
  async rotateDesktopToken(token) {
12102
12265
  if (!options2.desktop || token.length < 32) throw new Error("Invalid desktop rotation");
12103
12266
  const previous = [...sessions.entries()].find(([, session]) => session.id === "desktop-owner");
@@ -12112,6 +12275,8 @@ async function createRuntime(options2) {
12112
12275
  async close() {
12113
12276
  if (closed) return;
12114
12277
  closed = true;
12278
+ clearInterval(ping);
12279
+ clearTimeout(idleTimer);
12115
12280
  await watcherTransition;
12116
12281
  await watcher?.close();
12117
12282
  await fileChangeQueue;
@@ -12134,6 +12299,291 @@ async function createRuntime(options2) {
12134
12299
  }
12135
12300
  };
12136
12301
  }
12302
+ const TYPE = { A: 1, PTR: 12, TXT: 16, AAAA: 28, SRV: 33, ANY: 255 };
12303
+ const FLAGS_RESPONSE = 33792;
12304
+ const QR = 32768;
12305
+ const CACHE_FLUSH = 32768;
12306
+ const CLASS_IN = 1;
12307
+ function truncateUtf8(value, maxBytes2) {
12308
+ let out = "";
12309
+ for (const char of value) {
12310
+ if (Buffer.byteLength(out + char) > maxBytes2) break;
12311
+ out += char;
12312
+ }
12313
+ return out;
12314
+ }
12315
+ function instanceLabel(hostname, id) {
12316
+ const suffix = ` (${id.slice(0, 8)})`;
12317
+ const host = hostname.replace(/\.local\.?$/i, "");
12318
+ return truncateUtf8(host, 63 - Buffer.byteLength(suffix)) + suffix;
12319
+ }
12320
+ const serviceName = () => [...RUNTIME_SERVICE_TYPE.split("."), "local"];
12321
+ const hostName = (id) => [`oxbit-${id.slice(0, 8)}`, "local"];
12322
+ const nameKey = (name) => name.map((l) => l.toLowerCase()).join("\0");
12323
+ function records(ad, ttl) {
12324
+ const service = serviceName();
12325
+ const instance = [instanceLabel(ad.name, ad.id), ...service];
12326
+ const host = hostName(ad.id);
12327
+ const rr = (name, type2, base, rest) => ({
12328
+ name,
12329
+ type: type2,
12330
+ ttl: ttl ?? base,
12331
+ flush: type2 !== TYPE.PTR,
12332
+ ...rest
12333
+ });
12334
+ const txt = [`id=${ad.id}`, `name=${ad.name}`, `version=${ad.version}`, `port=${ad.port}`];
12335
+ return [
12336
+ rr(service, TYPE.PTR, 4500, { target: instance }),
12337
+ rr(["_services", "_dns-sd", "_udp", "local"], TYPE.PTR, 4500, { target: service }),
12338
+ rr(instance, TYPE.SRV, 120, { target: host, port: ad.port }),
12339
+ rr(instance, TYPE.TXT, 4500, { strings: txt.map((s) => truncateUtf8(s, 255)) }),
12340
+ ...ad.v4.filter((a) => isIPv4(a)).map((address) => rr(host, TYPE.A, 120, { address })),
12341
+ ...ad.v6.map((a) => a.split("%")[0]).filter((a) => isIPv6(a)).map((address) => rr(host, TYPE.AAAA, 120, { address }))
12342
+ ];
12343
+ }
12344
+ function answer(questions, all) {
12345
+ const answers = all.filter(
12346
+ (r) => questions.some(
12347
+ (q) => (q.type === TYPE.ANY || q.type === r.type) && nameKey(q.name) === nameKey(r.name)
12348
+ )
12349
+ );
12350
+ if (!answers.length) return void 0;
12351
+ return { answers, additionals: all.filter((r) => r.flush && !answers.includes(r)) };
12352
+ }
12353
+ function encodeName(name) {
12354
+ const parts = name.map((label) => {
12355
+ const bytes = Buffer.from(label, "utf8");
12356
+ if (!bytes.length || bytes.length > 63) throw new Error(`Invalid DNS label: ${label}`);
12357
+ return Buffer.concat([Buffer.from([bytes.length]), bytes]);
12358
+ });
12359
+ const out = Buffer.concat([...parts, Buffer.from([0])]);
12360
+ if (out.length > 255) throw new Error("DNS name too long");
12361
+ return out;
12362
+ }
12363
+ function ipv6Bytes(address) {
12364
+ const [head, tail] = address.includes("::") ? address.split("::") : [address, void 0];
12365
+ const h = head ? head.split(":") : [];
12366
+ const t = tail ? tail.split(":") : [];
12367
+ const groups2 = tail === void 0 ? h : [...h, ...Array(8 - h.length - t.length).fill("0"), ...t];
12368
+ const out = Buffer.alloc(16);
12369
+ groups2.forEach((g, i) => out.writeUInt16BE(parseInt(g, 16), i * 2));
12370
+ return out;
12371
+ }
12372
+ function rdata(r) {
12373
+ if (r.type === TYPE.PTR) return encodeName(r.target);
12374
+ if (r.type === TYPE.SRV) {
12375
+ const head = Buffer.alloc(6);
12376
+ head.writeUInt16BE(r.port, 4);
12377
+ return Buffer.concat([head, encodeName(r.target)]);
12378
+ }
12379
+ if (r.type === TYPE.TXT)
12380
+ return Buffer.concat(r.strings.map((s) => Buffer.concat([Buffer.from([Buffer.byteLength(s)]), Buffer.from(s)])));
12381
+ if (r.type === TYPE.A) return Buffer.from(r.address.split(".").map(Number));
12382
+ return ipv6Bytes(r.address);
12383
+ }
12384
+ function encodeMessage(m) {
12385
+ const header = Buffer.alloc(12);
12386
+ const questions = m.questions ?? [];
12387
+ const additionals = m.additionals ?? [];
12388
+ header.writeUInt16BE(m.id ?? 0, 0);
12389
+ header.writeUInt16BE(m.flags ?? FLAGS_RESPONSE, 2);
12390
+ header.writeUInt16BE(questions.length, 4);
12391
+ header.writeUInt16BE(m.answers.length, 6);
12392
+ header.writeUInt16BE(additionals.length, 10);
12393
+ const body = [
12394
+ ...questions.map((q) => {
12395
+ const tail = Buffer.alloc(4);
12396
+ tail.writeUInt16BE(q.type, 0);
12397
+ tail.writeUInt16BE(q.qclass, 2);
12398
+ return Buffer.concat([encodeName(q.name), tail]);
12399
+ }),
12400
+ ...[...m.answers, ...additionals].map((r) => {
12401
+ const data = rdata(r);
12402
+ const fixed = Buffer.alloc(10);
12403
+ fixed.writeUInt16BE(r.type, 0);
12404
+ fixed.writeUInt16BE(CLASS_IN | (r.flush ? CACHE_FLUSH : 0), 2);
12405
+ fixed.writeUInt32BE(r.ttl, 4);
12406
+ fixed.writeUInt16BE(data.length, 8);
12407
+ return Buffer.concat([encodeName(r.name), fixed, data]);
12408
+ })
12409
+ ];
12410
+ return Buffer.concat([header, ...body]);
12411
+ }
12412
+ function readName(buf, offset) {
12413
+ const name = [];
12414
+ let pos = offset;
12415
+ let next = -1;
12416
+ let size = 1;
12417
+ for (; ; ) {
12418
+ if (pos >= buf.length) throw new Error("DNS name out of bounds");
12419
+ const len = buf[pos];
12420
+ if ((len & 192) === 192) {
12421
+ if (pos + 1 >= buf.length) throw new Error("DNS pointer out of bounds");
12422
+ const target = (len & 63) << 8 | buf[pos + 1];
12423
+ if (target >= pos) throw new Error("DNS pointer loop");
12424
+ if (next < 0) next = pos + 2;
12425
+ pos = target;
12426
+ continue;
12427
+ }
12428
+ if (len & 192) throw new Error("Invalid DNS label type");
12429
+ if (len === 0) return { name, next: next < 0 ? pos + 1 : next };
12430
+ if (pos + 1 + len > buf.length) throw new Error("DNS label out of bounds");
12431
+ if ((size += len + 1) > 255) throw new Error("DNS name too long");
12432
+ name.push(buf.toString("utf8", pos + 1, pos + 1 + len));
12433
+ pos += 1 + len;
12434
+ }
12435
+ }
12436
+ function need(buf, end) {
12437
+ if (end > buf.length) throw new Error("DNS message truncated");
12438
+ }
12439
+ function readRecord$1(buf, offset) {
12440
+ const { name, next } = readName(buf, offset);
12441
+ need(buf, next + 10);
12442
+ const type2 = buf.readUInt16BE(next);
12443
+ const rclass = buf.readUInt16BE(next + 2);
12444
+ const ttl = buf.readUInt32BE(next + 4);
12445
+ const start = next + 10;
12446
+ const end = start + buf.readUInt16BE(next + 8);
12447
+ need(buf, end);
12448
+ const r = { name, type: type2, ttl, flush: (rclass & CACHE_FLUSH) !== 0 };
12449
+ if (type2 === TYPE.PTR) r.target = readName(buf, start).name;
12450
+ if (type2 === TYPE.SRV) {
12451
+ need(buf, start + 6);
12452
+ r.port = buf.readUInt16BE(start + 4);
12453
+ r.target = readName(buf, start + 6).name;
12454
+ }
12455
+ if (type2 === TYPE.TXT) {
12456
+ r.strings = [];
12457
+ for (let p = start; p < end; p += 1 + buf[p]) {
12458
+ need(buf, p + 1 + buf[p]);
12459
+ r.strings.push(buf.toString("utf8", p + 1, p + 1 + buf[p]));
12460
+ }
12461
+ }
12462
+ if (type2 === TYPE.A && end - start === 4) r.address = [...buf.subarray(start, end)].join(".");
12463
+ if (type2 === TYPE.AAAA && end - start === 16)
12464
+ r.address = Array.from({ length: 8 }, (_, i) => buf.readUInt16BE(start + i * 2).toString(16)).join(":");
12465
+ return { record: r, next: end };
12466
+ }
12467
+ function parseMessage(buf) {
12468
+ need(buf, 12);
12469
+ const count = (i) => buf.readUInt16BE(4 + i * 2);
12470
+ const m = { id: buf.readUInt16BE(0), flags: buf.readUInt16BE(2), questions: [], answers: [], additionals: [] };
12471
+ let pos = 12;
12472
+ for (let i = 0; i < count(0); i++) {
12473
+ const { name, next } = readName(buf, pos);
12474
+ need(buf, next + 4);
12475
+ m.questions.push({ name, type: buf.readUInt16BE(next), qclass: buf.readUInt16BE(next + 2) });
12476
+ pos = next + 4;
12477
+ }
12478
+ if (!(m.flags & QR)) return m;
12479
+ for (let i = 0; i < count(1) + count(2) + count(3); i++) {
12480
+ const { record, next } = readRecord$1(buf, pos);
12481
+ (i < count(1) ? m.answers : m.additionals).push(record);
12482
+ pos = next;
12483
+ }
12484
+ return m;
12485
+ }
12486
+ const GROUP = "224.0.0.251";
12487
+ const PORT = 5353;
12488
+ function lanAddresses() {
12489
+ 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));
12490
+ const of = (family) => [...new Set(all.filter((a) => a.family === family).map((a) => a.address))];
12491
+ return { v4: of("IPv4"), v6: of("IPv6") };
12492
+ }
12493
+ const stderrLog = (line) => process.stderr.write(line + "\n");
12494
+ function advertise(ad, log = stderrLog) {
12495
+ const instance = instanceLabel(ad.name, ad.id);
12496
+ const current = (ttl) => records({ ...ad, ...(ad.addresses ?? lanAddresses)() }, ttl);
12497
+ const timers = [];
12498
+ let closing;
12499
+ let closed = false;
12500
+ let sendFailed = false;
12501
+ const socket = createSocket({ type: "udp4", reuseAddr: true, reusePort: process.platform === "linux" });
12502
+ const stop2 = () => {
12503
+ if (closed) return;
12504
+ closed = true;
12505
+ timers.forEach(clearTimeout);
12506
+ try {
12507
+ socket.close();
12508
+ } catch {
12509
+ }
12510
+ };
12511
+ const fail = (error) => {
12512
+ if (closed) return;
12513
+ log(`mDNS advertising disabled: ${error.message}`);
12514
+ stop2();
12515
+ };
12516
+ const sendFailure = (error) => {
12517
+ if (!sendFailed) log(`mDNS send failed: ${error.message}`);
12518
+ sendFailed = true;
12519
+ };
12520
+ const send = (packet, port2 = PORT, address = GROUP, done) => {
12521
+ if (closed) return done?.();
12522
+ try {
12523
+ socket.send(packet, port2, address, (error) => {
12524
+ if (error) sendFailure(error);
12525
+ done?.();
12526
+ });
12527
+ } catch (error) {
12528
+ sendFailure(error);
12529
+ done?.();
12530
+ }
12531
+ };
12532
+ const announce = () => send(encodeMessage({ answers: current() }));
12533
+ const onMessage = (packet, from) => {
12534
+ try {
12535
+ const query = parseMessage(packet);
12536
+ if (query.flags & 32768) return;
12537
+ const reply = answer(query.questions, current());
12538
+ if (!reply) return;
12539
+ if (from.port === PORT) return send(encodeMessage(reply));
12540
+ const legacy = (r) => ({ ...r, ttl: Math.min(r.ttl, 10), flush: false });
12541
+ send(
12542
+ encodeMessage({
12543
+ id: query.id,
12544
+ flags: FLAGS_RESPONSE,
12545
+ questions: query.questions,
12546
+ answers: reply.answers.map(legacy),
12547
+ additionals: reply.additionals.map(legacy)
12548
+ }),
12549
+ from.port,
12550
+ from.address
12551
+ );
12552
+ } catch {
12553
+ }
12554
+ };
12555
+ socket.on("error", fail);
12556
+ socket.on("message", onMessage);
12557
+ try {
12558
+ socket.bind({ port: PORT, address: "0.0.0.0" }, () => {
12559
+ try {
12560
+ socket.setMulticastTTL(255);
12561
+ socket.setMulticastLoopback(true);
12562
+ } catch (error) {
12563
+ return fail(error);
12564
+ }
12565
+ for (const address of lanAddresses().v4) {
12566
+ try {
12567
+ socket.addMembership(GROUP, address);
12568
+ } catch {
12569
+ }
12570
+ }
12571
+ announce();
12572
+ for (const delay2 of [1e3, 2e3]) timers.push(setTimeout(announce, delay2).unref());
12573
+ });
12574
+ } catch (error) {
12575
+ fail(error);
12576
+ }
12577
+ return {
12578
+ instance,
12579
+ close: () => closing ??= new Promise((resolve) => {
12580
+ if (closed) return resolve();
12581
+ socket.once("close", resolve);
12582
+ timers.forEach(clearTimeout);
12583
+ send(encodeMessage({ answers: current(0) }), PORT, GROUP, stop2);
12584
+ })
12585
+ };
12586
+ }
12137
12587
  const dataDirFor = (root, env = process.env) => {
12138
12588
  const directory = setting("DATA_DIR", env);
12139
12589
  return directory ? path.resolve(directory) : workspaceDataDir(root);
@@ -12144,7 +12594,7 @@ const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
12144
12594
  function launchUrl(daemon, file) {
12145
12595
  const params = new URLSearchParams({ pair: daemon.pairingCode });
12146
12596
  if (file) params.set("open", file);
12147
- return `http://${daemon.host}:${daemon.port}/#${params}`;
12597
+ return `http://${localHost(daemon.host)}:${daemon.port}/#${params}`;
12148
12598
  }
12149
12599
  function browserCommand(url, platform) {
12150
12600
  if (platform === "darwin") return { command: "open", args: [url] };
@@ -12180,7 +12630,7 @@ function running(pid) {
12180
12630
  async function serving(daemon) {
12181
12631
  try {
12182
12632
  const response = await fetch(
12183
- `http://${daemon.host}:${daemon.port}/api/health`,
12633
+ `http://${localHost(daemon.host)}:${daemon.port}/api/health`,
12184
12634
  { signal: AbortSignal.timeout(2e3) }
12185
12635
  );
12186
12636
  return response.ok && (await response.json())?.protocol === 1;
@@ -12193,24 +12643,6 @@ async function liveDaemon(dataDir) {
12193
12643
  if (!daemon || !running(daemon.pid)) return void 0;
12194
12644
  return await serving(daemon) ? daemon : void 0;
12195
12645
  }
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
12646
  const DEFAULT_HOST = "127.0.0.1";
12215
12647
  const READY_TIMEOUT = 6e4;
12216
12648
  const STOP_TIMEOUT = 1e4;
@@ -12222,10 +12654,16 @@ already serving it, then opens the paired editor in the default browser.
12222
12654
  path File or directory to open (default: $OXBIT_WORKSPACE or .)
12223
12655
 
12224
12656
  Options
12225
- -p, --port <number> Port to serve on (default: $PORT or ${DEFAULT_PORT})
12657
+ -p, --port <number> Port to serve on (default: $PORT or a free port)
12226
12658
  --host <address> Address to bind (default: $HOST or ${DEFAULT_HOST})
12659
+ --lan Serve on every network interface, allow the iOS app and
12660
+ LAN origins, and advertise the runtime over Bonjour
12227
12661
  --desktop Open in the installed Oxbit desktop application
12228
12662
  --no-open Leave the browser closed
12663
+ --keep-alive <duration>
12664
+ Stop after this long with no connected client: 75s, 15m,
12665
+ 1h, 8h, forever, or milliseconds (default:
12666
+ $OXBIT_KEEP_ALIVE or forever)
12229
12667
  -f, --foreground Serve in this terminal and stay attached
12230
12668
  --stop Stop the runtime serving the workspace
12231
12669
  --status Report the runtime serving the workspace
@@ -12241,7 +12679,9 @@ function tokenize(argv) {
12241
12679
  desktop: { type: "boolean" },
12242
12680
  port: { type: "string", short: "p" },
12243
12681
  host: { type: "string" },
12682
+ lan: { type: "boolean" },
12244
12683
  "no-open": { type: "boolean" },
12684
+ "keep-alive": { type: "string" },
12245
12685
  foreground: { type: "boolean", short: "f" },
12246
12686
  stop: { type: "boolean" },
12247
12687
  status: { type: "boolean" },
@@ -12254,6 +12694,13 @@ function tokenize(argv) {
12254
12694
  }
12255
12695
  }
12256
12696
  const text = (value) => typeof value === "string" ? value : void 0;
12697
+ const units = { "": 1, ms: 1, s: 1e3, m: 6e4, h: 36e5 };
12698
+ function parseDuration(value) {
12699
+ if (value.trim().toLowerCase() === "forever") return 0;
12700
+ const match = /^(\d+)(ms|s|m|h)?$/.exec(value.trim().toLowerCase());
12701
+ const duration = match ? Number(match[1]) * units[match[2] ?? ""] : NaN;
12702
+ return Number.isSafeInteger(duration) ? duration : void 0;
12703
+ }
12257
12704
  function parse(argv, env = process.env) {
12258
12705
  const parsed = tokenize(argv);
12259
12706
  if ("error" in parsed) return parsed;
@@ -12262,18 +12709,28 @@ function parse(argv, env = process.env) {
12262
12709
  return {
12263
12710
  error: `Expected at most one path, received ${positionals.length}`
12264
12711
  };
12265
- if (values.desktop && (values.stop || values.status || values.foreground || values["no-open"] || values.port || values.host))
12712
+ if (values.desktop && (values.stop || values.status || values.foreground || values["no-open"] || values.port || values.host || values["keep-alive"] || values.lan))
12266
12713
  return { error: "--desktop cannot be combined with browser runtime options" };
12714
+ if (values.lan && values.host)
12715
+ return { error: "--lan binds every interface and cannot be combined with --host" };
12267
12716
  const requested = text(values.port) ?? env.PORT;
12268
- const port2 = requested === void 0 ? void 0 : Number(requested);
12269
- if (port2 !== void 0 && (!Number.isInteger(port2) || port2 < 0 || port2 > 65535))
12717
+ const port2 = requested === void 0 ? 0 : Number(requested);
12718
+ if (!Number.isInteger(port2) || port2 < 0 || port2 > 65535)
12270
12719
  return {
12271
12720
  error: `Port must be a whole number between 0 and 65535, received "${requested}"`
12272
12721
  };
12722
+ const lifetime = text(values["keep-alive"]) ?? setting("KEEP_ALIVE", env);
12723
+ const keepAlive = lifetime === void 0 ? 0 : parseDuration(lifetime);
12724
+ if (keepAlive === void 0)
12725
+ return {
12726
+ error: `Keep-alive must be a duration such as 75s, 15m, 1h, forever, or milliseconds, received "${lifetime}"`
12727
+ };
12273
12728
  return {
12274
12729
  target: positionals[0] ?? setting("WORKSPACE", env) ?? ".",
12275
12730
  port: port2,
12276
- host: text(values.host) ?? env.HOST ?? DEFAULT_HOST,
12731
+ keepAlive,
12732
+ host: values.lan ? "0.0.0.0" : text(values.host) ?? env.HOST ?? DEFAULT_HOST,
12733
+ lan: values.lan === true,
12277
12734
  open: values["no-open"] !== true,
12278
12735
  foreground: values.foreground === true,
12279
12736
  action: values.help ? "help" : values.version ? "version" : values.stop ? "stop" : values.status ? "status" : values.desktop ? "desktop" : "open"
@@ -12293,9 +12750,30 @@ async function resolveTarget(target, cwd) {
12293
12750
  const root = file.startsWith(here2 + path.sep) ? here2 : path.dirname(file);
12294
12751
  return { root, file: path.relative(root, file).split(path.sep).join("/") };
12295
12752
  }
12753
+ function serveFailure(error, host, port2) {
12754
+ const failure2 = error;
12755
+ const address = `${host}:${port2 ?? 0}`;
12756
+ if (failure2.code === "EADDRINUSE")
12757
+ return `Cannot serve on ${address}: the port is in use. Stop the process holding it or choose another with --port.`;
12758
+ if (failure2.code === "EACCES" || failure2.code === "EPERM")
12759
+ return `Cannot serve on ${address}: permission denied. Choose a port above 1023 or another --host.`;
12760
+ if (failure2.code === "EADDRNOTAVAIL")
12761
+ return `Cannot serve on ${address}: the address is not available on this machine.`;
12762
+ return `The runtime could not start: ${failure2.message ?? String(error)}`;
12763
+ }
12296
12764
  async function serve(invocation, target, dataDir, env) {
12765
+ try {
12766
+ return await serveRuntime(invocation, target, dataDir, env);
12767
+ } catch (error) {
12768
+ process.stderr.write(serveFailure(error, invocation.host, invocation.port) + "\n");
12769
+ return 1;
12770
+ }
12771
+ }
12772
+ async function serveRuntime(invocation, target, dataDir, env) {
12297
12773
  const host = invocation.host;
12298
- const port2 = invocation.port ?? (await available(host, DEFAULT_PORT) ? DEFAULT_PORT : 0);
12774
+ const port2 = invocation.port;
12775
+ let stop2 = () => {
12776
+ };
12299
12777
  const runtime = await createRuntime({
12300
12778
  root: target.root,
12301
12779
  port: port2,
@@ -12304,9 +12782,16 @@ async function serve(invocation, target, dataDir, env) {
12304
12782
  pairingCode: setting("PAIRING_CODE", env),
12305
12783
  pairingAttemptsPerMinute: setting("PAIRING_ATTEMPTS_PER_MINUTE", env) === void 0 ? void 0 : Number(setting("PAIRING_ATTEMPTS_PER_MINUTE", env)),
12306
12784
  origins: setting("ORIGINS", env)?.split(",").filter(Boolean),
12307
- webRoot: setting("WEB_ROOT", env)
12785
+ webRoot: setting("WEB_ROOT", env),
12786
+ ...invocation.keepAlive ? { idleShutdown: { afterMs: invocation.keepAlive, onIdle: () => stop2() } } : {}
12308
12787
  });
12788
+ let advertiser;
12789
+ if (invocation.lan) {
12790
+ const { id, name, version } = runtime.identity;
12791
+ advertiser = advertise({ id, name, version, port: runtime.port });
12792
+ }
12309
12793
  const daemon = {
12794
+ id: runtime.identity.id,
12310
12795
  pid: process.pid,
12311
12796
  host,
12312
12797
  port: runtime.port,
@@ -12317,33 +12802,47 @@ async function serve(invocation, target, dataDir, env) {
12317
12802
  await writeRecord(dataDir, daemon);
12318
12803
  const url = launchUrl(daemon, target.file);
12319
12804
  process.stdout.write(
12320
- `Oxbit runtime: http://${host}:${runtime.port}
12805
+ (invocation.lan ? networkSummary(daemon) : `Oxbit runtime: http://${host}:${runtime.port}
12321
12806
  Workspace: ${runtime.root}
12322
12807
  Owner pairing code: ${runtime.pairingCode}
12323
- Open: ${url}
12808
+ Runtime id: ${runtime.identity.id}
12809
+ `) + `Open: ${url}
12324
12810
  `
12325
12811
  );
12326
12812
  if (invocation.open) launchBrowser(url);
12327
12813
  await new Promise((resolve) => {
12328
12814
  const shutdown = () => {
12329
- void runtime.close().then(() => removeRecord(dataDir)).then(resolve, resolve);
12815
+ void Promise.resolve(advertiser?.close()).then(() => runtime.close()).then(() => removeRecord(dataDir)).then(resolve, resolve);
12816
+ };
12817
+ stop2 = () => {
12818
+ process.stdout.write(`No client connected for ${invocation.keepAlive} ms; stopping
12819
+ `);
12820
+ shutdown();
12330
12821
  };
12331
12822
  process.on("SIGINT", shutdown);
12332
12823
  process.on("SIGTERM", shutdown);
12333
12824
  });
12334
12825
  return 0;
12335
12826
  }
12827
+ function networkSummary(daemon, address = lanUrl(daemon.port)) {
12828
+ return `Oxbit runtime on your network: ${address ?? `http://0.0.0.0:${daemon.port} (no LAN address found)`}
12829
+ Workspace: ${daemon.root}
12830
+ Owner pairing code: ${daemon.pairingCode}
12831
+ Runtime id: ${daemon.id}
12832
+ `;
12833
+ }
12336
12834
  async function detach(invocation, target, dataDir, entry) {
12337
12835
  await fs.mkdir(dataDir, { recursive: true, mode: 448 });
12338
12836
  const log = await fs.open(logFile(dataDir), "a", 384);
12339
- const args = [entry, "--foreground", "--no-open", "--host", invocation.host];
12340
- if (invocation.port !== void 0)
12341
- args.push("--port", String(invocation.port));
12837
+ const args = [entry, "--foreground", "--no-open", ...invocation.lan ? ["--lan"] : ["--host", invocation.host]];
12838
+ if (invocation.port) args.push("--port", String(invocation.port));
12839
+ args.push("--keep-alive", invocation.keepAlive ? String(invocation.keepAlive) : "forever");
12342
12840
  args.push(target.root);
12343
12841
  const env = { ...process.env, OXBIT_DATA_DIR: dataDir };
12344
12842
  delete env.PORT;
12345
12843
  delete env.HOST;
12346
12844
  delete env.OXBIT_WORKSPACE;
12845
+ delete env.OXBIT_KEEP_ALIVE;
12347
12846
  const child = spawn(process.execPath, args, {
12348
12847
  detached: true,
12349
12848
  stdio: ["ignore", log.fd, log.fd],
@@ -12401,20 +12900,13 @@ async function status(dataDir, root) {
12401
12900
  process.stdout.write(
12402
12901
  `Workspace: ${daemon.root}
12403
12902
  Runtime: http://${daemon.host}:${daemon.port}
12404
- Process: ${daemon.pid}
12903
+ ${daemon.id ? `Runtime id: ${daemon.id}
12904
+ ` : ""}Process: ${daemon.pid}
12405
12905
  Open: ${launchUrl(daemon)}
12406
12906
  `
12407
12907
  );
12408
12908
  return 0;
12409
12909
  }
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
12910
  async function run(argv, context = {}) {
12419
12911
  const {
12420
12912
  env = process.env,
@@ -12433,7 +12925,7 @@ ${USAGE}`);
12433
12925
  return 0;
12434
12926
  }
12435
12927
  if (invocation.action === "version") {
12436
- process.stdout.write(`${await version()}
12928
+ process.stdout.write(`${runtimeVersion()}
12437
12929
  `);
12438
12930
  return 0;
12439
12931
  }
@@ -12451,6 +12943,11 @@ ${USAGE}`);
12451
12943
  if (invocation.action === "status") return status(dataDir, target.root);
12452
12944
  if (invocation.foreground) return serve(invocation, target, dataDir, env);
12453
12945
  const existing = await liveDaemon(dataDir);
12946
+ if (existing && invocation.lan && !wildcardHost(existing.host)) {
12947
+ process.stderr.write(`A runtime already serves ${existing.root} on ${existing.host}. Run oxbit --stop, then oxbit --lan.
12948
+ `);
12949
+ return 1;
12950
+ }
12454
12951
  let daemon;
12455
12952
  if (existing) daemon = existing;
12456
12953
  else
@@ -12462,7 +12959,8 @@ ${USAGE}`);
12462
12959
  return 1;
12463
12960
  }
12464
12961
  const url = launchUrl(daemon, target.file);
12465
- process.stdout.write(`${daemon.root}
12962
+ process.stdout.write(invocation.lan ? `${networkSummary(daemon)}Open: ${url}
12963
+ ` : `${daemon.root}
12466
12964
  ${url}
12467
12965
  `);
12468
12966
  if (invocation.open) launchBrowser(url);