From 2e066bbbc1b3097403f5d0000552d724020306c1 Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Sun, 15 Jun 2025 20:58:39 +1000 Subject: [PATCH] internal: move all configs into this --- fastfetch/config.jsonc | 65 + fish/config.fish | 12 + fish/functions/fish_greeting.fish | 10 + foot/foot.ini | 28 + .gitignore => hypr/.gitignore | 1 - hypridle.conf => hypr/hypridle.conf | 0 hyprland.conf => hypr/hyprland.conf | 6 +- {hyprland => hypr/hyprland}/animations.conf | 0 {hyprland => hypr/hyprland}/colours.conf | 2 - {hyprland => hypr/hyprland}/decoration.conf | 0 hypr/hyprland/env.conf | 21 + {hyprland => hypr/hyprland}/execs.conf | 2 +- {hyprland => hypr/hyprland}/keybinds.conf | 4 - {hyprland => hypr/hyprland}/rules.conf | 0 {scheme => hypr/scheme}/default.conf | 0 {scripts => hypr/scripts}/battery.fish | 0 {scripts => hypr/scripts}/gen-hyprlock.fish | 0 {scripts => hypr/scripts}/get-overrides.fish | 0 {scripts => hypr/scripts}/monitor-config.fish | 0 .../scripts}/monitor-hyprlock.fish | 0 .../templates/hyprland/aesthetic.conf | 0 .../templates/hyprland/functional.conf | 0 .../scripts}/templates/hyprlock/base.conf | 0 .../templates/hyprlock/futuristic/main.conf | 0 .../hyprlock/futuristic/per-monitor.conf | 0 .../templates/hyprlock/round/main.conf | 0 .../templates/hyprlock/round/per-monitor.conf | 0 {scripts => hypr/scripts}/track-time.fish | 0 {scripts => hypr/scripts}/truncate.fish | 2 +- {scripts => hypr/scripts}/weather.fish | 0 hyprpaper.conf | 4 - scripts/gen-scheme.fish | 22 - scripts/monitor-scheme.fish | 8 - spicetify/Themes/caelestia/user.css | 29 + starship.toml | 316 ++ vscode/User/keybindings.json | 34 + vscode/User/settings.json | 44 + .../caelestia-vscode-integration/.gitignore | 2 + .../.vscode/launch.json | 17 + .../.vscodeignore | 11 + .../caelestia-vscode-integration-1.1.0.vsix | Bin 0 -> 91867 bytes .../package-lock.json | 2812 +++++++++++++++++ .../caelestia-vscode-integration/package.json | 50 + .../src/extension.ts | 50 + .../caelestia-vscode-integration/src/theme.ts | 2169 +++++++++++++ .../themes/caelestia.json | 1 + .../tsconfig.json | 15 + 47 files changed, 5691 insertions(+), 46 deletions(-) create mode 100644 fastfetch/config.jsonc create mode 100644 fish/config.fish create mode 100644 fish/functions/fish_greeting.fish create mode 100644 foot/foot.ini rename .gitignore => hypr/.gitignore (73%) rename hypridle.conf => hypr/hypridle.conf (100%) rename hyprland.conf => hypr/hyprland.conf (92%) rename {hyprland => hypr/hyprland}/animations.conf (100%) rename {hyprland => hypr/hyprland}/colours.conf (76%) rename {hyprland => hypr/hyprland}/decoration.conf (100%) create mode 100644 hypr/hyprland/env.conf rename {hyprland => hypr/hyprland}/execs.conf (95%) rename {hyprland => hypr/hyprland}/keybinds.conf (97%) rename {hyprland => hypr/hyprland}/rules.conf (100%) rename {scheme => hypr/scheme}/default.conf (100%) rename {scripts => hypr/scripts}/battery.fish (100%) rename {scripts => hypr/scripts}/gen-hyprlock.fish (100%) rename {scripts => hypr/scripts}/get-overrides.fish (100%) rename {scripts => hypr/scripts}/monitor-config.fish (100%) rename {scripts => hypr/scripts}/monitor-hyprlock.fish (100%) rename {scripts => hypr/scripts}/templates/hyprland/aesthetic.conf (100%) rename {scripts => hypr/scripts}/templates/hyprland/functional.conf (100%) rename {scripts => hypr/scripts}/templates/hyprlock/base.conf (100%) rename {scripts => hypr/scripts}/templates/hyprlock/futuristic/main.conf (100%) rename {scripts => hypr/scripts}/templates/hyprlock/futuristic/per-monitor.conf (100%) rename {scripts => hypr/scripts}/templates/hyprlock/round/main.conf (100%) rename {scripts => hypr/scripts}/templates/hyprlock/round/per-monitor.conf (100%) rename {scripts => hypr/scripts}/track-time.fish (100%) rename {scripts => hypr/scripts}/truncate.fish (98%) rename {scripts => hypr/scripts}/weather.fish (100%) delete mode 100644 hyprpaper.conf delete mode 100755 scripts/gen-scheme.fish delete mode 100755 scripts/monitor-scheme.fish create mode 100644 spicetify/Themes/caelestia/user.css create mode 100644 starship.toml create mode 100644 vscode/User/keybindings.json create mode 100644 vscode/User/settings.json create mode 100644 vscode/caelestia-vscode-integration/.gitignore create mode 100644 vscode/caelestia-vscode-integration/.vscode/launch.json create mode 100644 vscode/caelestia-vscode-integration/.vscodeignore create mode 100644 vscode/caelestia-vscode-integration/caelestia-vscode-integration-1.1.0.vsix create mode 100644 vscode/caelestia-vscode-integration/package-lock.json create mode 100644 vscode/caelestia-vscode-integration/package.json create mode 100644 vscode/caelestia-vscode-integration/src/extension.ts create mode 100644 vscode/caelestia-vscode-integration/src/theme.ts create mode 100644 vscode/caelestia-vscode-integration/themes/caelestia.json create mode 100644 vscode/caelestia-vscode-integration/tsconfig.json 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 0000000000000000000000000000000000000000..f4745eba4fc92d41a912857c7a447f14c73087f2 GIT binary patch literal 91867 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%0DH0%db1d^TI-JtfD(n(#$5JV`1>c<`569NHwfAt z(TPfq50uioPrxeGFVeZ5HY6ihFzke3_?;1^DwNTzEe|lp!%Skh>@hjAUksJ*#(Ks~ zhoOP9a@a^_+mxjp4D|Zw?R|3i?(znIex=@l$sg zanGNge)JNxt0#qS&&s-13+c=OI{NnZZj{%F)~fM~NqY3VGLpBpkRbtvA+6$>T51-^ zJG}G=4FIEp0%!yX{NDaAP(VFV2tWu01j3MGl#svQM(4Pj5lPM?p-?D$`Kak$Ejm3l zLR+)J0lI!;spB@fqu)d`%QK{OCl(Ap9D*YZnZDR)s`yg6ew`;9#2X`Bm(?{;a->*{ z&!1D4Xkp1kZDfvzBqn%!xW7jUO_>!GUr<;v?y^+^ZN(H(j z&#&;~_cp2=)penzLhb$GR4gWPvi9#g4jr^_K$tiyS!>dlh(+`132?q;0(uw06F4pb zLSfUW9|IuVOQ zuxg+5B5I3&y#?c;b}T?FNEEJN2Y6oz zrN&AqmRker3^GRmn>AS@A0sOG1gQJOAOW`|Kx;|Vmk>f41VfX=;e$YoVa6d>oT8O7 zq9Pj!clKEa#gM~K_$>gYGfz6Zb@OsdC=zruef&(cP#4 zY|=b<96YO{x#mPay2b zOR5k>vQwDPqEHZA+*Rsf4q)+YFP^2OyLGS=!s-hBk+@MyamKzr!$YU0VVy8hDmxY^ zXKE6-6h{EofkQ1e2-Jv08N{)8y0)=;^sT$Q3`-Q!lp)G%zj)*5?8`XQrvm*XX@Y*S z3;X$?9;`HcAA(jc8|6fi2QXF#R95FahBV3(fan<(m1MiItzQ-4+NV(u(+`*ySB-MA zhw;tguL@|+IGW`3*=Rsy2Q=9U%^K91tbQoKHJ<8RPxC9Wn)z zn5hQFOF%v0l~Qgl`39a}3gR_uUVNDT4Qd{?cJ43g3?!s5bYKx0G5B{~DX%F>s)Q@P z1xyXBEV3vfU56rbZhi3Jrja)q0)LS-XWU*XDEq78!V7;<&?cC~i@7$qBA2{87F85)^3yQo zL1@}NKB{3o0}A1ea*+Uec&~XdNY}ZZ50%AQY0p@q(UuseGIikSK-O_7SvbbWdLbG1< z4g7>V^;?;o5(9+eeab~q9$CfHxk&Vt2|7X(JxPDdONzCrB30?&AU(Sm@uLRCL)e!C zsZD}r#sqP?$}Ato`v+Q;JEH{7TS*2Uc_ND_n(W6S4zZ^Riw5DnDB{ruAoqFJ9>Aut z!u&=KbXYzUN;A{j$)87dg2%K-6rd~7Kf~d{dGb7944eZfq@%TG9=HrIjTH_P z-@%P>XlEKFU|e!1?&Y)hf><<=5}kHIf0syGh?j(FVpd}NW#r(?CgY|$iE#r8KgE4NXBmYX>7Slvb^>M{u?*3t;@O{J;xtdK%DOzD_s=37uRj?LD#6ebyuu` zX*cO>pzZymy<`7YwIg^6>6;K}H%gyt7;4rtDvtM`l2|9^LB@>Th#RH- zFJ+xW>=~8Fa6R~4tL}Bf9_}RN?$ZH3WO;V^OC1l+Zx@qa6#+YEqkaj`<6p+T&3x|1 z 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.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. */ + } +}