diff --git a/fastfetch/config.jsonc b/fastfetch/config.jsonc
new file mode 100644
index 0000000..53b5ca8
--- /dev/null
+++ b/fastfetch/config.jsonc
@@ -0,0 +1,65 @@
+{
+ "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
+ "logo": null,
+ "display": {
+ "separator": " ",
+ "color": "white",
+ "constants": ["\u001b[37m", "\u001b[38;5;16m", "\u001b[38;5;17m", "\u001b[38;5;18m"]
+ },
+ "modules": [
+ "break",
+ {
+ "type": "custom",
+ "key": "╭───────────────────────────────────╮"
+ },
+ {
+ "type": "kernel",
+ "key": "│ {$2}{$1} kernel",
+ "format": "{$2}{release>22}{$1} │"
+ },
+ {
+ "type": "command",
+ "key": "│ uptime",
+ "text": "uptime -p | cut -d ' ' -f 2-",
+ "format": "{>22} │"
+ },
+ {
+ "type": "shell",
+ "key": "│ {$2}{$1} shell ",
+ "format": "{$2}{pretty-name>22}{$1} │"
+ },
+ {
+ "type": "command",
+ "key": "│ {$3}{$1} mem ",
+ "text": "free -m | awk 'NR==2{printf \"%.2f GiB / %.2f GiB\",$3/1024,$2/1024}'",
+ "format": "{$3}{>22}{$1} │"
+ },
+ {
+ "type": "packages",
+ "key": "│ pkgs ",
+ "format": "{all>22} │"
+ },
+ {
+ "type": "command",
+ "key": "│ {$2}{$1} user ",
+ "text": "echo $USER",
+ "format": "{$2}{>22}{$1} │"
+ },
+ {
+ "type": "command",
+ "key": "│ hname ",
+ "text": "hostnamectl hostname",
+ "format": "{>22} │"
+ },
+ {
+ "type": "os",
+ "key": "│ {$4}{$1} distro",
+ "format": "{$4}{pretty-name>22}{$1} │"
+ },
+ {
+ "type": "custom",
+ "key": "╰───────────────────────────────────╯"
+ },
+ "break"
+ ]
+}
diff --git a/fish/config.fish b/fish/config.fish
new file mode 100644
index 0000000..1d59dc1
--- /dev/null
+++ b/fish/config.fish
@@ -0,0 +1,12 @@
+if status is-interactive
+ # Starship custom prompt
+ starship init fish | source
+
+ # Custom colours
+ cat ~/.local/state/caelestia/sequences.txt 2> /dev/null
+
+ # For jumping between prompts in foot terminal
+ function mark_prompt_start --on-event fish_prompt
+ echo -en "\e]133;A\e\\"
+ end
+end
diff --git a/fish/functions/fish_greeting.fish b/fish/functions/fish_greeting.fish
new file mode 100644
index 0000000..fcf3f6e
--- /dev/null
+++ b/fish/functions/fish_greeting.fish
@@ -0,0 +1,10 @@
+function fish_greeting
+ echo -ne '\x1b[38;5;16m' # Set colour to primary
+ echo ' ______ __ __ _ '
+ echo ' / ____/___ ____ / /__ _____/ /_(_)___ _ '
+ echo ' / / / __ `/ _ \/ / _ \/ ___/ __/ / __ `/ '
+ echo ' / /___/ /_/ / __/ / __(__ ) /_/ / /_/ / '
+ echo ' \____/\__,_/\___/_/\___/____/\__/_/\__,_/ '
+ set_color normal
+ fastfetch --key-padding-left 5
+end
diff --git a/foot/foot.ini b/foot/foot.ini
new file mode 100644
index 0000000..8efd16b
--- /dev/null
+++ b/foot/foot.ini
@@ -0,0 +1,28 @@
+shell=fish
+title=foot
+font=JetBrains Mono Nerd Font:size=12
+letter-spacing=0
+dpi-aware=no
+pad=25x25
+bold-text-in-bright=no
+gamma-correct-blending=no
+
+[scrollback]
+lines=10000
+
+[cursor]
+style=beam
+beam-thickness=1.5
+
+[colors]
+alpha=0.78
+
+[key-bindings]
+scrollback-up-page=Page_Up
+scrollback-down-page=Page_Down
+search-start=Control+f
+
+[search-bindings]
+cancel=Escape
+find-prev=Shift+F3
+find-next=F3 Control+G
diff --git a/.gitignore b/hypr/.gitignore
similarity index 73%
rename from .gitignore
rename to hypr/.gitignore
index e0b7a30..ddb8cb7 100644
--- a/.gitignore
+++ b/hypr/.gitignore
@@ -1,4 +1,3 @@
-/hyprland/ignore.conf
/hyprland/overrides.conf
/scheme/current.conf
/hyprlock.conf
diff --git a/hypridle.conf b/hypr/hypridle.conf
similarity index 100%
rename from hypridle.conf
rename to hypr/hypridle.conf
diff --git a/hyprland.conf b/hypr/hyprland.conf
similarity index 92%
rename from hyprland.conf
rename to hypr/hyprland.conf
index fde72c1..90302bb 100644
--- a/hyprland.conf
+++ b/hypr/hyprland.conf
@@ -95,6 +95,6 @@ source = $hypr/colours.conf
exec = ~/.config/hypr/scripts/get-overrides.fish
source = $hypr/overrides.conf
-# Stuff to not put in git
-exec = test -f $hypr/ignore.conf || touch $hypr/ignore.conf
-source = $hypr/ignore.conf
+# User styles in ~/.config/caelestia
+exec = test -f ~/.config/caelestia/hypr.conf || touch ~/.config/caelestia/hypr.conf
+source = ~/.config/caelestia/hypr.conf
diff --git a/hyprland/animations.conf b/hypr/hyprland/animations.conf
similarity index 100%
rename from hyprland/animations.conf
rename to hypr/hyprland/animations.conf
diff --git a/hyprland/colours.conf b/hypr/hyprland/colours.conf
similarity index 76%
rename from hyprland/colours.conf
rename to hypr/hyprland/colours.conf
index 7e27dff..bbd64bb 100644
--- a/hyprland/colours.conf
+++ b/hypr/hyprland/colours.conf
@@ -1,5 +1,3 @@
-exec-once = ~/.config/hypr/scripts/monitor-scheme.fish
-exec = ~/.config/hypr/scripts/gen-scheme.fish
source = ~/.config/hypr/scheme/current.conf
group {
diff --git a/hyprland/decoration.conf b/hypr/hyprland/decoration.conf
similarity index 100%
rename from hyprland/decoration.conf
rename to hypr/hyprland/decoration.conf
diff --git a/hypr/hyprland/env.conf b/hypr/hyprland/env.conf
new file mode 100644
index 0000000..b24a845
--- /dev/null
+++ b/hypr/hyprland/env.conf
@@ -0,0 +1,21 @@
+# ############# Themes #############
+env = QT_QPA_PLATFORMTHEME, qt5ct
+env = QT_WAYLAND_DISABLE_WINDOWDECORATION, 1
+env = QT_AUTO_SCREEN_SCALE_FACTOR, 1
+env = XCURSOR_THEME, sweet-rainbow
+env = XCURSOR_SIZE, 24
+
+# ######## Toolkit backends ########
+env = GDK_BACKEND, wayland,x11
+env = QT_QPA_PLATFORM, wayland;xcb
+env = SDL_VIDEODRIVER, wayland,x11
+env = CLUTTER_BACKEND, wayland
+env = ELECTRON_OZONE_PLATFORM_HINT, auto
+
+# ####### XDG specifications #######
+env = XDG_CURRENT_DESKTOP, Hyprland
+env = XDG_SESSION_TYPE, wayland
+env = XDG_SESSION_DESKTOP, Hyprland
+
+# ############# Others #############
+env = _JAVA_AWT_WM_NONREPARENTING, 1
diff --git a/hyprland/execs.conf b/hypr/hyprland/execs.conf
similarity index 95%
rename from hyprland/execs.conf
rename to hypr/hyprland/execs.conf
index 57eec0b..3a7f1ce 100644
--- a/hyprland/execs.conf
+++ b/hypr/hyprland/execs.conf
@@ -1,4 +1,4 @@
-# Core components (authentication, lock screen)
+# Keyring and auth
exec-once = gnome-keyring-daemon --start --components=secrets
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
diff --git a/hyprland/keybinds.conf b/hypr/hyprland/keybinds.conf
similarity index 97%
rename from hyprland/keybinds.conf
rename to hypr/hyprland/keybinds.conf
index e4ffb7c..fc5c531 100644
--- a/hyprland/keybinds.conf
+++ b/hypr/hyprland/keybinds.conf
@@ -147,7 +147,6 @@ bind = Super, E, exec, app2unit -- thunar
bind = Super+Alt, E, exec, app2unit -- nemo
bind = Ctrl+Alt, Escape, exec, app2unit -- qps
bind = Ctrl+Alt, V, exec, app2unit -- pavucontrol
-bind = Ctrl+Super, Slash, exec, pkill fuzzel || fuzzel --launch-prefix='app2unit --fuzzel-compat -- ' # Secondary app launcher
# Utilities
bindl = , Print, exec, caelestia screenshot # Full screen capture > clipboard
@@ -164,9 +163,6 @@ bindl = Super+Shift, M, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindle = , XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 10%+
bindle = , XF86AudioLowerVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume @DEFAULT_AUDIO_SINK@ 10%-
-# Power
-bind = Ctrl+Shift+Alt, Delete, exec, pkill wlogout || wlogout -p layer-shell
-
# Lock and sleep
bind = Super, L, exec, loginctl lock-session
bind = Super+Shift, L, exec, systemctl suspend-then-hibernate
diff --git a/hyprland/rules.conf b/hypr/hyprland/rules.conf
similarity index 100%
rename from hyprland/rules.conf
rename to hypr/hyprland/rules.conf
diff --git a/scheme/default.conf b/hypr/scheme/default.conf
similarity index 100%
rename from scheme/default.conf
rename to hypr/scheme/default.conf
diff --git a/scripts/battery.fish b/hypr/scripts/battery.fish
similarity index 100%
rename from scripts/battery.fish
rename to hypr/scripts/battery.fish
diff --git a/scripts/gen-hyprlock.fish b/hypr/scripts/gen-hyprlock.fish
similarity index 100%
rename from scripts/gen-hyprlock.fish
rename to hypr/scripts/gen-hyprlock.fish
diff --git a/scripts/get-overrides.fish b/hypr/scripts/get-overrides.fish
similarity index 100%
rename from scripts/get-overrides.fish
rename to hypr/scripts/get-overrides.fish
diff --git a/scripts/monitor-config.fish b/hypr/scripts/monitor-config.fish
similarity index 100%
rename from scripts/monitor-config.fish
rename to hypr/scripts/monitor-config.fish
diff --git a/scripts/monitor-hyprlock.fish b/hypr/scripts/monitor-hyprlock.fish
similarity index 100%
rename from scripts/monitor-hyprlock.fish
rename to hypr/scripts/monitor-hyprlock.fish
diff --git a/scripts/templates/hyprland/aesthetic.conf b/hypr/scripts/templates/hyprland/aesthetic.conf
similarity index 100%
rename from scripts/templates/hyprland/aesthetic.conf
rename to hypr/scripts/templates/hyprland/aesthetic.conf
diff --git a/scripts/templates/hyprland/functional.conf b/hypr/scripts/templates/hyprland/functional.conf
similarity index 100%
rename from scripts/templates/hyprland/functional.conf
rename to hypr/scripts/templates/hyprland/functional.conf
diff --git a/scripts/templates/hyprlock/base.conf b/hypr/scripts/templates/hyprlock/base.conf
similarity index 100%
rename from scripts/templates/hyprlock/base.conf
rename to hypr/scripts/templates/hyprlock/base.conf
diff --git a/scripts/templates/hyprlock/futuristic/main.conf b/hypr/scripts/templates/hyprlock/futuristic/main.conf
similarity index 100%
rename from scripts/templates/hyprlock/futuristic/main.conf
rename to hypr/scripts/templates/hyprlock/futuristic/main.conf
diff --git a/scripts/templates/hyprlock/futuristic/per-monitor.conf b/hypr/scripts/templates/hyprlock/futuristic/per-monitor.conf
similarity index 100%
rename from scripts/templates/hyprlock/futuristic/per-monitor.conf
rename to hypr/scripts/templates/hyprlock/futuristic/per-monitor.conf
diff --git a/scripts/templates/hyprlock/round/main.conf b/hypr/scripts/templates/hyprlock/round/main.conf
similarity index 100%
rename from scripts/templates/hyprlock/round/main.conf
rename to hypr/scripts/templates/hyprlock/round/main.conf
diff --git a/scripts/templates/hyprlock/round/per-monitor.conf b/hypr/scripts/templates/hyprlock/round/per-monitor.conf
similarity index 100%
rename from scripts/templates/hyprlock/round/per-monitor.conf
rename to hypr/scripts/templates/hyprlock/round/per-monitor.conf
diff --git a/scripts/track-time.fish b/hypr/scripts/track-time.fish
similarity index 100%
rename from scripts/track-time.fish
rename to hypr/scripts/track-time.fish
diff --git a/scripts/truncate.fish b/hypr/scripts/truncate.fish
similarity index 98%
rename from scripts/truncate.fish
rename to hypr/scripts/truncate.fish
index f9cd1b1..3585088 100755
--- a/scripts/truncate.fish
+++ b/hypr/scripts/truncate.fish
@@ -24,7 +24,7 @@ if test (get-width $font $size $string) -gt $max_width
if test (math abs $st - $ed) -le 1
set done
set string (string sub -e $idx $string)
- else
+ else
set st $idx
end
end
diff --git a/scripts/weather.fish b/hypr/scripts/weather.fish
similarity index 100%
rename from scripts/weather.fish
rename to hypr/scripts/weather.fish
diff --git a/hyprpaper.conf b/hyprpaper.conf
deleted file mode 100644
index 7d4a9af..0000000
--- a/hyprpaper.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-splash = false
-
-preload = $HOME/.local/state/caelestia/wallpaper/current
-wallpaper = , $HOME/.local/state/caelestia/wallpaper/current
diff --git a/scripts/gen-scheme.fish b/scripts/gen-scheme.fish
deleted file mode 100755
index 750b3ce..0000000
--- a/scripts/gen-scheme.fish
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/fish
-
-function read-scheme -a scheme_path
- cat $scheme_path | while read line
- set -l colour (string split ' ' $line)
- echo "\$$colour[1] = $colour[2]"
- end
-end
-
-set -q XDG_STATE_HOME && set -l state $XDG_STATE_HOME || set -l state $HOME/.local/state
-set -l scheme_path $state/caelestia/scheme/current.txt
-
-if test -f $scheme_path
- set -l tmp (mktemp)
- read-scheme $scheme_path > $tmp
- if ! cmp -s $tmp ~/.config/hypr/scheme/current.conf
- cp $tmp ~/.config/hypr/scheme/current.conf
- hyprctl reload
- end
-else
- cp ~/.config/hypr/scheme/default.conf ~/.config/hypr/scheme/current.conf
-end
diff --git a/scripts/monitor-scheme.fish b/scripts/monitor-scheme.fish
deleted file mode 100755
index 56f5a22..0000000
--- a/scripts/monitor-scheme.fish
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/fish
-
-set -q XDG_STATE_HOME && set -l state $XDG_STATE_HOME || set -l state $HOME/.local/state
-set -l scheme_path $state/caelestia/scheme/current.txt
-
-inotifywait -e 'close_write,moved_to,create' -m (dirname $scheme_path) | while read dir events file
- test "$dir$file" = $scheme_path && hyprctl reload
-end
diff --git a/spicetify/Themes/caelestia/user.css b/spicetify/Themes/caelestia/user.css
new file mode 100644
index 0000000..4d54760
--- /dev/null
+++ b/spicetify/Themes/caelestia/user.css
@@ -0,0 +1,29 @@
+/* Background buttons, main play/pause button and progress bar */
+.encore-bright-accent-set,
+.encore-inverted-light-set,
+.x-progressBar-fillColor {
+ background-color: var(--spice-button-active) !important;
+}
+
+/* Left sidebar search button */
+.x-filterBox-expandButton {
+ border-radius: 1000px !important;
+}
+
+/* Queue and recently played right sidebar buttons */
+.encore-text-body-small-bold {
+ border-radius: 10px !important;
+}
+
+/* Hover animations for buttons, tracklist and context menu */
+button,
+.main-trackList-trackListRow,
+.main-contextMenu-menuItemButton {
+ transition: color 200ms cubic-bezier(0, 0.55, 0.45, 1), background-color 200ms cubic-bezier(0, 0.55, 0.45, 1) !important;
+}
+
+/* Search bar and dropdown */
+.main-topBar-searchBar,
+#recent-searches-dropdown > div {
+ background-color: var(--spice-main-elevated) !important;
+}
diff --git a/starship.toml b/starship.toml
new file mode 100644
index 0000000..7e57e6a
--- /dev/null
+++ b/starship.toml
@@ -0,0 +1,316 @@
+# version: 1.0.0
+
+add_newline = false
+continuation_prompt = "[▸▹ ](dimmed white)"
+
+format = """($nix_shell$container$fill$git_metrics\n)$cmd_duration\
+$hostname\
+$localip\
+$shlvl\
+$shell\
+$env_var\
+$jobs\
+$sudo\
+$username\
+$character"""
+
+right_format = """
+$singularity\
+$kubernetes\
+$directory\
+$vcsh\
+$fossil_branch\
+$git_branch\
+$git_commit\
+$git_state\
+$git_status\
+$hg_branch\
+$pijul_channel\
+$docker_context\
+$package\
+$c\
+$cmake\
+$cobol\
+$daml\
+$dart\
+$deno\
+$dotnet\
+$elixir\
+$elm\
+$erlang\
+$fennel\
+$golang\
+$guix_shell\
+$haskell\
+$haxe\
+$helm\
+$java\
+$julia\
+$kotlin\
+$gradle\
+$lua\
+$nim\
+$nodejs\
+$ocaml\
+$opa\
+$perl\
+$php\
+$pulumi\
+$purescript\
+$python\
+$raku\
+$rlang\
+$red\
+$ruby\
+$rust\
+$scala\
+$solidity\
+$swift\
+$terraform\
+$vlang\
+$vagrant\
+$zig\
+$buf\
+$conda\
+$meson\
+$spack\
+$memory_usage\
+$aws\
+$gcloud\
+$openstack\
+$azure\
+$crystal\
+$custom\
+$status\
+$os\
+$battery\
+$time"""
+
+[fill]
+symbol = ' '
+
+[character]
+format = "$symbol "
+success_symbol = "[◎](bold italic bright-yellow)"
+error_symbol = "[○](italic purple)"
+vimcmd_symbol = "[■](italic dimmed green)"
+# not supported in zsh
+vimcmd_replace_one_symbol = "◌"
+vimcmd_replace_symbol = "□"
+vimcmd_visual_symbol = "▼"
+
+[env_var.VIMSHELL]
+format = "[$env_value]($style)"
+style = 'green italic'
+
+[sudo]
+format = "[$symbol]($style)"
+style = "bold italic bright-purple"
+symbol = "⋈┈"
+disabled = false
+
+[username]
+style_user = "bright-yellow bold italic"
+style_root = "purple bold italic"
+format = "[⭘ $user]($style) "
+disabled = false
+show_always = false
+
+[directory]
+home_symbol = "⌂"
+truncation_length = 2
+truncation_symbol = "□ "
+read_only = " ◈"
+use_os_path_sep = true
+style = "italic blue"
+format = '[$path]($style)[$read_only]($read_only_style)'
+repo_root_style = 'bold blue'
+repo_root_format = '[$before_root_path]($before_repo_root_style)[$repo_root]($repo_root_style)[$path]($style)[$read_only]($read_only_style) [△](bold bright-blue)'
+
+[cmd_duration]
+min_time = 0
+format = "[◄ $duration ](italic white)"
+
+[jobs]
+format = "[$symbol$number]($style) "
+style = "white"
+symbol = "[▶](blue italic)"
+
+[localip]
+ssh_only = true
+format = " ◯[$localipv4](bold magenta)"
+disabled = false
+
+[time]
+disabled = false
+format = "[ $time]($style)"
+time_format = "%R"
+utc_time_offset = "local"
+style = "italic dimmed white"
+
+[battery]
+format = "[ $percentage $symbol]($style)"
+full_symbol = "█"
+charging_symbol = "[↑](italic bold green)"
+discharging_symbol = "↓"
+unknown_symbol = "░"
+empty_symbol = "▃"
+
+[[battery.display]]
+threshold = 20
+style = "italic bold red"
+
+[[battery.display]]
+threshold = 60
+style = "italic dimmed bright-purple"
+
+[[battery.display]]
+threshold = 70
+style = "italic dimmed yellow"
+
+[git_branch]
+format = " [$branch(:$remote_branch)]($style)"
+symbol = "[△](bold italic bright-blue)"
+style = "italic bright-blue"
+truncation_symbol = "⋯"
+truncation_length = 11
+ignore_branches = ["main", "master"]
+only_attached = true
+
+[git_metrics]
+format = '([▴$added]($added_style))([▿$deleted]($deleted_style))'
+added_style = 'italic dimmed green'
+deleted_style = 'italic dimmed red'
+ignore_submodules = true
+disabled = false
+
+[git_status]
+style = "bold italic bright-blue"
+format = "([⎪$ahead_behind$staged$modified$untracked$renamed$deleted$conflicted$stashed⎥]($style))"
+conflicted = "[◪◦](italic bright-magenta)"
+ahead = "[▴│[${count}](bold white)│](italic green)"
+behind = "[▿│[${count}](bold white)│](italic red)"
+diverged = "[◇ ▴┤[${ahead_count}](regular white)│▿┤[${behind_count}](regular white)│](italic bright-magenta)"
+untracked = "[◌◦](italic bright-yellow)"
+stashed = "[◃◈](italic white)"
+modified = "[●◦](italic yellow)"
+staged = "[▪┤[$count](bold white)│](italic bright-cyan)"
+renamed = "[◎◦](italic bright-blue)"
+deleted = "[✕](italic red)"
+
+[deno]
+format = " [deno](italic) [∫ $version](green bold)"
+version_format = "${raw}"
+
+[lua]
+format = " [lua](italic) [${symbol}${version}]($style)"
+version_format = "${raw}"
+symbol = "⨀ "
+style = "bold bright-yellow"
+
+[nodejs]
+format = " [node](italic) [◫ ($version)](bold bright-green)"
+version_format = "${raw}"
+detect_files = ["package-lock.json", "yarn.lock"]
+detect_folders = ["node_modules"]
+detect_extensions = []
+
+[python]
+format = " [py](italic) [${symbol}${version}]($style)"
+symbol = "[⌉](bold bright-blue)⌊ "
+version_format = "${raw}"
+style = "bold bright-yellow"
+
+[ruby]
+format = " [rb](italic) [${symbol}${version}]($style)"
+symbol = "◆ "
+version_format = "${raw}"
+style = "bold red"
+
+[rust]
+format = " [rs](italic) [$symbol$version]($style)"
+symbol = "⊃ "
+version_format = "${raw}"
+style = "bold red"
+
+[package]
+format = " [pkg](italic dimmed) [$symbol$version]($style)"
+version_format = "${raw}"
+symbol = "◨ "
+style = "dimmed yellow italic bold"
+
+[swift]
+format = " [sw](italic) [${symbol}${version}]($style)"
+symbol = "◁ "
+style = "bold bright-red"
+version_format = "${raw}"
+
+[aws]
+disabled = true
+format = " [aws](italic) [$symbol $profile $region]($style)"
+style = "bold blue"
+symbol = "▲ "
+
+[buf]
+symbol = "■ "
+format = " [buf](italic) [$symbol $version $buf_version]($style)"
+
+[c]
+symbol = "ℂ "
+format = " [$symbol($version(-$name))]($style)"
+
+[conda]
+symbol = "◯ "
+format = " conda [$symbol$environment]($style)"
+
+[dart]
+symbol = "◁◅ "
+format = " dart [$symbol($version )]($style)"
+
+[docker_context]
+symbol = "◧ "
+format = " docker [$symbol$context]($style)"
+
+[elixir]
+symbol = "△ "
+format = " exs [$symbol $version OTP $otp_version ]($style)"
+
+[elm]
+symbol = "◩ "
+format = " elm [$symbol($version )]($style)"
+
+[golang]
+symbol = "∩ "
+format = " go [$symbol($version )]($style)"
+
+[haskell]
+symbol = "❯λ "
+format = " hs [$symbol($version )]($style)"
+
+[java]
+symbol = "∪ "
+format = " java [${symbol}(${version} )]($style)"
+
+[julia]
+symbol = "◎ "
+format = " jl [$symbol($version )]($style)"
+
+[memory_usage]
+symbol = "▪▫▪ "
+format = " mem [${ram}( ${swap})]($style)"
+
+[nim]
+symbol = "▴▲▴ "
+format = " nim [$symbol($version )]($style)"
+
+[nix_shell]
+style = 'bold italic dimmed blue'
+symbol = '✶'
+format = '[$symbol nix⎪$state⎪]($style) [$name](italic dimmed white)'
+impure_msg = '[⌽](bold dimmed red)'
+pure_msg = '[⌾](bold dimmed green)'
+unknown_msg = '[◌](bold dimmed ellow)'
+
+[spack]
+symbol = "◇ "
+format = " spack [$symbol$environment]($style)"
diff --git a/vscode/User/keybindings.json b/vscode/User/keybindings.json
new file mode 100644
index 0000000..75b3862
--- /dev/null
+++ b/vscode/User/keybindings.json
@@ -0,0 +1,34 @@
+[
+ {
+ "key": "ctrl+shift+alt+r",
+ "command": "workbench.action.reloadWindow"
+ },
+ {
+ "key": "ctrl+pageup",
+ "command": "workbench.action.previousEditor"
+ },
+ {
+ "key": "ctrl+pagedown",
+ "command": "workbench.action.nextEditor"
+ },
+ {
+ "key": "ctrl+shift+up",
+ "command": "editor.action.moveLinesUpAction",
+ "when": "editorTextFocus && !editorReadonly"
+ },
+ {
+ "key": "ctrl+shift+down",
+ "command": "editor.action.moveLinesDownAction",
+ "when": "editorTextFocus && !editorReadonly"
+ },
+ {
+ "key": "shift+alt+up",
+ "command": "editor.action.insertCursorAbove",
+ "when": "editorTextFocus"
+ },
+ {
+ "key": "shift+alt+down",
+ "command": "editor.action.insertCursorBelow",
+ "when": "editorTextFocus"
+ }
+]
diff --git a/vscode/User/settings.json b/vscode/User/settings.json
new file mode 100644
index 0000000..52283c4
--- /dev/null
+++ b/vscode/User/settings.json
@@ -0,0 +1,44 @@
+{
+ "editor.renderWhitespace": "trailing",
+ "editor.multiCursorModifier": "ctrlCmd",
+ "editor.cursorSmoothCaretAnimation": "on",
+ "editor.fontLigatures": true,
+ "prettier.tabWidth": 4,
+ "editor.minimap.autohide": true,
+ "security.workspace.trust.startupPrompt": "always",
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
+ "editor.formatOnSave": true,
+ "prettier.printWidth": 120,
+ "prettier.arrowParens": "avoid",
+ "workbench.colorTheme": "Caelestia",
+ "diffEditor.hideUnchangedRegions.enabled": true,
+ "workbench.list.smoothScrolling": true,
+ "editor.smoothScrolling": true,
+ "terminal.integrated.smoothScrolling": true,
+ "javascript.preferences.importModuleSpecifierEnding": "minimal",
+ "typescript.preferences.importModuleSpecifierEnding": "minimal",
+ "editor.codeActionsOnSave": {
+ "source.organizeImports": "explicit"
+ },
+ "codeium.enableCodeLens": false,
+ "typescript.preferences.preferTypeOnlyAutoImports": true,
+ "editor.suggestSelection": "recentlyUsedByPrefix",
+ "workbench.iconTheme": "catppuccin-mocha",
+ "git.enableSmartCommit": true,
+ "codeium.enableConfig": {
+ "*": true,
+ "fish": true,
+ "qml": true
+ },
+ "[c]": {
+ "editor.defaultFormatter": "llvm-vs-code-extensions.vscode-clangd"
+ },
+ "doxdocgen.generic.boolReturnsTrueFalse": false,
+ "terminal.integrated.enableMultiLinePasteWarning": "never",
+ "qt-qml.qmlls.additionalImportPaths": ["/usr/lib/qt6/qml"],
+ "[python]": {
+ "editor.defaultFormatter": "charliermarsh.ruff"
+ },
+ "ruff.lineLength": 120,
+ "python.languageServer": "Pylance"
+}
diff --git a/vscode/caelestia-vscode-integration/.gitignore b/vscode/caelestia-vscode-integration/.gitignore
new file mode 100644
index 0000000..ed1bf77
--- /dev/null
+++ b/vscode/caelestia-vscode-integration/.gitignore
@@ -0,0 +1,2 @@
+out/
+node_modules/
diff --git a/vscode/caelestia-vscode-integration/.vscode/launch.json b/vscode/caelestia-vscode-integration/.vscode/launch.json
new file mode 100644
index 0000000..1d7e770
--- /dev/null
+++ b/vscode/caelestia-vscode-integration/.vscode/launch.json
@@ -0,0 +1,17 @@
+// A launch configuration that compiles the extension and then opens it inside a new window
+// Use IntelliSense to learn about possible attributes.
+// Hover to view descriptions of existing attributes.
+// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "Run Extension",
+ "type": "extensionHost",
+ "request": "launch",
+ "args": ["--extensionDevelopmentPath=${workspaceFolder}"],
+ "outFiles": ["${workspaceFolder}/out/**/*.js"],
+ "preLaunchTask": "${defaultBuildTask}"
+ }
+ ]
+}
diff --git a/vscode/caelestia-vscode-integration/.vscodeignore b/vscode/caelestia-vscode-integration/.vscodeignore
new file mode 100644
index 0000000..7d3e5c7
--- /dev/null
+++ b/vscode/caelestia-vscode-integration/.vscodeignore
@@ -0,0 +1,11 @@
+.vscode/**
+.vscode-test/**
+src/**
+.gitignore
+.yarnrc
+vsc-extension-quickstart.md
+**/tsconfig.json
+**/eslint.config.mjs
+**/*.map
+**/*.ts
+**/.vscode-test.*
diff --git a/vscode/caelestia-vscode-integration/caelestia-vscode-integration-1.1.0.vsix b/vscode/caelestia-vscode-integration/caelestia-vscode-integration-1.1.0.vsix
new file mode 100644
index 0000000..f4745eb
Binary files /dev/null and b/vscode/caelestia-vscode-integration/caelestia-vscode-integration-1.1.0.vsix differ
diff --git a/vscode/caelestia-vscode-integration/package-lock.json b/vscode/caelestia-vscode-integration/package-lock.json
new file mode 100644
index 0000000..d97da5e
--- /dev/null
+++ b/vscode/caelestia-vscode-integration/package-lock.json
@@ -0,0 +1,2812 @@
+{
+ "name": "caelestia-vscode-integration",
+ "version": "1.0.2",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "caelestia-vscode-integration",
+ "version": "1.0.2",
+ "dependencies": {
+ "tinycolor2": "^1.6.0"
+ },
+ "devDependencies": {
+ "@types/node": "20.x",
+ "@types/tinycolor2": "^1.4.6",
+ "@types/vscode": "^1.96.0",
+ "@vscode/vsce": "^3.2.1",
+ "typescript": "^5.7.2"
+ },
+ "engines": {
+ "vscode": "^1.96.0"
+ }
+ },
+ "node_modules/@azure/abort-controller": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz",
+ "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@azure/core-auth": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.9.0.tgz",
+ "integrity": "sha512-FPwHpZywuyasDSLMqJ6fhbOK3TqUdviZNF8OqRGA4W5Ewib2lEEZ+pBsYcBa88B2NGO/SEnYPGhyBqNlE8ilSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@azure/abort-controller": "^2.0.0",
+ "@azure/core-util": "^1.11.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@azure/core-client": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.9.2.tgz",
+ "integrity": "sha512-kRdry/rav3fUKHl/aDLd/pDLcB+4pOFwPPTVEExuMyaI5r+JBbMWqRbCY1pn5BniDaU3lRxO9eaQ1AmSMehl/w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@azure/abort-controller": "^2.0.0",
+ "@azure/core-auth": "^1.4.0",
+ "@azure/core-rest-pipeline": "^1.9.1",
+ "@azure/core-tracing": "^1.0.0",
+ "@azure/core-util": "^1.6.1",
+ "@azure/logger": "^1.0.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@azure/core-rest-pipeline": {
+ "version": "1.18.2",
+ "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.18.2.tgz",
+ "integrity": "sha512-IkTf/DWKyCklEtN/WYW3lqEsIaUDshlzWRlZNNwSYtFcCBQz++OtOjxNpm8rr1VcbMS6RpjybQa3u6B6nG0zNw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@azure/abort-controller": "^2.0.0",
+ "@azure/core-auth": "^1.8.0",
+ "@azure/core-tracing": "^1.0.1",
+ "@azure/core-util": "^1.11.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.2.0",
+ "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.2.0.tgz",
+ "integrity": "sha512-UKTiEJPkWcESPYJz3X5uKRYyOcJD+4nYph+KpfdPRnQJVrZfk0KJgdnaAWKfhsBBtAf/D58Az4AvCJEmWgIBAg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@azure/core-util": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.11.0.tgz",
+ "integrity": "sha512-DxOSLua+NdpWoSqULhjDyAZTXFdP/LKkqtYuxxz1SCN289zk3OG8UOpnCQAz/tygyACBtWp/BoO72ptK7msY8g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@azure/abort-controller": "^2.0.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@azure/identity": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.6.0.tgz",
+ "integrity": "sha512-ANpO1iAvcZmpD4QY7/kaE/P2n66pRXsDp3nMUC6Ow3c9KfXOZF7qMU9VgqPw8m7adP7TVIbVyrCEmD9cth3KQQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@azure/abort-controller": "^2.0.0",
+ "@azure/core-auth": "^1.9.0",
+ "@azure/core-client": "^1.9.2",
+ "@azure/core-rest-pipeline": "^1.17.0",
+ "@azure/core-tracing": "^1.0.0",
+ "@azure/core-util": "^1.11.0",
+ "@azure/logger": "^1.0.0",
+ "@azure/msal-browser": "^4.0.1",
+ "@azure/msal-node": "^2.15.0",
+ "events": "^3.0.0",
+ "jws": "^4.0.0",
+ "open": "^8.0.0",
+ "stoppable": "^1.1.0",
+ "tslib": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@azure/logger": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.4.tgz",
+ "integrity": "sha512-4IXXzcCdLdlXuCG+8UKEwLA1T1NHqUfanhXYHiQTn+6sfWCZXduqbtXDGceg3Ce5QxTGo7EqmbV6Bi+aqKuClQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@azure/msal-browser": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-4.0.2.tgz",
+ "integrity": "sha512-bq6PasUpJgBSOSMeSlh8gXh4LZGgAaPoJFNcu5u0zxwueh+I8NpMb9oxlCfS/8CJHyXUhTUAMLSnvThemNdyQw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@azure/msal-common": "15.0.2"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@azure/msal-common": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-15.0.2.tgz",
+ "integrity": "sha512-RQHmI5vOMYLNSO0ER7d/O9TojWWEn4m0YtWbL8mZthkKGQI7ALn5ONHUVTUSxSVYwGYdHGNrwiHAzQhboqwZzQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@azure/msal-node": {
+ "version": "2.16.2",
+ "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.16.2.tgz",
+ "integrity": "sha512-An7l1hEr0w1HMMh1LU+rtDtqL7/jw74ORlc9Wnh06v7TU/xpG39/Zdr1ZJu3QpjUfKJ+E0/OXMW8DRSWTlh7qQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@azure/msal-common": "14.16.0",
+ "jsonwebtoken": "^9.0.0",
+ "uuid": "^8.3.0"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/@azure/msal-node/node_modules/@azure/msal-common": {
+ "version": "14.16.0",
+ "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.16.0.tgz",
+ "integrity": "sha512-1KOZj9IpcDSwpNiQNjt0jDYZpQvNZay7QAEi/5DLubay40iGYtLzya/jbjRPLyOTZhEKyL1MzPuw2HqBCjceYA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@types/node": {
+ "version": "20.17.16",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.16.tgz",
+ "integrity": "sha512-vOTpLduLkZXePLxHiHsBLp98mHGnl8RptV4YAO3HfKO5UHjDvySGbxKtpYfy8Sx5+WKcgc45qNreJJRVM3L6mw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~6.19.2"
+ }
+ },
+ "node_modules/@types/tinycolor2": {
+ "version": "1.4.6",
+ "resolved": "https://registry.npmjs.org/@types/tinycolor2/-/tinycolor2-1.4.6.tgz",
+ "integrity": "sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/vscode": {
+ "version": "1.96.0",
+ "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.96.0.tgz",
+ "integrity": "sha512-qvZbSZo+K4ZYmmDuaodMbAa67Pl6VDQzLKFka6rq+3WUTY4Kro7Bwoi0CuZLO/wema0ygcmpwow7zZfPJTs5jg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@vscode/vsce": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-3.2.1.tgz",
+ "integrity": "sha512-AY9vBjwExakK1c0cI/3NN2Ey0EgiKLBye/fxl/ue+o4q6RZ7N+xzd1jAD6eI6eBeMVANi617+V2rxIAkDPco2Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@azure/identity": "^4.1.0",
+ "@vscode/vsce-sign": "^2.0.0",
+ "azure-devops-node-api": "^12.5.0",
+ "chalk": "^2.4.2",
+ "cheerio": "^1.0.0-rc.9",
+ "cockatiel": "^3.1.2",
+ "commander": "^6.2.1",
+ "form-data": "^4.0.0",
+ "glob": "^11.0.0",
+ "hosted-git-info": "^4.0.2",
+ "jsonc-parser": "^3.2.0",
+ "leven": "^3.1.0",
+ "markdown-it": "^14.1.0",
+ "mime": "^1.3.4",
+ "minimatch": "^3.0.3",
+ "parse-semver": "^1.1.1",
+ "read": "^1.0.7",
+ "semver": "^7.5.2",
+ "tmp": "^0.2.3",
+ "typed-rest-client": "^1.8.4",
+ "url-join": "^4.0.1",
+ "xml2js": "^0.5.0",
+ "yauzl": "^2.3.1",
+ "yazl": "^2.2.2"
+ },
+ "bin": {
+ "vsce": "vsce"
+ },
+ "engines": {
+ "node": ">= 20"
+ },
+ "optionalDependencies": {
+ "keytar": "^7.7.0"
+ }
+ },
+ "node_modules/@vscode/vsce-sign": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@vscode/vsce-sign/-/vsce-sign-2.0.5.tgz",
+ "integrity": "sha512-GfYWrsT/vypTMDMgWDm75iDmAOMe7F71sZECJ+Ws6/xyIfmB3ELVnVN+LwMFAvmXY+e6eWhR2EzNGF/zAhWY3Q==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "SEE LICENSE IN LICENSE.txt",
+ "optionalDependencies": {
+ "@vscode/vsce-sign-alpine-arm64": "2.0.2",
+ "@vscode/vsce-sign-alpine-x64": "2.0.2",
+ "@vscode/vsce-sign-darwin-arm64": "2.0.2",
+ "@vscode/vsce-sign-darwin-x64": "2.0.2",
+ "@vscode/vsce-sign-linux-arm": "2.0.2",
+ "@vscode/vsce-sign-linux-arm64": "2.0.2",
+ "@vscode/vsce-sign-linux-x64": "2.0.2",
+ "@vscode/vsce-sign-win32-arm64": "2.0.2",
+ "@vscode/vsce-sign-win32-x64": "2.0.2"
+ }
+ },
+ "node_modules/@vscode/vsce-sign-alpine-arm64": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-arm64/-/vsce-sign-alpine-arm64-2.0.2.tgz",
+ "integrity": "sha512-E80YvqhtZCLUv3YAf9+tIbbqoinWLCO/B3j03yQPbjT3ZIHCliKZlsy1peNc4XNZ5uIb87Jn0HWx/ZbPXviuAQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "SEE LICENSE IN LICENSE.txt",
+ "optional": true,
+ "os": [
+ "alpine"
+ ]
+ },
+ "node_modules/@vscode/vsce-sign-alpine-x64": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-x64/-/vsce-sign-alpine-x64-2.0.2.tgz",
+ "integrity": "sha512-n1WC15MSMvTaeJ5KjWCzo0nzjydwxLyoHiMJHu1Ov0VWTZiddasmOQHekA47tFRycnt4FsQrlkSCTdgHppn6bw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "SEE LICENSE IN LICENSE.txt",
+ "optional": true,
+ "os": [
+ "alpine"
+ ]
+ },
+ "node_modules/@vscode/vsce-sign-darwin-arm64": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-arm64/-/vsce-sign-darwin-arm64-2.0.2.tgz",
+ "integrity": "sha512-rz8F4pMcxPj8fjKAJIfkUT8ycG9CjIp888VY/6pq6cuI2qEzQ0+b5p3xb74CJnBbSC0p2eRVoe+WgNCAxCLtzQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "SEE LICENSE IN LICENSE.txt",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@vscode/vsce-sign-darwin-x64": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-x64/-/vsce-sign-darwin-x64-2.0.2.tgz",
+ "integrity": "sha512-MCjPrQ5MY/QVoZ6n0D92jcRb7eYvxAujG/AH2yM6lI0BspvJQxp0o9s5oiAM9r32r9tkLpiy5s2icsbwefAQIw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "SEE LICENSE IN LICENSE.txt",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@vscode/vsce-sign-linux-arm": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm/-/vsce-sign-linux-arm-2.0.2.tgz",
+ "integrity": "sha512-Fkb5jpbfhZKVw3xwR6t7WYfwKZktVGNXdg1m08uEx1anO0oUPUkoQRsNm4QniL3hmfw0ijg00YA6TrxCRkPVOQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "SEE LICENSE IN LICENSE.txt",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@vscode/vsce-sign-linux-arm64": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm64/-/vsce-sign-linux-arm64-2.0.2.tgz",
+ "integrity": "sha512-Ybeu7cA6+/koxszsORXX0OJk9N0GgfHq70Wqi4vv2iJCZvBrOWwcIrxKjvFtwyDgdeQzgPheH5nhLVl5eQy7WA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "SEE LICENSE IN LICENSE.txt",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@vscode/vsce-sign-linux-x64": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-x64/-/vsce-sign-linux-x64-2.0.2.tgz",
+ "integrity": "sha512-NsPPFVtLaTlVJKOiTnO8Cl78LZNWy0Q8iAg+LlBiCDEgC12Gt4WXOSs2pmcIjDYzj2kY4NwdeN1mBTaujYZaPg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "SEE LICENSE IN LICENSE.txt",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@vscode/vsce-sign-win32-arm64": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-arm64/-/vsce-sign-win32-arm64-2.0.2.tgz",
+ "integrity": "sha512-wPs848ymZ3Ny+Y1Qlyi7mcT6VSigG89FWQnp2qRYCyMhdJxOpA4lDwxzlpL8fG6xC8GjQjGDkwbkWUcCobvksQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "SEE LICENSE IN LICENSE.txt",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@vscode/vsce-sign-win32-x64": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-x64/-/vsce-sign-win32-x64-2.0.2.tgz",
+ "integrity": "sha512-pAiRN6qSAhDM5SVOIxgx+2xnoVUePHbRNC7OD2aOR3WltTKxxF25OfpK8h8UQ7A0BuRkSgREbB59DBlFk4iAeg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "SEE LICENSE IN LICENSE.txt",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@vscode/vsce/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@vscode/vsce/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@vscode/vsce/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@vscode/vsce/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@vscode/vsce/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@vscode/vsce/node_modules/glob": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz",
+ "integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^4.0.1",
+ "minimatch": "^10.0.0",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^2.0.0"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@vscode/vsce/node_modules/glob/node_modules/minimatch": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz",
+ "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@vscode/vsce/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@vscode/vsce/node_modules/jackspeak": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz",
+ "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@vscode/vsce/node_modules/lru-cache": {
+ "version": "11.0.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz",
+ "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "node_modules/@vscode/vsce/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/@vscode/vsce/node_modules/minimatch/node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/@vscode/vsce/node_modules/path-scurry": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz",
+ "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^11.0.0",
+ "minipass": "^7.1.2"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@vscode/vsce/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/agent-base": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz",
+ "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "Python-2.0"
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/azure-devops-node-api": {
+ "version": "12.5.0",
+ "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-12.5.0.tgz",
+ "integrity": "sha512-R5eFskGvOm3U/GzeAuxRkUsAl0hrAwGgWn6zAd2KrZmrEhWZVqLew4OOupbQlXUuojUzpGtq62SmdhJ06N88og==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tunnel": "0.0.6",
+ "typed-rest-client": "^1.8.4"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "dev": true,
+ "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",
+ "optional": true
+ },
+ "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==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/buffer-equal-constant-time": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/call-bind-apply-helpers": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz",
+ "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/call-bound": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz",
+ "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "get-intrinsic": "^1.2.6"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/cheerio": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz",
+ "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cheerio-select": "^2.1.0",
+ "dom-serializer": "^2.0.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.1.0",
+ "encoding-sniffer": "^0.2.0",
+ "htmlparser2": "^9.1.0",
+ "parse5": "^7.1.2",
+ "parse5-htmlparser2-tree-adapter": "^7.0.0",
+ "parse5-parser-stream": "^7.1.2",
+ "undici": "^6.19.5",
+ "whatwg-mimetype": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=18.17"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/cheerio?sponsor=1"
+ }
+ },
+ "node_modules/cheerio-select": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz",
+ "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-select": "^5.1.0",
+ "css-what": "^6.1.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+ "dev": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/cockatiel": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/cockatiel/-/cockatiel-3.2.1.tgz",
+ "integrity": "sha512-gfrHV6ZPkquExvMh9IOkKsBzNDk6sDuZ6DdBGUBkvFnTCqCxzpuq48RySgP0AnaqQkw2zynOFj9yly6T1Q2G5Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/commander": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
+ "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/css-select": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
+ "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
+ "dev": true,
+ "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.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
+ "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decompress-response": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "mimic-response": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/define-lazy-prop": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
+ "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/detect-libc": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
+ "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "optional": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/ecdsa-sig-formatter": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/encoding-sniffer": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz",
+ "integrity": "sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "iconv-lite": "^0.6.3",
+ "whatwg-encoding": "^3.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/encoding-sniffer?sponsor=1"
+ }
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-object-atoms": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "node_modules/expand-template": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
+ "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
+ "dev": true,
+ "license": "(MIT OR WTFPL)",
+ "optional": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pend": "~1.2.0"
+ }
+ },
+ "node_modules/foreground-child": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
+ "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz",
+ "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz",
+ "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "es-define-property": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "function-bind": "^1.1.2",
+ "get-proto": "^1.0.0",
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "dunder-proto": "^1.0.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/github-from-package": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
+ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/gopd": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/hosted-git-info": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/hosted-git-info/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/htmlparser2": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz",
+ "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==",
+ "dev": true,
+ "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.1.0",
+ "entities": "^4.5.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "^7.1.2",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "dev": true,
+ "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": "BSD-3-Clause",
+ "optional": true
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "dev": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-docker": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/jsonwebtoken": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
+ "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "jws": "^3.2.2",
+ "lodash.includes": "^4.3.0",
+ "lodash.isboolean": "^3.0.3",
+ "lodash.isinteger": "^4.0.4",
+ "lodash.isnumber": "^3.0.3",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.isstring": "^4.0.1",
+ "lodash.once": "^4.0.0",
+ "ms": "^2.1.1",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": ">=12",
+ "npm": ">=6"
+ }
+ },
+ "node_modules/jsonwebtoken/node_modules/jwa": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
+ "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-equal-constant-time": "1.0.1",
+ "ecdsa-sig-formatter": "1.0.11",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/jsonwebtoken/node_modules/jws": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
+ "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "jwa": "^1.4.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/jwa": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz",
+ "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-equal-constant-time": "1.0.1",
+ "ecdsa-sig-formatter": "1.0.11",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/jws": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz",
+ "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "jwa": "^2.0.0",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/keytar": {
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz",
+ "integrity": "sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "node-addon-api": "^4.3.0",
+ "prebuild-install": "^7.0.1"
+ }
+ },
+ "node_modules/leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/linkify-it": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz",
+ "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "uc.micro": "^2.0.0"
+ }
+ },
+ "node_modules/lodash.includes": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
+ "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.isboolean": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
+ "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.isinteger": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
+ "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.isnumber": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
+ "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.isplainobject": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+ "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.isstring": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.once": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/markdown-it": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
+ "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1",
+ "entities": "^4.4.0",
+ "linkify-it": "^5.0.0",
+ "mdurl": "^2.0.0",
+ "punycode.js": "^2.3.1",
+ "uc.micro": "^2.1.0"
+ },
+ "bin": {
+ "markdown-it": "bin/markdown-it.mjs"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/mdurl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz",
+ "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mimic-response": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/mkdirp-classic": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/mute-stream": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/napi-build-utils": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz",
+ "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/node-abi": {
+ "version": "3.73.0",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.73.0.tgz",
+ "integrity": "sha512-z8iYzQGBu35ZkTQ9mtR8RqugJZ9RCLn8fv3d7LsgDBzOijGQP3RdKTX4LA7LXw03ZhU5z0l4xfhIMgSES31+cg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-addon-api": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz",
+ "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "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==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.13.3",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz",
+ "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/open": {
+ "version": "8.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
+ "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-lazy-prop": "^2.0.0",
+ "is-docker": "^2.1.1",
+ "is-wsl": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/package-json-from-dist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0"
+ },
+ "node_modules/parse-semver": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/parse-semver/-/parse-semver-1.1.1.tgz",
+ "integrity": "sha512-Eg1OuNntBMH0ojvEKSrvDSnwLmvVuUOSdylH/pSCPNMIspLlweJyIWXCE+k/5hm3cj/EBUYwmWkjhBALNP4LXQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^5.1.0"
+ }
+ },
+ "node_modules/parse-semver/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/parse5": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz",
+ "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "entities": "^4.5.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/parse5-htmlparser2-tree-adapter": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz",
+ "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "domhandler": "^5.0.3",
+ "parse5": "^7.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/parse5-parser-stream": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz",
+ "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "parse5": "^7.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/prebuild-install": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz",
+ "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "detect-libc": "^2.0.0",
+ "expand-template": "^2.0.3",
+ "github-from-package": "0.0.0",
+ "minimist": "^1.2.3",
+ "mkdirp-classic": "^0.5.3",
+ "napi-build-utils": "^2.0.0",
+ "node-abi": "^3.3.0",
+ "pump": "^3.0.0",
+ "rc": "^1.2.7",
+ "simple-get": "^4.0.0",
+ "tar-fs": "^2.0.0",
+ "tunnel-agent": "^0.6.0"
+ },
+ "bin": {
+ "prebuild-install": "bin.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/pump": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
+ "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/qs": {
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz",
+ "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "side-channel": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "dev": true,
+ "license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
+ "optional": true,
+ "dependencies": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "bin": {
+ "rc": "cli.js"
+ }
+ },
+ "node_modules/rc/node_modules/strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/read": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
+ "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "mute-stream": "~0.0.4"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/sax": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz",
+ "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3",
+ "side-channel-list": "^1.0.0",
+ "side-channel-map": "^1.0.1",
+ "side-channel-weakmap": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-list": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-weakmap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3",
+ "side-channel-map": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/simple-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
+ "dev": true,
+ "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",
+ "optional": true
+ },
+ "node_modules/simple-get": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
+ "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
+ "dev": true,
+ "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",
+ "optional": true,
+ "dependencies": {
+ "decompress-response": "^6.0.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ }
+ },
+ "node_modules/stoppable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz",
+ "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4",
+ "npm": ">=6"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/string-width-cjs": {
+ "name": "string-width",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/string-width-cjs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tar-fs": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz",
+ "integrity": "sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "chownr": "^1.1.1",
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.1.4"
+ }
+ },
+ "node_modules/tar-stream": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tar-stream/node_modules/bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "node_modules/tar-stream/node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "dev": true,
+ "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",
+ "optional": true,
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/tar-stream/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/tinycolor2": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz",
+ "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==",
+ "license": "MIT"
+ },
+ "node_modules/tmp": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
+ "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/tunnel": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
+ "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.6.11 <=0.7.0 || >=0.7.3"
+ }
+ },
+ "node_modules/tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/typed-rest-client": {
+ "version": "1.8.11",
+ "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.11.tgz",
+ "integrity": "sha512-5UvfMpd1oelmUPRbbaVnq+rHP7ng2cE4qoQkQeAqxRL6PklkxsM0g32/HL0yfvruK6ojQ5x8EE+HF4YV6DtuCA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "qs": "^6.9.1",
+ "tunnel": "0.0.6",
+ "underscore": "^1.12.1"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "5.7.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
+ "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "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==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/underscore": {
+ "version": "1.13.7",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz",
+ "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/undici": {
+ "version": "6.21.1",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.1.tgz",
+ "integrity": "sha512-q/1rj5D0/zayJB2FraXdaWxbhWiNKDvu8naDT2dl1yTlvJp4BLtOcp2a5BvgGNQpYYJzau7tf1WgKv3b+7mqpQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.17"
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "6.19.8",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
+ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/url-join": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz",
+ "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/whatwg-encoding": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
+ "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "iconv-lite": "0.6.3"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/whatwg-mimetype": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
+ "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs": {
+ "name": "wrap-ansi",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/xml2js": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz",
+ "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "sax": ">=0.6.0",
+ "xmlbuilder": "~11.0.0"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/xmlbuilder": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
+ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ },
+ "node_modules/yazl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz",
+ "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-crc32": "~0.2.3"
+ }
+ }
+ }
+}
diff --git a/vscode/caelestia-vscode-integration/package.json b/vscode/caelestia-vscode-integration/package.json
new file mode 100644
index 0000000..bdd9541
--- /dev/null
+++ b/vscode/caelestia-vscode-integration/package.json
@@ -0,0 +1,50 @@
+{
+ "name": "caelestia-vscode-integration",
+ "displayName": "caelestia-vscode-integration",
+ "description": "VSCode integration for caelestia dotfiles",
+ "version": "1.1.0",
+ "publisher": "soramanew",
+ "engines": {
+ "vscode": "^1.96.0"
+ },
+ "categories": [
+ "Themes"
+ ],
+ "activationEvents": [
+ "onStartupFinished"
+ ],
+ "capabilities": {
+ "untrustedWorkspaces": {
+ "supported": true
+ }
+ },
+ "main": "./out/extension.js",
+ "contributes": {
+ "themes": [
+ {
+ "label": "Caelestia",
+ "uiTheme": "vs-dark",
+ "path": "./themes/caelestia.json",
+ "_watch": true
+ }
+ ]
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/caelestia-dots/vscode.git",
+ "directory": "caelestia-vscode-integration"
+ },
+ "dependencies": {
+ "tinycolor2": "^1.6.0"
+ },
+ "devDependencies": {
+ "@types/node": "20.x",
+ "@types/tinycolor2": "^1.4.6",
+ "@types/vscode": "^1.96.0",
+ "@vscode/vsce": "^3.2.1",
+ "typescript": "^5.7.2"
+ },
+ "scripts": {
+ "vscode:prepublish": "tsc -p ./"
+ }
+}
diff --git a/vscode/caelestia-vscode-integration/src/extension.ts b/vscode/caelestia-vscode-integration/src/extension.ts
new file mode 100644
index 0000000..2f81962
--- /dev/null
+++ b/vscode/caelestia-vscode-integration/src/extension.ts
@@ -0,0 +1,50 @@
+import { existsSync } from "fs";
+import { readFile, writeFile } from "fs/promises";
+import { homedir } from "os";
+import { join } from "path";
+import { ConfigurationTarget, extensions, RelativePattern, workspace, type ExtensionContext } from "vscode";
+import theme from "./theme";
+
+const statedir = () => process.env.XDG_STATE_HOME ?? join(homedir(), ".local", "state");
+const schemedir = () => join(statedir(), "caelestia", "scheme");
+
+const update = async () => {
+ if (!existsSync(join(schemedir(), "current.txt"))) {
+ console.log("No current scheme.");
+ return;
+ }
+
+ // Update theme colours with scheme
+ const scheme = await readFile(join(schemedir(), "current.txt"), "utf-8");
+ const colours = scheme.split("\n").reduce((acc, l) => {
+ const [name, hex] = l.split(" ");
+ acc[name] = `#${hex}`;
+ return acc;
+ }, {} as { [k: string]: string });
+
+ await writeFile(join(__dirname, "..", "themes", "caelestia.json"), JSON.stringify(theme(colours)));
+
+ // Sync icon theme
+ const workbench = workspace.getConfiguration("workbench");
+ if (
+ workbench.get("colorTheme") === "Caelestia" &&
+ /catppuccin-(latte|frappe|macchiato|mocha)/.test(workbench.get("iconTheme") ?? "") &&
+ extensions.getExtension("catppuccin.catppuccin-vsc-icons")
+ ) {
+ const colourMode = await readFile(join(schemedir(), "current-mode.txt"), "utf-8");
+ workbench.update(
+ "iconTheme",
+ `catppuccin-${colourMode === "light" ? "latte" : "mocha"}`,
+ ConfigurationTarget.Global
+ );
+ }
+
+ console.log("Updated scheme.");
+};
+
+export const activate = (context: ExtensionContext) => {
+ update();
+ const watcher = workspace.createFileSystemWatcher(new RelativePattern(schemedir(), "current.txt"));
+ context.subscriptions.push(watcher, watcher.onDidCreate(update), watcher.onDidChange(update));
+ console.log(`Watching for changes to ${join(schemedir(), "current.txt")}`);
+};
diff --git a/vscode/caelestia-vscode-integration/src/theme.ts b/vscode/caelestia-vscode-integration/src/theme.ts
new file mode 100644
index 0000000..f6cbd75
--- /dev/null
+++ b/vscode/caelestia-vscode-integration/src/theme.ts
@@ -0,0 +1,2169 @@
+import tinycolor from "tinycolor2";
+
+const mix = (color1: string, color2: string, amount: number): string =>
+ tinycolor.mix(color1, color2, amount * 100).toHexString();
+
+const shade = (color: string, magnitude: number): string =>
+ magnitude > 0
+ ? tinycolor(color)
+ .lighten(magnitude * 100)
+ .toHexString()
+ : tinycolor(color)
+ .darken(Math.abs(magnitude * 100))
+ .toHexString();
+
+export default ({
+ rosewater,
+ flamingo,
+ pink,
+ mauve,
+ red,
+ maroon,
+ peach,
+ yellow,
+ green,
+ teal,
+ sky,
+ sapphire,
+ blue,
+ lavender,
+ success,
+ error,
+ primary,
+ onPrimary,
+ secondary,
+ onSecondary,
+ tertiary,
+ onTertiary,
+ onSurface,
+ onSurfaceVariant,
+ surface,
+ surfaceContainer,
+ surfaceContainerLow,
+ surfaceContainerHigh,
+ surfaceContainerHighest,
+ outline,
+ shadow,
+}: {
+ [k: string]: string;
+}) => ({
+ name: "Caelestia",
+ type: "dark",
+ colors: {
+ focusBorder: primary,
+ foreground: onSurface,
+ disabledForeground: outline,
+ "widget.shadow": `${shadow}80`,
+ "selection.background": `${primary}66`,
+ descriptionForeground: onSurface,
+ errorForeground: error,
+ "icon.foreground": primary,
+ "sash.hoverBorder": primary,
+ "window.activeBorder": "#00000000",
+ "window.inactiveBorder": "#00000000",
+ "textBlockQuote.background": surfaceContainer,
+ "textBlockQuote.border": surfaceContainerHigh,
+ "textCodeBlock.background": surface,
+ "textLink.activeForeground": sky,
+ "textLink.foreground": blue,
+ "textPreformat.foreground": onSurface,
+ "textSeparator.foreground": primary,
+ "activityBar.background": surfaceContainerHigh,
+ "activityBar.foreground": primary,
+ "activityBar.dropBorder": `${primary}33`,
+ "activityBar.inactiveForeground": onSurfaceVariant,
+ "activityBar.border": "#00000000",
+ "activityBarBadge.background": primary,
+ "activityBarBadge.foreground": onPrimary,
+ "activityBar.activeBorder": "#00000000",
+ "activityBar.activeBackground": "#00000000",
+ "activityBar.activeFocusBorder": "#00000000",
+ "activityBarTop.foreground": primary,
+ "activityBarTop.activeBorder": "#00000000",
+ "activityBarTop.inactiveForeground": onSurfaceVariant,
+ "activityBarTop.dropBorder": `${primary}33`,
+ "badge.background": surfaceContainer,
+ "badge.foreground": onSurface,
+ "breadcrumb.activeSelectionForeground": primary,
+ "breadcrumb.background": surface,
+ "breadcrumb.focusForeground": primary,
+ "breadcrumb.foreground": `${onSurface}cc`,
+ "breadcrumbPicker.background": surfaceContainer,
+ "button.background": primary,
+ "button.foreground": onPrimary,
+ "button.border": "#00000000",
+ "button.separator": "#00000000",
+ "button.hoverBackground": shade(primary, 0.07),
+ "button.secondaryForeground": onSurface,
+ "button.secondaryBackground": surfaceContainerHighest,
+ "button.secondaryHoverBackground": shade(surfaceContainerHighest, 0.07),
+ "checkbox.background": surfaceContainer,
+ "checkbox.border": "#00000000",
+ "checkbox.foreground": primary,
+ "dropdown.background": surfaceContainer,
+ "dropdown.listBackground": surfaceContainerHighest,
+ "dropdown.border": primary,
+ "dropdown.foreground": onSurface,
+ "debugToolBar.background": surfaceContainerHighest,
+ "debugToolBar.border": outline,
+ "debugExceptionWidget.background": surfaceContainerHigh,
+ "debugExceptionWidget.border": primary,
+ "debugTokenExpression.number": peach,
+ "debugTokenExpression.boolean": mauve,
+ "debugTokenExpression.string": green,
+ "debugTokenExpression.error": error,
+ "debugIcon.breakpointForeground": red,
+ "debugIcon.breakpointDisabledForeground": `${red}99`,
+ "debugIcon.breakpointUnverifiedForeground": mix(red, surfaceContainerHighest, 0.5),
+ "debugIcon.breakpointCurrentStackframeForeground": surfaceContainerHighest,
+ "debugIcon.breakpointStackframeForeground": surfaceContainerHighest,
+ "debugIcon.startForeground": success,
+ "debugIcon.pauseForeground": blue,
+ "debugIcon.stopForeground": error,
+ "debugIcon.disconnectForeground": surfaceContainerHighest,
+ "debugIcon.restartForeground": teal,
+ "debugIcon.stepOverForeground": mauve,
+ "debugIcon.stepIntoForeground": onSurface,
+ "debugIcon.stepOutForeground": onSurface,
+ "debugIcon.continueForeground": success,
+ "debugIcon.stepBackForeground": surfaceContainerHighest,
+ "debugConsole.infoForeground": blue,
+ "debugConsole.warningForeground": peach,
+ "debugConsole.errorForeground": error,
+ "debugConsole.sourceForeground": rosewater,
+ "debugConsoleInputIcon.foreground": onSurface,
+ "diffEditor.border": surfaceContainerHighest,
+ "diffEditor.insertedTextBackground": `${success}1a`,
+ "diffEditor.removedTextBackground": `${error}1a`,
+ "diffEditor.insertedLineBackground": `${success}26`,
+ "diffEditor.removedLineBackground": `${error}26`,
+ "diffEditor.diagonalFill": `${surfaceContainerHighest}99`,
+ "diffEditorOverview.insertedForeground": `${success}cc`,
+ "diffEditorOverview.removedForeground": `${error}cc`,
+ "editor.background": surface,
+ "editor.findMatchBackground": mix(surface, red, 0.3),
+ "editor.findMatchBorder": `${red}33`,
+ "editor.findMatchHighlightBackground": mix(surface, sky, 0.3),
+ "editor.findMatchHighlightBorder": `${sky}33`,
+ "editor.findRangeHighlightBackground": mix(surface, sky, 0.3),
+ "editor.findRangeHighlightBorder": `${sky}33`,
+ "editor.foldBackground": `${sky}40`,
+ "editor.foreground": onSurface,
+ "editor.hoverHighlightBackground": `${sky}40`,
+ "editor.lineHighlightBackground": `${onSurface}12`,
+ "editor.lineHighlightBorder": "#00000000",
+ "editor.rangeHighlightBackground": `${sky}40`,
+ "editor.rangeHighlightBorder": "#00000000",
+ "editor.selectionBackground": `${onSurfaceVariant}40`,
+ "editor.selectionHighlightBackground": `${onSurfaceVariant}33`,
+ "editor.selectionHighlightBorder": `${onSurfaceVariant}33`,
+ "editor.wordHighlightBackground": `${onSurfaceVariant}33`,
+ "editor.wordHighlightStrongBackground": `${blue}33`,
+ "editorBracketMatch.background": `${onSurfaceVariant}1a`,
+ "editorBracketMatch.border": onSurfaceVariant,
+ "editorCodeLens.foreground": onSurfaceVariant,
+ "editorCursor.background": surface,
+ "editorCursor.foreground": secondary,
+ "editorGroup.border": surfaceContainerHighest,
+ "editorGroup.dropBackground": `${primary}33`,
+ "editorGroup.emptyBackground": surface,
+ "editorGroupHeader.tabsBackground": surfaceContainer,
+ "editorGutter.addedBackground": success,
+ "editorGutter.background": surface,
+ "editorGutter.commentRangeForeground": surfaceContainerLow,
+ "editorGutter.commentGlyphForeground": primary,
+ "editorGutter.deletedBackground": error,
+ "editorGutter.foldingControlForeground": onSurfaceVariant,
+ "editorGutter.modifiedBackground": secondary,
+ "editorHoverWidget.background": surfaceContainerLow,
+ "editorHoverWidget.border": outline,
+ "editorHoverWidget.foreground": onSurface,
+ "editorIndentGuide.activeBackground": surfaceContainerHighest,
+ "editorIndentGuide.background": surfaceContainer,
+ "editorInlayHint.foreground": surfaceContainerHighest,
+ "editorInlayHint.background": `${surfaceContainer}bf`,
+ "editorInlayHint.typeForeground": onSurfaceVariant,
+ "editorInlayHint.typeBackground": `${surfaceContainer}bf`,
+ "editorInlayHint.parameterForeground": outline,
+ "editorInlayHint.parameterBackground": `${surfaceContainer}bf`,
+ "editorLineNumber.activeForeground": primary,
+ "editorLineNumber.foreground": onSurfaceVariant,
+ "editorLink.activeForeground": primary,
+ "editorMarkerNavigation.background": surfaceContainer,
+ "editorMarkerNavigationError.background": error,
+ "editorMarkerNavigationInfo.background": blue,
+ "editorMarkerNavigationWarning.background": peach,
+ "editorOverviewRuler.background": surfaceContainer,
+ "editorOverviewRuler.border": `${onSurface}12`,
+ "editorOverviewRuler.modifiedForeground": yellow,
+ "editorRuler.foreground": surfaceContainerHighest,
+ "editor.stackFrameHighlightBackground": `${yellow}26`,
+ "editor.focusedStackFrameHighlightBackground": `${green}26`,
+ "editorStickyScrollHover.background": surfaceContainerLow,
+ "editorSuggestWidget.background": surfaceContainer,
+ "editorSuggestWidget.border": surfaceContainerHighest,
+ "editorSuggestWidget.foreground": onSurface,
+ "editorSuggestWidget.highlightForeground": primary,
+ "editorSuggestWidget.selectedBackground": surfaceContainerLow,
+ "editorWhitespace.foreground": `${onSurfaceVariant}66`,
+ "editorWidget.background": surfaceContainer,
+ "editorWidget.foreground": onSurface,
+ "editorWidget.resizeBorder": surfaceContainerHighest,
+ "editorLightBulb.foreground": yellow,
+ "editorError.foreground": error,
+ "editorError.border": "#00000000",
+ "editorError.background": "#00000000",
+ "editorWarning.foreground": peach,
+ "editorWarning.border": "#00000000",
+ "editorWarning.background": "#00000000",
+ "editorInfo.foreground": blue,
+ "editorInfo.border": "#00000000",
+ "editorInfo.background": "#00000000",
+ "problemsErrorIcon.foreground": error,
+ "problemsInfoIcon.foreground": blue,
+ "problemsWarningIcon.foreground": peach,
+ "extensionButton.prominentForeground": surfaceContainerHigh,
+ "extensionButton.prominentBackground": primary,
+ "extensionButton.separator": surface,
+ "extensionButton.prominentHoverBackground": shade(primary, 0.07),
+ "extensionBadge.remoteBackground": blue,
+ "extensionBadge.remoteForeground": surfaceContainerHigh,
+ "extensionIcon.starForeground": yellow,
+ "extensionIcon.verifiedForeground": green,
+ "extensionIcon.preReleaseForeground": surfaceContainerHighest,
+ "extensionIcon.sponsorForeground": pink,
+ "gitDecoration.addedResourceForeground": success,
+ "gitDecoration.conflictingResourceForeground": mauve,
+ "gitDecoration.deletedResourceForeground": error,
+ "gitDecoration.ignoredResourceForeground": outline,
+ "gitDecoration.modifiedResourceForeground": yellow,
+ "gitDecoration.stageDeletedResourceForeground": error,
+ "gitDecoration.stageModifiedResourceForeground": yellow,
+ "gitDecoration.submoduleResourceForeground": blue,
+ "gitDecoration.untrackedResourceForeground": success,
+ "input.background": surfaceContainerLow,
+ "input.border": "#00000000",
+ "input.foreground": onSurface,
+ "input.placeholderForeground": `${onSurface}73`,
+ "inputOption.activeBackground": surfaceContainerHighest,
+ "inputOption.activeBorder": primary,
+ "inputOption.activeForeground": onSurface,
+ "inputValidation.errorBackground": error,
+ "inputValidation.errorBorder": `${surfaceContainerHigh}33`,
+ "inputValidation.errorForeground": surfaceContainerHigh,
+ "inputValidation.infoBackground": blue,
+ "inputValidation.infoBorder": `${surfaceContainerHigh}33`,
+ "inputValidation.infoForeground": surfaceContainerHigh,
+ "inputValidation.warningBackground": peach,
+ "inputValidation.warningBorder": `${surfaceContainerHigh}33`,
+ "inputValidation.warningForeground": surfaceContainerHigh,
+ "list.activeSelectionBackground": surfaceContainerLow,
+ "list.activeSelectionForeground": onSurface,
+ "list.dropBackground": `${primary}33`,
+ "list.focusBackground": surfaceContainerLow,
+ "list.focusForeground": onSurface,
+ "list.focusOutline": "#00000000",
+ "list.highlightForeground": primary,
+ "list.hoverBackground": `${surfaceContainerLow}80`,
+ "list.hoverForeground": onSurface,
+ "list.inactiveSelectionBackground": surfaceContainerLow,
+ "list.inactiveSelectionForeground": onSurface,
+ "list.warningForeground": peach,
+ "listFilterWidget.background": surfaceContainer,
+ "listFilterWidget.noMatchesOutline": red,
+ "listFilterWidget.outline": "#00000000",
+ "tree.indentGuidesStroke": onSurfaceVariant,
+ "tree.inactiveIndentGuidesStroke": surfaceContainer,
+ "menu.background": surface,
+ "menu.border": `${surface}80`,
+ "menu.foreground": onSurface,
+ "menu.selectionBackground": surfaceContainerHighest,
+ "menu.selectionBorder": "#00000000",
+ "menu.selectionForeground": onSurface,
+ "menu.separatorBackground": surfaceContainerHighest,
+ "menubar.selectionBackground": surfaceContainer,
+ "menubar.selectionForeground": onSurface,
+ "merge.commonContentBackground": surfaceContainer,
+ "merge.commonHeaderBackground": surfaceContainerHighest,
+ "merge.currentContentBackground": `${green}33`,
+ "merge.currentHeaderBackground": `${green}66`,
+ "merge.incomingContentBackground": `${blue}33`,
+ "merge.incomingHeaderBackground": `${blue}66`,
+ "minimap.background": `${surfaceContainer}80`,
+ "minimap.findMatchHighlight": `${sky}4d`,
+ "minimap.selectionHighlight": `${surfaceContainerHighest}bf`,
+ "minimap.selectionOccurrenceHighlight": `${surfaceContainerHighest}bf`,
+ "minimap.warningHighlight": `${peach}bf`,
+ "minimap.errorHighlight": `${error}bf`,
+ "minimapSlider.background": `${primary}33`,
+ "minimapSlider.hoverBackground": `${primary}66`,
+ "minimapSlider.activeBackground": `${primary}99`,
+ "minimapGutter.addedBackground": `${green}bf`,
+ "minimapGutter.deletedBackground": `${red}bf`,
+ "minimapGutter.modifiedBackground": `${yellow}bf`,
+ "notificationCenter.border": primary,
+ "notificationCenterHeader.foreground": onSurface,
+ "notificationCenterHeader.background": surfaceContainer,
+ "notificationToast.border": primary,
+ "notifications.foreground": onSurface,
+ "notifications.background": surfaceContainer,
+ "notifications.border": primary,
+ "notificationLink.foreground": blue,
+ "notificationsErrorIcon.foreground": error,
+ "notificationsWarningIcon.foreground": peach,
+ "notificationsInfoIcon.foreground": blue,
+ "panel.background": surface,
+ "panel.border": surfaceContainerHighest,
+ "panelSection.border": surfaceContainerHighest,
+ "panelSection.dropBackground": `${primary}33`,
+ "panelTitle.activeBorder": primary,
+ "panelTitle.activeForeground": onSurface,
+ "panelTitle.inactiveForeground": outline,
+ "peekView.border": primary,
+ "peekViewEditor.background": surfaceContainer,
+ "peekViewEditorGutter.background": surfaceContainer,
+ "peekViewEditor.matchHighlightBackground": `${sky}4d`,
+ "peekViewEditor.matchHighlightBorder": "#00000000",
+ "peekViewResult.background": surfaceContainer,
+ "peekViewResult.fileForeground": onSurface,
+ "peekViewResult.lineForeground": onSurface,
+ "peekViewResult.matchHighlightBackground": `${sky}4d`,
+ "peekViewResult.selectionBackground": surfaceContainerLow,
+ "peekViewResult.selectionForeground": onSurface,
+ "peekViewTitle.background": surface,
+ "peekViewTitleDescription.foreground": `${onSurfaceVariant}b3`,
+ "peekViewTitleLabel.foreground": onSurface,
+ "pickerGroup.border": primary,
+ "pickerGroup.foreground": primary,
+ "progressBar.background": primary,
+ "scrollbar.shadow": surfaceContainerHigh,
+ "scrollbarSlider.activeBackground": `${surfaceContainerLow}66`,
+ "scrollbarSlider.background": `${surfaceContainerHighest}80`,
+ "scrollbarSlider.hoverBackground": outline,
+ "settings.focusedRowBackground": `${surfaceContainerHighest}33`,
+ "settings.headerForeground": onSurface,
+ "settings.modifiedItemIndicator": primary,
+ "settings.dropdownBackground": surfaceContainer,
+ "settings.dropdownListBorder": "#00000000",
+ "settings.textInputBackground": surfaceContainer,
+ "settings.textInputBorder": "#00000000",
+ "settings.numberInputBackground": surfaceContainer,
+ "settings.numberInputBorder": "#00000000",
+ "sideBar.background": surfaceContainer,
+ "sideBar.dropBackground": `${primary}33`,
+ "sideBar.foreground": onSurface,
+ "sideBar.border": "#00000000",
+ "sideBarSectionHeader.background": surfaceContainer,
+ "sideBarSectionHeader.foreground": onSurface,
+ "sideBarTitle.foreground": primary,
+ "banner.background": surfaceContainer,
+ "banner.foreground": onSurface,
+ "banner.iconForeground": onSurface,
+ "statusBar.background": surfaceContainerHigh,
+ "statusBar.foreground": onSurface,
+ "statusBar.border": "#00000000",
+ "statusBar.noFolderBackground": surfaceContainerHigh,
+ "statusBar.noFolderForeground": onSurface,
+ "statusBar.noFolderBorder": "#00000000",
+ "statusBar.debuggingBackground": peach,
+ "statusBar.debuggingForeground": surfaceContainerHigh,
+ "statusBar.debuggingBorder": "#00000000",
+ "statusBarItem.remoteBackground": blue,
+ "statusBarItem.remoteForeground": surfaceContainerHigh,
+ "statusBarItem.activeBackground": `${surfaceContainerHighest}66`,
+ "statusBarItem.hoverBackground": `${surfaceContainerHighest}33`,
+ "statusBarItem.prominentForeground": primary,
+ "statusBarItem.prominentBackground": "#00000000",
+ "statusBarItem.prominentHoverBackground": `${surfaceContainerHighest}33`,
+ "statusBarItem.errorForeground": error,
+ "statusBarItem.errorBackground": "#00000000",
+ "statusBarItem.warningForeground": peach,
+ "statusBarItem.warningBackground": "#00000000",
+ "commandCenter.foreground": onSurfaceVariant,
+ "commandCenter.inactiveForeground": onSurfaceVariant,
+ "commandCenter.activeForeground": primary,
+ "commandCenter.background": surfaceContainer,
+ "commandCenter.activeBackground": `${surfaceContainerHighest}33`,
+ "commandCenter.border": "#00000000",
+ "commandCenter.inactiveBorder": "#00000000",
+ "commandCenter.activeBorder": primary,
+ "tab.activeBackground": surface,
+ "tab.activeBorder": "#00000000",
+ "tab.activeBorderTop": primary,
+ "tab.activeForeground": primary,
+ "tab.activeModifiedBorder": yellow,
+ "tab.border": surfaceContainer,
+ "tab.hoverBackground": surfaceContainerHigh,
+ "tab.hoverBorder": "#00000000",
+ "tab.hoverForeground": onSurface,
+ "tab.inactiveBackground": surfaceContainer,
+ "tab.inactiveForeground": onSurfaceVariant,
+ "tab.inactiveModifiedBorder": `${yellow}4d`,
+ "tab.lastPinnedBorder": primary,
+ "tab.unfocusedActiveBackground": surfaceContainer,
+ "tab.unfocusedActiveBorder": "#00000000",
+ "tab.unfocusedActiveBorderTop": `${primary}4d`,
+ "tab.unfocusedInactiveBackground": surfaceContainerLow,
+ "terminal.foreground": onSurface,
+ "terminal.ansiBlack": surfaceContainer,
+ "terminal.ansiRed": red,
+ "terminal.ansiGreen": green,
+ "terminal.ansiYellow": yellow,
+ "terminal.ansiBlue": blue,
+ "terminal.ansiMagenta": pink,
+ "terminal.ansiCyan": teal,
+ "terminal.ansiWhite": onSurfaceVariant,
+ "terminal.ansiBrightBlack": surfaceContainerHighest,
+ "terminal.ansiBrightRed": shade(red, 0.1),
+ "terminal.ansiBrightGreen": shade(green, 0.1),
+ "terminal.ansiBrightYellow": shade(yellow, 0.1),
+ "terminal.ansiBrightBlue": shade(blue, 0.1),
+ "terminal.ansiBrightMagenta": shade(pink, 0.1),
+ "terminal.ansiBrightCyan": shade(teal, 0.1),
+ "terminal.ansiBrightWhite": onSurfaceVariant,
+ "terminal.selectionBackground": surfaceContainerHighest,
+ "terminal.inactiveSelectionBackground": `${surfaceContainerHighest}80`,
+ "terminalCursor.background": surface,
+ "terminalCursor.foreground": secondary,
+ "terminal.border": surfaceContainerHighest,
+ "terminal.dropBackground": `${primary}33`,
+ "terminal.tab.activeBorder": primary,
+ "terminalCommandDecoration.defaultBackground": surfaceContainerHighest,
+ "terminalCommandDecoration.successBackground": success,
+ "terminalCommandDecoration.errorBackground": error,
+ "titleBar.activeBackground": surfaceContainerHigh,
+ "titleBar.activeForeground": onSurface,
+ "titleBar.inactiveBackground": surfaceContainerHigh,
+ "titleBar.inactiveForeground": `${onSurface}80`,
+ "titleBar.border": "#00000000",
+ "welcomePage.tileBackground": surfaceContainer,
+ "welcomePage.progress.background": surfaceContainerHigh,
+ "welcomePage.progress.foreground": primary,
+ "walkThrough.embeddedEditorBackground": `${surface}4d`,
+ "symbolIcon.textForeground": onSurface,
+ "symbolIcon.arrayForeground": peach,
+ "symbolIcon.booleanForeground": mauve,
+ "symbolIcon.classForeground": yellow,
+ "symbolIcon.colorForeground": pink,
+ "symbolIcon.constantForeground": peach,
+ "symbolIcon.constructorForeground": lavender,
+ "symbolIcon.enumeratorForeground": yellow,
+ "symbolIcon.enumeratorMemberForeground": yellow,
+ "symbolIcon.eventForeground": pink,
+ "symbolIcon.fieldForeground": onSurface,
+ "symbolIcon.fileForeground": primary,
+ "symbolIcon.folderForeground": primary,
+ "symbolIcon.functionForeground": blue,
+ "symbolIcon.interfaceForeground": yellow,
+ "symbolIcon.keyForeground": teal,
+ "symbolIcon.keywordForeground": mauve,
+ "symbolIcon.methodForeground": blue,
+ "symbolIcon.moduleForeground": onSurface,
+ "symbolIcon.namespaceForeground": yellow,
+ "symbolIcon.nullForeground": maroon,
+ "symbolIcon.numberForeground": peach,
+ "symbolIcon.objectForeground": yellow,
+ "symbolIcon.operatorForeground": teal,
+ "symbolIcon.packageForeground": flamingo,
+ "symbolIcon.propertyForeground": maroon,
+ "symbolIcon.referenceForeground": yellow,
+ "symbolIcon.snippetForeground": flamingo,
+ "symbolIcon.stringForeground": green,
+ "symbolIcon.structForeground": teal,
+ "symbolIcon.typeParameterForeground": maroon,
+ "symbolIcon.unitForeground": onSurface,
+ "symbolIcon.variableForeground": onSurface,
+ "charts.foreground": onSurface,
+ "charts.lines": onSurfaceVariant,
+ "charts.red": red,
+ "charts.blue": blue,
+ "charts.yellow": yellow,
+ "charts.orange": peach,
+ "charts.green": green,
+ "charts.purple": mauve,
+ "errorLens.errorBackground": `${error}26`,
+ "errorLens.errorBackgroundLight": `${error}26`,
+ "errorLens.errorForeground": error,
+ "errorLens.errorForegroundLight": error,
+ "errorLens.errorMessageBackground": `${error}26`,
+ "errorLens.hintBackground": `${success}26`,
+ "errorLens.hintBackgroundLight": `${success}26`,
+ "errorLens.hintForeground": success,
+ "errorLens.hintForegroundLight": success,
+ "errorLens.hintMessageBackground": `${success}26`,
+ "errorLens.infoBackground": `${blue}26`,
+ "errorLens.infoBackgroundLight": `${blue}26`,
+ "errorLens.infoForeground": blue,
+ "errorLens.infoForegroundLight": blue,
+ "errorLens.infoMessageBackground": `${blue}26`,
+ "errorLens.statusBarErrorForeground": error,
+ "errorLens.statusBarHintForeground": success,
+ "errorLens.statusBarIconErrorForeground": error,
+ "errorLens.statusBarIconWarningForeground": peach,
+ "errorLens.statusBarInfoForeground": blue,
+ "errorLens.statusBarWarningForeground": peach,
+ "errorLens.warningBackground": `${peach}26`,
+ "errorLens.warningBackgroundLight": `${peach}26`,
+ "errorLens.warningForeground": peach,
+ "errorLens.warningForegroundLight": peach,
+ "errorLens.warningMessageBackground": `${peach}26`,
+ "issues.closed": mauve,
+ "issues.newIssueDecoration": rosewater,
+ "issues.open": green,
+ "pullRequests.closed": red,
+ "pullRequests.draft": onSurfaceVariant,
+ "pullRequests.merged": mauve,
+ "pullRequests.notification": onSurface,
+ "pullRequests.open": green,
+ "gitlens.gutterBackgroundColor": `${surfaceContainerLow}4d`,
+ "gitlens.gutterForegroundColor": onSurface,
+ "gitlens.gutterUncommittedForegroundColor": primary,
+ "gitlens.trailingLineBackgroundColor": "#00000000",
+ "gitlens.trailingLineForegroundColor": `${onSurface}4d`,
+ "gitlens.lineHighlightBackgroundColor": `${primary}26`,
+ "gitlens.lineHighlightOverviewRulerColor": `${primary}cc`,
+ "gitlens.openAutolinkedIssueIconColor": green,
+ "gitlens.closedAutolinkedIssueIconColor": mauve,
+ "gitlens.closedPullRequestIconColor": red,
+ "gitlens.openPullRequestIconColor": green,
+ "gitlens.mergedPullRequestIconColor": mauve,
+ "gitlens.unpublishedChangesIconColor": green,
+ "gitlens.unpublishedCommitIconColor": green,
+ "gitlens.unpulledChangesIconColor": peach,
+ "gitlens.decorations.branchAheadForegroundColor": green,
+ "gitlens.decorations.branchBehindForegroundColor": peach,
+ "gitlens.decorations.branchDivergedForegroundColor": yellow,
+ "gitlens.decorations.branchUnpublishedForegroundColor": green,
+ "gitlens.decorations.branchMissingUpstreamForegroundColor": peach,
+ "gitlens.decorations.statusMergingOrRebasingConflictForegroundColor": maroon,
+ "gitlens.decorations.statusMergingOrRebasingForegroundColor": yellow,
+ "gitlens.decorations.workspaceRepoMissingForegroundColor": outline,
+ "gitlens.decorations.workspaceCurrentForegroundColor": primary,
+ "gitlens.decorations.workspaceRepoOpenForegroundColor": primary,
+ "gitlens.decorations.worktreeHasUncommittedChangesForegroundColor": peach,
+ "gitlens.decorations.worktreeMissingForegroundColor": maroon,
+ "gitlens.graphLane1Color": mauve,
+ "gitlens.graphLane2Color": yellow,
+ "gitlens.graphLane3Color": blue,
+ "gitlens.graphLane4Color": flamingo,
+ "gitlens.graphLane5Color": green,
+ "gitlens.graphLane6Color": lavender,
+ "gitlens.graphLane7Color": rosewater,
+ "gitlens.graphLane8Color": red,
+ "gitlens.graphLane9Color": teal,
+ "gitlens.graphLane10Color": pink,
+ "gitlens.graphChangesColumnAddedColor": success,
+ "gitlens.graphChangesColumnDeletedColor": error,
+ "gitlens.graphMinimapMarkerHeadColor": green,
+ "gitlens.graphScrollMarkerHeadColor": green,
+ "gitlens.graphMinimapMarkerUpstreamColor": shade(green, -0.05),
+ "gitlens.graphScrollMarkerUpstreamColor": shade(green, -0.05),
+ "gitlens.graphMinimapMarkerHighlightsColor": yellow,
+ "gitlens.graphScrollMarkerHighlightsColor": yellow,
+ "gitlens.graphMinimapMarkerLocalBranchesColor": blue,
+ "gitlens.graphScrollMarkerLocalBranchesColor": blue,
+ "gitlens.graphMinimapMarkerRemoteBranchesColor": shade(blue, -0.05),
+ "gitlens.graphScrollMarkerRemoteBranchesColor": shade(blue, -0.05),
+ "gitlens.graphMinimapMarkerStashesColor": mauve,
+ "gitlens.graphScrollMarkerStashesColor": mauve,
+ "gitlens.graphMinimapMarkerTagsColor": flamingo,
+ "gitlens.graphScrollMarkerTagsColor": flamingo,
+ "editorBracketHighlight.foreground1": red,
+ "editorBracketHighlight.foreground2": peach,
+ "editorBracketHighlight.foreground3": yellow,
+ "editorBracketHighlight.foreground4": green,
+ "editorBracketHighlight.foreground5": sapphire,
+ "editorBracketHighlight.foreground6": mauve,
+ "editorBracketHighlight.unexpectedBracket.foreground": maroon,
+ "button.secondaryBorder": primary,
+ "table.headerBackground": surfaceContainerLow,
+ "table.headerForeground": onSurface,
+ "list.focusAndSelectionBackground": surfaceContainer,
+ },
+ semanticHighlighting: true,
+ semanticTokenColors: {
+ enumMember: {
+ foreground: teal,
+ },
+ selfKeyword: {
+ foreground: red,
+ },
+ boolean: {
+ foreground: peach,
+ },
+ number: {
+ foreground: peach,
+ },
+ "variable.defaultLibrary": {
+ foreground: maroon,
+ },
+ "class:python": {
+ foreground: yellow,
+ },
+ "class.builtin:python": {
+ foreground: mauve,
+ },
+ "variable.typeHint:python": {
+ foreground: yellow,
+ },
+ "function.decorator:python": {
+ foreground: peach,
+ },
+ "variable.readonly:javascript": {
+ foreground: onSurface,
+ },
+ "variable.readonly:typescript": {
+ foreground: onSurface,
+ },
+ "property.readonly:javascript": {
+ foreground: onSurface,
+ },
+ "property.readonly:typescript": {
+ foreground: onSurface,
+ },
+ "variable.readonly:javascriptreact": {
+ foreground: onSurface,
+ },
+ "variable.readonly:typescriptreact": {
+ foreground: onSurface,
+ },
+ "property.readonly:javascriptreact": {
+ foreground: onSurface,
+ },
+ "property.readonly:typescriptreact": {
+ foreground: onSurface,
+ },
+ "variable.readonly:scala": {
+ foreground: onSurface,
+ },
+ "type.defaultLibrary:go": {
+ foreground: mauve,
+ },
+ "variable.readonly.defaultLibrary:go": {
+ foreground: mauve,
+ },
+ tomlArrayKey: {
+ foreground: blue,
+ fontStyle: "",
+ },
+ tomlTableKey: {
+ foreground: blue,
+ fontStyle: "",
+ },
+ "builtinAttribute.attribute.library:rust": {
+ foreground: blue,
+ },
+ "generic.attribute:rust": {
+ foreground: onSurface,
+ },
+ "constant.builtin.readonly:nix": {
+ foreground: mauve,
+ },
+ heading: {
+ foreground: red,
+ },
+ "text.emph": {
+ foreground: red,
+ fontStyle: "italic",
+ },
+ "text.strong": {
+ foreground: red,
+ fontStyle: "bold",
+ },
+ "text.math": {
+ foreground: flamingo,
+ },
+ pol: {
+ foreground: flamingo,
+ },
+ },
+ tokenColors: [
+ {
+ name: "Basic text & variable names (incl. leading punctuation)",
+ scope: ["text", "source", "variable.other.readwrite", "punctuation.definition.variable"],
+ settings: {
+ foreground: onSurface,
+ },
+ },
+ {
+ name: "Parentheses, Brackets, Braces",
+ scope: "punctuation",
+ settings: {
+ foreground: onSurfaceVariant,
+ fontStyle: "",
+ },
+ },
+ {
+ name: "Comments",
+ scope: ["comment", "punctuation.definition.comment"],
+ settings: {
+ foreground: onSurfaceVariant,
+ fontStyle: "italic",
+ },
+ },
+ {
+ scope: ["string", "punctuation.definition.string"],
+ settings: {
+ foreground: green,
+ },
+ },
+ {
+ scope: "constant.character.escape",
+ settings: {
+ foreground: pink,
+ },
+ },
+ {
+ name: "Booleans, constants, numbers",
+ scope: [
+ "constant.numeric",
+ "variable.other.constant",
+ "entity.name.constant",
+ "constant.language.boolean",
+ "constant.language.false",
+ "constant.language.true",
+ "keyword.other.unit.user-defined",
+ "keyword.other.unit.suffix.floating-point",
+ ],
+ settings: {
+ foreground: peach,
+ },
+ },
+ {
+ scope: [
+ "keyword",
+ "keyword.operator.word",
+ "keyword.operator.new",
+ "variable.language.super",
+ "support.type.primitive",
+ "storage.type",
+ "storage.modifier",
+ "punctuation.definition.keyword",
+ ],
+ settings: {
+ foreground: mauve,
+ fontStyle: "",
+ },
+ },
+ {
+ scope: "entity.name.tag.documentation",
+ settings: {
+ foreground: mauve,
+ },
+ },
+ {
+ name: "Punctuation",
+ scope: [
+ "keyword.operator",
+ "punctuation.accessor",
+ "punctuation.definition.generic",
+ "meta.function.closure punctuation.section.parameters",
+ "punctuation.definition.tag",
+ "punctuation.separator.key-value",
+ ],
+ settings: {
+ foreground: teal,
+ },
+ },
+ {
+ scope: [
+ "entity.name.function",
+ "meta.function-call.method",
+ "support.function",
+ "support.function.misc",
+ "variable.function",
+ ],
+ settings: {
+ foreground: blue,
+ fontStyle: "italic",
+ },
+ },
+ {
+ name: "Classes",
+ scope: [
+ "entity.name.class",
+ "entity.other.inherited-class",
+ "support.class",
+ "meta.function-call.constructor",
+ "entity.name.struct",
+ ],
+ settings: {
+ foreground: yellow,
+ fontStyle: "italic",
+ },
+ },
+ {
+ name: "Enum",
+ scope: "entity.name.enum",
+ settings: {
+ foreground: yellow,
+ fontStyle: "italic",
+ },
+ },
+ {
+ name: "Enum member",
+ scope: ["meta.enum variable.other.readwrite", "variable.other.enummember"],
+ settings: {
+ foreground: teal,
+ },
+ },
+ {
+ name: "Object properties",
+ scope: "meta.property.object",
+ settings: {
+ foreground: teal,
+ },
+ },
+ {
+ name: "Types",
+ scope: ["meta.type", "meta.type-alias", "support.type", "entity.name.type"],
+ settings: {
+ foreground: yellow,
+ fontStyle: "italic",
+ },
+ },
+ {
+ name: "Decorators",
+ scope: [
+ "meta.annotation variable.function",
+ "meta.annotation variable.annotation.function",
+ "meta.annotation punctuation.definition.annotation",
+ "meta.decorator",
+ "punctuation.decorator",
+ ],
+ settings: {
+ foreground: peach,
+ },
+ },
+ {
+ scope: ["variable.parameter", "meta.function.parameters"],
+ settings: {
+ foreground: maroon,
+ fontStyle: "italic",
+ },
+ },
+ {
+ name: "Built-ins",
+ scope: ["constant.language", "support.function.builtin"],
+ settings: {
+ foreground: red,
+ },
+ },
+ {
+ scope: "entity.other.attribute-name.documentation",
+ settings: {
+ foreground: red,
+ },
+ },
+ {
+ name: "Preprocessor directives",
+ scope: ["keyword.control.directive", "punctuation.definition.directive"],
+ settings: {
+ foreground: yellow,
+ },
+ },
+ {
+ name: "Type parameters",
+ scope: "punctuation.definition.typeparameters",
+ settings: {
+ foreground: sky,
+ },
+ },
+ {
+ name: "Namespaces",
+ scope: "entity.name.namespace",
+ settings: {
+ foreground: yellow,
+ },
+ },
+ {
+ name: "Property names (left hand assignments in json/yaml/css)",
+ scope: "support.type.property-name.css",
+ settings: {
+ foreground: blue,
+ fontStyle: "",
+ },
+ },
+ {
+ name: "This/Self keyword",
+ scope: ["variable.language.this", "variable.language.this punctuation.definition.variable"],
+ settings: {
+ foreground: red,
+ },
+ },
+ {
+ name: "Object properties",
+ scope: "variable.object.property",
+ settings: {
+ foreground: onSurface,
+ },
+ },
+ {
+ name: "String template interpolation",
+ scope: ["string.template variable", "string variable"],
+ settings: {
+ foreground: onSurface,
+ },
+ },
+ {
+ name: "`new` as bold",
+ scope: "keyword.operator.new",
+ settings: {
+ fontStyle: "bold",
+ },
+ },
+ {
+ name: "C++ extern keyword",
+ scope: "storage.modifier.specifier.extern.cpp",
+ settings: {
+ foreground: mauve,
+ },
+ },
+ {
+ name: "C++ scope resolution",
+ scope: [
+ "entity.name.scope-resolution.template.call.cpp",
+ "entity.name.scope-resolution.parameter.cpp",
+ "entity.name.scope-resolution.cpp",
+ "entity.name.scope-resolution.function.definition.cpp",
+ ],
+ settings: {
+ foreground: yellow,
+ },
+ },
+ {
+ name: "C++ doc keywords",
+ scope: "storage.type.class.doxygen",
+ settings: {
+ fontStyle: "",
+ },
+ },
+ {
+ name: "C++ operators",
+ scope: ["storage.modifier.reference.cpp"],
+ settings: {
+ foreground: teal,
+ },
+ },
+ {
+ name: "C# Interpolated Strings",
+ scope: "meta.interpolation.cs",
+ settings: {
+ foreground: onSurface,
+ },
+ },
+ {
+ name: "C# xml-style docs",
+ scope: "comment.block.documentation.cs",
+ settings: {
+ foreground: onSurface,
+ },
+ },
+ {
+ name: "Classes, reflecting the className color in JSX",
+ scope: [
+ "source.css entity.other.attribute-name.class.css",
+ "entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css",
+ ],
+ settings: {
+ foreground: yellow,
+ },
+ },
+ {
+ name: "Operators",
+ scope: "punctuation.separator.operator.css",
+ settings: {
+ foreground: teal,
+ },
+ },
+ {
+ name: "Pseudo classes",
+ scope: "source.css entity.other.attribute-name.pseudo-class",
+ settings: {
+ foreground: teal,
+ },
+ },
+ {
+ scope: "source.css constant.other.unicode-range",
+ settings: {
+ foreground: peach,
+ },
+ },
+ {
+ scope: "source.css variable.parameter.url",
+ settings: {
+ foreground: green,
+ fontStyle: "",
+ },
+ },
+ {
+ name: "CSS vendored property names",
+ scope: ["support.type.vendored.property-name"],
+ settings: {
+ foreground: sky,
+ },
+ },
+ {
+ name: "Less/SCSS right-hand variables (@/$-prefixed)",
+ scope: [
+ "source.css meta.property-value variable",
+ "source.css meta.property-value variable.other.less",
+ "source.css meta.property-value variable.other.less punctuation.definition.variable.less",
+ "meta.definition.variable.scss",
+ ],
+ settings: {
+ foreground: maroon,
+ },
+ },
+ {
+ name: "CSS variables (--prefixed)",
+ scope: [
+ "source.css meta.property-list variable",
+ "meta.property-list variable.other.less",
+ "meta.property-list variable.other.less punctuation.definition.variable.less",
+ ],
+ settings: {
+ foreground: blue,
+ },
+ },
+ {
+ name: "CSS Percentage values, styled the same as numbers",
+ scope: "keyword.other.unit.percentage.css",
+ settings: {
+ foreground: peach,
+ },
+ },
+ {
+ name: "CSS Attribute selectors, styled the same as strings",
+ scope: "source.css meta.attribute-selector",
+ settings: {
+ foreground: green,
+ },
+ },
+ {
+ name: "JSON/YAML keys, other left-hand assignments",
+ scope: [
+ "keyword.other.definition.ini",
+ "punctuation.support.type.property-name.json",
+ "support.type.property-name.json",
+ "punctuation.support.type.property-name.toml",
+ "support.type.property-name.toml",
+ "entity.name.tag.yaml",
+ "punctuation.support.type.property-name.yaml",
+ "support.type.property-name.yaml",
+ ],
+ settings: {
+ foreground: blue,
+ fontStyle: "",
+ },
+ },
+ {
+ name: "JSON/YAML constants",
+ scope: ["constant.language.json", "constant.language.yaml"],
+ settings: {
+ foreground: peach,
+ },
+ },
+ {
+ name: "YAML anchors",
+ scope: ["entity.name.type.anchor.yaml", "variable.other.alias.yaml"],
+ settings: {
+ foreground: yellow,
+ fontStyle: "",
+ },
+ },
+ {
+ name: "TOML tables / ini groups",
+ scope: ["support.type.property-name.table", "entity.name.section.group-title.ini"],
+ settings: {
+ foreground: yellow,
+ },
+ },
+ {
+ name: "TOML dates",
+ scope: "constant.other.time.datetime.offset.toml",
+ settings: {
+ foreground: pink,
+ },
+ },
+ {
+ name: "YAML anchor puctuation",
+ scope: ["punctuation.definition.anchor.yaml", "punctuation.definition.alias.yaml"],
+ settings: {
+ foreground: pink,
+ },
+ },
+ {
+ name: "YAML triple dashes",
+ scope: "entity.other.document.begin.yaml",
+ settings: {
+ foreground: pink,
+ },
+ },
+ {
+ name: "Markup Diff",
+ scope: "markup.changed.diff",
+ settings: {
+ foreground: peach,
+ },
+ },
+ {
+ name: "Diff",
+ scope: [
+ "meta.diff.header.from-file",
+ "meta.diff.header.to-file",
+ "punctuation.definition.from-file.diff",
+ "punctuation.definition.to-file.diff",
+ ],
+ settings: {
+ foreground: blue,
+ },
+ },
+ {
+ name: "Diff Inserted",
+ scope: "markup.inserted.diff",
+ settings: {
+ foreground: green,
+ },
+ },
+ {
+ name: "Diff Deleted",
+ scope: "markup.deleted.diff",
+ settings: {
+ foreground: red,
+ },
+ },
+ {
+ name: "dotenv left-hand side assignments",
+ scope: ["variable.other.env"],
+ settings: {
+ foreground: blue,
+ },
+ },
+ {
+ name: "dotenv reference to existing env variable",
+ scope: ["string.quoted variable.other.env"],
+ settings: {
+ foreground: onSurface,
+ },
+ },
+ {
+ name: "GDScript functions",
+ scope: "support.function.builtin.gdscript",
+ settings: {
+ foreground: blue,
+ },
+ },
+ {
+ name: "GDScript constants",
+ scope: "constant.language.gdscript",
+ settings: {
+ foreground: peach,
+ },
+ },
+ {
+ name: "Comment keywords",
+ scope: "comment meta.annotation.go",
+ settings: {
+ foreground: maroon,
+ },
+ },
+ {
+ name: "go:embed, go:build, etc.",
+ scope: "comment meta.annotation.parameters.go",
+ settings: {
+ foreground: peach,
+ },
+ },
+ {
+ name: "Go constants (nil, true, false)",
+ scope: "constant.language.go",
+ settings: {
+ foreground: peach,
+ },
+ },
+ {
+ name: "GraphQL variables",
+ scope: "variable.graphql",
+ settings: {
+ foreground: onSurface,
+ },
+ },
+ {
+ name: "GraphQL aliases",
+ scope: "string.unquoted.alias.graphql",
+ settings: {
+ foreground: flamingo,
+ },
+ },
+ {
+ name: "GraphQL enum members",
+ scope: "constant.character.enum.graphql",
+ settings: {
+ foreground: teal,
+ },
+ },
+ {
+ name: "GraphQL field in types",
+ scope: "meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql",
+ settings: {
+ foreground: flamingo,
+ },
+ },
+ {
+ name: "HTML/XML DOCTYPE as keyword",
+ scope: [
+ "keyword.other.doctype",
+ "meta.tag.sgml.doctype punctuation.definition.tag",
+ "meta.tag.metadata.doctype entity.name.tag",
+ "meta.tag.metadata.doctype punctuation.definition.tag",
+ ],
+ settings: {
+ foreground: mauve,
+ },
+ },
+ {
+ name: "HTML/XML-like ",
+ scope: ["entity.name.tag"],
+ settings: {
+ foreground: blue,
+ fontStyle: "",
+ },
+ },
+ {
+ name: "Special characters like &",
+ scope: [
+ "text.html constant.character.entity",
+ "text.html constant.character.entity punctuation",
+ "constant.character.entity.xml",
+ "constant.character.entity.xml punctuation",
+ "constant.character.entity.js.jsx",
+ "constant.charactger.entity.js.jsx punctuation",
+ "constant.character.entity.tsx",
+ "constant.character.entity.tsx punctuation",
+ ],
+ settings: {
+ foreground: red,
+ },
+ },
+ {
+ name: "HTML/XML tag attribute values",
+ scope: ["entity.other.attribute-name"],
+ settings: {
+ foreground: yellow,
+ },
+ },
+ {
+ name: "Components",
+ scope: [
+ "support.class.component",
+ "support.class.component.jsx",
+ "support.class.component.tsx",
+ "support.class.component.vue",
+ ],
+ settings: {
+ foreground: pink,
+ fontStyle: "",
+ },
+ },
+ {
+ name: "Annotations",
+ scope: ["punctuation.definition.annotation", "storage.type.annotation"],
+ settings: {
+ foreground: peach,
+ },
+ },
+ {
+ name: "Java enums",
+ scope: "constant.other.enum.java",
+ settings: {
+ foreground: teal,
+ },
+ },
+ {
+ name: "Java imports",
+ scope: "storage.modifier.import.java",
+ settings: {
+ foreground: onSurface,
+ },
+ },
+ {
+ name: "Javadoc",
+ scope: "comment.block.javadoc.java keyword.other.documentation.javadoc.java",
+ settings: {
+ fontStyle: "",
+ },
+ },
+ {
+ name: "Exported Variable",
+ scope: "meta.export variable.other.readwrite.js",
+ settings: {
+ foreground: maroon,
+ },
+ },
+ {
+ name: "JS/TS constants & properties",
+ scope: [
+ "variable.other.constant.js",
+ "variable.other.constant.ts",
+ "variable.other.property.js",
+ "variable.other.property.ts",
+ ],
+ settings: {
+ foreground: onSurface,
+ },
+ },
+ {
+ name: "JSDoc; these are mainly params, so styled as such",
+ scope: ["variable.other.jsdoc", "comment.block.documentation variable.other"],
+ settings: {
+ foreground: maroon,
+ fontStyle: "",
+ },
+ },
+ {
+ name: "JSDoc keywords",
+ scope: "storage.type.class.jsdoc",
+ settings: {
+ fontStyle: "",
+ },
+ },
+ {
+ scope: "support.type.object.console.js",
+ settings: {
+ foreground: onSurface,
+ },
+ },
+ {
+ name: "Node constants as keywords (module, etc.)",
+ scope: ["support.constant.node", "support.type.object.module.js"],
+ settings: {
+ foreground: mauve,
+ },
+ },
+ {
+ name: "implements as keyword",
+ scope: "storage.modifier.implements",
+ settings: {
+ foreground: mauve,
+ },
+ },
+ {
+ name: "Builtin types",
+ scope: [
+ "constant.language.null.js",
+ "constant.language.null.ts",
+ "constant.language.undefined.js",
+ "constant.language.undefined.ts",
+ "support.type.builtin.ts",
+ ],
+ settings: {
+ foreground: mauve,
+ },
+ },
+ {
+ scope: "variable.parameter.generic",
+ settings: {
+ foreground: yellow,
+ },
+ },
+ {
+ name: "Arrow functions",
+ scope: ["keyword.declaration.function.arrow.js", "storage.type.function.arrow.ts"],
+ settings: {
+ foreground: teal,
+ },
+ },
+ {
+ name: "Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach)",
+ scope: "punctuation.decorator.ts",
+ settings: {
+ foreground: blue,
+ fontStyle: "italic",
+ },
+ },
+ {
+ name: "Extra JS/TS keywords",
+ scope: [
+ "keyword.operator.expression.in.js",
+ "keyword.operator.expression.in.ts",
+ "keyword.operator.expression.infer.ts",
+ "keyword.operator.expression.instanceof.js",
+ "keyword.operator.expression.instanceof.ts",
+ "keyword.operator.expression.is",
+ "keyword.operator.expression.keyof.ts",
+ "keyword.operator.expression.of.js",
+ "keyword.operator.expression.of.ts",
+ "keyword.operator.expression.typeof.ts",
+ ],
+ settings: {
+ foreground: mauve,
+ },
+ },
+ {
+ name: "Julia macros",
+ scope: "support.function.macro.julia",
+ settings: {
+ foreground: teal,
+ fontStyle: "italic",
+ },
+ },
+ {
+ name: "Julia language constants (true, false)",
+ scope: "constant.language.julia",
+ settings: {
+ foreground: peach,
+ },
+ },
+ {
+ name: "Julia other constants (these seem to be arguments inside arrays)",
+ scope: "constant.other.symbol.julia",
+ settings: {
+ foreground: maroon,
+ },
+ },
+ {
+ name: "LaTeX preamble",
+ scope: "text.tex keyword.control.preamble",
+ settings: {
+ foreground: teal,
+ },
+ },
+ {
+ name: "LaTeX be functions",
+ scope: "text.tex support.function.be",
+ settings: {
+ foreground: sky,
+ },
+ },
+ {
+ name: "LaTeX math",
+ scope: "constant.other.general.math.tex",
+ settings: {
+ foreground: flamingo,
+ },
+ },
+ {
+ name: "Liquid Builtin Objects & User Defined Variables",
+ scope: "variable.language.liquid",
+ settings: {
+ foreground: pink,
+ },
+ },
+ {
+ name: "Lua docstring keywords",
+ scope: "comment.line.double-dash.documentation.lua storage.type.annotation.lua",
+ settings: {
+ foreground: mauve,
+ fontStyle: "",
+ },
+ },
+ {
+ name: "Lua docstring variables",
+ scope: [
+ "comment.line.double-dash.documentation.lua entity.name.variable.lua",
+ "comment.line.double-dash.documentation.lua variable.lua",
+ ],
+ settings: {
+ foreground: onSurface,
+ },
+ },
+ {
+ scope: [
+ "heading.1.markdown punctuation.definition.heading.markdown",
+ "heading.1.markdown",
+ "heading.1.quarto punctuation.definition.heading.quarto",
+ "heading.1.quarto",
+ "markup.heading.atx.1.mdx",
+ "markup.heading.atx.1.mdx punctuation.definition.heading.mdx",
+ "markup.heading.setext.1.markdown",
+ "markup.heading.heading-0.asciidoc",
+ ],
+ settings: {
+ foreground: red,
+ },
+ },
+ {
+ scope: [
+ "heading.2.markdown punctuation.definition.heading.markdown",
+ "heading.2.markdown",
+ "heading.2.quarto punctuation.definition.heading.quarto",
+ "heading.2.quarto",
+ "markup.heading.atx.2.mdx",
+ "markup.heading.atx.2.mdx punctuation.definition.heading.mdx",
+ "markup.heading.setext.2.markdown",
+ "markup.heading.heading-1.asciidoc",
+ ],
+ settings: {
+ foreground: peach,
+ },
+ },
+ {
+ scope: [
+ "heading.3.markdown punctuation.definition.heading.markdown",
+ "heading.3.markdown",
+ "heading.3.quarto punctuation.definition.heading.quarto",
+ "heading.3.quarto",
+ "markup.heading.atx.3.mdx",
+ "markup.heading.atx.3.mdx punctuation.definition.heading.mdx",
+ "markup.heading.heading-2.asciidoc",
+ ],
+ settings: {
+ foreground: yellow,
+ },
+ },
+ {
+ scope: [
+ "heading.4.markdown punctuation.definition.heading.markdown",
+ "heading.4.markdown",
+ "heading.4.quarto punctuation.definition.heading.quarto",
+ "heading.4.quarto",
+ "markup.heading.atx.4.mdx",
+ "markup.heading.atx.4.mdx punctuation.definition.heading.mdx",
+ "markup.heading.heading-3.asciidoc",
+ ],
+ settings: {
+ foreground: green,
+ },
+ },
+ {
+ scope: [
+ "heading.5.markdown punctuation.definition.heading.markdown",
+ "heading.5.markdown",
+ "heading.5.quarto punctuation.definition.heading.quarto",
+ "heading.5.quarto",
+ "markup.heading.atx.5.mdx",
+ "markup.heading.atx.5.mdx punctuation.definition.heading.mdx",
+ "markup.heading.heading-4.asciidoc",
+ ],
+ settings: {
+ foreground: sapphire,
+ },
+ },
+ {
+ scope: [
+ "heading.6.markdown punctuation.definition.heading.markdown",
+ "heading.6.markdown",
+ "heading.6.quarto punctuation.definition.heading.quarto",
+ "heading.6.quarto",
+ "markup.heading.atx.6.mdx",
+ "markup.heading.atx.6.mdx punctuation.definition.heading.mdx",
+ "markup.heading.heading-5.asciidoc",
+ ],
+ settings: {
+ foreground: lavender,
+ },
+ },
+ {
+ scope: "markup.bold",
+ settings: {
+ foreground: red,
+ fontStyle: "bold",
+ },
+ },
+ {
+ scope: "markup.italic",
+ settings: {
+ foreground: red,
+ fontStyle: "italic",
+ },
+ },
+ {
+ scope: "markup.strikethrough",
+ settings: {
+ foreground: outline,
+ fontStyle: "strikethrough",
+ },
+ },
+ {
+ name: "Markdown auto links",
+ scope: ["punctuation.definition.link", "markup.underline.link"],
+ settings: {
+ foreground: blue,
+ },
+ },
+ {
+ name: "Markdown links",
+ scope: [
+ "text.html.markdown punctuation.definition.link.title",
+ "text.html.quarto punctuation.definition.link.title",
+ "string.other.link.title.markdown",
+ "string.other.link.title.quarto",
+ "markup.link",
+ "punctuation.definition.constant.markdown",
+ "punctuation.definition.constant.quarto",
+ "constant.other.reference.link.markdown",
+ "constant.other.reference.link.quarto",
+ "markup.substitution.attribute-reference",
+ ],
+ settings: {
+ foreground: lavender,
+ },
+ },
+ {
+ name: "Markdown code spans",
+ scope: [
+ "punctuation.definition.raw.markdown",
+ "punctuation.definition.raw.quarto",
+ "markup.inline.raw.string.markdown",
+ "markup.inline.raw.string.quarto",
+ "markup.raw.block.markdown",
+ "markup.raw.block.quarto",
+ ],
+ settings: {
+ foreground: green,
+ },
+ },
+ {
+ name: "Markdown triple backtick language identifier",
+ scope: "fenced_code.block.language",
+ settings: {
+ foreground: sky,
+ },
+ },
+ {
+ name: "Markdown triple backticks",
+ scope: ["markup.fenced_code.block punctuation.definition", "markup.raw support.asciidoc"],
+ settings: {
+ foreground: onSurfaceVariant,
+ },
+ },
+ {
+ name: "Markdown quotes",
+ scope: ["markup.quote", "punctuation.definition.quote.begin"],
+ settings: {
+ foreground: pink,
+ },
+ },
+ {
+ name: "Markdown separators",
+ scope: "meta.separator.markdown",
+ settings: {
+ foreground: teal,
+ },
+ },
+ {
+ name: "Markdown list bullets",
+ scope: [
+ "punctuation.definition.list.begin.markdown",
+ "punctuation.definition.list.begin.quarto",
+ "markup.list.bullet",
+ ],
+ settings: {
+ foreground: teal,
+ },
+ },
+ {
+ name: "Quarto headings",
+ scope: "markup.heading.quarto",
+ settings: {
+ fontStyle: "bold",
+ },
+ },
+ {
+ name: "Nix attribute names",
+ scope: ["entity.other.attribute-name.multipart.nix", "entity.other.attribute-name.single.nix"],
+ settings: {
+ foreground: blue,
+ },
+ },
+ {
+ name: "Nix parameter names",
+ scope: "variable.parameter.name.nix",
+ settings: {
+ foreground: onSurface,
+ fontStyle: "",
+ },
+ },
+ {
+ name: "Nix interpolated parameter names",
+ scope: "meta.embedded variable.parameter.name.nix",
+ settings: {
+ foreground: lavender,
+ fontStyle: "",
+ },
+ },
+ {
+ name: "Nix paths",
+ scope: "string.unquoted.path.nix",
+ settings: {
+ foreground: pink,
+ fontStyle: "",
+ },
+ },
+ {
+ name: "PHP Attributes",
+ scope: ["support.attribute.builtin", "meta.attribute.php"],
+ settings: {
+ foreground: yellow,
+ },
+ },
+ {
+ name: "PHP Parameters (needed for the leading dollar sign)",
+ scope: "meta.function.parameters.php punctuation.definition.variable.php",
+ settings: {
+ foreground: maroon,
+ },
+ },
+ {
+ name: "PHP Constants (null, __FILE__, etc.)",
+ scope: "constant.language.php",
+ settings: {
+ foreground: mauve,
+ },
+ },
+ {
+ name: "PHP functions",
+ scope: "text.html.php support.function",
+ settings: {
+ foreground: sky,
+ },
+ },
+ {
+ name: "PHPdoc keywords",
+ scope: "keyword.other.phpdoc.php",
+ settings: {
+ fontStyle: "",
+ },
+ },
+ {
+ name: "Python argument functions reset to onSurface, otherwise they inherit blue from function-call",
+ scope: ["support.variable.magic.python", "meta.function-call.arguments.python"],
+ settings: {
+ foreground: onSurface,
+ },
+ },
+ {
+ name: "Python double underscore functions",
+ scope: ["support.function.magic.python"],
+ settings: {
+ foreground: sky,
+ fontStyle: "italic",
+ },
+ },
+ {
+ name: "Python `self` keyword",
+ scope: [
+ "variable.parameter.function.language.special.self.python",
+ "variable.language.special.self.python",
+ ],
+ settings: {
+ foreground: red,
+ fontStyle: "italic",
+ },
+ },
+ {
+ name: "python keyword flow/logical (for ... in)",
+ scope: ["keyword.control.flow.python", "keyword.operator.logical.python"],
+ settings: {
+ foreground: mauve,
+ },
+ },
+ {
+ name: "python storage type",
+ scope: "storage.type.function.python",
+ settings: {
+ foreground: mauve,
+ },
+ },
+ {
+ name: "python function support",
+ scope: ["support.token.decorator.python", "meta.function.decorator.identifier.python"],
+ settings: {
+ foreground: sky,
+ },
+ },
+ {
+ name: "python function calls",
+ scope: ["meta.function-call.python"],
+ settings: {
+ foreground: blue,
+ },
+ },
+ {
+ name: "python function decorators",
+ scope: ["entity.name.function.decorator.python", "punctuation.definition.decorator.python"],
+ settings: {
+ foreground: peach,
+ fontStyle: "italic",
+ },
+ },
+ {
+ name: "python placeholder reset to normal string",
+ scope: "constant.character.format.placeholder.other.python",
+ settings: {
+ foreground: pink,
+ },
+ },
+ {
+ name: "Python exception & builtins such as exit()",
+ scope: ["support.type.exception.python", "support.function.builtin.python"],
+ settings: {
+ foreground: peach,
+ },
+ },
+ {
+ name: "entity.name.type",
+ scope: ["support.type.python"],
+ settings: {
+ foreground: peach,
+ },
+ },
+ {
+ name: "python constants (True/False)",
+ scope: "constant.language.python",
+ settings: {
+ foreground: mauve,
+ },
+ },
+ {
+ name: "Arguments accessed later in the function body",
+ scope: ["meta.indexed-name.python", "meta.item-access.python"],
+ settings: {
+ foreground: maroon,
+ fontStyle: "italic",
+ },
+ },
+ {
+ name: "Python f-strings/binary/unicode storage types",
+ scope: "storage.type.string.python",
+ settings: {
+ foreground: green,
+ fontStyle: "italic",
+ },
+ },
+ {
+ name: "Python type hints",
+ scope: "meta.function.parameters.python",
+ settings: {
+ fontStyle: "",
+ },
+ },
+ {
+ name: "Regex string begin/end in JS/TS",
+ scope: [
+ "string.regexp punctuation.definition.string.begin",
+ "string.regexp punctuation.definition.string.end",
+ ],
+ settings: {
+ foreground: pink,
+ },
+ },
+ {
+ name: "Regex anchors (^, $)",
+ scope: "keyword.control.anchor.regexp",
+ settings: {
+ foreground: mauve,
+ },
+ },
+ {
+ name: "Regex regular string match",
+ scope: "string.regexp.ts",
+ settings: {
+ foreground: onSurface,
+ },
+ },
+ {
+ name: "Regex group parenthesis & backreference (\\1, \\2, \\3, ...)",
+ scope: ["punctuation.definition.group.regexp", "keyword.other.back-reference.regexp"],
+ settings: {
+ foreground: green,
+ },
+ },
+ {
+ name: "Regex character class []",
+ scope: "punctuation.definition.character-class.regexp",
+ settings: {
+ foreground: yellow,
+ },
+ },
+ {
+ name: "Regex character classes (\\d, \\w, \\s)",
+ scope: "constant.other.character-class.regexp",
+ settings: {
+ foreground: pink,
+ },
+ },
+ {
+ name: "Regex range",
+ scope: "constant.other.character-class.range.regexp",
+ settings: {
+ foreground: rosewater,
+ },
+ },
+ {
+ name: "Regex quantifier",
+ scope: "keyword.operator.quantifier.regexp",
+ settings: {
+ foreground: teal,
+ },
+ },
+ {
+ name: "Regex constant/numeric",
+ scope: "constant.character.numeric.regexp",
+ settings: {
+ foreground: peach,
+ },
+ },
+ {
+ name: "Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds",
+ scope: [
+ "punctuation.definition.group.no-capture.regexp",
+ "meta.assertion.look-ahead.regexp",
+ "meta.assertion.negative-look-ahead.regexp",
+ ],
+ settings: {
+ foreground: blue,
+ },
+ },
+ {
+ name: "Rust attribute",
+ scope: [
+ "meta.annotation.rust",
+ "meta.annotation.rust punctuation",
+ "meta.attribute.rust",
+ "punctuation.definition.attribute.rust",
+ ],
+ settings: {
+ foreground: yellow,
+ fontStyle: "italic",
+ },
+ },
+ {
+ name: "Rust attribute strings",
+ scope: [
+ "meta.attribute.rust string.quoted.double.rust",
+ "meta.attribute.rust string.quoted.single.char.rust",
+ ],
+ settings: {
+ fontStyle: "",
+ },
+ },
+ {
+ name: "Rust keyword",
+ scope: [
+ "entity.name.function.macro.rules.rust",
+ "storage.type.module.rust",
+ "storage.modifier.rust",
+ "storage.type.struct.rust",
+ "storage.type.enum.rust",
+ "storage.type.trait.rust",
+ "storage.type.union.rust",
+ "storage.type.impl.rust",
+ "storage.type.rust",
+ "storage.type.function.rust",
+ "storage.type.type.rust",
+ ],
+ settings: {
+ foreground: mauve,
+ fontStyle: "",
+ },
+ },
+ {
+ name: "Rust u/i32, u/i64, etc.",
+ scope: "entity.name.type.numeric.rust",
+ settings: {
+ foreground: mauve,
+ fontStyle: "",
+ },
+ },
+ {
+ name: "Rust generic",
+ scope: "meta.generic.rust",
+ settings: {
+ foreground: peach,
+ },
+ },
+ {
+ name: "Rust impl",
+ scope: "entity.name.impl.rust",
+ settings: {
+ foreground: yellow,
+ fontStyle: "italic",
+ },
+ },
+ {
+ name: "Rust module",
+ scope: "entity.name.module.rust",
+ settings: {
+ foreground: peach,
+ },
+ },
+ {
+ name: "Rust trait",
+ scope: "entity.name.trait.rust",
+ settings: {
+ foreground: yellow,
+ fontStyle: "italic",
+ },
+ },
+ {
+ name: "Rust struct",
+ scope: "storage.type.source.rust",
+ settings: {
+ foreground: yellow,
+ },
+ },
+ {
+ name: "Rust union",
+ scope: "entity.name.union.rust",
+ settings: {
+ foreground: yellow,
+ },
+ },
+ {
+ name: "Rust enum member",
+ scope: "meta.enum.rust storage.type.source.rust",
+ settings: {
+ foreground: teal,
+ },
+ },
+ {
+ name: "Rust macro",
+ scope: ["support.macro.rust", "meta.macro.rust support.function.rust", "entity.name.function.macro.rust"],
+ settings: {
+ foreground: blue,
+ fontStyle: "italic",
+ },
+ },
+ {
+ name: "Rust lifetime",
+ scope: ["storage.modifier.lifetime.rust", "entity.name.type.lifetime"],
+ settings: {
+ foreground: blue,
+ fontStyle: "italic",
+ },
+ },
+ {
+ name: "Rust string formatting",
+ scope: "string.quoted.double.rust constant.other.placeholder.rust",
+ settings: {
+ foreground: pink,
+ },
+ },
+ {
+ name: "Rust return type generic",
+ scope: "meta.function.return-type.rust meta.generic.rust storage.type.rust",
+ settings: {
+ foreground: onSurface,
+ },
+ },
+ {
+ name: "Rust functions",
+ scope: "meta.function.call.rust",
+ settings: {
+ foreground: blue,
+ },
+ },
+ {
+ name: "Rust angle brackets",
+ scope: "punctuation.brackets.angle.rust",
+ settings: {
+ foreground: sky,
+ },
+ },
+ {
+ name: "Rust constants",
+ scope: "constant.other.caps.rust",
+ settings: {
+ foreground: peach,
+ },
+ },
+ {
+ name: "Rust function parameters",
+ scope: ["meta.function.definition.rust variable.other.rust"],
+ settings: {
+ foreground: maroon,
+ },
+ },
+ {
+ name: "Rust closure variables",
+ scope: "meta.function.call.rust variable.other.rust",
+ settings: {
+ foreground: onSurface,
+ },
+ },
+ {
+ name: "Rust self",
+ scope: "variable.language.self.rust",
+ settings: {
+ foreground: red,
+ },
+ },
+ {
+ name: "Rust metavariable names",
+ scope: [
+ "variable.other.metavariable.name.rust",
+ "meta.macro.metavariable.rust keyword.operator.macro.dollar.rust",
+ ],
+ settings: {
+ foreground: pink,
+ },
+ },
+ {
+ name: "Shell shebang",
+ scope: [
+ "comment.line.shebang",
+ "comment.line.shebang punctuation.definition.comment",
+ "comment.line.shebang",
+ "punctuation.definition.comment.shebang.shell",
+ "meta.shebang.shell",
+ ],
+ settings: {
+ foreground: pink,
+ fontStyle: "italic",
+ },
+ },
+ {
+ name: "Shell shebang command",
+ scope: "comment.line.shebang constant.language",
+ settings: {
+ foreground: teal,
+ fontStyle: "italic",
+ },
+ },
+ {
+ name: "Shell interpolated command",
+ scope: [
+ "meta.function-call.arguments.shell punctuation.definition.variable.shell",
+ "meta.function-call.arguments.shell punctuation.section.interpolation",
+ "meta.function-call.arguments.shell punctuation.definition.variable.shell",
+ "meta.function-call.arguments.shell punctuation.section.interpolation",
+ ],
+ settings: {
+ foreground: red,
+ },
+ },
+ {
+ name: "Shell interpolated command variable",
+ scope: "meta.string meta.interpolation.parameter.shell variable.other.readwrite",
+ settings: {
+ foreground: peach,
+ fontStyle: "italic",
+ },
+ },
+ {
+ scope: [
+ "source.shell punctuation.section.interpolation",
+ "punctuation.definition.evaluation.backticks.shell",
+ ],
+ settings: {
+ foreground: teal,
+ },
+ },
+ {
+ name: "Shell EOF",
+ scope: "entity.name.tag.heredoc.shell",
+ settings: {
+ foreground: mauve,
+ },
+ },
+ {
+ name: "Shell quoted variable",
+ scope: "string.quoted.double.shell variable.other.normal.shell",
+ settings: {
+ foreground: onSurface,
+ },
+ },
+ ],
+});
diff --git a/vscode/caelestia-vscode-integration/themes/caelestia.json b/vscode/caelestia-vscode-integration/themes/caelestia.json
new file mode 100644
index 0000000..5a68256
--- /dev/null
+++ b/vscode/caelestia-vscode-integration/themes/caelestia.json
@@ -0,0 +1 @@
+{"name":"Caelestia","type":"dark","colors":{"focusBorder":"#8F4B3A","foreground":"#231917","disabledForeground":"#83716C","widget.shadow":"#00000080","selection.background":"#8F4B3A66","descriptionForeground":"#231917","errorForeground":"#BA1A1A","icon.foreground":"#8F4B3A","sash.hoverBorder":"#8F4B3A","window.activeBorder":"#00000000","window.inactiveBorder":"#00000000","textBlockQuote.background":"#FCEAE6","textBlockQuote.border":"#F7E4E0","textCodeBlock.background":"#FFF8F6","textLink.activeForeground":"#725C0B","textLink.foreground":"#79590C","textPreformat.foreground":"#231917","textSeparator.foreground":"#8F4B3A","activityBar.background":"#F7E4E0","activityBar.foreground":"#8F4B3A","activityBar.dropBorder":"#8F4B3A33","activityBar.inactiveForeground":"#534340","activityBar.border":"#00000000","activityBarBadge.background":"#8F4B3A","activityBarBadge.foreground":"#FFFFFF","activityBar.activeBorder":"#00000000","activityBar.activeBackground":"#00000000","activityBar.activeFocusBorder":"#00000000","activityBarTop.foreground":"#8F4B3A","activityBarTop.activeBorder":"#00000000","activityBarTop.inactiveForeground":"#534340","activityBarTop.dropBorder":"#8F4B3A33","badge.background":"#FCEAE6","badge.foreground":"#231917","breadcrumb.activeSelectionForeground":"#8F4B3A","breadcrumb.background":"#FFF8F6","breadcrumb.focusForeground":"#8F4B3A","breadcrumb.foreground":"#231917cc","breadcrumbPicker.background":"#FCEAE6","button.background":"#8F4B3A","button.foreground":"#FFFFFF","button.border":"#00000000","button.separator":"#00000000","button.hoverBackground":"#a85844","button.secondaryForeground":"#231917","button.secondaryBackground":"#F1DFDA","button.secondaryHoverBackground":"#fbf5f4","checkbox.background":"#FCEAE6","checkbox.border":"#00000000","checkbox.foreground":"#8F4B3A","dropdown.background":"#FCEAE6","dropdown.listBackground":"#F1DFDA","dropdown.border":"#8F4B3A","dropdown.foreground":"#231917","debugToolBar.background":"#F1DFDA","debugToolBar.border":"#83716C","debugExceptionWidget.background":"#F7E4E0","debugExceptionWidget.border":"#8F4B3A","debugTokenExpression.number":"#8A5021","debugTokenExpression.boolean":"#66558F","debugTokenExpression.string":"#266B4A","debugTokenExpression.error":"#BA1A1A","debugIcon.breakpointForeground":"#904B3F","debugIcon.breakpointDisabledForeground":"#904B3F99","debugIcon.breakpointUnverifiedForeground":"#c1958d","debugIcon.breakpointCurrentStackframeForeground":"#F1DFDA","debugIcon.breakpointStackframeForeground":"#F1DFDA","debugIcon.startForeground":"#739900","debugIcon.pauseForeground":"#79590C","debugIcon.stopForeground":"#BA1A1A","debugIcon.disconnectForeground":"#F1DFDA","debugIcon.restartForeground":"#4E6529","debugIcon.stepOverForeground":"#66558F","debugIcon.stepIntoForeground":"#231917","debugIcon.stepOutForeground":"#231917","debugIcon.continueForeground":"#739900","debugIcon.stepBackForeground":"#F1DFDA","debugConsole.infoForeground":"#79590C","debugConsole.warningForeground":"#8A5021","debugConsole.errorForeground":"#BA1A1A","debugConsole.sourceForeground":"#8F4D30","debugConsoleInputIcon.foreground":"#231917","diffEditor.border":"#F1DFDA","diffEditor.insertedTextBackground":"#7399001a","diffEditor.removedTextBackground":"#BA1A1A1a","diffEditor.insertedLineBackground":"#73990026","diffEditor.removedLineBackground":"#BA1A1A26","diffEditor.diagonalFill":"#F1DFDA99","diffEditorOverview.insertedForeground":"#739900cc","diffEditorOverview.removedForeground":"#BA1A1Acc","editor.background":"#FFF8F6","editor.findMatchBackground":"#dec4bf","editor.findMatchBorder":"#904B3F33","editor.findMatchHighlightBackground":"#d5c9b0","editor.findMatchHighlightBorder":"#725C0B33","editor.findRangeHighlightBackground":"#d5c9b0","editor.findRangeHighlightBorder":"#725C0B33","editor.foldBackground":"#725C0B40","editor.foreground":"#231917","editor.hoverHighlightBackground":"#725C0B40","editor.lineHighlightBackground":"#23191712","editor.lineHighlightBorder":"#00000000","editor.rangeHighlightBackground":"#725C0B40","editor.rangeHighlightBorder":"#00000000","editor.selectionBackground":"#53434040","editor.selectionHighlightBackground":"#53434033","editor.selectionHighlightBorder":"#53434033","editor.wordHighlightBackground":"#53434033","editor.wordHighlightStrongBackground":"#79590C33","editorBracketMatch.background":"#5343401a","editorBracketMatch.border":"#534340","editorCodeLens.foreground":"#534340","editorCursor.background":"#FFF8F6","editorCursor.foreground":"#77574F","editorGroup.border":"#F1DFDA","editorGroup.dropBackground":"#8F4B3A33","editorGroup.emptyBackground":"#FFF8F6","editorGroupHeader.tabsBackground":"#FCEAE6","editorGutter.addedBackground":"#739900","editorGutter.background":"#FFF8F6","editorGutter.commentRangeForeground":"#FFF1ED","editorGutter.commentGlyphForeground":"#8F4B3A","editorGutter.deletedBackground":"#BA1A1A","editorGutter.foldingControlForeground":"#534340","editorGutter.modifiedBackground":"#77574F","editorHoverWidget.background":"#FFF1ED","editorHoverWidget.border":"#83716C","editorHoverWidget.foreground":"#231917","editorIndentGuide.activeBackground":"#F1DFDA","editorIndentGuide.background":"#FCEAE6","editorInlayHint.foreground":"#F1DFDA","editorInlayHint.background":"#FCEAE6bf","editorInlayHint.typeForeground":"#534340","editorInlayHint.typeBackground":"#FCEAE6bf","editorInlayHint.parameterForeground":"#83716C","editorInlayHint.parameterBackground":"#FCEAE6bf","editorLineNumber.activeForeground":"#8F4B3A","editorLineNumber.foreground":"#534340","editorLink.activeForeground":"#8F4B3A","editorMarkerNavigation.background":"#FCEAE6","editorMarkerNavigationError.background":"#BA1A1A","editorMarkerNavigationInfo.background":"#79590C","editorMarkerNavigationWarning.background":"#8A5021","editorOverviewRuler.background":"#FCEAE6","editorOverviewRuler.border":"#23191712","editorOverviewRuler.modifiedForeground":"#8D4E2A","editorRuler.foreground":"#F1DFDA","editor.stackFrameHighlightBackground":"#8D4E2A26","editor.focusedStackFrameHighlightBackground":"#266B4A26","editorStickyScrollHover.background":"#FFF1ED","editorSuggestWidget.background":"#FCEAE6","editorSuggestWidget.border":"#F1DFDA","editorSuggestWidget.foreground":"#231917","editorSuggestWidget.highlightForeground":"#8F4B3A","editorSuggestWidget.selectedBackground":"#FFF1ED","editorWhitespace.foreground":"#53434066","editorWidget.background":"#FCEAE6","editorWidget.foreground":"#231917","editorWidget.resizeBorder":"#F1DFDA","editorLightBulb.foreground":"#8D4E2A","editorError.foreground":"#BA1A1A","editorError.border":"#00000000","editorError.background":"#00000000","editorWarning.foreground":"#8A5021","editorWarning.border":"#00000000","editorWarning.background":"#00000000","editorInfo.foreground":"#79590C","editorInfo.border":"#00000000","editorInfo.background":"#00000000","problemsErrorIcon.foreground":"#BA1A1A","problemsInfoIcon.foreground":"#79590C","problemsWarningIcon.foreground":"#8A5021","extensionButton.prominentForeground":"#F7E4E0","extensionButton.prominentBackground":"#8F4B3A","extensionButton.separator":"#FFF8F6","extensionButton.prominentHoverBackground":"#a85844","extensionBadge.remoteBackground":"#79590C","extensionBadge.remoteForeground":"#F7E4E0","extensionIcon.starForeground":"#8D4E2A","extensionIcon.verifiedForeground":"#266B4A","extensionIcon.preReleaseForeground":"#F1DFDA","extensionIcon.sponsorForeground":"#805610","gitDecoration.addedResourceForeground":"#739900","gitDecoration.conflictingResourceForeground":"#66558F","gitDecoration.deletedResourceForeground":"#BA1A1A","gitDecoration.ignoredResourceForeground":"#83716C","gitDecoration.modifiedResourceForeground":"#8D4E2A","gitDecoration.stageDeletedResourceForeground":"#BA1A1A","gitDecoration.stageModifiedResourceForeground":"#8D4E2A","gitDecoration.submoduleResourceForeground":"#79590C","gitDecoration.untrackedResourceForeground":"#739900","input.background":"#FFF1ED","input.border":"#00000000","input.foreground":"#231917","input.placeholderForeground":"#23191773","inputOption.activeBackground":"#F1DFDA","inputOption.activeBorder":"#8F4B3A","inputOption.activeForeground":"#231917","inputValidation.errorBackground":"#BA1A1A","inputValidation.errorBorder":"#F7E4E033","inputValidation.errorForeground":"#F7E4E0","inputValidation.infoBackground":"#79590C","inputValidation.infoBorder":"#F7E4E033","inputValidation.infoForeground":"#F7E4E0","inputValidation.warningBackground":"#8A5021","inputValidation.warningBorder":"#F7E4E033","inputValidation.warningForeground":"#F7E4E0","list.activeSelectionBackground":"#FFF1ED","list.activeSelectionForeground":"#231917","list.dropBackground":"#8F4B3A33","list.focusBackground":"#FFF1ED","list.focusForeground":"#231917","list.focusOutline":"#00000000","list.highlightForeground":"#8F4B3A","list.hoverBackground":"#FFF1ED80","list.hoverForeground":"#231917","list.inactiveSelectionBackground":"#FFF1ED","list.inactiveSelectionForeground":"#231917","list.warningForeground":"#8A5021","listFilterWidget.background":"#FCEAE6","listFilterWidget.noMatchesOutline":"#904B3F","listFilterWidget.outline":"#00000000","tree.indentGuidesStroke":"#534340","tree.inactiveIndentGuidesStroke":"#FCEAE6","menu.background":"#FFF8F6","menu.border":"#FFF8F680","menu.foreground":"#231917","menu.selectionBackground":"#F1DFDA","menu.selectionBorder":"#00000000","menu.selectionForeground":"#231917","menu.separatorBackground":"#F1DFDA","menubar.selectionBackground":"#FCEAE6","menubar.selectionForeground":"#231917","merge.commonContentBackground":"#FCEAE6","merge.commonHeaderBackground":"#F1DFDA","merge.currentContentBackground":"#266B4A33","merge.currentHeaderBackground":"#266B4A66","merge.incomingContentBackground":"#79590C33","merge.incomingHeaderBackground":"#79590C66","minimap.background":"#FCEAE680","minimap.findMatchHighlight":"#725C0B4d","minimap.selectionHighlight":"#F1DFDAbf","minimap.selectionOccurrenceHighlight":"#F1DFDAbf","minimap.warningHighlight":"#8A5021bf","minimap.errorHighlight":"#BA1A1Abf","minimapSlider.background":"#8F4B3A33","minimapSlider.hoverBackground":"#8F4B3A66","minimapSlider.activeBackground":"#8F4B3A99","minimapGutter.addedBackground":"#266B4Abf","minimapGutter.deletedBackground":"#904B3Fbf","minimapGutter.modifiedBackground":"#8D4E2Abf","notificationCenter.border":"#8F4B3A","notificationCenterHeader.foreground":"#231917","notificationCenterHeader.background":"#FCEAE6","notificationToast.border":"#8F4B3A","notifications.foreground":"#231917","notifications.background":"#FCEAE6","notifications.border":"#8F4B3A","notificationLink.foreground":"#79590C","notificationsErrorIcon.foreground":"#BA1A1A","notificationsWarningIcon.foreground":"#8A5021","notificationsInfoIcon.foreground":"#79590C","panel.background":"#FFF8F6","panel.border":"#F1DFDA","panelSection.border":"#F1DFDA","panelSection.dropBackground":"#8F4B3A33","panelTitle.activeBorder":"#8F4B3A","panelTitle.activeForeground":"#231917","panelTitle.inactiveForeground":"#83716C","peekView.border":"#8F4B3A","peekViewEditor.background":"#FCEAE6","peekViewEditorGutter.background":"#FCEAE6","peekViewEditor.matchHighlightBackground":"#725C0B4d","peekViewEditor.matchHighlightBorder":"#00000000","peekViewResult.background":"#FCEAE6","peekViewResult.fileForeground":"#231917","peekViewResult.lineForeground":"#231917","peekViewResult.matchHighlightBackground":"#725C0B4d","peekViewResult.selectionBackground":"#FFF1ED","peekViewResult.selectionForeground":"#231917","peekViewTitle.background":"#FFF8F6","peekViewTitleDescription.foreground":"#534340b3","peekViewTitleLabel.foreground":"#231917","pickerGroup.border":"#8F4B3A","pickerGroup.foreground":"#8F4B3A","progressBar.background":"#8F4B3A","scrollbar.shadow":"#F7E4E0","scrollbarSlider.activeBackground":"#FFF1ED66","scrollbarSlider.background":"#F1DFDA80","scrollbarSlider.hoverBackground":"#83716C","settings.focusedRowBackground":"#F1DFDA33","settings.headerForeground":"#231917","settings.modifiedItemIndicator":"#8F4B3A","settings.dropdownBackground":"#FCEAE6","settings.dropdownListBorder":"#00000000","settings.textInputBackground":"#FCEAE6","settings.textInputBorder":"#00000000","settings.numberInputBackground":"#FCEAE6","settings.numberInputBorder":"#00000000","sideBar.background":"#FCEAE6","sideBar.dropBackground":"#8F4B3A33","sideBar.foreground":"#231917","sideBar.border":"#00000000","sideBarSectionHeader.background":"#FCEAE6","sideBarSectionHeader.foreground":"#231917","sideBarTitle.foreground":"#8F4B3A","banner.background":"#FCEAE6","banner.foreground":"#231917","banner.iconForeground":"#231917","statusBar.background":"#F7E4E0","statusBar.foreground":"#231917","statusBar.border":"#00000000","statusBar.noFolderBackground":"#F7E4E0","statusBar.noFolderForeground":"#231917","statusBar.noFolderBorder":"#00000000","statusBar.debuggingBackground":"#8A5021","statusBar.debuggingForeground":"#F7E4E0","statusBar.debuggingBorder":"#00000000","statusBarItem.remoteBackground":"#79590C","statusBarItem.remoteForeground":"#F7E4E0","statusBarItem.activeBackground":"#F1DFDA66","statusBarItem.hoverBackground":"#F1DFDA33","statusBarItem.prominentForeground":"#8F4B3A","statusBarItem.prominentBackground":"#00000000","statusBarItem.prominentHoverBackground":"#F1DFDA33","statusBarItem.errorForeground":"#BA1A1A","statusBarItem.errorBackground":"#00000000","statusBarItem.warningForeground":"#8A5021","statusBarItem.warningBackground":"#00000000","commandCenter.foreground":"#534340","commandCenter.inactiveForeground":"#534340","commandCenter.activeForeground":"#8F4B3A","commandCenter.background":"#FCEAE6","commandCenter.activeBackground":"#F1DFDA33","commandCenter.border":"#00000000","commandCenter.inactiveBorder":"#00000000","commandCenter.activeBorder":"#8F4B3A","tab.activeBackground":"#FFF8F6","tab.activeBorder":"#00000000","tab.activeBorderTop":"#8F4B3A","tab.activeForeground":"#8F4B3A","tab.activeModifiedBorder":"#8D4E2A","tab.border":"#FCEAE6","tab.hoverBackground":"#F7E4E0","tab.hoverBorder":"#00000000","tab.hoverForeground":"#231917","tab.inactiveBackground":"#FCEAE6","tab.inactiveForeground":"#534340","tab.inactiveModifiedBorder":"#8D4E2A4d","tab.lastPinnedBorder":"#8F4B3A","tab.unfocusedActiveBackground":"#FCEAE6","tab.unfocusedActiveBorder":"#00000000","tab.unfocusedActiveBorderTop":"#8F4B3A4d","tab.unfocusedInactiveBackground":"#FFF1ED","terminal.foreground":"#231917","terminal.ansiBlack":"#FCEAE6","terminal.ansiRed":"#904B3F","terminal.ansiGreen":"#266B4A","terminal.ansiYellow":"#8D4E2A","terminal.ansiBlue":"#79590C","terminal.ansiMagenta":"#805610","terminal.ansiCyan":"#4E6529","terminal.ansiWhite":"#534340","terminal.ansiBrightBlack":"#F1DFDA","terminal.ansiBrightRed":"#b25e50","terminal.ansiBrightGreen":"#339164","terminal.ansiBrightYellow":"#b46436","terminal.ansiBrightBlue":"#a77b11","terminal.ansiBrightMagenta":"#ad7416","terminal.ansiBrightCyan":"#6a8938","terminal.ansiBrightWhite":"#534340","terminal.selectionBackground":"#F1DFDA","terminal.inactiveSelectionBackground":"#F1DFDA80","terminalCursor.background":"#FFF8F6","terminalCursor.foreground":"#77574F","terminal.border":"#F1DFDA","terminal.dropBackground":"#8F4B3A33","terminal.tab.activeBorder":"#8F4B3A","terminalCommandDecoration.defaultBackground":"#F1DFDA","terminalCommandDecoration.successBackground":"#739900","terminalCommandDecoration.errorBackground":"#BA1A1A","titleBar.activeBackground":"#F7E4E0","titleBar.activeForeground":"#231917","titleBar.inactiveBackground":"#F7E4E0","titleBar.inactiveForeground":"#23191780","titleBar.border":"#00000000","welcomePage.tileBackground":"#FCEAE6","welcomePage.progress.background":"#F7E4E0","welcomePage.progress.foreground":"#8F4B3A","walkThrough.embeddedEditorBackground":"#FFF8F64d","symbolIcon.textForeground":"#231917","symbolIcon.arrayForeground":"#8A5021","symbolIcon.booleanForeground":"#66558F","symbolIcon.classForeground":"#8D4E2A","symbolIcon.colorForeground":"#805610","symbolIcon.constantForeground":"#8A5021","symbolIcon.constructorForeground":"#695F11","symbolIcon.enumeratorForeground":"#8D4E2A","symbolIcon.enumeratorMemberForeground":"#8D4E2A","symbolIcon.eventForeground":"#805610","symbolIcon.fieldForeground":"#231917","symbolIcon.fileForeground":"#8F4B3A","symbolIcon.folderForeground":"#8F4B3A","symbolIcon.functionForeground":"#79590C","symbolIcon.interfaceForeground":"#8D4E2A","symbolIcon.keyForeground":"#4E6529","symbolIcon.keywordForeground":"#66558F","symbolIcon.methodForeground":"#79590C","symbolIcon.moduleForeground":"#231917","symbolIcon.namespaceForeground":"#8D4E2A","symbolIcon.nullForeground":"#904947","symbolIcon.numberForeground":"#8A5021","symbolIcon.objectForeground":"#8D4E2A","symbolIcon.operatorForeground":"#4E6529","symbolIcon.packageForeground":"#8F4B3A","symbolIcon.propertyForeground":"#904947","symbolIcon.referenceForeground":"#8D4E2A","symbolIcon.snippetForeground":"#8F4B3A","symbolIcon.stringForeground":"#266B4A","symbolIcon.structForeground":"#4E6529","symbolIcon.typeParameterForeground":"#904947","symbolIcon.unitForeground":"#231917","symbolIcon.variableForeground":"#231917","charts.foreground":"#231917","charts.lines":"#534340","charts.red":"#904B3F","charts.blue":"#79590C","charts.yellow":"#8D4E2A","charts.orange":"#8A5021","charts.green":"#266B4A","charts.purple":"#66558F","errorLens.errorBackground":"#BA1A1A26","errorLens.errorBackgroundLight":"#BA1A1A26","errorLens.errorForeground":"#BA1A1A","errorLens.errorForegroundLight":"#BA1A1A","errorLens.errorMessageBackground":"#BA1A1A26","errorLens.hintBackground":"#73990026","errorLens.hintBackgroundLight":"#73990026","errorLens.hintForeground":"#739900","errorLens.hintForegroundLight":"#739900","errorLens.hintMessageBackground":"#73990026","errorLens.infoBackground":"#79590C26","errorLens.infoBackgroundLight":"#79590C26","errorLens.infoForeground":"#79590C","errorLens.infoForegroundLight":"#79590C","errorLens.infoMessageBackground":"#79590C26","errorLens.statusBarErrorForeground":"#BA1A1A","errorLens.statusBarHintForeground":"#739900","errorLens.statusBarIconErrorForeground":"#BA1A1A","errorLens.statusBarIconWarningForeground":"#8A5021","errorLens.statusBarInfoForeground":"#79590C","errorLens.statusBarWarningForeground":"#8A5021","errorLens.warningBackground":"#8A502126","errorLens.warningBackgroundLight":"#8A502126","errorLens.warningForeground":"#8A5021","errorLens.warningForegroundLight":"#8A5021","errorLens.warningMessageBackground":"#8A502126","issues.closed":"#66558F","issues.newIssueDecoration":"#8F4D30","issues.open":"#266B4A","pullRequests.closed":"#904B3F","pullRequests.draft":"#534340","pullRequests.merged":"#66558F","pullRequests.notification":"#231917","pullRequests.open":"#266B4A","gitlens.gutterBackgroundColor":"#FFF1ED4d","gitlens.gutterForegroundColor":"#231917","gitlens.gutterUncommittedForegroundColor":"#8F4B3A","gitlens.trailingLineBackgroundColor":"#00000000","gitlens.trailingLineForegroundColor":"#2319174d","gitlens.lineHighlightBackgroundColor":"#8F4B3A26","gitlens.lineHighlightOverviewRulerColor":"#8F4B3Acc","gitlens.openAutolinkedIssueIconColor":"#266B4A","gitlens.closedAutolinkedIssueIconColor":"#66558F","gitlens.closedPullRequestIconColor":"#904B3F","gitlens.openPullRequestIconColor":"#266B4A","gitlens.mergedPullRequestIconColor":"#66558F","gitlens.unpublishedChangesIconColor":"#266B4A","gitlens.unpublishedCommitIconColor":"#266B4A","gitlens.unpulledChangesIconColor":"#8A5021","gitlens.decorations.branchAheadForegroundColor":"#266B4A","gitlens.decorations.branchBehindForegroundColor":"#8A5021","gitlens.decorations.branchDivergedForegroundColor":"#8D4E2A","gitlens.decorations.branchUnpublishedForegroundColor":"#266B4A","gitlens.decorations.branchMissingUpstreamForegroundColor":"#8A5021","gitlens.decorations.statusMergingOrRebasingConflictForegroundColor":"#904947","gitlens.decorations.statusMergingOrRebasingForegroundColor":"#8D4E2A","gitlens.decorations.workspaceRepoMissingForegroundColor":"#83716C","gitlens.decorations.workspaceCurrentForegroundColor":"#8F4B3A","gitlens.decorations.workspaceRepoOpenForegroundColor":"#8F4B3A","gitlens.decorations.worktreeHasUncommittedChangesForegroundColor":"#8A5021","gitlens.decorations.worktreeMissingForegroundColor":"#904947","gitlens.graphLane1Color":"#66558F","gitlens.graphLane2Color":"#8D4E2A","gitlens.graphLane3Color":"#79590C","gitlens.graphLane4Color":"#8F4B3A","gitlens.graphLane5Color":"#266B4A","gitlens.graphLane6Color":"#695F11","gitlens.graphLane7Color":"#8F4D30","gitlens.graphLane8Color":"#904B3F","gitlens.graphLane9Color":"#4E6529","gitlens.graphLane10Color":"#805610","gitlens.graphChangesColumnAddedColor":"#739900","gitlens.graphChangesColumnDeletedColor":"#BA1A1A","gitlens.graphMinimapMarkerHeadColor":"#266B4A","gitlens.graphScrollMarkerHeadColor":"#266B4A","gitlens.graphMinimapMarkerUpstreamColor":"#1f583d","gitlens.graphScrollMarkerUpstreamColor":"#1f583d","gitlens.graphMinimapMarkerHighlightsColor":"#8D4E2A","gitlens.graphScrollMarkerHighlightsColor":"#8D4E2A","gitlens.graphMinimapMarkerLocalBranchesColor":"#79590C","gitlens.graphScrollMarkerLocalBranchesColor":"#79590C","gitlens.graphMinimapMarkerRemoteBranchesColor":"#62480a","gitlens.graphScrollMarkerRemoteBranchesColor":"#62480a","gitlens.graphMinimapMarkerStashesColor":"#66558F","gitlens.graphScrollMarkerStashesColor":"#66558F","gitlens.graphMinimapMarkerTagsColor":"#8F4B3A","gitlens.graphScrollMarkerTagsColor":"#8F4B3A","editorBracketHighlight.foreground1":"#904B3F","editorBracketHighlight.foreground2":"#8A5021","editorBracketHighlight.foreground3":"#8D4E2A","editorBracketHighlight.foreground4":"#266B4A","editorBracketHighlight.foreground5":"#855318","editorBracketHighlight.foreground6":"#66558F","editorBracketHighlight.unexpectedBracket.foreground":"#904947","button.secondaryBorder":"#8F4B3A","table.headerBackground":"#FFF1ED","table.headerForeground":"#231917","list.focusAndSelectionBackground":"#FCEAE6"},"semanticHighlighting":true,"semanticTokenColors":{"enumMember":{"foreground":"#4E6529"},"selfKeyword":{"foreground":"#904B3F"},"boolean":{"foreground":"#8A5021"},"number":{"foreground":"#8A5021"},"variable.defaultLibrary":{"foreground":"#904947"},"class:python":{"foreground":"#8D4E2A"},"class.builtin:python":{"foreground":"#66558F"},"variable.typeHint:python":{"foreground":"#8D4E2A"},"function.decorator:python":{"foreground":"#8A5021"},"variable.readonly:javascript":{"foreground":"#231917"},"variable.readonly:typescript":{"foreground":"#231917"},"property.readonly:javascript":{"foreground":"#231917"},"property.readonly:typescript":{"foreground":"#231917"},"variable.readonly:javascriptreact":{"foreground":"#231917"},"variable.readonly:typescriptreact":{"foreground":"#231917"},"property.readonly:javascriptreact":{"foreground":"#231917"},"property.readonly:typescriptreact":{"foreground":"#231917"},"variable.readonly:scala":{"foreground":"#231917"},"type.defaultLibrary:go":{"foreground":"#66558F"},"variable.readonly.defaultLibrary:go":{"foreground":"#66558F"},"tomlArrayKey":{"foreground":"#79590C","fontStyle":""},"tomlTableKey":{"foreground":"#79590C","fontStyle":""},"builtinAttribute.attribute.library:rust":{"foreground":"#79590C"},"generic.attribute:rust":{"foreground":"#231917"},"constant.builtin.readonly:nix":{"foreground":"#66558F"},"heading":{"foreground":"#904B3F"},"text.emph":{"foreground":"#904B3F","fontStyle":"italic"},"text.strong":{"foreground":"#904B3F","fontStyle":"bold"},"text.math":{"foreground":"#8F4B3A"},"pol":{"foreground":"#8F4B3A"}},"tokenColors":[{"name":"Basic text & variable names (incl. leading punctuation)","scope":["text","source","variable.other.readwrite","punctuation.definition.variable"],"settings":{"foreground":"#231917"}},{"name":"Parentheses, Brackets, Braces","scope":"punctuation","settings":{"foreground":"#534340","fontStyle":""}},{"name":"Comments","scope":["comment","punctuation.definition.comment"],"settings":{"foreground":"#534340","fontStyle":"italic"}},{"scope":["string","punctuation.definition.string"],"settings":{"foreground":"#266B4A"}},{"scope":"constant.character.escape","settings":{"foreground":"#805610"}},{"name":"Booleans, constants, numbers","scope":["constant.numeric","variable.other.constant","entity.name.constant","constant.language.boolean","constant.language.false","constant.language.true","keyword.other.unit.user-defined","keyword.other.unit.suffix.floating-point"],"settings":{"foreground":"#8A5021"}},{"scope":["keyword","keyword.operator.word","keyword.operator.new","variable.language.super","support.type.primitive","storage.type","storage.modifier","punctuation.definition.keyword"],"settings":{"foreground":"#66558F","fontStyle":""}},{"scope":"entity.name.tag.documentation","settings":{"foreground":"#66558F"}},{"name":"Punctuation","scope":["keyword.operator","punctuation.accessor","punctuation.definition.generic","meta.function.closure punctuation.section.parameters","punctuation.definition.tag","punctuation.separator.key-value"],"settings":{"foreground":"#4E6529"}},{"scope":["entity.name.function","meta.function-call.method","support.function","support.function.misc","variable.function"],"settings":{"foreground":"#79590C","fontStyle":"italic"}},{"name":"Classes","scope":["entity.name.class","entity.other.inherited-class","support.class","meta.function-call.constructor","entity.name.struct"],"settings":{"foreground":"#8D4E2A","fontStyle":"italic"}},{"name":"Enum","scope":"entity.name.enum","settings":{"foreground":"#8D4E2A","fontStyle":"italic"}},{"name":"Enum member","scope":["meta.enum variable.other.readwrite","variable.other.enummember"],"settings":{"foreground":"#4E6529"}},{"name":"Object properties","scope":"meta.property.object","settings":{"foreground":"#4E6529"}},{"name":"Types","scope":["meta.type","meta.type-alias","support.type","entity.name.type"],"settings":{"foreground":"#8D4E2A","fontStyle":"italic"}},{"name":"Decorators","scope":["meta.annotation variable.function","meta.annotation variable.annotation.function","meta.annotation punctuation.definition.annotation","meta.decorator","punctuation.decorator"],"settings":{"foreground":"#8A5021"}},{"scope":["variable.parameter","meta.function.parameters"],"settings":{"foreground":"#904947","fontStyle":"italic"}},{"name":"Built-ins","scope":["constant.language","support.function.builtin"],"settings":{"foreground":"#904B3F"}},{"scope":"entity.other.attribute-name.documentation","settings":{"foreground":"#904B3F"}},{"name":"Preprocessor directives","scope":["keyword.control.directive","punctuation.definition.directive"],"settings":{"foreground":"#8D4E2A"}},{"name":"Type parameters","scope":"punctuation.definition.typeparameters","settings":{"foreground":"#725C0B"}},{"name":"Namespaces","scope":"entity.name.namespace","settings":{"foreground":"#8D4E2A"}},{"name":"Property names (left hand assignments in json/yaml/css)","scope":"support.type.property-name.css","settings":{"foreground":"#79590C","fontStyle":""}},{"name":"This/Self keyword","scope":["variable.language.this","variable.language.this punctuation.definition.variable"],"settings":{"foreground":"#904B3F"}},{"name":"Object properties","scope":"variable.object.property","settings":{"foreground":"#231917"}},{"name":"String template interpolation","scope":["string.template variable","string variable"],"settings":{"foreground":"#231917"}},{"name":"`new` as bold","scope":"keyword.operator.new","settings":{"fontStyle":"bold"}},{"name":"C++ extern keyword","scope":"storage.modifier.specifier.extern.cpp","settings":{"foreground":"#66558F"}},{"name":"C++ scope resolution","scope":["entity.name.scope-resolution.template.call.cpp","entity.name.scope-resolution.parameter.cpp","entity.name.scope-resolution.cpp","entity.name.scope-resolution.function.definition.cpp"],"settings":{"foreground":"#8D4E2A"}},{"name":"C++ doc keywords","scope":"storage.type.class.doxygen","settings":{"fontStyle":""}},{"name":"C++ operators","scope":["storage.modifier.reference.cpp"],"settings":{"foreground":"#4E6529"}},{"name":"C# Interpolated Strings","scope":"meta.interpolation.cs","settings":{"foreground":"#231917"}},{"name":"C# xml-style docs","scope":"comment.block.documentation.cs","settings":{"foreground":"#231917"}},{"name":"Classes, reflecting the className color in JSX","scope":["source.css entity.other.attribute-name.class.css","entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css"],"settings":{"foreground":"#8D4E2A"}},{"name":"Operators","scope":"punctuation.separator.operator.css","settings":{"foreground":"#4E6529"}},{"name":"Pseudo classes","scope":"source.css entity.other.attribute-name.pseudo-class","settings":{"foreground":"#4E6529"}},{"scope":"source.css constant.other.unicode-range","settings":{"foreground":"#8A5021"}},{"scope":"source.css variable.parameter.url","settings":{"foreground":"#266B4A","fontStyle":""}},{"name":"CSS vendored property names","scope":["support.type.vendored.property-name"],"settings":{"foreground":"#725C0B"}},{"name":"Less/SCSS right-hand variables (@/$-prefixed)","scope":["source.css meta.property-value variable","source.css meta.property-value variable.other.less","source.css meta.property-value variable.other.less punctuation.definition.variable.less","meta.definition.variable.scss"],"settings":{"foreground":"#904947"}},{"name":"CSS variables (--prefixed)","scope":["source.css meta.property-list variable","meta.property-list variable.other.less","meta.property-list variable.other.less punctuation.definition.variable.less"],"settings":{"foreground":"#79590C"}},{"name":"CSS Percentage values, styled the same as numbers","scope":"keyword.other.unit.percentage.css","settings":{"foreground":"#8A5021"}},{"name":"CSS Attribute selectors, styled the same as strings","scope":"source.css meta.attribute-selector","settings":{"foreground":"#266B4A"}},{"name":"JSON/YAML keys, other left-hand assignments","scope":["keyword.other.definition.ini","punctuation.support.type.property-name.json","support.type.property-name.json","punctuation.support.type.property-name.toml","support.type.property-name.toml","entity.name.tag.yaml","punctuation.support.type.property-name.yaml","support.type.property-name.yaml"],"settings":{"foreground":"#79590C","fontStyle":""}},{"name":"JSON/YAML constants","scope":["constant.language.json","constant.language.yaml"],"settings":{"foreground":"#8A5021"}},{"name":"YAML anchors","scope":["entity.name.type.anchor.yaml","variable.other.alias.yaml"],"settings":{"foreground":"#8D4E2A","fontStyle":""}},{"name":"TOML tables / ini groups","scope":["support.type.property-name.table","entity.name.section.group-title.ini"],"settings":{"foreground":"#8D4E2A"}},{"name":"TOML dates","scope":"constant.other.time.datetime.offset.toml","settings":{"foreground":"#805610"}},{"name":"YAML anchor puctuation","scope":["punctuation.definition.anchor.yaml","punctuation.definition.alias.yaml"],"settings":{"foreground":"#805610"}},{"name":"YAML triple dashes","scope":"entity.other.document.begin.yaml","settings":{"foreground":"#805610"}},{"name":"Markup Diff","scope":"markup.changed.diff","settings":{"foreground":"#8A5021"}},{"name":"Diff","scope":["meta.diff.header.from-file","meta.diff.header.to-file","punctuation.definition.from-file.diff","punctuation.definition.to-file.diff"],"settings":{"foreground":"#79590C"}},{"name":"Diff Inserted","scope":"markup.inserted.diff","settings":{"foreground":"#266B4A"}},{"name":"Diff Deleted","scope":"markup.deleted.diff","settings":{"foreground":"#904B3F"}},{"name":"dotenv left-hand side assignments","scope":["variable.other.env"],"settings":{"foreground":"#79590C"}},{"name":"dotenv reference to existing env variable","scope":["string.quoted variable.other.env"],"settings":{"foreground":"#231917"}},{"name":"GDScript functions","scope":"support.function.builtin.gdscript","settings":{"foreground":"#79590C"}},{"name":"GDScript constants","scope":"constant.language.gdscript","settings":{"foreground":"#8A5021"}},{"name":"Comment keywords","scope":"comment meta.annotation.go","settings":{"foreground":"#904947"}},{"name":"go:embed, go:build, etc.","scope":"comment meta.annotation.parameters.go","settings":{"foreground":"#8A5021"}},{"name":"Go constants (nil, true, false)","scope":"constant.language.go","settings":{"foreground":"#8A5021"}},{"name":"GraphQL variables","scope":"variable.graphql","settings":{"foreground":"#231917"}},{"name":"GraphQL aliases","scope":"string.unquoted.alias.graphql","settings":{"foreground":"#8F4B3A"}},{"name":"GraphQL enum members","scope":"constant.character.enum.graphql","settings":{"foreground":"#4E6529"}},{"name":"GraphQL field in types","scope":"meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql","settings":{"foreground":"#8F4B3A"}},{"name":"HTML/XML DOCTYPE as keyword","scope":["keyword.other.doctype","meta.tag.sgml.doctype punctuation.definition.tag","meta.tag.metadata.doctype entity.name.tag","meta.tag.metadata.doctype punctuation.definition.tag"],"settings":{"foreground":"#66558F"}},{"name":"HTML/XML-like ","scope":["entity.name.tag"],"settings":{"foreground":"#79590C","fontStyle":""}},{"name":"Special characters like &","scope":["text.html constant.character.entity","text.html constant.character.entity punctuation","constant.character.entity.xml","constant.character.entity.xml punctuation","constant.character.entity.js.jsx","constant.charactger.entity.js.jsx punctuation","constant.character.entity.tsx","constant.character.entity.tsx punctuation"],"settings":{"foreground":"#904B3F"}},{"name":"HTML/XML tag attribute values","scope":["entity.other.attribute-name"],"settings":{"foreground":"#8D4E2A"}},{"name":"Components","scope":["support.class.component","support.class.component.jsx","support.class.component.tsx","support.class.component.vue"],"settings":{"foreground":"#805610","fontStyle":""}},{"name":"Annotations","scope":["punctuation.definition.annotation","storage.type.annotation"],"settings":{"foreground":"#8A5021"}},{"name":"Java enums","scope":"constant.other.enum.java","settings":{"foreground":"#4E6529"}},{"name":"Java imports","scope":"storage.modifier.import.java","settings":{"foreground":"#231917"}},{"name":"Javadoc","scope":"comment.block.javadoc.java keyword.other.documentation.javadoc.java","settings":{"fontStyle":""}},{"name":"Exported Variable","scope":"meta.export variable.other.readwrite.js","settings":{"foreground":"#904947"}},{"name":"JS/TS constants & properties","scope":["variable.other.constant.js","variable.other.constant.ts","variable.other.property.js","variable.other.property.ts"],"settings":{"foreground":"#231917"}},{"name":"JSDoc; these are mainly params, so styled as such","scope":["variable.other.jsdoc","comment.block.documentation variable.other"],"settings":{"foreground":"#904947","fontStyle":""}},{"name":"JSDoc keywords","scope":"storage.type.class.jsdoc","settings":{"fontStyle":""}},{"scope":"support.type.object.console.js","settings":{"foreground":"#231917"}},{"name":"Node constants as keywords (module, etc.)","scope":["support.constant.node","support.type.object.module.js"],"settings":{"foreground":"#66558F"}},{"name":"implements as keyword","scope":"storage.modifier.implements","settings":{"foreground":"#66558F"}},{"name":"Builtin types","scope":["constant.language.null.js","constant.language.null.ts","constant.language.undefined.js","constant.language.undefined.ts","support.type.builtin.ts"],"settings":{"foreground":"#66558F"}},{"scope":"variable.parameter.generic","settings":{"foreground":"#8D4E2A"}},{"name":"Arrow functions","scope":["keyword.declaration.function.arrow.js","storage.type.function.arrow.ts"],"settings":{"foreground":"#4E6529"}},{"name":"Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach)","scope":"punctuation.decorator.ts","settings":{"foreground":"#79590C","fontStyle":"italic"}},{"name":"Extra JS/TS keywords","scope":["keyword.operator.expression.in.js","keyword.operator.expression.in.ts","keyword.operator.expression.infer.ts","keyword.operator.expression.instanceof.js","keyword.operator.expression.instanceof.ts","keyword.operator.expression.is","keyword.operator.expression.keyof.ts","keyword.operator.expression.of.js","keyword.operator.expression.of.ts","keyword.operator.expression.typeof.ts"],"settings":{"foreground":"#66558F"}},{"name":"Julia macros","scope":"support.function.macro.julia","settings":{"foreground":"#4E6529","fontStyle":"italic"}},{"name":"Julia language constants (true, false)","scope":"constant.language.julia","settings":{"foreground":"#8A5021"}},{"name":"Julia other constants (these seem to be arguments inside arrays)","scope":"constant.other.symbol.julia","settings":{"foreground":"#904947"}},{"name":"LaTeX preamble","scope":"text.tex keyword.control.preamble","settings":{"foreground":"#4E6529"}},{"name":"LaTeX be functions","scope":"text.tex support.function.be","settings":{"foreground":"#725C0B"}},{"name":"LaTeX math","scope":"constant.other.general.math.tex","settings":{"foreground":"#8F4B3A"}},{"name":"Liquid Builtin Objects & User Defined Variables","scope":"variable.language.liquid","settings":{"foreground":"#805610"}},{"name":"Lua docstring keywords","scope":"comment.line.double-dash.documentation.lua storage.type.annotation.lua","settings":{"foreground":"#66558F","fontStyle":""}},{"name":"Lua docstring variables","scope":["comment.line.double-dash.documentation.lua entity.name.variable.lua","comment.line.double-dash.documentation.lua variable.lua"],"settings":{"foreground":"#231917"}},{"scope":["heading.1.markdown punctuation.definition.heading.markdown","heading.1.markdown","heading.1.quarto punctuation.definition.heading.quarto","heading.1.quarto","markup.heading.atx.1.mdx","markup.heading.atx.1.mdx punctuation.definition.heading.mdx","markup.heading.setext.1.markdown","markup.heading.heading-0.asciidoc"],"settings":{"foreground":"#904B3F"}},{"scope":["heading.2.markdown punctuation.definition.heading.markdown","heading.2.markdown","heading.2.quarto punctuation.definition.heading.quarto","heading.2.quarto","markup.heading.atx.2.mdx","markup.heading.atx.2.mdx punctuation.definition.heading.mdx","markup.heading.setext.2.markdown","markup.heading.heading-1.asciidoc"],"settings":{"foreground":"#8A5021"}},{"scope":["heading.3.markdown punctuation.definition.heading.markdown","heading.3.markdown","heading.3.quarto punctuation.definition.heading.quarto","heading.3.quarto","markup.heading.atx.3.mdx","markup.heading.atx.3.mdx punctuation.definition.heading.mdx","markup.heading.heading-2.asciidoc"],"settings":{"foreground":"#8D4E2A"}},{"scope":["heading.4.markdown punctuation.definition.heading.markdown","heading.4.markdown","heading.4.quarto punctuation.definition.heading.quarto","heading.4.quarto","markup.heading.atx.4.mdx","markup.heading.atx.4.mdx punctuation.definition.heading.mdx","markup.heading.heading-3.asciidoc"],"settings":{"foreground":"#266B4A"}},{"scope":["heading.5.markdown punctuation.definition.heading.markdown","heading.5.markdown","heading.5.quarto punctuation.definition.heading.quarto","heading.5.quarto","markup.heading.atx.5.mdx","markup.heading.atx.5.mdx punctuation.definition.heading.mdx","markup.heading.heading-4.asciidoc"],"settings":{"foreground":"#855318"}},{"scope":["heading.6.markdown punctuation.definition.heading.markdown","heading.6.markdown","heading.6.quarto punctuation.definition.heading.quarto","heading.6.quarto","markup.heading.atx.6.mdx","markup.heading.atx.6.mdx punctuation.definition.heading.mdx","markup.heading.heading-5.asciidoc"],"settings":{"foreground":"#695F11"}},{"scope":"markup.bold","settings":{"foreground":"#904B3F","fontStyle":"bold"}},{"scope":"markup.italic","settings":{"foreground":"#904B3F","fontStyle":"italic"}},{"scope":"markup.strikethrough","settings":{"foreground":"#83716C","fontStyle":"strikethrough"}},{"name":"Markdown auto links","scope":["punctuation.definition.link","markup.underline.link"],"settings":{"foreground":"#79590C"}},{"name":"Markdown links","scope":["text.html.markdown punctuation.definition.link.title","text.html.quarto punctuation.definition.link.title","string.other.link.title.markdown","string.other.link.title.quarto","markup.link","punctuation.definition.constant.markdown","punctuation.definition.constant.quarto","constant.other.reference.link.markdown","constant.other.reference.link.quarto","markup.substitution.attribute-reference"],"settings":{"foreground":"#695F11"}},{"name":"Markdown code spans","scope":["punctuation.definition.raw.markdown","punctuation.definition.raw.quarto","markup.inline.raw.string.markdown","markup.inline.raw.string.quarto","markup.raw.block.markdown","markup.raw.block.quarto"],"settings":{"foreground":"#266B4A"}},{"name":"Markdown triple backtick language identifier","scope":"fenced_code.block.language","settings":{"foreground":"#725C0B"}},{"name":"Markdown triple backticks","scope":["markup.fenced_code.block punctuation.definition","markup.raw support.asciidoc"],"settings":{"foreground":"#534340"}},{"name":"Markdown quotes","scope":["markup.quote","punctuation.definition.quote.begin"],"settings":{"foreground":"#805610"}},{"name":"Markdown separators","scope":"meta.separator.markdown","settings":{"foreground":"#4E6529"}},{"name":"Markdown list bullets","scope":["punctuation.definition.list.begin.markdown","punctuation.definition.list.begin.quarto","markup.list.bullet"],"settings":{"foreground":"#4E6529"}},{"name":"Quarto headings","scope":"markup.heading.quarto","settings":{"fontStyle":"bold"}},{"name":"Nix attribute names","scope":["entity.other.attribute-name.multipart.nix","entity.other.attribute-name.single.nix"],"settings":{"foreground":"#79590C"}},{"name":"Nix parameter names","scope":"variable.parameter.name.nix","settings":{"foreground":"#231917","fontStyle":""}},{"name":"Nix interpolated parameter names","scope":"meta.embedded variable.parameter.name.nix","settings":{"foreground":"#695F11","fontStyle":""}},{"name":"Nix paths","scope":"string.unquoted.path.nix","settings":{"foreground":"#805610","fontStyle":""}},{"name":"PHP Attributes","scope":["support.attribute.builtin","meta.attribute.php"],"settings":{"foreground":"#8D4E2A"}},{"name":"PHP Parameters (needed for the leading dollar sign)","scope":"meta.function.parameters.php punctuation.definition.variable.php","settings":{"foreground":"#904947"}},{"name":"PHP Constants (null, __FILE__, etc.)","scope":"constant.language.php","settings":{"foreground":"#66558F"}},{"name":"PHP functions","scope":"text.html.php support.function","settings":{"foreground":"#725C0B"}},{"name":"PHPdoc keywords","scope":"keyword.other.phpdoc.php","settings":{"fontStyle":""}},{"name":"Python argument functions reset to onSurface, otherwise they inherit blue from function-call","scope":["support.variable.magic.python","meta.function-call.arguments.python"],"settings":{"foreground":"#231917"}},{"name":"Python double underscore functions","scope":["support.function.magic.python"],"settings":{"foreground":"#725C0B","fontStyle":"italic"}},{"name":"Python `self` keyword","scope":["variable.parameter.function.language.special.self.python","variable.language.special.self.python"],"settings":{"foreground":"#904B3F","fontStyle":"italic"}},{"name":"python keyword flow/logical (for ... in)","scope":["keyword.control.flow.python","keyword.operator.logical.python"],"settings":{"foreground":"#66558F"}},{"name":"python storage type","scope":"storage.type.function.python","settings":{"foreground":"#66558F"}},{"name":"python function support","scope":["support.token.decorator.python","meta.function.decorator.identifier.python"],"settings":{"foreground":"#725C0B"}},{"name":"python function calls","scope":["meta.function-call.python"],"settings":{"foreground":"#79590C"}},{"name":"python function decorators","scope":["entity.name.function.decorator.python","punctuation.definition.decorator.python"],"settings":{"foreground":"#8A5021","fontStyle":"italic"}},{"name":"python placeholder reset to normal string","scope":"constant.character.format.placeholder.other.python","settings":{"foreground":"#805610"}},{"name":"Python exception & builtins such as exit()","scope":["support.type.exception.python","support.function.builtin.python"],"settings":{"foreground":"#8A5021"}},{"name":"entity.name.type","scope":["support.type.python"],"settings":{"foreground":"#8A5021"}},{"name":"python constants (True/False)","scope":"constant.language.python","settings":{"foreground":"#66558F"}},{"name":"Arguments accessed later in the function body","scope":["meta.indexed-name.python","meta.item-access.python"],"settings":{"foreground":"#904947","fontStyle":"italic"}},{"name":"Python f-strings/binary/unicode storage types","scope":"storage.type.string.python","settings":{"foreground":"#266B4A","fontStyle":"italic"}},{"name":"Python type hints","scope":"meta.function.parameters.python","settings":{"fontStyle":""}},{"name":"Regex string begin/end in JS/TS","scope":["string.regexp punctuation.definition.string.begin","string.regexp punctuation.definition.string.end"],"settings":{"foreground":"#805610"}},{"name":"Regex anchors (^, $)","scope":"keyword.control.anchor.regexp","settings":{"foreground":"#66558F"}},{"name":"Regex regular string match","scope":"string.regexp.ts","settings":{"foreground":"#231917"}},{"name":"Regex group parenthesis & backreference (\\1, \\2, \\3, ...)","scope":["punctuation.definition.group.regexp","keyword.other.back-reference.regexp"],"settings":{"foreground":"#266B4A"}},{"name":"Regex character class []","scope":"punctuation.definition.character-class.regexp","settings":{"foreground":"#8D4E2A"}},{"name":"Regex character classes (\\d, \\w, \\s)","scope":"constant.other.character-class.regexp","settings":{"foreground":"#805610"}},{"name":"Regex range","scope":"constant.other.character-class.range.regexp","settings":{"foreground":"#8F4D30"}},{"name":"Regex quantifier","scope":"keyword.operator.quantifier.regexp","settings":{"foreground":"#4E6529"}},{"name":"Regex constant/numeric","scope":"constant.character.numeric.regexp","settings":{"foreground":"#8A5021"}},{"name":"Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds","scope":["punctuation.definition.group.no-capture.regexp","meta.assertion.look-ahead.regexp","meta.assertion.negative-look-ahead.regexp"],"settings":{"foreground":"#79590C"}},{"name":"Rust attribute","scope":["meta.annotation.rust","meta.annotation.rust punctuation","meta.attribute.rust","punctuation.definition.attribute.rust"],"settings":{"foreground":"#8D4E2A","fontStyle":"italic"}},{"name":"Rust attribute strings","scope":["meta.attribute.rust string.quoted.double.rust","meta.attribute.rust string.quoted.single.char.rust"],"settings":{"fontStyle":""}},{"name":"Rust keyword","scope":["entity.name.function.macro.rules.rust","storage.type.module.rust","storage.modifier.rust","storage.type.struct.rust","storage.type.enum.rust","storage.type.trait.rust","storage.type.union.rust","storage.type.impl.rust","storage.type.rust","storage.type.function.rust","storage.type.type.rust"],"settings":{"foreground":"#66558F","fontStyle":""}},{"name":"Rust u/i32, u/i64, etc.","scope":"entity.name.type.numeric.rust","settings":{"foreground":"#66558F","fontStyle":""}},{"name":"Rust generic","scope":"meta.generic.rust","settings":{"foreground":"#8A5021"}},{"name":"Rust impl","scope":"entity.name.impl.rust","settings":{"foreground":"#8D4E2A","fontStyle":"italic"}},{"name":"Rust module","scope":"entity.name.module.rust","settings":{"foreground":"#8A5021"}},{"name":"Rust trait","scope":"entity.name.trait.rust","settings":{"foreground":"#8D4E2A","fontStyle":"italic"}},{"name":"Rust struct","scope":"storage.type.source.rust","settings":{"foreground":"#8D4E2A"}},{"name":"Rust union","scope":"entity.name.union.rust","settings":{"foreground":"#8D4E2A"}},{"name":"Rust enum member","scope":"meta.enum.rust storage.type.source.rust","settings":{"foreground":"#4E6529"}},{"name":"Rust macro","scope":["support.macro.rust","meta.macro.rust support.function.rust","entity.name.function.macro.rust"],"settings":{"foreground":"#79590C","fontStyle":"italic"}},{"name":"Rust lifetime","scope":["storage.modifier.lifetime.rust","entity.name.type.lifetime"],"settings":{"foreground":"#79590C","fontStyle":"italic"}},{"name":"Rust string formatting","scope":"string.quoted.double.rust constant.other.placeholder.rust","settings":{"foreground":"#805610"}},{"name":"Rust return type generic","scope":"meta.function.return-type.rust meta.generic.rust storage.type.rust","settings":{"foreground":"#231917"}},{"name":"Rust functions","scope":"meta.function.call.rust","settings":{"foreground":"#79590C"}},{"name":"Rust angle brackets","scope":"punctuation.brackets.angle.rust","settings":{"foreground":"#725C0B"}},{"name":"Rust constants","scope":"constant.other.caps.rust","settings":{"foreground":"#8A5021"}},{"name":"Rust function parameters","scope":["meta.function.definition.rust variable.other.rust"],"settings":{"foreground":"#904947"}},{"name":"Rust closure variables","scope":"meta.function.call.rust variable.other.rust","settings":{"foreground":"#231917"}},{"name":"Rust self","scope":"variable.language.self.rust","settings":{"foreground":"#904B3F"}},{"name":"Rust metavariable names","scope":["variable.other.metavariable.name.rust","meta.macro.metavariable.rust keyword.operator.macro.dollar.rust"],"settings":{"foreground":"#805610"}},{"name":"Shell shebang","scope":["comment.line.shebang","comment.line.shebang punctuation.definition.comment","comment.line.shebang","punctuation.definition.comment.shebang.shell","meta.shebang.shell"],"settings":{"foreground":"#805610","fontStyle":"italic"}},{"name":"Shell shebang command","scope":"comment.line.shebang constant.language","settings":{"foreground":"#4E6529","fontStyle":"italic"}},{"name":"Shell interpolated command","scope":["meta.function-call.arguments.shell punctuation.definition.variable.shell","meta.function-call.arguments.shell punctuation.section.interpolation","meta.function-call.arguments.shell punctuation.definition.variable.shell","meta.function-call.arguments.shell punctuation.section.interpolation"],"settings":{"foreground":"#904B3F"}},{"name":"Shell interpolated command variable","scope":"meta.string meta.interpolation.parameter.shell variable.other.readwrite","settings":{"foreground":"#8A5021","fontStyle":"italic"}},{"scope":["source.shell punctuation.section.interpolation","punctuation.definition.evaluation.backticks.shell"],"settings":{"foreground":"#4E6529"}},{"name":"Shell EOF","scope":"entity.name.tag.heredoc.shell","settings":{"foreground":"#66558F"}},{"name":"Shell quoted variable","scope":"string.quoted.double.shell variable.other.normal.shell","settings":{"foreground":"#231917"}}]}
\ No newline at end of file
diff --git a/vscode/caelestia-vscode-integration/tsconfig.json b/vscode/caelestia-vscode-integration/tsconfig.json
new file mode 100644
index 0000000..ecef25a
--- /dev/null
+++ b/vscode/caelestia-vscode-integration/tsconfig.json
@@ -0,0 +1,15 @@
+{
+ "compilerOptions": {
+ "module": "Node16",
+ "target": "ES2022",
+ "outDir": "out",
+ "lib": ["ES2022"],
+ "sourceMap": false,
+ "rootDir": "src",
+ "strict": true /* enable all strict type-checking options */
+ /* Additional Checks */
+ // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
+ // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
+ // "noUnusedParameters": true, /* Report errors on unused parameters. */
+ }
+}